@erpsquad/common 1.8.23 → 1.8.24
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/_virtual/ArrowBack/index.esm.js +5 -0
- package/dist/_virtual/ArrowBack/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowBack/index.js +2 -0
- package/dist/_virtual/ArrowBack/index.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.esm.js +5 -0
- package/dist/_virtual/ArrowForward/index.esm.js.map +1 -0
- package/dist/_virtual/ArrowForward/index.js +2 -0
- package/dist/_virtual/ArrowForward/index.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js +5 -0
- package/dist/_virtual/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js +2 -0
- package/dist/_virtual/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/_virtual/NorthEast/index.esm.js +5 -0
- package/dist/_virtual/NorthEast/index.esm.js.map +1 -0
- package/dist/_virtual/NorthEast/index.js +2 -0
- package/dist/_virtual/NorthEast/index.js.map +1 -0
- package/dist/_virtual/Visibility/index.esm.js +5 -0
- package/dist/_virtual/Visibility/index.esm.js.map +1 -0
- package/dist/_virtual/Visibility/index.js +2 -0
- package/dist/_virtual/Visibility/index.js.map +1 -0
- package/dist/_virtual/index/index.esm2.js +2 -4
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +4 -2
- package/dist/_virtual/index/index.esm3.js.map +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js +40 -0
- package/dist/components/charts/line-chart/area-line-chart/index.esm.js.map +1 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js +2 -0
- package/dist/components/charts/line-chart/area-line-chart/index.js.map +1 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js +10 -0
- package/dist/components/material-table/aggregation-fns/index/index.esm.js.map +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js +1 -1
- package/dist/components/material-table/aggregation-fns/index/index.js.map +1 -1
- package/dist/components/material-table/components/number-aggregation/index.esm.js +133 -0
- package/dist/components/material-table/components/number-aggregation/index.esm.js.map +1 -0
- package/dist/components/material-table/components/number-aggregation/index.js +5 -0
- package/dist/components/material-table/components/number-aggregation/index.js.map +1 -0
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js +32 -0
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.esm.js.map +1 -1
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js +36 -36
- package/dist/node_modules/@glideapps/glide-data-grid/dist/js/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowBack/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/ArrowForward/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/IndeterminateCheckBox/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/NorthEast/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js +18 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.esm.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js +2 -0
- package/dist/node_modules/@mui/icons-material/Visibility/index.js.map +1 -0
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/style.css +3 -3
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js +48 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js +2 -0
- package/dist/views/beforeAuth/components/activity-tag-data/activity-tag-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js +50 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js +2 -0
- package/dist/views/beforeAuth/components/calendar-data/calendar-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js +57 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js +2 -0
- package/dist/views/beforeAuth/components/gantt-data/gantt-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js +41 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js +2 -0
- package/dist/views/beforeAuth/components/grid-data/grid-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.esm.js +1144 -0
- package/dist/views/beforeAuth/components/index/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/index/index.js +206 -0
- package/dist/views/beforeAuth/components/index/index.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js +72 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/kanbann-content/kanbann-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js +54 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/column-raw/index.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js +61 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js +2 -0
- package/dist/views/beforeAuth/components/list-content/list-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js +2 -0
- package/dist/views/beforeAuth/components/multiline-data/multiline-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js +21 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js +2 -0
- package/dist/views/beforeAuth/components/tabs-data/tabs-data/index.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js +306 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.esm.js.map +1 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js +2 -0
- package/dist/views/beforeAuth/components/user-dropdown-data/user-dropdown-data/index.js.map +1 -0
- package/dist/views/index.esm.js +2 -0
- package/dist/views/index.esm.js.map +1 -1
- package/dist/views/index.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import * as index from "../../node_modules/@mui/material/utils/index/index.esm.js";
|
|
3
|
-
var require$$0 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
1
|
+
var dist = { exports: {} };
|
|
4
2
|
export {
|
|
5
|
-
|
|
3
|
+
dist as __module
|
|
6
4
|
};
|
|
7
5
|
//# sourceMappingURL=index.esm2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
import { getAugmentedNamespace } from "../_commonjsHelpers/index.esm.js";
|
|
2
|
+
import * as index from "../../node_modules/@mui/material/utils/index/index.esm.js";
|
|
3
|
+
var require$$0 = /* @__PURE__ */ getAugmentedNamespace(index);
|
|
2
4
|
export {
|
|
3
|
-
|
|
5
|
+
require$$0 as default
|
|
4
6
|
};
|
|
5
7
|
//# sourceMappingURL=index.esm3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm3.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0})
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.__module={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index2.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../_commonjsHelpers/index.js"),r=require("../../node_modules/@mui/material/utils/index/index.js"),s=/* @__PURE__ */e.getAugmentedNamespace(r);exports.default=s;
|
|
2
2
|
//# sourceMappingURL=index3.js.map
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useEffect } from "react";
|
|
3
|
+
import linear from "../../../../node_modules/d3-scale/src/linear/index.esm.js";
|
|
4
|
+
import max from "../../../../node_modules/d3-array/src/max/index.esm.js";
|
|
5
|
+
import select from "../../../../node_modules/d3-selection/src/select/index.esm.js";
|
|
6
|
+
import line from "../../../../node_modules/d3-shape/src/line/index.esm.js";
|
|
7
|
+
import area from "../../../../node_modules/d3-shape/src/area/index.esm.js";
|
|
8
|
+
const AreaLineChart = ({
|
|
9
|
+
data,
|
|
10
|
+
width = "auto",
|
|
11
|
+
// Set default width to "100%"
|
|
12
|
+
height = "auto",
|
|
13
|
+
lineColor = "#ADE7CB",
|
|
14
|
+
lineFillColor = "#EBF9F2",
|
|
15
|
+
...rest
|
|
16
|
+
}) => {
|
|
17
|
+
const svgRef = useRef(null);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
const svg = select(svgRef.current);
|
|
21
|
+
svg.selectAll("*").remove();
|
|
22
|
+
const margin = { top: 5, left: 0 };
|
|
23
|
+
const chartWidth = typeof width === "number" ? width : ((_b = (_a = svgRef.current) == null ? void 0 : _a.parentElement) == null ? void 0 : _b.clientWidth) || 360;
|
|
24
|
+
const chartHeight = height;
|
|
25
|
+
const x = linear().domain([0, data.length - 1]).range([0, chartWidth]);
|
|
26
|
+
const y = linear().domain([0, max(data, (d) => d.value)]).range([chartHeight, 0]);
|
|
27
|
+
const line$1 = line().x((_, i) => x(i)).y((d) => y(d.value));
|
|
28
|
+
const area$1 = area().x((_, i) => x(i)).y0(chartHeight).y1((d) => y(d.value));
|
|
29
|
+
const chart = svg.append("g").attr("transform", `translate(${margin.left},${margin.top})`);
|
|
30
|
+
chart.append("path").datum(data).attr("class", "line").attr("d", line$1).style("fill", "none").style("stroke", lineColor).style("stroke-width", 5);
|
|
31
|
+
chart.append("path").datum(data).attr("class", "area").attr("d", area$1).style("fill", lineFillColor);
|
|
32
|
+
chart.selectAll(".domain").remove();
|
|
33
|
+
chart.selectAll(".tick line").remove();
|
|
34
|
+
}, [data, height, lineColor, lineFillColor, width]);
|
|
35
|
+
return /* @__PURE__ */ jsx("svg", { ref: svgRef, width, height, ...rest });
|
|
36
|
+
};
|
|
37
|
+
export {
|
|
38
|
+
AreaLineChart as default
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/charts/line-chart/area-line-chart.tsx"],"sourcesContent":["// import React, { useRef, useEffect } from \"react\";\n// import * as d3 from \"d3\";\n\n// interface DataPoint {\n// label: string;\n// value: number;\n// }\n\n// interface LineChartProps {\n// data: DataPoint[];\n// width?: number;\n// height?: number;\n// lineColor?: string;\n// lineFillColor?: string;\n// }\n\n// const AreaLineChart: React.FC<LineChartProps> = ({\n// data,\n// width = 360,\n// height = 100,\n// lineColor = \"#ADE7CB\",\n// lineFillColor = \"#EBF9F2\",\n// ...rest\n// }) => {\n// const svgRef = useRef<SVGSVGElement>(null);\n\n// useEffect(() => {\n// const svg = d3.select(svgRef.current);\n\n// svg.selectAll(\"*\").remove();\n\n// const margin = { top: 5, left: 0 };\n// const chartWidth = width;\n// const chartHeight = height;\n\n// const x = d3\n// .scaleLinear()\n// .domain([0, data.length - 1])\n// .range([0, chartWidth]);\n\n// const y = d3\n// .scaleLinear()\n// //@ts-expect-error not applicable\n// .domain([0, d3.max(data, (d: DataPoint) => d.value)])\n// .range([chartHeight, 0]);\n\n// const line = d3\n// .line<DataPoint>()\n// .x((_: DataPoint, i: number) => x(i))\n// .y((d: DataPoint) => y(d.value));\n\n// const area = d3\n// .area<DataPoint>()\n// .x((_: DataPoint, i: number) => x(i))\n// .y0(chartHeight)\n// .y1((d: DataPoint) => y(d.value));\n\n// const chart = svg\n// .append(\"g\")\n// .attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n// chart\n// .append(\"path\")\n// .datum(data)\n// .attr(\"class\", \"line\")\n// .attr(\"d\", line)\n// .style(\"fill\", \"none\")\n// .style(\"stroke\", lineColor)\n// .style(\"stroke-width\", 5);\n\n// chart\n// .append(\"path\")\n// .datum(data)\n// .attr(\"class\", \"area\")\n// .attr(\"d\", area)\n// .style(\"fill\", lineFillColor);\n\n// chart.selectAll(\".domain\").remove();\n// chart.selectAll(\".tick line\").remove();\n// }, [data, height, lineColor, lineFillColor, width]);\n\n// return <svg ref={svgRef} width={width} height={height} {...rest}></svg>;\n// };\n\n// export default AreaLineChart;\n\n\nimport React, { useRef, useEffect } from \"react\";\nimport * as d3 from \"d3\";\n\ninterface DataPoint {\n label: string;\n value: number;\n}\n\ninterface LineChartProps {\n data: DataPoint[];\n width?: number | string; // Adjusted to accept string for percentage width\n height?: number | string;\n lineColor?: string;\n lineFillColor?: string;\n}\n\nconst AreaLineChart: React.FC<LineChartProps> = ({\n data,\n width = \"auto\", // Set default width to \"100%\"\n height = \"auto\",\n lineColor = \"#ADE7CB\",\n lineFillColor = \"#EBF9F2\",\n ...rest\n}) => {\n const svgRef = useRef<SVGSVGElement>(null);\n\n useEffect(() => {\n const svg = d3.select(svgRef.current);\n\n svg.selectAll(\"*\").remove();\n\n const margin = { top: 5, left: 0 };\n const chartWidth = typeof width === \"number\" ? width : svgRef.current?.parentElement?.clientWidth || 360; // Calculate width dynamically\n\n const chartHeight = height;\n\n const x = d3\n .scaleLinear()\n .domain([0, data.length - 1])\n .range([0, chartWidth]);\n\n const y = d3\n .scaleLinear()\n .domain([0, d3.max(data, (d: DataPoint) => d.value)])\n .range([chartHeight, 0]);\n\n const line = d3\n .line<DataPoint>()\n .x((_: DataPoint, i: number) => x(i))\n .y((d: DataPoint) => y(d.value));\n\n const area = d3\n .area<DataPoint>()\n .x((_: DataPoint, i: number) => x(i))\n .y0(chartHeight)\n .y1((d: DataPoint) => y(d.value));\n\n const chart = svg\n .append(\"g\")\n .attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n chart\n .append(\"path\")\n .datum(data)\n .attr(\"class\", \"line\")\n .attr(\"d\", line)\n .style(\"fill\", \"none\")\n .style(\"stroke\", lineColor)\n .style(\"stroke-width\", 5);\n\n chart\n .append(\"path\")\n .datum(data)\n .attr(\"class\", \"area\")\n .attr(\"d\", area)\n .style(\"fill\", lineFillColor);\n\n chart.selectAll(\".domain\").remove();\n chart.selectAll(\".tick line\").remove();\n }, [data, height, lineColor, lineFillColor, width]);\n\n return <svg ref={svgRef} width={width} height={height} {...rest}></svg>;\n};\n\nexport default AreaLineChart;\n"],"names":["d3.select","d3.scaleLinear","d3.max","line","d3.line","area","d3.area"],"mappings":";;;;;;;AAuGA,MAAM,gBAA0C,CAAC;AAAA,EAC/C;AAAA,EACA,QAAQ;AAAA;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,GAAG;AACL,MAAM;AACJ,QAAM,SAAS,OAAsB,IAAI;AAEzC,YAAU,MAAM;;AACd,UAAM,MAAMA,OAAU,OAAO,OAAO;AAEpC,QAAI,UAAU,GAAG,EAAE,OAAA;AAEnB,UAAM,SAAS,EAAE,KAAK,GAAG,MAAM,EAAA;AAC/B,UAAM,aAAa,OAAO,UAAU,WAAW,UAAQ,kBAAO,YAAP,mBAAgB,kBAAhB,mBAA+B,gBAAe;AAErG,UAAM,cAAc;AAEpB,UAAM,IAAIC,OACP,EACA,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAC3B,MAAM,CAAC,GAAG,UAAU,CAAC;AAExB,UAAM,IAAIA,SAEP,OAAO,CAAC,GAAGC,IAAO,MAAM,CAAC,MAAiB,EAAE,KAAK,CAAC,CAAC,EACnD,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,UAAMC,SAAOC,KACV,EACA,EAAE,CAAC,GAAc,MAAc,EAAE,CAAC,CAAC,EACnC,EAAE,CAAC,MAAiB,EAAE,EAAE,KAAK,CAAC;AAEjC,UAAMC,SAAOC,OAEV,EAAE,CAAC,GAAc,MAAc,EAAE,CAAC,CAAC,EACnC,GAAG,WAAW,EACd,GAAG,CAAC,MAAiB,EAAE,EAAE,KAAK,CAAC;AAElC,UAAM,QAAQ,IACX,OAAO,GAAG,EACV,KAAK,aAAa,aAAa,OAAO,IAAI,IAAI,OAAO,GAAG,GAAG;AAE9D,UACG,OAAO,MAAM,EACb,MAAM,IAAI,EACV,KAAK,SAAS,MAAM,EACpB,KAAK,KAAKH,MAAI,EACd,MAAM,QAAQ,MAAM,EACpB,MAAM,UAAU,SAAS,EACzB,MAAM,gBAAgB,CAAC;AAE1B,UACG,OAAO,MAAM,EACb,MAAM,IAAI,EACV,KAAK,SAAS,MAAM,EACpB,KAAK,KAAKE,MAAI,EACd,MAAM,QAAQ,aAAa;AAE9B,UAAM,UAAU,SAAS,EAAE,OAAA;AAC3B,UAAM,UAAU,YAAY,EAAE,OAAA;AAAA,EAChC,GAAG,CAAC,MAAM,QAAQ,WAAW,eAAe,KAAK,CAAC;AAElD,6BAAQ,OAAA,EAAI,KAAK,QAAQ,OAAc,QAAiB,GAAG,MAAM;AACnE;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),r=require("../../../../node_modules/d3-scale/src/linear/index.js"),l=require("../../../../node_modules/d3-array/src/max/index.js"),a=require("../../../../node_modules/d3-selection/src/select/index.js"),s=require("../../../../node_modules/d3-shape/src/line/index.js"),d=require("../../../../node_modules/d3-shape/src/area/index.js");exports.default=({data:n,width:u="auto",height:i="auto",lineColor:o="#ADE7CB",lineFillColor:c="#EBF9F2",...m})=>{const f=t.useRef(null);return t.useEffect(()=>{var e,t;const m=a.default(f.current);m.selectAll("*").remove();const p="number"==typeof u?u:(null==(t=null==(e=f.current)?void 0:e.parentElement)?void 0:t.clientWidth)||360,h=i,v=r.default().domain([0,n.length-1]).range([0,p]),x=r.default().domain([0,l.default(n,e=>e.value)]).range([h,0]),y=s.default().x((e,t)=>v(t)).y(e=>x(e.value)),j=d.default().x((e,t)=>v(t)).y0(h).y1(e=>x(e.value)),g=m.append("g").attr("transform","translate(0,5)");g.append("path").datum(n).attr("class","line").attr("d",y).style("fill","none").style("stroke",o).style("stroke-width",5),g.append("path").datum(n).attr("class","area").attr("d",j).style("fill",c),g.selectAll(".domain").remove(),g.selectAll(".tick line").remove()},[n,i,o,c,u]),/* @__PURE__ */e.jsx("svg",{ref:f,width:u,height:i,...m})};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/charts/line-chart/area-line-chart.tsx"],"sourcesContent":["// import React, { useRef, useEffect } from \"react\";\n// import * as d3 from \"d3\";\n\n// interface DataPoint {\n// label: string;\n// value: number;\n// }\n\n// interface LineChartProps {\n// data: DataPoint[];\n// width?: number;\n// height?: number;\n// lineColor?: string;\n// lineFillColor?: string;\n// }\n\n// const AreaLineChart: React.FC<LineChartProps> = ({\n// data,\n// width = 360,\n// height = 100,\n// lineColor = \"#ADE7CB\",\n// lineFillColor = \"#EBF9F2\",\n// ...rest\n// }) => {\n// const svgRef = useRef<SVGSVGElement>(null);\n\n// useEffect(() => {\n// const svg = d3.select(svgRef.current);\n\n// svg.selectAll(\"*\").remove();\n\n// const margin = { top: 5, left: 0 };\n// const chartWidth = width;\n// const chartHeight = height;\n\n// const x = d3\n// .scaleLinear()\n// .domain([0, data.length - 1])\n// .range([0, chartWidth]);\n\n// const y = d3\n// .scaleLinear()\n// //@ts-expect-error not applicable\n// .domain([0, d3.max(data, (d: DataPoint) => d.value)])\n// .range([chartHeight, 0]);\n\n// const line = d3\n// .line<DataPoint>()\n// .x((_: DataPoint, i: number) => x(i))\n// .y((d: DataPoint) => y(d.value));\n\n// const area = d3\n// .area<DataPoint>()\n// .x((_: DataPoint, i: number) => x(i))\n// .y0(chartHeight)\n// .y1((d: DataPoint) => y(d.value));\n\n// const chart = svg\n// .append(\"g\")\n// .attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n// chart\n// .append(\"path\")\n// .datum(data)\n// .attr(\"class\", \"line\")\n// .attr(\"d\", line)\n// .style(\"fill\", \"none\")\n// .style(\"stroke\", lineColor)\n// .style(\"stroke-width\", 5);\n\n// chart\n// .append(\"path\")\n// .datum(data)\n// .attr(\"class\", \"area\")\n// .attr(\"d\", area)\n// .style(\"fill\", lineFillColor);\n\n// chart.selectAll(\".domain\").remove();\n// chart.selectAll(\".tick line\").remove();\n// }, [data, height, lineColor, lineFillColor, width]);\n\n// return <svg ref={svgRef} width={width} height={height} {...rest}></svg>;\n// };\n\n// export default AreaLineChart;\n\n\nimport React, { useRef, useEffect } from \"react\";\nimport * as d3 from \"d3\";\n\ninterface DataPoint {\n label: string;\n value: number;\n}\n\ninterface LineChartProps {\n data: DataPoint[];\n width?: number | string; // Adjusted to accept string for percentage width\n height?: number | string;\n lineColor?: string;\n lineFillColor?: string;\n}\n\nconst AreaLineChart: React.FC<LineChartProps> = ({\n data,\n width = \"auto\", // Set default width to \"100%\"\n height = \"auto\",\n lineColor = \"#ADE7CB\",\n lineFillColor = \"#EBF9F2\",\n ...rest\n}) => {\n const svgRef = useRef<SVGSVGElement>(null);\n\n useEffect(() => {\n const svg = d3.select(svgRef.current);\n\n svg.selectAll(\"*\").remove();\n\n const margin = { top: 5, left: 0 };\n const chartWidth = typeof width === \"number\" ? width : svgRef.current?.parentElement?.clientWidth || 360; // Calculate width dynamically\n\n const chartHeight = height;\n\n const x = d3\n .scaleLinear()\n .domain([0, data.length - 1])\n .range([0, chartWidth]);\n\n const y = d3\n .scaleLinear()\n .domain([0, d3.max(data, (d: DataPoint) => d.value)])\n .range([chartHeight, 0]);\n\n const line = d3\n .line<DataPoint>()\n .x((_: DataPoint, i: number) => x(i))\n .y((d: DataPoint) => y(d.value));\n\n const area = d3\n .area<DataPoint>()\n .x((_: DataPoint, i: number) => x(i))\n .y0(chartHeight)\n .y1((d: DataPoint) => y(d.value));\n\n const chart = svg\n .append(\"g\")\n .attr(\"transform\", `translate(${margin.left},${margin.top})`);\n\n chart\n .append(\"path\")\n .datum(data)\n .attr(\"class\", \"line\")\n .attr(\"d\", line)\n .style(\"fill\", \"none\")\n .style(\"stroke\", lineColor)\n .style(\"stroke-width\", 5);\n\n chart\n .append(\"path\")\n .datum(data)\n .attr(\"class\", \"area\")\n .attr(\"d\", area)\n .style(\"fill\", lineFillColor);\n\n chart.selectAll(\".domain\").remove();\n chart.selectAll(\".tick line\").remove();\n }, [data, height, lineColor, lineFillColor, width]);\n\n return <svg ref={svgRef} width={width} height={height} {...rest}></svg>;\n};\n\nexport default AreaLineChart;\n"],"names":["data","width","height","lineColor","lineFillColor","rest","svgRef","useRef","useEffect","svg","d3.select","current","selectAll","remove","chartWidth","_b","_a","parentElement","clientWidth","chartHeight","x","d3.scaleLinear","domain","length","range","y","d3.max","d","value","line","d3.line","_","i","area","d3.area","y0","y1","chart","append","attr","datum","style","ref"],"mappings":"sdAuGgD,EAC9CA,OACAC,QAAQ,OACRC,SAAS,OACTC,YAAY,UACZC,gBAAgB,aACbC,MAEH,MAAMC,EAASC,EAAAA,OAAsB,MAyDrC,OAvDAC,EAAAA,UAAU,aACR,MAAMC,EAAMC,EAAAA,QAAUJ,EAAOK,SAE7BF,EAAIG,UAAU,KAAKC,SAEnB,MACMC,EAA8B,iBAAVb,EAAqBA,GAAQ,OAAAc,EAAA,WAAOJ,cAAP,EAAAK,EAAgBC,oBAAhB,EAAAF,EAA+BG,cAAe,IAE/FC,EAAcjB,EAEdkB,EAAIC,EAAAA,UAEPC,OAAO,CAAC,EAAGtB,EAAKuB,OAAS,IACzBC,MAAM,CAAC,EAAGV,IAEPW,EAAIJ,EAAAA,UAEPC,OAAO,CAAC,EAAGI,EAAAA,QAAO1B,EAAO2B,GAAiBA,EAAEC,SAC5CJ,MAAM,CAACL,EAAa,IAEjBU,EAAOC,EAAAA,UAEVV,EAAE,CAACW,EAAcC,IAAcZ,EAAEY,IACjCP,EAAGE,GAAiBF,EAAEE,EAAEC,QAErBK,EAAOC,EAAAA,UAEVd,EAAE,CAACW,EAAcC,IAAcZ,EAAEY,IACjCG,GAAGhB,GACHiB,GAAIT,GAAiBF,EAAEE,EAAEC,QAEtBS,EAAQ5B,EACX6B,OAAO,KACPC,KAAK,YAAa,kBAErBF,EACGC,OAAO,QACPE,MAAMxC,GACNuC,KAAK,QAAS,QACdA,KAAK,IAAKV,GACVY,MAAM,OAAQ,QACdA,MAAM,SAAUtC,GAChBsC,MAAM,eAAgB,GAEzBJ,EACGC,OAAO,QACPE,MAAMxC,GACNuC,KAAK,QAAS,QACdA,KAAK,IAAKN,GACVQ,MAAM,OAAQrC,GAEjBiC,EAAMzB,UAAU,WAAWC,SAC3BwB,EAAMzB,UAAU,cAAcC,UAC7B,CAACb,EAAME,EAAQC,EAAWC,EAAeH,yBAEpC,MAAA,CAAIyC,IAAKpC,EAAQL,QAAcC,YAAoBG"}
|
|
@@ -21,6 +21,10 @@ const sum = (data, column) => {
|
|
|
21
21
|
);
|
|
22
22
|
return !isNaN(sum2) ? `${_.round(sum2, 2)}` : "-";
|
|
23
23
|
};
|
|
24
|
+
const max = (data, column) => {
|
|
25
|
+
const maxVal = Math.max(...data.map((row) => Number(row[column])));
|
|
26
|
+
return `${maxVal}`;
|
|
27
|
+
};
|
|
24
28
|
const countEmpty = (data, column) => {
|
|
25
29
|
const empty = data == null ? void 0 : data.filter(
|
|
26
30
|
(d) => {
|
|
@@ -62,8 +66,14 @@ const countFull = (data, column) => {
|
|
|
62
66
|
const none = () => {
|
|
63
67
|
return null;
|
|
64
68
|
};
|
|
69
|
+
const min = (data, column) => {
|
|
70
|
+
const minValue = Math.min(...data.map((row) => Number(row[column])));
|
|
71
|
+
return `${minValue}`;
|
|
72
|
+
};
|
|
65
73
|
const aggregationFns = {
|
|
66
74
|
none,
|
|
75
|
+
min,
|
|
76
|
+
max,
|
|
67
77
|
sum,
|
|
68
78
|
average,
|
|
69
79
|
countEmpty,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/material-table/aggregation-fns/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { MRT_RowData } from 'material-react-table';\n\nconst average = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\tconst count = data.length;\n\treturn !isNaN(sum) ? `${_.round(sum / count,2)}` : '-';\n};\n\nconst extractNumber = (inputString: any) => {\n\t// Use a regular expression to match the numeric part, including decimals\n\tif (typeof inputString === 'string') {\n\t\tconst match = inputString.match(/[\\d,]+(\\.\\d{1,2})?/);\n\t\treturn match ? match[0] : 0;\n\t}\n\treturn inputString;\n};\nconst sum = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\treturn !isNaN(sum) ? `${_.round(sum,2)}` : '-';\n};\n\nconst max = (data: MRT_RowData[], column: string) => {\n\tconst maxVal = Math.max(...data.map((row) => Number(row[column])));\n\treturn `${maxVal}`;\n};\n\nconst countEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value)) \n\t\t\t? Boolean(!_.size(value)) \n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\treturn `${empty.length}`;\n};\n\nconst percentageEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(!_.size(value))\n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\tconst percentage = (empty.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst percentageFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\tconst percentage = (full.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst countFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\treturn `${full.length}`;\n};\n\nconst none = () => {\n\treturn null;\n};\n\nconst min = (data: MRT_RowData[], column: string) => {\n\tconst minValue = Math.min(...data.map((row) => Number(row[column])));\n\treturn `${minValue}`;\n};\n\nexport const aggregationFns = {\n\tnone,\n\tmin,\n\tmax,\n\tsum,\n\taverage,\n\tcountEmpty,\n\tcountFull,\n\tpercentageEmpty,\n\tpercentageFull\n};\n"],"names":["sum"],"mappings":";AAGA,MAAM,UAAU,CAAC,MAAqB,WAAmB;AACxD,QAAMA,OAAM,KAAK;AAAA,IAChB,CAAC,KAAa,QAAQ,MAAM,OAAO,cAAc,IAAI,MAAM,CAAC,CAAC;AAAA,IAC7D;AAAA,EAAA;AAED,QAAM,QAAQ,KAAK;AACnB,SAAO,CAAC,MAAMA,IAAG,IAAI,GAAG,EAAE,MAAMA,OAAM,OAAM,CAAC,CAAC,KAAK;AACpD;AAEA,MAAM,gBAAgB,CAAC,gBAAqB;AAE3C,MAAI,OAAO,gBAAgB,UAAU;AACpC,UAAM,QAAQ,YAAY,MAAM,oBAAoB;AACpD,WAAO,QAAQ,MAAM,CAAC,IAAI;AAAA,EAC3B;AACA,SAAO;AACR;AACA,MAAM,MAAM,CAAC,MAAqB,WAAmB;AACpD,QAAMA,OAAM,KAAK;AAAA,IAChB,CAAC,KAAa,QAAQ,MAAM,OAAO,cAAc,IAAI,MAAM,CAAC,CAAC;AAAA,IAC7D;AAAA,EAAA;AAED,SAAO,CAAC,MAAMA,IAAG,IAAI,GAAG,EAAE,MAAMA,MAAI,CAAC,CAAC,KAAK;AAC5C;
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/material-table/aggregation-fns/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { MRT_RowData } from 'material-react-table';\n\nconst average = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\tconst count = data.length;\n\treturn !isNaN(sum) ? `${_.round(sum / count,2)}` : '-';\n};\n\nconst extractNumber = (inputString: any) => {\n\t// Use a regular expression to match the numeric part, including decimals\n\tif (typeof inputString === 'string') {\n\t\tconst match = inputString.match(/[\\d,]+(\\.\\d{1,2})?/);\n\t\treturn match ? match[0] : 0;\n\t}\n\treturn inputString;\n};\nconst sum = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\treturn !isNaN(sum) ? `${_.round(sum,2)}` : '-';\n};\n\nconst max = (data: MRT_RowData[], column: string) => {\n\tconst maxVal = Math.max(...data.map((row) => Number(row[column])));\n\treturn `${maxVal}`;\n};\n\nconst countEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value)) \n\t\t\t? Boolean(!_.size(value)) \n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\treturn `${empty.length}`;\n};\n\nconst percentageEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(!_.size(value))\n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\tconst percentage = (empty.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst percentageFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\tconst percentage = (full.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst countFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\treturn `${full.length}`;\n};\n\nconst none = () => {\n\treturn null;\n};\n\nconst min = (data: MRT_RowData[], column: string) => {\n\tconst minValue = Math.min(...data.map((row) => Number(row[column])));\n\treturn `${minValue}`;\n};\n\nexport const aggregationFns = {\n\tnone,\n\tmin,\n\tmax,\n\tsum,\n\taverage,\n\tcountEmpty,\n\tcountFull,\n\tpercentageEmpty,\n\tpercentageFull\n};\n"],"names":["sum"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=/* @__PURE__ */e(require("lodash"));const n=e=>{if("string"==typeof e){const t=e.match(/[\d,]+(\.\d{1,2})?/);return t?t[0]:0}return e},u={none:()=>null,sum:(e,u)=>{const r=e.reduce((e,t)=>e+Number(n(t[u])),0);return isNaN(r)?"-":`${t.default.round(r,2)}`},average:(e,u)=>{const r=e.reduce((e,t)=>e+Number(n(t[u])),0),l=e.length;return isNaN(r)?"-":`${t.default.round(r/l,2)}`},countEmpty:(e,n)=>`${(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(!t.default.size(u)):Boolean(!Number(u))})).length}`,countFull:(e,n)=>`${(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(t.default.size(u)):Boolean(Number(u))})).length}`,percentageEmpty:(e,n)=>{const u=(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(!t.default.size(u)):Boolean(!Number(u))})).length/e.length*100;return`${t.default.round(u,2)}%`},percentageFull:(e,n)=>{const u=(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(t.default.size(u)):Boolean(Number(u))})).length/e.length*100;return`${t.default.round(u,2)}%`}};exports.aggregationFns=u;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}Object.defineProperty(exports,"__esModule",{value:!0});var t=/* @__PURE__ */e(require("lodash"));const n=e=>{if("string"==typeof e){const t=e.match(/[\d,]+(\.\d{1,2})?/);return t?t[0]:0}return e},u={none:()=>null,min:(e,t)=>`${Math.min(...e.map(e=>Number(e[t])))}`,max:(e,t)=>`${Math.max(...e.map(e=>Number(e[t])))}`,sum:(e,u)=>{const r=e.reduce((e,t)=>e+Number(n(t[u])),0);return isNaN(r)?"-":`${t.default.round(r,2)}`},average:(e,u)=>{const r=e.reduce((e,t)=>e+Number(n(t[u])),0),l=e.length;return isNaN(r)?"-":`${t.default.round(r/l,2)}`},countEmpty:(e,n)=>`${(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(!t.default.size(u)):Boolean(!Number(u))})).length}`,countFull:(e,n)=>`${(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(t.default.size(u)):Boolean(Number(u))})).length}`,percentageEmpty:(e,n)=>{const u=(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(!t.default.size(u)):Boolean(!Number(u))})).length/e.length*100;return`${t.default.round(u,2)}%`},percentageFull:(e,n)=>{const u=(null==e?void 0:e.filter(e=>{const u=t.default.get(e,n);return isNaN(Number(u))?Boolean(t.default.size(u)):Boolean(Number(u))})).length/e.length*100;return`${t.default.round(u,2)}%`}};exports.aggregationFns=u;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/material-table/aggregation-fns/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { MRT_RowData } from 'material-react-table';\n\nconst average = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\tconst count = data.length;\n\treturn !isNaN(sum) ? `${_.round(sum / count,2)}` : '-';\n};\n\nconst extractNumber = (inputString: any) => {\n\t// Use a regular expression to match the numeric part, including decimals\n\tif (typeof inputString === 'string') {\n\t\tconst match = inputString.match(/[\\d,]+(\\.\\d{1,2})?/);\n\t\treturn match ? match[0] : 0;\n\t}\n\treturn inputString;\n};\nconst sum = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\treturn !isNaN(sum) ? `${_.round(sum,2)}` : '-';\n};\n\nconst max = (data: MRT_RowData[], column: string) => {\n\tconst maxVal = Math.max(...data.map((row) => Number(row[column])));\n\treturn `${maxVal}`;\n};\n\nconst countEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value)) \n\t\t\t? Boolean(!_.size(value)) \n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\treturn `${empty.length}`;\n};\n\nconst percentageEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(!_.size(value))\n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\tconst percentage = (empty.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst percentageFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\tconst percentage = (full.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst countFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\treturn `${full.length}`;\n};\n\nconst none = () => {\n\treturn null;\n};\n\nconst min = (data: MRT_RowData[], column: string) => {\n\tconst minValue = Math.min(...data.map((row) => Number(row[column])));\n\treturn `${minValue}`;\n};\n\nexport const aggregationFns = {\n\tnone,\n\tmin,\n\tmax,\n\tsum,\n\taverage,\n\tcountEmpty,\n\tcountFull,\n\tpercentageEmpty,\n\tpercentageFull\n};\n"],"names":["extractNumber","inputString","match","aggregationFns","none","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/material-table/aggregation-fns/index.ts"],"sourcesContent":["import _ from 'lodash';\nimport { MRT_RowData } from 'material-react-table';\n\nconst average = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\tconst count = data.length;\n\treturn !isNaN(sum) ? `${_.round(sum / count,2)}` : '-';\n};\n\nconst extractNumber = (inputString: any) => {\n\t// Use a regular expression to match the numeric part, including decimals\n\tif (typeof inputString === 'string') {\n\t\tconst match = inputString.match(/[\\d,]+(\\.\\d{1,2})?/);\n\t\treturn match ? match[0] : 0;\n\t}\n\treturn inputString;\n};\nconst sum = (data: MRT_RowData[], column: string) => {\n\tconst sum = data.reduce(\n\t\t(acc: number, row) => acc + Number(extractNumber(row[column])),\n\t\t0\n\t);\n\treturn !isNaN(sum) ? `${_.round(sum,2)}` : '-';\n};\n\nconst max = (data: MRT_RowData[], column: string) => {\n\tconst maxVal = Math.max(...data.map((row) => Number(row[column])));\n\treturn `${maxVal}`;\n};\n\nconst countEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value)) \n\t\t\t? Boolean(!_.size(value)) \n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\treturn `${empty.length}`;\n};\n\nconst percentageEmpty = (data: MRT_RowData[], column: string) => {\n\tconst empty = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(!_.size(value))\n\t\t\t: Boolean(!Number(value))\n\t}\n\t);\n\tconst percentage = (empty.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst percentageFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\tconst percentage = (full.length / data.length) * 100;\n\n\treturn `${_.round(percentage,2)}%`;\n};\n\nconst countFull = (data: MRT_RowData[], column: string) => {\n\tconst full = data?.filter((d) => {\n\t\tconst value = _.get(d, column); \n\t\treturn isNaN(Number(value))\n\t\t\t? Boolean(_.size(value))\n\t\t\t: Boolean(Number(value))\n\t}\n\t);\n\treturn `${full.length}`;\n};\n\nconst none = () => {\n\treturn null;\n};\n\nconst min = (data: MRT_RowData[], column: string) => {\n\tconst minValue = Math.min(...data.map((row) => Number(row[column])));\n\treturn `${minValue}`;\n};\n\nexport const aggregationFns = {\n\tnone,\n\tmin,\n\tmax,\n\tsum,\n\taverage,\n\tcountEmpty,\n\tcountFull,\n\tpercentageEmpty,\n\tpercentageFull\n};\n"],"names":["extractNumber","inputString","match","aggregationFns","none","min","data","column","Math","map","row","Number","max","sum","reduce","acc","isNaN","_","round","average","count","length","countEmpty","filter","d","value","get","Boolean","size","countFull","percentageEmpty","percentage","percentageFull"],"mappings":"sLAGA,MASMA,EAAiBC,IAEtB,GAA2B,iBAAhBA,EAA0B,CACpC,MAAMC,EAAQD,EAAYC,MAAM,sBAChC,OAAOA,EAAQA,EAAM,GAAK,CAC3B,CACA,OAAOD,GAwEKE,EAAiB,CAC7BC,KAVY,IACL,KAUPC,IAPW,CAACC,EAAqBC,IAE1B,GADUC,KAAKH,OAAOC,EAAKG,IAAKC,GAAQC,OAAOD,EAAIH,QAO1DK,IAjEW,CAACN,EAAqBC,IAE1B,GADQC,KAAKI,OAAON,EAAKG,IAAKC,GAAQC,OAAOD,EAAIH,QAiExDM,IA1EW,CAACP,EAAqBC,KACjC,MAAMM,EAAMP,EAAKQ,OAChB,CAACC,EAAaL,IAAQK,EAAMJ,OAAOX,EAAcU,EAAIH,KACrD,GAED,OAAQS,MAAMH,GAA6B,IAAtB,GAAGI,EAAAA,QAAEC,MAAML,EAAI,MAsEpCM,QA5Fe,CAACb,EAAqBC,KACrC,MAAMM,EAAMP,EAAKQ,OAChB,CAACC,EAAaL,IAAQK,EAAMJ,OAAOX,EAAcU,EAAIH,KACrD,GAEKa,EAAQd,EAAKe,OACnB,OAAQL,MAAMH,GAAqC,IAA9B,GAAGI,EAAAA,QAAEC,MAAML,EAAMO,EAAM,MAuF5CE,WA/DkB,CAAChB,EAAqBC,IAQjC,IAPO,MAAAD,OAAA,EAAAA,EAAMiB,OAAQC,IAC3B,MAAMC,EAAQR,EAAAA,QAAES,IAAIF,EAAGjB,GACvB,OAAOS,MAAML,OAAOc,IACjBE,SAASV,EAAAA,QAAEW,KAAKH,IAChBE,SAAShB,OAAOc,OAGJJ,SAwDhBQ,UA3BiB,CAACvB,EAAqBC,IAQhC,IAPM,MAAAD,OAAA,EAAAA,EAAMiB,OAAQC,IAC1B,MAAMC,EAAQR,EAAAA,QAAES,IAAIF,EAAGjB,GACvB,OAAOS,MAAML,OAAOc,IACjBE,QAAQV,EAAAA,QAAEW,KAAKH,IACfE,QAAQhB,OAAOc,OAGJJ,SAoBfS,gBAtDuB,CAACxB,EAAqBC,KAC7C,MAOMwB,GAPQ,MAAAzB,OAAA,EAAAA,EAAMiB,OAAQC,IAC3B,MAAMC,EAAQR,EAAAA,QAAES,IAAIF,EAAGjB,GACvB,OAAOS,MAAML,OAAOc,IACjBE,SAASV,EAAAA,QAAEW,KAAKH,IAChBE,SAAShB,OAAOc,OAGMJ,OAASf,EAAKe,OAAU,IAElD,MAAO,GAAGJ,EAAAA,QAAEC,MAAMa,EAAW,OA6C7BC,eA1CsB,CAAC1B,EAAqBC,KAC5C,MAOMwB,GAPO,MAAAzB,OAAA,EAAAA,EAAMiB,OAAQC,IAC1B,MAAMC,EAAQR,EAAAA,QAAES,IAAIF,EAAGjB,GACvB,OAAOS,MAAML,OAAOc,IACjBE,QAAQV,EAAAA,QAAEW,KAAKH,IACfE,QAAQhB,OAAOc,OAGMJ,OAASf,EAAKe,OAAU,IAEjD,MAAO,GAAGJ,EAAAA,QAAEC,MAAMa,EAAW"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from "react/jsx-runtime";
|
|
2
|
+
import React__default, { useEffect } from "react";
|
|
3
|
+
import { aggregationFns } from "../../aggregation-fns/index/index.esm.js";
|
|
4
|
+
import { Typography } from "../../../typography/typography/index.esm.js";
|
|
5
|
+
import Menu from "../../../menu/menu/index.esm.js";
|
|
6
|
+
import MenuItem from "../../../../node_modules/@mui/material/MenuItem/MenuItem/index.esm.js";
|
|
7
|
+
const allAggregations = [
|
|
8
|
+
{
|
|
9
|
+
label: "Average",
|
|
10
|
+
value: "avg"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
label: "Sum",
|
|
14
|
+
value: "sum"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
label: "Min",
|
|
18
|
+
value: "min"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
label: "Max",
|
|
22
|
+
value: "max"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
label: "Count Empty",
|
|
26
|
+
value: "count_empty"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
label: "Count Full",
|
|
30
|
+
value: "count_full"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
label: "Percentage Full",
|
|
34
|
+
value: "percentage_full"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: "Percentage Empty",
|
|
38
|
+
value: "percentage_empty"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: "None",
|
|
42
|
+
value: "none"
|
|
43
|
+
}
|
|
44
|
+
];
|
|
45
|
+
const nonNumberAggregations = [
|
|
46
|
+
{
|
|
47
|
+
label: "Count Empty",
|
|
48
|
+
value: "count_empty"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: "Count Full",
|
|
52
|
+
value: "count_full"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
label: "Percentage Full",
|
|
56
|
+
value: "percentage_full"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: "Percentage Empty",
|
|
60
|
+
value: "percentage_empty"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
label: "None",
|
|
64
|
+
value: "none"
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
const aggregationFnsLookup = {
|
|
68
|
+
avg: aggregationFns.average,
|
|
69
|
+
sum: aggregationFns.sum,
|
|
70
|
+
max: aggregationFns.max,
|
|
71
|
+
count_empty: aggregationFns.countEmpty,
|
|
72
|
+
count_full: aggregationFns.countFull,
|
|
73
|
+
percentage_empty: aggregationFns.percentageEmpty,
|
|
74
|
+
percentage_full: aggregationFns.percentageFull,
|
|
75
|
+
min: aggregationFns.min,
|
|
76
|
+
none: aggregationFns.none
|
|
77
|
+
};
|
|
78
|
+
const NumberAggregation = ({ data, column, type }) => {
|
|
79
|
+
const [selectedType, setSelectedType] = React__default.useState("none");
|
|
80
|
+
const [anchorEl, setAnchorEl] = React__default.useState(null);
|
|
81
|
+
const [calculatedValue, setCalculatedValue] = React__default.useState();
|
|
82
|
+
const open = Boolean(anchorEl);
|
|
83
|
+
const handleClick = (event) => {
|
|
84
|
+
setAnchorEl(event.currentTarget);
|
|
85
|
+
};
|
|
86
|
+
const handleClose = () => {
|
|
87
|
+
setAnchorEl(null);
|
|
88
|
+
};
|
|
89
|
+
const handleAggregationType = (val) => {
|
|
90
|
+
setSelectedType(val);
|
|
91
|
+
handleClose();
|
|
92
|
+
};
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
const func = aggregationFnsLookup[selectedType];
|
|
95
|
+
setCalculatedValue(func(data, column));
|
|
96
|
+
}, [selectedType, column, data]);
|
|
97
|
+
const aggregations = type === "number" ? allAggregations : nonNumberAggregations;
|
|
98
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
99
|
+
/* @__PURE__ */ jsx(
|
|
100
|
+
Typography,
|
|
101
|
+
{
|
|
102
|
+
onClick: handleClick,
|
|
103
|
+
sx: { cursor: "pointer" },
|
|
104
|
+
type: "s4",
|
|
105
|
+
weight: "normal",
|
|
106
|
+
color: calculatedValue ? "theme.secondary.1000" : "theme.secondary.500",
|
|
107
|
+
children: calculatedValue || "+ Add Calculation"
|
|
108
|
+
}
|
|
109
|
+
),
|
|
110
|
+
/* @__PURE__ */ jsx(
|
|
111
|
+
Menu,
|
|
112
|
+
{
|
|
113
|
+
id: "basic-menu",
|
|
114
|
+
anchorEl,
|
|
115
|
+
open,
|
|
116
|
+
onClose: handleClose,
|
|
117
|
+
children: aggregations == null ? void 0 : aggregations.map((aggr) => /* @__PURE__ */ jsx(
|
|
118
|
+
MenuItem,
|
|
119
|
+
{
|
|
120
|
+
selected: selectedType == (aggr == null ? void 0 : aggr.value),
|
|
121
|
+
onClick: () => handleAggregationType(aggr == null ? void 0 : aggr.value),
|
|
122
|
+
children: /* @__PURE__ */ jsx(Typography, { color: "theme.secondary.1000", type: "s4", children: aggr == null ? void 0 : aggr.label })
|
|
123
|
+
},
|
|
124
|
+
aggr.value
|
|
125
|
+
))
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
] });
|
|
129
|
+
};
|
|
130
|
+
export {
|
|
131
|
+
NumberAggregation as default
|
|
132
|
+
};
|
|
133
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/material-table/components/number-aggregation.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { aggregationFns } from \"../aggregation-fns\";\nimport Typography from \"../../typography/typography\";\nimport { MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport { MRT_RowData } from \"material-react-table\";\n\ntype aggregationType =\n | \"none\"\n | \"avg\"\n | \"min\"\n | \"max\"\n | \"count_empty\"\n | \"count_full\"\n | \"sum\"\n | \"percentage_empty\"\n | \"percentage_full\";\n\ninterface IAggregation {\n label: string;\n value: aggregationType;\n}\n\nconst allAggregations: IAggregation[] = [\n {\n label: \"Average\",\n value: \"avg\",\n },\n {\n label: \"Sum\",\n value: \"sum\",\n },\n {\n label: \"Min\",\n value: \"min\",\n },\n {\n label: \"Max\",\n value: \"max\",\n },\n {\n label: \"Count Empty\",\n value: \"count_empty\",\n },\n {\n label: \"Count Full\",\n value: \"count_full\",\n },\n {\n label: \"Percentage Full\",\n value: \"percentage_full\",\n },\n {\n label: \"Percentage Empty\",\n value: \"percentage_empty\",\n },\n {\n label: \"None\",\n value: \"none\",\n },\n];\n\nconst nonNumberAggregations: IAggregation[] = [\n {\n label: \"Count Empty\",\n value: \"count_empty\",\n },\n {\n label: \"Count Full\",\n value: \"count_full\",\n },\n {\n label: \"Percentage Full\",\n value: \"percentage_full\",\n },\n {\n label: \"Percentage Empty\",\n value: \"percentage_empty\",\n },\n {\n label: \"None\",\n value: \"none\",\n },\n];\n\nconst aggregationFnsLookup = {\n avg: aggregationFns.average,\n sum: aggregationFns.sum,\n max: aggregationFns.max,\n count_empty: aggregationFns.countEmpty,\n count_full: aggregationFns.countFull,\n percentage_empty: aggregationFns.percentageEmpty,\n percentage_full: aggregationFns.percentageFull,\n min: aggregationFns.min,\n none: aggregationFns.none,\n};\n\ninterface INumberAggregation {\n data: MRT_RowData[];\n column: string;\n type?: string;\n}\n\nconst NumberAggregation = ({ data, column, type }: INumberAggregation) => {\n const [selectedType, setSelectedType] =\n React.useState<aggregationType>(\"none\");\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [calculatedValue, setCalculatedValue] = React.useState<string | null>();\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleAggregationType = (val: aggregationType) => {\n setSelectedType(val);\n handleClose();\n };\n\n useEffect(() => {\n const func = aggregationFnsLookup[selectedType];\n setCalculatedValue(func(data, column));\n }, [selectedType, column, data]);\n\n const aggregations =\n type === \"number\" ? allAggregations : nonNumberAggregations;\n\n return (\n <>\n <Typography\n onClick={handleClick}\n sx={{ cursor: \"pointer\" }}\n type=\"s4\"\n weight=\"normal\"\n color={calculatedValue ? \"theme.secondary.1000\" : \"theme.secondary.500\"}\n >\n {calculatedValue || \"+ Add Calculation\"}\n </Typography>\n <Menu\n id=\"basic-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n >\n {aggregations?.map((aggr) => (\n <MenuItem\n key={aggr.value}\n selected={selectedType == aggr?.value}\n onClick={() => handleAggregationType(aggr?.value)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {aggr?.label}\n </Typography>\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n};\n\nexport default NumberAggregation;\n"],"names":["React"],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),l=require("react"),a=require("../../aggregation-fns/index/index.js"),n=require("../../../typography/typography/index.js"),t=require("../../../menu/menu/index.js"),u=require("../../../../node_modules/@mui/material/MenuItem/MenuItem/index.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=/* @__PURE__ */r(l);const g=[{label:"Average",value:"avg"},{label:"Sum",value:"sum"},{label:"Min",value:"min"},{label:"Max",value:"max"},{label:"Count Empty",value:"count_empty"},{label:"Count Full",value:"count_full"},{label:"Percentage Full",value:"percentage_full"},{label:"Percentage Empty",value:"percentage_empty"},{label:"None",value:"none"}],c=[{label:"Count Empty",value:"count_empty"},{label:"Count Full",value:"count_full"},{label:"Percentage Full",value:"percentage_full"},{label:"Percentage Empty",value:"percentage_empty"},{label:"None",value:"none"}],i={avg:a.aggregationFns.average,sum:a.aggregationFns.sum,max:a.aggregationFns.max,count_empty:a.aggregationFns.countEmpty,count_full:a.aggregationFns.countFull,percentage_empty:a.aggregationFns.percentageEmpty,percentage_full:a.aggregationFns.percentageFull,min:a.aggregationFns.min,none:a.aggregationFns.none};exports.default=({data:a,column:r,type:s})=>{const[m,p]=o.default.useState("none"),[d,v]=o.default.useState(null),[y,f]=o.default.useState(),b=Boolean(d),x=()=>{v(null)};l.useEffect(()=>{f((0,i[m])(a,r))},[m,r,a]);const F="number"===s?g:c;/* @__PURE__ */
|
|
2
|
+
return e.jsxs(e.Fragment,{children:[
|
|
3
|
+
/* @__PURE__ */e.jsx(n.Typography,{onClick:e=>{v(e.currentTarget)},sx:{cursor:"pointer"},type:"s4",weight:"normal",color:y?"theme.secondary.1000":"theme.secondary.500",children:y||"+ Add Calculation"}),
|
|
4
|
+
/* @__PURE__ */e.jsx(t.default,{id:"basic-menu",anchorEl:d,open:b,onClose:x,children:null==F?void 0:F.map(l=>/* @__PURE__ */e.jsx(u.default,{selected:m==(null==l?void 0:l.value),onClick:()=>{return e=null==l?void 0:l.value,p(e),void x();var e},children:/* @__PURE__ */e.jsx(n.Typography,{color:"theme.secondary.1000",type:"s4",children:null==l?void 0:l.label})},l.value))})]})};
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/material-table/components/number-aggregation.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { aggregationFns } from \"../aggregation-fns\";\nimport Typography from \"../../typography/typography\";\nimport { MenuItem } from \"@mui/material\";\nimport Menu from \"../../menu/menu\";\nimport { MRT_RowData } from \"material-react-table\";\n\ntype aggregationType =\n | \"none\"\n | \"avg\"\n | \"min\"\n | \"max\"\n | \"count_empty\"\n | \"count_full\"\n | \"sum\"\n | \"percentage_empty\"\n | \"percentage_full\";\n\ninterface IAggregation {\n label: string;\n value: aggregationType;\n}\n\nconst allAggregations: IAggregation[] = [\n {\n label: \"Average\",\n value: \"avg\",\n },\n {\n label: \"Sum\",\n value: \"sum\",\n },\n {\n label: \"Min\",\n value: \"min\",\n },\n {\n label: \"Max\",\n value: \"max\",\n },\n {\n label: \"Count Empty\",\n value: \"count_empty\",\n },\n {\n label: \"Count Full\",\n value: \"count_full\",\n },\n {\n label: \"Percentage Full\",\n value: \"percentage_full\",\n },\n {\n label: \"Percentage Empty\",\n value: \"percentage_empty\",\n },\n {\n label: \"None\",\n value: \"none\",\n },\n];\n\nconst nonNumberAggregations: IAggregation[] = [\n {\n label: \"Count Empty\",\n value: \"count_empty\",\n },\n {\n label: \"Count Full\",\n value: \"count_full\",\n },\n {\n label: \"Percentage Full\",\n value: \"percentage_full\",\n },\n {\n label: \"Percentage Empty\",\n value: \"percentage_empty\",\n },\n {\n label: \"None\",\n value: \"none\",\n },\n];\n\nconst aggregationFnsLookup = {\n avg: aggregationFns.average,\n sum: aggregationFns.sum,\n max: aggregationFns.max,\n count_empty: aggregationFns.countEmpty,\n count_full: aggregationFns.countFull,\n percentage_empty: aggregationFns.percentageEmpty,\n percentage_full: aggregationFns.percentageFull,\n min: aggregationFns.min,\n none: aggregationFns.none,\n};\n\ninterface INumberAggregation {\n data: MRT_RowData[];\n column: string;\n type?: string;\n}\n\nconst NumberAggregation = ({ data, column, type }: INumberAggregation) => {\n const [selectedType, setSelectedType] =\n React.useState<aggregationType>(\"none\");\n const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null);\n const [calculatedValue, setCalculatedValue] = React.useState<string | null>();\n const open = Boolean(anchorEl);\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleAggregationType = (val: aggregationType) => {\n setSelectedType(val);\n handleClose();\n };\n\n useEffect(() => {\n const func = aggregationFnsLookup[selectedType];\n setCalculatedValue(func(data, column));\n }, [selectedType, column, data]);\n\n const aggregations =\n type === \"number\" ? allAggregations : nonNumberAggregations;\n\n return (\n <>\n <Typography\n onClick={handleClick}\n sx={{ cursor: \"pointer\" }}\n type=\"s4\"\n weight=\"normal\"\n color={calculatedValue ? \"theme.secondary.1000\" : \"theme.secondary.500\"}\n >\n {calculatedValue || \"+ Add Calculation\"}\n </Typography>\n <Menu\n id=\"basic-menu\"\n anchorEl={anchorEl}\n open={open}\n onClose={handleClose}\n >\n {aggregations?.map((aggr) => (\n <MenuItem\n key={aggr.value}\n selected={selectedType == aggr?.value}\n onClick={() => handleAggregationType(aggr?.value)}\n >\n <Typography color=\"theme.secondary.1000\" type=\"s4\">\n {aggr?.label}\n </Typography>\n </MenuItem>\n ))}\n </Menu>\n </>\n );\n};\n\nexport default NumberAggregation;\n"],"names":["allAggregations","label","value","nonNumberAggregations","aggregationFnsLookup","avg","aggregationFns","average","sum","max","count_empty","countEmpty","count_full","countFull","percentage_empty","percentageEmpty","percentage_full","percentageFull","min","none","data","column","type","selectedType","setSelectedType","React","useState","anchorEl","setAnchorEl","calculatedValue","setCalculatedValue","open","Boolean","handleClose","useEffect","func","aggregations","jsxs","Fragment","children","jsx","Typography","onClick","event","currentTarget","sx","cursor","weight","color","Menu","id","onClose","map","aggr","MenuItem","selected","handleAggregationType","val"],"mappings":"2bAuBA,MAAMA,EAAkC,CACtC,CACEC,MAAO,UACPC,MAAO,OAET,CACED,MAAO,MACPC,MAAO,OAET,CACED,MAAO,MACPC,MAAO,OAET,CACED,MAAO,MACPC,MAAO,OAET,CACED,MAAO,cACPC,MAAO,eAET,CACED,MAAO,aACPC,MAAO,cAET,CACED,MAAO,kBACPC,MAAO,mBAET,CACED,MAAO,mBACPC,MAAO,oBAET,CACED,MAAO,OACPC,MAAO,SAILC,EAAwC,CAC5C,CACEF,MAAO,cACPC,MAAO,eAET,CACED,MAAO,aACPC,MAAO,cAET,CACED,MAAO,kBACPC,MAAO,mBAET,CACED,MAAO,mBACPC,MAAO,oBAET,CACED,MAAO,OACPC,MAAO,SAILE,EAAuB,CAC3BC,IAAKC,EAAAA,eAAeC,QACpBC,IAAKF,EAAAA,eAAeE,IACpBC,IAAKH,EAAAA,eAAeG,IACpBC,YAAaJ,EAAAA,eAAeK,WAC5BC,WAAYN,EAAAA,eAAeO,UAC3BC,iBAAkBR,EAAAA,eAAeS,gBACjCC,gBAAiBV,EAAAA,eAAeW,eAChCC,IAAKZ,EAAAA,eAAeY,IACpBC,KAAMb,EAAAA,eAAea,sBASG,EAAGC,OAAMC,SAAQC,WACzC,MAAOC,EAAcC,GACnBC,EAAAA,QAAMC,SAA0B,SAC3BC,EAAUC,GAAeH,EAAAA,QAAMC,SAA6B,OAC5DG,EAAiBC,GAAsBL,EAAAA,QAAMC,WAC9CK,EAAOC,QAAQL,GAMfM,EAAc,KAClBL,EAAY,OAQdM,EAAAA,UAAU,KAERJ,GAAmBK,EADN/B,EAAqBmB,IACVH,EAAMC,KAC7B,CAACE,EAAcF,EAAQD,IAE1B,MAAMgB,EACK,WAATd,EAAoBtB,EAAkBG;AAExC,OACEkC,EAAAA,KAAAC,WAAA,CACEC,SAAA;eAAAC,EAAAA,IAACC,EAAAA,WAAA,CACCC,QAxBeC,IACnBf,EAAYe,EAAMC,gBAwBdC,GAAI,CAAEC,OAAQ,WACdxB,KAAK,KACLyB,OAAO,SACPC,MAAOnB,EAAkB,uBAAyB,sBAEjDU,SAAAV,GAAmB;eAEtBW,EAAAA,IAACS,EAAAA,QAAA,CACCC,GAAG,aACHvB,WACAI,OACAoB,QAASlB,EAERM,SAAA,MAAAH,OAAA,EAAAA,EAAcgB,IAAKC,kBAClBb,EAAAA,IAACc,EAAAA,QAAA,CAECC,SAAUhC,IAAgB,MAAA8B,OAAA,EAAAA,EAAMnD,OAChCwC,QAAS,KAAMc,OAlCMC,EAkCgB,MAAAJ,OAAA,EAAAA,EAAMnD,MAjCnDsB,EAAgBiC,QAChBxB,IAF4B,IAACwB,GAoCrBlB,8BAACE,aAAA,CAAWO,MAAM,uBAAuB1B,KAAK,KAC3CiB,0BAAMtC,SALJoD,EAAKnD"}
|
package/dist/index.esm.js
CHANGED
|
@@ -469,6 +469,7 @@ import * as apiTypes_d$8 from "./api-client/api.user/api-types.d/index.esm.js";
|
|
|
469
469
|
import { element } from "./views/form-builder/field_properties/index.esm.js";
|
|
470
470
|
import { createDefaultTableColumns, extractSections, generateModulePath, processMembers, processTableColumns, useFormDataEffect, useFormDataProcessor } from "./views/form-builder/utils/common/index.esm.js";
|
|
471
471
|
import { DEFAULT_COLUMN_WIDTH, DEFAULT_GRID_COLUMNS, DEFAULT_TAB_TITLE, FIELD_TYPES } from "./views/form-builder/index/index.esm.js";
|
|
472
|
+
import { Components } from "./views/beforeAuth/components/index/index.esm.js";
|
|
472
473
|
export {
|
|
473
474
|
API_METHOD_GROUPS,
|
|
474
475
|
default3 as Accordion,
|
|
@@ -554,6 +555,7 @@ export {
|
|
|
554
555
|
default14 as ColorPickerInput,
|
|
555
556
|
default291 as ColumnWidth,
|
|
556
557
|
default271 as CompanySelectionModal,
|
|
558
|
+
Components,
|
|
557
559
|
default15 as ConfirmModal,
|
|
558
560
|
default127 as Container,
|
|
559
561
|
default89 as ControllerSelect,
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|