@redsift/dashboard 11.5.0 → 11.6.0-muiv5-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_virtual/_rollupPluginBabelHelpers.js +93 -0
- package/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/components/ChartEmptyState/ChartEmptyState.d.ts +6 -0
- package/components/ChartEmptyState/ChartEmptyState.js +123 -0
- package/components/ChartEmptyState/ChartEmptyState.js.map +1 -0
- package/components/ChartEmptyState/styles.js +35 -0
- package/components/ChartEmptyState/styles.js.map +1 -0
- package/components/ChartEmptyState/types.d.ts +17 -0
- package/components/CrossfilterRegistry/CrossfilterRegistry.js +23 -0
- package/components/CrossfilterRegistry/CrossfilterRegistry.js.map +1 -0
- package/components/Dashboard/Dashboard.d.ts +6 -0
- package/components/Dashboard/Dashboard.js +46 -0
- package/components/Dashboard/Dashboard.js.map +1 -0
- package/components/Dashboard/context.d.ts +7 -0
- package/components/Dashboard/context.js +11 -0
- package/components/Dashboard/context.js.map +1 -0
- package/components/Dashboard/reducer.d.ts +5 -0
- package/components/Dashboard/reducer.js +61 -0
- package/components/Dashboard/reducer.js.map +1 -0
- package/components/Dashboard/types.d.ts +44 -0
- package/components/Dashboard/types.js +23 -0
- package/components/Dashboard/types.js.map +1 -0
- package/components/PdfExportButton/PdfDocument.js +173 -0
- package/components/PdfExportButton/PdfDocument.js.map +1 -0
- package/components/PdfExportButton/PdfExportButton.d.ts +6 -0
- package/components/PdfExportButton/PdfExportButton.js +110 -0
- package/components/PdfExportButton/PdfExportButton.js.map +1 -0
- package/components/PdfExportButton/styles.js +146 -0
- package/components/PdfExportButton/styles.js.map +1 -0
- package/components/PdfExportButton/types.d.ts +24 -0
- package/components/TimeSeriesBarChart/TimeSeriesBarChart.d.ts +6 -0
- package/components/TimeSeriesBarChart/TimeSeriesBarChart.js +365 -0
- package/components/TimeSeriesBarChart/TimeSeriesBarChart.js.map +1 -0
- package/components/TimeSeriesBarChart/styles.js +98 -0
- package/components/TimeSeriesBarChart/styles.js.map +1 -0
- package/components/TimeSeriesBarChart/types.d.ts +84 -0
- package/components/TimeSeriesBarChart/types.js +22 -0
- package/components/TimeSeriesBarChart/types.js.map +1 -0
- package/components/WithFilters/FilterableBarChart.js +152 -0
- package/components/WithFilters/FilterableBarChart.js.map +1 -0
- package/components/WithFilters/FilterableDataGrid.js +51 -0
- package/components/WithFilters/FilterableDataGrid.js.map +1 -0
- package/components/WithFilters/FilterablePieChart.js +160 -0
- package/components/WithFilters/FilterablePieChart.js.map +1 -0
- package/components/WithFilters/FilterableScatterPlot.js +252 -0
- package/components/WithFilters/FilterableScatterPlot.js.map +1 -0
- package/components/WithFilters/WithFilters.d.ts +6 -0
- package/components/WithFilters/WithFilters.js +36 -0
- package/components/WithFilters/WithFilters.js.map +1 -0
- package/components/WithFilters/types.d.ts +40 -0
- package/hooks/useCategoricalChartAsListbox.js +94 -0
- package/hooks/useCategoricalChartAsListbox.js.map +1 -0
- package/index.d.ts +14 -227
- package/index.js +11 -1956
- package/index.js.map +1 -1
- package/package.json +8 -8
- package/types.d.ts +16 -0
- package/utils/groupReducers/groupReduceCount.d.ts +6 -0
- package/utils/groupReducers/groupReduceCount.js +5 -0
- package/utils/groupReducers/groupReduceCount.js.map +1 -0
- package/utils/groupReducers/groupReduceSum.d.ts +7 -0
- package/utils/groupReducers/groupReduceSum.js +5 -0
- package/utils/groupReducers/groupReduceSum.js.map +1 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) {
|
|
2
|
+
var keys = Object.keys(object);
|
|
3
|
+
if (Object.getOwnPropertySymbols) {
|
|
4
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
5
|
+
enumerableOnly && (symbols = symbols.filter(function (sym) {
|
|
6
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
7
|
+
})), keys.push.apply(keys, symbols);
|
|
8
|
+
}
|
|
9
|
+
return keys;
|
|
10
|
+
}
|
|
11
|
+
function _objectSpread2(target) {
|
|
12
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
13
|
+
var source = null != arguments[i] ? arguments[i] : {};
|
|
14
|
+
i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
15
|
+
_defineProperty(target, key, source[key]);
|
|
16
|
+
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
|
|
17
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return target;
|
|
21
|
+
}
|
|
22
|
+
function _defineProperty(obj, key, value) {
|
|
23
|
+
key = _toPropertyKey(key);
|
|
24
|
+
if (key in obj) {
|
|
25
|
+
Object.defineProperty(obj, key, {
|
|
26
|
+
value: value,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
obj[key] = value;
|
|
33
|
+
}
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
function _extends() {
|
|
37
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
38
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
39
|
+
var source = arguments[i];
|
|
40
|
+
for (var key in source) {
|
|
41
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
42
|
+
target[key] = source[key];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return target;
|
|
47
|
+
};
|
|
48
|
+
return _extends.apply(this, arguments);
|
|
49
|
+
}
|
|
50
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
51
|
+
if (source == null) return {};
|
|
52
|
+
var target = {};
|
|
53
|
+
var sourceKeys = Object.keys(source);
|
|
54
|
+
var key, i;
|
|
55
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
56
|
+
key = sourceKeys[i];
|
|
57
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
58
|
+
target[key] = source[key];
|
|
59
|
+
}
|
|
60
|
+
return target;
|
|
61
|
+
}
|
|
62
|
+
function _objectWithoutProperties(source, excluded) {
|
|
63
|
+
if (source == null) return {};
|
|
64
|
+
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
65
|
+
var key, i;
|
|
66
|
+
if (Object.getOwnPropertySymbols) {
|
|
67
|
+
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
68
|
+
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
69
|
+
key = sourceSymbolKeys[i];
|
|
70
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
71
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
72
|
+
target[key] = source[key];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
77
|
+
function _toPrimitive(input, hint) {
|
|
78
|
+
if (typeof input !== "object" || input === null) return input;
|
|
79
|
+
var prim = input[Symbol.toPrimitive];
|
|
80
|
+
if (prim !== undefined) {
|
|
81
|
+
var res = prim.call(input, hint || "default");
|
|
82
|
+
if (typeof res !== "object") return res;
|
|
83
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
84
|
+
}
|
|
85
|
+
return (hint === "string" ? String : Number)(input);
|
|
86
|
+
}
|
|
87
|
+
function _toPropertyKey(arg) {
|
|
88
|
+
var key = _toPrimitive(arg, "string");
|
|
89
|
+
return typeof key === "symbol" ? key : String(key);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { _defineProperty as defineProperty, _extends as extends, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey };
|
|
93
|
+
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
|
+
import { mdiRefresh } from '@redsift/icons';
|
|
3
|
+
import { StyledChartEmptyState, StyledResetButton } from './styles.js';
|
|
4
|
+
|
|
5
|
+
const COMPONENT_NAME = 'ChartEmptyState';
|
|
6
|
+
const CLASSNAME = 'redsift-chart-empty-state';
|
|
7
|
+
const ChartEmptyState = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
|
+
const {
|
|
9
|
+
onReset,
|
|
10
|
+
title = 'No Data Available',
|
|
11
|
+
subtitle = 'Please check the applied filters',
|
|
12
|
+
resetLabel = 'Reset all filters'
|
|
13
|
+
} = props;
|
|
14
|
+
return /*#__PURE__*/React.createElement(StyledChartEmptyState, {
|
|
15
|
+
ref: ref,
|
|
16
|
+
className: "redsift-chart-empty-state"
|
|
17
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: `${ChartEmptyState.className}__img`
|
|
19
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
20
|
+
width: "86",
|
|
21
|
+
height: "86",
|
|
22
|
+
viewBox: "0 0 86 86",
|
|
23
|
+
fill: "none",
|
|
24
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
25
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
26
|
+
opacity: "0.2",
|
|
27
|
+
d: "M43 86C66.7482 86 86 66.7482 86 43C86 19.2518 66.7482 0 43 0C19.2518 0 0 19.2518 0 43C0 66.7482 19.2518 86 43 86Z",
|
|
28
|
+
fill: "#4285F4"
|
|
29
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
30
|
+
opacity: "0.4",
|
|
31
|
+
d: "M13.4479 45.9299C13.4479 44.8254 14.3434 43.9299 15.4479 43.9299H29.3785C30.4831 43.9299 31.3785 44.8254 31.3785 45.9299V60.0675H13.4479V45.9299Z",
|
|
32
|
+
fill: "#4285F4"
|
|
33
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
34
|
+
opacity: "0.4",
|
|
35
|
+
d: "M34.0681 27.9993C34.0681 26.8948 34.9636 25.9993 36.0681 25.9993H49.9987C51.1033 25.9993 51.9987 26.8948 51.9987 27.9993V60.0675H34.0681V27.9993Z",
|
|
36
|
+
fill: "#4285F4"
|
|
37
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
38
|
+
opacity: "0.4",
|
|
39
|
+
d: "M54.6883 53.1022C54.6883 51.9976 55.5837 51.1022 56.6883 51.1022H70.6189C71.7235 51.1022 72.6189 51.9976 72.6189 53.1022V60.0675H54.6883V53.1022Z",
|
|
40
|
+
fill: "#4285F4"
|
|
41
|
+
}), /*#__PURE__*/React.createElement("line", {
|
|
42
|
+
x1: "10.3618",
|
|
43
|
+
y1: "60.464",
|
|
44
|
+
x2: "75.705",
|
|
45
|
+
y2: "60.464",
|
|
46
|
+
stroke: "#305AA2",
|
|
47
|
+
strokeLinecap: "round"
|
|
48
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
49
|
+
d: "M48.7345 25.9993H46.9414L51.9987 28.9192V27.8839L48.7345 25.9993Z",
|
|
50
|
+
fill: "#4285F4"
|
|
51
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
52
|
+
d: "M41.5622 25.9993L51.9987 32.0249V30.9896L43.3553 25.9993H41.5622Z",
|
|
53
|
+
fill: "#4285F4"
|
|
54
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
55
|
+
d: "M36.183 25.9993L51.9987 35.1305V34.0953L37.9761 25.9993H36.183Z",
|
|
56
|
+
fill: "#4285F4"
|
|
57
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
58
|
+
d: "M34.0771 27.622C34.0681 27.6758 34.0681 27.7296 34.0681 27.7924V27.8839L51.9987 38.2362V37.201L34.281 26.9716C34.1776 27.171 34.097 27.3834 34.0771 27.622Z",
|
|
59
|
+
fill: "#4285F4"
|
|
60
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
61
|
+
d: "M34.0681 30.9896L51.9987 41.3418V40.3066L34.0681 29.9544V30.9896Z",
|
|
62
|
+
fill: "#4285F4"
|
|
63
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
64
|
+
d: "M34.0681 34.0953L51.9987 44.4475V43.4123L34.0681 33.06V34.0953Z",
|
|
65
|
+
fill: "#4285F4"
|
|
66
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
67
|
+
d: "M34.0681 37.2009L51.9987 47.5531V46.518L34.0681 36.1657V37.2009Z",
|
|
68
|
+
fill: "#4285F4"
|
|
69
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
70
|
+
d: "M34.0681 40.3066L51.9987 50.6588V49.6236L34.0681 39.2714V40.3066Z",
|
|
71
|
+
fill: "#4285F4"
|
|
72
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
73
|
+
d: "M34.0681 43.4123L51.9987 53.7645V52.7293L34.0681 42.377V43.4123Z",
|
|
74
|
+
fill: "#4285F4"
|
|
75
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
76
|
+
d: "M34.0681 46.518L51.9987 56.8702V55.835L34.0681 45.4827V46.518Z",
|
|
77
|
+
fill: "#4285F4"
|
|
78
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
79
|
+
d: "M34.0681 49.6236L51.9987 59.9759V58.9407L34.0681 48.5884V49.6236Z",
|
|
80
|
+
fill: "#4285F4"
|
|
81
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
82
|
+
d: "M34.0681 52.7293L46.7782 60.0675H48.5712L34.0681 51.6941V52.7293Z",
|
|
83
|
+
fill: "#4285F4"
|
|
84
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
85
|
+
d: "M34.0681 55.835L41.399 60.0675H43.192L34.0681 54.7997V55.835Z",
|
|
86
|
+
fill: "#4285F4"
|
|
87
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
88
|
+
d: "M34.0681 58.9406L36.0198 60.0675H37.8129L34.0681 57.9054V58.9406Z",
|
|
89
|
+
fill: "#4285F4"
|
|
90
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
91
|
+
opacity: "0.6",
|
|
92
|
+
cx: "50.5506",
|
|
93
|
+
cy: "29.9304",
|
|
94
|
+
r: "10.1549",
|
|
95
|
+
transform: "rotate(-45 50.5506 29.9304)",
|
|
96
|
+
fill: "white",
|
|
97
|
+
stroke: "#305AA2",
|
|
98
|
+
strokeWidth: "3"
|
|
99
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
100
|
+
cx: "50.5506",
|
|
101
|
+
cy: "29.9304",
|
|
102
|
+
r: "10.1549",
|
|
103
|
+
transform: "rotate(-45 50.5506 29.9304)",
|
|
104
|
+
stroke: "#305AA2",
|
|
105
|
+
strokeWidth: "3"
|
|
106
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
107
|
+
d: "M59.2186 36.4771L58.1579 35.4164L56.0366 37.5377L57.0973 38.5984L59.2186 36.4771ZM65.9725 47.4736C66.5582 48.0594 67.508 48.0594 68.0938 47.4736C68.6796 46.8878 68.6796 45.938 68.0938 45.3522L65.9725 47.4736ZM57.0973 38.5984L65.9725 47.4736L68.0938 45.3522L59.2186 36.4771L57.0973 38.5984Z",
|
|
108
|
+
fill: "#305AA2"
|
|
109
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
110
|
+
className: `${ChartEmptyState.className}__title`
|
|
111
|
+
}, title), /*#__PURE__*/React.createElement("div", {
|
|
112
|
+
className: `${ChartEmptyState.className}__subtitle`
|
|
113
|
+
}, subtitle), onReset ? /*#__PURE__*/React.createElement(StyledResetButton, {
|
|
114
|
+
variant: "unstyled",
|
|
115
|
+
leftIcon: mdiRefresh,
|
|
116
|
+
onClick: onReset
|
|
117
|
+
}, resetLabel) : null);
|
|
118
|
+
});
|
|
119
|
+
ChartEmptyState.className = CLASSNAME;
|
|
120
|
+
ChartEmptyState.displayName = COMPONENT_NAME;
|
|
121
|
+
|
|
122
|
+
export { ChartEmptyState };
|
|
123
|
+
//# sourceMappingURL=ChartEmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartEmptyState.js","sources":["../../../src/components/ChartEmptyState/ChartEmptyState.tsx"],"sourcesContent":["import React, { forwardRef, RefObject } from 'react';\nimport { mdiRefresh } from '@redsift/icons';\nimport { Comp } from '@redsift/design-system';\n\nimport { ChartEmptyStateProps } from './types';\nimport { StyledChartEmptyState, StyledResetButton } from './styles';\n\nconst COMPONENT_NAME = 'ChartEmptyState';\nconst CLASSNAME = 'redsift-chart-empty-state';\n\nexport const ChartEmptyState: Comp<ChartEmptyStateProps, HTMLDivElement> = forwardRef((props, ref) => {\n const {\n onReset,\n title = 'No Data Available',\n subtitle = 'Please check the applied filters',\n resetLabel = 'Reset all filters',\n } = props;\n\n return (\n <StyledChartEmptyState ref={ref as RefObject<HTMLDivElement>} className=\"redsift-chart-empty-state\">\n <div className={`${ChartEmptyState.className}__img`}>\n <svg width=\"86\" height=\"86\" viewBox=\"0 0 86 86\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n opacity=\"0.2\"\n d=\"M43 86C66.7482 86 86 66.7482 86 43C86 19.2518 66.7482 0 43 0C19.2518 0 0 19.2518 0 43C0 66.7482 19.2518 86 43 86Z\"\n fill=\"#4285F4\"\n />\n <path\n opacity=\"0.4\"\n d=\"M13.4479 45.9299C13.4479 44.8254 14.3434 43.9299 15.4479 43.9299H29.3785C30.4831 43.9299 31.3785 44.8254 31.3785 45.9299V60.0675H13.4479V45.9299Z\"\n fill=\"#4285F4\"\n />\n <path\n opacity=\"0.4\"\n d=\"M34.0681 27.9993C34.0681 26.8948 34.9636 25.9993 36.0681 25.9993H49.9987C51.1033 25.9993 51.9987 26.8948 51.9987 27.9993V60.0675H34.0681V27.9993Z\"\n fill=\"#4285F4\"\n />\n <path\n opacity=\"0.4\"\n d=\"M54.6883 53.1022C54.6883 51.9976 55.5837 51.1022 56.6883 51.1022H70.6189C71.7235 51.1022 72.6189 51.9976 72.6189 53.1022V60.0675H54.6883V53.1022Z\"\n fill=\"#4285F4\"\n />\n <line x1=\"10.3618\" y1=\"60.464\" x2=\"75.705\" y2=\"60.464\" stroke=\"#305AA2\" strokeLinecap=\"round\" />\n <path d=\"M48.7345 25.9993H46.9414L51.9987 28.9192V27.8839L48.7345 25.9993Z\" fill=\"#4285F4\" />\n <path d=\"M41.5622 25.9993L51.9987 32.0249V30.9896L43.3553 25.9993H41.5622Z\" fill=\"#4285F4\" />\n <path d=\"M36.183 25.9993L51.9987 35.1305V34.0953L37.9761 25.9993H36.183Z\" fill=\"#4285F4\" />\n <path\n d=\"M34.0771 27.622C34.0681 27.6758 34.0681 27.7296 34.0681 27.7924V27.8839L51.9987 38.2362V37.201L34.281 26.9716C34.1776 27.171 34.097 27.3834 34.0771 27.622Z\"\n fill=\"#4285F4\"\n />\n <path d=\"M34.0681 30.9896L51.9987 41.3418V40.3066L34.0681 29.9544V30.9896Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 34.0953L51.9987 44.4475V43.4123L34.0681 33.06V34.0953Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 37.2009L51.9987 47.5531V46.518L34.0681 36.1657V37.2009Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 40.3066L51.9987 50.6588V49.6236L34.0681 39.2714V40.3066Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 43.4123L51.9987 53.7645V52.7293L34.0681 42.377V43.4123Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 46.518L51.9987 56.8702V55.835L34.0681 45.4827V46.518Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 49.6236L51.9987 59.9759V58.9407L34.0681 48.5884V49.6236Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 52.7293L46.7782 60.0675H48.5712L34.0681 51.6941V52.7293Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 55.835L41.399 60.0675H43.192L34.0681 54.7997V55.835Z\" fill=\"#4285F4\" />\n <path d=\"M34.0681 58.9406L36.0198 60.0675H37.8129L34.0681 57.9054V58.9406Z\" fill=\"#4285F4\" />\n <circle\n opacity=\"0.6\"\n cx=\"50.5506\"\n cy=\"29.9304\"\n r=\"10.1549\"\n transform=\"rotate(-45 50.5506 29.9304)\"\n fill=\"white\"\n stroke=\"#305AA2\"\n strokeWidth=\"3\"\n />\n <circle\n cx=\"50.5506\"\n cy=\"29.9304\"\n r=\"10.1549\"\n transform=\"rotate(-45 50.5506 29.9304)\"\n stroke=\"#305AA2\"\n strokeWidth=\"3\"\n />\n <path\n d=\"M59.2186 36.4771L58.1579 35.4164L56.0366 37.5377L57.0973 38.5984L59.2186 36.4771ZM65.9725 47.4736C66.5582 48.0594 67.508 48.0594 68.0938 47.4736C68.6796 46.8878 68.6796 45.938 68.0938 45.3522L65.9725 47.4736ZM57.0973 38.5984L65.9725 47.4736L68.0938 45.3522L59.2186 36.4771L57.0973 38.5984Z\"\n fill=\"#305AA2\"\n />\n </svg>\n </div>\n <div className={`${ChartEmptyState.className}__title`}>{title}</div>\n <div className={`${ChartEmptyState.className}__subtitle`}>{subtitle}</div>\n {onReset ? (\n <StyledResetButton variant=\"unstyled\" leftIcon={mdiRefresh} onClick={onReset}>\n {resetLabel}\n </StyledResetButton>\n ) : null}\n </StyledChartEmptyState>\n );\n});\n\nChartEmptyState.className = CLASSNAME;\nChartEmptyState.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","ChartEmptyState","forwardRef","props","ref","onReset","title","subtitle","resetLabel","React","createElement","StyledChartEmptyState","className","width","height","viewBox","fill","xmlns","opacity","d","x1","y1","x2","y2","stroke","strokeLinecap","cx","cy","r","transform","strokeWidth","StyledResetButton","variant","leftIcon","mdiRefresh","onClick","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import styled from 'styled-components';
|
|
2
|
+
import { Button } from '@redsift/design-system';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Component style.
|
|
6
|
+
*/
|
|
7
|
+
const StyledChartEmptyState = styled.div`
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
align-items: center;
|
|
12
|
+
margin-top: 16px;
|
|
13
|
+
|
|
14
|
+
.redsift-chart-empty-state__title {
|
|
15
|
+
font-family: var(--redsift-typography-h4-font-family);
|
|
16
|
+
font-size: var(--redsift-typography-h4-font-size);
|
|
17
|
+
font-weight: var(--redsift-typography-h4-font-weight);
|
|
18
|
+
line-height: var(--redsift-typography-h4-line-height);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.redsift-chart-empty-state__subtitle {
|
|
22
|
+
font-family: var(--redsift-typography-body-font-family);
|
|
23
|
+
font-size: var(--redsift-typography-body-font-size);
|
|
24
|
+
font-weight: var(--redsift-typography-body-font-weight);
|
|
25
|
+
line-height: var(--redsift-typography-body-line-height);
|
|
26
|
+
margin-top: 8px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
const StyledResetButton = styled(Button)`
|
|
31
|
+
margin-top: 8px;
|
|
32
|
+
`;
|
|
33
|
+
|
|
34
|
+
export { StyledChartEmptyState, StyledResetButton };
|
|
35
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../src/components/ChartEmptyState/styles.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { Button } from '@redsift/design-system';\n\n/**\n * Component style.\n */\nexport const StyledChartEmptyState = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n margin-top: 16px;\n\n .redsift-chart-empty-state__title {\n font-family: var(--redsift-typography-h4-font-family);\n font-size: var(--redsift-typography-h4-font-size);\n font-weight: var(--redsift-typography-h4-font-weight);\n line-height: var(--redsift-typography-h4-line-height);\n }\n\n .redsift-chart-empty-state__subtitle {\n font-family: var(--redsift-typography-body-font-family);\n font-size: var(--redsift-typography-body-font-size);\n font-weight: var(--redsift-typography-body-font-weight);\n line-height: var(--redsift-typography-body-line-height);\n margin-top: 8px;\n text-align: center;\n }\n`;\n\nexport const StyledResetButton = styled(Button)`\n margin-top: 8px;\n`;\n"],"names":["StyledChartEmptyState","styled","div","StyledResetButton","Button"],"mappings":";;;AAGA;AACA;AACA;AACaA,MAAAA,qBAAqB,GAAGC,MAAM,CAACC,GAAI,CAAA;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;MAEYC,iBAAiB,GAAGF,MAAM,CAACG,MAAM,CAAE,CAAA;AAChD;AACA;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ComponentProps } from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Component props.
|
|
5
|
+
*/
|
|
6
|
+
interface ChartEmptyStateProps extends ComponentProps<'div'> {
|
|
7
|
+
/** Method to call when the reset button is pressed. Also conditioned whether the button is displayed or not. */
|
|
8
|
+
onReset?: () => void;
|
|
9
|
+
/** Reset button label. */
|
|
10
|
+
resetLabel?: string;
|
|
11
|
+
/** Subtitle. */
|
|
12
|
+
subtitle?: string;
|
|
13
|
+
/** Title. */
|
|
14
|
+
title?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { ChartEmptyStateProps };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import crossfilter from 'crossfilter2';
|
|
2
|
+
|
|
3
|
+
const CrossfilterRegistry = (() => {
|
|
4
|
+
const instances = new WeakMap();
|
|
5
|
+
const get = data => {
|
|
6
|
+
let instance = instances.get(data);
|
|
7
|
+
if (!instance) {
|
|
8
|
+
instance = crossfilter(data);
|
|
9
|
+
instances.set(data, instance);
|
|
10
|
+
}
|
|
11
|
+
return instance;
|
|
12
|
+
};
|
|
13
|
+
const remove = data => {
|
|
14
|
+
instances.delete(data);
|
|
15
|
+
};
|
|
16
|
+
return {
|
|
17
|
+
get,
|
|
18
|
+
remove
|
|
19
|
+
};
|
|
20
|
+
})();
|
|
21
|
+
|
|
22
|
+
export { CrossfilterRegistry };
|
|
23
|
+
//# sourceMappingURL=CrossfilterRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrossfilterRegistry.js","sources":["../../../src/components/CrossfilterRegistry/CrossfilterRegistry.ts"],"sourcesContent":["import { JSONArray, TNdx } from '../../types';\nimport crossfilter from 'crossfilter2';\n\nexport const CrossfilterRegistry = (() => {\n const instances = new WeakMap<JSONArray, TNdx>();\n\n const get = (data: JSONArray): TNdx => {\n let instance = instances.get(data);\n\n if (!instance) {\n instance = crossfilter(data);\n instances.set(data, instance);\n }\n\n return instance;\n };\n\n const remove = (data: JSONArray): void => {\n instances.delete(data);\n };\n\n return {\n get,\n remove,\n };\n})();\n"],"names":["CrossfilterRegistry","instances","WeakMap","get","data","instance","crossfilter","set","remove","delete"],"mappings":";;AAGaA,MAAAA,mBAAmB,GAAG,CAAC,MAAM;AACxC,EAAA,MAAMC,SAAS,GAAG,IAAIC,OAAO,EAAmB,CAAA;EAEhD,MAAMC,GAAG,GAAIC,IAAe,IAAW;AACrC,IAAA,IAAIC,QAAQ,GAAGJ,SAAS,CAACE,GAAG,CAACC,IAAI,CAAC,CAAA;IAElC,IAAI,CAACC,QAAQ,EAAE;AACbA,MAAAA,QAAQ,GAAGC,WAAW,CAACF,IAAI,CAAC,CAAA;AAC5BH,MAAAA,SAAS,CAACM,GAAG,CAACH,IAAI,EAAEC,QAAQ,CAAC,CAAA;AAC/B,KAAA;AAEA,IAAA,OAAOA,QAAQ,CAAA;GAChB,CAAA;EAED,MAAMG,MAAM,GAAIJ,IAAe,IAAW;AACxCH,IAAAA,SAAS,CAACQ,MAAM,CAACL,IAAI,CAAC,CAAA;GACvB,CAAA;EAED,OAAO;IACLD,GAAG;AACHK,IAAAA,MAAAA;GACD,CAAA;AACH,CAAC;;;;"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import React, { forwardRef, useRef, useState, useReducer, useMemo } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { useGridApiRef } from '@mui/x-data-grid-pro';
|
|
5
|
+
import { DashboardContext } from './context.js';
|
|
6
|
+
import { DashboardReducer } from './reducer.js';
|
|
7
|
+
import { CrossfilterRegistry } from '../CrossfilterRegistry/CrossfilterRegistry.js';
|
|
8
|
+
|
|
9
|
+
const _excluded = ["children", "className", "data", "dataGridApiRef"];
|
|
10
|
+
const COMPONENT_NAME = 'Dashboard';
|
|
11
|
+
const CLASSNAME = 'redsift-dashboard-container';
|
|
12
|
+
const Dashboard = /*#__PURE__*/forwardRef((props, ref) => {
|
|
13
|
+
const {
|
|
14
|
+
children,
|
|
15
|
+
className,
|
|
16
|
+
data,
|
|
17
|
+
dataGridApiRef: propsDataGridApiRef
|
|
18
|
+
} = props,
|
|
19
|
+
forwardedProps = _objectWithoutProperties(props, _excluded);
|
|
20
|
+
const providerRef = ref || useRef();
|
|
21
|
+
const dataGridApiRef = propsDataGridApiRef || useGridApiRef();
|
|
22
|
+
const [updateContext, setUpdateContext] = useState(false);
|
|
23
|
+
const [state, dispatch] = useReducer(DashboardReducer, {
|
|
24
|
+
tableFilters: []
|
|
25
|
+
});
|
|
26
|
+
const value = useMemo(() => ({
|
|
27
|
+
dashboardRef: providerRef,
|
|
28
|
+
data,
|
|
29
|
+
dataGridApiRef,
|
|
30
|
+
dispatch,
|
|
31
|
+
ndx: CrossfilterRegistry.get(data),
|
|
32
|
+
state,
|
|
33
|
+
toggleUpdateContext: () => setUpdateContext(!updateContext)
|
|
34
|
+
}), [data, state, updateContext]);
|
|
35
|
+
return /*#__PURE__*/React.createElement("div", _extends({}, forwardedProps, {
|
|
36
|
+
className: classNames(Dashboard.className, className),
|
|
37
|
+
ref: providerRef
|
|
38
|
+
}), /*#__PURE__*/React.createElement(DashboardContext.Provider, {
|
|
39
|
+
value: value
|
|
40
|
+
}, children));
|
|
41
|
+
});
|
|
42
|
+
Dashboard.className = CLASSNAME;
|
|
43
|
+
Dashboard.displayName = COMPONENT_NAME;
|
|
44
|
+
|
|
45
|
+
export { Dashboard };
|
|
46
|
+
//# sourceMappingURL=Dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dashboard.js","sources":["../../../src/components/Dashboard/Dashboard.tsx"],"sourcesContent":["import React, { forwardRef, RefObject, useMemo, useReducer, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { useGridApiRef } from '@mui/x-data-grid-pro';\n\nimport { Comp } from '@redsift/design-system';\nimport { DashboardContext } from './context';\nimport { DashboardContextProps, DashboardProps } from './types';\nimport { DashboardReducer } from './reducer';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\n\nconst COMPONENT_NAME = 'Dashboard';\nconst CLASSNAME = 'redsift-dashboard-container';\n\nexport const Dashboard: Comp<DashboardProps, HTMLDivElement> = forwardRef((props, ref) => {\n const { children, className, data, dataGridApiRef: propsDataGridApiRef, ...forwardedProps } = props;\n\n const providerRef = ref || useRef<HTMLDivElement>();\n const dataGridApiRef = propsDataGridApiRef || useGridApiRef();\n const [updateContext, setUpdateContext] = useState(false);\n\n const [state, dispatch] = useReducer(DashboardReducer, {\n tableFilters: [],\n });\n\n const value = useMemo<DashboardContextProps>(\n () => ({\n dashboardRef: providerRef as RefObject<HTMLDivElement>,\n data,\n dataGridApiRef,\n dispatch,\n ndx: CrossfilterRegistry.get(data),\n state,\n toggleUpdateContext: () => setUpdateContext(!updateContext),\n }),\n [data, state, updateContext]\n );\n\n return (\n <div\n {...forwardedProps}\n className={classNames(Dashboard.className, className)}\n ref={providerRef as RefObject<HTMLDivElement>}\n >\n <DashboardContext.Provider value={value as DashboardContextProps}>{children}</DashboardContext.Provider>\n </div>\n );\n});\nDashboard.className = CLASSNAME;\nDashboard.displayName = COMPONENT_NAME;\n"],"names":["COMPONENT_NAME","CLASSNAME","Dashboard","forwardRef","props","ref","children","className","data","dataGridApiRef","propsDataGridApiRef","forwardedProps","_objectWithoutProperties","_excluded","providerRef","useRef","useGridApiRef","updateContext","setUpdateContext","useState","state","dispatch","useReducer","DashboardReducer","tableFilters","value","useMemo","dashboardRef","ndx","CrossfilterRegistry","get","toggleUpdateContext","React","createElement","_extends","classNames","DashboardContext","Provider","displayName"],"mappings":";;;;;;;;;AAUA,MAAMA,cAAc,GAAG,WAAW,CAAA;AAClC,MAAMC,SAAS,GAAG,6BAA6B,CAAA;AAExC,MAAMC,SAA+C,gBAAGC,UAAU,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACxF,MAAM;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,IAAI;AAAEC,MAAAA,cAAc,EAAEC,mBAAAA;AAAuC,KAAC,GAAGN,KAAK;AAAxBO,IAAAA,cAAc,GAAAC,wBAAA,CAAKR,KAAK,EAAAS,SAAA,CAAA,CAAA;AAEnG,EAAA,MAAMC,WAAW,GAAGT,GAAG,IAAIU,MAAM,EAAkB,CAAA;AACnD,EAAA,MAAMN,cAAc,GAAGC,mBAAmB,IAAIM,aAAa,EAAE,CAAA;EAC7D,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;EAEzD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,UAAU,CAACC,gBAAgB,EAAE;AACrDC,IAAAA,YAAY,EAAE,EAAA;AAChB,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMC,KAAK,GAAGC,OAAO,CACnB,OAAO;AACLC,IAAAA,YAAY,EAAEb,WAAwC;IACtDN,IAAI;IACJC,cAAc;IACdY,QAAQ;AACRO,IAAAA,GAAG,EAAEC,mBAAmB,CAACC,GAAG,CAACtB,IAAI,CAAC;IAClCY,KAAK;AACLW,IAAAA,mBAAmB,EAAEA,MAAMb,gBAAgB,CAAC,CAACD,aAAa,CAAA;GAC3D,CAAC,EACF,CAACT,IAAI,EAAEY,KAAK,EAAEH,aAAa,CAC7B,CAAC,CAAA;AAED,EAAA,oBACEe,KAAA,CAAAC,aAAA,CAAAC,KAAAA,EAAAA,QAAA,KACMvB,cAAc,EAAA;IAClBJ,SAAS,EAAE4B,UAAU,CAACjC,SAAS,CAACK,SAAS,EAAEA,SAAS,CAAE;AACtDF,IAAAA,GAAG,EAAES,WAAAA;AAAyC,GAAA,CAAA,eAE9CkB,KAAA,CAAAC,aAAA,CAACG,gBAAgB,CAACC,QAAQ,EAAA;AAACZ,IAAAA,KAAK,EAAEA,KAAAA;GAAiCnB,EAAAA,QAAoC,CACpG,CAAC,CAAA;AAEV,CAAC,EAAC;AACFJ,SAAS,CAACK,SAAS,GAAGN,SAAS,CAAA;AAC/BC,SAAS,CAACoC,WAAW,GAAGtC,cAAc;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DashboardReducerState, DashboardContextProps } from './types.js';
|
|
3
|
+
|
|
4
|
+
declare const initialState: DashboardReducerState;
|
|
5
|
+
declare const DashboardContext: React.Context<DashboardContextProps>;
|
|
6
|
+
|
|
7
|
+
export { DashboardContext, initialState };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/components/Dashboard/context.ts"],"sourcesContent":["import React from 'react';\nimport { DashboardContextProps, DashboardReducerState } from './types';\n\nexport const initialState: DashboardReducerState = {\n tableFilters: [],\n};\n\nexport const DashboardContext = React.createContext<DashboardContextProps>({\n state: initialState,\n} as DashboardContextProps);\n"],"names":["initialState","tableFilters","DashboardContext","React","createContext","state"],"mappings":";;AAGO,MAAMA,YAAmC,GAAG;AACjDC,EAAAA,YAAY,EAAE,EAAA;AAChB,EAAC;MAEYC,gBAAgB,gBAAGC,KAAK,CAACC,aAAa,CAAwB;AACzEC,EAAAA,KAAK,EAAEL,YAAAA;AACT,CAA0B;;;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
|
+
import { DashboardReducerActionType } from './types.js';
|
|
3
|
+
|
|
4
|
+
const areEquals = (tableFilter, actionFilter) => {
|
|
5
|
+
return tableFilter.columnField === actionFilter.columnField && tableFilter.operatorValue === actionFilter.operatorValue;
|
|
6
|
+
};
|
|
7
|
+
const addOrUpdateFilter = (oldFilters, newFilter) => {
|
|
8
|
+
if (oldFilters.find(f => areEquals(f, newFilter))) {
|
|
9
|
+
return oldFilters.map(f => {
|
|
10
|
+
if (areEquals(f, newFilter)) {
|
|
11
|
+
return newFilter;
|
|
12
|
+
}
|
|
13
|
+
return f;
|
|
14
|
+
});
|
|
15
|
+
} else {
|
|
16
|
+
return [...oldFilters, newFilter];
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const addOrUpdateFilters = (oldFilters, newFilters) => {
|
|
20
|
+
let updatedFilters = oldFilters;
|
|
21
|
+
for (let i = 0; i < newFilters.length; i++) {
|
|
22
|
+
updatedFilters = addOrUpdateFilter(updatedFilters, newFilters[i]);
|
|
23
|
+
}
|
|
24
|
+
return updatedFilters;
|
|
25
|
+
};
|
|
26
|
+
const replaceFilters = newFilters => {
|
|
27
|
+
return Array.isArray(newFilters) ? newFilters : [newFilters];
|
|
28
|
+
};
|
|
29
|
+
const removeFilter = (oldFilters, newFilter) => {
|
|
30
|
+
return oldFilters.filter(f => !areEquals(f, newFilter));
|
|
31
|
+
};
|
|
32
|
+
const removeAllFilters = () => {
|
|
33
|
+
return [];
|
|
34
|
+
};
|
|
35
|
+
const DashboardReducer = (state, action) => {
|
|
36
|
+
switch (action.type) {
|
|
37
|
+
case DashboardReducerActionType.ResetFilter:
|
|
38
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
39
|
+
tableFilters: removeFilter(state.tableFilters, action.filter)
|
|
40
|
+
});
|
|
41
|
+
case DashboardReducerActionType.ResetFilters:
|
|
42
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
43
|
+
tableFilters: removeAllFilters()
|
|
44
|
+
});
|
|
45
|
+
case DashboardReducerActionType.FilterTable:
|
|
46
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
47
|
+
tableFilters: addOrUpdateFilter(state.tableFilters, action.filter)
|
|
48
|
+
});
|
|
49
|
+
case DashboardReducerActionType.FilterTableBatch:
|
|
50
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
51
|
+
tableFilters: replaceFilters(action.filter)
|
|
52
|
+
});
|
|
53
|
+
case DashboardReducerActionType.AppendFilterTableBatch:
|
|
54
|
+
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
55
|
+
tableFilters: addOrUpdateFilters(state.tableFilters, action.filter)
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { DashboardReducer };
|
|
61
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.js","sources":["../../../src/components/Dashboard/reducer.ts"],"sourcesContent":["import { GridFilterItem } from '@redsift/table';\nimport {\n DashboardReducerState,\n DashboardReducerAction,\n DashboardReducerActionType,\n} from './types';\n\nconst areEquals = (\n tableFilter: GridFilterItem,\n actionFilter: GridFilterItem\n) => {\n return (\n tableFilter.columnField === actionFilter.columnField &&\n tableFilter.operatorValue === actionFilter.operatorValue\n );\n};\n\nconst addOrUpdateFilter = (\n oldFilters: GridFilterItem[],\n newFilter: GridFilterItem\n) => {\n if (oldFilters.find((f) => areEquals(f, newFilter))) {\n return oldFilters.map((f) => {\n if (areEquals(f, newFilter)) {\n return newFilter;\n }\n return f;\n });\n } else {\n return [...oldFilters, newFilter];\n }\n};\n\nconst addOrUpdateFilters = (\n oldFilters: GridFilterItem[],\n newFilters: GridFilterItem[]\n) => {\n let updatedFilters = oldFilters;\n for (let i = 0; i < newFilters.length; i++) {\n updatedFilters = addOrUpdateFilter(updatedFilters, newFilters[i]);\n }\n return updatedFilters;\n};\n\nconst replaceFilters = (newFilters: GridFilterItem | GridFilterItem[]) => {\n return Array.isArray(newFilters) ? newFilters : [newFilters];\n};\n\nconst removeFilter = (\n oldFilters: GridFilterItem[],\n newFilter: GridFilterItem\n) => {\n return oldFilters.filter((f) => !areEquals(f, newFilter));\n};\n\nconst removeAllFilters = () => {\n return [] as GridFilterItem[];\n};\n\nexport const DashboardReducer = (\n state: DashboardReducerState,\n action: DashboardReducerAction\n): DashboardReducerState => {\n switch (action.type) {\n case DashboardReducerActionType.ResetFilter:\n return {\n ...state,\n tableFilters: removeFilter(\n state.tableFilters,\n action.filter as GridFilterItem\n ),\n };\n case DashboardReducerActionType.ResetFilters:\n return { ...state, tableFilters: removeAllFilters() };\n case DashboardReducerActionType.FilterTable:\n return {\n ...state,\n tableFilters: addOrUpdateFilter(\n state.tableFilters,\n action.filter as GridFilterItem\n ),\n };\n\n case DashboardReducerActionType.FilterTableBatch:\n return {\n ...state,\n tableFilters: replaceFilters(action.filter!),\n };\n\n case DashboardReducerActionType.AppendFilterTableBatch:\n return {\n ...state,\n tableFilters: addOrUpdateFilters(\n state.tableFilters,\n action.filter as GridFilterItem[]\n ),\n };\n }\n};\n"],"names":["areEquals","tableFilter","actionFilter","columnField","operatorValue","addOrUpdateFilter","oldFilters","newFilter","find","f","map","addOrUpdateFilters","newFilters","updatedFilters","i","length","replaceFilters","Array","isArray","removeFilter","filter","removeAllFilters","DashboardReducer","state","action","type","DashboardReducerActionType","ResetFilter","_objectSpread","tableFilters","ResetFilters","FilterTable","FilterTableBatch","AppendFilterTableBatch"],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { RefObject, MutableRefObject, Dispatch, ComponentProps } from 'react';
|
|
2
|
+
import { GridFilterItem } from '@redsift/table';
|
|
3
|
+
import { GridApi } from '@mui/x-data-grid-pro';
|
|
4
|
+
import { JSONArray } from '../../types.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Context props.
|
|
8
|
+
*/
|
|
9
|
+
type DashboardContextProps = {
|
|
10
|
+
dashboardRef?: RefObject<HTMLDivElement>;
|
|
11
|
+
data: JSONArray;
|
|
12
|
+
dataGridApiRef?: MutableRefObject<GridApi>;
|
|
13
|
+
dispatch: Dispatch<DashboardReducerAction>;
|
|
14
|
+
state: DashboardReducerState;
|
|
15
|
+
toggleUpdateContext?: () => void;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Reducer props.
|
|
19
|
+
*/
|
|
20
|
+
type DashboardReducerState = {
|
|
21
|
+
tableFilters: GridFilterItem[];
|
|
22
|
+
};
|
|
23
|
+
declare enum DashboardReducerActionType {
|
|
24
|
+
ResetFilter = "reset-filter",
|
|
25
|
+
ResetFilters = "reset-filters",
|
|
26
|
+
FilterTable = "filter-table",
|
|
27
|
+
FilterTableBatch = "filter-table-batch",
|
|
28
|
+
AppendFilterTableBatch = "append-filter-table-batch"
|
|
29
|
+
}
|
|
30
|
+
type DashboardReducerAction = {
|
|
31
|
+
type: DashboardReducerActionType;
|
|
32
|
+
filter?: GridFilterItem | GridFilterItem[];
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Component props.
|
|
36
|
+
*/
|
|
37
|
+
interface DashboardProps extends ComponentProps<'div'> {
|
|
38
|
+
/** Dataset that will be share across every components within the dashboard. */
|
|
39
|
+
data: JSONArray;
|
|
40
|
+
/** Datagrid API Ref. */
|
|
41
|
+
dataGridApiRef?: MutableRefObject<GridApi>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { DashboardContextProps, DashboardProps, DashboardReducerAction, DashboardReducerActionType, DashboardReducerState };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context props.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Reducer props.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
let DashboardReducerActionType = /*#__PURE__*/function (DashboardReducerActionType) {
|
|
10
|
+
DashboardReducerActionType["ResetFilter"] = "reset-filter";
|
|
11
|
+
DashboardReducerActionType["ResetFilters"] = "reset-filters";
|
|
12
|
+
DashboardReducerActionType["FilterTable"] = "filter-table";
|
|
13
|
+
DashboardReducerActionType["FilterTableBatch"] = "filter-table-batch";
|
|
14
|
+
DashboardReducerActionType["AppendFilterTableBatch"] = "append-filter-table-batch";
|
|
15
|
+
return DashboardReducerActionType;
|
|
16
|
+
}({});
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Component props.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
export { DashboardReducerActionType };
|
|
23
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/Dashboard/types.ts"],"sourcesContent":["import { ComponentProps, Dispatch, MutableRefObject, RefObject } from 'react';\nimport { GridFilterItem } from '@redsift/table';\nimport { GridApi } from '@mui/x-data-grid-pro';\n\nimport { JSONArray } from '../../types';\n\n/**\n * Context props.\n */\nexport type DashboardContextProps = {\n dashboardRef?: RefObject<HTMLDivElement>;\n data: JSONArray;\n dataGridApiRef?: MutableRefObject<GridApi>;\n dispatch: Dispatch<DashboardReducerAction>;\n state: DashboardReducerState;\n toggleUpdateContext?: () => void;\n};\n\n/**\n * Reducer props.\n */\nexport type DashboardReducerState = {\n tableFilters: GridFilterItem[];\n};\n\nexport enum DashboardReducerActionType {\n ResetFilter = 'reset-filter',\n ResetFilters = 'reset-filters',\n FilterTable = 'filter-table',\n FilterTableBatch = 'filter-table-batch',\n AppendFilterTableBatch = 'append-filter-table-batch',\n}\n\nexport type DashboardReducerAction = {\n type: DashboardReducerActionType;\n filter?: GridFilterItem | GridFilterItem[];\n};\n\n/**\n * Component props.\n */\nexport interface DashboardProps extends ComponentProps<'div'> {\n /** Dataset that will be share across every components within the dashboard. */\n data: JSONArray;\n /** Datagrid API Ref. */\n dataGridApiRef?: MutableRefObject<GridApi>;\n}\n"],"names":["DashboardReducerActionType"],"mappings":"AAMA;AACA;AACA;;AAUA;AACA;AACA;;AAKYA,IAAAA,0BAA0B,0BAA1BA,0BAA0B,EAAA;EAA1BA,0BAA0B,CAAA,aAAA,CAAA,GAAA,cAAA,CAAA;EAA1BA,0BAA0B,CAAA,cAAA,CAAA,GAAA,eAAA,CAAA;EAA1BA,0BAA0B,CAAA,aAAA,CAAA,GAAA,cAAA,CAAA;EAA1BA,0BAA0B,CAAA,kBAAA,CAAA,GAAA,oBAAA,CAAA;EAA1BA,0BAA0B,CAAA,wBAAA,CAAA,GAAA,2BAAA,CAAA;AAAA,EAAA,OAA1BA,0BAA0B,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;;AAatC;AACA;AACA;;;;"}
|