@fusedashlabs/widgets 0.4.0 → 0.4.2
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/CHANGELOG.md +21 -0
- package/README.md +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts +1 -0
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.d.ts.map +1 -1
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js +18 -4
- package/dist/components/chart-renderer/element/ui9000-chart-renderer.js.map +1 -1
- package/dist/components/chart-renderer/lib/registry.d.ts.map +1 -1
- package/dist/components/chart-renderer/lib/registry.js +3 -1
- package/dist/components/chart-renderer/lib/registry.js.map +1 -1
- package/dist/components/kpi-widget/element/styles.d.ts.map +1 -1
- package/dist/components/kpi-widget/element/styles.js +268 -5
- package/dist/components/kpi-widget/element/styles.js.map +1 -1
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts +10 -1
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.d.ts.map +1 -1
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.js +154 -27
- package/dist/components/kpi-widget/element/ui9000-kpi-widget.js.map +1 -1
- package/dist/components/kpi-widget/index.d.ts +1 -1
- package/dist/components/kpi-widget/index.d.ts.map +1 -1
- package/dist/components/kpi-widget/index.js +7 -4
- package/dist/components/kpi-widget/lib/extract.d.ts +5 -1
- package/dist/components/kpi-widget/lib/extract.d.ts.map +1 -1
- package/dist/components/kpi-widget/lib/extract.js +110 -34
- package/dist/components/kpi-widget/lib/extract.js.map +1 -1
- package/dist/components/kpi-widget/lib/format.d.ts +5 -0
- package/dist/components/kpi-widget/lib/format.d.ts.map +1 -1
- package/dist/components/kpi-widget/lib/format.js +10 -1
- package/dist/components/kpi-widget/lib/format.js.map +1 -1
- package/dist/components/kpi-widget/lib/grid.d.ts +5 -0
- package/dist/components/kpi-widget/lib/grid.d.ts.map +1 -1
- package/dist/components/kpi-widget/lib/grid.js +18 -0
- package/dist/components/kpi-widget/lib/grid.js.map +1 -1
- package/dist/components/kpi-widget/lib/index.d.ts +5 -5
- package/dist/components/kpi-widget/lib/index.d.ts.map +1 -1
- package/dist/components/kpi-widget/lib/normalize.d.ts +2 -0
- package/dist/components/kpi-widget/lib/normalize.d.ts.map +1 -1
- package/dist/components/kpi-widget/lib/normalize.js +73 -12
- package/dist/components/kpi-widget/lib/normalize.js.map +1 -1
- package/dist/components/kpi-widget/lib/types.d.ts +41 -0
- package/dist/components/kpi-widget/lib/types.d.ts.map +1 -1
- package/dist/components/kpi-widget/metadata.json.d.ts +1 -1
- package/dist/components/kpi-widget/metadata.json.js +1 -1
- package/dist/components/map-chart/element/ui9000-map-chart.d.ts +1 -0
- package/dist/components/map-chart/element/ui9000-map-chart.d.ts.map +1 -1
- package/dist/components/map-chart/element/ui9000-map-chart.js +12 -4
- package/dist/components/map-chart/element/ui9000-map-chart.js.map +1 -1
- package/dist/components/map-chart/lib/geojson.d.ts.map +1 -1
- package/dist/components/map-chart/lib/geojson.js +3 -1
- package/dist/components/map-chart/lib/geojson.js.map +1 -1
- package/dist/components/map-chart/metadata.json.d.ts +1 -1
- package/dist/components/map-chart/metadata.json.js +1 -1
- package/dist/components/map-chart/render/draw.d.ts.map +1 -1
- package/dist/components/map-chart/render/draw.js +2 -1
- package/dist/components/map-chart/render/draw.js.map +1 -1
- package/dist/components/partial-dependence-chart/element/styles.d.ts +2 -0
- package/dist/components/partial-dependence-chart/element/styles.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/element/styles.js +48 -0
- package/dist/components/partial-dependence-chart/element/styles.js.map +1 -0
- package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.d.ts +30 -0
- package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.js +163 -0
- package/dist/components/partial-dependence-chart/element/ui9000-partial-dependence-chart.js.map +1 -0
- package/dist/components/partial-dependence-chart/index.d.ts +5 -0
- package/dist/components/partial-dependence-chart/index.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/index.js +18 -0
- package/dist/components/partial-dependence-chart/index.js.map +1 -0
- package/dist/components/partial-dependence-chart/lib/domain.d.ts +6 -0
- package/dist/components/partial-dependence-chart/lib/domain.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/lib/domain.js +16 -0
- package/dist/components/partial-dependence-chart/lib/domain.js.map +1 -0
- package/dist/components/partial-dependence-chart/lib/index.d.ts +5 -0
- package/dist/components/partial-dependence-chart/lib/index.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/lib/normalize.d.ts +4 -0
- package/dist/components/partial-dependence-chart/lib/normalize.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/lib/normalize.js +167 -0
- package/dist/components/partial-dependence-chart/lib/normalize.js.map +1 -0
- package/dist/components/partial-dependence-chart/lib/series.d.ts +15 -0
- package/dist/components/partial-dependence-chart/lib/series.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/lib/series.js +63 -0
- package/dist/components/partial-dependence-chart/lib/series.js.map +1 -0
- package/dist/components/partial-dependence-chart/lib/types.d.ts +50 -0
- package/dist/components/partial-dependence-chart/lib/types.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/metadata.json.d.ts +80 -0
- package/dist/components/partial-dependence-chart/metadata.json.js +42 -0
- package/dist/components/partial-dependence-chart/metadata.json.js.map +1 -0
- package/dist/components/partial-dependence-chart/render/draw.d.ts +34 -0
- package/dist/components/partial-dependence-chart/render/draw.d.ts.map +1 -0
- package/dist/components/partial-dependence-chart/render/draw.js +95 -0
- package/dist/components/partial-dependence-chart/render/draw.js.map +1 -0
- package/dist/components/partial-dependence-chart/render/index.d.ts +2 -0
- package/dist/components/partial-dependence-chart/render/index.d.ts.map +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -10
- package/dist/index.js.map +1 -1
- package/dist/lazy/index.d.ts +2 -1
- package/dist/lazy/index.d.ts.map +1 -1
- package/dist/lazy/index.js +8 -0
- package/dist/lazy/index.js.map +1 -1
- package/dist/lazy/partial-dependence-chart.d.ts +4 -0
- package/dist/lazy/partial-dependence-chart.d.ts.map +1 -0
- package/dist/lazy/partial-dependence-chart.js +5 -0
- package/dist/lazy/partial-dependence-chart.js.map +1 -0
- package/dist/utils/chart-helpers.d.ts +2 -0
- package/dist/utils/chart-helpers.d.ts.map +1 -1
- package/dist/utils/chart-helpers.js +15 -0
- package/dist/utils/chart-helpers.js.map +1 -1
- package/dist/utils/fusedash-visual.d.ts +12 -0
- package/dist/utils/fusedash-visual.d.ts.map +1 -1
- package/dist/utils/fusedash-visual.js +7 -0
- package/dist/utils/fusedash-visual.js.map +1 -1
- package/package.json +11 -2
- package/dist/node_modules/lit-html/directive.js +0 -28
- package/dist/node_modules/lit-html/directive.js.map +0 -1
- package/dist/node_modules/lit-html/directives/style-map.js +0 -37
- package/dist/node_modules/lit-html/directives/style-map.js.map +0 -1
- package/dist/node_modules/lit-html/lit-html.js +0 -231
- package/dist/node_modules/lit-html/lit-html.js.map +0 -1
|
@@ -344,6 +344,18 @@ export declare const FD: {
|
|
|
344
344
|
readonly domainLimitLabelFill: "#141c2ce6";
|
|
345
345
|
readonly domainLimitLabelText: "#ffffff";
|
|
346
346
|
readonly domainLimitLabelSize: 10;
|
|
347
|
+
/** PartialDependenceChart — client DEFAULT_MARGIN */
|
|
348
|
+
readonly pdpMargin: {
|
|
349
|
+
readonly top: 16;
|
|
350
|
+
readonly right: 24;
|
|
351
|
+
readonly bottom: 28;
|
|
352
|
+
readonly left: 44;
|
|
353
|
+
};
|
|
354
|
+
/** ICE band: many faint curves under one dashed average line */
|
|
355
|
+
readonly pdpIceOpacity: 0.18;
|
|
356
|
+
readonly pdpIceStrokeWidth: 1.25;
|
|
357
|
+
readonly pdpAverageStrokeWidth: 2.5;
|
|
358
|
+
readonly pdpAverageDash: "4,4";
|
|
347
359
|
readonly donutSliceStroke: "#ffffff";
|
|
348
360
|
readonly donutSliceStrokeDark: "#1a1b1f";
|
|
349
361
|
readonly donutSliceStrokeWidth: 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusedash-visual.d.ts","sourceRoot":"","sources":["../../src/utils/fusedash-visual.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,4EAA4E;AAE5E,eAAO,MAAM,EAAE;;;;;;;;IAQb;;;OAGG;;;;;;;;;;;;;;IAiBH,+CAA+C;;;;;;;;;;;;;;;;;IAY/C,2CAA2C;;;;;;;IAE3C,wCAAwC;;;;;;;IAExC,8DAA8D;;;IAG9D,8DAA8D;;IAE9D,+EAA+E;;;IAG/E,sEAAsE;;IAEtE,+EAA+E;;;;;;IAM/E,6CAA6C;;IAE7C,0DAA0D;;;;;;;;IAG1D,mDAAmD;;;;;;;;;;;;;;;;;;;;;;;IAQnD,2CAA2C;;;;;;;IAE3C,8EAA8E;;;;;;;;;;;IAM9E,sEAAsE;;;;;;IAMtE,gDAAgD;;;;;;;IAEhD,kDAAkD;;;;;;;IAElD,yCAAyC;;;;;IAKzC,2DAA2D;;;;;;IAM3D,6DAA6D;;IAE7D,gEAAgE;;IAEhE,8BAA8B;;;IAG9B,qCAAqC;;;IAGrC,yCAAyC;;IAEzC,0CAA0C;;;IAG1C,yEAAyE;;;;;;;;IAGzE,mEAAmE;;;IAGnE,4EAA4E;;;;IAI5E,gFAAgF;;;;IAIhF,gEAAgE;;IAEhE,2EAA2E;;;;IAI3E,oDAAoD;;;IAGpD,gDAAgD;;IAEhD,0DAA0D;;;;IAI1D,kEAAkE;;;IAGlE,iFAAiF;;;;;IAKjF,uEAAuE;;;IAGvE,kFAAkF;;;;;;;;IAGlF,+DAA+D;;;;;;;IAE/D,6DAA6D;;;;IAI7D,+EAA+E;;;IAG/E,0DAA0D;;;;IAI1D,wEAAwE;;;;;IAKxE,sEAAsE;;IAEtE,0DAA0D;;;IAG1D,0EAA0E;;;;;;;IAO1E,iFAAiF;;;;;;;IAEjF,kFAAkF;;;;IAIlF,4EAA4E;;;;IAI5E,mCAAmC;;;IAGnC,oEAAoE;;;;;;IAMpE,mDAAmD;;IAEnD,8DAA8D;;IAE9D,4CAA4C;;;;;;;IAE5C,kDAAkD;;;;;;;IAElD,6DAA6D;;;;;;IAM7D,yEAAyE;;;;;;;;;;;IAMzE,kFAAkF;;;;;;;;;;;;;;IASlF,gFAAgF;;IAEhF,oDAAoD;;;;IAIpD,+DAA+D
|
|
1
|
+
{"version":3,"file":"fusedash-visual.d.ts","sourceRoot":"","sources":["../../src/utils/fusedash-visual.ts"],"names":[],"mappings":"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"}
|
|
@@ -240,6 +240,13 @@ const FD = {
|
|
|
240
240
|
domainLimitLabelFill: "#141c2ce6",
|
|
241
241
|
domainLimitLabelText: "#ffffff",
|
|
242
242
|
domainLimitLabelSize: 10,
|
|
243
|
+
/** PartialDependenceChart — client DEFAULT_MARGIN */
|
|
244
|
+
pdpMargin: { top: 16, right: 24, bottom: 28, left: 44 },
|
|
245
|
+
/** ICE band: many faint curves under one dashed average line */
|
|
246
|
+
pdpIceOpacity: 0.18,
|
|
247
|
+
pdpIceStrokeWidth: 1.25,
|
|
248
|
+
pdpAverageStrokeWidth: 2.5,
|
|
249
|
+
pdpAverageDash: "4,4",
|
|
243
250
|
donutSliceStroke: "#ffffff",
|
|
244
251
|
donutSliceStrokeDark: "#1a1b1f",
|
|
245
252
|
donutSliceStrokeWidth: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fusedash-visual.js","sources":["../../src/utils/fusedash-visual.ts"],"sourcesContent":["import type { Selection } from 'd3-selection';\n\n/** FuseDash Widgets visual tokens — keep charts looking 1:1 with client. */\n\nexport const FD = {\n gridStroke: '#afb3bb',\n gridDash: '1 2',\n axisLabelFill: '#6c7584',\n axisLabelSize: 11,\n axisStroke: '#afb3bb',\n hoverGuideLight: '#6c7584',\n hoverGuideDark: '#ffffff',\n /**\n * Qualitative12Colors.default — used when series count unknown.\n * Prefer `resolveFormattingColor` / `pickQualitativePalette` for FuseDash widgets.\n */\n series: [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n ],\n lineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n lollipopMargin: { top: 10, right: 3, bottom: 21, left: 40 },\n /** FuseDash RadarChart (useNewDesign) frame */\n radarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n radarScaleSteps: 5,\n radarDomainPadFactor: 1.1,\n radarMarkerSize: 50,\n radarMarkerHoverSize: 70,\n radarSpokeDash: '2,2',\n radarCapRadius: 3,\n radarLabelOffset: 12,\n radarGradientEdgeOpacity: 0.3,\n radarStrokeWidth: 2,\n radarTickLabelFill: '#f1f4f7',\n /** Client PunchcardChart DEFAULT_MARGIN */\n punchcardMargin: { top: 0, right: 0, bottom: 21, left: 80 },\n /** Client MatrixChart DEFAULT_MARGIN */\n matrixMargin: { top: 20, right: 0, bottom: 30, left: 80 },\n /** MatrixChart cell gutter + corner (client `rectPadding`) */\n matrixCellPadding: 3,\n matrixCellRadius: 2,\n /** Rows never shrink below this — the plot scrolls instead */\n matrixMinCellHeight: 16,\n /** Top header: font + tick + label spacing reserve (client `topAxisHeight`) */\n matrixTopTickLength: 8,\n matrixTopLabelsSpacing: 12,\n /** Above this many rows the top axis is pinned and the rows scroll */\n matrixSeparateAxisRowLimit: 7,\n /** Negative cells are flat grey; zero / missing cells get the hatch pattern */\n matrixNegativeFill: '#DADAE1',\n matrixNoDataLight: '#f0f1f2',\n matrixNoDataDark: '#33373d',\n matrixNoDataStripeLight: '#ffffff',\n matrixNoDataStripeDark: '#000000',\n /** Client AxisLeft `TickLabel length={9}` */\n matrixYLabelMaxChars: 9,\n /** Client `MAX_LABEL_LENGTH` for the top header labels */\n matrixTopLabelMaxChars: 25,\n stepLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** SparkLineChart — same frame as StepLineChart */\n sparkLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n sparkLineStrokeWidth: 1.5,\n sparkDomainPadFactor: 1.2,\n sparkGuideDash: '5,2',\n sparkHoverDotRadius: 4,\n boxPlotMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n histogramMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** Client VerticalWaterfallChart margin */\n waterfallVerticalMargin: { top: 10, right: 0, bottom: 21, left: 40 },\n /** Client HorizontalWaterfallChart base margin (left is sized from labels) */\n waterfallHorizontalMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n waterfallBarThickness: 16,\n waterfallBarRadius: 2,\n waterfallArrow: 5,\n waterfallDomainPadFactor: 1.2,\n /** Client hard-coded fills (formatting keys are ignored for paint) */\n waterfallPositive: '#938CFF',\n waterfallNegative: '#FF8C47',\n waterfallTotal: '#BDBCC8',\n waterfallHoverDim: 0.2,\n waterfallMinBand: 32,\n /** Client VerticalViolinChart DEFAULT_MARGIN */\n violinVerticalMargin: { top: 10, right: 16, bottom: 28, left: 44 },\n /** Client HorizontalViolinChart DEFAULT_MARGIN */\n violinHorizontalMargin: { top: 10, right: 24, bottom: 28, left: 44 },\n /** Client Horizontal/Vertical BoxPlot */\n boxPlotDomainPadFactor: 1.1,\n boxPlotBorderRadius: 2,\n lineStrokeWidth: 2,\n lineStrokeAlphaPct: 80,\n /** FuseDash AreaChart linearGradient stops (new design) */\n areaGradientTopOpacity: 0.6,\n areaGradientBottomOpacity: 0.1,\n lollipopStemWidth: 3,\n lollipopStemAlphaPct: 50,\n markerRadius: 4,\n /** StepLineChart: plain stroke, no alpha / glow / markers */\n stepStrokeWidth: 1.5,\n /** StepLineChart y-domain is padded by 1.2x before `.nice()` */\n stepDomainPadFactor: 1.2,\n /** KS-plot \"Ideal\" overlay */\n stepIdealColor: '#2ecc71',\n stepIdealWidth: 3,\n /** ROC \"Random guessing\" diagonal */\n stepGuessWidth: 2,\n stepGuessDash: '5,5',\n /** Max-deviation marker (KS distance) */\n stepDeviationFill: '#2c2d33',\n /** Tooltip crosshair on the step chart */\n stepGuideDash: '5,2',\n stepHoverDotRadius: 4,\n /** Barchart — shared frame + bar geometry (all six FuseDash variants) */\n barMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n barCornerRadius: 4,\n /** Bar fill is a gradient from the series color to a faded stop */\n barFadeOpacity: 0.6,\n barFadeOpacityHovered: 0.7,\n /** Vertical single-series: bandwidth * 0.4, capped, with a visible floor */\n barBandFraction: 0.4,\n barMaxWidth: 40,\n barMinHeight: 6,\n /** Vertical grouped: floor(clamp(plotWidth / categories / series)) + 1px gap */\n barGroupMinWidth: 4,\n barGroupMaxWidth: 24,\n barGroupGap: 1,\n /** Vertical stacked: bandwidth * 0.85, same clamp as grouped */\n barStackedBandFraction: 0.85,\n /** Horizontal: fixed row thickness, gutter, and a floor for tiny values */\n barRowThickness: 24,\n barRowSpacing: 16,\n barMinWidth: 6,\n /** Y (vertical) / X (horizontal) domain headroom */\n barDomainPadFactor: 1.2,\n barHorizontalPadFactor: 1.1,\n /** Stacked totals get a flat 10% pad instead */\n barStackedPadFraction: 0.1,\n /** Cumulative overlay line (FuseDash `cumulativeLine`) */\n barCumulativeColor: '#6d6df7',\n barCumulativeWidth: 2,\n barCumulativeDotRadius: 3,\n /** Hovered category column: animated dot pattern + solid guide */\n barHoverDotFill: '#CFD2D6',\n barHoverGuideWidth: 2,\n /** Client `calculatedLeftMargin` (unused in chat — shared LEFT_GUTTER_MARGIN) */\n barLabelCharWidth: 5,\n barLabelGutter: 28,\n barLabelGutterMin: 56,\n barLabelGutterMax: 180,\n /** Resting / dimmed / hovered arc opacity (FuseDash settles on 0.8) */\n donutArcOpacity: 0.8,\n donutArcOpacityDimmed: 0.2,\n /** PieChart — FuseDash uses zero margin; pie is a square inscribed in the body */\n pieMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n pieMinArcLengthPx: 5,\n /** PolarAreaChart — FuseDash margin around the centred disc */\n polarAreaMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Concentric grid rings; opacity ramps 0.2 → 1.0 outward */\n polarRadialSteps: 5,\n polarGridStroke: '#939ba7',\n polarGridStepOpacity: 0.2,\n /** Dashed spoke from the centre to each category boundary, with a round cap */\n polarSpokeDash: '2,2',\n polarSpokeCapRadius: 3,\n /** Category labels sit just outside the outermost ring */\n polarCategoryLabelFill: '#5f6877',\n polarCategoryLabelSize: 12,\n polarCategoryLabelOffset: 12,\n /** Side room reserved for those labels, measured off the longest one */\n polarLabelCharWidth: 0.55,\n polarLabelGutterMin: 40,\n polarLabelGutterMax: 120,\n polarLabelGutterMaxFraction: 0.28,\n /** Below this radius the label ring collides with itself — drop it */\n polarMinLabelRadius: 40,\n /** Sectors: 0.8 at rest, siblings drop to 0.2 on hover */\n polarSectorOpacity: 0.8,\n polarSectorOpacityDimmed: 0.2,\n /** Radial tick pills are hidden when the disc is too short to fit them */\n polarTickPillRowHeight: 21,\n polarTickPillPadX: 7,\n polarTickPillPadY: 3,\n polarTickPillRadius: 4,\n polarTickPill: '#ffffff',\n polarTickPillDark: '#1a1b1f',\n /** RadialBarChart — client margin; the plot is a circle inscribed in the body */\n radialBarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Hole is 20% of the outer radius; rings sweep 270° clockwise from 12 o'clock */\n radialBarInnerRadiusRatio: 0.2,\n radialBarSweepDeg: 270,\n radialBarTicks: 5,\n /** Ring thickness clamp around `((outer - inner - rings) / rings) * 0.5` */\n radialBarMinArcWidth: 4,\n radialBarMaxArcWidth: 24,\n radialBarArcCornerRadius: 1,\n /** Resting / dimmed arc opacity */\n radialBarArcOpacity: 0.8,\n radialBarArcOpacityDimmed: 0.2,\n /** Client draws the rings and the radial axes in one darker grey */\n radialBarGridStroke: '#939ba7',\n radialBarTickDash: '4,4',\n radialBarLabelFill: '#5f6877',\n radialBarTickLabelSize: 12,\n radialBarRingLabelSize: 11,\n /** Value labels sit 12px outside the outer ring */\n radialBarTickLabelOffset: 12,\n /** Ring labels are cut at `(outer - inner) / 8` characters */\n radialBarLabelCharWidth: 8,\n /** ScatterPlot — FuseDash DEFAULT_MARGIN */\n scatterMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** AreaGroupedBarChart — client DEFAULT_MARGIN */\n areaGroupedBarMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** Area fill under the line (client stopOpacity 0.35 → 0) */\n areaGroupedBarGradientTopOpacity: 0.35,\n areaGroupedBarGradientBottomOpacity: 0,\n areaGroupedBarMarkerRadius: 3,\n areaGroupedBarDimOpacity: 0.3,\n areaGroupedBarBarOpacity: 0.85,\n /** BubbleChart — BASE_MARGIN + MAX_BUBBLE_RADIUS/2 inset on top/right */\n bubbleBaseMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n bubbleMaxRadius: 30,\n bubbleNegativeFill: '#DADAE1',\n scatterMarkerSize: 40,\n scatterReferenceLine: '#56546D',\n /** BiasVarianceTradeoffChart — the client widget carries its own frame/palette */\n biasVarianceMargin: { top: 24, right: 24, bottom: 36, left: 48 },\n biasVarianceSeries: ['#6366f1', '#22c55e', '#f59e0b', '#06b6d4', '#ef4444'],\n biasVarianceGridStroke: '#d1d5db',\n biasVarianceGridDash: '2,4',\n biasVarianceAxisStroke: '#9ca3af',\n biasVarianceLabelFill: '#6b7280',\n biasVarianceLineWidth: 2,\n biasVarianceLineOpacity: 0.95,\n /** Sibling curves fade while one is hovered (FuseDash line-hover convention) */\n biasVarianceLineOpacityDimmed: 0.2,\n /** Y domain is `[0, max * 1.1]` before `.nice()` */\n biasVarianceDomainPadFactor: 1.1,\n biasVarianceXTicks: 8,\n biasVarianceYTicks: 6,\n /** Shared `DomainsLimits` overlay (reference lines / bands) */\n domainLimitColor: '#6C8CF5',\n domainLimitFillOpacity: 0.12,\n domainLimitDash: '4,4',\n domainLimitArrow: 8,\n domainLimitLabelFill: '#141c2ce6',\n domainLimitLabelText: '#ffffff',\n domainLimitLabelSize: 10,\n donutSliceStroke: '#ffffff',\n donutSliceStrokeDark: '#1a1b1f',\n donutSliceStrokeWidth: 2,\n /** Treemap — d3 `treemapBinary` tiles, no axes so the plot fills the body */\n treemapMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n treemapPaddingInner: 2,\n treemapTileRadius: 6,\n /** Tile fill fades from the band color to 80% alpha at the bottom edge */\n treemapGradientBottomOpacity: 0.8,\n /** White scanlines every 5px, fading out toward the bottom of the tile */\n treemapStripeColor: '#FFFFFF',\n treemapStripeSpacing: 5,\n treemapStripeOpacity: 0.14,\n treemapStripeFalloff: 0.8,\n /** Client `hasLightColor` label colors */\n treemapLabelOnLight: '#0B101A',\n treemapLabelOnDark: '#FFFFFF',\n treemapLabelPadding: 4,\n treemapLabelSize: 14,\n treemapValueSize: 12,\n /** A tile only gets a name below this, and a value below `MinValueHeight` */\n treemapMinLabelWidth: 40,\n treemapMinLabelHeight: 20,\n treemapMinValueHeight: 30,\n /** Grouped mode: one card per group in the client's grid-template-areas */\n treemapCardGap: 8,\n treemapCardRadius: 8,\n treemapCardPadding: 8,\n treemapGroupsMarginTop: 10,\n /** Rows in the >5 group fallback list, which scrolls instead of squeezing */\n treemapCardMinHeight: 140,\n /** Sibling tiles fade while one is hovered (chat-only affordance) */\n treemapDimOpacity: 0.4,\n /** `getTreemapRangeColors`: 7 shades from +55% white to -35% black */\n treemapRangeSteps: 7,\n treemapRangeMinShift: 0.55,\n treemapRangeMaxShift: -0.35,\n /** Sankey: layout extent inset, node gap, and the two node-rule colors */\n sankeyPadding: 4.5,\n sankeyNodePadding: 14,\n sankeyNodeWidth: 70,\n sankeyNodeWidthSmall: 65,\n sankeyNodeRule: '#D3DBE3',\n sankeyNodeRuleActive: '#939BA7',\n /** Ribbons sit at 50% alpha until hovered or focused */\n sankeyLinkAlphaPct: 50,\n sankeyLinkInset: 3,\n sankeyDimOpacity: 0.5,\n /** ParallelCoordinates — client Horizontal/Vertical frames */\n parallelMargin: { top: 10, right: 1, bottom: 8, left: 1 },\n parallelVerticalMargin: { top: 10, right: 1, bottom: 1, left: 1 },\n /** Horizontal: one 72px band per dimension, so the plot scrolls past ~5 axes */\n parallelAxisSpacing: 72,\n /** Vertical: gutter kept free under the axes for the bottom tick row */\n parallelColorScaleHeight: 44,\n /** Right gutter reserved for the colour ramp + its tick labels */\n parallelLegendOffsetRight: 20,\n parallelLegendWidth: 10,\n parallelLegendTickLabelWidth: 44,\n parallelLegendRadius: 6,\n /** Resting / dimmed / hovered polyline stroke */\n parallelLineWidth: 1,\n parallelLineWidthHovered: 5,\n parallelLineOpacity: 0.4,\n parallelLineOpacityDimmed: 0.05,\n /** Client draws these axes a shade darker than the shared FD axis tokens */\n parallelAxisStroke: '#939ba7',\n parallelAxisLabelFill: '#5f6877',\n parallelTitleSize: 11,\n parallelTitleSizeActive: 13,\n /** GiniImpurityEntropyChart — client DEFAULT_MARGIN */\n giniMargin: { top: 20, right: 24, bottom: 28, left: 44 },\n /** Curves are drawn as smooth Catmull-Rom splines with this tension */\n giniCurveAlpha: 0.5,\n /** p-hat guide + confidence-interval band */\n giniOverlayColor: '#4c6ef5',\n giniOverlayBandOpacity: 0.08,\n giniOverlayDash: '5,5',\n /** Split annotation markers on the Gini curve */\n giniSplitMarkerFill: '#12b886',\n giniSplitMarkerStroke: '#ffffff',\n giniSplitMarkerRadius: 4,\n giniSplitLabelOffset: 8,\n /** Hovering one curve fades the others so the read is unambiguous */\n giniCurveDimOpacity: 0.2,\n} as const;\n\n/** SequentialColors1 for the `default` styleId — low → high. */\nexport const FD_SEQUENTIAL = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n] as const;\n\nexport type MarkerShape =\n | 'donut'\n | 'circle'\n | 'square'\n | 'rhombus'\n | 'triangle'\n | 'disabled';\n\n/** Mirrors client `lightenColor` — blend hex toward white (amount 0–1). */\nexport function lightenColor(hex: string, amount: number): string {\n let clean = hex.replace('#', '');\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-Fa-f]{6}$/.test(clean)) return hex;\n const t = Math.max(0, Math.min(1, amount));\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n const lr = Math.round(r + (255 - r) * t);\n const lg = Math.round(g + (255 - g) * t);\n const lb = Math.round(b + (255 - b) * t);\n return `#${lr.toString(16).padStart(2, '0')}${lg.toString(16).padStart(2, '0')}${lb.toString(16).padStart(2, '0')}`;\n}\n\n/** Mirrors client `hexToHexWithAlpha` (opacity 0–100). */\nexport function hexWithAlpha(hex: string, opacityPct: number): string {\n let clean = hex.replace('#', '').toUpperCase();\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-F]{6}$/.test(clean)) return hex;\n const alpha = Math.round((Math.max(0, Math.min(100, opacityPct)) / 100) * 255)\n .toString(16)\n .padStart(2, '0')\n .toUpperCase();\n return `#${clean}${alpha}`;\n}\n\n/** Mirrors client `calculateScaleLinearDomain`. */\nexport function calculateScaleLinearDomain(data: number[]): [number, number] {\n if (!data.length) return [0, 1];\n let min = Infinity;\n let max = -Infinity;\n for (const v of data) {\n if (!Number.isFinite(v)) continue;\n if (v < min) min = v;\n if (v > max) max = v;\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n if (min < 0 && max > 0) {\n const absMax = Math.max(Math.abs(min), Math.abs(max));\n return [-absMax, absMax];\n }\n return [Math.min(0, min), Math.max(0, max)];\n}\n\n/** Mirrors client Y-tick formatting. */\nexport function formatCompactNumber(value: number, decimals = 2): string {\n const abs = Math.abs(value);\n if (abs >= 1_000_000_000) return `${(value / 1_000_000_000).toFixed(1)}B`;\n if (abs >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (abs >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n if (Number.isInteger(value) && abs < 1000) return String(value);\n return value.toFixed(decimals);\n}\n\nexport function seriesColor(index: number, override?: string): string {\n if (override) return override;\n return FD.series[index % FD.series.length];\n}\n\n/** Line markers: donut = hollow ring (FuseDash default). */\nexport function markerAppearance(\n shape: MarkerShape,\n color: string,\n themeMode: 'light' | 'dark' = 'light',\n): { fill: string; stroke: string } {\n const outline = themeMode === 'dark' ? '#000' : '#fff';\n if (shape === 'donut' || shape === 'disabled') {\n return { fill: outline, stroke: color };\n }\n return { fill: color, stroke: outline };\n}\n\nexport function appendGlowFilter(\n svg: Selection<SVGSVGElement, unknown, null, undefined>,\n id = 'ui9000-glow',\n): string {\n let defs = svg.select<SVGDefsElement>('defs');\n if (defs.empty()) defs = svg.append('defs');\n if (defs.select(`#${id}`).empty()) {\n const filter = defs\n .append('filter')\n .attr('id', id)\n .attr('x', '-50%')\n .attr('y', '-50%')\n .attr('width', '200%')\n .attr('height', '200%');\n filter.append('feGaussianBlur').attr('stdDeviation', 3).attr('result', 'coloredBlur');\n const merge = filter.append('feMerge');\n merge.append('feMergeNode').attr('in', 'coloredBlur');\n merge.append('feMergeNode').attr('in', 'SourceGraphic');\n }\n return `url(#${id})`;\n}\n\nexport function calculateNumTicks(height: number): number {\n if (height < 120) return 3;\n if (height < 220) return 4;\n if (height < 360) return 5;\n return 6;\n}\n\n/** Append FuseDash-style line/area marker at (cx, cy). */\nexport function appendLineMarker(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: {\n shape: MarkerShape;\n color: string;\n cx: number;\n cy: number;\n r?: number;\n themeMode?: 'light' | 'dark';\n hovered?: boolean;\n },\n): void {\n const {\n shape,\n color,\n cx,\n cy,\n r = FD.markerRadius,\n themeMode = 'light',\n hovered = false,\n } = opts;\n if (shape === 'disabled') return;\n\n const { fill, stroke } = markerAppearance(shape, color, themeMode);\n const strokeWidth = hovered ? 3 : 1;\n\n if (shape === 'square') {\n const size = 7;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n if (shape === 'rhombus') {\n const size = 9;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth)\n .attr('transform', `rotate(45, ${cx}, ${cy})`);\n return;\n }\n\n if (shape === 'triangle') {\n const s = 4;\n parent\n .append('polygon')\n .attr(\n 'points',\n `${cx},${cy - s} ${cx - s},${cy + s} ${cx + s},${cy + s}`,\n )\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n parent\n .append('circle')\n .attr('cx', cx)\n .attr('cy', cy)\n .attr('r', r)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n}\n\n/**\n * Lollipop head — FuseDash Vertical markers (default = rhombus diamond path).\n */\nexport function appendLollipopMarkerVertical(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: { shape: MarkerShape; color: string; cx: number; cy: number },\n): void {\n const { shape, color, cx, cy } = opts;\n if (shape === 'disabled') return;\n\n if (shape === 'donut') {\n parent\n .append('path')\n .attr(\n 'd',\n `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10 M ${cx}, ${cy - 2} a 2,2 0 1,1 0,4 a 2,2 0 1,1 0,-4`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n parent.append('circle').attr('cx', cx).attr('cy', cy).attr('r', 2).attr('fill', '#fff');\n return;\n }\n\n if (shape === 'circle') {\n parent\n .append('path')\n .attr('d', `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'square') {\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} L${cx + 5}, ${cy - 5} L${cx - 5}, ${cy - 5} Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'triangle') {\n parent\n .append('path')\n .attr('d', `M${cx}, ${cy - 5} L${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} Z`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n // default / rhombus\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx}, ${cy + 5} L${cx + 5}, ${cy} L${cx}, ${cy - 5} L${cx - 5}, ${cy}Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fusedash-visual.js","sources":["../../src/utils/fusedash-visual.ts"],"sourcesContent":["import type { Selection } from 'd3-selection';\n\n/** FuseDash Widgets visual tokens — keep charts looking 1:1 with client. */\n\nexport const FD = {\n gridStroke: '#afb3bb',\n gridDash: '1 2',\n axisLabelFill: '#6c7584',\n axisLabelSize: 11,\n axisStroke: '#afb3bb',\n hoverGuideLight: '#6c7584',\n hoverGuideDark: '#ffffff',\n /**\n * Qualitative12Colors.default — used when series count unknown.\n * Prefer `resolveFormattingColor` / `pickQualitativePalette` for FuseDash widgets.\n */\n series: [\n '#473DD9',\n '#938CFF',\n '#36C4A5',\n '#ADF4E5',\n '#BDBCC8',\n '#56546D',\n '#FF8C47',\n '#FFCEB0',\n '#FF4781',\n '#FFB0C9',\n '#47B0FF',\n '#B0DDFF',\n ],\n lineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n lollipopMargin: { top: 10, right: 3, bottom: 21, left: 40 },\n /** FuseDash RadarChart (useNewDesign) frame */\n radarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n radarScaleSteps: 5,\n radarDomainPadFactor: 1.1,\n radarMarkerSize: 50,\n radarMarkerHoverSize: 70,\n radarSpokeDash: '2,2',\n radarCapRadius: 3,\n radarLabelOffset: 12,\n radarGradientEdgeOpacity: 0.3,\n radarStrokeWidth: 2,\n radarTickLabelFill: '#f1f4f7',\n /** Client PunchcardChart DEFAULT_MARGIN */\n punchcardMargin: { top: 0, right: 0, bottom: 21, left: 80 },\n /** Client MatrixChart DEFAULT_MARGIN */\n matrixMargin: { top: 20, right: 0, bottom: 30, left: 80 },\n /** MatrixChart cell gutter + corner (client `rectPadding`) */\n matrixCellPadding: 3,\n matrixCellRadius: 2,\n /** Rows never shrink below this — the plot scrolls instead */\n matrixMinCellHeight: 16,\n /** Top header: font + tick + label spacing reserve (client `topAxisHeight`) */\n matrixTopTickLength: 8,\n matrixTopLabelsSpacing: 12,\n /** Above this many rows the top axis is pinned and the rows scroll */\n matrixSeparateAxisRowLimit: 7,\n /** Negative cells are flat grey; zero / missing cells get the hatch pattern */\n matrixNegativeFill: '#DADAE1',\n matrixNoDataLight: '#f0f1f2',\n matrixNoDataDark: '#33373d',\n matrixNoDataStripeLight: '#ffffff',\n matrixNoDataStripeDark: '#000000',\n /** Client AxisLeft `TickLabel length={9}` */\n matrixYLabelMaxChars: 9,\n /** Client `MAX_LABEL_LENGTH` for the top header labels */\n matrixTopLabelMaxChars: 25,\n stepLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** SparkLineChart — same frame as StepLineChart */\n sparkLineMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n sparkLineStrokeWidth: 1.5,\n sparkDomainPadFactor: 1.2,\n sparkGuideDash: '5,2',\n sparkHoverDotRadius: 4,\n boxPlotMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n histogramMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n /** Client VerticalWaterfallChart margin */\n waterfallVerticalMargin: { top: 10, right: 0, bottom: 21, left: 40 },\n /** Client HorizontalWaterfallChart base margin (left is sized from labels) */\n waterfallHorizontalMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n waterfallBarThickness: 16,\n waterfallBarRadius: 2,\n waterfallArrow: 5,\n waterfallDomainPadFactor: 1.2,\n /** Client hard-coded fills (formatting keys are ignored for paint) */\n waterfallPositive: '#938CFF',\n waterfallNegative: '#FF8C47',\n waterfallTotal: '#BDBCC8',\n waterfallHoverDim: 0.2,\n waterfallMinBand: 32,\n /** Client VerticalViolinChart DEFAULT_MARGIN */\n violinVerticalMargin: { top: 10, right: 16, bottom: 28, left: 44 },\n /** Client HorizontalViolinChart DEFAULT_MARGIN */\n violinHorizontalMargin: { top: 10, right: 24, bottom: 28, left: 44 },\n /** Client Horizontal/Vertical BoxPlot */\n boxPlotDomainPadFactor: 1.1,\n boxPlotBorderRadius: 2,\n lineStrokeWidth: 2,\n lineStrokeAlphaPct: 80,\n /** FuseDash AreaChart linearGradient stops (new design) */\n areaGradientTopOpacity: 0.6,\n areaGradientBottomOpacity: 0.1,\n lollipopStemWidth: 3,\n lollipopStemAlphaPct: 50,\n markerRadius: 4,\n /** StepLineChart: plain stroke, no alpha / glow / markers */\n stepStrokeWidth: 1.5,\n /** StepLineChart y-domain is padded by 1.2x before `.nice()` */\n stepDomainPadFactor: 1.2,\n /** KS-plot \"Ideal\" overlay */\n stepIdealColor: '#2ecc71',\n stepIdealWidth: 3,\n /** ROC \"Random guessing\" diagonal */\n stepGuessWidth: 2,\n stepGuessDash: '5,5',\n /** Max-deviation marker (KS distance) */\n stepDeviationFill: '#2c2d33',\n /** Tooltip crosshair on the step chart */\n stepGuideDash: '5,2',\n stepHoverDotRadius: 4,\n /** Barchart — shared frame + bar geometry (all six FuseDash variants) */\n barMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n barCornerRadius: 4,\n /** Bar fill is a gradient from the series color to a faded stop */\n barFadeOpacity: 0.6,\n barFadeOpacityHovered: 0.7,\n /** Vertical single-series: bandwidth * 0.4, capped, with a visible floor */\n barBandFraction: 0.4,\n barMaxWidth: 40,\n barMinHeight: 6,\n /** Vertical grouped: floor(clamp(plotWidth / categories / series)) + 1px gap */\n barGroupMinWidth: 4,\n barGroupMaxWidth: 24,\n barGroupGap: 1,\n /** Vertical stacked: bandwidth * 0.85, same clamp as grouped */\n barStackedBandFraction: 0.85,\n /** Horizontal: fixed row thickness, gutter, and a floor for tiny values */\n barRowThickness: 24,\n barRowSpacing: 16,\n barMinWidth: 6,\n /** Y (vertical) / X (horizontal) domain headroom */\n barDomainPadFactor: 1.2,\n barHorizontalPadFactor: 1.1,\n /** Stacked totals get a flat 10% pad instead */\n barStackedPadFraction: 0.1,\n /** Cumulative overlay line (FuseDash `cumulativeLine`) */\n barCumulativeColor: '#6d6df7',\n barCumulativeWidth: 2,\n barCumulativeDotRadius: 3,\n /** Hovered category column: animated dot pattern + solid guide */\n barHoverDotFill: '#CFD2D6',\n barHoverGuideWidth: 2,\n /** Client `calculatedLeftMargin` (unused in chat — shared LEFT_GUTTER_MARGIN) */\n barLabelCharWidth: 5,\n barLabelGutter: 28,\n barLabelGutterMin: 56,\n barLabelGutterMax: 180,\n /** Resting / dimmed / hovered arc opacity (FuseDash settles on 0.8) */\n donutArcOpacity: 0.8,\n donutArcOpacityDimmed: 0.2,\n /** PieChart — FuseDash uses zero margin; pie is a square inscribed in the body */\n pieMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n pieMinArcLengthPx: 5,\n /** PolarAreaChart — FuseDash margin around the centred disc */\n polarAreaMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Concentric grid rings; opacity ramps 0.2 → 1.0 outward */\n polarRadialSteps: 5,\n polarGridStroke: '#939ba7',\n polarGridStepOpacity: 0.2,\n /** Dashed spoke from the centre to each category boundary, with a round cap */\n polarSpokeDash: '2,2',\n polarSpokeCapRadius: 3,\n /** Category labels sit just outside the outermost ring */\n polarCategoryLabelFill: '#5f6877',\n polarCategoryLabelSize: 12,\n polarCategoryLabelOffset: 12,\n /** Side room reserved for those labels, measured off the longest one */\n polarLabelCharWidth: 0.55,\n polarLabelGutterMin: 40,\n polarLabelGutterMax: 120,\n polarLabelGutterMaxFraction: 0.28,\n /** Below this radius the label ring collides with itself — drop it */\n polarMinLabelRadius: 40,\n /** Sectors: 0.8 at rest, siblings drop to 0.2 on hover */\n polarSectorOpacity: 0.8,\n polarSectorOpacityDimmed: 0.2,\n /** Radial tick pills are hidden when the disc is too short to fit them */\n polarTickPillRowHeight: 21,\n polarTickPillPadX: 7,\n polarTickPillPadY: 3,\n polarTickPillRadius: 4,\n polarTickPill: '#ffffff',\n polarTickPillDark: '#1a1b1f',\n /** RadialBarChart — client margin; the plot is a circle inscribed in the body */\n radialBarMargin: { top: 25, right: 5, bottom: 25, left: 5 },\n /** Hole is 20% of the outer radius; rings sweep 270° clockwise from 12 o'clock */\n radialBarInnerRadiusRatio: 0.2,\n radialBarSweepDeg: 270,\n radialBarTicks: 5,\n /** Ring thickness clamp around `((outer - inner - rings) / rings) * 0.5` */\n radialBarMinArcWidth: 4,\n radialBarMaxArcWidth: 24,\n radialBarArcCornerRadius: 1,\n /** Resting / dimmed arc opacity */\n radialBarArcOpacity: 0.8,\n radialBarArcOpacityDimmed: 0.2,\n /** Client draws the rings and the radial axes in one darker grey */\n radialBarGridStroke: '#939ba7',\n radialBarTickDash: '4,4',\n radialBarLabelFill: '#5f6877',\n radialBarTickLabelSize: 12,\n radialBarRingLabelSize: 11,\n /** Value labels sit 12px outside the outer ring */\n radialBarTickLabelOffset: 12,\n /** Ring labels are cut at `(outer - inner) / 8` characters */\n radialBarLabelCharWidth: 8,\n /** ScatterPlot — FuseDash DEFAULT_MARGIN */\n scatterMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** AreaGroupedBarChart — client DEFAULT_MARGIN */\n areaGroupedBarMargin: { top: 10, right: 5, bottom: 21, left: 40 },\n /** Area fill under the line (client stopOpacity 0.35 → 0) */\n areaGroupedBarGradientTopOpacity: 0.35,\n areaGroupedBarGradientBottomOpacity: 0,\n areaGroupedBarMarkerRadius: 3,\n areaGroupedBarDimOpacity: 0.3,\n areaGroupedBarBarOpacity: 0.85,\n /** BubbleChart — BASE_MARGIN + MAX_BUBBLE_RADIUS/2 inset on top/right */\n bubbleBaseMargin: { top: 10, right: 1, bottom: 21, left: 40 },\n bubbleMaxRadius: 30,\n bubbleNegativeFill: '#DADAE1',\n scatterMarkerSize: 40,\n scatterReferenceLine: '#56546D',\n /** BiasVarianceTradeoffChart — the client widget carries its own frame/palette */\n biasVarianceMargin: { top: 24, right: 24, bottom: 36, left: 48 },\n biasVarianceSeries: ['#6366f1', '#22c55e', '#f59e0b', '#06b6d4', '#ef4444'],\n biasVarianceGridStroke: '#d1d5db',\n biasVarianceGridDash: '2,4',\n biasVarianceAxisStroke: '#9ca3af',\n biasVarianceLabelFill: '#6b7280',\n biasVarianceLineWidth: 2,\n biasVarianceLineOpacity: 0.95,\n /** Sibling curves fade while one is hovered (FuseDash line-hover convention) */\n biasVarianceLineOpacityDimmed: 0.2,\n /** Y domain is `[0, max * 1.1]` before `.nice()` */\n biasVarianceDomainPadFactor: 1.1,\n biasVarianceXTicks: 8,\n biasVarianceYTicks: 6,\n /** Shared `DomainsLimits` overlay (reference lines / bands) */\n domainLimitColor: '#6C8CF5',\n domainLimitFillOpacity: 0.12,\n domainLimitDash: '4,4',\n domainLimitArrow: 8,\n domainLimitLabelFill: '#141c2ce6',\n domainLimitLabelText: '#ffffff',\n domainLimitLabelSize: 10,\n /** PartialDependenceChart — client DEFAULT_MARGIN */\n pdpMargin: { top: 16, right: 24, bottom: 28, left: 44 },\n /** ICE band: many faint curves under one dashed average line */\n pdpIceOpacity: 0.18,\n pdpIceStrokeWidth: 1.25,\n pdpAverageStrokeWidth: 2.5,\n pdpAverageDash: '4,4',\n donutSliceStroke: '#ffffff',\n donutSliceStrokeDark: '#1a1b1f',\n donutSliceStrokeWidth: 2,\n /** Treemap — d3 `treemapBinary` tiles, no axes so the plot fills the body */\n treemapMargin: { top: 0, right: 0, bottom: 0, left: 0 },\n treemapPaddingInner: 2,\n treemapTileRadius: 6,\n /** Tile fill fades from the band color to 80% alpha at the bottom edge */\n treemapGradientBottomOpacity: 0.8,\n /** White scanlines every 5px, fading out toward the bottom of the tile */\n treemapStripeColor: '#FFFFFF',\n treemapStripeSpacing: 5,\n treemapStripeOpacity: 0.14,\n treemapStripeFalloff: 0.8,\n /** Client `hasLightColor` label colors */\n treemapLabelOnLight: '#0B101A',\n treemapLabelOnDark: '#FFFFFF',\n treemapLabelPadding: 4,\n treemapLabelSize: 14,\n treemapValueSize: 12,\n /** A tile only gets a name below this, and a value below `MinValueHeight` */\n treemapMinLabelWidth: 40,\n treemapMinLabelHeight: 20,\n treemapMinValueHeight: 30,\n /** Grouped mode: one card per group in the client's grid-template-areas */\n treemapCardGap: 8,\n treemapCardRadius: 8,\n treemapCardPadding: 8,\n treemapGroupsMarginTop: 10,\n /** Rows in the >5 group fallback list, which scrolls instead of squeezing */\n treemapCardMinHeight: 140,\n /** Sibling tiles fade while one is hovered (chat-only affordance) */\n treemapDimOpacity: 0.4,\n /** `getTreemapRangeColors`: 7 shades from +55% white to -35% black */\n treemapRangeSteps: 7,\n treemapRangeMinShift: 0.55,\n treemapRangeMaxShift: -0.35,\n /** Sankey: layout extent inset, node gap, and the two node-rule colors */\n sankeyPadding: 4.5,\n sankeyNodePadding: 14,\n sankeyNodeWidth: 70,\n sankeyNodeWidthSmall: 65,\n sankeyNodeRule: '#D3DBE3',\n sankeyNodeRuleActive: '#939BA7',\n /** Ribbons sit at 50% alpha until hovered or focused */\n sankeyLinkAlphaPct: 50,\n sankeyLinkInset: 3,\n sankeyDimOpacity: 0.5,\n /** ParallelCoordinates — client Horizontal/Vertical frames */\n parallelMargin: { top: 10, right: 1, bottom: 8, left: 1 },\n parallelVerticalMargin: { top: 10, right: 1, bottom: 1, left: 1 },\n /** Horizontal: one 72px band per dimension, so the plot scrolls past ~5 axes */\n parallelAxisSpacing: 72,\n /** Vertical: gutter kept free under the axes for the bottom tick row */\n parallelColorScaleHeight: 44,\n /** Right gutter reserved for the colour ramp + its tick labels */\n parallelLegendOffsetRight: 20,\n parallelLegendWidth: 10,\n parallelLegendTickLabelWidth: 44,\n parallelLegendRadius: 6,\n /** Resting / dimmed / hovered polyline stroke */\n parallelLineWidth: 1,\n parallelLineWidthHovered: 5,\n parallelLineOpacity: 0.4,\n parallelLineOpacityDimmed: 0.05,\n /** Client draws these axes a shade darker than the shared FD axis tokens */\n parallelAxisStroke: '#939ba7',\n parallelAxisLabelFill: '#5f6877',\n parallelTitleSize: 11,\n parallelTitleSizeActive: 13,\n /** GiniImpurityEntropyChart — client DEFAULT_MARGIN */\n giniMargin: { top: 20, right: 24, bottom: 28, left: 44 },\n /** Curves are drawn as smooth Catmull-Rom splines with this tension */\n giniCurveAlpha: 0.5,\n /** p-hat guide + confidence-interval band */\n giniOverlayColor: '#4c6ef5',\n giniOverlayBandOpacity: 0.08,\n giniOverlayDash: '5,5',\n /** Split annotation markers on the Gini curve */\n giniSplitMarkerFill: '#12b886',\n giniSplitMarkerStroke: '#ffffff',\n giniSplitMarkerRadius: 4,\n giniSplitLabelOffset: 8,\n /** Hovering one curve fades the others so the read is unambiguous */\n giniCurveDimOpacity: 0.2,\n} as const;\n\n/** SequentialColors1 for the `default` styleId — low → high. */\nexport const FD_SEQUENTIAL = [\n '#D6D3FF',\n '#B5B0FF',\n '#938CFF',\n '#7369FF',\n '#5448FF',\n '#473DD9',\n '#3C33B5',\n] as const;\n\nexport type MarkerShape =\n | 'donut'\n | 'circle'\n | 'square'\n | 'rhombus'\n | 'triangle'\n | 'disabled';\n\n/** Mirrors client `lightenColor` — blend hex toward white (amount 0–1). */\nexport function lightenColor(hex: string, amount: number): string {\n let clean = hex.replace('#', '');\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-Fa-f]{6}$/.test(clean)) return hex;\n const t = Math.max(0, Math.min(1, amount));\n const r = parseInt(clean.slice(0, 2), 16);\n const g = parseInt(clean.slice(2, 4), 16);\n const b = parseInt(clean.slice(4, 6), 16);\n const lr = Math.round(r + (255 - r) * t);\n const lg = Math.round(g + (255 - g) * t);\n const lb = Math.round(b + (255 - b) * t);\n return `#${lr.toString(16).padStart(2, '0')}${lg.toString(16).padStart(2, '0')}${lb.toString(16).padStart(2, '0')}`;\n}\n\n/** Mirrors client `hexToHexWithAlpha` (opacity 0–100). */\nexport function hexWithAlpha(hex: string, opacityPct: number): string {\n let clean = hex.replace('#', '').toUpperCase();\n if (clean.length === 3) {\n clean = clean\n .split('')\n .map((c) => c + c)\n .join('');\n }\n if (!/^[0-9A-F]{6}$/.test(clean)) return hex;\n const alpha = Math.round((Math.max(0, Math.min(100, opacityPct)) / 100) * 255)\n .toString(16)\n .padStart(2, '0')\n .toUpperCase();\n return `#${clean}${alpha}`;\n}\n\n/** Mirrors client `calculateScaleLinearDomain`. */\nexport function calculateScaleLinearDomain(data: number[]): [number, number] {\n if (!data.length) return [0, 1];\n let min = Infinity;\n let max = -Infinity;\n for (const v of data) {\n if (!Number.isFinite(v)) continue;\n if (v < min) min = v;\n if (v > max) max = v;\n }\n if (!Number.isFinite(min) || !Number.isFinite(max)) return [0, 1];\n if (min < 0 && max > 0) {\n const absMax = Math.max(Math.abs(min), Math.abs(max));\n return [-absMax, absMax];\n }\n return [Math.min(0, min), Math.max(0, max)];\n}\n\n/** Mirrors client Y-tick formatting. */\nexport function formatCompactNumber(value: number, decimals = 2): string {\n const abs = Math.abs(value);\n if (abs >= 1_000_000_000) return `${(value / 1_000_000_000).toFixed(1)}B`;\n if (abs >= 1_000_000) return `${(value / 1_000_000).toFixed(1)}M`;\n if (abs >= 1_000) return `${(value / 1_000).toFixed(1)}K`;\n if (Number.isInteger(value) && abs < 1000) return String(value);\n return value.toFixed(decimals);\n}\n\nexport function seriesColor(index: number, override?: string): string {\n if (override) return override;\n return FD.series[index % FD.series.length];\n}\n\n/** Line markers: donut = hollow ring (FuseDash default). */\nexport function markerAppearance(\n shape: MarkerShape,\n color: string,\n themeMode: 'light' | 'dark' = 'light',\n): { fill: string; stroke: string } {\n const outline = themeMode === 'dark' ? '#000' : '#fff';\n if (shape === 'donut' || shape === 'disabled') {\n return { fill: outline, stroke: color };\n }\n return { fill: color, stroke: outline };\n}\n\nexport function appendGlowFilter(\n svg: Selection<SVGSVGElement, unknown, null, undefined>,\n id = 'ui9000-glow',\n): string {\n let defs = svg.select<SVGDefsElement>('defs');\n if (defs.empty()) defs = svg.append('defs');\n if (defs.select(`#${id}`).empty()) {\n const filter = defs\n .append('filter')\n .attr('id', id)\n .attr('x', '-50%')\n .attr('y', '-50%')\n .attr('width', '200%')\n .attr('height', '200%');\n filter.append('feGaussianBlur').attr('stdDeviation', 3).attr('result', 'coloredBlur');\n const merge = filter.append('feMerge');\n merge.append('feMergeNode').attr('in', 'coloredBlur');\n merge.append('feMergeNode').attr('in', 'SourceGraphic');\n }\n return `url(#${id})`;\n}\n\nexport function calculateNumTicks(height: number): number {\n if (height < 120) return 3;\n if (height < 220) return 4;\n if (height < 360) return 5;\n return 6;\n}\n\n/** Append FuseDash-style line/area marker at (cx, cy). */\nexport function appendLineMarker(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: {\n shape: MarkerShape;\n color: string;\n cx: number;\n cy: number;\n r?: number;\n themeMode?: 'light' | 'dark';\n hovered?: boolean;\n },\n): void {\n const {\n shape,\n color,\n cx,\n cy,\n r = FD.markerRadius,\n themeMode = 'light',\n hovered = false,\n } = opts;\n if (shape === 'disabled') return;\n\n const { fill, stroke } = markerAppearance(shape, color, themeMode);\n const strokeWidth = hovered ? 3 : 1;\n\n if (shape === 'square') {\n const size = 7;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n if (shape === 'rhombus') {\n const size = 9;\n parent\n .append('rect')\n .attr('x', cx - size / 2)\n .attr('y', cy - size / 2)\n .attr('width', size)\n .attr('height', size)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth)\n .attr('transform', `rotate(45, ${cx}, ${cy})`);\n return;\n }\n\n if (shape === 'triangle') {\n const s = 4;\n parent\n .append('polygon')\n .attr(\n 'points',\n `${cx},${cy - s} ${cx - s},${cy + s} ${cx + s},${cy + s}`,\n )\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n return;\n }\n\n parent\n .append('circle')\n .attr('cx', cx)\n .attr('cy', cy)\n .attr('r', r)\n .attr('fill', fill)\n .attr('stroke', stroke)\n .attr('stroke-width', strokeWidth);\n}\n\n/**\n * Lollipop head — FuseDash Vertical markers (default = rhombus diamond path).\n */\nexport function appendLollipopMarkerVertical(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n parent: Selection<any, any, any, any>,\n opts: { shape: MarkerShape; color: string; cx: number; cy: number },\n): void {\n const { shape, color, cx, cy } = opts;\n if (shape === 'disabled') return;\n\n if (shape === 'donut') {\n parent\n .append('path')\n .attr(\n 'd',\n `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10 M ${cx}, ${cy - 2} a 2,2 0 1,1 0,4 a 2,2 0 1,1 0,-4`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n parent.append('circle').attr('cx', cx).attr('cy', cy).attr('r', 2).attr('fill', '#fff');\n return;\n }\n\n if (shape === 'circle') {\n parent\n .append('path')\n .attr('d', `M ${cx}, ${cy - 5} a 5,5 0 1,0 0,10 a 5,5 0 1,0 0,-10`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'square') {\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} L${cx + 5}, ${cy - 5} L${cx - 5}, ${cy - 5} Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n if (shape === 'triangle') {\n parent\n .append('path')\n .attr('d', `M${cx}, ${cy - 5} L${cx - 5}, ${cy + 5} L${cx + 5}, ${cy + 5} Z`)\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n return;\n }\n\n // default / rhombus\n parent\n .append('path')\n .attr(\n 'd',\n `M${cx}, ${cy + 5} L${cx + 5}, ${cy} L${cx}, ${cy - 5} L${cx - 5}, ${cy}Z`,\n )\n .attr('fill', color)\n .attr('stroke', '#fff')\n .attr('stroke-width', 1);\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fusedashlabs/widgets",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "Props-only chart web components for UI9000 / FuseDash MCP resources",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -136,6 +136,10 @@
|
|
|
136
136
|
"types": "./dist/components/treemap-chart/index.d.ts",
|
|
137
137
|
"import": "./dist/components/treemap-chart/index.js"
|
|
138
138
|
},
|
|
139
|
+
"./partial-dependence-chart": {
|
|
140
|
+
"types": "./dist/components/partial-dependence-chart/index.d.ts",
|
|
141
|
+
"import": "./dist/components/partial-dependence-chart/index.js"
|
|
142
|
+
},
|
|
139
143
|
"./kpi-widget": {
|
|
140
144
|
"types": "./dist/components/kpi-widget/index.d.ts",
|
|
141
145
|
"import": "./dist/components/kpi-widget/index.js"
|
|
@@ -264,6 +268,10 @@
|
|
|
264
268
|
"types": "./dist/lazy/treemap-chart.d.ts",
|
|
265
269
|
"import": "./dist/lazy/treemap-chart.js"
|
|
266
270
|
},
|
|
271
|
+
"./lazy/partial-dependence-chart": {
|
|
272
|
+
"types": "./dist/lazy/partial-dependence-chart.d.ts",
|
|
273
|
+
"import": "./dist/lazy/partial-dependence-chart.js"
|
|
274
|
+
},
|
|
267
275
|
"./lazy/kpi-widget": {
|
|
268
276
|
"types": "./dist/lazy/kpi-widget.d.ts",
|
|
269
277
|
"import": "./dist/lazy/kpi-widget.js"
|
|
@@ -284,7 +292,8 @@
|
|
|
284
292
|
"packageManager": "yarn@4.5.0",
|
|
285
293
|
"scripts": {
|
|
286
294
|
"dev": "vite --config playground/vite.config.ts",
|
|
287
|
-
"build": "tsc --noEmit && vite build && yarn bundle-size",
|
|
295
|
+
"build": "tsc --noEmit && vite build && yarn assert-dist-externals && yarn bundle-size",
|
|
296
|
+
"assert-dist-externals": "node scripts/assert-dist-externals.mjs",
|
|
288
297
|
"prepublishOnly": "yarn typecheck && yarn test && yarn build && yarn license-check",
|
|
289
298
|
"build:playground": "vite build --config playground/vite.config.ts",
|
|
290
299
|
"preview": "vite preview --config playground/vite.config.ts",
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/
|
|
6
|
-
const t = { ATTRIBUTE: 1 }, e = (t2) => (...e2) => ({ _$litDirective$: t2, values: e2 });
|
|
7
|
-
class i {
|
|
8
|
-
constructor(t2) {
|
|
9
|
-
}
|
|
10
|
-
get _$AU() {
|
|
11
|
-
return this._$AM._$AU;
|
|
12
|
-
}
|
|
13
|
-
_$AT(t2, e2, i2) {
|
|
14
|
-
this._$Ct = t2, this._$AM = e2, this._$Ci = i2;
|
|
15
|
-
}
|
|
16
|
-
_$AS(t2, e2) {
|
|
17
|
-
return this.update(t2, e2);
|
|
18
|
-
}
|
|
19
|
-
update(t2, e2) {
|
|
20
|
-
return this.render(...e2);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export {
|
|
24
|
-
i as Directive,
|
|
25
|
-
t as PartType,
|
|
26
|
-
e as directive
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=directive.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"directive.js","sources":["../../../node_modules/lit-html/directive.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n"],"names":["t","e","i"],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAKK,MAAC,IAAE,EAAC,WAAU,EAA0D,GAAE,IAAE,CAAAA,OAAG,IAAIC,QAAK,EAAC,iBAAgBD,IAAE,QAAOC,GAAC;AAAG,MAAM,EAAC;AAAA,EAAC,YAAYD,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEC,IAAEC,IAAE;AAAC,SAAK,OAAKF,IAAE,KAAK,OAAKC,IAAE,KAAK,OAAKC;AAAA,EAAC;AAAA,EAAC,KAAKF,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAOD,IAAEC,EAAC;AAAA,EAAC;AAAA,EAAC,OAAOD,IAAEC,IAAE;AAAC,WAAO,KAAK,OAAO,GAAGA,EAAC;AAAA,EAAC;AAAC;","x_google_ignoreList":[0]}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { noChange as E } from "../lit-html.js";
|
|
2
|
-
import { directive as e, Directive as i$1, PartType as t } from "../directive.js";
|
|
3
|
-
/**
|
|
4
|
-
* @license
|
|
5
|
-
* Copyright 2018 Google LLC
|
|
6
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
7
|
-
*/
|
|
8
|
-
const n = "important", i = " !" + n, o = e(class extends i$1 {
|
|
9
|
-
constructor(t$1) {
|
|
10
|
-
var _a;
|
|
11
|
-
if (super(t$1), t$1.type !== t.ATTRIBUTE || "style" !== t$1.name || ((_a = t$1.strings) == null ? void 0 : _a.length) > 2) throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.");
|
|
12
|
-
}
|
|
13
|
-
render(t2) {
|
|
14
|
-
return Object.keys(t2).reduce((e2, r) => {
|
|
15
|
-
const s = t2[r];
|
|
16
|
-
return null == s ? e2 : e2 + `${r = r.includes("-") ? r : r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g, "-$&").toLowerCase()}:${s};`;
|
|
17
|
-
}, "");
|
|
18
|
-
}
|
|
19
|
-
update(e2, [r]) {
|
|
20
|
-
const { style: s } = e2.element;
|
|
21
|
-
if (void 0 === this.ft) return this.ft = new Set(Object.keys(r)), this.render(r);
|
|
22
|
-
for (const t2 of this.ft) null == r[t2] && (this.ft.delete(t2), t2.includes("-") ? s.removeProperty(t2) : s[t2] = null);
|
|
23
|
-
for (const t2 in r) {
|
|
24
|
-
const e3 = r[t2];
|
|
25
|
-
if (null != e3) {
|
|
26
|
-
this.ft.add(t2);
|
|
27
|
-
const r2 = "string" == typeof e3 && e3.endsWith(i);
|
|
28
|
-
t2.includes("-") || r2 ? s.setProperty(t2, r2 ? e3.slice(0, -11) : e3, r2 ? n : "") : s[t2] = e3;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return E;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
export {
|
|
35
|
-
o as styleMap
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=style-map.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style-map.js","sources":["../../../../node_modules/lit-html/directives/style-map.js"],"sourcesContent":["import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n"],"names":["r","t","s","e"],"mappings":";;AACA;AAAA;AAAA;AAAA;AAAA;AAIQ,MAAC,IAAE,aAAY,IAAE,OAAK,GAAE,IAAE,EAAE,cAAcA,IAAC;AAAA,EAAC,YAAYC,KAAE;;AAAC,QAAG,MAAMA,GAAC,GAAEA,IAAE,SAAOC,EAAE,aAAW,YAAUD,IAAE,UAAMA,SAAE,YAAFA,mBAAW,UAAO,EAAE,OAAM,MAAM,4GAA4G;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE;AAAC,WAAO,OAAO,KAAKA,EAAC,EAAE,OAAO,CAACE,IAAE,MAAI;AAAC,YAAM,IAAEF,GAAE,CAAC;AAAE,aAAO,QAAM,IAAEE,KAAEA,KAAE,GAAG,IAAE,EAAE,SAAS,GAAG,IAAE,IAAE,EAAE,QAAQ,qCAAoC,KAAK,EAAE,YAAW,CAAE,IAAI,CAAC;AAAA,IAAG,GAAE,EAAE;AAAA,EAAC;AAAA,EAAC,OAAOA,IAAE,CAAC,CAAC,GAAE;AAAC,UAAK,EAAC,OAAM,EAAC,IAAEA,GAAE;AAAQ,QAAG,WAAS,KAAK,GAAG,QAAO,KAAK,KAAG,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,GAAE,KAAK,OAAO,CAAC;AAAE,eAAUF,MAAK,KAAK,GAAG,SAAM,EAAEA,EAAC,MAAI,KAAK,GAAG,OAAOA,EAAC,GAAEA,GAAE,SAAS,GAAG,IAAE,EAAE,eAAeA,EAAC,IAAE,EAAEA,EAAC,IAAE;AAAM,eAAUA,MAAK,GAAE;AAAC,YAAME,KAAE,EAAEF,EAAC;AAAE,UAAG,QAAME,IAAE;AAAC,aAAK,GAAG,IAAIF,EAAC;AAAE,cAAMD,KAAE,YAAU,OAAOG,MAAGA,GAAE,SAAS,CAAC;AAAE,QAAAF,GAAE,SAAS,GAAG,KAAGD,KAAE,EAAE,YAAYC,IAAED,KAAEG,GAAE,MAAM,GAAE,GAAG,IAAEA,IAAEH,KAAE,IAAE,EAAE,IAAE,EAAEC,EAAC,IAAEE;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOF;AAAAA,EAAC;AAAC,CAAC;","x_google_ignoreList":[0]}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/
|
|
6
|
-
const t = globalThis, i = (t2) => t2, s = t.trustedTypes, e = s ? s.createPolicy("lit-html", { createHTML: (t2) => t2 }) : void 0, h = "$lit$", o = `lit$${Math.random().toFixed(9).slice(2)}$`, n = "?" + o, r = `<${n}>`, l = document, c = () => l.createComment(""), a = (t2) => null === t2 || "object" != typeof t2 && "function" != typeof t2, u = Array.isArray, d = (t2) => u(t2) || "function" == typeof (t2 == null ? void 0 : t2[Symbol.iterator]), f = "[ \n\f\r]", v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m = />/g, p = RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^
|
|
7
|
-
\f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, E = Symbol.for("lit-noChange"), A = Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), P = l.createTreeWalker(l, 129);
|
|
8
|
-
function V(t2, i2) {
|
|
9
|
-
if (!u(t2) || !t2.hasOwnProperty("raw")) throw Error("invalid template strings array");
|
|
10
|
-
return void 0 !== e ? e.createHTML(i2) : i2;
|
|
11
|
-
}
|
|
12
|
-
const N = (t2, i2) => {
|
|
13
|
-
const s2 = t2.length - 1, e2 = [];
|
|
14
|
-
let n2, l2 = 2 === i2 ? "<svg>" : 3 === i2 ? "<math>" : "", c2 = v;
|
|
15
|
-
for (let i3 = 0; i3 < s2; i3++) {
|
|
16
|
-
const s3 = t2[i3];
|
|
17
|
-
let a2, u2, d2 = -1, f2 = 0;
|
|
18
|
-
for (; f2 < s3.length && (c2.lastIndex = f2, u2 = c2.exec(s3), null !== u2); ) f2 = c2.lastIndex, c2 === v ? "!--" === u2[1] ? c2 = _ : void 0 !== u2[1] ? c2 = m : void 0 !== u2[2] ? (y.test(u2[2]) && (n2 = RegExp("</" + u2[2], "g")), c2 = p) : void 0 !== u2[3] && (c2 = p) : c2 === p ? ">" === u2[0] ? (c2 = n2 ?? v, d2 = -1) : void 0 === u2[1] ? d2 = -2 : (d2 = c2.lastIndex - u2[2].length, a2 = u2[1], c2 = void 0 === u2[3] ? p : '"' === u2[3] ? $ : g) : c2 === $ || c2 === g ? c2 = p : c2 === _ || c2 === m ? c2 = v : (c2 = p, n2 = void 0);
|
|
19
|
-
const x = c2 === p && t2[i3 + 1].startsWith("/>") ? " " : "";
|
|
20
|
-
l2 += c2 === v ? s3 + r : d2 >= 0 ? (e2.push(a2), s3.slice(0, d2) + h + s3.slice(d2) + o + x) : s3 + o + (-2 === d2 ? i3 : x);
|
|
21
|
-
}
|
|
22
|
-
return [V(t2, l2 + (t2[s2] || "<?>") + (2 === i2 ? "</svg>" : 3 === i2 ? "</math>" : "")), e2];
|
|
23
|
-
};
|
|
24
|
-
class S {
|
|
25
|
-
constructor({ strings: t2, _$litType$: i2 }, e2) {
|
|
26
|
-
let r2;
|
|
27
|
-
this.parts = [];
|
|
28
|
-
let l2 = 0, a2 = 0;
|
|
29
|
-
const u2 = t2.length - 1, d2 = this.parts, [f2, v2] = N(t2, i2);
|
|
30
|
-
if (this.el = S.createElement(f2, e2), P.currentNode = this.el.content, 2 === i2 || 3 === i2) {
|
|
31
|
-
const t3 = this.el.content.firstChild;
|
|
32
|
-
t3.replaceWith(...t3.childNodes);
|
|
33
|
-
}
|
|
34
|
-
for (; null !== (r2 = P.nextNode()) && d2.length < u2; ) {
|
|
35
|
-
if (1 === r2.nodeType) {
|
|
36
|
-
if (r2.hasAttributes()) for (const t3 of r2.getAttributeNames()) if (t3.endsWith(h)) {
|
|
37
|
-
const i3 = v2[a2++], s2 = r2.getAttribute(t3).split(o), e3 = /([.?@])?(.*)/.exec(i3);
|
|
38
|
-
d2.push({ type: 1, index: l2, name: e3[2], strings: s2, ctor: "." === e3[1] ? I : "?" === e3[1] ? L : "@" === e3[1] ? z : H }), r2.removeAttribute(t3);
|
|
39
|
-
} else t3.startsWith(o) && (d2.push({ type: 6, index: l2 }), r2.removeAttribute(t3));
|
|
40
|
-
if (y.test(r2.tagName)) {
|
|
41
|
-
const t3 = r2.textContent.split(o), i3 = t3.length - 1;
|
|
42
|
-
if (i3 > 0) {
|
|
43
|
-
r2.textContent = s ? s.emptyScript : "";
|
|
44
|
-
for (let s2 = 0; s2 < i3; s2++) r2.append(t3[s2], c()), P.nextNode(), d2.push({ type: 2, index: ++l2 });
|
|
45
|
-
r2.append(t3[i3], c());
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
} else if (8 === r2.nodeType) if (r2.data === n) d2.push({ type: 2, index: l2 });
|
|
49
|
-
else {
|
|
50
|
-
let t3 = -1;
|
|
51
|
-
for (; -1 !== (t3 = r2.data.indexOf(o, t3 + 1)); ) d2.push({ type: 7, index: l2 }), t3 += o.length - 1;
|
|
52
|
-
}
|
|
53
|
-
l2++;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
static createElement(t2, i2) {
|
|
57
|
-
const s2 = l.createElement("template");
|
|
58
|
-
return s2.innerHTML = t2, s2;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
function M(t2, i2, s2 = t2, e2) {
|
|
62
|
-
var _a, _b;
|
|
63
|
-
if (i2 === E) return i2;
|
|
64
|
-
let h2 = void 0 !== e2 ? (_a = s2._$Co) == null ? void 0 : _a[e2] : s2._$Cl;
|
|
65
|
-
const o2 = a(i2) ? void 0 : i2._$litDirective$;
|
|
66
|
-
return (h2 == null ? void 0 : h2.constructor) !== o2 && ((_b = h2 == null ? void 0 : h2._$AO) == null ? void 0 : _b.call(h2, false), void 0 === o2 ? h2 = void 0 : (h2 = new o2(t2), h2._$AT(t2, s2, e2)), void 0 !== e2 ? (s2._$Co ?? (s2._$Co = []))[e2] = h2 : s2._$Cl = h2), void 0 !== h2 && (i2 = M(t2, h2._$AS(t2, i2.values), h2, e2)), i2;
|
|
67
|
-
}
|
|
68
|
-
class R {
|
|
69
|
-
constructor(t2, i2) {
|
|
70
|
-
this._$AV = [], this._$AN = void 0, this._$AD = t2, this._$AM = i2;
|
|
71
|
-
}
|
|
72
|
-
get parentNode() {
|
|
73
|
-
return this._$AM.parentNode;
|
|
74
|
-
}
|
|
75
|
-
get _$AU() {
|
|
76
|
-
return this._$AM._$AU;
|
|
77
|
-
}
|
|
78
|
-
u(t2) {
|
|
79
|
-
const { el: { content: i2 }, parts: s2 } = this._$AD, e2 = ((t2 == null ? void 0 : t2.creationScope) ?? l).importNode(i2, true);
|
|
80
|
-
P.currentNode = e2;
|
|
81
|
-
let h2 = P.nextNode(), o2 = 0, n2 = 0, r2 = s2[0];
|
|
82
|
-
for (; void 0 !== r2; ) {
|
|
83
|
-
if (o2 === r2.index) {
|
|
84
|
-
let i3;
|
|
85
|
-
2 === r2.type ? i3 = new k(h2, h2.nextSibling, this, t2) : 1 === r2.type ? i3 = new r2.ctor(h2, r2.name, r2.strings, this, t2) : 6 === r2.type && (i3 = new Z(h2, this, t2)), this._$AV.push(i3), r2 = s2[++n2];
|
|
86
|
-
}
|
|
87
|
-
o2 !== (r2 == null ? void 0 : r2.index) && (h2 = P.nextNode(), o2++);
|
|
88
|
-
}
|
|
89
|
-
return P.currentNode = l, e2;
|
|
90
|
-
}
|
|
91
|
-
p(t2) {
|
|
92
|
-
let i2 = 0;
|
|
93
|
-
for (const s2 of this._$AV) void 0 !== s2 && (void 0 !== s2.strings ? (s2._$AI(t2, s2, i2), i2 += s2.strings.length - 2) : s2._$AI(t2[i2])), i2++;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
class k {
|
|
97
|
-
get _$AU() {
|
|
98
|
-
var _a;
|
|
99
|
-
return ((_a = this._$AM) == null ? void 0 : _a._$AU) ?? this._$Cv;
|
|
100
|
-
}
|
|
101
|
-
constructor(t2, i2, s2, e2) {
|
|
102
|
-
this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t2, this._$AB = i2, this._$AM = s2, this.options = e2, this._$Cv = (e2 == null ? void 0 : e2.isConnected) ?? true;
|
|
103
|
-
}
|
|
104
|
-
get parentNode() {
|
|
105
|
-
let t2 = this._$AA.parentNode;
|
|
106
|
-
const i2 = this._$AM;
|
|
107
|
-
return void 0 !== i2 && 11 === (t2 == null ? void 0 : t2.nodeType) && (t2 = i2.parentNode), t2;
|
|
108
|
-
}
|
|
109
|
-
get startNode() {
|
|
110
|
-
return this._$AA;
|
|
111
|
-
}
|
|
112
|
-
get endNode() {
|
|
113
|
-
return this._$AB;
|
|
114
|
-
}
|
|
115
|
-
_$AI(t2, i2 = this) {
|
|
116
|
-
t2 = M(this, t2, i2), a(t2) ? t2 === A || null == t2 || "" === t2 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t2 !== this._$AH && t2 !== E && this._(t2) : void 0 !== t2._$litType$ ? this.$(t2) : void 0 !== t2.nodeType ? this.T(t2) : d(t2) ? this.k(t2) : this._(t2);
|
|
117
|
-
}
|
|
118
|
-
O(t2) {
|
|
119
|
-
return this._$AA.parentNode.insertBefore(t2, this._$AB);
|
|
120
|
-
}
|
|
121
|
-
T(t2) {
|
|
122
|
-
this._$AH !== t2 && (this._$AR(), this._$AH = this.O(t2));
|
|
123
|
-
}
|
|
124
|
-
_(t2) {
|
|
125
|
-
this._$AH !== A && a(this._$AH) ? this._$AA.nextSibling.data = t2 : this.T(l.createTextNode(t2)), this._$AH = t2;
|
|
126
|
-
}
|
|
127
|
-
$(t2) {
|
|
128
|
-
var _a;
|
|
129
|
-
const { values: i2, _$litType$: s2 } = t2, e2 = "number" == typeof s2 ? this._$AC(t2) : (void 0 === s2.el && (s2.el = S.createElement(V(s2.h, s2.h[0]), this.options)), s2);
|
|
130
|
-
if (((_a = this._$AH) == null ? void 0 : _a._$AD) === e2) this._$AH.p(i2);
|
|
131
|
-
else {
|
|
132
|
-
const t3 = new R(e2, this), s3 = t3.u(this.options);
|
|
133
|
-
t3.p(i2), this.T(s3), this._$AH = t3;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
_$AC(t2) {
|
|
137
|
-
let i2 = C.get(t2.strings);
|
|
138
|
-
return void 0 === i2 && C.set(t2.strings, i2 = new S(t2)), i2;
|
|
139
|
-
}
|
|
140
|
-
k(t2) {
|
|
141
|
-
u(this._$AH) || (this._$AH = [], this._$AR());
|
|
142
|
-
const i2 = this._$AH;
|
|
143
|
-
let s2, e2 = 0;
|
|
144
|
-
for (const h2 of t2) e2 === i2.length ? i2.push(s2 = new k(this.O(c()), this.O(c()), this, this.options)) : s2 = i2[e2], s2._$AI(h2), e2++;
|
|
145
|
-
e2 < i2.length && (this._$AR(s2 && s2._$AB.nextSibling, e2), i2.length = e2);
|
|
146
|
-
}
|
|
147
|
-
_$AR(t2 = this._$AA.nextSibling, s2) {
|
|
148
|
-
var _a;
|
|
149
|
-
for ((_a = this._$AP) == null ? void 0 : _a.call(this, false, true, s2); t2 !== this._$AB; ) {
|
|
150
|
-
const s3 = i(t2).nextSibling;
|
|
151
|
-
i(t2).remove(), t2 = s3;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
setConnected(t2) {
|
|
155
|
-
var _a;
|
|
156
|
-
void 0 === this._$AM && (this._$Cv = t2, (_a = this._$AP) == null ? void 0 : _a.call(this, t2));
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
class H {
|
|
160
|
-
get tagName() {
|
|
161
|
-
return this.element.tagName;
|
|
162
|
-
}
|
|
163
|
-
get _$AU() {
|
|
164
|
-
return this._$AM._$AU;
|
|
165
|
-
}
|
|
166
|
-
constructor(t2, i2, s2, e2, h2) {
|
|
167
|
-
this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t2, this.name = i2, this._$AM = e2, this.options = h2, s2.length > 2 || "" !== s2[0] || "" !== s2[1] ? (this._$AH = Array(s2.length - 1).fill(new String()), this.strings = s2) : this._$AH = A;
|
|
168
|
-
}
|
|
169
|
-
_$AI(t2, i2 = this, s2, e2) {
|
|
170
|
-
const h2 = this.strings;
|
|
171
|
-
let o2 = false;
|
|
172
|
-
if (void 0 === h2) t2 = M(this, t2, i2, 0), o2 = !a(t2) || t2 !== this._$AH && t2 !== E, o2 && (this._$AH = t2);
|
|
173
|
-
else {
|
|
174
|
-
const e3 = t2;
|
|
175
|
-
let n2, r2;
|
|
176
|
-
for (t2 = h2[0], n2 = 0; n2 < h2.length - 1; n2++) r2 = M(this, e3[s2 + n2], i2, n2), r2 === E && (r2 = this._$AH[n2]), o2 || (o2 = !a(r2) || r2 !== this._$AH[n2]), r2 === A ? t2 = A : t2 !== A && (t2 += (r2 ?? "") + h2[n2 + 1]), this._$AH[n2] = r2;
|
|
177
|
-
}
|
|
178
|
-
o2 && !e2 && this.j(t2);
|
|
179
|
-
}
|
|
180
|
-
j(t2) {
|
|
181
|
-
t2 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t2 ?? "");
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
class I extends H {
|
|
185
|
-
constructor() {
|
|
186
|
-
super(...arguments), this.type = 3;
|
|
187
|
-
}
|
|
188
|
-
j(t2) {
|
|
189
|
-
this.element[this.name] = t2 === A ? void 0 : t2;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
class L extends H {
|
|
193
|
-
constructor() {
|
|
194
|
-
super(...arguments), this.type = 4;
|
|
195
|
-
}
|
|
196
|
-
j(t2) {
|
|
197
|
-
this.element.toggleAttribute(this.name, !!t2 && t2 !== A);
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
class z extends H {
|
|
201
|
-
constructor(t2, i2, s2, e2, h2) {
|
|
202
|
-
super(t2, i2, s2, e2, h2), this.type = 5;
|
|
203
|
-
}
|
|
204
|
-
_$AI(t2, i2 = this) {
|
|
205
|
-
if ((t2 = M(this, t2, i2, 0) ?? A) === E) return;
|
|
206
|
-
const s2 = this._$AH, e2 = t2 === A && s2 !== A || t2.capture !== s2.capture || t2.once !== s2.once || t2.passive !== s2.passive, h2 = t2 !== A && (s2 === A || e2);
|
|
207
|
-
e2 && this.element.removeEventListener(this.name, this, s2), h2 && this.element.addEventListener(this.name, this, t2), this._$AH = t2;
|
|
208
|
-
}
|
|
209
|
-
handleEvent(t2) {
|
|
210
|
-
var _a;
|
|
211
|
-
"function" == typeof this._$AH ? this._$AH.call(((_a = this.options) == null ? void 0 : _a.host) ?? this.element, t2) : this._$AH.handleEvent(t2);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
class Z {
|
|
215
|
-
constructor(t2, i2, s2) {
|
|
216
|
-
this.element = t2, this.type = 6, this._$AN = void 0, this._$AM = i2, this.options = s2;
|
|
217
|
-
}
|
|
218
|
-
get _$AU() {
|
|
219
|
-
return this._$AM._$AU;
|
|
220
|
-
}
|
|
221
|
-
_$AI(t2) {
|
|
222
|
-
M(this, t2);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
const B = t.litHtmlPolyfillSupport;
|
|
226
|
-
B == null ? void 0 : B(S, k), (t.litHtmlVersions ?? (t.litHtmlVersions = [])).push("3.3.3");
|
|
227
|
-
export {
|
|
228
|
-
E as noChange,
|
|
229
|
-
A as nothing
|
|
230
|
-
};
|
|
231
|
-
//# sourceMappingURL=lit-html.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lit-html.js","sources":["../../../node_modules/lit-html/lit-html.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;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++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.3\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n"],"names":["t","i","s","e","n","l","c","a","u","d","f","r","v","h","o"],"mappings":"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","x_google_ignoreList":[0]}
|