@apia/charts 1.0.2 → 2.0.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.
- package/dist/charts/ChartContext.js +6 -0
- package/dist/charts/ChartContext.js.map +1 -0
- package/dist/charts/ChartRenderer.d.ts +17 -0
- package/dist/charts/ChartRenderer.d.ts.map +1 -0
- package/dist/charts/ChartRenderer.js +175 -0
- package/dist/charts/ChartRenderer.js.map +1 -0
- package/dist/charts/horizontalBars/Bar.js +226 -0
- package/dist/charts/horizontalBars/Bar.js.map +1 -0
- package/dist/charts/horizontalBars/HorizontalBars.js +374 -0
- package/dist/charts/horizontalBars/HorizontalBars.js.map +1 -0
- package/dist/charts/linear/LineChart.js +528 -0
- package/dist/charts/linear/LineChart.js.map +1 -0
- package/dist/charts/linear/Node.js +56 -0
- package/dist/charts/linear/Node.js.map +1 -0
- package/dist/charts/pie/Pie.js +184 -0
- package/dist/charts/pie/Pie.js.map +1 -0
- package/dist/charts/pie/Slice.js +96 -0
- package/dist/charts/pie/Slice.js.map +1 -0
- package/dist/charts/pie/usePieAnimation.js +123 -0
- package/dist/charts/pie/usePieAnimation.js.map +1 -0
- package/dist/charts/types.d.ts +188 -0
- package/dist/charts/types.d.ts.map +1 -0
- package/dist/charts/util/ChartSelector.js +36 -0
- package/dist/charts/util/ChartSelector.js.map +1 -0
- package/dist/charts/util/ColoredLegendItem.js +46 -0
- package/dist/charts/util/ColoredLegendItem.js.map +1 -0
- package/dist/charts/util/EmptyGrid.d.ts +8 -0
- package/dist/charts/util/EmptyGrid.d.ts.map +1 -0
- package/dist/charts/util/EmptyGrid.js +51 -0
- package/dist/charts/util/EmptyGrid.js.map +1 -0
- package/dist/charts/util/LegendContainer.js +53 -0
- package/dist/charts/util/LegendContainer.js.map +1 -0
- package/dist/charts/util/NumberedLegendItem.js +45 -0
- package/dist/charts/util/NumberedLegendItem.js.map +1 -0
- package/dist/charts/util/getBarColor.js +29 -0
- package/dist/charts/util/getBarColor.js.map +1 -0
- package/dist/charts/util/parseMargin.js +11 -0
- package/dist/charts/util/parseMargin.js.map +1 -0
- package/dist/charts/util/useChartStyles.js +35 -0
- package/dist/charts/util/useChartStyles.js.map +1 -0
- package/dist/charts/verticalBars/Bar.js +239 -0
- package/dist/charts/verticalBars/Bar.js.map +1 -0
- package/dist/charts/verticalBars/VerticalBars.js +394 -0
- package/dist/charts/verticalBars/VerticalBars.js.map +1 -0
- package/dist/charts/waterfallBars/WaterfallBar.js +84 -0
- package/dist/charts/waterfallBars/WaterfallBar.js.map +1 -0
- package/dist/charts/waterfallBars/WaterfallBars.js +289 -0
- package/dist/charts/waterfallBars/WaterfallBars.js.map +1 -0
- package/dist/index.d.ts +6 -250
- package/dist/index.js +4 -4263
- package/dist/index.js.map +1 -1
- package/dist/widgets/WidgetContainer.d.ts +10 -0
- package/dist/widgets/WidgetContainer.d.ts.map +1 -0
- package/dist/widgets/WidgetContainer.js +68 -0
- package/dist/widgets/WidgetContainer.js.map +1 -0
- package/dist/widgets/counter/Counter.js +108 -0
- package/dist/widgets/counter/Counter.js.map +1 -0
- package/dist/widgets/custom/useCustomWidget.js +64 -0
- package/dist/widgets/custom/useCustomWidget.js.map +1 -0
- package/dist/widgets/custom/util.js +9 -0
- package/dist/widgets/custom/util.js.map +1 -0
- package/dist/widgets/oxford/Oxford.js +241 -0
- package/dist/widgets/oxford/Oxford.js.map +1 -0
- package/dist/widgets/ring/Ring.js +123 -0
- package/dist/widgets/ring/Ring.js.map +1 -0
- package/dist/widgets/scale/Scale.js +145 -0
- package/dist/widgets/scale/Scale.js.map +1 -0
- package/dist/widgets/speedMeter/SpeedMeter.js +187 -0
- package/dist/widgets/speedMeter/SpeedMeter.js.map +1 -0
- package/dist/widgets/tLight/TLight.js +134 -0
- package/dist/widgets/tLight/TLight.js.map +1 -0
- package/dist/widgets/thermometer/Thermometer.js +144 -0
- package/dist/widgets/thermometer/Thermometer.js.map +1 -0
- package/dist/widgets/thermometer/util.js +31 -0
- package/dist/widgets/thermometer/util.js.map +1 -0
- package/dist/widgets/types.d.ts +41 -0
- package/dist/widgets/types.d.ts.map +1 -0
- package/package.json +30 -43
- package/LICENSE.md +0 -21
- package/README.md +0 -1
- package/cleanDist.json +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TLight.js","sources":["../../../src/widgets/tLight/TLight.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { useGauge } from 'use-gauge';\nimport { TApiaWidgetProps } from '../types';\nimport { useCallback, useRef, useState, useEffect } from 'react';\nimport { addBoundary, noNaN, animate } from '@apia/util';\n\nconst START_ANGLE = 0;\nconst END_ANGLE = 360;\n\nexport const TLight = ({\n addBorder = false,\n colorRanges,\n maxValue,\n minValue,\n currentValue,\n height,\n valueRanges,\n width,\n currentValueColor,\n currentValueFontSize,\n}: TApiaWidgetProps) => {\n const [value, setValue] = useState(currentValue);\n const diameter = Math.min(height, width);\n const domainMax = noNaN(maxValue) ?? valueRanges[valueRanges.length - 1];\n const domainMin = noNaN(minValue) ?? valueRanges[0];\n const gauge = useGauge({\n domain: [domainMin, domainMax],\n startAngle: START_ANGLE,\n endAngle: END_ANGLE,\n numTicks: 0,\n diameter: diameter,\n });\n function getColor(value: number) {\n const index = valueRanges.findIndex((range) => value < range);\n\n if (index === -1) {\n return colorRanges[0];\n }\n\n return colorRanges[index - 1] ?? colorRanges[index];\n }\n\n const hasRendered = useRef(false);\n\n const onRenderSvg = useCallback(\n (el: SVGSVGElement) => {\n if (!el || hasRendered.current) return;\n\n hasRendered.current = true;\n\n const svgElement = el;\n const pathElement = el.querySelector('#TLight_arcs');\n\n if (!(svgElement && pathElement)) {\n return;\n }\n\n const pathBox = pathElement.getBoundingClientRect();\n const svgBox = svgElement.getBoundingClientRect();\n const pathX = pathBox.x - svgBox.x;\n const pathY = pathBox.y - svgBox.y;\n\n const viewBox = `${pathX - diameter / 2} ${\n pathY - diameter / 2\n } ${diameter} ${diameter}`;\n\n svgElement.setAttribute('viewBox', viewBox);\n\n svgElement.style.visibility = 'visible';\n },\n [diameter],\n );\n\n const lastCurrentValue = useRef(0);\n useEffect(() => {\n const difference = currentValue - lastCurrentValue.current;\n return animate(\n 500,\n (progress) => {\n const step = addBoundary(\n difference * progress + lastCurrentValue.current,\n domainMin,\n domainMax,\n );\n setValue(Math.round(step));\n },\n () => {\n lastCurrentValue.current = currentValue;\n },\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentValue]);\n return (\n <Box>\n <svg\n {...gauge.getSVGProps()}\n style={{ visibility: 'hidden' }}\n height={Math.max(width, height)}\n width={Math.max(width, height)}\n id=\"TLight_svg\"\n ref={onRenderSvg}\n viewBox={`-${diameter / 2} -${diameter / 2} ${diameter} ${diameter}`}\n >\n <g id=\"TLight_arcs\">\n <path\n {...gauge.getArcProps({\n startAngle: START_ANGLE,\n endAngle: END_ANGLE,\n })}\n fill={getColor(value)}\n id=\"TLight_path\"\n style={{ transition: 'fill 0.3s' }}\n />\n {addBorder && (\n <path\n {...gauge.getArcProps({\n offset: -2.5,\n startAngle: START_ANGLE,\n endAngle: END_ANGLE,\n })}\n stroke={'black'}\n fill={'transparent'}\n strokeLinecap=\"round\"\n strokeWidth={5}\n id=\"TLight_path\"\n />\n )}\n </g>\n <g>\n <text\n textAnchor=\"middle\"\n style={{ fontSize: `${currentValueFontSize ?? 100}pt` }}\n alignmentBaseline=\"central\"\n fill={currentValueColor}\n >\n {value}\n </text>\n </g>\n </svg>\n </Box>\n );\n};\n"],"names":["value"],"mappings":"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"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { jsxs, jsx } from '@apia/theme/jsx-runtime';
|
|
2
|
+
import { Box } from '@apia/theme';
|
|
3
|
+
import { valueToTickPercent, colorGetter, getInnerColor, getColor } from './util.js';
|
|
4
|
+
import { noNaN } from '@apia/util';
|
|
5
|
+
import { useCustomWidget } from '../custom/useCustomWidget.js';
|
|
6
|
+
|
|
7
|
+
const Thermometer = ({
|
|
8
|
+
colorRanges,
|
|
9
|
+
maxValue,
|
|
10
|
+
minValue,
|
|
11
|
+
currentValue,
|
|
12
|
+
height,
|
|
13
|
+
valueRanges,
|
|
14
|
+
width,
|
|
15
|
+
panelId,
|
|
16
|
+
currentValueFontSize
|
|
17
|
+
}) => {
|
|
18
|
+
const value = currentValue;
|
|
19
|
+
const baseValue = noNaN(minValue) ?? valueRanges[0];
|
|
20
|
+
const domainMax = noNaN(maxValue) ?? valueRanges[valueRanges.length - 1];
|
|
21
|
+
const pathDValue = `m 179.6875,717.73633 c -0.45013,0 -0.8125,0.36237 -0.8125,0.8125 l 0,8.46289 a 2.3125,2.3125 0 0 0 -1.5,2.16211 2.3125,2.3125 0 0 0 2.3125,2.3125 2.3125,2.3125 0 0 0 2.3125,-2.3125 2.3125,2.3125 0 0 0 -1.5,-2.16211 l 0,-8.46289 c 0,-0.45013 -0.36237,-0.8125 -0.8125,-0.8125 z`;
|
|
22
|
+
const { rectProps, rectRef, svgViewBox, pathX, pathY } = useCustomWidget({
|
|
23
|
+
currentValue: value,
|
|
24
|
+
maxValue: domainMax,
|
|
25
|
+
minValue: baseValue,
|
|
26
|
+
panelId
|
|
27
|
+
});
|
|
28
|
+
const boxValues = {
|
|
29
|
+
height: noNaN(Math.max(width, height) - Math.max(width, height) * 0.31),
|
|
30
|
+
width: noNaN(Math.max(width, height)),
|
|
31
|
+
x: pathX,
|
|
32
|
+
y: pathY
|
|
33
|
+
};
|
|
34
|
+
const tickArray = valueRanges.map((val, i) => {
|
|
35
|
+
return {
|
|
36
|
+
height: boxValues.height * (valueToTickPercent(domainMax, baseValue, val) / 100),
|
|
37
|
+
color: !valueRanges[i + 1] ? "black" : colorGetter(valueRanges, colorRanges, val),
|
|
38
|
+
value: val
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
return /* @__PURE__ */ jsxs(Box, { sx: { position: "relative" }, children: [
|
|
42
|
+
/* @__PURE__ */ jsxs(
|
|
43
|
+
"svg",
|
|
44
|
+
{
|
|
45
|
+
height: Math.max(width, height),
|
|
46
|
+
width: Math.max(width, height),
|
|
47
|
+
id: `svg_${panelId}`,
|
|
48
|
+
viewBox: svgViewBox,
|
|
49
|
+
style: { position: "relative", top: "10px" },
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ jsx("clipPath", { id: "clipPath", children: /* @__PURE__ */ jsx("path", { d: pathDValue }) }),
|
|
52
|
+
/* @__PURE__ */ jsx("mask", { id: "myMask", children: /* @__PURE__ */ jsx("path", { d: pathDValue, id: "maskPath", fill: "white" }) }),
|
|
53
|
+
/* @__PURE__ */ jsx("path", { d: pathDValue, id: `path_${panelId}`, fill: "white" }),
|
|
54
|
+
/* @__PURE__ */ jsx(
|
|
55
|
+
"rect",
|
|
56
|
+
{
|
|
57
|
+
fill: getInnerColor(valueRanges, colorRanges, value),
|
|
58
|
+
id: `rect_${panelId}`,
|
|
59
|
+
mask: "url(#myMask)",
|
|
60
|
+
ref: rectRef,
|
|
61
|
+
...rectProps
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
"path",
|
|
66
|
+
{
|
|
67
|
+
d: pathDValue,
|
|
68
|
+
id: "path",
|
|
69
|
+
fill: "none",
|
|
70
|
+
stroke: "white",
|
|
71
|
+
strokeWidth: 10,
|
|
72
|
+
clipPath: "url(#clipPath)",
|
|
73
|
+
vectorEffect: "non-scaling-stroke"
|
|
74
|
+
}
|
|
75
|
+
),
|
|
76
|
+
/* @__PURE__ */ jsx(
|
|
77
|
+
"path",
|
|
78
|
+
{
|
|
79
|
+
clipPath: "url(#clipPath)",
|
|
80
|
+
d: pathDValue,
|
|
81
|
+
id: "path",
|
|
82
|
+
fill: "none",
|
|
83
|
+
stroke: "black",
|
|
84
|
+
strokeWidth: 5,
|
|
85
|
+
vectorEffect: "non-scaling-stroke"
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
/* @__PURE__ */ jsxs(
|
|
92
|
+
"svg",
|
|
93
|
+
{
|
|
94
|
+
height: Math.max(width, height) + 10,
|
|
95
|
+
width: Math.max(width, height),
|
|
96
|
+
style: { position: "absolute", left: 0, top: 0 },
|
|
97
|
+
children: [
|
|
98
|
+
boxValues.x && /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsx(
|
|
99
|
+
"text",
|
|
100
|
+
{
|
|
101
|
+
x: Math.max(width, height) / 2,
|
|
102
|
+
y: Math.max(width, height) - Math.max(width, height) / 6 + 10,
|
|
103
|
+
style: {
|
|
104
|
+
fontSize: `${noNaN(currentValueFontSize) ?? 50}px`
|
|
105
|
+
},
|
|
106
|
+
textAnchor: "middle",
|
|
107
|
+
alignmentBaseline: "central",
|
|
108
|
+
vectorEffect: "non-scaling-stroke",
|
|
109
|
+
children: value
|
|
110
|
+
}
|
|
111
|
+
) }),
|
|
112
|
+
tickArray.map((tick, i) => {
|
|
113
|
+
return /* @__PURE__ */ jsxs("g", { children: [
|
|
114
|
+
/* @__PURE__ */ jsx(
|
|
115
|
+
"rect",
|
|
116
|
+
{
|
|
117
|
+
x: i === 0 ? Math.max(width, height) / 2 + 30 : Math.max(width, height) / 2 + 20,
|
|
118
|
+
y: tick.height + 10,
|
|
119
|
+
width: "15px",
|
|
120
|
+
height: "3px",
|
|
121
|
+
vectorEffect: "non-scaling-stroke",
|
|
122
|
+
fill: getColor(valueRanges, colorRanges, tick.value)
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
/* @__PURE__ */ jsx(
|
|
126
|
+
"text",
|
|
127
|
+
{
|
|
128
|
+
x: i === 0 ? Math.max(width, height) - Math.max(width, height) / 3 + 10 : Math.max(width, height) - Math.max(width, height) / 3,
|
|
129
|
+
y: tickArray[i + 1] ? tick.height + 16 : tick.height + 1.5,
|
|
130
|
+
textAnchor: "middle",
|
|
131
|
+
alignmentBaseline: tickArray[i + 1] ? "auto" : "text-before-edge",
|
|
132
|
+
children: tick.value
|
|
133
|
+
}
|
|
134
|
+
)
|
|
135
|
+
] }, i);
|
|
136
|
+
})
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
)
|
|
140
|
+
] });
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
export { Thermometer };
|
|
144
|
+
//# sourceMappingURL=Thermometer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Thermometer.js","sources":["../../../src/widgets/thermometer/Thermometer.tsx"],"sourcesContent":["import { Box } from '@apia/theme';\nimport { TApiaWidgetProps } from '../types';\nimport {\n valueToTickPercent,\n colorGetter,\n getInnerColor,\n getColor,\n} from './util';\nimport { noNaN } from '@apia/util';\nimport { useCustomWidget } from '../custom/useCustomWidget';\n// Usar un segundo svg para los textos\nexport const Thermometer = ({\n colorRanges,\n maxValue,\n minValue,\n currentValue,\n height,\n valueRanges,\n width,\n panelId,\n currentValueFontSize,\n}: TApiaWidgetProps) => {\n const value = currentValue;\n const baseValue = noNaN(minValue) ?? valueRanges[0];\n const domainMax = noNaN(maxValue) ?? valueRanges[valueRanges.length - 1];\n const pathDValue = `m 179.6875,717.73633 c -0.45013,0 -0.8125,0.36237 -0.8125,0.8125 l 0,8.46289 a 2.3125,2.3125 0 0 0 -1.5,2.16211 2.3125,2.3125 0 0 0 2.3125,2.3125 2.3125,2.3125 0 0 0 2.3125,-2.3125 2.3125,2.3125 0 0 0 -1.5,-2.16211 l 0,-8.46289 c 0,-0.45013 -0.36237,-0.8125 -0.8125,-0.8125 z`;\n\n const { rectProps, rectRef, svgViewBox, pathX, pathY } = useCustomWidget({\n currentValue: value,\n maxValue: domainMax,\n minValue: baseValue,\n panelId,\n });\n\n const boxValues = {\n height: noNaN(Math.max(width, height) - Math.max(width, height) * 0.31),\n width: noNaN(Math.max(width, height)),\n x: pathX,\n y: pathY,\n };\n\n const tickArray = valueRanges.map((val, i) => {\n return {\n height:\n boxValues.height *\n (valueToTickPercent(domainMax, baseValue, val) / 100),\n color: !valueRanges[i + 1]\n ? 'black'\n : colorGetter(valueRanges, colorRanges, val),\n value: val,\n };\n });\n\n return (\n <Box sx={{ position: 'relative' }}>\n <svg\n height={Math.max(width, height)}\n width={Math.max(width, height)}\n id={`svg_${panelId}`}\n viewBox={svgViewBox}\n style={{ position: 'relative', top: '10px' }}\n >\n <clipPath id=\"clipPath\">\n <path d={pathDValue} />\n </clipPath>\n <mask id=\"myMask\">\n <path d={pathDValue} id=\"maskPath\" fill=\"white\" />\n </mask>\n\n <path d={pathDValue} id={`path_${panelId}`} fill=\"white\" />\n\n <rect\n fill={getInnerColor(valueRanges, colorRanges, value)}\n id={`rect_${panelId}`}\n mask=\"url(#myMask)\"\n ref={rectRef}\n {...rectProps}\n />\n\n <path\n d={pathDValue}\n id=\"path\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth={10}\n clipPath=\"url(#clipPath)\"\n vectorEffect={'non-scaling-stroke'}\n />\n <path\n clipPath=\"url(#clipPath)\"\n d={pathDValue}\n id=\"path\"\n fill=\"none\"\n stroke=\"black\"\n strokeWidth={5}\n vectorEffect={'non-scaling-stroke'}\n />\n </svg>\n <svg\n height={Math.max(width, height) + 10}\n width={Math.max(width, height)}\n style={{ position: 'absolute', left: 0, top: 0 }}\n >\n {boxValues.x && (\n <g>\n <text\n x={Math.max(width, height) / 2}\n y={Math.max(width, height) - Math.max(width, height) / 6 + 10}\n style={{\n fontSize: `${noNaN(currentValueFontSize) ?? 50}px`,\n }}\n textAnchor=\"middle\"\n alignmentBaseline={'central'}\n vectorEffect={'non-scaling-stroke'}\n >\n {value}\n </text>\n </g>\n )}\n {tickArray.map((tick, i) => {\n return (\n <g key={i}>\n <rect\n x={\n i === 0\n ? Math.max(width, height) / 2 + 30\n : Math.max(width, height) / 2 + 20\n }\n y={tick.height + 10}\n width={'15px'}\n height={'3px'}\n vectorEffect={'non-scaling-stroke'}\n fill={getColor(valueRanges, colorRanges, tick.value)}\n />\n <text\n x={\n i === 0\n ? Math.max(width, height) - Math.max(width, height) / 3 + 10\n : Math.max(width, height) - Math.max(width, height) / 3\n }\n y={tickArray[i + 1] ? tick.height + 16 : tick.height + 1.5}\n textAnchor=\"middle\"\n alignmentBaseline={\n tickArray[i + 1] ? 'auto' : 'text-before-edge'\n }\n >\n {tick.value}\n </text>\n </g>\n );\n })}\n </svg>\n </Box>\n );\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const colorGetter = (valueRanges, colorRanges, innerValue) => {
|
|
2
|
+
let color = "";
|
|
3
|
+
valueRanges.forEach((value, index) => {
|
|
4
|
+
if (value >= innerValue && valueRanges[index - 1] <= innerValue) {
|
|
5
|
+
color = colorRanges[index - 1];
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
return color;
|
|
9
|
+
};
|
|
10
|
+
function getColor(valueRanges, colorRanges, value) {
|
|
11
|
+
const index = valueRanges.findIndex((range) => value <= range);
|
|
12
|
+
if (index === -1) {
|
|
13
|
+
return colorRanges[0];
|
|
14
|
+
}
|
|
15
|
+
return colorRanges[index];
|
|
16
|
+
}
|
|
17
|
+
function getInnerColor(valueRanges, colorRanges, value) {
|
|
18
|
+
const index = valueRanges.findIndex((range) => value < range);
|
|
19
|
+
if (index === -1) {
|
|
20
|
+
return colorRanges[0];
|
|
21
|
+
}
|
|
22
|
+
return colorRanges[index - 1] ?? colorRanges[index];
|
|
23
|
+
}
|
|
24
|
+
const valueToTickPercent = (domainMax, baseValue, value) => {
|
|
25
|
+
const range = domainMax - (baseValue ?? 0);
|
|
26
|
+
const percentage = 100 - (value - (baseValue ?? 0)) / range * 100;
|
|
27
|
+
return Math.round(percentage);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { colorGetter, getColor, getInnerColor, valueToTickPercent };
|
|
31
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../src/widgets/thermometer/util.ts"],"sourcesContent":["const colorGetter = (\n valueRanges: number[],\n colorRanges: string[],\n innerValue: number,\n) => {\n let color = '';\n valueRanges.forEach((value, index) => {\n if (value >= innerValue && valueRanges[index - 1] <= innerValue) {\n color = colorRanges[index - 1];\n }\n });\n return color;\n};\n\nfunction getColor(valueRanges: number[], colorRanges: string[], value: number) {\n const index = valueRanges.findIndex((range) => value <= range);\n\n if (index === -1) {\n return colorRanges[0];\n }\n\n return colorRanges[index];\n}\n\nfunction getInnerColor(\n valueRanges: number[],\n colorRanges: string[],\n value: number,\n) {\n const index = valueRanges.findIndex((range) => value < range);\n\n if (index === -1) {\n return colorRanges[0];\n }\n\n return colorRanges[index - 1] ?? colorRanges[index];\n}\n\nconst valueToTickPercent = (\n domainMax: number,\n baseValue: number,\n value: number,\n) => {\n const range = domainMax - (baseValue ?? 0);\n const percentage = 100 - ((value - (baseValue ?? 0)) / range) * 100;\n\n return Math.round(percentage);\n};\n\nconst valueToPercent = (\n domainMax: number,\n baseValue: number,\n value: number,\n) => {\n const range = domainMax - (baseValue ?? 0);\n const percentage = 100 - ((value - (baseValue ?? 0)) / range) * 100;\n const test = (percentage * 69) / 100;\n\n return Math.round(test);\n};\n\nexport {\n colorGetter,\n getColor,\n getInnerColor,\n valueToPercent,\n valueToTickPercent,\n};\n"],"names":[],"mappings":"AAAA,MAAM,WAAc,GAAA,CAClB,WACA,EAAA,WAAA,EACA,UACG,KAAA;AACH,EAAA,IAAI,KAAQ,GAAA,EAAA,CAAA;AACZ,EAAY,WAAA,CAAA,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAU,KAAA;AACpC,IAAA,IAAI,SAAS,UAAc,IAAA,WAAA,CAAY,KAAQ,GAAA,CAAC,KAAK,UAAY,EAAA;AAC/D,MAAQ,KAAA,GAAA,WAAA,CAAY,QAAQ,CAAC,CAAA,CAAA;AAAA,KAC/B;AAAA,GACD,CAAA,CAAA;AACD,EAAO,OAAA,KAAA,CAAA;AACT,EAAA;AAEA,SAAS,QAAA,CAAS,WAAuB,EAAA,WAAA,EAAuB,KAAe,EAAA;AAC7E,EAAA,MAAM,QAAQ,WAAY,CAAA,SAAA,CAAU,CAAC,KAAA,KAAU,SAAS,KAAK,CAAA,CAAA;AAE7D,EAAA,IAAI,UAAU,CAAI,CAAA,EAAA;AAChB,IAAA,OAAO,YAAY,CAAC,CAAA,CAAA;AAAA,GACtB;AAEA,EAAA,OAAO,YAAY,KAAK,CAAA,CAAA;AAC1B,CAAA;AAEA,SAAS,aAAA,CACP,WACA,EAAA,WAAA,EACA,KACA,EAAA;AACA,EAAA,MAAM,QAAQ,WAAY,CAAA,SAAA,CAAU,CAAC,KAAA,KAAU,QAAQ,KAAK,CAAA,CAAA;AAE5D,EAAA,IAAI,UAAU,CAAI,CAAA,EAAA;AAChB,IAAA,OAAO,YAAY,CAAC,CAAA,CAAA;AAAA,GACtB;AAEA,EAAA,OAAO,WAAY,CAAA,KAAA,GAAQ,CAAC,CAAA,IAAK,YAAY,KAAK,CAAA,CAAA;AACpD,CAAA;AAEA,MAAM,kBAAqB,GAAA,CACzB,SACA,EAAA,SAAA,EACA,KACG,KAAA;AACH,EAAM,MAAA,KAAA,GAAQ,aAAa,SAAa,IAAA,CAAA,CAAA,CAAA;AACxC,EAAA,MAAM,UAAa,GAAA,GAAA,GAAA,CAAQ,KAAS,IAAA,SAAA,IAAa,MAAM,KAAS,GAAA,GAAA,CAAA;AAEhE,EAAO,OAAA,IAAA,CAAK,MAAM,UAAU,CAAA,CAAA;AAC9B;;;;"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
type TWidgetZone = {
|
|
2
|
+
minimum: number;
|
|
3
|
+
maximum: number;
|
|
4
|
+
transparency: number;
|
|
5
|
+
color: string;
|
|
6
|
+
};
|
|
7
|
+
type TWidgetData = {
|
|
8
|
+
border: boolean;
|
|
9
|
+
backgroundColor: string;
|
|
10
|
+
currentValue: number;
|
|
11
|
+
forceProp?: Record<string, unknown>;
|
|
12
|
+
height: number;
|
|
13
|
+
maxValue: number;
|
|
14
|
+
minValue: number;
|
|
15
|
+
noValueColor: string;
|
|
16
|
+
pointerColor: string;
|
|
17
|
+
ringAnchor: number;
|
|
18
|
+
scaleFontSize: string | number;
|
|
19
|
+
valueColor: string;
|
|
20
|
+
valueDecimals: number;
|
|
21
|
+
valueFontSize: string | number;
|
|
22
|
+
valueType: string | number;
|
|
23
|
+
viewBtnDshAssociated: boolean;
|
|
24
|
+
viewBtnHistory: boolean;
|
|
25
|
+
viewBtnInfo: boolean;
|
|
26
|
+
viewBtnComments: boolean;
|
|
27
|
+
viewBtnUpdate: boolean;
|
|
28
|
+
viewBtnOpenCbe: boolean;
|
|
29
|
+
viewBtnOpenQry: boolean;
|
|
30
|
+
viewBtnOpenOtherQry: boolean;
|
|
31
|
+
viewBtnOpenOtherQbe: boolean;
|
|
32
|
+
viewWidName: boolean;
|
|
33
|
+
widKpiType: string | number;
|
|
34
|
+
width: number;
|
|
35
|
+
zones: {
|
|
36
|
+
Zone: TWidgetZone | TWidgetZone[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export type { TWidgetData, TWidgetZone };
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,51 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"author": "felipearzuaga <felipearax.2012@gmail.com>",
|
|
3
|
-
"homepage": "",
|
|
4
|
-
"license": "MIT",
|
|
5
2
|
"name": "@apia/charts",
|
|
3
|
+
"version": "2.0.0",
|
|
6
4
|
"sideEffects": false,
|
|
7
|
-
"
|
|
8
|
-
"
|
|
9
|
-
"
|
|
5
|
+
"author": "Felipe Arzuaga <felipearax.2012@gmail.com>",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"typings": "dist/index.d.ts",
|
|
10
10
|
"scripts": {
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
},
|
|
15
|
-
"devDependencies": {
|
|
16
|
-
"@rollup/plugin-commonjs": "^24.0.1",
|
|
17
|
-
"@rollup/plugin-json": "^6.0.0",
|
|
18
|
-
"@rollup/plugin-node-resolve": "^15.0.1",
|
|
19
|
-
"@rollup/plugin-terser": "^0.4.0",
|
|
20
|
-
"@rollup/plugin-typescript": "^11.0.0",
|
|
21
|
-
"esbuild": "^0.17.14",
|
|
22
|
-
"rollup": "^3.20.2",
|
|
23
|
-
"rollup-plugin-bundle-analyzer": "^1.6.6",
|
|
24
|
-
"rollup-plugin-dts": "^5.3.0",
|
|
25
|
-
"rollup-plugin-esbuild": "^5.0.0",
|
|
26
|
-
"typescript": "^4.9.5"
|
|
27
|
-
},
|
|
28
|
-
"peerDependencies": {
|
|
29
|
-
"@emotion/react": "^11.10.6",
|
|
30
|
-
"react": "^18.2.0",
|
|
31
|
-
"react-dom": "^18.2.0"
|
|
32
|
-
},
|
|
33
|
-
"publishConfig": {
|
|
34
|
-
"access": "public",
|
|
35
|
-
"registry": "https://registry.npmjs.org/"
|
|
36
|
-
},
|
|
37
|
-
"repository": {
|
|
38
|
-
"type": "git",
|
|
39
|
-
"url": "http://corp-gitlab-01.domst.st.net/products/apia/ApiaNPMPackages.git",
|
|
40
|
-
"directory": "packages/charts"
|
|
11
|
+
"libDev": "rollup --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts",
|
|
12
|
+
"libBuild": "rollup --config ../../config/rollup.common.mjs --environment MODE:production,ENTRY:index.ts",
|
|
13
|
+
"libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true"
|
|
41
14
|
},
|
|
42
15
|
"dependencies": {
|
|
43
|
-
"@apia/components": "^
|
|
44
|
-
"@apia/icons": "^
|
|
45
|
-
"@apia/theme": "^
|
|
46
|
-
"@apia/util": "^
|
|
16
|
+
"@apia/components": "^2.0.0",
|
|
17
|
+
"@apia/icons": "^2.0.0",
|
|
18
|
+
"@apia/theme": "^2.0.0",
|
|
19
|
+
"@apia/util": "^2.0.0",
|
|
47
20
|
"@types/d3-array": "^3.0.5",
|
|
48
|
-
"@types/lodash": "^4.14.194",
|
|
49
21
|
"@visx/axis": "^3.1.0",
|
|
50
22
|
"@visx/curve": "^3.0.0",
|
|
51
23
|
"@visx/event": "^3.0.1",
|
|
@@ -58,10 +30,25 @@
|
|
|
58
30
|
"@visx/tooltip": "^3.1.2",
|
|
59
31
|
"@visx/visx": "^3.1.2",
|
|
60
32
|
"d3-array": "^3.2.4",
|
|
61
|
-
"lodash": "^4.17.21",
|
|
62
33
|
"react-spring": "^9.7.1",
|
|
63
34
|
"tinycolor2": "^1.6.0",
|
|
64
35
|
"use-gauge": "^0.6.0"
|
|
65
36
|
},
|
|
66
|
-
"
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/react": "^18.2.43",
|
|
39
|
+
"@types/react-dom": "^18.2.17",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
41
|
+
"axios": "^1.3.5",
|
|
42
|
+
"typescript": "5.4.2"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"lodash-es": "^4.17.21",
|
|
46
|
+
"react": "^18.2.0",
|
|
47
|
+
"react-dom": "^18.2.0"
|
|
48
|
+
},
|
|
49
|
+
"publishConfig": {
|
|
50
|
+
"access": "public",
|
|
51
|
+
"registry": "https://registry.npmjs.org/"
|
|
52
|
+
},
|
|
53
|
+
"gitHead": "755c990cc9875e99922cc0f7194d9f0a479bdc71"
|
|
67
54
|
}
|
package/LICENSE.md
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) [year] [fullname]
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/README.md
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Charts
|
package/cleanDist.json
DELETED