@proounce/shared-common 0.0.0-stage → 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/charts/FusionChart.tsx","../../src/charts/CommonChart.tsx"],"names":["useState","useEffect","ReactFusioncharts","FusionCharts","charts","jsx","useMemo","Stack","jsxs","Typography","TextField","MenuItem"],"mappings":"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","file":"fusion.cjs","sourcesContent":["import FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts.js\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport { useEffect, useState } from \"react\";\n\nlet fusionRegistered = false;\n\nexport interface FusionChartProps {\n type: string;\n dataSource: Record<string, unknown>;\n width?: string | number;\n height?: string | number;\n events?: Record<string, (...args: unknown[]) => void>;\n licenseKey?: string | Promise<string>;\n loadingFallback?: React.ReactNode;\n \"aria-label\"?: string;\n}\n\n/**\n * Generic FusionCharts renderer. Data and optional licensing are injected by the\n * consuming application, so this package never performs an API request.\n */\nexport function FusionChart({\n type,\n dataSource,\n width = \"100%\",\n height = 400,\n events,\n licenseKey,\n loadingFallback = null,\n \"aria-label\": ariaLabel = \"Chart\",\n}: FusionChartProps) {\n const [registered, setRegistered] = useState(fusionRegistered);\n const [licenseReady, setLicenseReady] = useState(!licenseKey);\n\n useEffect(() => {\n if (!fusionRegistered) {\n ReactFusioncharts.fcRoot(FusionCharts, charts);\n fusionRegistered = true;\n }\n setRegistered(true);\n }, []);\n\n useEffect(() => {\n let active = true;\n if (!licenseKey) {\n setLicenseReady(true);\n return undefined;\n }\n setLicenseReady(false);\n void Promise.resolve(licenseKey).then((key) => {\n const options = FusionCharts.options as typeof FusionCharts.options & {\n license: (settings: { key: string; creditLabel: boolean }) => void;\n };\n options.license({ key, creditLabel: false });\n if (active) setLicenseReady(true);\n });\n return () => {\n active = false;\n };\n }, [licenseKey]);\n\n if (!registered || !licenseReady) return loadingFallback;\n\n return (\n <div role=\"img\" aria-label={ariaLabel}>\n <ReactFusioncharts\n type={type}\n width={width}\n height={height}\n dataFormat=\"json\"\n dataSource={dataSource}\n {...(events ? { events } : {})}\n />\n </div>\n );\n}\n\nexport type FusionChartPresetProps = Omit<FusionChartProps, \"type\">;\n\nexport function FusionBarChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"bar2d\" {...props} />;\n}\n\nexport function FusionColumnChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"column2d\" {...props} />;\n}\n\nexport function FusionDoughnutChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"doughnut2d\" {...props} />;\n}\n\nexport const GenericChart = FusionChart;\nexport const FusionDefaultCharts = FusionChart;\nexport const GenericChartCDMS = FusionChart;\nexport const FusionDefaultChartsPF = FusionChart;\nexport const FusionDefaultChartsPH = FusionChart;\n","import MenuItem from \"@mui/material/MenuItem\";\nimport Stack from \"@mui/material/Stack\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { useMemo, useState, type ReactNode } from \"react\";\nimport {\n FusionChart,\n type FusionChartPresetProps,\n type FusionChartProps,\n} from \"./FusionChart\";\n\nexport interface CommonChartDatum extends Record<string, unknown> {\n label: string;\n value: string | number;\n displayValue?: string;\n color?: string;\n toolText?: string;\n link?: string;\n}\n\nexport interface CommonChartTypeOption {\n value: string;\n label: string;\n}\n\nexport const DEFAULT_CHART_TYPES: readonly CommonChartTypeOption[] = [\n { value: \"column2d\", label: \"Column\" },\n { value: \"bar2d\", label: \"Bar\" },\n { value: \"line\", label: \"Line\" },\n { value: \"area2d\", label: \"Area\" },\n { value: \"pie2d\", label: \"Pie\" },\n { value: \"doughnut2d\", label: \"Doughnut\" },\n];\n\nexport interface CommonChartProps\n extends Omit<FusionChartProps, \"type\" | \"dataSource\"> {\n type?: string;\n title?: ReactNode;\n caption?: string;\n subCaption?: string;\n xAxisName?: string;\n yAxisName?: string;\n items: readonly CommonChartDatum[];\n chartOptions?: Record<string, unknown>;\n selectableTypes?: readonly CommonChartTypeOption[];\n showTypeSelector?: boolean;\n selectorLabel?: string;\n description?: ReactNode;\n showDataTable?: boolean;\n dataTableLabel?: string;\n onTypeChange?: (type: string) => void;\n}\n\n/**\n * Common chart contract used by applications: data, labels and display options\n * are supplied through props and no API or license lookup is performed.\n */\nexport function CommonChart({\n type = \"column2d\",\n title,\n caption,\n subCaption,\n xAxisName,\n yAxisName,\n items,\n chartOptions,\n selectableTypes = DEFAULT_CHART_TYPES,\n showTypeSelector = false,\n selectorLabel = \"Chart type\",\n description,\n showDataTable = false,\n dataTableLabel = \"View chart data\",\n onTypeChange,\n \"aria-label\": ariaLabel,\n ...chartProps\n}: CommonChartProps) {\n const [selectedType, setSelectedType] = useState<string | null>(null);\n const activeType = selectedType ?? type;\n\n const dataSource = useMemo(\n () => ({\n chart: {\n caption: caption ?? (typeof title === \"string\" ? title : undefined),\n subCaption,\n xAxisName,\n yAxisName,\n baseFont: \"Inter, sans-serif\",\n baseFontSize: \"13\",\n showBorder: \"0\",\n showCanvasBorder: \"0\",\n usePlotGradientColor: \"0\",\n showPlotBorder: \"0\",\n showShadow: \"0\",\n showLegend: \"1\",\n legendPosition: \"bottom\",\n labelDisplay: \"rotate\",\n slantLabels: \"1\",\n maxColWidth: \"15\",\n maxBarHeight: \"15\",\n animation: \"1\",\n ...chartOptions,\n },\n data: [...items],\n }),\n [caption, chartOptions, items, subCaption, title, xAxisName, yAxisName],\n );\n\n const accessibleName =\n ariaLabel ?? caption ?? (typeof title === \"string\" ? title : \"Chart\");\n\n return (\n <Stack component=\"section\" spacing={1.5} aria-label={accessibleName}>\n {title || showTypeSelector ? (\n <Stack\n direction={{ xs: \"column\", sm: \"row\" }}\n alignItems={{ xs: \"stretch\", sm: \"center\" }}\n justifyContent=\"space-between\"\n gap={1}\n >\n {title ? <Typography component=\"h2\" variant=\"h6\">{title}</Typography> : null}\n {showTypeSelector ? (\n <TextField\n select\n size=\"small\"\n label={selectorLabel}\n value={activeType}\n onChange={(event) => {\n setSelectedType(event.target.value);\n onTypeChange?.(event.target.value);\n }}\n sx={{ minWidth: 160 }}\n >\n {selectableTypes.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </TextField>\n ) : null}\n </Stack>\n ) : null}\n {description ? <Typography color=\"text.secondary\">{description}</Typography> : null}\n <FusionChart\n type={activeType}\n dataSource={dataSource}\n aria-label={accessibleName}\n {...chartProps}\n />\n {showDataTable ? (\n <details>\n <summary>{dataTableLabel}</summary>\n <table>\n <caption>{accessibleName}</caption>\n <thead><tr><th scope=\"col\">Label</th><th scope=\"col\">Value</th></tr></thead>\n <tbody>\n {items.map((item) => (\n <tr key={item.label}>\n <th scope=\"row\">{item.label}</th>\n <td>{item.displayValue ?? item.value}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </details>\n ) : null}\n </Stack>\n );\n}\n\nexport type CommonChartPresetProps = Omit<CommonChartProps, \"type\">;\n\nexport function CommonBarChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"bar2d\" {...props} />;\n}\nexport function CommonColumnChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"column2d\" {...props} />;\n}\nexport function LineChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"line\" {...props} />;\n}\nexport function AreaChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"area2d\" {...props} />;\n}\nexport function PieChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"pie2d\" {...props} />;\n}\nexport function CommonDoughnutChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"doughnut2d\" {...props} />;\n}\n\nexport type CompatibleChartPresetProps =\n | CommonChartPresetProps\n | FusionChartPresetProps;\n\nfunction isRawPreset(\n props: CompatibleChartPresetProps,\n): props is FusionChartPresetProps {\n return \"dataSource\" in props;\n}\n\n/** Accepts both the legacy title/items contract and the raw dataSource contract. */\nexport function BarChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"bar2d\" {...props} />\n ) : (\n <CommonBarChart {...props} />\n );\n}\n\nexport function ColumnChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"column2d\" {...props} />\n ) : (\n <CommonColumnChart {...props} />\n );\n}\n\nexport const ChartColumn2D = ColumnChart;\n\nexport function DoughnutChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"doughnut2d\" {...props} />\n ) : (\n <CommonDoughnutChart {...props} />\n );\n}\n"]}
@@ -0,0 +1,78 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FusionChartProps {
5
+ type: string;
6
+ dataSource: Record<string, unknown>;
7
+ width?: string | number;
8
+ height?: string | number;
9
+ events?: Record<string, (...args: unknown[]) => void>;
10
+ licenseKey?: string | Promise<string>;
11
+ loadingFallback?: React.ReactNode;
12
+ "aria-label"?: string;
13
+ }
14
+ /**
15
+ * Generic FusionCharts renderer. Data and optional licensing are injected by the
16
+ * consuming application, so this package never performs an API request.
17
+ */
18
+ declare function FusionChart({ type, dataSource, width, height, events, licenseKey, loadingFallback, "aria-label": ariaLabel, }: FusionChartProps): string | number | boolean | Iterable<react.ReactNode> | react.JSX.Element | null;
19
+ type FusionChartPresetProps = Omit<FusionChartProps, "type">;
20
+ declare function FusionBarChart(props: FusionChartPresetProps): react.JSX.Element;
21
+ declare function FusionColumnChart(props: FusionChartPresetProps): react.JSX.Element;
22
+ declare function FusionDoughnutChart(props: FusionChartPresetProps): react.JSX.Element;
23
+ declare const GenericChart: typeof FusionChart;
24
+ declare const FusionDefaultCharts: typeof FusionChart;
25
+ declare const GenericChartCDMS: typeof FusionChart;
26
+ declare const FusionDefaultChartsPF: typeof FusionChart;
27
+ declare const FusionDefaultChartsPH: typeof FusionChart;
28
+
29
+ interface CommonChartDatum extends Record<string, unknown> {
30
+ label: string;
31
+ value: string | number;
32
+ displayValue?: string;
33
+ color?: string;
34
+ toolText?: string;
35
+ link?: string;
36
+ }
37
+ interface CommonChartTypeOption {
38
+ value: string;
39
+ label: string;
40
+ }
41
+ declare const DEFAULT_CHART_TYPES: readonly CommonChartTypeOption[];
42
+ interface CommonChartProps extends Omit<FusionChartProps, "type" | "dataSource"> {
43
+ type?: string;
44
+ title?: ReactNode;
45
+ caption?: string;
46
+ subCaption?: string;
47
+ xAxisName?: string;
48
+ yAxisName?: string;
49
+ items: readonly CommonChartDatum[];
50
+ chartOptions?: Record<string, unknown>;
51
+ selectableTypes?: readonly CommonChartTypeOption[];
52
+ showTypeSelector?: boolean;
53
+ selectorLabel?: string;
54
+ description?: ReactNode;
55
+ showDataTable?: boolean;
56
+ dataTableLabel?: string;
57
+ onTypeChange?: (type: string) => void;
58
+ }
59
+ /**
60
+ * Common chart contract used by applications: data, labels and display options
61
+ * are supplied through props and no API or license lookup is performed.
62
+ */
63
+ declare function CommonChart({ type, title, caption, subCaption, xAxisName, yAxisName, items, chartOptions, selectableTypes, showTypeSelector, selectorLabel, description, showDataTable, dataTableLabel, onTypeChange, "aria-label": ariaLabel, ...chartProps }: CommonChartProps): react.JSX.Element;
64
+ type CommonChartPresetProps = Omit<CommonChartProps, "type">;
65
+ declare function CommonBarChart(props: CommonChartPresetProps): react.JSX.Element;
66
+ declare function CommonColumnChart(props: CommonChartPresetProps): react.JSX.Element;
67
+ declare function LineChart(props: CommonChartPresetProps): react.JSX.Element;
68
+ declare function AreaChart(props: CommonChartPresetProps): react.JSX.Element;
69
+ declare function PieChart(props: CommonChartPresetProps): react.JSX.Element;
70
+ declare function CommonDoughnutChart(props: CommonChartPresetProps): react.JSX.Element;
71
+ type CompatibleChartPresetProps = CommonChartPresetProps | FusionChartPresetProps;
72
+ /** Accepts both the legacy title/items contract and the raw dataSource contract. */
73
+ declare function BarChart(props: CompatibleChartPresetProps): react.JSX.Element;
74
+ declare function ColumnChart(props: CompatibleChartPresetProps): react.JSX.Element;
75
+ declare const ChartColumn2D: typeof ColumnChart;
76
+ declare function DoughnutChart(props: CompatibleChartPresetProps): react.JSX.Element;
77
+
78
+ export { AreaChart, BarChart, ChartColumn2D, ColumnChart, CommonBarChart, CommonChart, type CommonChartDatum, type CommonChartPresetProps, type CommonChartProps, type CommonChartTypeOption, CommonColumnChart, CommonDoughnutChart, type CompatibleChartPresetProps, DEFAULT_CHART_TYPES, DoughnutChart, FusionBarChart, FusionChart, type FusionChartPresetProps, type FusionChartProps, FusionColumnChart, FusionDefaultCharts, FusionDefaultChartsPF, FusionDefaultChartsPH, FusionDoughnutChart, GenericChart, GenericChartCDMS, LineChart, PieChart };
@@ -0,0 +1,78 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ interface FusionChartProps {
5
+ type: string;
6
+ dataSource: Record<string, unknown>;
7
+ width?: string | number;
8
+ height?: string | number;
9
+ events?: Record<string, (...args: unknown[]) => void>;
10
+ licenseKey?: string | Promise<string>;
11
+ loadingFallback?: React.ReactNode;
12
+ "aria-label"?: string;
13
+ }
14
+ /**
15
+ * Generic FusionCharts renderer. Data and optional licensing are injected by the
16
+ * consuming application, so this package never performs an API request.
17
+ */
18
+ declare function FusionChart({ type, dataSource, width, height, events, licenseKey, loadingFallback, "aria-label": ariaLabel, }: FusionChartProps): string | number | boolean | Iterable<react.ReactNode> | react.JSX.Element | null;
19
+ type FusionChartPresetProps = Omit<FusionChartProps, "type">;
20
+ declare function FusionBarChart(props: FusionChartPresetProps): react.JSX.Element;
21
+ declare function FusionColumnChart(props: FusionChartPresetProps): react.JSX.Element;
22
+ declare function FusionDoughnutChart(props: FusionChartPresetProps): react.JSX.Element;
23
+ declare const GenericChart: typeof FusionChart;
24
+ declare const FusionDefaultCharts: typeof FusionChart;
25
+ declare const GenericChartCDMS: typeof FusionChart;
26
+ declare const FusionDefaultChartsPF: typeof FusionChart;
27
+ declare const FusionDefaultChartsPH: typeof FusionChart;
28
+
29
+ interface CommonChartDatum extends Record<string, unknown> {
30
+ label: string;
31
+ value: string | number;
32
+ displayValue?: string;
33
+ color?: string;
34
+ toolText?: string;
35
+ link?: string;
36
+ }
37
+ interface CommonChartTypeOption {
38
+ value: string;
39
+ label: string;
40
+ }
41
+ declare const DEFAULT_CHART_TYPES: readonly CommonChartTypeOption[];
42
+ interface CommonChartProps extends Omit<FusionChartProps, "type" | "dataSource"> {
43
+ type?: string;
44
+ title?: ReactNode;
45
+ caption?: string;
46
+ subCaption?: string;
47
+ xAxisName?: string;
48
+ yAxisName?: string;
49
+ items: readonly CommonChartDatum[];
50
+ chartOptions?: Record<string, unknown>;
51
+ selectableTypes?: readonly CommonChartTypeOption[];
52
+ showTypeSelector?: boolean;
53
+ selectorLabel?: string;
54
+ description?: ReactNode;
55
+ showDataTable?: boolean;
56
+ dataTableLabel?: string;
57
+ onTypeChange?: (type: string) => void;
58
+ }
59
+ /**
60
+ * Common chart contract used by applications: data, labels and display options
61
+ * are supplied through props and no API or license lookup is performed.
62
+ */
63
+ declare function CommonChart({ type, title, caption, subCaption, xAxisName, yAxisName, items, chartOptions, selectableTypes, showTypeSelector, selectorLabel, description, showDataTable, dataTableLabel, onTypeChange, "aria-label": ariaLabel, ...chartProps }: CommonChartProps): react.JSX.Element;
64
+ type CommonChartPresetProps = Omit<CommonChartProps, "type">;
65
+ declare function CommonBarChart(props: CommonChartPresetProps): react.JSX.Element;
66
+ declare function CommonColumnChart(props: CommonChartPresetProps): react.JSX.Element;
67
+ declare function LineChart(props: CommonChartPresetProps): react.JSX.Element;
68
+ declare function AreaChart(props: CommonChartPresetProps): react.JSX.Element;
69
+ declare function PieChart(props: CommonChartPresetProps): react.JSX.Element;
70
+ declare function CommonDoughnutChart(props: CommonChartPresetProps): react.JSX.Element;
71
+ type CompatibleChartPresetProps = CommonChartPresetProps | FusionChartPresetProps;
72
+ /** Accepts both the legacy title/items contract and the raw dataSource contract. */
73
+ declare function BarChart(props: CompatibleChartPresetProps): react.JSX.Element;
74
+ declare function ColumnChart(props: CompatibleChartPresetProps): react.JSX.Element;
75
+ declare const ChartColumn2D: typeof ColumnChart;
76
+ declare function DoughnutChart(props: CompatibleChartPresetProps): react.JSX.Element;
77
+
78
+ export { AreaChart, BarChart, ChartColumn2D, ColumnChart, CommonBarChart, CommonChart, type CommonChartDatum, type CommonChartPresetProps, type CommonChartProps, type CommonChartTypeOption, CommonColumnChart, CommonDoughnutChart, type CompatibleChartPresetProps, DEFAULT_CHART_TYPES, DoughnutChart, FusionBarChart, FusionChart, type FusionChartPresetProps, type FusionChartProps, FusionColumnChart, FusionDefaultCharts, FusionDefaultChartsPF, FusionDefaultChartsPH, FusionDoughnutChart, GenericChart, GenericChartCDMS, LineChart, PieChart };
@@ -0,0 +1,220 @@
1
+ import FusionCharts from 'fusioncharts';
2
+ import charts from 'fusioncharts/fusioncharts.charts.js';
3
+ import ReactFusioncharts from 'react-fusioncharts';
4
+ import { useState, useEffect, useMemo } from 'react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+ import MenuItem from '@mui/material/MenuItem';
7
+ import Stack from '@mui/material/Stack';
8
+ import TextField from '@mui/material/TextField';
9
+ import Typography from '@mui/material/Typography';
10
+
11
+ // src/charts/FusionChart.tsx
12
+ var fusionRegistered = false;
13
+ function FusionChart({
14
+ type,
15
+ dataSource,
16
+ width = "100%",
17
+ height = 400,
18
+ events,
19
+ licenseKey,
20
+ loadingFallback = null,
21
+ "aria-label": ariaLabel = "Chart"
22
+ }) {
23
+ const [registered, setRegistered] = useState(fusionRegistered);
24
+ const [licenseReady, setLicenseReady] = useState(!licenseKey);
25
+ useEffect(() => {
26
+ if (!fusionRegistered) {
27
+ ReactFusioncharts.fcRoot(FusionCharts, charts);
28
+ fusionRegistered = true;
29
+ }
30
+ setRegistered(true);
31
+ }, []);
32
+ useEffect(() => {
33
+ let active = true;
34
+ if (!licenseKey) {
35
+ setLicenseReady(true);
36
+ return void 0;
37
+ }
38
+ setLicenseReady(false);
39
+ void Promise.resolve(licenseKey).then((key) => {
40
+ const options = FusionCharts.options;
41
+ options.license({ key, creditLabel: false });
42
+ if (active) setLicenseReady(true);
43
+ });
44
+ return () => {
45
+ active = false;
46
+ };
47
+ }, [licenseKey]);
48
+ if (!registered || !licenseReady) return loadingFallback;
49
+ return /* @__PURE__ */ jsx("div", { role: "img", "aria-label": ariaLabel, children: /* @__PURE__ */ jsx(
50
+ ReactFusioncharts,
51
+ {
52
+ type,
53
+ width,
54
+ height,
55
+ dataFormat: "json",
56
+ dataSource,
57
+ ...events ? { events } : {}
58
+ }
59
+ ) });
60
+ }
61
+ function FusionBarChart(props) {
62
+ return /* @__PURE__ */ jsx(FusionChart, { type: "bar2d", ...props });
63
+ }
64
+ function FusionColumnChart(props) {
65
+ return /* @__PURE__ */ jsx(FusionChart, { type: "column2d", ...props });
66
+ }
67
+ function FusionDoughnutChart(props) {
68
+ return /* @__PURE__ */ jsx(FusionChart, { type: "doughnut2d", ...props });
69
+ }
70
+ var GenericChart = FusionChart;
71
+ var FusionDefaultCharts = FusionChart;
72
+ var GenericChartCDMS = FusionChart;
73
+ var FusionDefaultChartsPF = FusionChart;
74
+ var FusionDefaultChartsPH = FusionChart;
75
+ var DEFAULT_CHART_TYPES = [
76
+ { value: "column2d", label: "Column" },
77
+ { value: "bar2d", label: "Bar" },
78
+ { value: "line", label: "Line" },
79
+ { value: "area2d", label: "Area" },
80
+ { value: "pie2d", label: "Pie" },
81
+ { value: "doughnut2d", label: "Doughnut" }
82
+ ];
83
+ function CommonChart({
84
+ type = "column2d",
85
+ title,
86
+ caption,
87
+ subCaption,
88
+ xAxisName,
89
+ yAxisName,
90
+ items,
91
+ chartOptions,
92
+ selectableTypes = DEFAULT_CHART_TYPES,
93
+ showTypeSelector = false,
94
+ selectorLabel = "Chart type",
95
+ description,
96
+ showDataTable = false,
97
+ dataTableLabel = "View chart data",
98
+ onTypeChange,
99
+ "aria-label": ariaLabel,
100
+ ...chartProps
101
+ }) {
102
+ const [selectedType, setSelectedType] = useState(null);
103
+ const activeType = selectedType ?? type;
104
+ const dataSource = useMemo(
105
+ () => ({
106
+ chart: {
107
+ caption: caption ?? (typeof title === "string" ? title : void 0),
108
+ subCaption,
109
+ xAxisName,
110
+ yAxisName,
111
+ baseFont: "Inter, sans-serif",
112
+ baseFontSize: "13",
113
+ showBorder: "0",
114
+ showCanvasBorder: "0",
115
+ usePlotGradientColor: "0",
116
+ showPlotBorder: "0",
117
+ showShadow: "0",
118
+ showLegend: "1",
119
+ legendPosition: "bottom",
120
+ labelDisplay: "rotate",
121
+ slantLabels: "1",
122
+ maxColWidth: "15",
123
+ maxBarHeight: "15",
124
+ animation: "1",
125
+ ...chartOptions
126
+ },
127
+ data: [...items]
128
+ }),
129
+ [caption, chartOptions, items, subCaption, title, xAxisName, yAxisName]
130
+ );
131
+ const accessibleName = ariaLabel ?? caption ?? (typeof title === "string" ? title : "Chart");
132
+ return /* @__PURE__ */ jsxs(Stack, { component: "section", spacing: 1.5, "aria-label": accessibleName, children: [
133
+ title || showTypeSelector ? /* @__PURE__ */ jsxs(
134
+ Stack,
135
+ {
136
+ direction: { xs: "column", sm: "row" },
137
+ alignItems: { xs: "stretch", sm: "center" },
138
+ justifyContent: "space-between",
139
+ gap: 1,
140
+ children: [
141
+ title ? /* @__PURE__ */ jsx(Typography, { component: "h2", variant: "h6", children: title }) : null,
142
+ showTypeSelector ? /* @__PURE__ */ jsx(
143
+ TextField,
144
+ {
145
+ select: true,
146
+ size: "small",
147
+ label: selectorLabel,
148
+ value: activeType,
149
+ onChange: (event) => {
150
+ setSelectedType(event.target.value);
151
+ onTypeChange?.(event.target.value);
152
+ },
153
+ sx: { minWidth: 160 },
154
+ children: selectableTypes.map((option) => /* @__PURE__ */ jsx(MenuItem, { value: option.value, children: option.label }, option.value))
155
+ }
156
+ ) : null
157
+ ]
158
+ }
159
+ ) : null,
160
+ description ? /* @__PURE__ */ jsx(Typography, { color: "text.secondary", children: description }) : null,
161
+ /* @__PURE__ */ jsx(
162
+ FusionChart,
163
+ {
164
+ type: activeType,
165
+ dataSource,
166
+ "aria-label": accessibleName,
167
+ ...chartProps
168
+ }
169
+ ),
170
+ showDataTable ? /* @__PURE__ */ jsxs("details", { children: [
171
+ /* @__PURE__ */ jsx("summary", { children: dataTableLabel }),
172
+ /* @__PURE__ */ jsxs("table", { children: [
173
+ /* @__PURE__ */ jsx("caption", { children: accessibleName }),
174
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
175
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "Label" }),
176
+ /* @__PURE__ */ jsx("th", { scope: "col", children: "Value" })
177
+ ] }) }),
178
+ /* @__PURE__ */ jsx("tbody", { children: items.map((item) => /* @__PURE__ */ jsxs("tr", { children: [
179
+ /* @__PURE__ */ jsx("th", { scope: "row", children: item.label }),
180
+ /* @__PURE__ */ jsx("td", { children: item.displayValue ?? item.value })
181
+ ] }, item.label)) })
182
+ ] })
183
+ ] }) : null
184
+ ] });
185
+ }
186
+ function CommonBarChart(props) {
187
+ return /* @__PURE__ */ jsx(CommonChart, { type: "bar2d", ...props });
188
+ }
189
+ function CommonColumnChart(props) {
190
+ return /* @__PURE__ */ jsx(CommonChart, { type: "column2d", ...props });
191
+ }
192
+ function LineChart(props) {
193
+ return /* @__PURE__ */ jsx(CommonChart, { type: "line", ...props });
194
+ }
195
+ function AreaChart(props) {
196
+ return /* @__PURE__ */ jsx(CommonChart, { type: "area2d", ...props });
197
+ }
198
+ function PieChart(props) {
199
+ return /* @__PURE__ */ jsx(CommonChart, { type: "pie2d", ...props });
200
+ }
201
+ function CommonDoughnutChart(props) {
202
+ return /* @__PURE__ */ jsx(CommonChart, { type: "doughnut2d", ...props });
203
+ }
204
+ function isRawPreset(props) {
205
+ return "dataSource" in props;
206
+ }
207
+ function BarChart(props) {
208
+ return isRawPreset(props) ? /* @__PURE__ */ jsx(FusionChart, { type: "bar2d", ...props }) : /* @__PURE__ */ jsx(CommonBarChart, { ...props });
209
+ }
210
+ function ColumnChart(props) {
211
+ return isRawPreset(props) ? /* @__PURE__ */ jsx(FusionChart, { type: "column2d", ...props }) : /* @__PURE__ */ jsx(CommonColumnChart, { ...props });
212
+ }
213
+ var ChartColumn2D = ColumnChart;
214
+ function DoughnutChart(props) {
215
+ return isRawPreset(props) ? /* @__PURE__ */ jsx(FusionChart, { type: "doughnut2d", ...props }) : /* @__PURE__ */ jsx(CommonDoughnutChart, { ...props });
216
+ }
217
+
218
+ export { AreaChart, BarChart, ChartColumn2D, ColumnChart, CommonBarChart, CommonChart, CommonColumnChart, CommonDoughnutChart, DEFAULT_CHART_TYPES, DoughnutChart, FusionBarChart, FusionChart, FusionColumnChart, FusionDefaultCharts, FusionDefaultChartsPF, FusionDefaultChartsPH, FusionDoughnutChart, GenericChart, GenericChartCDMS, LineChart, PieChart };
219
+ //# sourceMappingURL=fusion.js.map
220
+ //# sourceMappingURL=fusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/charts/FusionChart.tsx","../../src/charts/CommonChart.tsx"],"names":["useState","jsx"],"mappings":"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","file":"fusion.js","sourcesContent":["import FusionCharts from \"fusioncharts\";\nimport charts from \"fusioncharts/fusioncharts.charts.js\";\nimport ReactFusioncharts from \"react-fusioncharts\";\nimport { useEffect, useState } from \"react\";\n\nlet fusionRegistered = false;\n\nexport interface FusionChartProps {\n type: string;\n dataSource: Record<string, unknown>;\n width?: string | number;\n height?: string | number;\n events?: Record<string, (...args: unknown[]) => void>;\n licenseKey?: string | Promise<string>;\n loadingFallback?: React.ReactNode;\n \"aria-label\"?: string;\n}\n\n/**\n * Generic FusionCharts renderer. Data and optional licensing are injected by the\n * consuming application, so this package never performs an API request.\n */\nexport function FusionChart({\n type,\n dataSource,\n width = \"100%\",\n height = 400,\n events,\n licenseKey,\n loadingFallback = null,\n \"aria-label\": ariaLabel = \"Chart\",\n}: FusionChartProps) {\n const [registered, setRegistered] = useState(fusionRegistered);\n const [licenseReady, setLicenseReady] = useState(!licenseKey);\n\n useEffect(() => {\n if (!fusionRegistered) {\n ReactFusioncharts.fcRoot(FusionCharts, charts);\n fusionRegistered = true;\n }\n setRegistered(true);\n }, []);\n\n useEffect(() => {\n let active = true;\n if (!licenseKey) {\n setLicenseReady(true);\n return undefined;\n }\n setLicenseReady(false);\n void Promise.resolve(licenseKey).then((key) => {\n const options = FusionCharts.options as typeof FusionCharts.options & {\n license: (settings: { key: string; creditLabel: boolean }) => void;\n };\n options.license({ key, creditLabel: false });\n if (active) setLicenseReady(true);\n });\n return () => {\n active = false;\n };\n }, [licenseKey]);\n\n if (!registered || !licenseReady) return loadingFallback;\n\n return (\n <div role=\"img\" aria-label={ariaLabel}>\n <ReactFusioncharts\n type={type}\n width={width}\n height={height}\n dataFormat=\"json\"\n dataSource={dataSource}\n {...(events ? { events } : {})}\n />\n </div>\n );\n}\n\nexport type FusionChartPresetProps = Omit<FusionChartProps, \"type\">;\n\nexport function FusionBarChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"bar2d\" {...props} />;\n}\n\nexport function FusionColumnChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"column2d\" {...props} />;\n}\n\nexport function FusionDoughnutChart(props: FusionChartPresetProps) {\n return <FusionChart type=\"doughnut2d\" {...props} />;\n}\n\nexport const GenericChart = FusionChart;\nexport const FusionDefaultCharts = FusionChart;\nexport const GenericChartCDMS = FusionChart;\nexport const FusionDefaultChartsPF = FusionChart;\nexport const FusionDefaultChartsPH = FusionChart;\n","import MenuItem from \"@mui/material/MenuItem\";\nimport Stack from \"@mui/material/Stack\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { useMemo, useState, type ReactNode } from \"react\";\nimport {\n FusionChart,\n type FusionChartPresetProps,\n type FusionChartProps,\n} from \"./FusionChart\";\n\nexport interface CommonChartDatum extends Record<string, unknown> {\n label: string;\n value: string | number;\n displayValue?: string;\n color?: string;\n toolText?: string;\n link?: string;\n}\n\nexport interface CommonChartTypeOption {\n value: string;\n label: string;\n}\n\nexport const DEFAULT_CHART_TYPES: readonly CommonChartTypeOption[] = [\n { value: \"column2d\", label: \"Column\" },\n { value: \"bar2d\", label: \"Bar\" },\n { value: \"line\", label: \"Line\" },\n { value: \"area2d\", label: \"Area\" },\n { value: \"pie2d\", label: \"Pie\" },\n { value: \"doughnut2d\", label: \"Doughnut\" },\n];\n\nexport interface CommonChartProps\n extends Omit<FusionChartProps, \"type\" | \"dataSource\"> {\n type?: string;\n title?: ReactNode;\n caption?: string;\n subCaption?: string;\n xAxisName?: string;\n yAxisName?: string;\n items: readonly CommonChartDatum[];\n chartOptions?: Record<string, unknown>;\n selectableTypes?: readonly CommonChartTypeOption[];\n showTypeSelector?: boolean;\n selectorLabel?: string;\n description?: ReactNode;\n showDataTable?: boolean;\n dataTableLabel?: string;\n onTypeChange?: (type: string) => void;\n}\n\n/**\n * Common chart contract used by applications: data, labels and display options\n * are supplied through props and no API or license lookup is performed.\n */\nexport function CommonChart({\n type = \"column2d\",\n title,\n caption,\n subCaption,\n xAxisName,\n yAxisName,\n items,\n chartOptions,\n selectableTypes = DEFAULT_CHART_TYPES,\n showTypeSelector = false,\n selectorLabel = \"Chart type\",\n description,\n showDataTable = false,\n dataTableLabel = \"View chart data\",\n onTypeChange,\n \"aria-label\": ariaLabel,\n ...chartProps\n}: CommonChartProps) {\n const [selectedType, setSelectedType] = useState<string | null>(null);\n const activeType = selectedType ?? type;\n\n const dataSource = useMemo(\n () => ({\n chart: {\n caption: caption ?? (typeof title === \"string\" ? title : undefined),\n subCaption,\n xAxisName,\n yAxisName,\n baseFont: \"Inter, sans-serif\",\n baseFontSize: \"13\",\n showBorder: \"0\",\n showCanvasBorder: \"0\",\n usePlotGradientColor: \"0\",\n showPlotBorder: \"0\",\n showShadow: \"0\",\n showLegend: \"1\",\n legendPosition: \"bottom\",\n labelDisplay: \"rotate\",\n slantLabels: \"1\",\n maxColWidth: \"15\",\n maxBarHeight: \"15\",\n animation: \"1\",\n ...chartOptions,\n },\n data: [...items],\n }),\n [caption, chartOptions, items, subCaption, title, xAxisName, yAxisName],\n );\n\n const accessibleName =\n ariaLabel ?? caption ?? (typeof title === \"string\" ? title : \"Chart\");\n\n return (\n <Stack component=\"section\" spacing={1.5} aria-label={accessibleName}>\n {title || showTypeSelector ? (\n <Stack\n direction={{ xs: \"column\", sm: \"row\" }}\n alignItems={{ xs: \"stretch\", sm: \"center\" }}\n justifyContent=\"space-between\"\n gap={1}\n >\n {title ? <Typography component=\"h2\" variant=\"h6\">{title}</Typography> : null}\n {showTypeSelector ? (\n <TextField\n select\n size=\"small\"\n label={selectorLabel}\n value={activeType}\n onChange={(event) => {\n setSelectedType(event.target.value);\n onTypeChange?.(event.target.value);\n }}\n sx={{ minWidth: 160 }}\n >\n {selectableTypes.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </TextField>\n ) : null}\n </Stack>\n ) : null}\n {description ? <Typography color=\"text.secondary\">{description}</Typography> : null}\n <FusionChart\n type={activeType}\n dataSource={dataSource}\n aria-label={accessibleName}\n {...chartProps}\n />\n {showDataTable ? (\n <details>\n <summary>{dataTableLabel}</summary>\n <table>\n <caption>{accessibleName}</caption>\n <thead><tr><th scope=\"col\">Label</th><th scope=\"col\">Value</th></tr></thead>\n <tbody>\n {items.map((item) => (\n <tr key={item.label}>\n <th scope=\"row\">{item.label}</th>\n <td>{item.displayValue ?? item.value}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </details>\n ) : null}\n </Stack>\n );\n}\n\nexport type CommonChartPresetProps = Omit<CommonChartProps, \"type\">;\n\nexport function CommonBarChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"bar2d\" {...props} />;\n}\nexport function CommonColumnChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"column2d\" {...props} />;\n}\nexport function LineChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"line\" {...props} />;\n}\nexport function AreaChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"area2d\" {...props} />;\n}\nexport function PieChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"pie2d\" {...props} />;\n}\nexport function CommonDoughnutChart(props: CommonChartPresetProps) {\n return <CommonChart type=\"doughnut2d\" {...props} />;\n}\n\nexport type CompatibleChartPresetProps =\n | CommonChartPresetProps\n | FusionChartPresetProps;\n\nfunction isRawPreset(\n props: CompatibleChartPresetProps,\n): props is FusionChartPresetProps {\n return \"dataSource\" in props;\n}\n\n/** Accepts both the legacy title/items contract and the raw dataSource contract. */\nexport function BarChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"bar2d\" {...props} />\n ) : (\n <CommonBarChart {...props} />\n );\n}\n\nexport function ColumnChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"column2d\" {...props} />\n ) : (\n <CommonColumnChart {...props} />\n );\n}\n\nexport const ChartColumn2D = ColumnChart;\n\nexport function DoughnutChart(props: CompatibleChartPresetProps) {\n return isRawPreset(props) ? (\n <FusionChart type=\"doughnut2d\" {...props} />\n ) : (\n <CommonDoughnutChart {...props} />\n );\n}\n"]}
@@ -0,0 +1,167 @@
1
+ 'use strict';
2
+
3
+ var agGridCommunity = require('ag-grid-community');
4
+ var agGridReact = require('ag-grid-react');
5
+ var react = require('react');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var FunctionsIcon = require('@mui/icons-material/Functions');
8
+ var InfoOutlinedIcon = require('@mui/icons-material/InfoOutlined');
9
+ var Stack = require('@mui/material/Stack');
10
+ var Tooltip = require('@mui/material/Tooltip');
11
+ var IconButton = require('@mui/material/IconButton');
12
+ var Box = require('@mui/material/Box');
13
+
14
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
+
16
+ var FunctionsIcon__default = /*#__PURE__*/_interopDefault(FunctionsIcon);
17
+ var InfoOutlinedIcon__default = /*#__PURE__*/_interopDefault(InfoOutlinedIcon);
18
+ var Stack__default = /*#__PURE__*/_interopDefault(Stack);
19
+ var Tooltip__default = /*#__PURE__*/_interopDefault(Tooltip);
20
+ var IconButton__default = /*#__PURE__*/_interopDefault(IconButton);
21
+ var Box__default = /*#__PURE__*/_interopDefault(Box);
22
+
23
+ // src/grids/ag-grid/CustomAgGrid.tsx
24
+ var DEFAULT_AG_GRID_MODULES = [agGridCommunity.AllCommunityModule];
25
+ function CustomGridTableComponent({
26
+ columns = [],
27
+ data = [],
28
+ totals = [],
29
+ loading = false,
30
+ enableSelection = false,
31
+ onSelect,
32
+ height = 500,
33
+ minHeight = 240,
34
+ defaultColDef,
35
+ pagination,
36
+ paginationPageSize = 25,
37
+ paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],
38
+ getRowId,
39
+ modules = DEFAULT_AG_GRID_MODULES,
40
+ ariaLabel = "Data grid",
41
+ ...gridProps
42
+ }) {
43
+ const resolvedDefaultColDef = react.useMemo(
44
+ () => ({
45
+ flex: 1,
46
+ minWidth: 160,
47
+ resizable: true,
48
+ sortable: true,
49
+ wrapText: true,
50
+ autoHeight: true,
51
+ ...defaultColDef
52
+ }),
53
+ [defaultColDef]
54
+ );
55
+ const rowSelection = react.useMemo(
56
+ () => enableSelection ? {
57
+ mode: "multiRow",
58
+ checkboxes: true,
59
+ headerCheckbox: true,
60
+ enableClickSelection: false,
61
+ selectAll: "filtered"
62
+ } : void 0,
63
+ [enableSelection]
64
+ );
65
+ const enablePagination = pagination ?? data.length > 50;
66
+ const handleSelection = react.useCallback(
67
+ (event) => onSelect?.(event.api.getSelectedRows()),
68
+ [onSelect]
69
+ );
70
+ return /* @__PURE__ */ jsxRuntime.jsx(
71
+ "div",
72
+ {
73
+ "aria-label": ariaLabel,
74
+ role: "region",
75
+ style: { width: "100%", height, minHeight },
76
+ children: /* @__PURE__ */ jsxRuntime.jsx(
77
+ agGridReact.AgGridReact,
78
+ {
79
+ modules,
80
+ rowData: [...data],
81
+ columnDefs: [...columns],
82
+ pinnedBottomRowData: [...totals],
83
+ defaultColDef: resolvedDefaultColDef,
84
+ loading,
85
+ pagination: enablePagination,
86
+ paginationPageSize,
87
+ paginationPageSizeSelector: [...paginationPageSizeSelector],
88
+ ...rowSelection ? { rowSelection } : {},
89
+ onSelectionChanged: handleSelection,
90
+ animateRows: false,
91
+ suppressDragLeaveHidesColumns: true,
92
+ ...getRowId ? { getRowId } : {},
93
+ ...gridProps
94
+ }
95
+ )
96
+ }
97
+ );
98
+ }
99
+ var CustomGridTable = react.memo(
100
+ CustomGridTableComponent
101
+ );
102
+ var AgGridTable = CustomGridTable;
103
+ function SharedIconButton({ sx, ...props }) {
104
+ return /* @__PURE__ */ jsxRuntime.jsx(
105
+ IconButton__default.default,
106
+ {
107
+ sx: { width: 40, height: 40, borderRadius: 1, ...sx },
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ function CustomGridHeaderCellWithInfo({
113
+ displayName,
114
+ title,
115
+ info,
116
+ infoLabel = "Column information",
117
+ formula,
118
+ formulaLabel = "Column formula",
119
+ column,
120
+ enableSorting,
121
+ progressSort
122
+ }) {
123
+ const sort = column.getSort();
124
+ const headerTitle = title ?? displayName;
125
+ const sortLabel = sort ? `${String(headerTitle)}, sorted ${sort === "asc" ? "ascending" : "descending"}` : `${String(headerTitle)}, not sorted`;
126
+ const requestSort = (event) => {
127
+ if (enableSorting) progressSort(event.shiftKey);
128
+ };
129
+ return /* @__PURE__ */ jsxRuntime.jsxs(Stack__default.default, { direction: "row", alignItems: "center", spacing: 0.5, width: "100%", children: [
130
+ /* @__PURE__ */ jsxRuntime.jsxs(
131
+ "button",
132
+ {
133
+ type: "button",
134
+ disabled: !enableSorting,
135
+ "aria-label": sortLabel,
136
+ onClick: requestSort,
137
+ style: {
138
+ appearance: "none",
139
+ border: 0,
140
+ background: "transparent",
141
+ color: "inherit",
142
+ font: "inherit",
143
+ fontWeight: 600,
144
+ cursor: enableSorting ? "pointer" : "default",
145
+ padding: 4
146
+ },
147
+ children: [
148
+ headerTitle,
149
+ sort === "asc" ? " \u25B2" : sort === "desc" ? " \u25BC" : ""
150
+ ]
151
+ }
152
+ ),
153
+ info ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip__default.default, { title: info, arrow: true, children: /* @__PURE__ */ jsxRuntime.jsx(SharedIconButton, { "aria-label": infoLabel, size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(InfoOutlinedIcon__default.default, { fontSize: "small" }) }) }) : null,
154
+ formula ? /* @__PURE__ */ jsxRuntime.jsx(Tooltip__default.default, { title: formula, arrow: true, children: /* @__PURE__ */ jsxRuntime.jsx(SharedIconButton, { "aria-label": formulaLabel, size: "small", children: /* @__PURE__ */ jsxRuntime.jsx(FunctionsIcon__default.default, { fontSize: "small" }) }) }) : null
155
+ ] });
156
+ }
157
+ function CustomGridTableWrapper({ children, sx, ...props }) {
158
+ return /* @__PURE__ */ jsxRuntime.jsx(Box__default.default, { width: "100%", p: 1.5, mb: 0.5, sx, ...props, children });
159
+ }
160
+
161
+ exports.AgGridTable = AgGridTable;
162
+ exports.CustomGridHeaderCellWithInfo = CustomGridHeaderCellWithInfo;
163
+ exports.CustomGridTable = CustomGridTable;
164
+ exports.CustomGridTableComponent = CustomGridTableComponent;
165
+ exports.CustomGridTableWrapper = CustomGridTableWrapper;
166
+ //# sourceMappingURL=ag-grid.cjs.map
167
+ //# sourceMappingURL=ag-grid.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/grids/ag-grid/CustomAgGrid.tsx","../../src/buttons/SharedIconButton.tsx","../../src/grids/ag-grid/CustomGridHeaderCellWithInfo.tsx","../../src/grids/ag-grid/CustomGridTableWrapper.tsx"],"names":["AllCommunityModule","useMemo","useCallback","jsx","AgGridReact","memo","IconButton","jsxs","Stack","Tooltip","InfoOutlinedIcon","FunctionsIcon","Box"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAcA,IAAM,uBAAA,GAAoC,CAACA,kCAAkB,CAAA;AAsCtD,SAAS,wBAAA,CAA6C;AAAA,EAC3D,UAAU,EAAC;AAAA,EACX,OAAO,EAAC;AAAA,EACR,SAAS,EAAC;AAAA,EACV,OAAA,GAAU,KAAA;AAAA,EACV,eAAA,GAAkB,KAAA;AAAA,EAClB,QAAA;AAAA,EACA,MAAA,GAAS,GAAA;AAAA,EACT,SAAA,GAAY,GAAA;AAAA,EACZ,aAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA,GAAqB,EAAA;AAAA,EACrB,6BAA6B,CAAC,CAAA,EAAG,IAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,EACpD,QAAA;AAAA,EACA,OAAA,GAAU,uBAAA;AAAA,EACV,SAAA,GAAY,WAAA;AAAA,EACZ,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,qBAAA,GAAwBC,aAAA;AAAA,IAC5B,OAAO;AAAA,MACL,IAAA,EAAM,CAAA;AAAA,MACN,QAAA,EAAU,GAAA;AAAA,MACV,SAAA,EAAW,IAAA;AAAA,MACX,QAAA,EAAU,IAAA;AAAA,MACV,QAAA,EAAU,IAAA;AAAA,MACV,UAAA,EAAY,IAAA;AAAA,MACZ,GAAG;AAAA,KACL,CAAA;AAAA,IACA,CAAC,aAAa;AAAA,GAChB;AACA,EAAA,MAAM,YAAA,GAAeA,aAAA;AAAA,IACnB,MACE,eAAA,GACI;AAAA,MACE,IAAA,EAAM,UAAA;AAAA,MACN,UAAA,EAAY,IAAA;AAAA,MACZ,cAAA,EAAgB,IAAA;AAAA,MAChB,oBAAA,EAAsB,KAAA;AAAA,MACtB,SAAA,EAAW;AAAA,KACb,GACA,MAAA;AAAA,IACN,CAAC,eAAe;AAAA,GAClB;AACA,EAAA,MAAM,gBAAA,GAAmB,UAAA,IAAc,IAAA,CAAK,MAAA,GAAS,EAAA;AACrD,EAAA,MAAM,eAAA,GAAkBC,iBAAA;AAAA,IACtB,CAAC,KAAA,KAAsC,QAAA,GAAW,KAAA,CAAM,GAAA,CAAI,iBAAiB,CAAA;AAAA,IAC7E,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,uBACIC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAY,SAAA;AAAA,MACZ,IAAA,EAAK,QAAA;AAAA,MACL,KAAA,EAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,QAAQ,SAAA,EAAU;AAAA,MAE1C,QAAA,kBAAAA,cAAA;AAAA,QAACC,uBAAA;AAAA,QAAA;AAAA,UACC,OAAA;AAAA,UACA,OAAA,EAAS,CAAC,GAAG,IAAI,CAAA;AAAA,UACjB,UAAA,EAAY,CAAC,GAAG,OAAO,CAAA;AAAA,UACvB,mBAAA,EAAqB,CAAC,GAAG,MAAM,CAAA;AAAA,UAC/B,aAAA,EAAe,qBAAA;AAAA,UACf,OAAA;AAAA,UACA,UAAA,EAAY,gBAAA;AAAA,UACZ,kBAAA;AAAA,UACA,0BAAA,EAA4B,CAAC,GAAG,0BAA0B,CAAA;AAAA,UACzD,GAAI,YAAA,GAAe,EAAE,YAAA,KAAiB,EAAC;AAAA,UACxC,kBAAA,EAAoB,eAAA;AAAA,UACpB,WAAA,EAAa,KAAA;AAAA,UACb,6BAAA,EAA6B,IAAA;AAAA,UAC5B,GAAI,QAAA,GAAW,EAAE,QAAA,KAAa,EAAC;AAAA,UAC/B,GAAG;AAAA;AAAA;AACN;AAAA,GACF;AAEN;AAEO,IAAM,eAAA,GAAkBC,UAAA;AAAA,EAC7B;AACF;AAEO,IAAM,WAAA,GAAc;AC7HpB,SAAS,gBAAA,CAAiB,EAAE,EAAA,EAAI,GAAG,OAAM,EAA0B;AACxE,EAAA,uBACEF,cAAAA;AAAA,IAACG,2BAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,EAAE,KAAA,EAAO,EAAA,EAAI,QAAQ,EAAA,EAAI,YAAA,EAAc,CAAA,EAAG,GAAG,EAAA,EAAG;AAAA,MACnD,GAAG;AAAA;AAAA,GACN;AAEJ;ACIO,SAAS,4BAAA,CAA4C;AAAA,EAC1D,WAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA,GAAY,oBAAA;AAAA,EACZ,OAAA;AAAA,EACA,YAAA,GAAe,gBAAA;AAAA,EACf,MAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,EAA2C;AACzC,EAAA,MAAM,IAAA,GAAO,OAAO,OAAA,EAAQ;AAC5B,EAAA,MAAM,cAAc,KAAA,IAAS,WAAA;AAC7B,EAAA,MAAM,SAAA,GAAY,IAAA,GACd,CAAA,EAAG,MAAA,CAAO,WAAW,CAAC,CAAA,SAAA,EAAY,IAAA,KAAS,KAAA,GAAQ,cAAc,YAAY,CAAA,CAAA,GAC7E,CAAA,EAAG,MAAA,CAAO,WAAW,CAAC,CAAA,YAAA,CAAA;AAC1B,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAsC;AACzD,IAAA,IAAI,aAAA,EAAe,YAAA,CAAa,KAAA,CAAM,QAAQ,CAAA;AAAA,EAChD,CAAA;AAEA,EAAA,uBACEC,eAAA,CAACC,0BAAM,SAAA,EAAU,KAAA,EAAM,YAAW,QAAA,EAAS,OAAA,EAAS,GAAA,EAAK,KAAA,EAAM,MAAA,EAC7D,QAAA,EAAA;AAAA,oBAAAD,eAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,QAAA;AAAA,QACL,UAAU,CAAC,aAAA;AAAA,QACX,YAAA,EAAY,SAAA;AAAA,QACZ,OAAA,EAAS,WAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,UAAA,EAAY,MAAA;AAAA,UACZ,MAAA,EAAQ,CAAA;AAAA,UACR,UAAA,EAAY,aAAA;AAAA,UACZ,KAAA,EAAO,SAAA;AAAA,UACP,IAAA,EAAM,SAAA;AAAA,UACN,UAAA,EAAY,GAAA;AAAA,UACZ,MAAA,EAAQ,gBAAgB,SAAA,GAAY,SAAA;AAAA,UACpC,OAAA,EAAS;AAAA,SACX;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,WAAA;AAAA,UACA,IAAA,KAAS,KAAA,GAAQ,SAAA,GAAO,IAAA,KAAS,SAAS,SAAA,GAAO;AAAA;AAAA;AAAA,KACpD;AAAA,IACC,IAAA,mBACCJ,cAAAA,CAACM,wBAAA,EAAA,EAAQ,OAAO,IAAA,EAAM,KAAA,EAAK,IAAA,EACzB,QAAA,kBAAAN,cAAAA,CAAC,gBAAA,EAAA,EAAiB,cAAY,SAAA,EAAW,IAAA,EAAK,SAC5C,QAAA,kBAAAA,cAAAA,CAACO,qCAAiB,QAAA,EAAS,OAAA,EAAQ,CAAA,EACrC,CAAA,EACF,CAAA,GACE,IAAA;AAAA,IACH,OAAA,mBACCP,cAAAA,CAACM,wBAAA,EAAA,EAAQ,OAAO,OAAA,EAAS,KAAA,EAAK,IAAA,EAC5B,QAAA,kBAAAN,cAAAA,CAAC,gBAAA,EAAA,EAAiB,cAAY,YAAA,EAAc,IAAA,EAAK,SAC/C,QAAA,kBAAAA,cAAAA,CAACQ,kCAAc,QAAA,EAAS,OAAA,EAAQ,CAAA,EAClC,CAAA,EACF,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;ACzEO,SAAS,uBAAuB,EAAE,QAAA,EAAU,EAAA,EAAI,GAAG,OAAM,EAAa;AAC3E,EAAA,uBACER,cAAAA,CAACS,oBAAA,EAAA,EAAI,KAAA,EAAM,MAAA,EAAO,CAAA,EAAG,GAAA,EAAK,EAAA,EAAI,GAAA,EAAK,EAAA,EAAS,GAAG,KAAA,EAC5C,QAAA,EACH,CAAA;AAEJ","file":"ag-grid.cjs","sourcesContent":["import type {\n ColDef,\n GetRowIdParams,\n Module,\n RowSelectionOptions,\n SelectionChangedEvent,\n} from \"ag-grid-community\";\nimport { AllCommunityModule } from \"ag-grid-community\";\nimport {\n AgGridReact,\n type AgGridReactProps,\n} from \"ag-grid-react\";\nimport { memo, useCallback, useMemo, type CSSProperties } from \"react\";\n\nconst DEFAULT_AG_GRID_MODULES: Module[] = [AllCommunityModule];\n\nexport interface CustomGridTableProps<Row extends object>\n extends Omit<\n AgGridReactProps<Row>,\n | \"columnDefs\"\n | \"rowData\"\n | \"pinnedBottomRowData\"\n | \"defaultColDef\"\n | \"onSelectionChanged\"\n | \"pagination\"\n | \"paginationPageSize\"\n | \"paginationPageSizeSelector\"\n | \"rowSelection\"\n | \"modules\"\n | \"getRowId\"\n > {\n columns?: readonly ColDef<Row>[];\n data?: readonly Row[];\n totals?: readonly Row[];\n loading?: boolean;\n enableSelection?: boolean;\n onSelect?: (rows: Row[]) => void;\n height?: CSSProperties[\"height\"];\n minHeight?: CSSProperties[\"minHeight\"];\n defaultColDef?: ColDef<Row>;\n pagination?: boolean;\n paginationPageSize?: number;\n paginationPageSizeSelector?: readonly number[];\n getRowId?: (params: GetRowIdParams<Row>) => string;\n modules?: Module[];\n ariaLabel?: string;\n}\n\n/**\n * Optional AG Grid Community wrapper. Import only from the ag-grid subpath so\n * regular shared-component consumers do not load AG Grid.\n */\nexport function CustomGridTableComponent<Row extends object>({\n columns = [],\n data = [],\n totals = [],\n loading = false,\n enableSelection = false,\n onSelect,\n height = 500,\n minHeight = 240,\n defaultColDef,\n pagination,\n paginationPageSize = 25,\n paginationPageSizeSelector = [5, 10, 25, 50, 75, 100],\n getRowId,\n modules = DEFAULT_AG_GRID_MODULES,\n ariaLabel = \"Data grid\",\n ...gridProps\n}: CustomGridTableProps<Row>) {\n const resolvedDefaultColDef = useMemo<ColDef<Row>>(\n () => ({\n flex: 1,\n minWidth: 160,\n resizable: true,\n sortable: true,\n wrapText: true,\n autoHeight: true,\n ...defaultColDef,\n }),\n [defaultColDef],\n );\n const rowSelection = useMemo<RowSelectionOptions<Row> | undefined>(\n () =>\n enableSelection\n ? {\n mode: \"multiRow\",\n checkboxes: true,\n headerCheckbox: true,\n enableClickSelection: false,\n selectAll: \"filtered\",\n }\n : undefined,\n [enableSelection],\n );\n const enablePagination = pagination ?? data.length > 50;\n const handleSelection = useCallback(\n (event: SelectionChangedEvent<Row>) => onSelect?.(event.api.getSelectedRows()),\n [onSelect],\n );\n\n return (\n <div\n aria-label={ariaLabel}\n role=\"region\"\n style={{ width: \"100%\", height, minHeight }}\n >\n <AgGridReact<Row>\n modules={modules}\n rowData={[...data]}\n columnDefs={[...columns]}\n pinnedBottomRowData={[...totals]}\n defaultColDef={resolvedDefaultColDef}\n loading={loading}\n pagination={enablePagination}\n paginationPageSize={paginationPageSize}\n paginationPageSizeSelector={[...paginationPageSizeSelector]}\n {...(rowSelection ? { rowSelection } : {})}\n onSelectionChanged={handleSelection}\n animateRows={false}\n suppressDragLeaveHidesColumns\n {...(getRowId ? { getRowId } : {})}\n {...gridProps}\n />\n </div>\n );\n}\n\nexport const CustomGridTable = memo(\n CustomGridTableComponent,\n) as typeof CustomGridTableComponent;\n\nexport const AgGridTable = CustomGridTable;\nexport default CustomGridTable;\n","import IconButton, { type IconButtonProps } from \"@mui/material/IconButton\";\n\nexport interface SharedIconButtonProps extends IconButtonProps {\n \"aria-label\": string;\n}\n\n/** An icon-only button that requires an accessible label. */\nexport function SharedIconButton({ sx, ...props }: SharedIconButtonProps) {\n return (\n <IconButton\n sx={{ width: 40, height: 40, borderRadius: 1, ...sx }}\n {...props}\n />\n );\n}\n\nexport default SharedIconButton;\n","import FunctionsIcon from \"@mui/icons-material/Functions\";\nimport InfoOutlinedIcon from \"@mui/icons-material/InfoOutlined\";\nimport Stack from \"@mui/material/Stack\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport type { IHeaderParams } from \"ag-grid-community\";\nimport type { KeyboardEvent, MouseEvent, ReactNode } from \"react\";\nimport { SharedIconButton } from \"../../buttons/SharedIconButton\";\n\nexport interface CustomGridHeaderCellWithInfoProps<Row = unknown>\n extends IHeaderParams<Row> {\n title?: ReactNode;\n info?: ReactNode;\n infoLabel?: string;\n formula?: ReactNode;\n formulaLabel?: string;\n}\n\n/** Accessible sortable AG Grid header with optional information and formula help. */\nexport function CustomGridHeaderCellWithInfo<Row = unknown>({\n displayName,\n title,\n info,\n infoLabel = \"Column information\",\n formula,\n formulaLabel = \"Column formula\",\n column,\n enableSorting,\n progressSort,\n}: CustomGridHeaderCellWithInfoProps<Row>) {\n const sort = column.getSort();\n const headerTitle = title ?? displayName;\n const sortLabel = sort\n ? `${String(headerTitle)}, sorted ${sort === \"asc\" ? \"ascending\" : \"descending\"}`\n : `${String(headerTitle)}, not sorted`;\n const requestSort = (event: MouseEvent | KeyboardEvent) => {\n if (enableSorting) progressSort(event.shiftKey);\n };\n\n return (\n <Stack direction=\"row\" alignItems=\"center\" spacing={0.5} width=\"100%\">\n <button\n type=\"button\"\n disabled={!enableSorting}\n aria-label={sortLabel}\n onClick={requestSort}\n style={{\n appearance: \"none\",\n border: 0,\n background: \"transparent\",\n color: \"inherit\",\n font: \"inherit\",\n fontWeight: 600,\n cursor: enableSorting ? \"pointer\" : \"default\",\n padding: 4,\n }}\n >\n {headerTitle}\n {sort === \"asc\" ? \" ▲\" : sort === \"desc\" ? \" ▼\" : \"\"}\n </button>\n {info ? (\n <Tooltip title={info} arrow>\n <SharedIconButton aria-label={infoLabel} size=\"small\">\n <InfoOutlinedIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n {formula ? (\n <Tooltip title={formula} arrow>\n <SharedIconButton aria-label={formulaLabel} size=\"small\">\n <FunctionsIcon fontSize=\"small\" />\n </SharedIconButton>\n </Tooltip>\n ) : null}\n </Stack>\n );\n}\n\nexport default CustomGridHeaderCellWithInfo;\n","import Box, { type BoxProps } from \"@mui/material/Box\";\n\nexport function CustomGridTableWrapper({ children, sx, ...props }: BoxProps) {\n return (\n <Box width=\"100%\" p={1.5} mb={0.5} sx={sx} {...props}>\n {children}\n </Box>\n );\n}\n\nexport default CustomGridTableWrapper;\n"]}