@j2inn/fin5-ui-utils 4.0.0 → 5.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/README.md +5 -5
- package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
- package/dist/fantomProps/createFin5Props/index.js +146 -146
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
- package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +16 -16
- package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
- package/dist/fantomProps/fantomPropsToObject.js +183 -183
- package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
- package/dist/fantomProps/generateJsonFromFantomPropsFile.js +41 -41
- package/dist/fantomProps/localePropsToJson.d.ts +1 -1
- package/dist/fantomProps/localePropsToJson.js +50 -50
- package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
- package/dist/fantomProps/readFantomPropsFile.js +61 -61
- package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
- package/dist/fin5Top/fin5FileUpload.js +51 -51
- package/dist/fin5Top/fin5Top.d.ts +115 -115
- package/dist/fin5Top/fin5Top.js +58 -58
- package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
- package/dist/fin5Top/finEdge2Cloud.js +15 -15
- package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
- package/dist/fin5Top/getFin5BinUrl.js +9 -9
- package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
- package/dist/fin5Top/openFin5Alarm.js +23 -23
- package/dist/fin5Top/openFin5Historian.d.ts +3 -3
- package/dist/fin5Top/openFin5Historian.js +19 -19
- package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
- package/dist/fin5Top/useFin5AppURLHashParameter.js +128 -128
- package/dist/index.d.ts +30 -30
- package/dist/index.js +64 -64
- package/dist/jobs/jobUtils.d.ts +14 -14
- package/dist/jobs/jobUtils.js +15 -15
- package/dist/react/app/Fin5AppContainer.d.ts +36 -36
- package/dist/react/app/Fin5AppContainer.js +102 -102
- package/dist/react/app/Fin5AppContainer.js.map +1 -1
- package/dist/react/app/Fin5AppRootStore.d.ts +39 -39
- package/dist/react/app/Fin5AppRootStore.js +69 -69
- package/dist/react/components/ErrorBoundary.d.ts +57 -57
- package/dist/react/components/ErrorBoundary.js +150 -150
- package/dist/react/components/ErrorBoundary.js.map +1 -1
- package/dist/react/components/ErrorDisplayer.d.ts +19 -19
- package/dist/react/components/ErrorDisplayer.js +36 -36
- package/dist/react/components/Loader.d.ts +9 -9
- package/dist/react/components/Loader.js +17 -17
- package/dist/react/components/LoadingSpinner.d.ts +2 -2
- package/dist/react/components/LoadingSpinner.js +27 -27
- package/dist/react/components/RecordImage.d.ts +20 -20
- package/dist/react/components/RecordImage.js +51 -51
- package/dist/react/components/charts/QRCode.d.ts +25 -25
- package/dist/react/components/charts/QRCode.js +81 -81
- package/dist/react/components/charts/pie/PieChart.d.ts +93 -93
- package/dist/react/components/charts/pie/PieChart.js +202 -202
- package/dist/react/components/charts/pie/SimplePieChart.d.ts +20 -20
- package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
- package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
- package/dist/react/components/graphics/GraphicViewer.js +29 -29
- package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
- package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
- package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
- package/dist/react/components/navigation/BasicLayout.js +155 -155
- package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
- package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
- package/dist/react/components/navigation/MenuPage.d.ts +37 -37
- package/dist/react/components/navigation/MenuPage.js +36 -36
- package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
- package/dist/react/components/navigation/MenuTrigger.js +33 -33
- package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
- package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
- package/dist/react/components/navigation/ReactRouterLayout.d.ts +35 -35
- package/dist/react/components/navigation/ReactRouterLayout.js +113 -113
- package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
- package/dist/react/components/navigation/customRouting/Router.js +45 -45
- package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
- package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
- package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
- package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
- package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
- package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
- package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
- package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
- package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
- package/dist/react/hooks/useFin5BinUrl.js +15 -15
- package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
- package/dist_es/fantomProps/createFin5Props/index.js +140 -140
- package/dist_es/fantomProps/createFin5Props/index.js.map +0 -0
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +11 -11
- package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js.map +0 -0
- package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
- package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
- package/dist_es/fantomProps/fantomPropsToObject.js.map +0 -0
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
- package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js.map +0 -0
- package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
- package/dist_es/fantomProps/localePropsToJson.js +21 -21
- package/dist_es/fantomProps/localePropsToJson.js.map +0 -0
- package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
- package/dist_es/fantomProps/readFantomPropsFile.js +35 -35
- package/dist_es/fantomProps/readFantomPropsFile.js.map +0 -0
- package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
- package/dist_es/fin5Top/fin5FileUpload.js +47 -47
- package/dist_es/fin5Top/fin5Top.d.ts +115 -115
- package/dist_es/fin5Top/fin5Top.js +54 -54
- package/dist_es/fin5Top/fin5Top.js.map +0 -0
- package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
- package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
- package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
- package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
- package/dist_es/fin5Top/getFin5BinUrl.js.map +0 -0
- package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
- package/dist_es/fin5Top/openFin5Alarm.js +19 -19
- package/dist_es/fin5Top/openFin5Alarm.js.map +0 -0
- package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
- package/dist_es/fin5Top/openFin5Historian.js +15 -15
- package/dist_es/fin5Top/openFin5Historian.js.map +0 -0
- package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
- package/dist_es/fin5Top/useFin5AppURLHashParameter.js +119 -119
- package/dist_es/fin5Top/useFin5AppURLHashParameter.js.map +0 -0
- package/dist_es/index.d.ts +30 -30
- package/dist_es/index.js +48 -48
- package/dist_es/index.js.map +0 -0
- package/dist_es/jobs/jobUtils.d.ts +14 -14
- package/dist_es/jobs/jobUtils.js +9 -9
- package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
- package/dist_es/react/app/Fin5AppContainer.js +73 -73
- package/dist_es/react/app/Fin5AppContainer.js.map +1 -1
- package/dist_es/react/app/Fin5AppContainer.jsx +0 -0
- package/dist_es/react/app/Fin5AppContainer.jsx.map +0 -0
- package/dist_es/react/app/Fin5AppRootStore.d.ts +39 -39
- package/dist_es/react/app/Fin5AppRootStore.js +65 -65
- package/dist_es/react/app/Fin5AppRootStore.js.map +0 -0
- package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
- package/dist_es/react/components/ErrorBoundary.js +123 -123
- package/dist_es/react/components/ErrorBoundary.js.map +1 -1
- package/dist_es/react/components/ErrorBoundary.jsx +0 -0
- package/dist_es/react/components/ErrorBoundary.jsx.map +0 -0
- package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
- package/dist_es/react/components/ErrorDisplayer.js +28 -28
- package/dist_es/react/components/ErrorDisplayer.jsx +0 -0
- package/dist_es/react/components/ErrorDisplayer.jsx.map +0 -0
- package/dist_es/react/components/Loader.d.ts +9 -9
- package/dist_es/react/components/Loader.js +12 -12
- package/dist_es/react/components/Loader.jsx +1 -1
- package/dist_es/react/components/Loader.jsx.map +1 -1
- package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
- package/dist_es/react/components/LoadingSpinner.js +20 -20
- package/dist_es/react/components/LoadingSpinner.jsx +3 -4
- package/dist_es/react/components/LoadingSpinner.jsx.map +1 -1
- package/dist_es/react/components/RecordImage.d.ts +20 -20
- package/dist_es/react/components/RecordImage.js +24 -24
- package/dist_es/react/components/charts/QRCode.d.ts +25 -25
- package/dist_es/react/components/charts/QRCode.js +53 -53
- package/dist_es/react/components/charts/pie/PieChart.d.ts +93 -93
- package/dist_es/react/components/charts/pie/PieChart.js +175 -175
- package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +20 -20
- package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
- package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
- package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
- package/dist_es/react/components/graphics/GraphicViewer.jsx +23 -0
- package/dist_es/react/components/graphics/GraphicViewer.jsx.map +1 -0
- package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
- package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
- package/dist_es/react/components/graphics/GraphicsTabViewer.jsx +63 -0
- package/dist_es/react/components/graphics/GraphicsTabViewer.jsx.map +1 -0
- package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
- package/dist_es/react/components/navigation/BasicLayout.js +124 -124
- package/dist_es/react/components/navigation/BasicLayout.jsx +35 -7
- package/dist_es/react/components/navigation/BasicLayout.jsx.map +1 -1
- package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
- package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
- package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
- package/dist_es/react/components/navigation/MenuPage.js +30 -30
- package/dist_es/react/components/navigation/MenuPage.jsx +0 -0
- package/dist_es/react/components/navigation/MenuPage.jsx.map +1 -1
- package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
- package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
- package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
- package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
- package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +35 -35
- package/dist_es/react/components/navigation/ReactRouterLayout.js +81 -81
- package/dist_es/react/components/navigation/Router.d.ts +0 -0
- package/dist_es/react/components/navigation/Router.js +19 -0
- package/dist_es/react/components/navigation/Router.js.map +1 -0
- package/dist_es/react/components/navigation/Router.jsx +1 -1
- package/dist_es/react/components/navigation/Router.jsx.map +1 -1
- package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
- package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
- package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
- package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
- package/dist_es/react/components/navigation/react-router/BasicLayout.d.ts +23 -0
- package/dist_es/react/components/navigation/react-router/BasicLayout.js +82 -0
- package/dist_es/react/components/navigation/react-router/BasicLayout.js.map +1 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.d.ts +24 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js +82 -0
- package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js.map +1 -0
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
- package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
- package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
- package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
- package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
- package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
- package/package.json +7 -6
|
@@ -1,176 +1,176 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2023, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
-
import * as am5percent from '@amcharts/amcharts5/percent';
|
|
6
|
-
import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
7
|
-
import { createUseStyles, useTheme } from 'react-jss';
|
|
8
|
-
const useStyles = createUseStyles({
|
|
9
|
-
root: {
|
|
10
|
-
width: '100%',
|
|
11
|
-
height: '100%',
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
/**
|
|
15
|
-
* Returns a color palette selecting some colors from the theme.
|
|
16
|
-
* @param theme The theme
|
|
17
|
-
* @returns An array of colors
|
|
18
|
-
*/
|
|
19
|
-
const getDefaultChartColors = (theme) => {
|
|
20
|
-
return {
|
|
21
|
-
interfaceColors: {
|
|
22
|
-
text: theme.textColor,
|
|
23
|
-
},
|
|
24
|
-
series: [
|
|
25
|
-
theme.palette.lime,
|
|
26
|
-
theme.palette.cyan,
|
|
27
|
-
theme.palette.red,
|
|
28
|
-
theme.palette.volcano,
|
|
29
|
-
theme.palette.orange,
|
|
30
|
-
theme.palette.gold,
|
|
31
|
-
theme.palette.yellow,
|
|
32
|
-
theme.palette.green,
|
|
33
|
-
theme.palette.purple,
|
|
34
|
-
theme.palette.magenta,
|
|
35
|
-
theme.palette.blue,
|
|
36
|
-
theme.palette.grey,
|
|
37
|
-
],
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Highly customizable pie chart component based on amcharts5
|
|
42
|
-
* @see https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/
|
|
43
|
-
*
|
|
44
|
-
* This component wraps some of the chart configuration trying to make it more react-friendly
|
|
45
|
-
*/
|
|
46
|
-
export const PieChart = ({ DOMtargetId, data, colorPalette, numberFormat, chartThemes, chartSettingsProvider, legendSettingsProvider, legendLabelsSettings, legendValueLabelsSettings, legendMarkersSettings, seriesSettings, seriesLabelsSettings, centerLabelSettings, slicesSettings, sliceAdapters, }) => {
|
|
47
|
-
// Colors configuration
|
|
48
|
-
const theme = useTheme();
|
|
49
|
-
const colors = { ...getDefaultChartColors(theme), ...colorPalette };
|
|
50
|
-
// Chart lifecycle
|
|
51
|
-
const [id, setId] = useState(DOMtargetId ?? `amchart-${Math.random()}`);
|
|
52
|
-
const rootRef = useRef(null);
|
|
53
|
-
const chartRef = useRef(null);
|
|
54
|
-
const legendRef = useRef(null);
|
|
55
|
-
useEffect(() => {
|
|
56
|
-
if (DOMtargetId && DOMtargetId !== id) {
|
|
57
|
-
setId(DOMtargetId);
|
|
58
|
-
}
|
|
59
|
-
}, [DOMtargetId]);
|
|
60
|
-
// Chart setup
|
|
61
|
-
useLayoutEffect(() => {
|
|
62
|
-
const root = am5.Root.new(id);
|
|
63
|
-
// Setup amcharts theme
|
|
64
|
-
if (chartThemes) {
|
|
65
|
-
root.setThemes(chartThemes.map((t) => t.new(root)));
|
|
66
|
-
}
|
|
67
|
-
// Setup interface colors, see https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors
|
|
68
|
-
if (colors.interfaceColors) {
|
|
69
|
-
// Remap settings to use amcharts Color objects
|
|
70
|
-
for (const setting in colors.interfaceColors) {
|
|
71
|
-
const color = colors.interfaceColors[setting];
|
|
72
|
-
// Apply defined interfaceColor on the chart
|
|
73
|
-
root.interfaceColors.set(setting, am5.color(color));
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// Setup chart settings
|
|
77
|
-
const chart = root.container.children.push(am5percent.PieChart.new(root, {
|
|
78
|
-
layout: root.verticalLayout,
|
|
79
|
-
...chartSettingsProvider?.(root),
|
|
80
|
-
}));
|
|
81
|
-
// Setup legend
|
|
82
|
-
const legend = chart.children.push(am5.Legend.new(root, {
|
|
83
|
-
layout: root.horizontalLayout,
|
|
84
|
-
...legendSettingsProvider?.(root),
|
|
85
|
-
}));
|
|
86
|
-
if (legendLabelsSettings) {
|
|
87
|
-
legend.labels.template.setAll(legendLabelsSettings);
|
|
88
|
-
}
|
|
89
|
-
if (legendValueLabelsSettings) {
|
|
90
|
-
legend.valueLabels.template.setAll(legendValueLabelsSettings);
|
|
91
|
-
}
|
|
92
|
-
if (legendMarkersSettings) {
|
|
93
|
-
legend.markers.template.setAll(legendMarkersSettings);
|
|
94
|
-
}
|
|
95
|
-
rootRef.current = root;
|
|
96
|
-
chartRef.current = chart;
|
|
97
|
-
legendRef.current = legend;
|
|
98
|
-
// clean up before component removal from the DOM
|
|
99
|
-
return () => {
|
|
100
|
-
legendRef.current?.dispose();
|
|
101
|
-
legendRef.current = null;
|
|
102
|
-
chartRef.current?.dispose();
|
|
103
|
-
chartRef.current = null;
|
|
104
|
-
root?.dispose();
|
|
105
|
-
rootRef.current = null;
|
|
106
|
-
};
|
|
107
|
-
}, [
|
|
108
|
-
id,
|
|
109
|
-
colors,
|
|
110
|
-
chartThemes,
|
|
111
|
-
chartSettingsProvider,
|
|
112
|
-
legendSettingsProvider,
|
|
113
|
-
legendValueLabelsSettings,
|
|
114
|
-
legendMarkersSettings,
|
|
115
|
-
]);
|
|
116
|
-
// Set data
|
|
117
|
-
useEffect(() => {
|
|
118
|
-
const root = rootRef.current;
|
|
119
|
-
const chart = chartRef.current;
|
|
120
|
-
if (chart && root) {
|
|
121
|
-
chart.series.clear();
|
|
122
|
-
if (data?.length) {
|
|
123
|
-
// Setup series
|
|
124
|
-
const series = chart.series.push(am5percent.PieSeries.new(root, {
|
|
125
|
-
valueField: 'value',
|
|
126
|
-
categoryField: 'category',
|
|
127
|
-
...seriesSettings,
|
|
128
|
-
}));
|
|
129
|
-
// Setup series labels
|
|
130
|
-
if (seriesLabelsSettings) {
|
|
131
|
-
series.labels.template.setAll(seriesLabelsSettings);
|
|
132
|
-
}
|
|
133
|
-
// Setup center label
|
|
134
|
-
if (centerLabelSettings) {
|
|
135
|
-
series.children.push(am5.Label.new(root, {
|
|
136
|
-
...centerLabelSettings,
|
|
137
|
-
}));
|
|
138
|
-
}
|
|
139
|
-
// Setup series slices
|
|
140
|
-
if (slicesSettings) {
|
|
141
|
-
series.slices.template.setAll(slicesSettings);
|
|
142
|
-
}
|
|
143
|
-
// Setup slice adapters
|
|
144
|
-
if (sliceAdapters) {
|
|
145
|
-
sliceAdapters.forEach(([key, callbackMaker]) => series.slices.template.adapters.add(key, callbackMaker({
|
|
146
|
-
root: root,
|
|
147
|
-
chart: chart,
|
|
148
|
-
series,
|
|
149
|
-
})));
|
|
150
|
-
}
|
|
151
|
-
// Setup series colors
|
|
152
|
-
if (colors?.series) {
|
|
153
|
-
series.get('colors')?.set('colors', colors.series.map((c) => am5.color(c)));
|
|
154
|
-
}
|
|
155
|
-
series.data.setAll(data);
|
|
156
|
-
legendRef.current?.data.setAll(series.dataItems);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}, [
|
|
160
|
-
data,
|
|
161
|
-
chartRef.current,
|
|
162
|
-
colors?.series,
|
|
163
|
-
seriesSettings,
|
|
164
|
-
slicesSettings,
|
|
165
|
-
seriesLabelsSettings,
|
|
166
|
-
sliceAdapters,
|
|
167
|
-
]);
|
|
168
|
-
useEffect(() => {
|
|
169
|
-
if (numberFormat) {
|
|
170
|
-
rootRef.current?.numberFormatter.set('numberFormat', numberFormat);
|
|
171
|
-
}
|
|
172
|
-
}, [rootRef.current, numberFormat]);
|
|
173
|
-
const classes = useStyles();
|
|
174
|
-
return React.createElement("div", { id: id, className: classes.root });
|
|
175
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import * as am5percent from '@amcharts/amcharts5/percent';
|
|
6
|
+
import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
7
|
+
import { createUseStyles, useTheme } from 'react-jss';
|
|
8
|
+
const useStyles = createUseStyles({
|
|
9
|
+
root: {
|
|
10
|
+
width: '100%',
|
|
11
|
+
height: '100%',
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Returns a color palette selecting some colors from the theme.
|
|
16
|
+
* @param theme The theme
|
|
17
|
+
* @returns An array of colors
|
|
18
|
+
*/
|
|
19
|
+
const getDefaultChartColors = (theme) => {
|
|
20
|
+
return {
|
|
21
|
+
interfaceColors: {
|
|
22
|
+
text: theme.textColor,
|
|
23
|
+
},
|
|
24
|
+
series: [
|
|
25
|
+
theme.palette.lime,
|
|
26
|
+
theme.palette.cyan,
|
|
27
|
+
theme.palette.red,
|
|
28
|
+
theme.palette.volcano,
|
|
29
|
+
theme.palette.orange,
|
|
30
|
+
theme.palette.gold,
|
|
31
|
+
theme.palette.yellow,
|
|
32
|
+
theme.palette.green,
|
|
33
|
+
theme.palette.purple,
|
|
34
|
+
theme.palette.magenta,
|
|
35
|
+
theme.palette.blue,
|
|
36
|
+
theme.palette.grey,
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Highly customizable pie chart component based on amcharts5
|
|
42
|
+
* @see https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/
|
|
43
|
+
*
|
|
44
|
+
* This component wraps some of the chart configuration trying to make it more react-friendly
|
|
45
|
+
*/
|
|
46
|
+
export const PieChart = ({ DOMtargetId, data, colorPalette, numberFormat, chartThemes, chartSettingsProvider, legendSettingsProvider, legendLabelsSettings, legendValueLabelsSettings, legendMarkersSettings, seriesSettings, seriesLabelsSettings, centerLabelSettings, slicesSettings, sliceAdapters, }) => {
|
|
47
|
+
// Colors configuration
|
|
48
|
+
const theme = useTheme();
|
|
49
|
+
const colors = { ...getDefaultChartColors(theme), ...colorPalette };
|
|
50
|
+
// Chart lifecycle
|
|
51
|
+
const [id, setId] = useState(DOMtargetId ?? `amchart-${Math.random()}`);
|
|
52
|
+
const rootRef = useRef(null);
|
|
53
|
+
const chartRef = useRef(null);
|
|
54
|
+
const legendRef = useRef(null);
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (DOMtargetId && DOMtargetId !== id) {
|
|
57
|
+
setId(DOMtargetId);
|
|
58
|
+
}
|
|
59
|
+
}, [DOMtargetId]);
|
|
60
|
+
// Chart setup
|
|
61
|
+
useLayoutEffect(() => {
|
|
62
|
+
const root = am5.Root.new(id);
|
|
63
|
+
// Setup amcharts theme
|
|
64
|
+
if (chartThemes) {
|
|
65
|
+
root.setThemes(chartThemes.map((t) => t.new(root)));
|
|
66
|
+
}
|
|
67
|
+
// Setup interface colors, see https://www.amcharts.com/docs/v5/concepts/colors-gradients-and-patterns/#Interface_colors
|
|
68
|
+
if (colors.interfaceColors) {
|
|
69
|
+
// Remap settings to use amcharts Color objects
|
|
70
|
+
for (const setting in colors.interfaceColors) {
|
|
71
|
+
const color = colors.interfaceColors[setting];
|
|
72
|
+
// Apply defined interfaceColor on the chart
|
|
73
|
+
root.interfaceColors.set(setting, am5.color(color));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Setup chart settings
|
|
77
|
+
const chart = root.container.children.push(am5percent.PieChart.new(root, {
|
|
78
|
+
layout: root.verticalLayout,
|
|
79
|
+
...chartSettingsProvider?.(root),
|
|
80
|
+
}));
|
|
81
|
+
// Setup legend
|
|
82
|
+
const legend = chart.children.push(am5.Legend.new(root, {
|
|
83
|
+
layout: root.horizontalLayout,
|
|
84
|
+
...legendSettingsProvider?.(root),
|
|
85
|
+
}));
|
|
86
|
+
if (legendLabelsSettings) {
|
|
87
|
+
legend.labels.template.setAll(legendLabelsSettings);
|
|
88
|
+
}
|
|
89
|
+
if (legendValueLabelsSettings) {
|
|
90
|
+
legend.valueLabels.template.setAll(legendValueLabelsSettings);
|
|
91
|
+
}
|
|
92
|
+
if (legendMarkersSettings) {
|
|
93
|
+
legend.markers.template.setAll(legendMarkersSettings);
|
|
94
|
+
}
|
|
95
|
+
rootRef.current = root;
|
|
96
|
+
chartRef.current = chart;
|
|
97
|
+
legendRef.current = legend;
|
|
98
|
+
// clean up before component removal from the DOM
|
|
99
|
+
return () => {
|
|
100
|
+
legendRef.current?.dispose();
|
|
101
|
+
legendRef.current = null;
|
|
102
|
+
chartRef.current?.dispose();
|
|
103
|
+
chartRef.current = null;
|
|
104
|
+
root?.dispose();
|
|
105
|
+
rootRef.current = null;
|
|
106
|
+
};
|
|
107
|
+
}, [
|
|
108
|
+
id,
|
|
109
|
+
colors,
|
|
110
|
+
chartThemes,
|
|
111
|
+
chartSettingsProvider,
|
|
112
|
+
legendSettingsProvider,
|
|
113
|
+
legendValueLabelsSettings,
|
|
114
|
+
legendMarkersSettings,
|
|
115
|
+
]);
|
|
116
|
+
// Set data
|
|
117
|
+
useEffect(() => {
|
|
118
|
+
const root = rootRef.current;
|
|
119
|
+
const chart = chartRef.current;
|
|
120
|
+
if (chart && root) {
|
|
121
|
+
chart.series.clear();
|
|
122
|
+
if (data?.length) {
|
|
123
|
+
// Setup series
|
|
124
|
+
const series = chart.series.push(am5percent.PieSeries.new(root, {
|
|
125
|
+
valueField: 'value',
|
|
126
|
+
categoryField: 'category',
|
|
127
|
+
...seriesSettings,
|
|
128
|
+
}));
|
|
129
|
+
// Setup series labels
|
|
130
|
+
if (seriesLabelsSettings) {
|
|
131
|
+
series.labels.template.setAll(seriesLabelsSettings);
|
|
132
|
+
}
|
|
133
|
+
// Setup center label
|
|
134
|
+
if (centerLabelSettings) {
|
|
135
|
+
series.children.push(am5.Label.new(root, {
|
|
136
|
+
...centerLabelSettings,
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
// Setup series slices
|
|
140
|
+
if (slicesSettings) {
|
|
141
|
+
series.slices.template.setAll(slicesSettings);
|
|
142
|
+
}
|
|
143
|
+
// Setup slice adapters
|
|
144
|
+
if (sliceAdapters) {
|
|
145
|
+
sliceAdapters.forEach(([key, callbackMaker]) => series.slices.template.adapters.add(key, callbackMaker({
|
|
146
|
+
root: root,
|
|
147
|
+
chart: chart,
|
|
148
|
+
series,
|
|
149
|
+
})));
|
|
150
|
+
}
|
|
151
|
+
// Setup series colors
|
|
152
|
+
if (colors?.series) {
|
|
153
|
+
series.get('colors')?.set('colors', colors.series.map((c) => am5.color(c)));
|
|
154
|
+
}
|
|
155
|
+
series.data.setAll(data);
|
|
156
|
+
legendRef.current?.data.setAll(series.dataItems);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}, [
|
|
160
|
+
data,
|
|
161
|
+
chartRef.current,
|
|
162
|
+
colors?.series,
|
|
163
|
+
seriesSettings,
|
|
164
|
+
slicesSettings,
|
|
165
|
+
seriesLabelsSettings,
|
|
166
|
+
sliceAdapters,
|
|
167
|
+
]);
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
if (numberFormat) {
|
|
170
|
+
rootRef.current?.numberFormatter.set('numberFormat', numberFormat);
|
|
171
|
+
}
|
|
172
|
+
}, [rootRef.current, numberFormat]);
|
|
173
|
+
const classes = useStyles();
|
|
174
|
+
return React.createElement("div", { id: id, className: classes.root });
|
|
175
|
+
};
|
|
176
176
|
//# sourceMappingURL=PieChart.js.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { PieChartColorPalette, PieChartSliceData } from './PieChart';
|
|
3
|
-
export interface SimplePieChartProps {
|
|
4
|
-
data: PieChartSliceData[];
|
|
5
|
-
donut?: boolean;
|
|
6
|
-
animated?: boolean;
|
|
7
|
-
colorPalette?: Partial<PieChartColorPalette>;
|
|
8
|
-
tooltipFormat?: string;
|
|
9
|
-
numberFormat?: Intl.NumberFormatOptions;
|
|
10
|
-
hideLabels?: boolean;
|
|
11
|
-
/**
|
|
12
|
-
* Optional DOM id for the chart container, if not specified it will be automatically generated
|
|
13
|
-
*/
|
|
14
|
-
DOMtargetId?: string;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Simplified version of the pie chart for quick usage and easy configuration.
|
|
18
|
-
* Serves also as an example of how to use the underlying PieChart component.
|
|
19
|
-
*/
|
|
20
|
-
export declare const SimplePieChart: React.FC<SimplePieChartProps>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PieChartColorPalette, PieChartSliceData } from './PieChart';
|
|
3
|
+
export interface SimplePieChartProps {
|
|
4
|
+
data: PieChartSliceData[];
|
|
5
|
+
donut?: boolean;
|
|
6
|
+
animated?: boolean;
|
|
7
|
+
colorPalette?: Partial<PieChartColorPalette>;
|
|
8
|
+
tooltipFormat?: string;
|
|
9
|
+
numberFormat?: Intl.NumberFormatOptions;
|
|
10
|
+
hideLabels?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Optional DOM id for the chart container, if not specified it will be automatically generated
|
|
13
|
+
*/
|
|
14
|
+
DOMtargetId?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Simplified version of the pie chart for quick usage and easy configuration.
|
|
18
|
+
* Serves also as an example of how to use the underlying PieChart component.
|
|
19
|
+
*/
|
|
20
|
+
export declare const SimplePieChart: React.FC<SimplePieChartProps>;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2023, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
-
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
import { PieChart } from './PieChart';
|
|
8
|
-
/**
|
|
9
|
-
* Simplified version of the pie chart for quick usage and easy configuration.
|
|
10
|
-
* Serves also as an example of how to use the underlying PieChart component.
|
|
11
|
-
*/
|
|
12
|
-
export const SimplePieChart = ({ data, donut, animated, colorPalette, tooltipFormat, numberFormat = {
|
|
13
|
-
style: 'decimal',
|
|
14
|
-
minimumFractionDigits: 0,
|
|
15
|
-
maximumFractionDigits: 1,
|
|
16
|
-
}, hideLabels, DOMtargetId, }) => {
|
|
17
|
-
return (React.createElement(PieChart, { DOMtargetId: DOMtargetId, colorPalette: colorPalette, data: data, chartThemes: animated ? [am5themes_Animated] : undefined, chartSettingsProvider: () => ({
|
|
18
|
-
innerRadius: donut ? am5.percent(55) : undefined,
|
|
19
|
-
}), numberFormat: numberFormat, legendSettingsProvider: () => ({
|
|
20
|
-
centerX: am5.percent(50),
|
|
21
|
-
x: am5.percent(50),
|
|
22
|
-
}), seriesLabelsSettings: { forceHidden: hideLabels }, seriesSettings: { alignLabels: false }, slicesSettings: {
|
|
23
|
-
tooltipText: tooltipFormat,
|
|
24
|
-
} }));
|
|
25
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2023, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import * as am5 from '@amcharts/amcharts5';
|
|
5
|
+
import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
import { PieChart } from './PieChart';
|
|
8
|
+
/**
|
|
9
|
+
* Simplified version of the pie chart for quick usage and easy configuration.
|
|
10
|
+
* Serves also as an example of how to use the underlying PieChart component.
|
|
11
|
+
*/
|
|
12
|
+
export const SimplePieChart = ({ data, donut, animated, colorPalette, tooltipFormat, numberFormat = {
|
|
13
|
+
style: 'decimal',
|
|
14
|
+
minimumFractionDigits: 0,
|
|
15
|
+
maximumFractionDigits: 1,
|
|
16
|
+
}, hideLabels, DOMtargetId, }) => {
|
|
17
|
+
return (React.createElement(PieChart, { DOMtargetId: DOMtargetId, colorPalette: colorPalette, data: data, chartThemes: animated ? [am5themes_Animated] : undefined, chartSettingsProvider: () => ({
|
|
18
|
+
innerRadius: donut ? am5.percent(55) : undefined,
|
|
19
|
+
}), numberFormat: numberFormat, legendSettingsProvider: () => ({
|
|
20
|
+
centerX: am5.percent(50),
|
|
21
|
+
x: am5.percent(50),
|
|
22
|
+
}), seriesLabelsSettings: { forceHidden: hideLabels }, seriesSettings: { alignLabels: false }, slicesSettings: {
|
|
23
|
+
tooltipText: tooltipFormat,
|
|
24
|
+
} }));
|
|
25
|
+
};
|
|
26
26
|
//# sourceMappingURL=SimplePieChart.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { HRef } from 'haystack-core';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
interface GraphicViewerProps {
|
|
4
|
-
projectName?: string;
|
|
5
|
-
graphicId: HRef;
|
|
6
|
-
targetRef: HRef;
|
|
7
|
-
className?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare const GraphicViewer: React.FC<GraphicViewerProps>;
|
|
10
|
-
export {};
|
|
1
|
+
import { HRef } from 'haystack-core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
interface GraphicViewerProps {
|
|
4
|
+
projectName?: string;
|
|
5
|
+
graphicId: HRef;
|
|
6
|
+
targetRef: HRef;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const GraphicViewer: React.FC<GraphicViewerProps>;
|
|
10
|
+
export {};
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
-
*/
|
|
4
|
-
import cn from 'classnames';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { createUseStyles } from 'react-jss';
|
|
7
|
-
import { fin5Top } from '../../../fin5Top/fin5Top';
|
|
8
|
-
const useStyles = createUseStyles({
|
|
9
|
-
iframe: {
|
|
10
|
-
width: '100%',
|
|
11
|
-
height: '100%',
|
|
12
|
-
border: 0,
|
|
13
|
-
overflow: 'hidden',
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
export const GraphicViewer = ({ projectName = fin5Top?.finstack?.projectName ?? '', graphicId, targetRef, className, }) => {
|
|
17
|
-
const classes = useStyles();
|
|
18
|
-
const url = new URL(`${window.location.protocol}//${window.location.host}/fin5/${projectName}`);
|
|
19
|
-
url.hash = `targetRef=${targetRef.toAxon()}`;
|
|
20
|
-
url.searchParams.set('projectRef', graphicId.toAxon());
|
|
21
|
-
return (React.createElement("iframe", { id: graphicId.toAxon(), className: cn(classes.iframe, className), src: url.toString() }));
|
|
22
|
-
};
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import cn from 'classnames';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { createUseStyles } from 'react-jss';
|
|
7
|
+
import { fin5Top } from '../../../fin5Top/fin5Top';
|
|
8
|
+
const useStyles = createUseStyles({
|
|
9
|
+
iframe: {
|
|
10
|
+
width: '100%',
|
|
11
|
+
height: '100%',
|
|
12
|
+
border: 0,
|
|
13
|
+
overflow: 'hidden',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
export const GraphicViewer = ({ projectName = fin5Top?.finstack?.projectName ?? '', graphicId, targetRef, className, }) => {
|
|
17
|
+
const classes = useStyles();
|
|
18
|
+
const url = new URL(`${window.location.protocol}//${window.location.host}/fin5/${projectName}`);
|
|
19
|
+
url.hash = `targetRef=${targetRef.toAxon()}`;
|
|
20
|
+
url.searchParams.set('projectRef', graphicId.toAxon());
|
|
21
|
+
return (React.createElement("iframe", { id: graphicId.toAxon(), className: cn(classes.iframe, className), src: url.toString() }));
|
|
22
|
+
};
|
|
23
23
|
//# sourceMappingURL=GraphicViewer.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022, J2 Innovations. All Rights Reserved
|
|
3
|
+
*/
|
|
4
|
+
import cn from 'classnames';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { createUseStyles } from 'react-jss';
|
|
7
|
+
import { fin5Top } from '../../../fin5Top/fin5Top';
|
|
8
|
+
const useStyles = createUseStyles({
|
|
9
|
+
iframe: {
|
|
10
|
+
width: '100%',
|
|
11
|
+
height: '100%',
|
|
12
|
+
border: 0,
|
|
13
|
+
overflow: 'hidden',
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
export const GraphicViewer = ({ projectName = fin5Top?.finstack?.projectName ?? '', graphicId, targetRef, className, }) => {
|
|
17
|
+
const classes = useStyles();
|
|
18
|
+
const url = new URL(`${window.location.protocol}//${window.location.host}/fin5/${projectName}`);
|
|
19
|
+
url.hash = `targetRef=${targetRef.toAxon()}`;
|
|
20
|
+
url.searchParams.set('projectRef', graphicId.toAxon());
|
|
21
|
+
return (<iframe id={graphicId.toAxon()} className={cn(classes.iframe, className)} src={url.toString()}/>);
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=GraphicViewer.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GraphicViewer.jsx","sourceRoot":"","sources":["../../../../src/react/components/graphics/GraphicViewer.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,MAAM,SAAS,GAAG,eAAe,CAAC;IACjC,MAAM,EAAE;QACP,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,CAAC;QACT,QAAQ,EAAE,QAAQ;KAClB;CACD,CAAC,CAAA;AASF,MAAM,CAAC,MAAM,aAAa,GAAiC,CAAC,EAC3D,WAAW,GAAG,OAAO,EAAE,QAAQ,EAAE,WAAW,IAAI,EAAE,EAClD,SAAS,EACT,SAAS,EACT,SAAS,GACT,EAAE,EAAE;IACJ,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAE3B,MAAM,GAAG,GAAG,IAAI,GAAG,CAClB,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,SAAS,WAAW,EAAE,CAC1E,CAAA;IACD,GAAG,CAAC,IAAI,GAAG,aAAa,SAAS,CAAC,MAAM,EAAE,EAAE,CAAA;IAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IAEtD,OAAO,CACN,CAAC,MAAM,CACN,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CACvB,SAAS,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CACzC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EACnB,CACF,CAAA;AACF,CAAC,CAAA"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { HRef } from 'haystack-core';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
interface GraphicsTabViewer {
|
|
4
|
-
projectName?: string;
|
|
5
|
-
targetRef: HRef;
|
|
6
|
-
className?: string;
|
|
7
|
-
/**
|
|
8
|
-
* Set it to true if you want to query also for related graphics (graphics applicable to objects linked by refs),
|
|
9
|
-
* false to just get the graphics on this target.
|
|
10
|
-
* @default false
|
|
11
|
-
*/
|
|
12
|
-
queryRelated?: boolean;
|
|
13
|
-
fallbackClassName?: string;
|
|
14
|
-
fallbackText?: string;
|
|
15
|
-
}
|
|
16
|
-
export declare const GraphicsTabViewer: React.FC<GraphicsTabViewer>;
|
|
17
|
-
export {};
|
|
1
|
+
import { HRef } from 'haystack-core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
interface GraphicsTabViewer {
|
|
4
|
+
projectName?: string;
|
|
5
|
+
targetRef: HRef;
|
|
6
|
+
className?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Set it to true if you want to query also for related graphics (graphics applicable to objects linked by refs),
|
|
9
|
+
* false to just get the graphics on this target.
|
|
10
|
+
* @default false
|
|
11
|
+
*/
|
|
12
|
+
queryRelated?: boolean;
|
|
13
|
+
fallbackClassName?: string;
|
|
14
|
+
fallbackText?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const GraphicsTabViewer: React.FC<GraphicsTabViewer>;
|
|
17
|
+
export {};
|