@redsift/dashboard 11.6.0-muiv5-alpha.10 → 11.6.0-muiv5-alpha.11

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.
Files changed (75) hide show
  1. package/{_internal/context.js → _virtual/_internal/_rollupPluginBabelHelpers.js} +2 -11
  2. package/_virtual/_internal/_rollupPluginBabelHelpers.js.map +1 -0
  3. package/components/ChartEmptyState/_internal/ChartEmptyState.js +2 -0
  4. package/{_internal → components/ChartEmptyState/_internal}/ChartEmptyState2.js +2 -33
  5. package/components/ChartEmptyState/_internal/ChartEmptyState2.js.map +1 -0
  6. package/components/ChartEmptyState/_internal/styles.js +35 -0
  7. package/components/ChartEmptyState/_internal/styles.js.map +1 -0
  8. package/components/CrossfilterRegistry/_internal/CrossfilterRegistry.js +2 -0
  9. package/{_internal → components/CrossfilterRegistry/_internal}/CrossfilterRegistry2.js +1 -1
  10. package/components/CrossfilterRegistry/_internal/CrossfilterRegistry2.js.map +1 -0
  11. package/components/Dashboard/_internal/Dashboard.js +5 -0
  12. package/{_internal → components/Dashboard/_internal}/Dashboard.js.map +1 -1
  13. package/components/Dashboard/_internal/Dashboard2.js +46 -0
  14. package/components/Dashboard/_internal/Dashboard2.js.map +1 -0
  15. package/components/Dashboard/_internal/context.js +11 -0
  16. package/components/Dashboard/_internal/context.js.map +1 -0
  17. package/{_internal/Dashboard2.js → components/Dashboard/_internal/reducer.js} +4 -44
  18. package/components/Dashboard/_internal/reducer.js.map +1 -0
  19. package/{_internal → components/Dashboard/_internal}/types.js +1 -1
  20. package/components/Dashboard/_internal/types.js.map +1 -0
  21. package/components/PdfExportButton/_internal/PdfDocument.js +173 -0
  22. package/components/PdfExportButton/_internal/PdfDocument.js.map +1 -0
  23. package/components/PdfExportButton/_internal/PdfExportButton.js +2 -0
  24. package/components/PdfExportButton/_internal/PdfExportButton2.js +110 -0
  25. package/components/PdfExportButton/_internal/PdfExportButton2.js.map +1 -0
  26. package/components/PdfExportButton/_internal/styles.js +146 -0
  27. package/components/PdfExportButton/_internal/styles.js.map +1 -0
  28. package/components/TimeSeriesBarChart/_internal/TimeSeriesBarChart.js +3 -0
  29. package/{_internal → components/TimeSeriesBarChart/_internal}/TimeSeriesBarChart.js.map +1 -1
  30. package/{_internal → components/TimeSeriesBarChart/_internal}/TimeSeriesBarChart2.js +10 -119
  31. package/components/TimeSeriesBarChart/_internal/TimeSeriesBarChart2.js.map +1 -0
  32. package/components/TimeSeriesBarChart/_internal/styles.js +98 -0
  33. package/components/TimeSeriesBarChart/_internal/styles.js.map +1 -0
  34. package/components/TimeSeriesBarChart/_internal/types.js +22 -0
  35. package/components/TimeSeriesBarChart/_internal/types.js.map +1 -0
  36. package/components/WithFilters/_internal/FilterableBarChart.js +152 -0
  37. package/components/WithFilters/_internal/FilterableBarChart.js.map +1 -0
  38. package/components/WithFilters/_internal/FilterableDataGrid.js +51 -0
  39. package/components/WithFilters/_internal/FilterableDataGrid.js.map +1 -0
  40. package/components/WithFilters/_internal/FilterablePieChart.js +160 -0
  41. package/components/WithFilters/_internal/FilterablePieChart.js.map +1 -0
  42. package/components/WithFilters/_internal/FilterableScatterPlot.js +252 -0
  43. package/components/WithFilters/_internal/FilterableScatterPlot.js.map +1 -0
  44. package/components/WithFilters/_internal/WithFilters.js +2 -0
  45. package/components/WithFilters/_internal/WithFilters2.js +36 -0
  46. package/components/WithFilters/_internal/WithFilters2.js.map +1 -0
  47. package/hooks/_internal/useCategoricalChartAsListbox.js +94 -0
  48. package/hooks/_internal/useCategoricalChartAsListbox.js.map +1 -0
  49. package/index.js +11 -15
  50. package/index.js.map +1 -1
  51. package/package.json +2 -2
  52. package/utils/groupReducers/_internal/groupReduceCount.js +5 -0
  53. package/utils/groupReducers/_internal/groupReduceCount.js.map +1 -0
  54. package/utils/groupReducers/_internal/groupReduceSum.js +5 -0
  55. package/utils/groupReducers/_internal/groupReduceSum.js.map +1 -0
  56. package/_internal/ChartEmptyState.js +0 -2
  57. package/_internal/ChartEmptyState2.js.map +0 -1
  58. package/_internal/CrossfilterRegistry.js +0 -2
  59. package/_internal/CrossfilterRegistry2.js.map +0 -1
  60. package/_internal/Dashboard.js +0 -4
  61. package/_internal/Dashboard2.js.map +0 -1
  62. package/_internal/PdfExportButton.js +0 -2
  63. package/_internal/PdfExportButton2.js +0 -417
  64. package/_internal/PdfExportButton2.js.map +0 -1
  65. package/_internal/TimeSeriesBarChart.js +0 -2
  66. package/_internal/TimeSeriesBarChart2.js.map +0 -1
  67. package/_internal/WithFilters.js +0 -2
  68. package/_internal/WithFilters2.js +0 -701
  69. package/_internal/WithFilters2.js.map +0 -1
  70. package/_internal/context.js.map +0 -1
  71. package/_internal/types.js.map +0 -1
  72. /package/{_internal → components/ChartEmptyState/_internal}/ChartEmptyState.js.map +0 -0
  73. /package/{_internal → components/CrossfilterRegistry/_internal}/CrossfilterRegistry.js.map +0 -0
  74. /package/{_internal → components/PdfExportButton/_internal}/PdfExportButton.js.map +0 -0
  75. /package/{_internal → components/WithFilters/_internal}/WithFilters.js.map +0 -0
