@j2inn/fin5-ui-utils 6.0.0 → 6.0.1
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/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/react/components/charts/QRCode.d.ts +2 -2
- package/dist/react/components/charts/QRCode.js +2 -1
- package/dist/react/components/charts/QRCode.js.map +1 -1
- package/dist/react/components/charts/line-bar/Chart.d.ts +166 -0
- package/dist/react/components/charts/line-bar/Chart.js +443 -0
- package/dist/react/components/charts/line-bar/Chart.js.map +1 -0
- package/dist/react/components/charts/line-bar/HGridChart.d.ts +58 -0
- package/dist/react/components/charts/line-bar/HGridChart.js +286 -0
- package/dist/react/components/charts/line-bar/HGridChart.js.map +1 -0
- package/dist/react/components/charts/pie/PieChart.d.ts +3 -2
- package/dist/react/components/charts/pie/PieChart.js +3 -1
- package/dist/react/components/charts/pie/PieChart.js.map +1 -1
- package/dist/react/components/charts/pie/SimplePieChart.d.ts +3 -2
- package/dist/react/components/charts/pie/SimplePieChart.js.map +1 -1
- package/dist/react/components/makeCustomElement.d.ts +16 -0
- package/dist/react/components/makeCustomElement.js +151 -0
- package/dist/react/components/makeCustomElement.js.map +1 -0
- package/dist/react/hooks/useScreenSize.d.ts +7 -0
- package/dist/react/hooks/useScreenSize.js +32 -0
- package/dist/react/hooks/useScreenSize.js.map +1 -0
- package/dist_es/index.d.ts +4 -0
- package/dist_es/index.js +4 -0
- package/dist_es/index.js.map +1 -1
- package/dist_es/react/components/charts/QRCode.d.ts +2 -2
- package/dist_es/react/components/charts/QRCode.js +1 -2
- package/dist_es/react/components/charts/QRCode.js.map +1 -1
- package/dist_es/react/components/charts/line-bar/Chart.d.ts +166 -0
- package/dist_es/react/components/charts/line-bar/Chart.js +416 -0
- package/dist_es/react/components/charts/line-bar/Chart.js.map +1 -0
- package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +58 -0
- package/dist_es/react/components/charts/line-bar/HGridChart.js +251 -0
- package/dist_es/react/components/charts/line-bar/HGridChart.js.map +1 -0
- package/dist_es/react/components/charts/pie/PieChart.d.ts +3 -2
- package/dist_es/react/components/charts/pie/PieChart.js +3 -1
- package/dist_es/react/components/charts/pie/PieChart.js.map +1 -1
- package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +3 -2
- package/dist_es/react/components/charts/pie/SimplePieChart.js.map +1 -1
- package/dist_es/react/components/makeCustomElement.d.ts +16 -0
- package/dist_es/react/components/makeCustomElement.js +143 -0
- package/dist_es/react/components/makeCustomElement.js.map +1 -0
- package/dist_es/react/hooks/useScreenSize.d.ts +7 -0
- package/dist_es/react/hooks/useScreenSize.js +28 -0
- package/dist_es/react/hooks/useScreenSize.js.map +1 -0
- package/package.json +5 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
2
|
+
import { ITimeInterval } from '@amcharts/amcharts5/.internal/core/util/Time';
|
|
3
|
+
import { HBool, HDict, HGrid, HNum, HStr, HVal } from 'haystack-core';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { BarChartSeriesData, LegendPlacement, LineChartSeriesData, UnitPlacement } from './Chart';
|
|
6
|
+
export declare const rollupDurationToTimeInterval: (value?: HNum) => ITimeInterval;
|
|
7
|
+
export interface HGridChartRange extends HGridChartItemProps {
|
|
8
|
+
startValue: HVal;
|
|
9
|
+
endValue: HVal;
|
|
10
|
+
}
|
|
11
|
+
export interface HGridChartMetadata extends HDict {
|
|
12
|
+
ranges?: HGridChartRange[];
|
|
13
|
+
hisRollupInterval?: HNum;
|
|
14
|
+
}
|
|
15
|
+
export interface HGridChartItemProps extends HDict {
|
|
16
|
+
dis?: HStr;
|
|
17
|
+
color?: HStr;
|
|
18
|
+
opacity?: HNum;
|
|
19
|
+
}
|
|
20
|
+
export interface HGridChartSeriesProps extends HGridChartItemProps {
|
|
21
|
+
series?: HStr;
|
|
22
|
+
variant?: HStr;
|
|
23
|
+
unit?: HStr;
|
|
24
|
+
hideAxis?: HBool;
|
|
25
|
+
axisPlacement?: HStr;
|
|
26
|
+
}
|
|
27
|
+
export interface HGridChartProps {
|
|
28
|
+
className?: string;
|
|
29
|
+
data: HGrid;
|
|
30
|
+
timeRange: [Date, Date];
|
|
31
|
+
timeInterval?: am5.time.ITimeInterval;
|
|
32
|
+
unitPlacement?: UnitPlacement;
|
|
33
|
+
legendPlacement?: LegendPlacement;
|
|
34
|
+
translateLabel?: (name: string) => string | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Optional DOM id for the chart container, if not specified it will be automatically generated.
|
|
37
|
+
* It can also be an HTMLElement, in that case the element will be used as a parent.
|
|
38
|
+
*/
|
|
39
|
+
DOMtargetId?: string | HTMLElement;
|
|
40
|
+
}
|
|
41
|
+
export declare const isLineSeries: (colMetadata?: HGridChartSeriesProps) => boolean;
|
|
42
|
+
export declare const isStackedBarSeries: (colMetadata?: HGridChartSeriesProps) => boolean;
|
|
43
|
+
export declare const isBarSeries: (colMetadata?: HGridChartSeriesProps) => boolean;
|
|
44
|
+
export declare const colNameToDisProvider: (grid: HGrid, translateLabel?: ((name: string) => string | undefined) | undefined) => (colName: string) => string;
|
|
45
|
+
export declare const splitBarAndLineSeriesCols: (grid: HGrid) => {
|
|
46
|
+
barSeries: Set<string>;
|
|
47
|
+
stackedBarSeries: Set<string>;
|
|
48
|
+
lineSeries: Set<string>;
|
|
49
|
+
};
|
|
50
|
+
export declare const getBarSeriesRowData: (row: HDict, metadata: HDict, colName: string, barSeriesData: Map<string, BarChartSeriesData>) => void;
|
|
51
|
+
export declare const addLineSeriesRowData: (row: HDict, metadata: HDict, colName: string, lineSeriesData: Map<string, LineChartSeriesData>) => void;
|
|
52
|
+
export declare const calculateDefaultTimeInterval: (timeRange: [Date, Date]) => am5.time.ITimeInterval;
|
|
53
|
+
/**
|
|
54
|
+
* A component that renders a chart containing multiple series
|
|
55
|
+
* of different kinds, taking all the data and configuration from an HGrid.
|
|
56
|
+
*/
|
|
57
|
+
export declare const HGridChart: React.NamedExoticComponent<HGridChartProps>;
|
|
58
|
+
export default HGridChart;
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import { HDict, HGrid, Kind, valueIsKind, } from 'haystack-core';
|
|
6
|
+
import { day, hour, julianMonth, week, year } from 'haystack-units/dist';
|
|
7
|
+
import React, { memo, useMemo } from 'react';
|
|
8
|
+
import { useTheme } from 'react-jss';
|
|
9
|
+
import { useScreenSize } from '../../../hooks/useScreenSize';
|
|
10
|
+
import { AxisPlacement, Chart, LegendPlacement, UnitPlacement, } from './Chart';
|
|
11
|
+
var SeriesType;
|
|
12
|
+
(function (SeriesType) {
|
|
13
|
+
SeriesType["line"] = "line";
|
|
14
|
+
SeriesType["bar"] = "bar";
|
|
15
|
+
SeriesType["stackedBar"] = "stackedBar";
|
|
16
|
+
})(SeriesType || (SeriesType = {}));
|
|
17
|
+
var SeriesVariant;
|
|
18
|
+
(function (SeriesVariant) {
|
|
19
|
+
SeriesVariant["dashed"] = "dashed";
|
|
20
|
+
})(SeriesVariant || (SeriesVariant = {}));
|
|
21
|
+
export const rollupDurationToTimeInterval = (value) => {
|
|
22
|
+
let unit;
|
|
23
|
+
switch (value?.unit) {
|
|
24
|
+
case hour:
|
|
25
|
+
unit = 'hour';
|
|
26
|
+
break;
|
|
27
|
+
case day:
|
|
28
|
+
unit = 'day';
|
|
29
|
+
break;
|
|
30
|
+
case week:
|
|
31
|
+
unit = 'week';
|
|
32
|
+
break;
|
|
33
|
+
case julianMonth:
|
|
34
|
+
unit = 'month';
|
|
35
|
+
break;
|
|
36
|
+
case year:
|
|
37
|
+
unit = 'year';
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return { count: value?.value ?? 1, timeUnit: unit ?? 'hour' };
|
|
41
|
+
};
|
|
42
|
+
export const isLineSeries = (colMetadata) => colMetadata?.series?.value === SeriesType.line;
|
|
43
|
+
export const isStackedBarSeries = (colMetadata) => colMetadata?.series?.value === SeriesType.stackedBar;
|
|
44
|
+
export const isBarSeries = (colMetadata) => colMetadata?.series?.value === SeriesType.bar;
|
|
45
|
+
const isDottedSeriesVariant = (colMetadata) => SeriesVariant.dashed === colMetadata?.variant?.value;
|
|
46
|
+
const getSeriesColor = (colMetadata) => colMetadata?.color ? am5.color(colMetadata.color.value) : undefined;
|
|
47
|
+
const getSeriesDis = (colMetadata) => colMetadata?.dis?.value;
|
|
48
|
+
const getSeriesUnit = (colMetadata) => colMetadata?.unit?.value;
|
|
49
|
+
const getHideAxis = (colMetadata) => colMetadata?.hideAxis?.value;
|
|
50
|
+
const getAxisPlacement = (colMetadata) => AxisPlacement[colMetadata?.axisPlacement?.value];
|
|
51
|
+
export const colNameToDisProvider = (grid, translateLabel) => (colName) => {
|
|
52
|
+
if (translateLabel) {
|
|
53
|
+
const label = translateLabel(colName);
|
|
54
|
+
if (label) {
|
|
55
|
+
return label;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const colMetadata = grid.getColumn(colName)?.meta;
|
|
59
|
+
if (colMetadata?.dis) {
|
|
60
|
+
return colMetadata.dis.value;
|
|
61
|
+
}
|
|
62
|
+
return colName;
|
|
63
|
+
};
|
|
64
|
+
export const splitBarAndLineSeriesCols = (grid) => {
|
|
65
|
+
const barSeries = new Set();
|
|
66
|
+
const stackedBarSeries = new Set();
|
|
67
|
+
const lineSeries = new Set();
|
|
68
|
+
grid.getColumns().forEach((column) => {
|
|
69
|
+
const colMetadata = column.meta;
|
|
70
|
+
if (isLineSeries(colMetadata)) {
|
|
71
|
+
lineSeries.add(column.name);
|
|
72
|
+
}
|
|
73
|
+
else if (isBarSeries(colMetadata)) {
|
|
74
|
+
barSeries.add(column.name);
|
|
75
|
+
}
|
|
76
|
+
else if (isStackedBarSeries(colMetadata)) {
|
|
77
|
+
stackedBarSeries.add(column.name);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return {
|
|
81
|
+
barSeries,
|
|
82
|
+
stackedBarSeries,
|
|
83
|
+
lineSeries,
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
export const getBarSeriesRowData = (row, metadata, colName, barSeriesData) => {
|
|
87
|
+
if (!barSeriesData.has(colName)) {
|
|
88
|
+
const series = {
|
|
89
|
+
seriesName: colName,
|
|
90
|
+
dis: getSeriesDis(metadata),
|
|
91
|
+
unit: getSeriesUnit(metadata),
|
|
92
|
+
hideAxis: getHideAxis(metadata),
|
|
93
|
+
axisPlacement: getAxisPlacement(metadata),
|
|
94
|
+
data: [],
|
|
95
|
+
};
|
|
96
|
+
const seriesColor = getSeriesColor(metadata);
|
|
97
|
+
if (seriesColor) {
|
|
98
|
+
series.stroke = seriesColor;
|
|
99
|
+
}
|
|
100
|
+
barSeriesData.set(colName, series);
|
|
101
|
+
}
|
|
102
|
+
barSeriesData.get(colName)?.data.push({
|
|
103
|
+
ts: row.get('ts').date.getTime(),
|
|
104
|
+
value: row.get(colName)?.value,
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
export const addLineSeriesRowData = (row, metadata, colName, lineSeriesData) => {
|
|
108
|
+
if (!lineSeriesData.has(colName)) {
|
|
109
|
+
const series = {
|
|
110
|
+
seriesName: colName,
|
|
111
|
+
dis: getSeriesDis(metadata),
|
|
112
|
+
unit: getSeriesUnit(metadata),
|
|
113
|
+
hideAxis: getHideAxis(metadata),
|
|
114
|
+
axisPlacement: getAxisPlacement(metadata),
|
|
115
|
+
data: [],
|
|
116
|
+
strokeSettings: {
|
|
117
|
+
strokeWidth: 2,
|
|
118
|
+
strokeDasharray: isDottedSeriesVariant(metadata)
|
|
119
|
+
? [3, 3]
|
|
120
|
+
: undefined,
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
const seriesColor = getSeriesColor(metadata);
|
|
124
|
+
if (seriesColor && series.strokeSettings) {
|
|
125
|
+
series.strokeSettings.stroke = seriesColor;
|
|
126
|
+
}
|
|
127
|
+
lineSeriesData.set(colName, series);
|
|
128
|
+
}
|
|
129
|
+
lineSeriesData.get(colName)?.data.push({
|
|
130
|
+
ts: row.get('ts').date.getTime(),
|
|
131
|
+
value: row.get(colName)?.value,
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
/**
|
|
135
|
+
* Returns the numeric value of an Haystack Value object (if numeric)
|
|
136
|
+
* @param val Haystack value
|
|
137
|
+
* @returns the numeric value:
|
|
138
|
+
* - `HNum` > numeric value
|
|
139
|
+
* - `HDate` > time value in milliseconds since midnight, January 1, 1970 UTC
|
|
140
|
+
* - `HTime` > time value in milliseconds since midnight, January 1, 1970 UTC
|
|
141
|
+
* - `HBool` > 1 if `val` is `true`, `false` otherwise
|
|
142
|
+
* - `HDateTime` > time value in milliseconds since midnight, January 1, 1970 UTC
|
|
143
|
+
*/
|
|
144
|
+
const getHValValueNumber = (val) => {
|
|
145
|
+
if (valueIsKind(val, Kind.Number)) {
|
|
146
|
+
return val.value;
|
|
147
|
+
}
|
|
148
|
+
if (valueIsKind(val, Kind.Date)) {
|
|
149
|
+
return val.date.getTime();
|
|
150
|
+
}
|
|
151
|
+
if (valueIsKind(val, Kind.Time)) {
|
|
152
|
+
return val.date.getTime();
|
|
153
|
+
}
|
|
154
|
+
if (valueIsKind(val, Kind.Bool)) {
|
|
155
|
+
return val.value ? 1 : 0;
|
|
156
|
+
}
|
|
157
|
+
if (valueIsKind(val, Kind.DateTime)) {
|
|
158
|
+
return val.date.getTime();
|
|
159
|
+
}
|
|
160
|
+
throw new Error(`getHValValue: ${val.getKind()} not supported`);
|
|
161
|
+
};
|
|
162
|
+
export const calculateDefaultTimeInterval = (timeRange) => {
|
|
163
|
+
const diffTime = Math.abs(timeRange[1].getTime() - timeRange[0].getTime());
|
|
164
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
|
165
|
+
return { count: diffDays ? diffDays : 1, timeUnit: 'hour' };
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* A component that renders a chart containing multiple series
|
|
169
|
+
* of different kinds, taking all the data and configuration from an HGrid.
|
|
170
|
+
*/
|
|
171
|
+
export const HGridChart = memo(function HGridChartComponent({ className, data, timeRange, timeInterval = calculateDefaultTimeInterval(timeRange), unitPlacement = UnitPlacement.axis, legendPlacement = LegendPlacement.right, translateLabel = undefined, DOMtargetId, }) {
|
|
172
|
+
const theme = useTheme();
|
|
173
|
+
const { barSeriesData, stackedBarSeriesData, lineSeriesData, rangesData } = useMemo(() => {
|
|
174
|
+
if (data === undefined) {
|
|
175
|
+
return {
|
|
176
|
+
barSeriesData: [],
|
|
177
|
+
stackedBarSeriesData: [],
|
|
178
|
+
lineSeriesData: [],
|
|
179
|
+
rangesData: [],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
const gridMetadata = data.meta;
|
|
183
|
+
const { barSeries, stackedBarSeries, lineSeries } = splitBarAndLineSeriesCols(data);
|
|
184
|
+
const barSeriesData = new Map();
|
|
185
|
+
const stackedBarSeriesData = new Map();
|
|
186
|
+
const lineSeriesData = new Map();
|
|
187
|
+
data.getRows().forEach((row) => {
|
|
188
|
+
if (stackedBarSeries.size > 0) {
|
|
189
|
+
stackedBarSeries.forEach((colName) => {
|
|
190
|
+
getBarSeriesRowData(row, data.getColumn(colName)?.meta ?? HDict.make(), colName, stackedBarSeriesData);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
if (barSeries.size > 0) {
|
|
194
|
+
barSeries.forEach((colName) => {
|
|
195
|
+
getBarSeriesRowData(row, data.getColumn(colName)?.meta ?? HDict.make(), colName, barSeriesData);
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (lineSeries.size > 0) {
|
|
199
|
+
lineSeries.forEach((lineSeriesColName) => {
|
|
200
|
+
addLineSeriesRowData(row, data.getColumn(lineSeriesColName)?.meta ??
|
|
201
|
+
HDict.make(), lineSeriesColName, lineSeriesData);
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
const rangesData = gridMetadata.ranges?.map((rangeData) => {
|
|
206
|
+
const result = {
|
|
207
|
+
startValue: getHValValueNumber(rangeData.startValue),
|
|
208
|
+
endValue: getHValValueNumber(rangeData.endValue),
|
|
209
|
+
color: getSeriesColor(rangeData),
|
|
210
|
+
tooltip: rangeData.dis?.value,
|
|
211
|
+
opacity: rangeData.opacity?.value,
|
|
212
|
+
};
|
|
213
|
+
return result;
|
|
214
|
+
}) ?? [];
|
|
215
|
+
return {
|
|
216
|
+
barSeriesData: Array.from(barSeriesData.values()),
|
|
217
|
+
stackedBarSeriesData: Array.from(stackedBarSeriesData.values()),
|
|
218
|
+
lineSeriesData: Array.from(lineSeriesData.values()),
|
|
219
|
+
rangesData,
|
|
220
|
+
};
|
|
221
|
+
}, [data]);
|
|
222
|
+
const screenSize = useScreenSize();
|
|
223
|
+
const effectiveLegendPlacement = useMemo(() => {
|
|
224
|
+
const MIN_WIDTH = 1024;
|
|
225
|
+
if (screenSize.width >= MIN_WIDTH) {
|
|
226
|
+
return legendPlacement;
|
|
227
|
+
}
|
|
228
|
+
switch (legendPlacement) {
|
|
229
|
+
case LegendPlacement.left:
|
|
230
|
+
return LegendPlacement.top;
|
|
231
|
+
case LegendPlacement.right:
|
|
232
|
+
return LegendPlacement.bottom;
|
|
233
|
+
}
|
|
234
|
+
return legendPlacement;
|
|
235
|
+
}, [legendPlacement, screenSize.width]);
|
|
236
|
+
return (React.createElement("div", { className: className },
|
|
237
|
+
React.createElement(Chart, { DOMtargetId: DOMtargetId, cursor: true, legendPlacement: effectiveLegendPlacement, unitPlacement: unitPlacement, numberFormat: { maximumFractionDigits: 0 }, barSeriesData: barSeriesData, rangesData: rangesData, translateLabel: colNameToDisProvider(data ?? HGrid.make(), translateLabel), stackedBarSeriesData: stackedBarSeriesData, lineSeriesData: lineSeriesData, gridSettings: {
|
|
238
|
+
stroke: am5.color(theme.borderColor),
|
|
239
|
+
}, dateField: 'ts', baseInterval: timeInterval, tooltipSettings: {
|
|
240
|
+
fontSize: '0.9rem',
|
|
241
|
+
}, legendLabelsSettings: {
|
|
242
|
+
fill: am5.color(theme.textColor),
|
|
243
|
+
fontSize: '0.9rem',
|
|
244
|
+
}, legendMarkersSettings: {
|
|
245
|
+
width: 8,
|
|
246
|
+
height: 8,
|
|
247
|
+
rounded: true,
|
|
248
|
+
} })));
|
|
249
|
+
});
|
|
250
|
+
export default HGridChart;
|
|
251
|
+
//# sourceMappingURL=HGridChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HGridChart.js","sourceRoot":"","sources":["../../../../../src/react/components/charts/line-bar/HGridChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -72,9 +72,10 @@ export interface PieChartProps {
|
|
|
72
72
|
*/
|
|
73
73
|
sliceAdapters?: SliceAdapter[];
|
|
74
74
|
/**
|
|
75
|
-
* Optional DOM id for the chart container, if not specified it will be automatically generated
|
|
75
|
+
* Optional DOM id for the chart container, if not specified it will be automatically generated.
|
|
76
|
+
* It can also be an HTMLElement, in that case the element will be used as a parent.
|
|
76
77
|
*/
|
|
77
|
-
DOMtargetId?: string;
|
|
78
|
+
DOMtargetId?: string | HTMLElement;
|
|
78
79
|
}
|
|
79
80
|
export declare type SliceAdapter<T extends keyof am5.ISliceSettings = keyof am5.ISliceSettings> = [
|
|
80
81
|
T,
|
|
@@ -171,6 +171,8 @@ export const PieChart = ({ DOMtargetId, data, colorPalette, numberFormat, chartT
|
|
|
171
171
|
}
|
|
172
172
|
}, [rootRef.current, numberFormat]);
|
|
173
173
|
const classes = useStyles();
|
|
174
|
-
return React.createElement("div", { id: id, className: classes.root })
|
|
174
|
+
return typeof id === 'string' ? (React.createElement("div", { id: id, className: classes.root })) : (
|
|
175
|
+
// If the DOM target is an HTML element, do not render another div. The chart will be attached to the existing element.
|
|
176
|
+
React.createElement(React.Fragment, null));
|
|
175
177
|
};
|
|
176
178
|
//# sourceMappingURL=PieChart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PieChart.js","sourceRoot":"","sources":["../../../../../src/react/components/charts/pie/PieChart.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3E,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAErD,MAAM,SAAS,GAAG,eAAe,CAAC;IACjC,IAAI,EAAE;QACL,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACd;CACD,CAAC,CAAA;AAWF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,KAAe,EAAwB,EAAE;IACvE,OAAO;QACN,eAAe,EAAE;YAChB,IAAI,EAAE,KAAK,CAAC,SAAS;SACrB;QACD,MAAM,EAAE;YACP,KAAK,CAAC,OAAO,CAAC,IAAI;YAClB,KAAK,CAAC,OAAO,CAAC,IAAI;YAClB,KAAK,CAAC,OAAO,CAAC,GAAG;YACjB,KAAK,CAAC,OAAO,CAAC,OAAO;YACrB,KAAK,CAAC,OAAO,CAAC,MAAM;YACpB,KAAK,CAAC,OAAO,CAAC,IAAI;YAClB,KAAK,CAAC,OAAO,CAAC,MAAM;YACpB,KAAK,CAAC,OAAO,CAAC,KAAK;YACnB,KAAK,CAAC,OAAO,CAAC,MAAM;YACpB,KAAK,CAAC,OAAO,CAAC,OAAO;YACrB,KAAK,CAAC,OAAO,CAAC,IAAI;YAClB,KAAK,CAAC,OAAO,CAAC,IAAI;SAClB;KACD,CAAA;AACF,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"PieChart.js","sourceRoot":"","sources":["../../../../../src/react/components/charts/pie/PieChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,10 @@ export interface SimplePieChartProps {
|
|
|
9
9
|
numberFormat?: Intl.NumberFormatOptions;
|
|
10
10
|
hideLabels?: boolean;
|
|
11
11
|
/**
|
|
12
|
-
* Optional DOM id for the chart container, if not specified it will be automatically generated
|
|
12
|
+
* Optional DOM id for the chart container, if not specified it will be automatically generated.
|
|
13
|
+
* It can also be an HTMLElement, in that case the element will be used as a parent.
|
|
13
14
|
*/
|
|
14
|
-
DOMtargetId?: string;
|
|
15
|
+
DOMtargetId?: string | HTMLElement;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Simplified version of the pie chart for quick usage and easy configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimplePieChart.js","sourceRoot":"","sources":["../../../../../src/react/components/charts/pie/SimplePieChart.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,kBAAkB,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAA2C,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"SimplePieChart.js","sourceRoot":"","sources":["../../../../../src/react/components/charts/pie/SimplePieChart.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAA;AAC1C,OAAO,kBAAkB,MAAM,qCAAqC,CAAA;AACpE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAA2C,MAAM,YAAY,CAAA;AAiB9E;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAkC,CAAC,EAC7D,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,YAAY,GAAG;IACd,KAAK,EAAE,SAAS;IAChB,qBAAqB,EAAE,CAAC;IACxB,qBAAqB,EAAE,CAAC;CACxB,EACD,UAAU,EACV,WAAW,GACX,EAAe,EAAE;IACjB,OAAO,CACN,oBAAC,QAAQ,IACR,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,EACxD,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC7B,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAChD,CAAC,EACF,YAAY,EAAE,YAAY,EAC1B,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;SAClB,CAAC,EACF,oBAAoB,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EACjD,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EACtC,cAAc,EAAE;YACf,WAAW,EAAE,aAAa;SAC1B,GACA,CACF,CAAA;AACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface CustomElementOptions {
|
|
3
|
+
useShadowDom?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Generate a custom element constructor that wraps the given react component.
|
|
7
|
+
*/
|
|
8
|
+
export declare const makeCustomElement: <T extends object>(Component: React.FC<T>, options?: CustomElementOptions) => CustomElementConstructor;
|
|
9
|
+
/**
|
|
10
|
+
* Create a custom element wrapping a React component and register it.
|
|
11
|
+
* @param webComponentName the name of the Web component (tag name)
|
|
12
|
+
* @param ReactComponent the React component to wrap
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
export declare const registerReactWebComponent: <T extends object>(webComponentName: string, ReactComponent: React.FC<T>, options?: CustomElementOptions) => void;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { AppRootStoreContext, AppStoreContext } from '@j2inn/app-react';
|
|
5
|
+
import { GenerateTheme } from '@j2inn/ui';
|
|
6
|
+
import { I18NContext } from '@j2inn/utils';
|
|
7
|
+
import { ClientContext } from 'haystack-react';
|
|
8
|
+
import { create } from 'jss';
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { createRoot } from 'react-dom/client';
|
|
11
|
+
import { JssProvider, ThemeProvider } from 'react-jss';
|
|
12
|
+
const defaultTheme = GenerateTheme().light;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a custom element constructor that wraps the given react component.
|
|
15
|
+
*/
|
|
16
|
+
export const makeCustomElement = (Component, options = {
|
|
17
|
+
useShadowDom: true,
|
|
18
|
+
}) => {
|
|
19
|
+
return class extends HTMLElement {
|
|
20
|
+
static get observedAttributes() {
|
|
21
|
+
return ['props'];
|
|
22
|
+
}
|
|
23
|
+
_locale;
|
|
24
|
+
get locale() {
|
|
25
|
+
return this._locale;
|
|
26
|
+
}
|
|
27
|
+
set locale(value) {
|
|
28
|
+
this._locale = value;
|
|
29
|
+
this.render();
|
|
30
|
+
}
|
|
31
|
+
_appRootStore;
|
|
32
|
+
get appRootStore() {
|
|
33
|
+
return this._appRootStore ?? {};
|
|
34
|
+
}
|
|
35
|
+
set appRootStore(value) {
|
|
36
|
+
this._appRootStore = value;
|
|
37
|
+
this.render();
|
|
38
|
+
}
|
|
39
|
+
_appStore;
|
|
40
|
+
get appStore() {
|
|
41
|
+
return this._appStore ?? {};
|
|
42
|
+
}
|
|
43
|
+
set appStore(value) {
|
|
44
|
+
this._appStore = value;
|
|
45
|
+
this.render();
|
|
46
|
+
}
|
|
47
|
+
_client;
|
|
48
|
+
get client() {
|
|
49
|
+
return this._client;
|
|
50
|
+
}
|
|
51
|
+
set client(value) {
|
|
52
|
+
this._client = value;
|
|
53
|
+
this.render();
|
|
54
|
+
}
|
|
55
|
+
_i18n;
|
|
56
|
+
get i18n() {
|
|
57
|
+
return this._i18n;
|
|
58
|
+
}
|
|
59
|
+
set i18n(value) {
|
|
60
|
+
this._i18n = value;
|
|
61
|
+
this.render();
|
|
62
|
+
}
|
|
63
|
+
_props;
|
|
64
|
+
get props() {
|
|
65
|
+
return this._props;
|
|
66
|
+
}
|
|
67
|
+
set props(value) {
|
|
68
|
+
this._props = value;
|
|
69
|
+
this.render();
|
|
70
|
+
}
|
|
71
|
+
_theme;
|
|
72
|
+
get theme() {
|
|
73
|
+
return this._theme ?? defaultTheme;
|
|
74
|
+
}
|
|
75
|
+
set theme(value) {
|
|
76
|
+
this._theme = value;
|
|
77
|
+
this.render();
|
|
78
|
+
}
|
|
79
|
+
root;
|
|
80
|
+
jss;
|
|
81
|
+
base;
|
|
82
|
+
initialized = false;
|
|
83
|
+
constructor() {
|
|
84
|
+
super();
|
|
85
|
+
this.base = options?.useShadowDom
|
|
86
|
+
? this.attachShadow({ mode: 'open' })
|
|
87
|
+
: this;
|
|
88
|
+
}
|
|
89
|
+
initialize() {
|
|
90
|
+
if (!this.initialized) {
|
|
91
|
+
const mountPoint = document.createElement('div');
|
|
92
|
+
mountPoint.setAttribute('style', 'display: contents;');
|
|
93
|
+
this.base.appendChild(mountPoint);
|
|
94
|
+
this.root = createRoot(mountPoint);
|
|
95
|
+
this.jss = create({
|
|
96
|
+
insertionPoint: mountPoint,
|
|
97
|
+
});
|
|
98
|
+
this.initialized = true;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
connectedCallback() {
|
|
102
|
+
this.render();
|
|
103
|
+
}
|
|
104
|
+
attributeChangedCallback() {
|
|
105
|
+
this.render();
|
|
106
|
+
}
|
|
107
|
+
disconnectedCallback() {
|
|
108
|
+
this.root?.unmount();
|
|
109
|
+
this.initialized = false;
|
|
110
|
+
}
|
|
111
|
+
render() {
|
|
112
|
+
this.initialize();
|
|
113
|
+
const ThemedComponent = (React.createElement(ThemeProvider, { theme: this.theme },
|
|
114
|
+
React.createElement(I18NContext.Provider, { value: this.i18n },
|
|
115
|
+
React.createElement(JssProvider, { jss: this.jss },
|
|
116
|
+
React.createElement(Component, { ...this.props })))));
|
|
117
|
+
this.root?.render(React.createElement(AppRootStoreContext.Provider, { value: this.appRootStore ?? null },
|
|
118
|
+
React.createElement(AppStoreContext.Provider, { value: this.appStore }, this.client ? (React.createElement(ClientContext.Provider, { value: this.client }, ThemedComponent)) : (ThemedComponent))));
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Create a custom element wrapping a React component and register it.
|
|
124
|
+
* @param webComponentName the name of the Web component (tag name)
|
|
125
|
+
* @param ReactComponent the React component to wrap
|
|
126
|
+
* @returns
|
|
127
|
+
*/
|
|
128
|
+
export const registerReactWebComponent = (webComponentName, ReactComponent, options) => {
|
|
129
|
+
// Bail if web component is already defined
|
|
130
|
+
if (customElements.get(webComponentName)) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
// Make web component that wraps the react component
|
|
134
|
+
const Element = makeCustomElement(ReactComponent, options);
|
|
135
|
+
try {
|
|
136
|
+
// Define web component
|
|
137
|
+
customElements.define(webComponentName, Element);
|
|
138
|
+
}
|
|
139
|
+
catch (e) {
|
|
140
|
+
console.error(e);
|
|
141
|
+
}
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=makeCustomElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeCustomElement.js","sourceRoot":"","sources":["../../../src/react/components/makeCustomElement.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect, useState } from 'react';
|
|
5
|
+
/**
|
|
6
|
+
* Observe screen size.
|
|
7
|
+
*/
|
|
8
|
+
export const useScreenSize = () => {
|
|
9
|
+
const [screenSize, setScreenSize] = useState({
|
|
10
|
+
width: window.innerWidth,
|
|
11
|
+
height: window.innerHeight,
|
|
12
|
+
});
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const handleResize = () => {
|
|
15
|
+
setScreenSize({
|
|
16
|
+
width: window.innerWidth,
|
|
17
|
+
height: window.innerHeight,
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
window.addEventListener('resize', handleResize);
|
|
21
|
+
// Clean up the event listener when the component unmounts
|
|
22
|
+
return () => {
|
|
23
|
+
window.removeEventListener('resize', handleResize);
|
|
24
|
+
};
|
|
25
|
+
}, []);
|
|
26
|
+
return screenSize;
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=useScreenSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScreenSize.js","sourceRoot":"","sources":["../../../src/react/hooks/useScreenSize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,EAAE;IACjC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC;QAC5C,KAAK,EAAE,MAAM,CAAC,UAAU;QACxB,MAAM,EAAE,MAAM,CAAC,WAAW;KAC1B,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,YAAY,GAAG,GAAG,EAAE;YACzB,aAAa,CAAC;gBACb,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,MAAM,EAAE,MAAM,CAAC,WAAW;aAC1B,CAAC,CAAA;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE/C,0DAA0D;QAC1D,OAAO,GAAG,EAAE;YACX,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QACnD,CAAC,CAAA;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,UAAU,CAAA;AAClB,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j2inn/fin5-ui-utils",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.1",
|
|
4
4
|
"description": "A set of useful client-side utilities useful for creating UI applications on top of FIN 5",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"qrious": "^4.0.2"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@amcharts/amcharts5": "^5.
|
|
35
|
+
"@amcharts/amcharts5": "^5.9.13",
|
|
36
36
|
"@j2inn/app": "^6.0.0",
|
|
37
37
|
"@j2inn/app-react": "^2.0.0",
|
|
38
38
|
"@j2inn/i18n": "^1.0.0",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"haystack-nclient": "^4.0.0",
|
|
44
44
|
"haystack-react": "^4.0.0",
|
|
45
45
|
"haystack-units": "^2.0.0",
|
|
46
|
+
"lodash": "^4.17.21",
|
|
46
47
|
"react": "^18.2.0",
|
|
47
48
|
"react-dom": "^18.2.0",
|
|
48
49
|
"react-jss": "^10.9.2",
|
|
@@ -68,8 +69,10 @@
|
|
|
68
69
|
"@babel/runtime": "^7.19.0",
|
|
69
70
|
"@types/jest": "^29.0.3",
|
|
70
71
|
"@types/js-yaml": "^4.0.5",
|
|
72
|
+
"@types/lodash": "^4.17.19",
|
|
71
73
|
"@types/node": "^18.7.18",
|
|
72
74
|
"@types/react": "^18.0.20",
|
|
75
|
+
"@types/react-dom": "^18.0.20",
|
|
73
76
|
"@typescript-eslint/eslint-plugin": "^5.37.0",
|
|
74
77
|
"@typescript-eslint/parser": "^5.37.0",
|
|
75
78
|
"babel-eslint": "^10.1.0",
|