@burdenoff/microfe-bigconsole 2026.805.2 → 2026.805.3
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/dist/bigconsole/components/builder/inspector/DataBindingSection.js +109 -113
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +115 -113
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +71 -62
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +90 -89
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +56 -54
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +126 -125
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +151 -150
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +77 -76
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +97 -96
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +172 -191
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +75 -83
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +151 -154
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +181 -190
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +110 -108
- package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +102 -103
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +36 -41
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +38 -37
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +182 -197
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +166 -168
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
- package/dist/bigconsole/components/parser/DataSinkSelector.js +87 -86
- package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
- package/dist/bigconsole/components/parser/ImportParserDialog.js +196 -211
- package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
- package/dist/bigconsole/components/parser/ParserSelector.js +130 -128
- package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +66 -63
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -91
- package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +222 -215
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +149 -145
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +504 -470
- package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +44 -47
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +143 -142
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +101 -88
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +135 -134
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
- package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
- package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +69 -68
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +64 -72
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +60 -59
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/list/ListConfig.js +57 -56
- package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +70 -69
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +178 -177
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +76 -75
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/table/TableConfig.js +183 -168
- package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +187 -180
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +40 -38
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +150 -148
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
- package/dist/bigconsole/pages/DashboardBuilderPage.js +181 -176
- package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardViewPage.js +196 -192
- package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardsPage.js +223 -219
- package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
- package/dist/bigconsole/pages/DataParsersPage.js +167 -170
- package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +204 -189
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +175 -169
- package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSourcesPage.js +8 -7
- package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
- package/dist/bigconsole/pages/InsightsPage.js +238 -208
- package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserBuilderPage.js +464 -412
- package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/ParserViewPage.js +92 -90
- package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +221 -194
- package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineViewPage.js +181 -184
- package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelinesPage.js +128 -127
- package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
- package/dist/bigconsole/pages/SettingsPage.js +177 -172
- package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
- package/dist/bigconsole/pages/WidgetDemoPage.js +121 -83
- package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowViewPage.js +199 -193
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +129 -128
- package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { memo as e, useMemo as t } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useI18n as n } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
3
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
3
4
|
//#region src/bigconsole/components/widgets/metric-card/SparklineChart.tsx
|
|
4
|
-
var
|
|
5
|
+
var a = {
|
|
5
6
|
primary: {
|
|
6
7
|
stroke: "stroke-action-primary-bg",
|
|
7
8
|
fill: "fill-action-primary-bg/20"
|
|
@@ -22,73 +23,73 @@ var i = {
|
|
|
22
23
|
stroke: "stroke-text-secondary",
|
|
23
24
|
fill: "fill-text-secondary/10"
|
|
24
25
|
}
|
|
25
|
-
},
|
|
26
|
-
let
|
|
26
|
+
}, o = e(function({ data: e, width: o = 100, height: s = 32, color: c = "primary", showFill: l = !0, strokeWidth: u = 2 }) {
|
|
27
|
+
let { t: d } = n(), f = t(() => {
|
|
27
28
|
if (!e.length) return {
|
|
28
29
|
line: "",
|
|
29
30
|
area: ""
|
|
30
31
|
};
|
|
31
|
-
let t = e.map((e) => e.value), n = Math.min(...t), r = Math.max(...t) - n || 1, i =
|
|
32
|
-
x: i +
|
|
32
|
+
let t = e.map((e) => e.value), n = Math.min(...t), r = Math.max(...t) - n || 1, i = u, a = o - i * 2, c = s - i * 2, l = e.map((t, o) => ({
|
|
33
|
+
x: i + o / (e.length - 1) * a,
|
|
33
34
|
y: i + c - (t.value - n) / r * c
|
|
34
|
-
})), d =
|
|
35
|
+
})), d = l.map((e, t) => `${t === 0 ? "M" : "L"} ${e.x} ${e.y}`).join(" ");
|
|
35
36
|
return {
|
|
36
37
|
line: d,
|
|
37
38
|
area: `
|
|
38
39
|
${d}
|
|
39
|
-
L ${
|
|
40
|
-
L ${i} ${
|
|
40
|
+
L ${l[l.length - 1].x} ${s - i}
|
|
41
|
+
L ${i} ${s - i}
|
|
41
42
|
Z
|
|
42
43
|
`
|
|
43
44
|
};
|
|
44
45
|
}, [
|
|
45
46
|
e,
|
|
46
|
-
a,
|
|
47
47
|
o,
|
|
48
|
-
|
|
48
|
+
s,
|
|
49
|
+
u
|
|
49
50
|
]);
|
|
50
|
-
if (!e.length) return /* @__PURE__ */
|
|
51
|
+
if (!e.length) return /* @__PURE__ */ r("div", {
|
|
51
52
|
className: "flex items-center justify-center text-text-secondary",
|
|
52
53
|
style: {
|
|
53
|
-
width:
|
|
54
|
-
height:
|
|
54
|
+
width: o,
|
|
55
|
+
height: s
|
|
55
56
|
},
|
|
56
|
-
children: /* @__PURE__ */
|
|
57
|
+
children: /* @__PURE__ */ r("span", {
|
|
57
58
|
className: "text-xs",
|
|
58
|
-
children: "No data"
|
|
59
|
+
children: d("bigconsole.widget.sparkline.noData", "No data")
|
|
59
60
|
})
|
|
60
61
|
});
|
|
61
|
-
let
|
|
62
|
-
return /* @__PURE__ */
|
|
63
|
-
width:
|
|
64
|
-
height:
|
|
62
|
+
let p = a[c];
|
|
63
|
+
return /* @__PURE__ */ i("svg", {
|
|
64
|
+
width: o,
|
|
65
|
+
height: s,
|
|
65
66
|
className: "overflow-visible",
|
|
66
67
|
role: "img",
|
|
67
|
-
"aria-label": "Sparkline chart",
|
|
68
|
+
"aria-label": d("bigconsole.widget.sparkline.ariaLabel", "Sparkline chart"),
|
|
68
69
|
children: [
|
|
69
|
-
|
|
70
|
-
d:
|
|
71
|
-
className:
|
|
70
|
+
l && /* @__PURE__ */ r("path", {
|
|
71
|
+
d: f.area,
|
|
72
|
+
className: p.fill,
|
|
72
73
|
strokeWidth: 0
|
|
73
74
|
}),
|
|
74
|
-
/* @__PURE__ */
|
|
75
|
-
d:
|
|
76
|
-
className:
|
|
75
|
+
/* @__PURE__ */ r("path", {
|
|
76
|
+
d: f.line,
|
|
77
|
+
className: p.stroke,
|
|
77
78
|
fill: "none",
|
|
78
|
-
strokeWidth:
|
|
79
|
+
strokeWidth: u,
|
|
79
80
|
strokeLinecap: "round",
|
|
80
81
|
strokeLinejoin: "round"
|
|
81
82
|
}),
|
|
82
|
-
e.length > 0 && /* @__PURE__ */
|
|
83
|
-
cx:
|
|
84
|
-
cy:
|
|
85
|
-
r:
|
|
86
|
-
className: `${
|
|
83
|
+
e.length > 0 && /* @__PURE__ */ r("circle", {
|
|
84
|
+
cx: o - u,
|
|
85
|
+
cy: u + (s - u * 2) - (e[e.length - 1].value - Math.min(...e.map((e) => e.value))) / (Math.max(...e.map((e) => e.value)) - Math.min(...e.map((e) => e.value)) || 1) * (s - u * 2),
|
|
86
|
+
r: u + 1,
|
|
87
|
+
className: `${p.stroke.replace("stroke-", "fill-")}`
|
|
87
88
|
})
|
|
88
89
|
]
|
|
89
90
|
});
|
|
90
91
|
});
|
|
91
92
|
//#endregion
|
|
92
|
-
export {
|
|
93
|
+
export { o as default };
|
|
93
94
|
|
|
94
95
|
//# sourceMappingURL=SparklineChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparklineChart.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/SparklineChart.tsx"],"sourcesContent":["/**\n * SparklineChart Component\n *\n * Mini trend chart for metric cards.\n */\n\nimport { type FC, memo, useMemo } from 'react';\n\nexport interface SparklineDataPoint {\n value: number;\n timestamp?: string;\n}\n\nexport interface SparklineChartProps {\n /** Data points for the sparkline */\n data: SparklineDataPoint[];\n /** Width of the chart */\n width?: number;\n /** Height of the chart */\n height?: number;\n /** Line color (uses semantic token) */\n color?: 'primary' | 'success' | 'error' | 'warning' | 'muted';\n /** Whether to show the fill area */\n showFill?: boolean;\n /** Stroke width */\n strokeWidth?: number;\n}\n\nconst COLOR_CLASSES = {\n primary: {\n stroke: 'stroke-action-primary-bg',\n fill: 'fill-action-primary-bg/20',\n },\n success: {\n stroke: 'stroke-status-success-bg',\n fill: 'fill-status-success-bg/20',\n },\n error: {\n stroke: 'stroke-status-error-bg',\n fill: 'fill-status-error-bg/20',\n },\n warning: {\n stroke: 'stroke-status-warning-bg',\n fill: 'fill-status-warning-bg/20',\n },\n muted: {\n stroke: 'stroke-text-secondary',\n fill: 'fill-text-secondary/10',\n },\n};\n\nexport const SparklineChart: FC<SparklineChartProps> = memo(function SparklineChart({\n data,\n width = 100,\n height = 32,\n color = 'primary',\n showFill = true,\n strokeWidth = 2,\n}) {\n const pathData = useMemo(() => {\n if (!data.length) return { line: '', area: '' };\n\n const values = data.map((d) => d.value);\n const min = Math.min(...values);\n const max = Math.max(...values);\n const range = max - min || 1;\n\n const padding = strokeWidth;\n const chartWidth = width - padding * 2;\n const chartHeight = height - padding * 2;\n\n const points = data.map((d, i) => {\n const x = padding + (i / (data.length - 1)) * chartWidth;\n const y = padding + chartHeight - ((d.value - min) / range) * chartHeight;\n return { x, y };\n });\n\n // Create line path\n const linePath = points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${p.x} ${p.y}`).join(' ');\n\n // Create area path (closed shape for fill)\n const areaPath = `\n ${linePath}\n L ${points[points.length - 1].x} ${height - padding}\n L ${padding} ${height - padding}\n Z\n `;\n\n return { line: linePath, area: areaPath };\n }, [data, width, height, strokeWidth]);\n\n if (!data.length) {\n return (\n <div className=\"flex items-center justify-center text-text-secondary\" style={{ width, height }}>\n <span className=\"text-xs\">No data</span>\n </div>\n );\n }\n\n const colors = COLOR_CLASSES[color];\n\n return (\n <svg
|
|
1
|
+
{"version":3,"file":"SparklineChart.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/SparklineChart.tsx"],"sourcesContent":["/**\n * SparklineChart Component\n *\n * Mini trend chart for metric cards.\n */\n\nimport { type FC, memo, useMemo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nexport interface SparklineDataPoint {\n value: number;\n timestamp?: string;\n}\n\nexport interface SparklineChartProps {\n /** Data points for the sparkline */\n data: SparklineDataPoint[];\n /** Width of the chart */\n width?: number;\n /** Height of the chart */\n height?: number;\n /** Line color (uses semantic token) */\n color?: 'primary' | 'success' | 'error' | 'warning' | 'muted';\n /** Whether to show the fill area */\n showFill?: boolean;\n /** Stroke width */\n strokeWidth?: number;\n}\n\nconst COLOR_CLASSES = {\n primary: {\n stroke: 'stroke-action-primary-bg',\n fill: 'fill-action-primary-bg/20',\n },\n success: {\n stroke: 'stroke-status-success-bg',\n fill: 'fill-status-success-bg/20',\n },\n error: {\n stroke: 'stroke-status-error-bg',\n fill: 'fill-status-error-bg/20',\n },\n warning: {\n stroke: 'stroke-status-warning-bg',\n fill: 'fill-status-warning-bg/20',\n },\n muted: {\n stroke: 'stroke-text-secondary',\n fill: 'fill-text-secondary/10',\n },\n};\n\nexport const SparklineChart: FC<SparklineChartProps> = memo(function SparklineChart({\n data,\n width = 100,\n height = 32,\n color = 'primary',\n showFill = true,\n strokeWidth = 2,\n}) {\n const { t } = useI18n();\n const pathData = useMemo(() => {\n if (!data.length) return { line: '', area: '' };\n\n const values = data.map((d) => d.value);\n const min = Math.min(...values);\n const max = Math.max(...values);\n const range = max - min || 1;\n\n const padding = strokeWidth;\n const chartWidth = width - padding * 2;\n const chartHeight = height - padding * 2;\n\n const points = data.map((d, i) => {\n const x = padding + (i / (data.length - 1)) * chartWidth;\n const y = padding + chartHeight - ((d.value - min) / range) * chartHeight;\n return { x, y };\n });\n\n // Create line path\n const linePath = points.map((p, i) => `${i === 0 ? 'M' : 'L'} ${p.x} ${p.y}`).join(' ');\n\n // Create area path (closed shape for fill)\n const areaPath = `\n ${linePath}\n L ${points[points.length - 1].x} ${height - padding}\n L ${padding} ${height - padding}\n Z\n `;\n\n return { line: linePath, area: areaPath };\n }, [data, width, height, strokeWidth]);\n\n if (!data.length) {\n return (\n <div className=\"flex items-center justify-center text-text-secondary\" style={{ width, height }}>\n <span className=\"text-xs\">{t('bigconsole.widget.sparkline.noData', 'No data')}</span>\n </div>\n );\n }\n\n const colors = COLOR_CLASSES[color];\n\n return (\n <svg\n width={width}\n height={height}\n className=\"overflow-visible\"\n role=\"img\"\n aria-label={t('bigconsole.widget.sparkline.ariaLabel', 'Sparkline chart')}\n >\n {/* Gradient fill */}\n {showFill && <path d={pathData.area} className={colors.fill} strokeWidth={0} />}\n\n {/* Line */}\n <path\n d={pathData.line}\n className={colors.stroke}\n fill=\"none\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n\n {/* End dot */}\n {data.length > 0 && (\n <circle\n cx={width - strokeWidth}\n cy={\n strokeWidth +\n (height - strokeWidth * 2) -\n ((data[data.length - 1].value - Math.min(...data.map((d) => d.value))) /\n (Math.max(...data.map((d) => d.value)) - Math.min(...data.map((d) => d.value)) || 1)) *\n (height - strokeWidth * 2)\n }\n r={strokeWidth + 1}\n className={`${colors.stroke.replace('stroke-', 'fill-')}`}\n />\n )}\n </svg>\n );\n});\n\nexport default SparklineChart;\n"],"mappings":";;;;AA6BA,IAAM,IAAgB;CACpB,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,OAAO;EACL,QAAQ;EACR,MAAM;EACP;CACD,SAAS;EACP,QAAQ;EACR,MAAM;EACP;CACD,OAAO;EACL,QAAQ;EACR,MAAM;EACP;CACF,EAEY,IAA0C,EAAK,SAAwB,EAClF,SACA,WAAQ,KACR,YAAS,IACT,WAAQ,WACR,cAAW,IACX,iBAAc,KACb;CACD,IAAM,EAAE,SAAM,GAAS,EACjB,IAAW,QAAc;AAC7B,MAAI,CAAC,EAAK,OAAQ,QAAO;GAAE,MAAM;GAAI,MAAM;GAAI;EAE/C,IAAM,IAAS,EAAK,KAAK,MAAM,EAAE,MAAM,EACjC,IAAM,KAAK,IAAI,GAAG,EAAO,EAEzB,IADM,KAAK,IAAI,GAAG,EAAO,GACX,KAAO,GAErB,IAAU,GACV,IAAa,IAAQ,IAAU,GAC/B,IAAc,IAAS,IAAU,GAEjC,IAAS,EAAK,KAAK,GAAG,OAGnB;GAAE,GAFC,IAAW,KAAK,EAAK,SAAS,KAAM;GAElC,GADF,IAAU,KAAgB,EAAE,QAAQ,KAAO,IAAS;GAC/C,EACf,EAGI,IAAW,EAAO,KAAK,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,IAAI;AAUvF,SAAO;GAAE,MAAM;GAAU,MAPR;UACX,EAAS;YACP,EAAO,EAAO,SAAS,GAAG,EAAE,GAAG,IAAS,EAAQ;YAChD,EAAQ,GAAG,IAAS,EAAQ;;;GAIK;IACxC;EAAC;EAAM;EAAO;EAAQ;EAAY,CAAC;AAEtC,KAAI,CAAC,EAAK,OACR,QACE,kBAAC,OAAD;EAAK,WAAU;EAAuD,OAAO;GAAE;GAAO;GAAQ;YAC5F,kBAAC,QAAD;GAAM,WAAU;aAAW,EAAE,sCAAsC,UAAU;GAAQ,CAAA;EACjF,CAAA;CAIV,IAAM,IAAS,EAAc;AAE7B,QACE,kBAAC,OAAD;EACS;EACC;EACR,WAAU;EACV,MAAK;EACL,cAAY,EAAE,yCAAyC,kBAAkB;YAL3E;GAQG,KAAY,kBAAC,QAAD;IAAM,GAAG,EAAS;IAAM,WAAW,EAAO;IAAM,aAAa;IAAK,CAAA;GAG/E,kBAAC,QAAD;IACE,GAAG,EAAS;IACZ,WAAW,EAAO;IAClB,MAAK;IACQ;IACb,eAAc;IACd,gBAAe;IACf,CAAA;GAGD,EAAK,SAAS,KACb,kBAAC,UAAD;IACE,IAAI,IAAQ;IACZ,IACE,KACC,IAAS,IAAc,MACtB,EAAK,EAAK,SAAS,GAAG,QAAQ,KAAK,IAAI,GAAG,EAAK,KAAK,MAAM,EAAE,MAAM,CAAC,KAClE,KAAK,IAAI,GAAG,EAAK,KAAK,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,IAAI,GAAG,EAAK,KAAK,MAAM,EAAE,MAAM,CAAC,IAAI,MACjF,IAAS,IAAc;IAE5B,GAAG,IAAc;IACjB,WAAW,GAAG,EAAO,OAAO,QAAQ,WAAW,QAAQ;IACvD,CAAA;GAEA;;EAER"}
|
|
@@ -1,47 +1,48 @@
|
|
|
1
1
|
import { memo as e } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useI18n as t } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
4
|
//#region src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx
|
|
4
|
-
var
|
|
5
|
+
var r = {
|
|
5
6
|
sm: "w-3 h-3",
|
|
6
7
|
md: "w-4 h-4",
|
|
7
8
|
lg: "w-5 h-5"
|
|
8
|
-
},
|
|
9
|
-
let
|
|
9
|
+
}, i = e(function({ direction: e, size: i = "md", positiveIsGood: a = !0 }) {
|
|
10
|
+
let { t: o } = t(), s = () => {
|
|
10
11
|
if (e === "flat") return "text-text-secondary";
|
|
11
12
|
let t = e === "up";
|
|
12
|
-
return (
|
|
13
|
-
},
|
|
14
|
-
return e === "flat" ? /* @__PURE__ */
|
|
15
|
-
className: `${
|
|
13
|
+
return (a ? t : !t) ? "text-status-success-text" : "text-status-error-text";
|
|
14
|
+
}, c = r[i], l = s();
|
|
15
|
+
return e === "flat" ? /* @__PURE__ */ n("svg", {
|
|
16
|
+
className: `${c} ${l}`,
|
|
16
17
|
fill: "none",
|
|
17
18
|
stroke: "currentColor",
|
|
18
19
|
viewBox: "0 0 24 24",
|
|
19
|
-
"aria-label": "No change",
|
|
20
|
-
children: /* @__PURE__ */
|
|
20
|
+
"aria-label": o("bigconsole.widget.trend.noChange", "No change"),
|
|
21
|
+
children: /* @__PURE__ */ n("path", {
|
|
21
22
|
strokeLinecap: "round",
|
|
22
23
|
strokeLinejoin: "round",
|
|
23
24
|
strokeWidth: 2,
|
|
24
25
|
d: "M5 12h14"
|
|
25
26
|
})
|
|
26
|
-
}) : e === "up" ? /* @__PURE__ */
|
|
27
|
-
className: `${
|
|
27
|
+
}) : e === "up" ? /* @__PURE__ */ n("svg", {
|
|
28
|
+
className: `${c} ${l}`,
|
|
28
29
|
fill: "none",
|
|
29
30
|
stroke: "currentColor",
|
|
30
31
|
viewBox: "0 0 24 24",
|
|
31
|
-
"aria-label": "Trending up",
|
|
32
|
-
children: /* @__PURE__ */
|
|
32
|
+
"aria-label": o("bigconsole.widget.trend.up", "Trending up"),
|
|
33
|
+
children: /* @__PURE__ */ n("path", {
|
|
33
34
|
strokeLinecap: "round",
|
|
34
35
|
strokeLinejoin: "round",
|
|
35
36
|
strokeWidth: 2,
|
|
36
37
|
d: "M5 15l7-7 7 7"
|
|
37
38
|
})
|
|
38
|
-
}) : /* @__PURE__ */
|
|
39
|
-
className: `${
|
|
39
|
+
}) : /* @__PURE__ */ n("svg", {
|
|
40
|
+
className: `${c} ${l}`,
|
|
40
41
|
fill: "none",
|
|
41
42
|
stroke: "currentColor",
|
|
42
43
|
viewBox: "0 0 24 24",
|
|
43
|
-
"aria-label": "Trending down",
|
|
44
|
-
children: /* @__PURE__ */
|
|
44
|
+
"aria-label": o("bigconsole.widget.trend.down", "Trending down"),
|
|
45
|
+
children: /* @__PURE__ */ n("path", {
|
|
45
46
|
strokeLinecap: "round",
|
|
46
47
|
strokeLinejoin: "round",
|
|
47
48
|
strokeWidth: 2,
|
|
@@ -50,6 +51,6 @@ var n = {
|
|
|
50
51
|
});
|
|
51
52
|
});
|
|
52
53
|
//#endregion
|
|
53
|
-
export {
|
|
54
|
+
export { i as default };
|
|
54
55
|
|
|
55
56
|
//# sourceMappingURL=TrendIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrendIndicator.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx"],"sourcesContent":["/**\n * TrendIndicator Component\n *\n * Displays up/down/flat trend arrow with color coding.\n */\n\nimport { type FC, memo } from 'react';\n\nexport type TrendDirection = 'up' | 'down' | 'flat';\n\nexport interface TrendIndicatorProps {\n /** Direction of the trend */\n direction: TrendDirection;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether positive trend is good (default true for metrics like revenue) */\n positiveIsGood?: boolean;\n}\n\nconst SIZE_CLASSES = {\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n};\n\nexport const TrendIndicator: FC<TrendIndicatorProps> = memo(function TrendIndicator({\n direction,\n size = 'md',\n positiveIsGood = true,\n}) {\n // Determine color based on direction and whether positive is good\n const getColorClass = (): string => {\n if (direction === 'flat') {\n return 'text-text-secondary';\n }\n\n const isPositive = direction === 'up';\n const isGood = positiveIsGood ? isPositive : !isPositive;\n\n return isGood ? 'text-status-success-text' : 'text-status-error-text';\n };\n\n const sizeClass = SIZE_CLASSES[size];\n const colorClass = getColorClass();\n\n if (direction === 'flat') {\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label
|
|
1
|
+
{"version":3,"file":"TrendIndicator.js","names":[],"sources":["../../../../../src/bigconsole/components/widgets/metric-card/TrendIndicator.tsx"],"sourcesContent":["/**\n * TrendIndicator Component\n *\n * Displays up/down/flat trend arrow with color coding.\n */\n\nimport { type FC, memo } from 'react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\n\nexport type TrendDirection = 'up' | 'down' | 'flat';\n\nexport interface TrendIndicatorProps {\n /** Direction of the trend */\n direction: TrendDirection;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Whether positive trend is good (default true for metrics like revenue) */\n positiveIsGood?: boolean;\n}\n\nconst SIZE_CLASSES = {\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n};\n\nexport const TrendIndicator: FC<TrendIndicatorProps> = memo(function TrendIndicator({\n direction,\n size = 'md',\n positiveIsGood = true,\n}) {\n const { t } = useI18n();\n // Determine color based on direction and whether positive is good\n const getColorClass = (): string => {\n if (direction === 'flat') {\n return 'text-text-secondary';\n }\n\n const isPositive = direction === 'up';\n const isGood = positiveIsGood ? isPositive : !isPositive;\n\n return isGood ? 'text-status-success-text' : 'text-status-error-text';\n };\n\n const sizeClass = SIZE_CLASSES[size];\n const colorClass = getColorClass();\n\n if (direction === 'flat') {\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.noChange', 'No change')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 12h14\" />\n </svg>\n );\n }\n\n if (direction === 'up') {\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.up', 'Trending up')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 15l7-7 7 7\" />\n </svg>\n );\n }\n\n return (\n <svg\n className={`${sizeClass} ${colorClass}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-label={t('bigconsole.widget.trend.down', 'Trending down')}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n});\n\nexport default TrendIndicator;\n"],"mappings":";;;;AAoBA,IAAM,IAAe;CACnB,IAAI;CACJ,IAAI;CACJ,IAAI;CACL,EAEY,IAA0C,EAAK,SAAwB,EAClF,cACA,UAAO,MACP,oBAAiB,MAChB;CACD,IAAM,EAAE,SAAM,GAAS,EAEjB,UAA8B;AAClC,MAAI,MAAc,OAChB,QAAO;EAGT,IAAM,IAAa,MAAc;AAGjC,UAFe,IAAiB,IAAa,CAAC,KAE9B,6BAA6B;IAGzC,IAAY,EAAa,IACzB,IAAa,GAAe;AA8BlC,QA5BI,MAAc,SAEd,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,oCAAoC,YAAY;YAE9D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAa,CAAA;EAC9E,CAAA,GAIN,MAAc,OAEd,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,8BAA8B,cAAc;YAE1D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAkB,CAAA;EACnF,CAAA,GAKR,kBAAC,OAAD;EACE,WAAW,GAAG,EAAU,GAAG;EAC3B,MAAK;EACL,QAAO;EACP,SAAQ;EACR,cAAY,EAAE,gCAAgC,gBAAgB;YAE9D,kBAAC,QAAD;GAAM,eAAc;GAAQ,gBAAe;GAAQ,aAAa;GAAG,GAAE;GAAmB,CAAA;EACpF,CAAA;EAER"}
|