@@ -0,0 +1,252 @@
1
+ import { objectSpread2 as _objectSpread2 } from '../../../_virtual/_internal/_rollupPluginBabelHelpers.js';
2
+ import React, { useContext, useState, useEffect, isValidElement } from 'react';
3
+ import { useId } from '@redsift/design-system';
4
+ import { DashboardContext } from '../../Dashboard/_internal/context.js';
5
+ import { CrossfilterRegistry } from '../../CrossfilterRegistry/_internal/CrossfilterRegistry2.js';
6
+ import { DashboardReducerActionType } from '../../Dashboard/_internal/types.js';
7
+ import { ChartEmptyState } from '../../ChartEmptyState/_internal/ChartEmptyState2.js';
8
+
9
+ const filter = (legendFilters, brushFilters) => d => {
10
+ if (legendFilters && legendFilters.length && brushFilters) {
11
+ return d[0] >= brushFilters.minX && d[0] <= brushFilters.maxX && d[1] >= brushFilters.minY && d[1] <= brushFilters.maxY && legendFilters.includes(d[2]);
12
+ } else if (legendFilters && legendFilters.length) {
13
+ return legendFilters.includes(d[2]);
14
+ } else if (brushFilters) {
15
+ return d[0] >= brushFilters.minX && d[0] <= brushFilters.maxX && d[1] >= brushFilters.minY && d[1] <= brushFilters.maxY;
16
+ } else {
17
+ return true;
18
+ }
19
+ };
20
+ const isFiltered = (legendFilters, brushFilters) => datum => {
21
+ if (legendFilters && legendFilters.length && brushFilters) {
22
+ return datum.data.key[0] >= brushFilters.minX && datum.data.key[0] <= brushFilters.maxX && datum.data.key[1] >= brushFilters.minY && datum.data.key[1] <= brushFilters.maxY && legendFilters.includes(datum.data.key[2]);
23
+ } else if (legendFilters && legendFilters.length) {
24
+ return legendFilters.includes(datum.data.key[2]);
25
+ } else if (brushFilters) {
26
+ return datum.data.key[0] >= brushFilters.minX && datum.data.key[0] <= brushFilters.maxX && datum.data.key[1] >= brushFilters.minY && datum.data.key[1] <= brushFilters.maxY;
27
+ } else {
28
+ return true;
29
+ }
30
+ };
31
+ const FilterableScatterPlot = props => {
32
+ const {
33
+ children,
34
+ datagridCoordinatesCategoryDimFilter,
35
+ dimension,
36
+ group,
37
+ id: propsId,
38
+ isDimensionArray,
39
+ isResetable,
40
+ localeText,
41
+ onFilter
42
+ } = props;
43
+ const [_id] = useId();
44
+ const id = propsId !== null && propsId !== void 0 ? propsId : _id;
45
+ const {
46
+ emptyChartTitle,
47
+ emptyChartSubtitle,
48
+ emptyChartResetLabel
49
+ } = _objectSpread2({}, localeText);
50
+ const {
51
+ data,
52
+ dispatch,
53
+ toggleUpdateContext
54
+ // state: { tableFilters },
55
+ } = useContext(DashboardContext);
56
+ const [ndxDimension, setNdxDimension] = useState();
57
+ const [ndxGroup, setNdxGroup] = useState();
58
+ useEffect(() => {
59
+ const computedNdxDimension = CrossfilterRegistry.get(data).dimension(dimension, isDimensionArray);
60
+ const computedNdxGroup = group ? group(computedNdxDimension) : computedNdxDimension.group();
61
+ setNdxDimension(computedNdxDimension);
62
+ setNdxGroup(computedNdxGroup);
63
+ return function cleanup() {
64
+ computedNdxDimension.filterAll();
65
+ };
66
+ }, [dimension, data, group]);
67
+ const [brushFilters, setBrushFilters] = useState();
68
+ const [legendFilters, setLegendFilters] = useState([]);
69
+ const handleBrushFilter = newFilters => {
70
+ setBrushFilters(newFilters);
71
+ ndxDimension.filter(d => filter(legendFilters, newFilters)(d));
72
+ toggleUpdateContext === null || toggleUpdateContext === void 0 ? void 0 : toggleUpdateContext();
73
+ if (datagridCoordinatesCategoryDimFilter) {
74
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
75
+ type: DashboardReducerActionType.FilterTable,
76
+ filter: {
77
+ id: `${id}-x`,
78
+ columnField: datagridCoordinatesCategoryDimFilter[0].field,
79
+ operatorValue: datagridCoordinatesCategoryDimFilter[0].operator,
80
+ value: [newFilters.minX, newFilters.maxX]
81
+ }
82
+ });
83
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
84
+ type: DashboardReducerActionType.FilterTable,
85
+ filter: {
86
+ id: `${id}-y`,
87
+ columnField: datagridCoordinatesCategoryDimFilter[1].field,
88
+ operatorValue: datagridCoordinatesCategoryDimFilter[1].operator,
89
+ value: [newFilters.minY, newFilters.maxY]
90
+ }
91
+ });
92
+ }
93
+ if (onFilter) {
94
+ onFilter(newFilters);
95
+ }
96
+ };
97
+ const handleLegendFilter = category => {
98
+ let newFilters;
99
+ if (legendFilters.includes(category)) {
100
+ newFilters = legendFilters.filter(f => f !== category);
101
+ } else {
102
+ newFilters = [...legendFilters, category];
103
+ }
104
+ setLegendFilters(newFilters);
105
+ ndxDimension.filter(d => filter(newFilters, brushFilters)(d));
106
+ toggleUpdateContext === null || toggleUpdateContext === void 0 ? void 0 : toggleUpdateContext();
107
+ if ((datagridCoordinatesCategoryDimFilter === null || datagridCoordinatesCategoryDimFilter === void 0 ? void 0 : datagridCoordinatesCategoryDimFilter.length) === 3) {
108
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
109
+ type: DashboardReducerActionType.FilterTable,
110
+ filter: {
111
+ id: `${id}-category`,
112
+ columnField: datagridCoordinatesCategoryDimFilter[2].field,
113
+ operatorValue: datagridCoordinatesCategoryDimFilter[2].operator,
114
+ value: newFilters
115
+ }
116
+ });
117
+ }
118
+ if (onFilter) {
119
+ onFilter(newFilters);
120
+ }
121
+ };
122
+ const resetFilters = function () {
123
+ let brush = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
124
+ let legend = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
125
+ if (brush) {
126
+ setBrushFilters(undefined);
127
+ }
128
+ if (legend) {
129
+ setLegendFilters([]);
130
+ }
131
+ ndxDimension.filter(d => filter(legend ? [] : legendFilters, brush ? undefined : brushFilters)(d));
132
+ toggleUpdateContext === null || toggleUpdateContext === void 0 ? void 0 : toggleUpdateContext();
133
+ if (datagridCoordinatesCategoryDimFilter) {
134
+ if (brush) {
135
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
136
+ type: DashboardReducerActionType.ResetFilter,
137
+ filter: {
138
+ id: `${id}-x`,
139
+ columnField: datagridCoordinatesCategoryDimFilter[0].field,
140
+ operatorValue: datagridCoordinatesCategoryDimFilter[0].operator
141
+ }
142
+ });
143
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
144
+ type: DashboardReducerActionType.ResetFilter,
145
+ filter: {
146
+ id: `${id}-y`,
147
+ columnField: datagridCoordinatesCategoryDimFilter[1].field,
148
+ operatorValue: datagridCoordinatesCategoryDimFilter[1].operator
149
+ }
150
+ });
151
+ }
152
+ if (legend && datagridCoordinatesCategoryDimFilter.length === 3) {
153
+ dispatch === null || dispatch === void 0 ? void 0 : dispatch({
154
+ type: DashboardReducerActionType.ResetFilter,
155
+ filter: {
156
+ id: `${id}-category`,
157
+ columnField: datagridCoordinatesCategoryDimFilter[2].field,
158
+ operatorValue: datagridCoordinatesCategoryDimFilter[2].operator
159
+ }
160
+ });
161
+ }
162
+ }
163
+ if (onFilter) {
164
+ onFilter();
165
+ }
166
+ };
167
+
168
+ // useEffect(() => {
169
+ // if (!datagridCoordinatesCategoryDimFilter) {
170
+ // return;
171
+ // }
172
+
173
+ // const updatedXFilters = tableFilters.find(
174
+ // (filter) =>
175
+ // filter.columnField === datagridCoordinatesCategoryDimFilter[0].field &&
176
+ // filter.operatorValue ===
177
+ // datagridCoordinatesCategoryDimFilter[0].operator
178
+ // )?.value;
179
+ // const updatedYFilters = tableFilters.find(
180
+ // (filter) =>
181
+ // filter.columnField === datagridCoordinatesCategoryDimFilter[1].field &&
182
+ // filter.operatorValue ===
183
+ // datagridCoordinatesCategoryDimFilter[1].operator
184
+ // )?.value;
185
+ // console.log(updatedXFilters, updatedYFilters, brushFilters);
186
+ // const updatedFilters = {
187
+ // minX: Number(updatedXFilters[0]),
188
+ // maxX: Number(updatedXFilters[0]),
189
+ // minY: Number(updatedYFilters[1]),
190
+ // maxY: Number(updatedYFilters[1]),
191
+ // }
192
+ // if (updatedFilters && JSON.stringify(updatedFilters) !== JSON.stringify(brushFilters)) {
193
+ // }
194
+ // }, [tableFilters]);
195
+
196
+ const emptyComponent = /*#__PURE__*/React.createElement(ChartEmptyState, {
197
+ title: emptyChartTitle,
198
+ subtitle: emptyChartSubtitle,
199
+ resetLabel: emptyChartResetLabel,
200
+ onReset: resetFilters
201
+ });
202
+ const legendProps = {
203
+ onLegendItemClick: datum => {
204
+ handleLegendFilter(datum.data.key);
205
+ },
206
+ isLegendItemSelected: datum => {
207
+ return legendFilters.length === 0 || legendFilters.includes(datum.data.key);
208
+ },
209
+ legendItemRole: 'option',
210
+ role: 'group'
211
+ };
212
+ const filterProps = {
213
+ isBrushable: true,
214
+ data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,
215
+ dotRole: 'option',
216
+ role: 'listbox',
217
+ emptyComponent,
218
+ id,
219
+ legendProps,
220
+ onBrush: (selection, scaleX, scaleY) => {
221
+ if (selection) {
222
+ setBrushFilters({
223
+ minX: scaleX.invert(selection[0][0]),
224
+ minY: scaleY.invert(selection[1][1]),
225
+ maxX: scaleX.invert(selection[1][0]),
226
+ maxY: scaleY.invert(selection[0][1])
227
+ });
228
+ }
229
+ },
230
+ onBrushEnd: (selection, scaleX, scaleY) => {
231
+ if (selection && scaleX && scaleY) {
232
+ handleBrushFilter({
233
+ minX: scaleX.invert(selection[0][0]),
234
+ minY: scaleY.invert(selection[1][1]),
235
+ maxX: scaleX.invert(selection[1][0]),
236
+ maxY: scaleY.invert(selection[0][1])
237
+ });
238
+ } else {
239
+ resetFilters(true, false);
240
+ }
241
+ },
242
+ onReset: isResetable ? resetFilters : undefined,
243
+ isDotSelected: datum => isFiltered(legendFilters, brushFilters)(datum)
244
+ };
245
+ if ( /*#__PURE__*/isValidElement(children)) {
246
+ return /*#__PURE__*/React.cloneElement(children, _objectSpread2({}, filterProps));
247
+ }
248
+ return null;
249
+ };
250
+
251
+ export { FilterableScatterPlot };
252
+ //# sourceMappingURL=FilterableScatterPlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterableScatterPlot.js","sources":["../../../../src/components/WithFilters/FilterableScatterPlot.tsx"],"sourcesContent":["import { DotDatum, LegendItemDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, { useEffect, useContext, useState, isValidElement } from 'react';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { ScaleLinear as d3ScaleLinear } from 'd3';\nimport { ChartsWithFiltersProps } from './types';\nimport { useId } from '@redsift/design-system';\n\ntype BrushFilter = {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n};\n\nconst filter = (legendFilters?: string[], brushFilters?: BrushFilter) => (d: [number, number, string]) => {\n if (legendFilters && legendFilters.length && brushFilters) {\n return (\n d[0] >= brushFilters.minX &&\n d[0] <= brushFilters.maxX &&\n d[1] >= brushFilters.minY &&\n d[1] <= brushFilters.maxY &&\n legendFilters.includes(d[2])\n );\n } else if (legendFilters && legendFilters.length) {\n return legendFilters.includes(d[2]);\n } else if (brushFilters) {\n return (\n d[0] >= brushFilters.minX && d[0] <= brushFilters.maxX && d[1] >= brushFilters.minY && d[1] <= brushFilters.maxY\n );\n } else {\n return true;\n }\n};\n\nconst isFiltered = (legendFilters?: string[], brushFilters?: BrushFilter) => (datum: DotDatum) => {\n if (legendFilters && legendFilters.length && brushFilters) {\n return (\n (datum.data.key[0] as number) >= brushFilters.minX &&\n (datum.data.key[0] as number) <= brushFilters.maxX &&\n (datum.data.key[1] as number) >= brushFilters.minY &&\n (datum.data.key[1] as number) <= brushFilters.maxY &&\n legendFilters.includes(datum.data.key[2] as string)\n );\n } else if (legendFilters && legendFilters.length) {\n return legendFilters.includes(datum.data.key[2] as string);\n } else if (brushFilters) {\n return (\n (datum.data.key[0] as number) >= brushFilters.minX &&\n (datum.data.key[0] as number) <= brushFilters.maxX &&\n (datum.data.key[1] as number) >= brushFilters.minY &&\n (datum.data.key[1] as number) <= brushFilters.maxY\n );\n } else {\n return true;\n }\n};\n\nexport const FilterableScatterPlot: React.FC<ChartsWithFiltersProps> = (props) => {\n const {\n children,\n datagridCoordinatesCategoryDimFilter,\n dimension,\n group,\n id: propsId,\n isDimensionArray,\n isResetable,\n localeText,\n onFilter,\n } = props;\n const [_id] = useId();\n const id = propsId ?? _id;\n\n const { emptyChartTitle, emptyChartSubtitle, emptyChartResetLabel } = {\n ...localeText,\n };\n\n const {\n data,\n dispatch,\n toggleUpdateContext,\n // state: { tableFilters },\n } = useContext(DashboardContext);\n\n const [ndxDimension, setNdxDimension] = useState<Dimension>();\n const [ndxGroup, setNdxGroup] = useState<Group>();\n\n useEffect(() => {\n const computedNdxDimension = CrossfilterRegistry.get(data).dimension(dimension, isDimensionArray);\n const computedNdxGroup = group ? group(computedNdxDimension) : computedNdxDimension.group();\n setNdxDimension(computedNdxDimension);\n setNdxGroup(computedNdxGroup);\n return function cleanup() {\n computedNdxDimension.filterAll();\n };\n }, [dimension, data, group]);\n\n const [brushFilters, setBrushFilters] = useState<BrushFilter>();\n const [legendFilters, setLegendFilters] = useState<string[]>([]);\n\n const handleBrushFilter = (newFilters: BrushFilter) => {\n setBrushFilters(newFilters);\n ndxDimension!.filter((d) => filter(legendFilters, newFilters)(d as unknown as [number, number, string]));\n toggleUpdateContext?.();\n\n if (datagridCoordinatesCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: `${id}-x`,\n columnField: datagridCoordinatesCategoryDimFilter[0].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[0].operator,\n value: [newFilters.minX, newFilters.maxX],\n },\n });\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: `${id}-y`,\n columnField: datagridCoordinatesCategoryDimFilter[1].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[1].operator,\n value: [newFilters.minY, newFilters.maxY],\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const handleLegendFilter = (category: string) => {\n let newFilters: string[];\n if (legendFilters.includes(category)) {\n newFilters = legendFilters.filter((f) => f !== category);\n } else {\n newFilters = [...legendFilters, category];\n }\n\n setLegendFilters(newFilters);\n ndxDimension!.filter((d) => filter(newFilters, brushFilters)(d as unknown as [number, number, string]));\n toggleUpdateContext?.();\n\n if (datagridCoordinatesCategoryDimFilter?.length === 3) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: `${id}-category`,\n columnField: datagridCoordinatesCategoryDimFilter[2].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[2].operator,\n value: newFilters,\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const resetFilters = (brush = true, legend = true) => {\n if (brush) {\n setBrushFilters(undefined);\n }\n if (legend) {\n setLegendFilters([]);\n }\n ndxDimension!.filter((d) =>\n filter(legend ? [] : legendFilters, brush ? undefined : brushFilters)(d as unknown as [number, number, string])\n );\n toggleUpdateContext?.();\n\n if (datagridCoordinatesCategoryDimFilter) {\n if (brush) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${id}-x`,\n columnField: datagridCoordinatesCategoryDimFilter[0].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[0].operator,\n },\n });\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${id}-y`,\n columnField: datagridCoordinatesCategoryDimFilter[1].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[1].operator,\n },\n });\n }\n if (legend && datagridCoordinatesCategoryDimFilter.length === 3) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${id}-category`,\n columnField: datagridCoordinatesCategoryDimFilter[2].field,\n operatorValue: datagridCoordinatesCategoryDimFilter[2].operator,\n },\n });\n }\n }\n\n if (onFilter) {\n onFilter();\n }\n };\n\n // useEffect(() => {\n // if (!datagridCoordinatesCategoryDimFilter) {\n // return;\n // }\n\n // const updatedXFilters = tableFilters.find(\n // (filter) =>\n // filter.columnField === datagridCoordinatesCategoryDimFilter[0].field &&\n // filter.operatorValue ===\n // datagridCoordinatesCategoryDimFilter[0].operator\n // )?.value;\n // const updatedYFilters = tableFilters.find(\n // (filter) =>\n // filter.columnField === datagridCoordinatesCategoryDimFilter[1].field &&\n // filter.operatorValue ===\n // datagridCoordinatesCategoryDimFilter[1].operator\n // )?.value;\n // console.log(updatedXFilters, updatedYFilters, brushFilters);\n // const updatedFilters = {\n // minX: Number(updatedXFilters[0]),\n // maxX: Number(updatedXFilters[0]),\n // minY: Number(updatedYFilters[1]),\n // maxY: Number(updatedYFilters[1]),\n // }\n // if (updatedFilters && JSON.stringify(updatedFilters) !== JSON.stringify(brushFilters)) {\n // }\n // }, [tableFilters]);\n\n const emptyComponent = (\n <ChartEmptyState\n title={emptyChartTitle!}\n subtitle={emptyChartSubtitle}\n resetLabel={emptyChartResetLabel}\n onReset={resetFilters}\n />\n );\n\n const legendProps = {\n onLegendItemClick: (datum: LegendItemDatum) => {\n handleLegendFilter(datum.data.key);\n },\n isLegendItemSelected: (datum: LegendItemDatum) => {\n return legendFilters.length === 0 || legendFilters.includes(datum.data.key);\n },\n legendItemRole: 'option',\n role: 'group',\n };\n\n const filterProps = {\n isBrushable: true,\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n dotRole: 'option',\n role: 'listbox',\n emptyComponent,\n id,\n legendProps,\n onBrush: (\n selection: [[number, number], [number, number]],\n scaleX: d3ScaleLinear<number, number>,\n scaleY: d3ScaleLinear<number, number>\n ) => {\n if (selection) {\n setBrushFilters({\n minX: scaleX.invert(selection[0][0]),\n minY: scaleY.invert(selection[1][1]),\n maxX: scaleX.invert(selection[1][0]),\n maxY: scaleY.invert(selection[0][1]),\n });\n }\n },\n onBrushEnd: (\n selection: [[number, number], [number, number]],\n scaleX?: d3ScaleLinear<number, number>,\n scaleY?: d3ScaleLinear<number, number>\n ) => {\n if (selection && scaleX && scaleY) {\n handleBrushFilter({\n minX: scaleX.invert(selection[0][0]),\n minY: scaleY.invert(selection[1][1]),\n maxX: scaleX.invert(selection[1][0]),\n maxY: scaleY.invert(selection[0][1]),\n });\n } else {\n resetFilters(true, false);\n }\n },\n onReset: isResetable ? resetFilters : undefined,\n isDotSelected: (datum: DotDatum) => isFiltered(legendFilters, brushFilters)(datum),\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n"],"names":["filter","legendFilters","brushFilters","d","length","minX","maxX","minY","maxY","includes","isFiltered","datum","data","key","FilterableScatterPlot","props","children","datagridCoordinatesCategoryDimFilter","dimension","group","id","propsId","isDimensionArray","isResetable","localeText","onFilter","_id","useId","emptyChartTitle","emptyChartSubtitle","emptyChartResetLabel","_objectSpread","dispatch","toggleUpdateContext","useContext","DashboardContext","ndxDimension","setNdxDimension","useState","ndxGroup","setNdxGroup","useEffect","computedNdxDimension","CrossfilterRegistry","get","computedNdxGroup","cleanup","filterAll","setBrushFilters","setLegendFilters","handleBrushFilter","newFilters","type","DashboardReducerActionType","FilterTable","columnField","field","operatorValue","operator","value","handleLegendFilter","category","f","resetFilters","brush","arguments","undefined","legend","ResetFilter","emptyComponent","React","createElement","ChartEmptyState","title","subtitle","resetLabel","onReset","legendProps","onLegendItemClick","isLegendItemSelected","legendItemRole","role","filterProps","isBrushable","JSON","parse","stringify","all","dotRole","onBrush","selection","scaleX","scaleY","invert","onBrushEnd","isDotSelected","isValidElement","cloneElement"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { WithFilters } from './WithFilters2.js';
2
+ //# sourceMappingURL=WithFilters.js.map
@@ -0,0 +1,36 @@
1
+ import { extends as _extends } from '../../../_virtual/_internal/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import { isComponent } from '@redsift/design-system';
4
+ import { FilterableBarChart } from './FilterableBarChart.js';
5
+ import { FilterableDataGrid } from './FilterableDataGrid.js';
6
+ import { FilterablePieChart } from './FilterablePieChart.js';
7
+ import { FilterableScatterPlot } from './FilterableScatterPlot.js';
8
+
9
+ const WithFilters = props => {
10
+ if (isComponent('DataGrid')(props.children)) {
11
+ return /*#__PURE__*/React.createElement(FilterableDataGrid, props);
12
+ }
13
+ const {
14
+ dimension
15
+ } = props;
16
+ if (!dimension) {
17
+ return null;
18
+ }
19
+ if (isComponent('BarChart')(props.children)) {
20
+ return /*#__PURE__*/React.createElement(FilterableBarChart, _extends({}, props, {
21
+ dimension: dimension
22
+ }));
23
+ } else if (isComponent('PieChart')(props.children)) {
24
+ return /*#__PURE__*/React.createElement(FilterablePieChart, _extends({}, props, {
25
+ dimension: dimension
26
+ }));
27
+ } else if (isComponent('ScatterPlot')(props.children)) {
28
+ return /*#__PURE__*/React.createElement(FilterableScatterPlot, _extends({}, props, {
29
+ dimension: dimension
30
+ }));
31
+ }
32
+ return /*#__PURE__*/React.isValidElement(props.children) ? props.children : null;
33
+ };
34
+
35
+ export { WithFilters };
36
+ //# sourceMappingURL=WithFilters2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WithFilters2.js","sources":["../../../../src/components/WithFilters/WithFilters.tsx"],"sourcesContent":["import React from 'react';\nimport { isComponent } from '@redsift/design-system';\nimport { FilterableBarChart } from './FilterableBarChart';\nimport { FilterableDataGrid } from './FilterableDataGrid';\nimport { FilterablePieChart } from './FilterablePieChart';\nimport { FilterableScatterPlot } from './FilterableScatterPlot';\nimport { WithFiltersProps } from './types';\n\nexport const WithFilters: React.FC<WithFiltersProps> = (props) => {\n if (isComponent('DataGrid')(props.children)) {\n return <FilterableDataGrid {...props} />;\n }\n\n const { dimension } = props;\n\n if (!dimension) {\n return null;\n }\n\n if (isComponent('BarChart')(props.children)) {\n return <FilterableBarChart {...props} dimension={dimension} />;\n } else if (isComponent('PieChart')(props.children)) {\n return <FilterablePieChart {...props} dimension={dimension} />;\n } else if (isComponent('ScatterPlot')(props.children)) {\n return <FilterableScatterPlot {...props} dimension={dimension} />;\n }\n\n return React.isValidElement(props.children) ? props.children : null;\n};\n"],"names":["WithFilters","props","isComponent","children","React","createElement","FilterableDataGrid","dimension","FilterableBarChart","_extends","FilterablePieChart","FilterableScatterPlot","isValidElement"],"mappings":";;;;;;;;AAQaA,MAAAA,WAAuC,GAAIC,KAAK,IAAK;EAChE,IAAIC,WAAW,CAAC,UAAU,CAAC,CAACD,KAAK,CAACE,QAAQ,CAAC,EAAE;AAC3C,IAAA,oBAAOC,KAAA,CAAAC,aAAA,CAACC,kBAAkB,EAAKL,KAAQ,CAAC,CAAA;AAC1C,GAAA;EAEA,MAAM;AAAEM,IAAAA,SAAAA;AAAU,GAAC,GAAGN,KAAK,CAAA;EAE3B,IAAI,CAACM,SAAS,EAAE;AACd,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,IAAIL,WAAW,CAAC,UAAU,CAAC,CAACD,KAAK,CAACE,QAAQ,CAAC,EAAE;IAC3C,oBAAOC,KAAA,CAAAC,aAAA,CAACG,kBAAkB,EAAAC,QAAA,KAAKR,KAAK,EAAA;AAAEM,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,CAAE,CAAC,CAAA;GAC/D,MAAM,IAAIL,WAAW,CAAC,UAAU,CAAC,CAACD,KAAK,CAACE,QAAQ,CAAC,EAAE;IAClD,oBAAOC,KAAA,CAAAC,aAAA,CAACK,kBAAkB,EAAAD,QAAA,KAAKR,KAAK,EAAA;AAAEM,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,CAAE,CAAC,CAAA;GAC/D,MAAM,IAAIL,WAAW,CAAC,aAAa,CAAC,CAACD,KAAK,CAACE,QAAQ,CAAC,EAAE;IACrD,oBAAOC,KAAA,CAAAC,aAAA,CAACM,qBAAqB,EAAAF,QAAA,KAAKR,KAAK,EAAA;AAAEM,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAA,CAAE,CAAC,CAAA;AACnE,GAAA;AAEA,EAAA,oBAAOH,KAAK,CAACQ,cAAc,CAACX,KAAK,CAACE,QAAQ,CAAC,GAAGF,KAAK,CAACE,QAAQ,GAAG,IAAI,CAAA;AACrE;;;;"}
@@ -0,0 +1,94 @@
1
+ import { useRef, useMemo } from 'react';
2
+
3
+ /**
4
+ * Hook to give to a chart the roles, events and attributes of a listbox.
5
+ */
6
+ const useCategoricalChartAsListbox = _ref => {
7
+ let {
8
+ id,
9
+ ref,
10
+ type,
11
+ ndxGroup,
12
+ orientation = 'horizontal'
13
+ } = _ref;
14
+ const currentIndexRef = useRef(0);
15
+ const props = useMemo(() => {
16
+ const numberOfGroups = ndxGroup === null || ndxGroup === void 0 ? void 0 : ndxGroup.all().filter(datum => datum.value).length;
17
+ if (ref && numberOfGroups) {
18
+ const getCurrentOption = () => ref.current.querySelector(`._${currentIndexRef.current}`);
19
+ const next = () => {
20
+ getCurrentOption().classList.remove('focused');
21
+ const index = currentIndexRef.current === numberOfGroups - 1 ? 0 : currentIndexRef.current + 1;
22
+ currentIndexRef.current = index;
23
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-${currentIndexRef.current}`);
24
+ getCurrentOption().classList.add('focused');
25
+ };
26
+ const previous = () => {
27
+ getCurrentOption().classList.remove('focused');
28
+ const index = currentIndexRef.current === 0 ? numberOfGroups - 1 : currentIndexRef.current - 1;
29
+ currentIndexRef.current = index;
30
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-${currentIndexRef.current}`);
31
+ getCurrentOption().classList.add('focused');
32
+ };
33
+ const focus = () => {
34
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-0`);
35
+ getCurrentOption().classList.add('focused');
36
+ };
37
+ const blur = () => {
38
+ getCurrentOption().classList.remove('focused');
39
+ currentIndexRef.current = 0;
40
+ ref.current.setAttribute('aria-activedescendant', '');
41
+ };
42
+ const keydown = e => {
43
+ e.stopPropagation();
44
+ switch (e.code) {
45
+ case 'ArrowRight':
46
+ if (orientation === 'horizontal') {
47
+ e.preventDefault();
48
+ next();
49
+ }
50
+ break;
51
+ case 'ArrowLeft':
52
+ if (orientation === 'horizontal') {
53
+ e.preventDefault();
54
+ previous();
55
+ }
56
+ break;
57
+ case 'ArrowDown':
58
+ if (orientation === 'vertical') {
59
+ e.preventDefault();
60
+ next();
61
+ }
62
+ break;
63
+ case 'ArrowUp':
64
+ if (orientation === 'vertical') {
65
+ e.preventDefault();
66
+ previous();
67
+ }
68
+ break;
69
+ case 'Enter':
70
+ case 'Space':
71
+ e.preventDefault();
72
+ getCurrentOption().dispatchEvent(new Event('click'));
73
+ break;
74
+ }
75
+ };
76
+ return {
77
+ 'aria-activedescendant': '',
78
+ 'aria-multiselectable': 'true',
79
+ 'aria-orientation': orientation,
80
+ role: 'listbox',
81
+ tabIndex: 0,
82
+ onFocus: focus,
83
+ onBlur: blur,
84
+ onMouseDown: event => event.preventDefault(),
85
+ onMouseLeave: blur,
86
+ onKeyDown: keydown
87
+ };
88
+ }
89
+ }, [ref, ref.current, ndxGroup, JSON.parse(JSON.stringify((ndxGroup === null || ndxGroup === void 0 ? void 0 : ndxGroup.all()) || ''))]);
90
+ return props;
91
+ };
92
+
93
+ export { useCategoricalChartAsListbox };
94
+ //# sourceMappingURL=useCategoricalChartAsListbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCategoricalChartAsListbox.js","sources":["../../../src/hooks/useCategoricalChartAsListbox.ts"],"sourcesContent":["import { BaseMixin } from 'dc';\nimport { useRef, KeyboardEvent, useMemo, MutableRefObject } from 'react';\nimport { Group } from '../types';\n\ntype UseCategoricalChartAsListboxProps = <T extends BaseMixin<T>>(props: {\n id: string;\n ref: MutableRefObject<HTMLDivElement>;\n type: 'bar' | 'slice';\n ndxGroup?: Group;\n orientation?: 'horizontal' | 'vertical';\n}) => void;\n\n/**\n * Hook to give to a chart the roles, events and attributes of a listbox.\n */\nexport const useCategoricalChartAsListbox: UseCategoricalChartAsListboxProps =\n ({ id, ref, type, ndxGroup, orientation = 'horizontal' }) => {\n const currentIndexRef = useRef(0);\n\n const props = useMemo(() => {\n const numberOfGroups = ndxGroup\n ?.all()\n .filter((datum) => datum.value).length;\n if (ref && numberOfGroups) {\n const getCurrentOption = () =>\n ref.current.querySelector(\n `._${currentIndexRef.current}`\n ) as HTMLElement;\n\n const next = () => {\n getCurrentOption().classList.remove('focused');\n const index =\n currentIndexRef.current === numberOfGroups - 1\n ? 0\n : currentIndexRef.current + 1;\n currentIndexRef.current = index;\n ref.current.setAttribute(\n 'aria-activedescendant',\n `id${id}__${type}-${currentIndexRef.current}`\n );\n getCurrentOption().classList.add('focused');\n };\n\n const previous = () => {\n getCurrentOption().classList.remove('focused');\n const index =\n currentIndexRef.current === 0\n ? numberOfGroups - 1\n : currentIndexRef.current - 1;\n currentIndexRef.current = index;\n ref.current.setAttribute(\n 'aria-activedescendant',\n `id${id}__${type}-${currentIndexRef.current}`\n );\n getCurrentOption().classList.add('focused');\n };\n\n const focus = () => {\n ref.current.setAttribute(\n 'aria-activedescendant',\n `id${id}__${type}-0`\n );\n getCurrentOption().classList.add('focused');\n };\n\n const blur = () => {\n getCurrentOption().classList.remove('focused');\n currentIndexRef.current = 0;\n ref.current.setAttribute('aria-activedescendant', '');\n };\n\n const keydown = (e: Event) => {\n e.stopPropagation();\n\n switch ((e as unknown as KeyboardEvent).code) {\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n next();\n }\n break;\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n previous();\n }\n break;\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n next();\n }\n break;\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n previous();\n }\n break;\n case 'Enter':\n case 'Space':\n e.preventDefault();\n getCurrentOption().dispatchEvent(new Event('click'));\n break;\n default:\n break;\n }\n };\n\n return {\n 'aria-activedescendant': '',\n 'aria-multiselectable': 'true',\n 'aria-orientation': orientation,\n role: 'listbox',\n tabIndex: 0,\n onFocus: focus,\n onBlur: blur,\n onMouseDown: (event: MouseEvent) => event.preventDefault(),\n onMouseLeave: blur,\n onKeyDown: keydown,\n };\n }\n }, [\n ref,\n ref.current,\n ndxGroup,\n JSON.parse(JSON.stringify(ndxGroup?.all() || '')),\n ]);\n\n return props;\n };\n"],"names":["useCategoricalChartAsListbox","_ref","id","ref","type","ndxGroup","orientation","currentIndexRef","useRef","props","useMemo","numberOfGroups","all","filter","datum","value","length","getCurrentOption","current","querySelector","next","classList","remove","index","setAttribute","add","previous","focus","blur","keydown","e","stopPropagation","code","preventDefault","dispatchEvent","Event","role","tabIndex","onFocus","onBlur","onMouseDown","event","onMouseLeave","onKeyDown","JSON","parse","stringify"],"mappings":"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"}
package/index.js CHANGED
@@ -1,17 +1,13 @@
1
1
  export { ChartSize, ColorTheme } from '@redsift/charts';
2
- export { C as ChartEmptyState } from './_internal/ChartEmptyState2.js';
3
- export { D as Dashboard, a as DashboardReducer } from './_internal/Dashboard2.js';
4
- export { D as DashboardContext, i as initialState } from './_internal/context.js';
5
- export { D as DashboardReducerActionType } from './_internal/types.js';
6
- export { P as PdfExportButton } from './_internal/PdfExportButton2.js';
7
- export { T as TimeSeriesBarChart, a as TimeSeriesBarChartSize, b as TimeSeriesBarChartTheme } from './_internal/TimeSeriesBarChart2.js';
8
- export { W as WithFilters } from './_internal/WithFilters2.js';
9
-
10
- const groupReduceCount = d => d.group().reduceCount();
11
- const COUNT = groupReduceCount;
12
-
13
- const groupReduceSum = field => d => d.group().reduceSum(d => d[field]);
14
- const SUM = groupReduceSum;
15
-
16
- export { COUNT, SUM, groupReduceSum };
2
+ export { COUNT } from './utils/groupReducers/_internal/groupReduceCount.js';
3
+ export { SUM, groupReduceSum } from './utils/groupReducers/_internal/groupReduceSum.js';
4
+ export { ChartEmptyState } from './components/ChartEmptyState/_internal/ChartEmptyState2.js';
5
+ export { Dashboard } from './components/Dashboard/_internal/Dashboard2.js';
6
+ export { DashboardContext, initialState } from './components/Dashboard/_internal/context.js';
7
+ export { DashboardReducer } from './components/Dashboard/_internal/reducer.js';
8
+ export { DashboardReducerActionType } from './components/Dashboard/_internal/types.js';
9
+ export { PdfExportButton } from './components/PdfExportButton/_internal/PdfExportButton2.js';
10
+ export { TimeSeriesBarChart } from './components/TimeSeriesBarChart/_internal/TimeSeriesBarChart2.js';
11
+ export { TimeSeriesBarChartSize, TimeSeriesBarChartTheme } from './components/TimeSeriesBarChart/_internal/types.js';
12
+ export { WithFilters } from './components/WithFilters/_internal/WithFilters2.js';
17
13
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/groupReducers/groupReduceCount.ts","../src/utils/groupReducers/groupReduceSum.ts"],"sourcesContent":["import { Dimension } from '../../types';\n\nconst groupReduceCount = (d: Dimension) => d.group().reduceCount();\n\nexport const COUNT = groupReduceCount;\n","import { Dimension } from '../../types';\n\nexport const groupReduceSum = (field: string) => (d: Dimension) =>\n d.group().reduceSum((d) => d[field]);\n\nexport const SUM = groupReduceSum;\n"],"names":["groupReduceCount","d","group","reduceCount","COUNT","groupReduceSum","field","reduceSum","SUM"],"mappings":";;;;;;;;;AAEA,MAAMA,gBAAgB,GAAIC,CAAY,IAAKA,CAAC,CAACC,KAAK,EAAE,CAACC,WAAW,EAAE,CAAA;AAE3D,MAAMC,KAAK,GAAGJ;;ACFd,MAAMK,cAAc,GAAIC,KAAa,IAAML,CAAY,IAC5DA,CAAC,CAACC,KAAK,EAAE,CAACK,SAAS,CAAEN,CAAC,IAAKA,CAAC,CAACK,KAAK,CAAC,EAAC;AAE/B,MAAME,GAAG,GAAGH;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "test": "yarn test:unit && yarn test:storybook"
31
31
  },
32
32
  "types": "types.d.ts",
33
- "version": "11.6.0-muiv5-alpha.10",
33
+ "version": "11.6.0-muiv5-alpha.11",
34
34
  "dependencies": {
35
35
  "@emotion/react": "^11.10.4",
36
36
  "@emotion/styled": "^11.10.4",
@@ -110,5 +110,5 @@
110
110
  "react-dom": ">=17",
111
111
  "styled-components": "^5.3.5"
112
112
  },
113
- "gitHead": "dd23cd05429f09e1f3962edb0a6c26c45eb2f5a0"
113
+ "gitHead": "aa2b60078c31ab64a6d5d7d77aa7a9dc71eb4031"
114
114
  }
@@ -0,0 +1,5 @@
1
+ const groupReduceCount = d => d.group().reduceCount();
2
+ const COUNT = groupReduceCount;
3
+
4
+ export { COUNT };
5
+ //# sourceMappingURL=groupReduceCount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupReduceCount.js","sources":["../../../../src/utils/groupReducers/groupReduceCount.ts"],"sourcesContent":["import { Dimension } from '../../types';\n\nconst groupReduceCount = (d: Dimension) => d.group().reduceCount();\n\nexport const COUNT = groupReduceCount;\n"],"names":["groupReduceCount","d","group","reduceCount","COUNT"],"mappings":"AAEA,MAAMA,gBAAgB,GAAIC,CAAY,IAAKA,CAAC,CAACC,KAAK,EAAE,CAACC,WAAW,EAAE,CAAA;AAE3D,MAAMC,KAAK,GAAGJ;;;;"}
@@ -0,0 +1,5 @@
1
+ const groupReduceSum = field => d => d.group().reduceSum(d => d[field]);
2
+ const SUM = groupReduceSum;
3
+
4
+ export { SUM, groupReduceSum };
5
+ //# sourceMappingURL=groupReduceSum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupReduceSum.js","sources":["../../../../src/utils/groupReducers/groupReduceSum.ts"],"sourcesContent":["import { Dimension } from '../../types';\n\nexport const groupReduceSum = (field: string) => (d: Dimension) =>\n d.group().reduceSum((d) => d[field]);\n\nexport const SUM = groupReduceSum;\n"],"names":["groupReduceSum","field","d","group","reduceSum","SUM"],"mappings":"AAEO,MAAMA,cAAc,GAAIC,KAAa,IAAMC,CAAY,IAC5DA,CAAC,CAACC,KAAK,EAAE,CAACC,SAAS,CAAEF,CAAC,IAAKA,CAAC,CAACD,KAAK,CAAC,EAAC;AAE/B,MAAMI,GAAG,GAAGL;;;;"}
@@ -1,2 +0,0 @@
1
- export { C as ChartEmptyState } from './ChartEmptyState2.js';
2
- //# sourceMappingURL=ChartEmptyState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChartEmptyState2.js","sources":["../../src/components/ChartEmptyState/styles.ts","../../src/components/ChartEmptyState/ChartEmptyState.tsx"],"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","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":["StyledChartEmptyState","styled","div","StyledResetButton","Button","COMPONENT_NAME","CLASSNAME","ChartEmptyState","forwardRef","props","ref","onReset","title","subtitle","resetLabel","React","createElement","className","width","height","viewBox","fill","xmlns","opacity","d","x1","y1","x2","y2","stroke","strokeLinecap","cx","cy","r","transform","strokeWidth","variant","leftIcon","mdiRefresh","onClick","displayName"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { C as CrossfilterRegistry } from './CrossfilterRegistry2.js';
2
- //# sourceMappingURL=CrossfilterRegistry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CrossfilterRegistry2.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;;;;"}
@@ -1,4 +0,0 @@
1
- export { D as Dashboard, a as DashboardReducer } from './Dashboard2.js';
2
- export { D as DashboardContext, i as initialState } from './context.js';
3
- export { D as DashboardReducerActionType } from './types.js';
4
- //# sourceMappingURL=Dashboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Dashboard2.js","sources":["../../src/components/Dashboard/reducer.ts","../../src/components/Dashboard/Dashboard.tsx"],"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","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":["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","COMPONENT_NAME","CLASSNAME","Dashboard","forwardRef","props","ref","children","className","data","dataGridApiRef","propsDataGridApiRef","forwardedProps","_objectWithoutProperties","_excluded","providerRef","useRef","useGridApiRef","updateContext","setUpdateContext","useState","dispatch","useReducer","value","useMemo","dashboardRef","ndx","CrossfilterRegistry","get","toggleUpdateContext","React","createElement","_extends","classNames","DashboardContext","Provider","displayName"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { P as PdfExportButton } from './PdfExportButton2.js';
2
- //# sourceMappingURL=PdfExportButton.js.map