@erpsquad/common 1.8.23 → 1.8.25
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/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-editable-table/aggregation-fns/index.d.ts +13 -0
- package/dist/components/material-editable-table/components/default-aggregation.d.ts +9 -0
- package/dist/components/material-editable-table/components/header-cell.d.ts +5 -0
- package/dist/components/material-editable-table/components/inline-edit-fields.d.ts +17 -0
- package/dist/components/material-editable-table/components/number-aggregation.d.ts +9 -0
- package/dist/components/material-editable-table/material-editable-table.d.ts +40 -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/@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/style.css +2 -2
- 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":""}
|
|
@@ -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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MRT_RowData } from 'material-react-table';
|
|
2
|
+
|
|
3
|
+
export declare const aggregationFns: {
|
|
4
|
+
none: () => any;
|
|
5
|
+
min: (data: MRT_RowData[], column: string) => string;
|
|
6
|
+
max: (data: MRT_RowData[], column: string) => string;
|
|
7
|
+
sum: (data: MRT_RowData[], column: string) => string;
|
|
8
|
+
average: (data: MRT_RowData[], column: string) => string;
|
|
9
|
+
countEmpty: (data: MRT_RowData[], column: string) => string;
|
|
10
|
+
countFull: (data: MRT_RowData[], column: string) => string;
|
|
11
|
+
percentageEmpty: (data: MRT_RowData[], column: string) => string;
|
|
12
|
+
percentageFull: (data: MRT_RowData[], column: string) => string;
|
|
13
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MRT_RowData } from 'material-react-table';
|
|
2
|
+
|
|
3
|
+
interface IDefaultAggregation {
|
|
4
|
+
data: MRT_RowData[];
|
|
5
|
+
column: string;
|
|
6
|
+
columnDef?: any;
|
|
7
|
+
}
|
|
8
|
+
declare const DefaultAggregation: ({ data, column, }: IDefaultAggregation) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default DefaultAggregation;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
|
|
3
|
+
interface IInlineEditFields {
|
|
4
|
+
cell: any;
|
|
5
|
+
column: any;
|
|
6
|
+
row: any;
|
|
7
|
+
table: any;
|
|
8
|
+
col: any;
|
|
9
|
+
callback: (value: any, column: any, rowId: any) => any;
|
|
10
|
+
errors: any;
|
|
11
|
+
validationSchema: any;
|
|
12
|
+
setValidationErrors: any;
|
|
13
|
+
onChangeRowField?: (e: any, type: string, row: any) => any;
|
|
14
|
+
getSelectedData: any;
|
|
15
|
+
}
|
|
16
|
+
declare const InlineEditFields: React.FC<IInlineEditFields>;
|
|
17
|
+
export default InlineEditFields;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { MRT_RowData } from 'material-react-table';
|
|
2
|
+
|
|
3
|
+
interface INumberAggregation {
|
|
4
|
+
data: MRT_RowData[];
|
|
5
|
+
column: string;
|
|
6
|
+
type?: string;
|
|
7
|
+
}
|
|
8
|
+
declare const NumberAggregation: ({ data, column, type }: INumberAggregation) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export default NumberAggregation;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { MRT_ColumnDef, MRT_Header, MRT_RowData, MRT_TableInstance } from 'material-react-table';
|
|
3
|
+
|
|
4
|
+
type ExtraEditVariants = 'file' | 'image' | 'date' | 'number' | 'time' | 'date_time' | 'phone' | 'checkbox';
|
|
5
|
+
type DisableFunction = (row: any, virtualRow?: any) => boolean;
|
|
6
|
+
export type TypeBooleanLabels = {
|
|
7
|
+
1: string;
|
|
8
|
+
0: string;
|
|
9
|
+
true: string;
|
|
10
|
+
false: string;
|
|
11
|
+
};
|
|
12
|
+
export interface MaterialEditableTableColumnProps extends Omit<MRT_ColumnDef<MRT_RowData>, 'editVariant'> {
|
|
13
|
+
visible?: boolean;
|
|
14
|
+
type?: string;
|
|
15
|
+
showDefaultCurrency?: boolean;
|
|
16
|
+
valueGet?: string;
|
|
17
|
+
custom_class?: string;
|
|
18
|
+
typeArrayAccessorKey?: string;
|
|
19
|
+
typeBooleanLabels?: TypeBooleanLabels;
|
|
20
|
+
editVariant?: MRT_ColumnDef<MRT_RowData>['editVariant'] | ExtraEditVariants;
|
|
21
|
+
editProperties?: {
|
|
22
|
+
field_name?: string;
|
|
23
|
+
valueKey?: string;
|
|
24
|
+
placeholder?: string;
|
|
25
|
+
dateFormat?: string;
|
|
26
|
+
validations?: any[];
|
|
27
|
+
is_multiple?: boolean;
|
|
28
|
+
is_multiline?: boolean;
|
|
29
|
+
disable?: boolean | DisableFunction;
|
|
30
|
+
};
|
|
31
|
+
redirectionPathWithId?: string;
|
|
32
|
+
idField?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface MaterialEditableTableColumnHeaderProps {
|
|
35
|
+
column: MRT_ColumnDef<any, any>;
|
|
36
|
+
header: MRT_Header<any>;
|
|
37
|
+
table: MRT_TableInstance<any>;
|
|
38
|
+
}
|
|
39
|
+
declare const MaterialEditableTable: React.MemoExoticComponent<({ enablePagination, rows, columns, totalPages, paginationModel, columnOrder, updateData, handleColumnOrdering, enableEditing, enableColumnDragging, states, rowActionMenu, destructiveActionMenu, disableDefaultActionColumn, enableRowSelection, defaultActionColumnItems, enableBottomToolbar, SetSelectedRowId, isResetRow, onCreateRow, onEditRow, onDeleteRow, editDisplayMode, enableRowCreate, onChangeRowField, onSelectRow, enableColumnResizing, selectedRowIds, onColumnVisibility, onSortingChange, getSelectedData, disabledDefaultActionColumnIcon, enableAddCustomField, enableRowDragging, handleColumnResizing, columnSizes, ...rest }: MaterialTablePropsType) => import("react/jsx-runtime").JSX.Element>;
|
|
40
|
+
export default MaterialEditableTable;
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|