@redsift/dashboard 8.0.0-alpha.7 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.js +144 -20
  2. package/index.js.map +1 -1
  3. package/package.json +8 -13
package/index.js CHANGED
@@ -197,7 +197,7 @@ const ChartEmptyState = /*#__PURE__*/forwardRef((props, ref) => {
197
197
  }, subtitle), onReset ? /*#__PURE__*/React.createElement(StyledResetButton, {
198
198
  variant: "unstyled",
199
199
  leftIcon: mdiRefresh,
200
- onPress: onReset
200
+ onClick: onReset
201
201
  }, resetLabel) : null);
202
202
  });
203
203
  ChartEmptyState.className = CLASSNAME$3;
@@ -310,14 +310,18 @@ const DashboardContext = /*#__PURE__*/React.createContext({
310
310
  * Reducer props.
311
311
  */
312
312
 
313
- let DashboardReducerActionType;
314
- (function (DashboardReducerActionType) {
313
+ let DashboardReducerActionType = /*#__PURE__*/function (DashboardReducerActionType) {
315
314
  DashboardReducerActionType["ResetFilter"] = "reset-filter";
316
315
  DashboardReducerActionType["ResetFilters"] = "reset-filters";
317
316
  DashboardReducerActionType["FilterTable"] = "filter-table";
318
317
  DashboardReducerActionType["FilterTableBatch"] = "filter-table-batch";
319
318
  DashboardReducerActionType["AppendFilterTableBatch"] = "append-filter-table-batch";
320
- })(DashboardReducerActionType || (DashboardReducerActionType = {}));
319
+ return DashboardReducerActionType;
320
+ }({});
321
+
322
+ /**
323
+ * Component props.
324
+ */
321
325
 
322
326
  const areEquals = (tableFilter, actionFilter) => {
323
327
  return tableFilter.columnField === actionFilter.columnField && tableFilter.operatorValue === actionFilter.operatorValue;
@@ -826,7 +830,7 @@ const PdfExportButton = /*#__PURE__*/forwardRef((props, ref) => {
826
830
  };
827
831
  return /*#__PURE__*/React.createElement(Button, _extends({
828
832
  className: classNames(PdfExportButton.className, className),
829
- onPress: exportPdf,
833
+ onClick: exportPdf,
830
834
  isDisabled: isLoading
831
835
  }, forwardedProps, {
832
836
  ref: ref
@@ -852,6 +856,10 @@ const TimeSeriesBarChartSize = {
852
856
  */
853
857
  const TimeSeriesBarChartTheme = ColorTheme;
854
858
 
859
+ /**
860
+ * Component props.
861
+ */
862
+
855
863
  // istanbul ignore file
856
864
  /**
857
865
  * Component style.
@@ -1241,7 +1249,7 @@ const TimeSeriesBarChart = /*#__PURE__*/forwardRef((props, ref) => {
1241
1249
  id: `id${id}__title`
1242
1250
  }, title) : null, chart && isResetable ? /*#__PURE__*/React.createElement(Button, {
1243
1251
  variant: "unstyled",
1244
- onPress: () => {
1252
+ onClick: () => {
1245
1253
  chart.filter(null);
1246
1254
  redrawAll();
1247
1255
  if (columnToFilter) {
@@ -1289,6 +1297,96 @@ TimeSeriesBarChart.className = CLASSNAME;
1289
1297
  TimeSeriesBarChart.defaultProps = DEFAULT_PROPS;
1290
1298
  TimeSeriesBarChart.displayName = COMPONENT_NAME;
1291
1299
 
1300
+ /**
1301
+ * Hook to give to a chart the roles, events and attributes of a listbox.
1302
+ */
1303
+ const useCategoricalChartAsListbox = _ref => {
1304
+ let {
1305
+ id,
1306
+ ref,
1307
+ type,
1308
+ ndxGroup,
1309
+ orientation = 'horizontal'
1310
+ } = _ref;
1311
+ const currentIndexRef = useRef(0);
1312
+ const props = useMemo(() => {
1313
+ const numberOfGroups = ndxGroup === null || ndxGroup === void 0 ? void 0 : ndxGroup.all().filter(datum => datum.value).length;
1314
+ if (ref && numberOfGroups) {
1315
+ const getCurrentOption = () => ref.current.querySelector(`._${currentIndexRef.current}`);
1316
+ const next = () => {
1317
+ getCurrentOption().classList.remove('focused');
1318
+ const index = currentIndexRef.current === numberOfGroups - 1 ? 0 : currentIndexRef.current + 1;
1319
+ currentIndexRef.current = index;
1320
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-${currentIndexRef.current}`);
1321
+ getCurrentOption().classList.add('focused');
1322
+ };
1323
+ const previous = () => {
1324
+ getCurrentOption().classList.remove('focused');
1325
+ const index = currentIndexRef.current === 0 ? numberOfGroups - 1 : currentIndexRef.current - 1;
1326
+ currentIndexRef.current = index;
1327
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-${currentIndexRef.current}`);
1328
+ getCurrentOption().classList.add('focused');
1329
+ };
1330
+ const focus = () => {
1331
+ ref.current.setAttribute('aria-activedescendant', `id${id}__${type}-0`);
1332
+ getCurrentOption().classList.add('focused');
1333
+ };
1334
+ const blur = () => {
1335
+ getCurrentOption().classList.remove('focused');
1336
+ currentIndexRef.current = 0;
1337
+ ref.current.setAttribute('aria-activedescendant', '');
1338
+ };
1339
+ const keydown = e => {
1340
+ e.stopPropagation();
1341
+ switch (e.code) {
1342
+ case 'ArrowRight':
1343
+ if (orientation === 'horizontal') {
1344
+ e.preventDefault();
1345
+ next();
1346
+ }
1347
+ break;
1348
+ case 'ArrowLeft':
1349
+ if (orientation === 'horizontal') {
1350
+ e.preventDefault();
1351
+ previous();
1352
+ }
1353
+ break;
1354
+ case 'ArrowDown':
1355
+ if (orientation === 'vertical') {
1356
+ e.preventDefault();
1357
+ next();
1358
+ }
1359
+ break;
1360
+ case 'ArrowUp':
1361
+ if (orientation === 'vertical') {
1362
+ e.preventDefault();
1363
+ previous();
1364
+ }
1365
+ break;
1366
+ case 'Enter':
1367
+ case 'Space':
1368
+ e.preventDefault();
1369
+ getCurrentOption().dispatchEvent(new Event('click'));
1370
+ break;
1371
+ }
1372
+ };
1373
+ return {
1374
+ 'aria-activedescendant': '',
1375
+ 'aria-multiselectable': 'true',
1376
+ 'aria-orientation': orientation,
1377
+ role: 'listbox',
1378
+ tabIndex: 0,
1379
+ onFocus: focus,
1380
+ onBlur: blur,
1381
+ onMouseDown: event => event.preventDefault(),
1382
+ onMouseLeave: blur,
1383
+ onKeyDown: keydown
1384
+ };
1385
+ }
1386
+ }, [ref, ref.current, ndxGroup, JSON.parse(JSON.stringify((ndxGroup === null || ndxGroup === void 0 ? void 0 : ndxGroup.all()) || ''))]);
1387
+ return props;
1388
+ };
1389
+
1292
1390
  const FilterableBarChart = props => {
1293
1391
  const {
1294
1392
  children,
@@ -1301,7 +1399,8 @@ const FilterableBarChart = props => {
1301
1399
  localeText,
1302
1400
  onFilter
1303
1401
  } = props;
1304
- const id = propsId !== null && propsId !== void 0 ? propsId : useId();
1402
+ const id = (propsId !== null && propsId !== void 0 ? propsId : useId()).replace(/:/g, '');
1403
+ const ref = useRef();
1305
1404
  const {
1306
1405
  emptyChartTitle,
1307
1406
  emptyChartSubtitle,
@@ -1396,18 +1495,30 @@ const FilterableBarChart = props => {
1396
1495
  resetLabel: emptyChartResetLabel,
1397
1496
  onReset: resetFilters
1398
1497
  });
1498
+ const chartProps = useCategoricalChartAsListbox({
1499
+ id,
1500
+ ref: ref,
1501
+ type: 'bar',
1502
+ ndxGroup,
1503
+ orientation: 'vertical'
1504
+ });
1399
1505
  const filterProps = {
1506
+ barProps: {
1507
+ tabIndex: -1
1508
+ },
1509
+ barRole: 'option',
1510
+ chartProps: chartProps,
1511
+ chartRef: ref,
1400
1512
  data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,
1401
- id,
1402
- onReset: isResetable ? resetFilters : undefined,
1403
1513
  emptyComponent,
1404
- onBarClick: datum => {
1405
- handleFilter(datum.data.key);
1406
- },
1514
+ id,
1407
1515
  isBarSelected: datum => {
1408
1516
  return filters.length === 0 || filters.includes(datum.data.key);
1409
1517
  },
1410
- barRole: 'option'
1518
+ onBarClick: datum => {
1519
+ handleFilter(datum.data.key);
1520
+ },
1521
+ onReset: isResetable ? resetFilters : undefined
1411
1522
  };
1412
1523
  if ( /*#__PURE__*/isValidElement(children)) {
1413
1524
  return /*#__PURE__*/React.cloneElement(children, _objectSpread2({}, filterProps));
@@ -1472,7 +1583,8 @@ const FilterablePieChart = props => {
1472
1583
  localeText,
1473
1584
  onFilter
1474
1585
  } = props;
1475
- const id = propsId !== null && propsId !== void 0 ? propsId : useId();
1586
+ const id = (propsId !== null && propsId !== void 0 ? propsId : useId()).replace(/:/g, '');
1587
+ const ref = useRef();
1476
1588
  const {
1477
1589
  emptyChartTitle,
1478
1590
  emptyChartSubtitle,
@@ -1563,18 +1675,30 @@ const FilterablePieChart = props => {
1563
1675
  resetLabel: emptyChartResetLabel,
1564
1676
  onReset: resetFilters
1565
1677
  });
1678
+ const chartProps = useCategoricalChartAsListbox({
1679
+ id,
1680
+ ref: ref,
1681
+ type: 'bar',
1682
+ ndxGroup,
1683
+ orientation: 'horizontal'
1684
+ });
1566
1685
  const filterProps = {
1686
+ sliceProps: {
1687
+ tabIndex: -1
1688
+ },
1689
+ sliceRole: 'option',
1690
+ chartProps: chartProps,
1691
+ chartRef: ref,
1567
1692
  data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,
1568
- id,
1569
- onReset: isResetable ? resetFilters : undefined,
1570
1693
  emptyComponent,
1571
- onSliceClick: datum => {
1572
- handleFilter(datum.data.key);
1573
- },
1694
+ id,
1574
1695
  isSliceSelected: datum => {
1575
1696
  return filters.length === 0 || filters.includes(datum.data.key);
1576
1697
  },
1577
- sliceRole: 'option'
1698
+ onSliceClick: datum => {
1699
+ handleFilter(datum.data.key);
1700
+ },
1701
+ onReset: isResetable ? resetFilters : undefined
1578
1702
  };
1579
1703
  if ( /*#__PURE__*/isValidElement(children)) {
1580
1704
  return /*#__PURE__*/React.cloneElement(children, _objectSpread2({}, filterProps));
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/groupReducers/groupReduceCount.ts","../src/utils/groupReducers/groupReduceSum.ts","../src/components/ChartEmptyState/styles.ts","../src/components/ChartEmptyState/ChartEmptyState.tsx","../src/components/Dashboard/context.ts","../src/components/Dashboard/types.ts","../src/components/Dashboard/reducer.ts","../src/components/CrossfilterRegistry/CrossfilterRegistry.ts","../src/components/Dashboard/Dashboard.tsx","../src/components/PdfExportButton/styles.ts","../src/components/PdfExportButton/PdfDocument.tsx","../src/components/PdfExportButton/PdfExportButton.tsx","../src/components/TimeSeriesBarChart/types.ts","../src/components/TimeSeriesBarChart/styles.ts","../src/components/TimeSeriesBarChart/TimeSeriesBarChart.tsx","../src/components/WithFilters/FilterableBarChart.tsx","../src/components/WithFilters/FilterableDataGrid.tsx","../src/components/WithFilters/FilterablePieChart.tsx","../src/components/WithFilters/FilterableScatterPlot.tsx","../src/components/WithFilters/WithFilters.tsx"],"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","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';\nconst DEFAULT_PROPS: Partial<ChartEmptyStateProps> = {\n title: 'No Data Available',\n subtitle: 'Please check the applied filters',\n resetLabel: 'Reset all filters',\n};\n\nexport const ChartEmptyState: Comp<ChartEmptyStateProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { onReset, title, subtitle, resetLabel } = props;\n\n return (\n <StyledChartEmptyState\n ref={ref as RefObject<HTMLDivElement>}\n className=\"redsift-chart-empty-state\"\n >\n <div className={`${ChartEmptyState.className}__img`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"98\"\n height=\"97\"\n viewBox=\"0 0 98 97\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_1037_5913)\">\n <path\n d=\"M49.168 96.4643C75.6571 96.4643 97.1308 74.9906 97.1308 48.5015C97.1308 22.0125 75.6571 0.538818 49.168 0.538818C22.679 0.538818 1.20532 22.0125 1.20532 48.5015C1.20532 74.9906 22.679 96.4643 49.168 96.4643Z\"\n fill=\"#E0F4DE\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.2332 48.2629V66.7307H17.3721V48.2629C17.3721 47.2013 18.2289 46.3445 19.2905 46.3445H34.3147C35.3764 46.3445 36.2332 47.2013 36.2332 48.2629ZM78.8054 58.5018V66.7307H59.9443V58.5018C59.9443 57.4402 60.8011 56.5834 61.8627 56.5834H76.887C77.9486 56.5834 78.8054 57.4402 78.8054 58.5018ZM42.9585 66.8223H42.7969C42.7969 66.7899 42.7915 66.7576 42.7807 66.7307L42.9585 66.8223Z\"\n fill=\"#E5F6EF\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M84.8464 67.1133C84.8464 67.3289 84.6739 67.5013 84.4637 67.5013H11.1749C11.0727 67.5013 10.9747 67.4607 10.9024 67.3885C10.8301 67.3162 10.7896 67.2182 10.7896 67.116C10.7896 67.0138 10.8301 66.9158 10.9024 66.8436C10.9747 66.7713 11.0727 66.7307 11.1749 66.7307H42.7807C42.7915 66.7577 42.7969 66.79 42.7969 66.8223H42.9585L42.7807 66.7307H84.4637C84.6739 66.7307 84.8464 66.9032 84.8464 67.1133Z\"\n fill=\"#333333\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M78.9348 52.4016C78.6711 52.6632 78.3147 52.8099 77.9432 52.8099C77.5718 52.8099 77.2154 52.6632 76.9517 52.4016L68.1301 43.5746C66.7686 44.6804 65.2009 45.5043 63.518 45.9983C61.8351 46.4923 60.0708 46.6467 58.3277 46.4523V47.46C58.5486 47.46 58.7318 47.6432 58.7318 47.8642V48.2522C58.7318 48.4731 58.5486 48.6564 58.3277 48.6564V50.1437C58.5486 50.1437 58.7318 50.3269 58.7318 50.5479V50.9359C58.7318 51.1568 58.5486 51.34 58.3277 51.34V52.8327C58.5486 52.8327 58.7318 53.0106 58.7318 53.2369V53.6195C58.7318 53.7542 58.6618 53.8782 58.5594 53.9482C58.4947 53.9967 58.4139 54.0237 58.3277 54.0237V55.5164C58.5486 55.5164 58.7318 55.6942 58.7318 55.9206V56.3032C58.7318 56.5241 58.5486 56.7074 58.3277 56.7074V58.2001C58.5486 58.2001 58.7318 58.3779 58.7318 58.6042V58.9869C58.7318 59.2078 58.5486 59.391 58.3277 59.391V60.8837C58.5486 60.8837 58.7318 61.0616 58.7318 61.2879V61.6705C58.7318 61.8915 58.5486 62.0747 58.3277 62.0747V63.5674C58.5486 63.5674 58.7318 63.7452 58.7318 63.9716V64.3542C58.7318 64.4889 58.6618 64.6129 58.5594 64.6829C58.4947 64.7314 58.4139 64.7584 58.3277 64.7584V66.2511C58.5486 66.2511 58.7318 66.4289 58.7318 66.6552V66.7307H38.3888V65.8631C38.1678 65.8631 37.9846 65.6852 37.9846 65.4589V65.0763C37.9846 64.8554 38.1678 64.6721 38.3888 64.6721V63.1794C38.1678 63.1794 37.9846 63.0016 37.9846 62.7752V62.3926C37.9846 62.1717 38.1678 61.9885 38.3888 61.9885V60.4957H38.3726C38.2686 60.4907 38.1704 60.446 38.0983 60.3708C38.0261 60.2957 37.9855 60.1958 37.9846 60.0916V59.709C37.9846 59.488 38.1678 59.3048 38.3888 59.3048V57.8121C38.1678 57.8121 37.9846 57.6342 37.9846 57.4079V57.0253C37.9846 56.8044 38.1678 56.6211 38.3888 56.6211V55.1284C38.1678 55.1284 37.9846 54.9452 37.9846 54.7242V54.3416C37.9846 54.1153 38.1678 53.9375 38.3888 53.9375V52.4447C38.1678 52.4447 37.9846 52.2615 37.9846 52.0406V51.658C37.9846 51.437 38.1678 51.2538 38.3888 51.2538V49.7611C38.1678 49.7611 37.9846 49.5779 37.9846 49.3569V48.9743C37.9846 48.748 38.1678 48.5701 38.3888 48.5701V47.0774C38.1678 47.0774 37.9846 46.8942 37.9846 46.6732V46.2906C37.9846 46.0643 38.1678 45.8865 38.3888 45.8865V44.3937C38.1678 44.3937 37.9846 44.2105 37.9846 43.9896V43.607C37.9846 43.3806 38.1678 43.2028 38.3888 43.2028V41.7101C38.1678 41.7101 37.9846 41.5269 37.9846 41.3059V40.9233C37.9846 40.697 38.1678 40.5191 38.3888 40.5191V39.0264C38.1678 39.0264 37.9846 38.8432 37.9846 38.6222V38.2396C37.9846 38.0133 38.1678 37.8355 38.3888 37.8355V36.3427C38.1678 36.3427 37.9846 36.1595 37.9846 35.9386V35.556C37.9846 35.3296 38.1678 35.1518 38.3888 35.1518V33.6591C38.1678 33.6591 37.9846 33.4759 37.9846 33.2549V32.8723C37.9846 32.646 38.1678 32.4681 38.3888 32.4681V32.0963C38.3888 31.7029 38.5073 31.3365 38.7121 31.0347C38.6976 31.0289 38.6846 31.0196 38.6744 31.0077C38.6369 30.97 38.6074 30.9253 38.5873 30.8761C38.5673 30.8268 38.5573 30.7741 38.5578 30.721C38.5583 30.6679 38.5693 30.6154 38.5903 30.5665C38.6112 30.5177 38.6416 30.4735 38.6798 30.4365C38.7876 30.3287 38.9115 30.2317 39.0408 30.1455C39.2295 30.027 39.4773 30.0809 39.6013 30.2641C39.6121 30.2802 39.6175 30.291 39.6228 30.3072C39.7145 30.2695 39.8115 30.2425 39.9085 30.221C39.9031 30.2048 39.9031 30.194 39.9031 30.1779C39.9031 29.9569 40.0809 29.7737 40.3072 29.7737H40.6898C40.7707 29.7737 40.8461 29.8006 40.9108 29.8384C41.0186 29.9138 41.094 30.0377 41.094 30.1779H42.5867C42.5867 29.9569 42.7646 29.7737 42.9909 29.7737H43.3735C43.5945 29.7737 43.7777 29.9569 43.7777 30.1779H45.2704C45.2704 29.9569 45.4482 29.7737 45.6746 29.7737H46.0572C46.2781 29.7737 46.4613 29.9569 46.4613 30.1779H46.8278C48.2073 24.3094 53.4777 19.939 59.7665 19.939C67.1116 19.939 73.0663 25.8937 73.0663 33.2387C73.0663 36.402 71.9562 39.312 70.1078 41.5969L78.9294 50.4185C79.0604 50.5481 79.1645 50.7023 79.2358 50.8723C79.307 51.0423 79.3439 51.2247 79.3444 51.409C79.3449 51.5933 79.309 51.7758 79.2387 51.9462C79.1684 52.1165 79.0651 52.2713 78.9348 52.4016Z\"\n fill=\"#E5F6EF\"\n />\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.2332 48.2629V66.7307H17.3721V48.2629C17.3721 47.2013 18.2289 46.3445 19.2905 46.3445H34.3147C35.3763 46.3445 36.2332 47.2013 36.2332 48.2629Z\"\n fill=\"#33B222\"\n />\n </g>\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M78.8055 58.5019V66.7308H59.9443V58.5019C59.9443 57.4403 60.8012 56.5835 61.8628 56.5835H76.887C77.9486 56.5835 78.8055 57.4403 78.8055 58.5019Z\"\n fill=\"#33B222\"\n />\n </g>\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M42.9585 66.8224H42.7968C42.7968 66.7901 42.7914 66.7578 42.7806 66.7308L42.9585 66.8224ZM58.3276 32.0749V66.7308H38.3887V32.0964C38.3887 31.703 38.5072 31.3366 38.712 31.0348C38.9276 30.7061 39.2455 30.4474 39.6227 30.3073C39.7143 30.2696 39.8113 30.2426 39.9083 30.2211C40.0377 30.1941 40.1724 30.178 40.3071 30.178H56.4091C56.6786 30.178 56.9372 30.2319 57.1743 30.3343C57.6378 30.5336 58.0042 30.9109 58.1875 31.3797C58.2683 31.5737 58.3168 31.7785 58.3168 31.994C58.3276 32.021 58.3276 32.0479 58.3276 32.0749Z\"\n fill=\"#33B222\"\n />\n </g>\n <path\n d=\"M38.3888 64.6721C38.1678 64.6721 37.9846 64.8554 37.9846 65.0763V65.4589C37.9846 65.5661 38.0272 65.6689 38.103 65.7447C38.1788 65.8205 38.2816 65.8631 38.3888 65.8631C38.496 65.8631 38.5988 65.8205 38.6746 65.7447C38.7504 65.6689 38.793 65.5661 38.793 65.4589V65.0763C38.793 64.8554 38.6097 64.6721 38.3888 64.6721ZM58.3277 63.5674C58.1067 63.5674 57.9235 63.7453 57.9235 63.9716V64.365C57.9289 64.5805 58.1121 64.7584 58.3277 64.7584C58.4139 64.7584 58.4947 64.7314 58.5594 64.6829C58.6618 64.6129 58.7318 64.4889 58.7318 64.3542V63.9716C58.7318 63.7453 58.5486 63.5674 58.3277 63.5674ZM38.3888 61.9885C38.1678 61.9885 37.9846 62.1717 37.9846 62.3927V62.7753C37.9846 62.8825 38.0272 62.9853 38.103 63.0611C38.1788 63.1368 38.2816 63.1794 38.3888 63.1794C38.496 63.1794 38.5988 63.1368 38.6746 63.0611C38.7504 62.9853 38.793 62.8825 38.793 62.7753V62.3927C38.793 62.1717 38.6097 61.9885 38.3888 61.9885ZM58.3277 60.8838C58.2746 60.8837 58.222 60.8941 58.1729 60.9144C58.1239 60.9347 58.0793 60.9644 58.0417 61.002C58.0042 61.0395 57.9744 61.0841 57.9541 61.1332C57.9338 61.1822 57.9234 61.2348 57.9235 61.2879V61.6705C57.9235 61.8915 58.1067 62.0747 58.3277 62.0747C58.5486 62.0747 58.7318 61.8915 58.7318 61.6705V61.2879C58.7318 61.0616 58.5486 60.8838 58.3277 60.8838ZM38.3888 59.3048C38.1678 59.3048 37.9846 59.488 37.9846 59.709V60.0916C37.9846 60.3071 38.1571 60.485 38.3726 60.4958H38.3888C38.3996 60.4958 38.405 60.4958 38.4157 60.4904C38.6259 60.4796 38.793 60.3018 38.793 60.0916V59.709C38.793 59.488 38.6097 59.3048 38.3888 59.3048ZM58.3277 58.2001C58.1067 58.2001 57.9235 58.3779 57.9235 58.6043V58.9869C57.9235 59.2078 58.1067 59.391 58.3277 59.391C58.5486 59.391 58.7318 59.2078 58.7318 58.9869V58.6043C58.7318 58.3779 58.5486 58.2001 58.3277 58.2001ZM38.3888 56.6211C38.1678 56.6211 37.9846 56.8044 37.9846 57.0253V57.4079C37.9846 57.5151 38.0272 57.6179 38.103 57.6937C38.1788 57.7695 38.2816 57.8121 38.3888 57.8121C38.496 57.8121 38.5988 57.7695 38.6746 57.6937C38.7504 57.6179 38.793 57.5151 38.793 57.4079V57.0253C38.793 56.8044 38.6097 56.6211 38.3888 56.6211ZM58.3277 55.5164C58.1067 55.5164 57.9235 55.6943 57.9235 55.9206V56.3032C57.9235 56.5241 58.1067 56.7074 58.3277 56.7074C58.5486 56.7074 58.7318 56.5241 58.7318 56.3032V55.9206C58.7318 55.6943 58.5486 55.5164 58.3277 55.5164ZM38.3888 53.9375C38.1678 53.9375 37.9846 54.1153 37.9846 54.3417V54.7243C37.9846 54.9452 38.1678 55.1284 38.3888 55.1284C38.405 55.1284 38.4211 55.1284 38.4373 55.123C38.6367 55.1015 38.7876 54.929 38.793 54.7297V54.3417C38.793 54.1153 38.6097 53.9375 38.3888 53.9375ZM58.3277 52.8328C58.166 52.8328 58.0259 52.9298 57.9612 53.0699C57.9343 53.1184 57.9235 53.1777 57.9235 53.2369V53.6195C57.9235 53.6303 57.9235 53.6411 57.9289 53.6519C57.9397 53.8567 58.1175 54.0237 58.3277 54.0237C58.4139 54.0237 58.4947 53.9968 58.5594 53.9483C58.6618 53.8782 58.7318 53.7543 58.7318 53.6195V53.2369C58.7318 53.0106 58.5486 52.8328 58.3277 52.8328ZM38.7768 51.5556C38.7548 51.4714 38.7062 51.3965 38.6382 51.3421C38.5703 51.2878 38.4866 51.2568 38.3996 51.2538H38.3888C38.1678 51.2538 37.9846 51.437 37.9846 51.658V52.0406C37.9846 52.2615 38.1678 52.4448 38.3888 52.4448C38.6097 52.4448 38.793 52.2615 38.793 52.0406V51.658C38.793 51.6203 38.7876 51.5879 38.7768 51.5556ZM58.3277 50.1437C58.1067 50.1437 57.9235 50.3269 57.9235 50.5479V50.9359C57.9235 51.1568 58.1067 51.34 58.3277 51.34C58.5486 51.34 58.7318 51.1568 58.7318 50.9359V50.5479C58.7318 50.3269 58.5486 50.1437 58.3277 50.1437ZM38.3888 48.5702C38.1678 48.5702 37.9846 48.748 37.9846 48.9743V49.3569C37.9846 49.5779 38.1678 49.7611 38.3888 49.7611C38.6097 49.7611 38.793 49.5779 38.793 49.3569V48.9743C38.793 48.748 38.6097 48.5702 38.3888 48.5702ZM58.3277 47.46C58.1067 47.46 57.9235 47.6433 57.9235 47.8642V48.2522C57.9235 48.4732 58.1067 48.6564 58.3277 48.6564C58.5486 48.6564 58.7318 48.4732 58.7318 48.2522V47.8642C58.7318 47.6433 58.5486 47.46 58.3277 47.46ZM38.3888 45.8865C38.1678 45.8865 37.9846 46.0643 37.9846 46.2906V46.6733C37.9846 46.8942 38.1678 47.0774 38.3888 47.0774C38.6097 47.0774 38.793 46.8942 38.793 46.6733V46.2906C38.793 46.0643 38.6097 45.8865 38.3888 45.8865ZM58.3277 44.7764C58.1067 44.7764 57.9235 44.9596 57.9235 45.1805V45.5685C57.9235 45.7895 58.1067 45.9727 58.3277 45.9727C58.4355 45.9727 58.5378 45.9242 58.6133 45.8542C58.6833 45.7787 58.7318 45.6763 58.7318 45.5685V45.1805C58.7318 44.9596 58.5486 44.7764 58.3277 44.7764ZM38.7283 43.3914C38.6816 43.3176 38.6122 43.261 38.5305 43.2301C38.4489 43.1992 38.3594 43.1956 38.2755 43.2199C38.1916 43.2442 38.1179 43.2951 38.0655 43.3649C38.013 43.4347 37.9846 43.5197 37.9846 43.607V43.9896C37.9846 44.2105 38.1678 44.3938 38.3888 44.3938C38.599 44.3938 38.7768 44.2267 38.7876 44.0165C38.7919 44.0083 38.7938 43.9989 38.793 43.9896V43.607C38.793 43.5262 38.7714 43.4507 38.7283 43.3914ZM58.3277 42.0927C58.193 42.0927 58.069 42.1628 57.999 42.2652C57.9505 42.3298 57.9235 42.4107 57.9235 42.4969V42.8849C57.9235 43.1058 58.1067 43.289 58.3277 43.289C58.5486 43.289 58.7318 43.1058 58.7318 42.8849V42.4969C58.7318 42.2759 58.5486 42.0927 58.3277 42.0927ZM38.3888 40.5192C38.1678 40.5192 37.9846 40.697 37.9846 40.9233V41.3059C37.9846 41.5269 38.1678 41.7101 38.3888 41.7101C38.6097 41.7101 38.793 41.5269 38.793 41.3059V40.9233C38.793 40.697 38.6097 40.5192 38.3888 40.5192ZM58.3277 39.409C58.1067 39.409 57.9235 39.5923 57.9235 39.8132V40.2012C57.9235 40.4222 58.1067 40.6054 58.3277 40.6054C58.5486 40.6054 58.7318 40.4222 58.7318 40.2012V39.8132C58.7318 39.5923 58.5486 39.409 58.3277 39.409ZM38.3888 37.8355C38.1678 37.8355 37.9846 38.0133 37.9846 38.2397V38.6223C37.9846 38.8432 38.1678 39.0264 38.3888 39.0264C38.6097 39.0264 38.793 38.8432 38.793 38.6223V38.2397C38.793 38.0133 38.6097 37.8355 38.3888 37.8355ZM58.3277 36.7254C58.1067 36.7254 57.9235 36.9086 57.9235 37.1295V37.5175C57.9235 37.7385 58.1067 37.9217 58.3277 37.9217C58.5486 37.9217 58.7318 37.7385 58.7318 37.5175V37.1295C58.7318 36.9086 58.5486 36.7254 58.3277 36.7254ZM38.3888 35.1518C38.1678 35.1518 37.9846 35.3297 37.9846 35.556V35.9386C37.9846 36.1595 38.1678 36.3428 38.3888 36.3428C38.4265 36.3428 38.4642 36.3374 38.502 36.3212C38.669 36.2781 38.793 36.1218 38.793 35.9386V35.556C38.793 35.3297 38.6097 35.1518 38.3888 35.1518ZM58.3277 34.0417C58.1067 34.0417 57.9235 34.2249 57.9235 34.4459V34.8339C57.9235 35.0548 58.1067 35.238 58.3277 35.238C58.4732 35.238 58.6025 35.1572 58.6726 35.0387C58.7103 34.9794 58.7318 34.9093 58.7318 34.8339V34.4459C58.7318 34.2249 58.5486 34.0417 58.3277 34.0417ZM38.3888 32.4682C38.1678 32.4682 37.9846 32.646 37.9846 32.8723V33.2549C37.9846 33.4759 38.1678 33.6591 38.3888 33.6591C38.6097 33.6591 38.793 33.4759 38.793 33.2549V32.8723C38.793 32.646 38.6097 32.4682 38.3888 32.4682ZM58.6995 31.6975C58.6904 31.6451 58.671 31.595 58.6425 31.5501C58.614 31.5052 58.5769 31.4664 58.5333 31.4358C58.4898 31.4053 58.4406 31.3837 58.3887 31.3722C58.3368 31.3607 58.2831 31.3595 58.2307 31.3688C58.2145 31.3688 58.1983 31.3742 58.1876 31.3796C58.0421 31.4173 57.9397 31.5359 57.9073 31.676C57.8966 31.7245 57.8912 31.7784 57.902 31.8323C57.9181 31.9185 57.9235 32.0101 57.9235 32.1448C57.9235 32.2041 57.9343 32.2634 57.9612 32.3119C57.9995 32.3955 58.0653 32.4636 58.1476 32.5048C58.2299 32.546 58.3238 32.5578 58.4137 32.5383C58.5037 32.5188 58.5842 32.4692 58.6421 32.3976C58.7 32.326 58.7316 32.2368 58.7318 32.1448V32.0909C58.7318 31.9562 58.7211 31.8269 58.6995 31.6975ZM39.6228 30.3072C39.6179 30.2918 39.6106 30.2773 39.6013 30.2641C39.5415 30.1755 39.4496 30.1137 39.345 30.0916C39.2405 30.0695 39.1314 30.0888 39.0408 30.1455C38.9115 30.2318 38.7876 30.3288 38.6798 30.4365C38.5181 30.5928 38.5181 30.8515 38.6744 31.0078C38.6852 31.0185 38.696 31.0293 38.7121 31.0347C38.7876 31.0994 38.8738 31.1317 38.9654 31.1317C39.0678 31.1317 39.1702 31.094 39.2456 31.0132C39.3157 30.9431 39.3965 30.8784 39.4827 30.8245C39.6552 30.7168 39.7145 30.4904 39.6228 30.3072ZM56.8673 29.8168C56.7162 29.7889 56.5629 29.7744 56.4092 29.7737C56.302 29.7737 56.1992 29.8163 56.1234 29.8921C56.0476 29.9679 56.0051 30.0707 56.0051 30.1779C56.0051 30.2851 56.0476 30.3879 56.1234 30.4637C56.1992 30.5395 56.302 30.582 56.4092 30.582C56.5116 30.582 56.614 30.5928 56.711 30.609C56.738 30.6144 56.7649 30.6198 56.7918 30.6198C56.9697 30.6198 57.126 30.5012 57.1745 30.3342C57.1798 30.3234 57.1852 30.3072 57.1852 30.2964C57.2059 30.1907 57.1842 30.0811 57.1247 29.9914C57.0652 29.9016 56.9727 29.8389 56.8673 29.8168ZM54.4315 29.9408C54.3954 29.8886 54.347 29.8461 54.2906 29.817C54.2343 29.7878 54.1716 29.773 54.1082 29.7737H53.7256C53.6184 29.7737 53.5156 29.8163 53.4398 29.8921C53.364 29.9679 53.3214 30.0707 53.3214 30.1779C53.3214 30.2851 53.364 30.3879 53.4398 30.4637C53.5156 30.5395 53.6184 30.582 53.7256 30.582H54.1082C54.2375 30.582 54.3561 30.5174 54.4315 30.4204C54.48 30.3503 54.5123 30.2695 54.5123 30.1779C54.5136 30.0919 54.4851 30.0081 54.4315 29.9408ZM51.4245 29.7737H51.0419C50.9347 29.7737 50.8319 29.8163 50.7561 29.8921C50.6803 29.9679 50.6377 30.0707 50.6377 30.1779C50.6377 30.2851 50.6803 30.3879 50.7561 30.4637C50.8319 30.5395 50.9347 30.582 51.0419 30.582H51.4245C51.6455 30.582 51.8287 30.3988 51.8287 30.1779C51.8287 29.9569 51.6455 29.7737 51.4245 29.7737ZM48.7408 29.7737H48.3582C48.1319 29.7737 47.9541 29.9569 47.9541 30.1779C47.9541 30.2964 48.008 30.4096 48.0942 30.4797C48.1642 30.5443 48.2558 30.582 48.3582 30.582H48.7408C48.8486 30.582 48.9456 30.5389 49.0211 30.4689C49.0965 30.3934 49.145 30.291 49.145 30.1779C49.145 29.9569 48.9618 29.7737 48.7408 29.7737ZM46.0572 29.7737H45.6746C45.5674 29.7737 45.4646 29.8163 45.3888 29.8921C45.313 29.9679 45.2704 30.0707 45.2704 30.1779C45.2704 30.2851 45.313 30.3879 45.3888 30.4637C45.4646 30.5395 45.5674 30.582 45.6746 30.582H46.0572C46.2781 30.582 46.4613 30.3988 46.4613 30.1779C46.4613 29.9569 46.2781 29.7737 46.0572 29.7737ZM43.3735 29.7737H42.9909C42.8837 29.7737 42.7809 29.8163 42.7051 29.8921C42.6293 29.9679 42.5867 30.0707 42.5867 30.1779C42.5867 30.2851 42.6293 30.3879 42.7051 30.4637C42.7809 30.5395 42.8837 30.582 42.9909 30.582H43.3735C43.5945 30.582 43.7777 30.3988 43.7777 30.1779C43.7777 29.9569 43.5945 29.7737 43.3735 29.7737ZM40.9108 29.8384C40.8442 29.7976 40.7679 29.7753 40.6898 29.7737H40.3072C40.0809 29.7737 39.9031 29.9569 39.9031 30.1779C39.9031 30.194 39.9031 30.2048 39.9085 30.221C39.9246 30.4204 40.0971 30.582 40.3072 30.582H40.6898C40.8569 30.582 41.0024 30.4797 41.0617 30.3342C41.0832 30.2857 41.094 30.2318 41.094 30.1779C41.094 30.0378 41.0186 29.9138 40.9108 29.8384Z\"\n fill=\"#6AA969\"\n />\n <path\n d=\"M42.9586 66.8223H42.7969C42.7969 66.79 42.7915 66.7577 42.7808 66.7307L42.9586 66.8223Z\"\n fill=\"#333333\"\n />\n <path\n opacity=\"0.4\"\n d=\"M43.9338 66.7307H42.7806L42.1824 66.4181L38.3887 64.4296V63.8584C38.4318 63.8584 38.4749 63.8692 38.5126 63.8907L43.9338 66.7307Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.0582 32.3335C58.0136 32.3334 57.9698 32.3223 57.9305 32.3011L54.4277 30.415C54.3671 30.3799 54.3225 30.3226 54.3034 30.2553C54.2843 30.1879 54.2922 30.1157 54.3254 30.054C54.3587 29.9924 54.4146 29.946 54.4814 29.9249C54.5481 29.9038 54.6205 29.9095 54.6832 29.9408L58.1859 31.8269C58.2387 31.8554 58.2805 31.9006 58.3046 31.9555C58.3287 32.0104 58.3339 32.0718 58.3192 32.1299C58.3046 32.188 58.271 32.2396 58.2237 32.2765C58.1764 32.3134 58.1182 32.3334 58.0582 32.3335Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 35.5667C58.5571 35.5667 58.5177 35.5579 58.4817 35.5408L48.2428 30.6908C48.2108 30.6757 48.1821 30.6544 48.1584 30.6281C48.1346 30.6019 48.1163 30.5713 48.1043 30.5379C48.0803 30.4706 48.084 30.3965 48.1145 30.3319C48.1451 30.2673 48.2001 30.2175 48.2674 30.1935C48.3347 30.1694 48.4088 30.1731 48.4734 30.2037L58.7123 35.0537C58.7677 35.0798 58.8124 35.1241 58.8393 35.1791C58.8661 35.2341 58.8734 35.2966 58.86 35.3563C58.8466 35.416 58.8132 35.4694 58.7654 35.5077C58.7176 35.5459 58.6582 35.5667 58.597 35.5667Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M50.3844 66.7306H49.2312L38.3887 61.0615V60.4956H38.3726C38.3779 60.4902 38.3833 60.4902 38.3887 60.4902H38.4157C38.448 60.4956 38.4803 60.5064 38.5127 60.5226L49.8778 66.4665L50.3682 66.7198C50.3736 66.7252 50.379 66.7252 50.3844 66.7306Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.8396 38.6492C58.7911 38.7462 58.6994 38.8001 58.5971 38.8001C58.5593 38.8001 58.5162 38.7893 58.4785 38.7732L58.3276 38.6977L49.2258 34.2896L47.566 33.4867V33.4813L46.4774 32.9585L41.0616 30.3342L40.9646 30.2857C40.9172 30.2615 40.8779 30.224 40.8514 30.1779C40.8189 30.1236 40.807 30.0594 40.8179 29.9971C40.8288 29.9348 40.8617 29.8784 40.9107 29.8384C41.0185 29.9138 41.0939 30.0378 41.0939 30.1779H41.9777L46.5044 32.3712L47.5498 32.8777L49.1827 33.6699L58.3276 38.0995L58.7156 38.2882C58.7475 38.3037 58.776 38.3253 58.7995 38.3519C58.823 38.3785 58.841 38.4094 58.8526 38.4429C58.8641 38.4765 58.8689 38.512 58.8666 38.5474C58.8644 38.5828 58.8552 38.6174 58.8396 38.6492Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M55.6063 66.6769C55.5956 66.6984 55.5794 66.7146 55.5686 66.7308H55.1106L55.0459 66.6984L38.5343 58.3079C38.4713 58.2737 38.4238 58.2166 38.4017 58.1484C38.3797 58.0802 38.3847 58.0061 38.4158 57.9415C38.4501 57.8786 38.5073 57.8313 38.5754 57.8093C38.6436 57.7872 38.7176 57.7921 38.7822 57.8229L55.4878 66.3104C55.5363 66.3374 55.574 66.3751 55.5956 66.4182C55.6387 66.499 55.6494 66.5906 55.6063 66.6769Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.5594 64.683C58.4947 64.7315 58.4139 64.7584 58.3277 64.7584V65.168L38.5397 55.2093C38.5075 55.1941 38.4788 55.1725 38.4551 55.146C38.4314 55.1195 38.4132 55.0885 38.4017 55.0549C38.3901 55.0212 38.3854 54.9856 38.3878 54.9501C38.3902 54.9146 38.3997 54.88 38.4157 54.8482C38.4858 54.7135 38.6475 54.6596 38.7768 54.7243L38.793 54.7297L57.9235 64.365L58.3277 64.5698L58.5594 64.683Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.7317 61.2879V61.4603C58.6886 61.4873 58.6455 61.4981 58.597 61.4981C58.5558 61.5001 58.5148 61.4907 58.4784 61.4711L58.3276 61.3957L57.9342 61.1963L38.7767 51.5555L38.5396 51.437C38.504 51.4189 38.4729 51.3931 38.4486 51.3613C38.4244 51.3296 38.4076 51.2929 38.3994 51.2538C38.3887 51.2376 38.3887 51.2161 38.3887 51.1945C38.3887 51.1514 38.3995 51.1137 38.4156 51.0759C38.4857 50.9412 38.6473 50.8819 38.7767 50.952L58.3276 60.7975V60.8837C58.5485 60.8837 58.7317 61.0616 58.7317 61.2879Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.3276 57.0254V57.6235L38.5396 47.6649C38.4757 47.633 38.4268 47.5773 38.4037 47.5097C38.3805 47.4422 38.3848 47.3682 38.4156 47.3038C38.4857 47.1691 38.6473 47.1152 38.7767 47.1799L58.3276 57.0254Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.7317 53.4578V53.6194C58.7317 53.7542 58.6617 53.8781 58.5593 53.9482C58.5323 53.9482 58.5054 53.9428 58.4784 53.9266L57.9288 53.6518L38.7874 44.0164L38.5396 43.8925C38.4757 43.8606 38.4268 43.8049 38.4037 43.7373C38.3805 43.6698 38.3848 43.5958 38.4156 43.5314C38.4749 43.4129 38.6096 43.359 38.7282 43.3913L38.7767 43.4075L57.9611 53.0698L58.3276 53.253L58.7156 53.447C58.7209 53.4524 58.7263 53.4524 58.7317 53.4578Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.3276 49.4809V50.0791L38.5396 40.1204C38.4757 40.0885 38.4268 40.0328 38.4037 39.9653C38.3805 39.8977 38.3848 39.8238 38.4156 39.7594C38.4857 39.6246 38.6473 39.5708 38.7767 39.6354L58.3276 49.4809Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 46.4119C58.5549 46.4119 58.5134 46.4022 58.4757 46.3833L38.5369 36.3465C38.5052 36.3306 38.477 36.3086 38.4539 36.2818C38.4308 36.2549 38.4131 36.2238 38.402 36.1902C38.3909 36.1566 38.3866 36.1211 38.3892 36.0858C38.3918 36.0505 38.4013 36.016 38.4172 35.9844C38.4331 35.9527 38.4551 35.9245 38.482 35.9014C38.5088 35.8783 38.5399 35.8607 38.5735 35.8495C38.6071 35.8384 38.6426 35.8341 38.6779 35.8367C38.7133 35.8393 38.7477 35.8488 38.7794 35.8647L58.7182 45.9015C58.7725 45.9287 58.816 45.9735 58.8417 46.0285C58.8674 46.0835 58.8737 46.1456 58.8597 46.2047C58.8456 46.2638 58.8121 46.3164 58.7644 46.354C58.7167 46.3916 58.6577 46.412 58.597 46.4119Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 42.539C58.5549 42.5389 58.5134 42.5289 58.4758 42.5099L38.5369 32.4731C38.505 32.4573 38.4766 32.4354 38.4532 32.4086C38.4299 32.3818 38.4121 32.3506 38.4008 32.3169C38.3896 32.2832 38.3851 32.2476 38.3877 32.2121C38.3902 32.1767 38.3998 32.1421 38.4158 32.1104C38.4318 32.0786 38.4539 32.0503 38.4809 32.0272C38.5078 32.004 38.5391 31.9864 38.5729 31.9754C38.6067 31.9644 38.6424 31.9602 38.6778 31.963C38.7132 31.9658 38.7477 31.9756 38.7794 31.9919L58.7183 42.0287C58.7726 42.0559 58.8161 42.1006 58.8417 42.1556C58.8674 42.2107 58.8737 42.2728 58.8597 42.3318C58.8457 42.3909 58.8121 42.4435 58.7644 42.4811C58.7167 42.5187 58.6577 42.5391 58.597 42.539Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.7\"\n d=\"M59.4056 44.728C65.9532 44.728 71.2612 39.42 71.2612 32.8724C71.2612 26.3248 65.9532 21.0168 59.4056 21.0168C52.858 21.0168 47.55 26.3248 47.55 32.8724C47.55 39.42 52.858 44.728 59.4056 44.728Z\"\n fill=\"white\"\n />\n <path\n d=\"M78.9294 50.4185L70.1078 41.5969C72.0245 39.2332 73.0691 36.2819 73.0663 33.2387C73.0663 25.8937 67.1116 19.939 59.7666 19.939C53.4777 19.939 48.2074 24.3094 46.8278 30.1779C46.6608 30.8892 46.5476 31.6221 46.5045 32.3711C46.4883 32.5651 46.4776 32.7591 46.4776 32.9585C46.4722 33.0501 46.4722 33.1471 46.4722 33.2387C46.4722 34.1926 46.5746 35.1195 46.7632 36.014C46.8117 36.2457 46.8656 36.4667 46.9302 36.693V36.6984C47.3506 38.2666 48.0511 39.7162 48.9726 40.9933V40.9987C49.2259 41.349 49.4953 41.6831 49.7809 42.0065C51.9149 44.4422 54.9273 46.0912 58.3277 46.4523C60.0708 46.6467 61.8352 46.4923 63.518 45.9983C65.2009 45.5042 66.7687 44.6804 68.1301 43.5746L76.9517 52.4016C77.2155 52.6632 77.5718 52.8099 77.9433 52.8099C78.3147 52.8099 78.6711 52.6632 78.9348 52.4016C79.0652 52.2713 79.1684 52.1165 79.2387 51.9462C79.309 51.7758 79.345 51.5932 79.3445 51.4089C79.344 51.2247 79.307 51.0423 79.2358 50.8723C79.1646 50.7023 79.0605 50.5481 78.9294 50.4185ZM59.7558 43.8063C59.2708 43.8063 58.7966 43.774 58.3277 43.7093C55.0297 43.2675 52.2167 41.3005 50.6108 38.5468C50.4546 38.2827 50.3091 38.0079 50.1797 37.7331C49.5143 36.3226 49.1701 34.7821 49.172 33.2226C49.172 32.5382 49.2367 31.87 49.366 31.2179C49.3983 31.0401 49.4361 30.8622 49.4792 30.6844C49.5223 30.5174 49.5654 30.3449 49.6193 30.1779C50.9234 25.8182 54.9704 22.6388 59.7558 22.6388C65.6027 22.6388 70.3396 27.381 70.3396 33.2226C70.3396 39.0695 65.6027 43.8063 59.7558 43.8063Z\"\n fill=\"#333333\"\n />\n <path\n d=\"M58.7319 66.7306C58.7319 66.6234 58.6893 66.5206 58.6135 66.4448C58.5377 66.369 58.4349 66.3264 58.3278 66.3264C58.2206 66.3264 58.1178 66.369 58.042 66.4448C57.9662 66.5206 57.9236 66.6234 57.9236 66.7306\"\n fill=\"#02AC61\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1037_5913\">\n <rect\n width=\"97\"\n height=\"97\"\n fill=\"white\"\n transform=\"translate(0.666504)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n <div className={`${ChartEmptyState.className}__title`}>{title}</div>\n <div className={`${ChartEmptyState.className}__subtitle`}>\n {subtitle}\n </div>\n {onReset ? (\n <StyledResetButton\n variant=\"unstyled\"\n leftIcon={mdiRefresh}\n onPress={onReset}\n >\n {resetLabel}\n </StyledResetButton>\n ) : null}\n </StyledChartEmptyState>\n );\n });\n\nChartEmptyState.className = CLASSNAME;\nChartEmptyState.defaultProps = DEFAULT_PROPS;\nChartEmptyState.displayName = COMPONENT_NAME;\n","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","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","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 { 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","import React, {\n forwardRef,\n RefObject,\n useMemo,\n useReducer,\n useRef,\n useState,\n} 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';\nconst DEFAULT_PROPS: Partial<DashboardProps> = {};\n\nexport const Dashboard: Comp<DashboardProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n data,\n dataGridApiRef: propsDataGridApiRef,\n ...forwardedProps\n } = 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}>\n {children}\n </DashboardContext.Provider>\n </div>\n );\n }\n);\nDashboard.className = CLASSNAME;\nDashboard.defaultProps = DEFAULT_PROPS;\nDashboard.displayName = COMPONENT_NAME;\n","// istanbul ignore file\n\nimport { Font, StyleSheet } from '@react-pdf/renderer';\nconst BACKGROUND_COLOR = '#F8F8F8';\nconst GREY_1 = '#E2E6EA';\nconst GREY_2 = '#bff0fd';\n\nexport const getPdfStyles = (primaryColor: string) => {\n Font.register({\n family: 'Source Code Pro',\n fonts: [\n {\n src: 'https://fonts.gstatic.com/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vT.ttf',\n },\n ],\n });\n\n Font.register({\n family: 'Roboto',\n fonts: [\n {\n fontWeight: 700,\n src: 'https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/fonts/roboto/Roboto-Regular.ttf',\n },\n {\n fontWeight: 400,\n src: 'https://cdnjs.cloudflare.com/ajax/libs/ink/3.1.10/fonts/Roboto/roboto-light-webfont.ttf',\n },\n ],\n });\n\n return StyleSheet.create({\n page: {\n borderTopStyle: 'solid',\n borderTopWidth: 32,\n borderTopColor: primaryColor,\n borderBottomStyle: 'solid',\n borderBottomWidth: 6,\n borderBottomColor: primaryColor,\n backgroundColor: BACKGROUND_COLOR,\n paddingTop: 20,\n paddingBottom: 40,\n },\n logoContainer: {\n margin: 0,\n paddingBottom: 10,\n alignItems: 'center',\n width: '100%',\n },\n logo: {\n width: 'auto',\n height: 30,\n },\n introductionContainer: {\n lineHeight: 1.4,\n textAlign: 'center',\n marginHorizontal: 40,\n marginVertical: 10,\n },\n introductionText: {\n fontSize: 8,\n fontFamily: 'Roboto',\n fontWeight: 400,\n color: 'black',\n },\n pageNumber: {\n fontFamily: 'Source Code Pro',\n position: 'absolute',\n fontSize: 6,\n bottom: 5,\n right: 20,\n left: 0,\n textAlign: 'right',\n color: 'black',\n },\n pageContinue: {\n fontSize: 8,\n fontFamily: 'Roboto',\n fontWeight: 400,\n top: -10,\n left: 20,\n },\n tableContainer: {\n backgroundColor: 'white',\n marginHorizontal: 20,\n marginVertical: 10,\n paddingTop: 10,\n paddingLeft: 10,\n borderRightWidth: 1,\n borderBottomWidth: 1,\n borderRightColor: BACKGROUND_COLOR,\n borderBottomColor: GREY_1,\n width: 'auto',\n },\n tableRowContainer: {\n flexDirection: 'row',\n borderBottomColor: GREY_2,\n alignItems: 'flex-start',\n fontSize: 8,\n marginLeft: 16,\n marginRight: 24,\n height: 'auto',\n },\n tableHeaderContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n fontSize: 7,\n fontFamily: 'Roboto',\n fontWeight: 700,\n marginLeft: 16,\n marginRight: 24,\n marginBottom: 12,\n paddingTop: 12,\n paddingBottom: 12,\n borderBottomWidth: 2,\n borderBottomColor: primaryColor,\n },\n tableCellHeaderText: {\n fontSize: 7,\n fontFamily: 'Roboto',\n fontWeight: 700,\n color: 'black',\n overflow: 'hidden',\n },\n tableCellText: {\n fontSize: 6,\n lineHeight: 1.5,\n fontFamily: 'Roboto',\n fontWeight: 400,\n color: 'black',\n overflow: 'hidden',\n },\n dashboardImageContainer: {\n marginHorizontal: 20,\n marginTop: 0,\n marginBottom: 10,\n },\n constraintsContainer: {\n width: 'auto',\n height: 'auto',\n paddingVertical: 30,\n textAlign: 'center',\n },\n constraints: {\n fontSize: 6,\n fontFamily: 'Roboto',\n fontWeight: 700,\n color: 'black',\n },\n });\n};\n","// istanbul ignore file\n\nimport React from 'react';\nimport { Document, Image, Page, Text, View } from '@react-pdf/renderer';\nimport { GridValidRowModel } from '@mui/x-data-grid-pro';\nimport {\n PdfTableColumn,\n PdfTableRowProps,\n PdfTableProps,\n PdfDocumentProps,\n PdfStyles,\n} from './types';\nimport { getPdfStyles } from './styles';\n\nconst DEFAULT_COLUMN_WIDTH = 100;\n\nconst getWidthColumn = (width: number, totalW: number, nrColumns: number) => {\n // calculation width column where the 7px margin between the columns is included\n return `${Math.round((width * 100) / (totalW - 7 * (nrColumns - 1)))}%`;\n};\n\nconst PdfTableRow = ({\n rowIndex,\n rowData,\n columns,\n styles,\n totalWidth,\n}: PdfTableRowProps) => {\n return (\n <View style={styles.tableRowContainer} key={`row-${rowIndex}`}>\n {columns.map((column: PdfTableColumn, index: number) => {\n const { field, width } = column;\n let totalW = totalWidth;\n let nrColumns = columns.length;\n\n // The checkbox in the table will not be printed\n if (field === '__check__') {\n totalW = totalW - (width || 50);\n nrColumns = nrColumns - 1;\n return;\n }\n const widthColumn = getWidthColumn(\n width || DEFAULT_COLUMN_WIDTH,\n totalW,\n nrColumns\n );\n\n // Empty value will print '-'\n if (!rowData[field]) {\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`cell-${rowIndex}-${index}`}\n >\n <Text style={styles.tableCellText}>{'-'}</Text>\n </View>\n );\n }\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`cell-${rowIndex}-${index}`}\n >\n <Text style={styles.tableCellText}>\n {Array.isArray(rowData[field])\n ? rowData[field].join(', ')\n : rowData[field]}\n </Text>\n </View>\n );\n })}\n </View>\n );\n};\n\nconst PdfTable = ({ dataTable, styles, localeText }: PdfTableProps) => {\n const { data, columns, totalWidth } = dataTable;\n\n return (\n <>\n <View style={styles.tableHeaderContainer}>\n {columns.map((column: PdfTableColumn) => {\n let totalW = totalWidth;\n let nrColumns = columns.length;\n const { field, headerName, width } = column;\n\n // The checkbox in the table will not be printed\n if (field === '__check__') {\n totalW = totalW - (width || 50);\n nrColumns = nrColumns - 1;\n return;\n }\n const widthColumn = getWidthColumn(\n width || DEFAULT_COLUMN_WIDTH,\n totalW,\n nrColumns\n );\n\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`heading-${field}`}\n >\n <Text style={styles.tableCellHeaderText}>{headerName}</Text>\n </View>\n );\n })}\n </View>\n <View>\n {data.map((row: GridValidRowModel, index: number) => {\n if (index < 1000) {\n return (\n <PdfTableRow\n key={index}\n rowIndex={index}\n rowData={data[index]}\n columns={columns}\n styles={styles}\n totalWidth={totalWidth}\n />\n );\n }\n })}\n </View>\n {data.length >= 1000 ? (\n <View style={styles.constraintsContainer}>\n <Text style={styles.constraints}>\n {localeText?.maxSizeDisclaimer ||\n 'Due to processing constraints this pdf is limited to the first 1000 rows of data.'}\n </Text>\n </View>\n ) : null}\n </>\n );\n};\n\nconst Pagination = ({ styles }: { styles: PdfStyles }) => {\n return (\n <Text\n style={styles.pageNumber}\n render={({ pageNumber, totalPages }) => `${pageNumber}/${totalPages}`}\n fixed\n />\n );\n};\n\nexport const PdfDocument = ({\n dashboardImage,\n introduction,\n localeText,\n logo,\n dataTable,\n primaryColor,\n}: PdfDocumentProps) => {\n const styles = getPdfStyles(primaryColor);\n\n return (\n <Document>\n <Page size=\"A4\" style={styles.page}>\n <>\n {logo ? (\n <View style={styles.logoContainer}>\n <Image src={logo} style={styles.logo} />\n </View>\n ) : null}\n {introduction ? (\n <View style={styles.introductionContainer}>\n <Text style={styles.introductionText}>{introduction}</Text>\n </View>\n ) : null}\n {dashboardImage ? (\n <View style={styles.dashboardImageContainer}>\n <Image src={dashboardImage as unknown as string} />\n </View>\n ) : null}\n {dataTable ? (\n <View style={styles.tableContainer}>\n <PdfTable\n dataTable={dataTable}\n styles={styles}\n localeText={localeText}\n />\n </View>\n ) : null}\n\n <Pagination styles={styles} />\n </>\n </Page>\n </Document>\n );\n};\n","// istanbul ignore file\n\nimport React, {\n forwardRef,\n JSXElementConstructor,\n ReactElement,\n RefObject,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport {\n gridFilteredSortedRowEntriesSelector,\n gridVisibleColumnDefinitionsSelector,\n gridColumnsTotalWidthSelector,\n} from '@mui/x-data-grid-pro';\nimport classNames from 'classnames';\nimport { saveAs } from 'file-saver';\nimport { pdf } from '@react-pdf/renderer';\nimport domToImage from 'dom-to-image';\n\nimport {\n Comp,\n Button,\n RedsiftColorDefaultPrimary,\n Spinner,\n} from '@redsift/design-system';\n\nimport { PdfExportButtonProps } from './types';\nimport { PdfDocument } from './PdfDocument';\nimport { DashboardContext } from '../Dashboard';\n\nconst COMPONENT_NAME = 'PdfExportButton';\nconst CLASSNAME = 'redsift-pdf-export-button';\n\nconst getDashboardImage = async (\n componentRef: RefObject<HTMLElement>\n): Promise<string> => {\n const filter = (el: Node) => {\n const classList = (el as HTMLElement).classList;\n return !(\n classList?.contains('redsift-data-grid') ||\n classList?.contains('redsift-button')\n );\n };\n\n const dashboardHeight = (\n componentRef.current as HTMLElement\n ).getBoundingClientRect().height;\n const datagridHeight =\n (componentRef.current as HTMLElement)\n ?.getElementsByClassName('redsift-data-grid')?.[0]\n ?.getBoundingClientRect()?.height || 0;\n\n return new Promise((resolve) => {\n domToImage\n .toPng(componentRef.current as HTMLElement, {\n filter,\n height: dashboardHeight - datagridHeight,\n })\n .then(function (dataUrl: string) {\n resolve(dataUrl);\n })\n .catch(() => {\n resolve('');\n });\n });\n};\n\nexport const PdfExportButton: Comp<PdfExportButtonProps, HTMLButtonElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n componentRef: propComponentRef,\n fileName,\n introduction,\n localeText,\n logo,\n onClick,\n primaryColor,\n ...forwardedProps\n } = props;\n const [componentRef, setComponentRef] = useState(propComponentRef);\n const [isLoading, setIsLoading] = useState(false);\n\n const { dashboardRef, dataGridApiRef } = useContext(DashboardContext);\n\n useEffect(() => {\n if (!componentRef || !componentRef.current) {\n setComponentRef(dashboardRef);\n }\n }, [dashboardRef]);\n\n const exportPdf = async () => {\n if (onClick) {\n onClick();\n }\n setIsLoading(true);\n try {\n const dashboardImage = await getDashboardImage(\n componentRef || dashboardRef!\n );\n\n let dataTable;\n if (\n dataGridApiRef &&\n dataGridApiRef.current &&\n Object.keys(dataGridApiRef.current).length\n ) {\n dataTable = {\n data: gridFilteredSortedRowEntriesSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n )\n .slice(0, 1000)\n .map(({ model }) => model),\n columns: gridVisibleColumnDefinitionsSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n ),\n totalWidth: gridColumnsTotalWidthSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n ),\n };\n }\n\n const doc = (\n <PdfDocument\n localeText={localeText}\n dashboardImage={dashboardImage}\n introduction={introduction}\n logo={logo}\n primaryColor={primaryColor || RedsiftColorDefaultPrimary}\n dataTable={dataTable}\n />\n );\n const asPdf = pdf(\n [] as unknown as ReactElement<\n any,\n string | JSXElementConstructor<any>\n >\n );\n asPdf.updateContainer(doc);\n const blob = await asPdf.toBlob();\n saveAs(blob, fileName || 'redsift-dashboard.pdf');\n } catch (e) {\n console.log('error:', e);\n }\n setIsLoading(false);\n };\n\n return (\n <Button\n className={classNames(PdfExportButton.className, className)}\n onPress={exportPdf}\n isDisabled={isLoading}\n {...forwardedProps}\n ref={ref as RefObject<HTMLButtonElement>}\n >\n {isLoading ? <Spinner size=\"xsmall\" color=\"no-data\" /> : null}{' '}\n {children}\n </Button>\n );\n });\nPdfExportButton.className = CLASSNAME;\nPdfExportButton.displayName = COMPONENT_NAME;\n","// istanbul ignore file\n\nimport { ComponentProps } from 'react';\nimport { ValueOf } from '@redsift/design-system';\nimport { ColorTheme, DimensionSelector, JSONArray } from '../../types';\n\ntype SuccessDangerColorTheme = {\n success: string;\n warning: string;\n danger: string;\n neutral?: string;\n};\n\n/**\n * Component size.\n */\nexport const TimeSeriesBarChartSize = {\n large: 'large',\n medium: 'medium',\n small: 'small',\n} as const;\nexport type TimeSeriesBarChartSize = ValueOf<typeof TimeSeriesBarChartSize>;\n\n/**\n * Component theme.\n */\nexport const TimeSeriesBarChartTheme = ColorTheme;\nexport type TimeSeriesBarChartTheme = ValueOf<typeof TimeSeriesBarChartTheme>;\n\nexport type datetimeEnum = 'hour' | 'day' | 'week' | 'month' | 'year';\n\ninterface LocaleText {\n emptyChartTitle?: string;\n emptyChartSubtitle?: string;\n emptyChartResetLabel?: string;\n resetLabel?: string;\n}\n\n/**\n * Component props.\n */\nexport interface TimeSeriesBarChartProps extends ComponentProps<'div'> {\n /** Caption. */\n caption?: string;\n /** Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Field value of the DataGrid column to filter. */\n columnToFilter?: string;\n /** Dataset to use to generate the chart, if no context is provided. */\n data?: JSONArray;\n /** Name of the dataset field that contains the datetime value. */\n dateTimeFieldName: string;\n /** Format used for the date and time values in the dataset by d3.js. Should follow https://github.com/d3/d3-time-format#locale_format. */\n dateTimeFormat?: string;\n /** Datetime unit to used to group values and for x units. */\n dateTimeGroup?: datetimeEnum;\n /** Method that will be used by crossfilter to compute the dimensions of the charts. */\n dimension: DimensionSelector;\n /** Whether the reset button is hidden or not. */\n isResetable?: boolean;\n /** Overriden values for internal labels and texts. */\n localeText?: LocaleText;\n /** Method to call when a filter occured on the chart. */\n onFilter?: (filters?: string[], allFiltered?: JSONArray) => void;\n /** TimeSeriesChart size. */\n size?: TimeSeriesBarChartSize;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: TimeSeriesBarChartTheme | SuccessDangerColorTheme;\n /** Title. */\n title?: string;\n /** Dataset key to use to stack values. */\n stackedCategory?: string;\n /** X Axis Label. */\n xAxisLabel?: string;\n /** Y Axis Label. */\n yAxisLabel?: string;\n}\n\nexport type StyledTimeSeriesBarChartProps = Omit<\n TimeSeriesBarChartProps,\n 'dimension' | 'dateTimeFieldName'\n> & {};\n","// istanbul ignore file\n\nimport styled, { css } from 'styled-components';\nimport { Flexbox } from '@redsift/design-system';\nimport { StyledTimeSeriesBarChartProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledTimeSeriesBarChart = styled.div<StyledTimeSeriesBarChartProps>`\n margin: 16px;\n padding: 16px;\n color: var(--redsift-color-neutral-black);\n\n .redsift-timeseries-barchart__chart {\n display: flex;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 12px;\n justify-content: center;\n margin: 8px 0;\n }\n\n svg > g {\n margin: 8px;\n }\n\n .grid-line,\n .axis .grid-line,\n .grid-line line,\n .axis .grid-line line {\n fill: none;\n stroke: #ccc;\n shape-rendering: crispEdges;\n }\n\n .axis text {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 10px;\n }\n\n g.stack rect.bar.deselected {\n fill-opacity: 0.5;\n fill: var(--redsift-color-neutral-midgrey);\n }\n\n .brush .custom-brush-handle {\n fill: #eee;\n stroke: #666;\n cursor: ew-resize;\n }\n\n text {\n user-select: none;\n }\n`;\n\nexport const StyledTimeSeriesBarChartTitle = styled(\n Flexbox\n)<StyledTimeSeriesBarChartProps>`\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\nexport const StyledTimeSeriesBarChartCaption = styled.p<StyledTimeSeriesBarChartProps>`\n font-family: var(--redsift-typography-caption-font-family);\n font-size: var(--redsift-typography-caption-font-size);\n font-weight: var(--redsift-typography-caption-font-weight);\n line-height: var(--redsift-typography-caption-line-height);\n`;\n\nexport const StyledTimeSeriesBarChartContainer = styled.div<{\n $isEmpty: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 11px;\n justify-content: center;\n margin: 8px 0;\n position: relative;\n\n .redsift-timeseries-barchart-container__chart {\n position: relative;\n ${({ $isEmpty }) =>\n $isEmpty\n ? css`\n display: none;\n `\n : ''};\n }\n`;\n","// istanbul ignore file\n\nimport React, {\n forwardRef,\n RefObject,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n config as dcconfig,\n filterAll as dcfilterAll,\n filters as dcfilters,\n redrawAll as dcredrawAll,\n barChart as dcbarChart,\n BarChart as dcBarChart,\n UnitFunction as dcUnitFunction,\n} from 'dc';\nimport {\n scaleTime as d3scaleTime,\n timeFormat as d3timeFormat,\n isoParse as d3isoParse,\n utcParse as d3utcParse,\n timeHour as d3timeHour,\n timeHours as d3timeHours,\n timeDay as d3timeDay,\n timeDays as d3timeDays,\n timeWeek as d3timeWeek,\n timeWeeks as d3timeWeeks,\n timeMonth as d3timeMonth,\n timeMonths as d3timeMonths,\n timeYear as d3timeYear,\n timeYears as d3timeYears,\n} from 'd3';\n\nimport { Button, Comp } from '@redsift/design-system';\nimport { scheme, useColor } from '@redsift/charts';\n\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport {\n TimeSeriesBarChartProps,\n TimeSeriesBarChartSize,\n TimeSeriesBarChartTheme,\n} from './types';\nimport { JSONObject, JSONArray } from '../../types';\nimport {\n StyledTimeSeriesBarChart,\n StyledTimeSeriesBarChartCaption,\n StyledTimeSeriesBarChartTitle,\n StyledTimeSeriesBarChartContainer,\n} from './styles';\nimport { GridFilterItem } from '@redsift/table';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\n\nconst COMPONENT_NAME = 'TimeSeriesBarChart';\nconst CLASSNAME = 'redsift-timeseries-barchart';\nconst DEFAULT_PROPS: Partial<TimeSeriesBarChartProps> = {\n dateTimeFormat: '%Y-%m-%d %H:%M:%S',\n dateTimeGroup: 'month',\n isResetable: true,\n localeText: {\n resetLabel: 'Reset',\n },\n size: TimeSeriesBarChartSize.medium,\n};\n\ntype ChartDimensions = {\n width: number;\n height: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n};\n\nconst getStartDate = (dates: Date[]) =>\n new Date(Math.min(...dates.map(Number)));\nconst getEndDate = (dates: Date[]) => new Date(Math.max(...dates.map(Number)));\n\nconst sizeToDimension = (size: TimeSeriesBarChartSize): ChartDimensions => {\n switch (size) {\n case TimeSeriesBarChartSize.small:\n return {\n width: 400,\n height: 200,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n case TimeSeriesBarChartSize.large:\n return {\n width: 1000,\n height: 300,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n case TimeSeriesBarChartSize.medium:\n default:\n return {\n width: 600,\n height: 250,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n }\n};\n\nconst parseDateTimeGroup = (\n data: JSONArray,\n dateTimeGroup: TimeSeriesBarChartProps['dateTimeGroup'],\n dateTimeFieldName: string\n) => {\n const dates = [\n ...data.map(\n (d: typeof data[number]) => new Date(d[dateTimeFieldName] as string)\n ),\n ];\n const startDate = getStartDate(dates);\n const endDate = getEndDate(dates);\n\n switch (dateTimeGroup) {\n case 'hour':\n return {\n group: (g: Date) => d3timeHour(g),\n round: (x: Date) => d3timeHour(x),\n x: d3scaleTime().domain([\n d3timeHour.offset(startDate, -1),\n d3timeHour.offset(endDate, 2),\n ]),\n xUnits: d3timeHours,\n };\n case 'day':\n return {\n group: (g: Date) => d3timeDay(g),\n round: (x: Date) => d3timeDay(x),\n x: d3scaleTime().domain([\n d3timeDay.offset(startDate, -1),\n d3timeDay.offset(endDate, 2),\n ]),\n xUnits: d3timeDays,\n };\n case 'week':\n return {\n group: (g: Date) => d3timeWeek(g),\n round: (x: Date) => d3timeWeek(x),\n x: d3scaleTime().domain([\n d3timeWeek.offset(startDate, -1),\n d3timeWeek.offset(endDate, 2),\n ]),\n xUnits: d3timeWeeks,\n };\n case 'year':\n return {\n group: (g: Date) => d3timeYear(g),\n round: (x: Date) => d3timeYear(x),\n x: d3scaleTime().domain([\n d3timeYear.offset(startDate, -2),\n d3timeYear.offset(endDate, 2),\n ]),\n xUnits: d3timeYears,\n };\n case 'month':\n default:\n return {\n group: (g: Date) => d3timeMonth(g),\n round: (x: Date) => d3timeMonth(x),\n x: d3scaleTime().domain([\n d3timeMonth.offset(startDate, -1),\n d3timeMonth.offset(endDate, 2),\n ]),\n xUnits: d3timeMonths,\n };\n }\n};\n\nexport const TimeSeriesBarChart: Comp<TimeSeriesBarChartProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const containerRef = (ref ||\n useRef<HTMLDivElement>()) as RefObject<HTMLDivElement>;\n const chartRef = useRef<HTMLDivElement>() as RefObject<HTMLDivElement>;\n\n const id = useId();\n const [chart, setChart] = useState<dcBarChart>();\n\n const {\n areXLabelsRotated,\n caption,\n className,\n columnToFilter,\n data: propsData,\n dateTimeFieldName,\n dateTimeFormat = DEFAULT_PROPS.dateTimeFormat,\n dateTimeGroup = DEFAULT_PROPS.dateTimeGroup,\n dimension,\n isResetable,\n localeText,\n onFilter,\n size = DEFAULT_PROPS.size,\n theme = props.stackedCategory\n ? TimeSeriesBarChartTheme.default\n : TimeSeriesBarChartTheme.monochrome,\n title,\n stackedCategory,\n xAxisLabel,\n yAxisLabel,\n ...forwardedProps\n } = props;\n\n // Get overriden labels and texts.\n const {\n emptyChartTitle,\n emptyChartSubtitle,\n emptyChartResetLabel,\n resetLabel,\n } = {\n ...DEFAULT_PROPS.localeText,\n ...localeText,\n };\n\n // Get charts dimensions based on the selected size.\n const chartDimensions = sizeToDimension(size!);\n\n // Get ndx from context or initialize it.\n const { dispatch, state, data } = useContext(DashboardContext);\n const { tableFilters } = state;\n\n // Set color scheme.\n const colorScale = useColor({\n data: propsData ?? data,\n theme: theme!,\n category: stackedCategory!,\n });\n\n const ndx = CrossfilterRegistry.get(propsData ? propsData : data);\n\n // useEffect called only once to initialize the chart.\n useEffect(() => {\n if (chartRef.current) {\n dcconfig.defaultColors(scheme.default);\n const parseTime = d3utcParse(dateTimeFormat!);\n const barChart = dcbarChart(chartRef.current as any);\n const dataset = ndx.all();\n\n // Get time methods based on props\n const { group, round, x, xUnits } = parseDateTimeGroup(\n dataset as JSONArray,\n dateTimeGroup,\n dateTimeFieldName\n );\n\n // Compute dimension and group.\n const computedDimension = ndx.dimension(\n (d: JSONArray) => parseTime(dimension(d) as string) as Date\n );\n const timeGroup = computedDimension.group(group);\n\n // Initialize the chart.\n barChart\n .width(chartDimensions.width)\n .height(chartDimensions.height - (areXLabelsRotated ? 30 : 0))\n .dimension(computedDimension)\n .x(x)\n .xUnits(xUnits as dcUnitFunction)\n .round(round)\n .centerBar(true)\n .alwaysUseRounding(true)\n .renderHorizontalGridLines(true)\n .margins({\n left: chartDimensions.marginLeft! + (yAxisLabel ? 24 : 0),\n top: chartDimensions.marginTop!,\n right: chartDimensions.marginRight!,\n bottom: chartDimensions.marginBottom!,\n })\n .barPadding(0.2);\n\n barChart.yAxis().ticks(5);\n\n // Add label to axis.\n if (xAxisLabel) {\n barChart.xAxisLabel(xAxisLabel);\n }\n if (yAxisLabel) {\n barChart.yAxisLabel(yAxisLabel);\n }\n\n // Rotate labels and reset the height, if asked for.\n if (areXLabelsRotated) {\n barChart.on('pretransition', (rowChart) => {\n barChart\n .select('.axis')\n .attr('text-anchor', 'end')\n .selectAll('text')\n .attr('transform', 'translate(-6,5) rotate(-45)');\n rowChart.select('svg').attr('height', chartDimensions.height);\n });\n }\n\n // Set group whether the chart is stacked or not.\n if (!stackedCategory) {\n barChart.group(timeGroup).colors(colorScale as any);\n } else if (dataset.length) {\n if (!Array.isArray(dataset[0][stackedCategory])) {\n const categories = dataset.reduce(\n (acc: string[], curr: JSONObject) => {\n if (acc.indexOf(curr[stackedCategory] as string) === -1) {\n acc.push(curr[stackedCategory] as string);\n }\n return acc;\n },\n []\n );\n const stackedTimeGroup = timeGroup.reduce(\n (p, v) => {\n (p as JSONObject)[v[stackedCategory]] =\n (((p as JSONObject)[v[stackedCategory]] as number) || 0) + 1;\n return p;\n },\n (p, v) => {\n (p as JSONObject)[v[stackedCategory]] =\n (((p as JSONObject)[v[stackedCategory]] as number) || 0) - 1;\n return p;\n },\n () => ({})\n );\n barChart\n .group(\n stackedTimeGroup,\n categories[0], // @ts-expect-error\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[0])\n )\n .colors(colorScale as any);\n for (var i = 1; i < categories.length; ++i) {\n barChart.stack(\n stackedTimeGroup,\n categories[i],\n (\n (cat) => (d) =>\n d.value[cat]\n )(categories[i])\n );\n }\n } else {\n const categories = dataset.reduce(\n (acc: string[], curr: JSONObject) => {\n (curr[stackedCategory] as string[]).forEach((val: string) => {\n if (acc.indexOf(val) === -1) {\n acc.push(val);\n }\n });\n return acc;\n },\n []\n );\n const stackedTimeGroup = timeGroup.reduce(\n (p, v) => {\n v[stackedCategory].forEach((val: string) => {\n (p as JSONObject)[val] =\n (((p as JSONObject)[val] as number) || 0) + 1;\n });\n return p;\n },\n (p, v) => {\n v[stackedCategory].forEach((val: string) => {\n (p as JSONObject)[val] =\n (((p as JSONObject)[val] as number) || 0) - 1;\n });\n return p;\n },\n () => ({})\n );\n barChart\n .group(\n stackedTimeGroup,\n categories[0], // @ts-expect-error\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[0])\n )\n .colors(colorScale as any);\n for (var i = 1; i < categories.length; ++i) {\n barChart.stack(\n stackedTimeGroup,\n categories[i],\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[i])\n );\n }\n }\n }\n\n // Dispatch filters to datagrid when a value is selected or unselected.\n const formatTime = d3timeFormat('%Y-%m-%dT%H:%M');\n barChart.on('filtered', () => {\n if (columnToFilter) {\n const dateArray = barChart.filters()?.[0];\n if (Array.isArray(dateArray) && dateArray.length === 2) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTableBatch,\n filter: [\n {\n id: `${barChart.anchorName()}-start`,\n columnField: columnToFilter,\n operatorValue: 'after',\n value: formatTime(dateArray[0]),\n },\n {\n id: `${barChart.anchorName()}-end`,\n columnField: columnToFilter,\n operatorValue: 'onOrBefore',\n value: formatTime(dateArray[1]),\n },\n ],\n });\n }\n }\n\n onFilter?.(barChart.filters(), ndx.allFiltered());\n });\n\n // Render the chart.\n barChart.render();\n\n // Store chart for further use.\n setChart(barChart);\n }\n }, [propsData, data]);\n\n // Filter chart if context is updated by an external component.\n const filterStart = tableFilters.find(\n (filter) =>\n filter.columnField === columnToFilter &&\n filter.operatorValue === 'after'\n );\n const filterEnd = tableFilters.find(\n (filter) =>\n filter.columnField === columnToFilter &&\n filter.operatorValue === 'onOrBefore'\n );\n useEffect(() => {\n if (\n chart &&\n filterStart &&\n filterEnd &&\n filterStart.value &&\n filterEnd.value\n ) {\n const chartFiltersObj = chart.filters();\n const chartFilters = chartFiltersObj?.[0];\n const chartFilterStart = chartFilters?.[0];\n const chartFilterEnd = chartFilters?.[1];\n if (\n chartFilterStart !== d3isoParse(filterStart.value) &&\n chartFilterEnd !== d3isoParse(filterEnd.value)\n ) {\n chart.filter(null);\n chart.filter(\n dcfilters.RangedFilter(\n d3isoParse(filterStart.value)?.getTime() || 0,\n d3isoParse(filterEnd.value)?.getTime() || 0\n )\n );\n dcredrawAll();\n }\n }\n }, [filterStart?.value, filterEnd?.value]);\n\n return (\n <StyledTimeSeriesBarChart\n {...forwardedProps}\n className={classNames(TimeSeriesBarChart.className, className)}\n ref={containerRef as RefObject<HTMLDivElement>}\n >\n <StyledTimeSeriesBarChartTitle\n className={`${TimeSeriesBarChart.className}__title`}\n alignItems=\"center\"\n >\n {title ? <div id={`id${id}__title`}>{title}</div> : null}\n {chart && isResetable ? (\n <Button\n variant=\"unstyled\"\n onPress={() => {\n chart.filter(null);\n dcredrawAll();\n\n if (columnToFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${chart.anchorName()}-start`,\n columnField: columnToFilter,\n operatorValue: 'after',\n } as GridFilterItem,\n });\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${chart.anchorName()}-end`,\n columnField: columnToFilter,\n operatorValue: 'onOrBefore',\n } as GridFilterItem,\n });\n }\n }}\n >\n {resetLabel}\n </Button>\n ) : null}\n </StyledTimeSeriesBarChartTitle>\n\n <StyledTimeSeriesBarChartContainer\n className={`${TimeSeriesBarChart.className}__container`}\n $isEmpty={ndx.all().length === 0}\n >\n <div\n className={`${TimeSeriesBarChart.className}-container__chart`}\n ref={chartRef as RefObject<HTMLDivElement>}\n />\n {ndx.all().length === 0 ? (\n <ChartEmptyState\n title={emptyChartTitle!}\n subtitle={emptyChartSubtitle}\n resetLabel={emptyChartResetLabel}\n onReset={() => {\n dcfilterAll();\n dcredrawAll();\n dispatch?.({\n type: DashboardReducerActionType.ResetFilters,\n });\n }}\n />\n ) : null}\n </StyledTimeSeriesBarChartContainer>\n\n {caption ? (\n <StyledTimeSeriesBarChartCaption\n className={`${TimeSeriesBarChart.className}__caption`}\n id={`id${id}__caption`}\n >\n {caption}\n </StyledTimeSeriesBarChartCaption>\n ) : null}\n </StyledTimeSeriesBarChart>\n );\n });\nTimeSeriesBarChart.className = CLASSNAME;\nTimeSeriesBarChart.defaultProps = DEFAULT_PROPS;\nTimeSeriesBarChart.displayName = COMPONENT_NAME;\n","import { GridFilterItem } from '@redsift/table';\nimport { BarDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n} from 'react';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { ChartsWithFiltersProps } from './types';\n\nexport const FilterableBarChart: React.FC<ChartsWithFiltersProps> = (props) => {\n const {\n children,\n datagridCategoryDimFilter,\n dimension,\n group,\n id: propsId,\n isDimensionArray,\n isResetable,\n localeText,\n onFilter,\n } = props;\n const id = propsId ?? useId();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : computedNdxDimension.group();\n setNdxDimension(computedNdxDimension);\n setNdxGroup(computedNdxGroup);\n return function cleanup() {\n computedNdxDimension.filterAll();\n };\n }, [dimension, data, group]);\n\n const [filters, setFilters] = useState<string[]>([]);\n\n const handleFilter = (category: string) => {\n let newFilters: string[];\n if (filters.includes(category)) {\n newFilters = filters.filter((f) => f !== category);\n } else {\n newFilters = [...filters, category];\n }\n\n setFilters(newFilters);\n if (newFilters.length) {\n ndxDimension!.filter((d) => newFilters.includes(d as string));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n value: newFilters,\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const resetFilters = () => {\n setFilters([]);\n ndxDimension!.filterAll();\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n } as GridFilterItem,\n });\n }\n\n if (onFilter) {\n onFilter();\n }\n };\n\n useEffect(() => {\n if (!datagridCategoryDimFilter) {\n return;\n }\n\n const updatedFilters = tableFilters.find(\n (filter) =>\n filter.columnField === datagridCategoryDimFilter.field &&\n filter.operatorValue === datagridCategoryDimFilter.operator\n )?.value;\n if (updatedFilters && updatedFilters !== filters) {\n setFilters(updatedFilters);\n if (updatedFilters.length) {\n ndxDimension!.filter((d) => updatedFilters.includes(d));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\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 filterProps = {\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n id,\n onReset: isResetable ? resetFilters : undefined,\n emptyComponent,\n onBarClick: (datum: BarDatum) => {\n handleFilter(datum.data.key);\n },\n isBarSelected: (datum: BarDatum) => {\n return filters.length === 0 || filters.includes(datum.data.key);\n },\n barRole: 'option',\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { GridFilterModel } from '@redsift/table';\nimport React, { useContext, isValidElement, useState, useEffect } from 'react';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { WithFiltersProps } from './types';\n\nexport const FilterableDataGrid: React.FC<WithFiltersProps> = (props) => {\n const { children, onFilter } = props;\n\n const { state, data, dispatch, dataGridApiRef } =\n useContext(DashboardContext);\n const { tableFilters } = state;\n\n const [filterModel, setFilterModel] = useState<GridFilterModel>();\n useEffect(() => {\n setFilterModel({\n ...filterModel,\n items: tableFilters,\n });\n }, [tableFilters]);\n\n const updateChartFilters = (filterModel: GridFilterModel) => {\n dispatch?.({\n type: DashboardReducerActionType.FilterTableBatch,\n filter: filterModel.items,\n });\n };\n\n if (isValidElement(children)) {\n const filterProps = {\n apiRef: children.props.apiRef ?? dataGridApiRef,\n rows: data || [],\n filterModel,\n onFilterModelChange: (filterModel: GridFilterModel) => {\n if (onFilter) {\n onFilter(filterModel);\n }\n updateChartFilters(filterModel);\n },\n };\n\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { GridFilterItem } from '@redsift/table';\nimport { ArcDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n} from 'react';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { ChartsWithFiltersProps } from './types';\n\nexport const FilterablePieChart: React.FC<ChartsWithFiltersProps> = (props) => {\n const {\n children,\n datagridCategoryDimFilter,\n dimension,\n group,\n id: propsId,\n isDimensionArray,\n isResetable,\n localeText,\n onFilter,\n } = props;\n const id = propsId ?? useId();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : computedNdxDimension.group();\n setNdxDimension(computedNdxDimension);\n setNdxGroup(computedNdxGroup);\n return function cleanup() {\n computedNdxDimension.filterAll();\n };\n }, [dimension, data, group]);\n\n const [filters, setFilters] = useState<string[]>([]);\n\n const handleFilter = (category: string) => {\n let newFilters: string[];\n if (filters.includes(category)) {\n newFilters = filters.filter((f) => f !== category);\n } else {\n newFilters = [...filters, category];\n }\n\n setFilters(newFilters);\n if (newFilters.length) {\n ndxDimension!.filter((d) => newFilters.includes(d as string));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n value: newFilters,\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const resetFilters = () => {\n setFilters([]);\n ndxDimension!.filterAll();\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n } as GridFilterItem,\n });\n }\n\n if (onFilter) {\n onFilter();\n }\n };\n\n const updatedFilters = datagridCategoryDimFilter\n ? tableFilters.find(\n (filter) =>\n filter.columnField === datagridCategoryDimFilter.field &&\n filter.operatorValue === datagridCategoryDimFilter.operator\n )?.value\n : null;\n useEffect(() => {\n if (updatedFilters && updatedFilters !== filters) {\n setFilters(updatedFilters);\n if (updatedFilters.length) {\n ndxDimension!.filter((d) => updatedFilters.includes(d));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n }\n }, [updatedFilters]);\n\n const emptyComponent = (\n <ChartEmptyState\n title={emptyChartTitle!}\n subtitle={emptyChartSubtitle}\n resetLabel={emptyChartResetLabel}\n onReset={resetFilters}\n />\n );\n\n const filterProps = {\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n id,\n onReset: isResetable ? resetFilters : undefined,\n emptyComponent,\n onSliceClick: (datum: ArcDatum) => {\n handleFilter(datum.data.key);\n },\n isSliceSelected: (datum: ArcDatum) => {\n return filters.length === 0 || filters.includes(datum.data.key);\n },\n sliceRole: 'option',\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { DotDatum, LegendItemDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n} 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';\n\ntype BrushFilter = {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n};\n\nconst filter =\n (legendFilters?: string[], brushFilters?: BrushFilter) =>\n (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 &&\n d[0] <= brushFilters.maxX &&\n d[1] >= brushFilters.minY &&\n d[1] <= brushFilters.maxY\n );\n } else {\n return true;\n }\n };\n\nconst isFiltered =\n (legendFilters?: string[], brushFilters?: BrushFilter) =>\n (datum: DotDatum) => {\n if (legendFilters && legendFilters.length && brushFilters) {\n return (\n datum.data.key[0] >= brushFilters.minX &&\n datum.data.key[0] <= brushFilters.maxX &&\n datum.data.key[1] >= brushFilters.minY &&\n datum.data.key[1] <= 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] >= brushFilters.minX &&\n datum.data.key[0] <= brushFilters.maxX &&\n datum.data.key[1] >= brushFilters.minY &&\n datum.data.key[1] <= brushFilters.maxY\n );\n } else {\n return true;\n }\n };\n\nexport const FilterableScatterPlot: React.FC<ChartsWithFiltersProps> = (\n props\n) => {\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 = propsId ?? useId();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : 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) =>\n filter(\n legendFilters,\n newFilters\n )(d as unknown as [number, number, string])\n );\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) =>\n filter(newFilters, brushFilters)(d as unknown as [number, number, string])\n );\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(\n legend ? [] : legendFilters,\n brush ? undefined : brushFilters\n )(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 (\n legendFilters.length === 0 || legendFilters.includes(datum.data.key)\n );\n },\n legendItemRole: 'option',\n };\n\n const filterProps = {\n isBrushable: true,\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n dotRole: 'option',\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) =>\n isFiltered(legendFilters, brushFilters)(datum),\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","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":["groupReduceCount","d","group","reduceCount","COUNT","groupReduceSum","field","reduceSum","SUM","StyledChartEmptyState","styled","div","StyledResetButton","Button","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","title","subtitle","resetLabel","ChartEmptyState","forwardRef","props","ref","onReset","className","mdiRefresh","defaultProps","displayName","initialState","tableFilters","DashboardContext","React","createContext","state","DashboardReducerActionType","areEquals","tableFilter","actionFilter","columnField","operatorValue","addOrUpdateFilter","oldFilters","newFilter","find","f","map","addOrUpdateFilters","newFilters","updatedFilters","i","length","replaceFilters","Array","isArray","removeFilter","filter","removeAllFilters","DashboardReducer","action","type","ResetFilter","_objectSpread","ResetFilters","FilterTable","FilterTableBatch","AppendFilterTableBatch","CrossfilterRegistry","instances","WeakMap","get","data","instance","crossfilter","set","remove","delete","Dashboard","children","dataGridApiRef","propsDataGridApiRef","forwardedProps","_excluded","providerRef","useRef","useGridApiRef","updateContext","setUpdateContext","useState","dispatch","useReducer","value","useMemo","dashboardRef","ndx","toggleUpdateContext","classNames","BACKGROUND_COLOR","GREY_1","GREY_2","getPdfStyles","primaryColor","Font","register","family","fonts","src","fontWeight","StyleSheet","create","page","borderTopStyle","borderTopWidth","borderTopColor","borderBottomStyle","borderBottomWidth","borderBottomColor","backgroundColor","paddingTop","paddingBottom","logoContainer","margin","alignItems","width","logo","height","introductionContainer","lineHeight","textAlign","marginHorizontal","marginVertical","introductionText","fontSize","fontFamily","color","pageNumber","position","bottom","right","left","pageContinue","top","tableContainer","paddingLeft","borderRightWidth","borderRightColor","tableRowContainer","flexDirection","marginLeft","marginRight","tableHeaderContainer","marginBottom","tableCellHeaderText","overflow","tableCellText","dashboardImageContainer","marginTop","constraintsContainer","paddingVertical","constraints","DEFAULT_COLUMN_WIDTH","getWidthColumn","totalW","nrColumns","Math","round","PdfTableRow","rowIndex","rowData","columns","styles","totalWidth","column","index","widthColumn","join","PdfTable","dataTable","localeText","headerName","row","maxSizeDisclaimer","Pagination","totalPages","PdfDocument","dashboardImage","introduction","getDashboardImage","componentRef","el","classList","contains","dashboardHeight","current","getBoundingClientRect","datagridHeight","getElementsByClassName","Promise","resolve","domToImage","toPng","then","dataUrl","catch","PdfExportButton","propComponentRef","fileName","onClick","setComponentRef","isLoading","setIsLoading","useContext","useEffect","exportPdf","Object","keys","gridFilteredSortedRowEntriesSelector","instanceId","slice","model","gridVisibleColumnDefinitionsSelector","gridColumnsTotalWidthSelector","doc","RedsiftColorDefaultPrimary","asPdf","pdf","updateContainer","blob","toBlob","saveAs","e","console","log","TimeSeriesBarChartSize","large","medium","small","TimeSeriesBarChartTheme","ColorTheme","StyledTimeSeriesBarChart","StyledTimeSeriesBarChartTitle","Flexbox","StyledTimeSeriesBarChartCaption","p","StyledTimeSeriesBarChartContainer","$isEmpty","css","dateTimeFormat","dateTimeGroup","isResetable","size","getStartDate","dates","Date","min","Number","getEndDate","max","sizeToDimension","parseDateTimeGroup","dateTimeFieldName","startDate","endDate","g","d3timeHour","x","d3scaleTime","domain","offset","xUnits","d3timeHours","d3timeDay","d3timeDays","d3timeWeek","d3timeWeeks","d3timeYear","d3timeYears","d3timeMonth","d3timeMonths","TimeSeriesBarChart","containerRef","chartRef","id","useId","chart","setChart","areXLabelsRotated","caption","columnToFilter","propsData","dimension","onFilter","theme","stackedCategory","default","monochrome","xAxisLabel","yAxisLabel","emptyChartTitle","emptyChartSubtitle","emptyChartResetLabel","chartDimensions","colorScale","useColor","category","dcconfig","defaultColors","scheme","parseTime","d3utcParse","barChart","dcbarChart","dataset","all","computedDimension","timeGroup","centerBar","alwaysUseRounding","renderHorizontalGridLines","margins","barPadding","yAxis","ticks","on","rowChart","select","attr","selectAll","colors","categories","reduce","acc","curr","indexOf","push","stackedTimeGroup","v","cat","stack","forEach","val","formatTime","d3timeFormat","dateArray","filters","anchorName","allFiltered","render","filterStart","filterEnd","chartFiltersObj","chartFilters","chartFilterStart","chartFilterEnd","d3isoParse","dcfilters","RangedFilter","getTime","dcredrawAll","dcfilterAll","FilterableBarChart","datagridCategoryDimFilter","propsId","isDimensionArray","ndxDimension","setNdxDimension","ndxGroup","setNdxGroup","computedNdxDimension","computedNdxGroup","cleanup","filterAll","setFilters","handleFilter","includes","operator","resetFilters","emptyComponent","filterProps","JSON","parse","stringify","undefined","onBarClick","datum","key","isBarSelected","barRole","isValidElement","cloneElement","FilterableDataGrid","filterModel","setFilterModel","items","updateChartFilters","apiRef","rows","onFilterModelChange","FilterablePieChart","onSliceClick","isSliceSelected","sliceRole","legendFilters","brushFilters","minX","maxX","minY","maxY","isFiltered","FilterableScatterPlot","datagridCoordinatesCategoryDimFilter","setBrushFilters","setLegendFilters","handleBrushFilter","handleLegendFilter","brush","legend","legendProps","onLegendItemClick","isLegendItemSelected","legendItemRole","isBrushable","dotRole","onBrush","selection","scaleX","scaleY","invert","onBrushEnd","isDotSelected","WithFilters","isComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/groupReducers/groupReduceCount.ts","../src/utils/groupReducers/groupReduceSum.ts","../src/components/ChartEmptyState/styles.ts","../src/components/ChartEmptyState/ChartEmptyState.tsx","../src/components/Dashboard/context.ts","../src/components/Dashboard/types.ts","../src/components/Dashboard/reducer.ts","../src/components/CrossfilterRegistry/CrossfilterRegistry.ts","../src/components/Dashboard/Dashboard.tsx","../src/components/PdfExportButton/styles.ts","../src/components/PdfExportButton/PdfDocument.tsx","../src/components/PdfExportButton/PdfExportButton.tsx","../src/components/TimeSeriesBarChart/types.ts","../src/components/TimeSeriesBarChart/styles.ts","../src/components/TimeSeriesBarChart/TimeSeriesBarChart.tsx","../src/hooks/useCategoricalChartAsListbox.ts","../src/components/WithFilters/FilterableBarChart.tsx","../src/components/WithFilters/FilterableDataGrid.tsx","../src/components/WithFilters/FilterablePieChart.tsx","../src/components/WithFilters/FilterableScatterPlot.tsx","../src/components/WithFilters/WithFilters.tsx"],"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","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';\nconst DEFAULT_PROPS: Partial<ChartEmptyStateProps> = {\n title: 'No Data Available',\n subtitle: 'Please check the applied filters',\n resetLabel: 'Reset all filters',\n};\n\nexport const ChartEmptyState: Comp<ChartEmptyStateProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const { onReset, title, subtitle, resetLabel } = props;\n\n return (\n <StyledChartEmptyState\n ref={ref as RefObject<HTMLDivElement>}\n className=\"redsift-chart-empty-state\"\n >\n <div className={`${ChartEmptyState.className}__img`}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"98\"\n height=\"97\"\n viewBox=\"0 0 98 97\"\n fill=\"none\"\n >\n <g clipPath=\"url(#clip0_1037_5913)\">\n <path\n d=\"M49.168 96.4643C75.6571 96.4643 97.1308 74.9906 97.1308 48.5015C97.1308 22.0125 75.6571 0.538818 49.168 0.538818C22.679 0.538818 1.20532 22.0125 1.20532 48.5015C1.20532 74.9906 22.679 96.4643 49.168 96.4643Z\"\n fill=\"#E0F4DE\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.2332 48.2629V66.7307H17.3721V48.2629C17.3721 47.2013 18.2289 46.3445 19.2905 46.3445H34.3147C35.3764 46.3445 36.2332 47.2013 36.2332 48.2629ZM78.8054 58.5018V66.7307H59.9443V58.5018C59.9443 57.4402 60.8011 56.5834 61.8627 56.5834H76.887C77.9486 56.5834 78.8054 57.4402 78.8054 58.5018ZM42.9585 66.8223H42.7969C42.7969 66.7899 42.7915 66.7576 42.7807 66.7307L42.9585 66.8223Z\"\n fill=\"#E5F6EF\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M84.8464 67.1133C84.8464 67.3289 84.6739 67.5013 84.4637 67.5013H11.1749C11.0727 67.5013 10.9747 67.4607 10.9024 67.3885C10.8301 67.3162 10.7896 67.2182 10.7896 67.116C10.7896 67.0138 10.8301 66.9158 10.9024 66.8436C10.9747 66.7713 11.0727 66.7307 11.1749 66.7307H42.7807C42.7915 66.7577 42.7969 66.79 42.7969 66.8223H42.9585L42.7807 66.7307H84.4637C84.6739 66.7307 84.8464 66.9032 84.8464 67.1133Z\"\n fill=\"#333333\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M78.9348 52.4016C78.6711 52.6632 78.3147 52.8099 77.9432 52.8099C77.5718 52.8099 77.2154 52.6632 76.9517 52.4016L68.1301 43.5746C66.7686 44.6804 65.2009 45.5043 63.518 45.9983C61.8351 46.4923 60.0708 46.6467 58.3277 46.4523V47.46C58.5486 47.46 58.7318 47.6432 58.7318 47.8642V48.2522C58.7318 48.4731 58.5486 48.6564 58.3277 48.6564V50.1437C58.5486 50.1437 58.7318 50.3269 58.7318 50.5479V50.9359C58.7318 51.1568 58.5486 51.34 58.3277 51.34V52.8327C58.5486 52.8327 58.7318 53.0106 58.7318 53.2369V53.6195C58.7318 53.7542 58.6618 53.8782 58.5594 53.9482C58.4947 53.9967 58.4139 54.0237 58.3277 54.0237V55.5164C58.5486 55.5164 58.7318 55.6942 58.7318 55.9206V56.3032C58.7318 56.5241 58.5486 56.7074 58.3277 56.7074V58.2001C58.5486 58.2001 58.7318 58.3779 58.7318 58.6042V58.9869C58.7318 59.2078 58.5486 59.391 58.3277 59.391V60.8837C58.5486 60.8837 58.7318 61.0616 58.7318 61.2879V61.6705C58.7318 61.8915 58.5486 62.0747 58.3277 62.0747V63.5674C58.5486 63.5674 58.7318 63.7452 58.7318 63.9716V64.3542C58.7318 64.4889 58.6618 64.6129 58.5594 64.6829C58.4947 64.7314 58.4139 64.7584 58.3277 64.7584V66.2511C58.5486 66.2511 58.7318 66.4289 58.7318 66.6552V66.7307H38.3888V65.8631C38.1678 65.8631 37.9846 65.6852 37.9846 65.4589V65.0763C37.9846 64.8554 38.1678 64.6721 38.3888 64.6721V63.1794C38.1678 63.1794 37.9846 63.0016 37.9846 62.7752V62.3926C37.9846 62.1717 38.1678 61.9885 38.3888 61.9885V60.4957H38.3726C38.2686 60.4907 38.1704 60.446 38.0983 60.3708C38.0261 60.2957 37.9855 60.1958 37.9846 60.0916V59.709C37.9846 59.488 38.1678 59.3048 38.3888 59.3048V57.8121C38.1678 57.8121 37.9846 57.6342 37.9846 57.4079V57.0253C37.9846 56.8044 38.1678 56.6211 38.3888 56.6211V55.1284C38.1678 55.1284 37.9846 54.9452 37.9846 54.7242V54.3416C37.9846 54.1153 38.1678 53.9375 38.3888 53.9375V52.4447C38.1678 52.4447 37.9846 52.2615 37.9846 52.0406V51.658C37.9846 51.437 38.1678 51.2538 38.3888 51.2538V49.7611C38.1678 49.7611 37.9846 49.5779 37.9846 49.3569V48.9743C37.9846 48.748 38.1678 48.5701 38.3888 48.5701V47.0774C38.1678 47.0774 37.9846 46.8942 37.9846 46.6732V46.2906C37.9846 46.0643 38.1678 45.8865 38.3888 45.8865V44.3937C38.1678 44.3937 37.9846 44.2105 37.9846 43.9896V43.607C37.9846 43.3806 38.1678 43.2028 38.3888 43.2028V41.7101C38.1678 41.7101 37.9846 41.5269 37.9846 41.3059V40.9233C37.9846 40.697 38.1678 40.5191 38.3888 40.5191V39.0264C38.1678 39.0264 37.9846 38.8432 37.9846 38.6222V38.2396C37.9846 38.0133 38.1678 37.8355 38.3888 37.8355V36.3427C38.1678 36.3427 37.9846 36.1595 37.9846 35.9386V35.556C37.9846 35.3296 38.1678 35.1518 38.3888 35.1518V33.6591C38.1678 33.6591 37.9846 33.4759 37.9846 33.2549V32.8723C37.9846 32.646 38.1678 32.4681 38.3888 32.4681V32.0963C38.3888 31.7029 38.5073 31.3365 38.7121 31.0347C38.6976 31.0289 38.6846 31.0196 38.6744 31.0077C38.6369 30.97 38.6074 30.9253 38.5873 30.8761C38.5673 30.8268 38.5573 30.7741 38.5578 30.721C38.5583 30.6679 38.5693 30.6154 38.5903 30.5665C38.6112 30.5177 38.6416 30.4735 38.6798 30.4365C38.7876 30.3287 38.9115 30.2317 39.0408 30.1455C39.2295 30.027 39.4773 30.0809 39.6013 30.2641C39.6121 30.2802 39.6175 30.291 39.6228 30.3072C39.7145 30.2695 39.8115 30.2425 39.9085 30.221C39.9031 30.2048 39.9031 30.194 39.9031 30.1779C39.9031 29.9569 40.0809 29.7737 40.3072 29.7737H40.6898C40.7707 29.7737 40.8461 29.8006 40.9108 29.8384C41.0186 29.9138 41.094 30.0377 41.094 30.1779H42.5867C42.5867 29.9569 42.7646 29.7737 42.9909 29.7737H43.3735C43.5945 29.7737 43.7777 29.9569 43.7777 30.1779H45.2704C45.2704 29.9569 45.4482 29.7737 45.6746 29.7737H46.0572C46.2781 29.7737 46.4613 29.9569 46.4613 30.1779H46.8278C48.2073 24.3094 53.4777 19.939 59.7665 19.939C67.1116 19.939 73.0663 25.8937 73.0663 33.2387C73.0663 36.402 71.9562 39.312 70.1078 41.5969L78.9294 50.4185C79.0604 50.5481 79.1645 50.7023 79.2358 50.8723C79.307 51.0423 79.3439 51.2247 79.3444 51.409C79.3449 51.5933 79.309 51.7758 79.2387 51.9462C79.1684 52.1165 79.0651 52.2713 78.9348 52.4016Z\"\n fill=\"#E5F6EF\"\n />\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M36.2332 48.2629V66.7307H17.3721V48.2629C17.3721 47.2013 18.2289 46.3445 19.2905 46.3445H34.3147C35.3763 46.3445 36.2332 47.2013 36.2332 48.2629Z\"\n fill=\"#33B222\"\n />\n </g>\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M78.8055 58.5019V66.7308H59.9443V58.5019C59.9443 57.4403 60.8012 56.5835 61.8628 56.5835H76.887C77.9486 56.5835 78.8055 57.4403 78.8055 58.5019Z\"\n fill=\"#33B222\"\n />\n </g>\n <g opacity=\"0.4\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M42.9585 66.8224H42.7968C42.7968 66.7901 42.7914 66.7578 42.7806 66.7308L42.9585 66.8224ZM58.3276 32.0749V66.7308H38.3887V32.0964C38.3887 31.703 38.5072 31.3366 38.712 31.0348C38.9276 30.7061 39.2455 30.4474 39.6227 30.3073C39.7143 30.2696 39.8113 30.2426 39.9083 30.2211C40.0377 30.1941 40.1724 30.178 40.3071 30.178H56.4091C56.6786 30.178 56.9372 30.2319 57.1743 30.3343C57.6378 30.5336 58.0042 30.9109 58.1875 31.3797C58.2683 31.5737 58.3168 31.7785 58.3168 31.994C58.3276 32.021 58.3276 32.0479 58.3276 32.0749Z\"\n fill=\"#33B222\"\n />\n </g>\n <path\n d=\"M38.3888 64.6721C38.1678 64.6721 37.9846 64.8554 37.9846 65.0763V65.4589C37.9846 65.5661 38.0272 65.6689 38.103 65.7447C38.1788 65.8205 38.2816 65.8631 38.3888 65.8631C38.496 65.8631 38.5988 65.8205 38.6746 65.7447C38.7504 65.6689 38.793 65.5661 38.793 65.4589V65.0763C38.793 64.8554 38.6097 64.6721 38.3888 64.6721ZM58.3277 63.5674C58.1067 63.5674 57.9235 63.7453 57.9235 63.9716V64.365C57.9289 64.5805 58.1121 64.7584 58.3277 64.7584C58.4139 64.7584 58.4947 64.7314 58.5594 64.6829C58.6618 64.6129 58.7318 64.4889 58.7318 64.3542V63.9716C58.7318 63.7453 58.5486 63.5674 58.3277 63.5674ZM38.3888 61.9885C38.1678 61.9885 37.9846 62.1717 37.9846 62.3927V62.7753C37.9846 62.8825 38.0272 62.9853 38.103 63.0611C38.1788 63.1368 38.2816 63.1794 38.3888 63.1794C38.496 63.1794 38.5988 63.1368 38.6746 63.0611C38.7504 62.9853 38.793 62.8825 38.793 62.7753V62.3927C38.793 62.1717 38.6097 61.9885 38.3888 61.9885ZM58.3277 60.8838C58.2746 60.8837 58.222 60.8941 58.1729 60.9144C58.1239 60.9347 58.0793 60.9644 58.0417 61.002C58.0042 61.0395 57.9744 61.0841 57.9541 61.1332C57.9338 61.1822 57.9234 61.2348 57.9235 61.2879V61.6705C57.9235 61.8915 58.1067 62.0747 58.3277 62.0747C58.5486 62.0747 58.7318 61.8915 58.7318 61.6705V61.2879C58.7318 61.0616 58.5486 60.8838 58.3277 60.8838ZM38.3888 59.3048C38.1678 59.3048 37.9846 59.488 37.9846 59.709V60.0916C37.9846 60.3071 38.1571 60.485 38.3726 60.4958H38.3888C38.3996 60.4958 38.405 60.4958 38.4157 60.4904C38.6259 60.4796 38.793 60.3018 38.793 60.0916V59.709C38.793 59.488 38.6097 59.3048 38.3888 59.3048ZM58.3277 58.2001C58.1067 58.2001 57.9235 58.3779 57.9235 58.6043V58.9869C57.9235 59.2078 58.1067 59.391 58.3277 59.391C58.5486 59.391 58.7318 59.2078 58.7318 58.9869V58.6043C58.7318 58.3779 58.5486 58.2001 58.3277 58.2001ZM38.3888 56.6211C38.1678 56.6211 37.9846 56.8044 37.9846 57.0253V57.4079C37.9846 57.5151 38.0272 57.6179 38.103 57.6937C38.1788 57.7695 38.2816 57.8121 38.3888 57.8121C38.496 57.8121 38.5988 57.7695 38.6746 57.6937C38.7504 57.6179 38.793 57.5151 38.793 57.4079V57.0253C38.793 56.8044 38.6097 56.6211 38.3888 56.6211ZM58.3277 55.5164C58.1067 55.5164 57.9235 55.6943 57.9235 55.9206V56.3032C57.9235 56.5241 58.1067 56.7074 58.3277 56.7074C58.5486 56.7074 58.7318 56.5241 58.7318 56.3032V55.9206C58.7318 55.6943 58.5486 55.5164 58.3277 55.5164ZM38.3888 53.9375C38.1678 53.9375 37.9846 54.1153 37.9846 54.3417V54.7243C37.9846 54.9452 38.1678 55.1284 38.3888 55.1284C38.405 55.1284 38.4211 55.1284 38.4373 55.123C38.6367 55.1015 38.7876 54.929 38.793 54.7297V54.3417C38.793 54.1153 38.6097 53.9375 38.3888 53.9375ZM58.3277 52.8328C58.166 52.8328 58.0259 52.9298 57.9612 53.0699C57.9343 53.1184 57.9235 53.1777 57.9235 53.2369V53.6195C57.9235 53.6303 57.9235 53.6411 57.9289 53.6519C57.9397 53.8567 58.1175 54.0237 58.3277 54.0237C58.4139 54.0237 58.4947 53.9968 58.5594 53.9483C58.6618 53.8782 58.7318 53.7543 58.7318 53.6195V53.2369C58.7318 53.0106 58.5486 52.8328 58.3277 52.8328ZM38.7768 51.5556C38.7548 51.4714 38.7062 51.3965 38.6382 51.3421C38.5703 51.2878 38.4866 51.2568 38.3996 51.2538H38.3888C38.1678 51.2538 37.9846 51.437 37.9846 51.658V52.0406C37.9846 52.2615 38.1678 52.4448 38.3888 52.4448C38.6097 52.4448 38.793 52.2615 38.793 52.0406V51.658C38.793 51.6203 38.7876 51.5879 38.7768 51.5556ZM58.3277 50.1437C58.1067 50.1437 57.9235 50.3269 57.9235 50.5479V50.9359C57.9235 51.1568 58.1067 51.34 58.3277 51.34C58.5486 51.34 58.7318 51.1568 58.7318 50.9359V50.5479C58.7318 50.3269 58.5486 50.1437 58.3277 50.1437ZM38.3888 48.5702C38.1678 48.5702 37.9846 48.748 37.9846 48.9743V49.3569C37.9846 49.5779 38.1678 49.7611 38.3888 49.7611C38.6097 49.7611 38.793 49.5779 38.793 49.3569V48.9743C38.793 48.748 38.6097 48.5702 38.3888 48.5702ZM58.3277 47.46C58.1067 47.46 57.9235 47.6433 57.9235 47.8642V48.2522C57.9235 48.4732 58.1067 48.6564 58.3277 48.6564C58.5486 48.6564 58.7318 48.4732 58.7318 48.2522V47.8642C58.7318 47.6433 58.5486 47.46 58.3277 47.46ZM38.3888 45.8865C38.1678 45.8865 37.9846 46.0643 37.9846 46.2906V46.6733C37.9846 46.8942 38.1678 47.0774 38.3888 47.0774C38.6097 47.0774 38.793 46.8942 38.793 46.6733V46.2906C38.793 46.0643 38.6097 45.8865 38.3888 45.8865ZM58.3277 44.7764C58.1067 44.7764 57.9235 44.9596 57.9235 45.1805V45.5685C57.9235 45.7895 58.1067 45.9727 58.3277 45.9727C58.4355 45.9727 58.5378 45.9242 58.6133 45.8542C58.6833 45.7787 58.7318 45.6763 58.7318 45.5685V45.1805C58.7318 44.9596 58.5486 44.7764 58.3277 44.7764ZM38.7283 43.3914C38.6816 43.3176 38.6122 43.261 38.5305 43.2301C38.4489 43.1992 38.3594 43.1956 38.2755 43.2199C38.1916 43.2442 38.1179 43.2951 38.0655 43.3649C38.013 43.4347 37.9846 43.5197 37.9846 43.607V43.9896C37.9846 44.2105 38.1678 44.3938 38.3888 44.3938C38.599 44.3938 38.7768 44.2267 38.7876 44.0165C38.7919 44.0083 38.7938 43.9989 38.793 43.9896V43.607C38.793 43.5262 38.7714 43.4507 38.7283 43.3914ZM58.3277 42.0927C58.193 42.0927 58.069 42.1628 57.999 42.2652C57.9505 42.3298 57.9235 42.4107 57.9235 42.4969V42.8849C57.9235 43.1058 58.1067 43.289 58.3277 43.289C58.5486 43.289 58.7318 43.1058 58.7318 42.8849V42.4969C58.7318 42.2759 58.5486 42.0927 58.3277 42.0927ZM38.3888 40.5192C38.1678 40.5192 37.9846 40.697 37.9846 40.9233V41.3059C37.9846 41.5269 38.1678 41.7101 38.3888 41.7101C38.6097 41.7101 38.793 41.5269 38.793 41.3059V40.9233C38.793 40.697 38.6097 40.5192 38.3888 40.5192ZM58.3277 39.409C58.1067 39.409 57.9235 39.5923 57.9235 39.8132V40.2012C57.9235 40.4222 58.1067 40.6054 58.3277 40.6054C58.5486 40.6054 58.7318 40.4222 58.7318 40.2012V39.8132C58.7318 39.5923 58.5486 39.409 58.3277 39.409ZM38.3888 37.8355C38.1678 37.8355 37.9846 38.0133 37.9846 38.2397V38.6223C37.9846 38.8432 38.1678 39.0264 38.3888 39.0264C38.6097 39.0264 38.793 38.8432 38.793 38.6223V38.2397C38.793 38.0133 38.6097 37.8355 38.3888 37.8355ZM58.3277 36.7254C58.1067 36.7254 57.9235 36.9086 57.9235 37.1295V37.5175C57.9235 37.7385 58.1067 37.9217 58.3277 37.9217C58.5486 37.9217 58.7318 37.7385 58.7318 37.5175V37.1295C58.7318 36.9086 58.5486 36.7254 58.3277 36.7254ZM38.3888 35.1518C38.1678 35.1518 37.9846 35.3297 37.9846 35.556V35.9386C37.9846 36.1595 38.1678 36.3428 38.3888 36.3428C38.4265 36.3428 38.4642 36.3374 38.502 36.3212C38.669 36.2781 38.793 36.1218 38.793 35.9386V35.556C38.793 35.3297 38.6097 35.1518 38.3888 35.1518ZM58.3277 34.0417C58.1067 34.0417 57.9235 34.2249 57.9235 34.4459V34.8339C57.9235 35.0548 58.1067 35.238 58.3277 35.238C58.4732 35.238 58.6025 35.1572 58.6726 35.0387C58.7103 34.9794 58.7318 34.9093 58.7318 34.8339V34.4459C58.7318 34.2249 58.5486 34.0417 58.3277 34.0417ZM38.3888 32.4682C38.1678 32.4682 37.9846 32.646 37.9846 32.8723V33.2549C37.9846 33.4759 38.1678 33.6591 38.3888 33.6591C38.6097 33.6591 38.793 33.4759 38.793 33.2549V32.8723C38.793 32.646 38.6097 32.4682 38.3888 32.4682ZM58.6995 31.6975C58.6904 31.6451 58.671 31.595 58.6425 31.5501C58.614 31.5052 58.5769 31.4664 58.5333 31.4358C58.4898 31.4053 58.4406 31.3837 58.3887 31.3722C58.3368 31.3607 58.2831 31.3595 58.2307 31.3688C58.2145 31.3688 58.1983 31.3742 58.1876 31.3796C58.0421 31.4173 57.9397 31.5359 57.9073 31.676C57.8966 31.7245 57.8912 31.7784 57.902 31.8323C57.9181 31.9185 57.9235 32.0101 57.9235 32.1448C57.9235 32.2041 57.9343 32.2634 57.9612 32.3119C57.9995 32.3955 58.0653 32.4636 58.1476 32.5048C58.2299 32.546 58.3238 32.5578 58.4137 32.5383C58.5037 32.5188 58.5842 32.4692 58.6421 32.3976C58.7 32.326 58.7316 32.2368 58.7318 32.1448V32.0909C58.7318 31.9562 58.7211 31.8269 58.6995 31.6975ZM39.6228 30.3072C39.6179 30.2918 39.6106 30.2773 39.6013 30.2641C39.5415 30.1755 39.4496 30.1137 39.345 30.0916C39.2405 30.0695 39.1314 30.0888 39.0408 30.1455C38.9115 30.2318 38.7876 30.3288 38.6798 30.4365C38.5181 30.5928 38.5181 30.8515 38.6744 31.0078C38.6852 31.0185 38.696 31.0293 38.7121 31.0347C38.7876 31.0994 38.8738 31.1317 38.9654 31.1317C39.0678 31.1317 39.1702 31.094 39.2456 31.0132C39.3157 30.9431 39.3965 30.8784 39.4827 30.8245C39.6552 30.7168 39.7145 30.4904 39.6228 30.3072ZM56.8673 29.8168C56.7162 29.7889 56.5629 29.7744 56.4092 29.7737C56.302 29.7737 56.1992 29.8163 56.1234 29.8921C56.0476 29.9679 56.0051 30.0707 56.0051 30.1779C56.0051 30.2851 56.0476 30.3879 56.1234 30.4637C56.1992 30.5395 56.302 30.582 56.4092 30.582C56.5116 30.582 56.614 30.5928 56.711 30.609C56.738 30.6144 56.7649 30.6198 56.7918 30.6198C56.9697 30.6198 57.126 30.5012 57.1745 30.3342C57.1798 30.3234 57.1852 30.3072 57.1852 30.2964C57.2059 30.1907 57.1842 30.0811 57.1247 29.9914C57.0652 29.9016 56.9727 29.8389 56.8673 29.8168ZM54.4315 29.9408C54.3954 29.8886 54.347 29.8461 54.2906 29.817C54.2343 29.7878 54.1716 29.773 54.1082 29.7737H53.7256C53.6184 29.7737 53.5156 29.8163 53.4398 29.8921C53.364 29.9679 53.3214 30.0707 53.3214 30.1779C53.3214 30.2851 53.364 30.3879 53.4398 30.4637C53.5156 30.5395 53.6184 30.582 53.7256 30.582H54.1082C54.2375 30.582 54.3561 30.5174 54.4315 30.4204C54.48 30.3503 54.5123 30.2695 54.5123 30.1779C54.5136 30.0919 54.4851 30.0081 54.4315 29.9408ZM51.4245 29.7737H51.0419C50.9347 29.7737 50.8319 29.8163 50.7561 29.8921C50.6803 29.9679 50.6377 30.0707 50.6377 30.1779C50.6377 30.2851 50.6803 30.3879 50.7561 30.4637C50.8319 30.5395 50.9347 30.582 51.0419 30.582H51.4245C51.6455 30.582 51.8287 30.3988 51.8287 30.1779C51.8287 29.9569 51.6455 29.7737 51.4245 29.7737ZM48.7408 29.7737H48.3582C48.1319 29.7737 47.9541 29.9569 47.9541 30.1779C47.9541 30.2964 48.008 30.4096 48.0942 30.4797C48.1642 30.5443 48.2558 30.582 48.3582 30.582H48.7408C48.8486 30.582 48.9456 30.5389 49.0211 30.4689C49.0965 30.3934 49.145 30.291 49.145 30.1779C49.145 29.9569 48.9618 29.7737 48.7408 29.7737ZM46.0572 29.7737H45.6746C45.5674 29.7737 45.4646 29.8163 45.3888 29.8921C45.313 29.9679 45.2704 30.0707 45.2704 30.1779C45.2704 30.2851 45.313 30.3879 45.3888 30.4637C45.4646 30.5395 45.5674 30.582 45.6746 30.582H46.0572C46.2781 30.582 46.4613 30.3988 46.4613 30.1779C46.4613 29.9569 46.2781 29.7737 46.0572 29.7737ZM43.3735 29.7737H42.9909C42.8837 29.7737 42.7809 29.8163 42.7051 29.8921C42.6293 29.9679 42.5867 30.0707 42.5867 30.1779C42.5867 30.2851 42.6293 30.3879 42.7051 30.4637C42.7809 30.5395 42.8837 30.582 42.9909 30.582H43.3735C43.5945 30.582 43.7777 30.3988 43.7777 30.1779C43.7777 29.9569 43.5945 29.7737 43.3735 29.7737ZM40.9108 29.8384C40.8442 29.7976 40.7679 29.7753 40.6898 29.7737H40.3072C40.0809 29.7737 39.9031 29.9569 39.9031 30.1779C39.9031 30.194 39.9031 30.2048 39.9085 30.221C39.9246 30.4204 40.0971 30.582 40.3072 30.582H40.6898C40.8569 30.582 41.0024 30.4797 41.0617 30.3342C41.0832 30.2857 41.094 30.2318 41.094 30.1779C41.094 30.0378 41.0186 29.9138 40.9108 29.8384Z\"\n fill=\"#6AA969\"\n />\n <path\n d=\"M42.9586 66.8223H42.7969C42.7969 66.79 42.7915 66.7577 42.7808 66.7307L42.9586 66.8223Z\"\n fill=\"#333333\"\n />\n <path\n opacity=\"0.4\"\n d=\"M43.9338 66.7307H42.7806L42.1824 66.4181L38.3887 64.4296V63.8584C38.4318 63.8584 38.4749 63.8692 38.5126 63.8907L43.9338 66.7307Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.0582 32.3335C58.0136 32.3334 57.9698 32.3223 57.9305 32.3011L54.4277 30.415C54.3671 30.3799 54.3225 30.3226 54.3034 30.2553C54.2843 30.1879 54.2922 30.1157 54.3254 30.054C54.3587 29.9924 54.4146 29.946 54.4814 29.9249C54.5481 29.9038 54.6205 29.9095 54.6832 29.9408L58.1859 31.8269C58.2387 31.8554 58.2805 31.9006 58.3046 31.9555C58.3287 32.0104 58.3339 32.0718 58.3192 32.1299C58.3046 32.188 58.271 32.2396 58.2237 32.2765C58.1764 32.3134 58.1182 32.3334 58.0582 32.3335Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 35.5667C58.5571 35.5667 58.5177 35.5579 58.4817 35.5408L48.2428 30.6908C48.2108 30.6757 48.1821 30.6544 48.1584 30.6281C48.1346 30.6019 48.1163 30.5713 48.1043 30.5379C48.0803 30.4706 48.084 30.3965 48.1145 30.3319C48.1451 30.2673 48.2001 30.2175 48.2674 30.1935C48.3347 30.1694 48.4088 30.1731 48.4734 30.2037L58.7123 35.0537C58.7677 35.0798 58.8124 35.1241 58.8393 35.1791C58.8661 35.2341 58.8734 35.2966 58.86 35.3563C58.8466 35.416 58.8132 35.4694 58.7654 35.5077C58.7176 35.5459 58.6582 35.5667 58.597 35.5667Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M50.3844 66.7306H49.2312L38.3887 61.0615V60.4956H38.3726C38.3779 60.4902 38.3833 60.4902 38.3887 60.4902H38.4157C38.448 60.4956 38.4803 60.5064 38.5127 60.5226L49.8778 66.4665L50.3682 66.7198C50.3736 66.7252 50.379 66.7252 50.3844 66.7306Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.8396 38.6492C58.7911 38.7462 58.6994 38.8001 58.5971 38.8001C58.5593 38.8001 58.5162 38.7893 58.4785 38.7732L58.3276 38.6977L49.2258 34.2896L47.566 33.4867V33.4813L46.4774 32.9585L41.0616 30.3342L40.9646 30.2857C40.9172 30.2615 40.8779 30.224 40.8514 30.1779C40.8189 30.1236 40.807 30.0594 40.8179 29.9971C40.8288 29.9348 40.8617 29.8784 40.9107 29.8384C41.0185 29.9138 41.0939 30.0378 41.0939 30.1779H41.9777L46.5044 32.3712L47.5498 32.8777L49.1827 33.6699L58.3276 38.0995L58.7156 38.2882C58.7475 38.3037 58.776 38.3253 58.7995 38.3519C58.823 38.3785 58.841 38.4094 58.8526 38.4429C58.8641 38.4765 58.8689 38.512 58.8666 38.5474C58.8644 38.5828 58.8552 38.6174 58.8396 38.6492Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M55.6063 66.6769C55.5956 66.6984 55.5794 66.7146 55.5686 66.7308H55.1106L55.0459 66.6984L38.5343 58.3079C38.4713 58.2737 38.4238 58.2166 38.4017 58.1484C38.3797 58.0802 38.3847 58.0061 38.4158 57.9415C38.4501 57.8786 38.5073 57.8313 38.5754 57.8093C38.6436 57.7872 38.7176 57.7921 38.7822 57.8229L55.4878 66.3104C55.5363 66.3374 55.574 66.3751 55.5956 66.4182C55.6387 66.499 55.6494 66.5906 55.6063 66.6769Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.5594 64.683C58.4947 64.7315 58.4139 64.7584 58.3277 64.7584V65.168L38.5397 55.2093C38.5075 55.1941 38.4788 55.1725 38.4551 55.146C38.4314 55.1195 38.4132 55.0885 38.4017 55.0549C38.3901 55.0212 38.3854 54.9856 38.3878 54.9501C38.3902 54.9146 38.3997 54.88 38.4157 54.8482C38.4858 54.7135 38.6475 54.6596 38.7768 54.7243L38.793 54.7297L57.9235 64.365L58.3277 64.5698L58.5594 64.683Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.7317 61.2879V61.4603C58.6886 61.4873 58.6455 61.4981 58.597 61.4981C58.5558 61.5001 58.5148 61.4907 58.4784 61.4711L58.3276 61.3957L57.9342 61.1963L38.7767 51.5555L38.5396 51.437C38.504 51.4189 38.4729 51.3931 38.4486 51.3613C38.4244 51.3296 38.4076 51.2929 38.3994 51.2538C38.3887 51.2376 38.3887 51.2161 38.3887 51.1945C38.3887 51.1514 38.3995 51.1137 38.4156 51.0759C38.4857 50.9412 38.6473 50.8819 38.7767 50.952L58.3276 60.7975V60.8837C58.5485 60.8837 58.7317 61.0616 58.7317 61.2879Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.3276 57.0254V57.6235L38.5396 47.6649C38.4757 47.633 38.4268 47.5773 38.4037 47.5097C38.3805 47.4422 38.3848 47.3682 38.4156 47.3038C38.4857 47.1691 38.6473 47.1152 38.7767 47.1799L58.3276 57.0254Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.7317 53.4578V53.6194C58.7317 53.7542 58.6617 53.8781 58.5593 53.9482C58.5323 53.9482 58.5054 53.9428 58.4784 53.9266L57.9288 53.6518L38.7874 44.0164L38.5396 43.8925C38.4757 43.8606 38.4268 43.8049 38.4037 43.7373C38.3805 43.6698 38.3848 43.5958 38.4156 43.5314C38.4749 43.4129 38.6096 43.359 38.7282 43.3913L38.7767 43.4075L57.9611 53.0698L58.3276 53.253L58.7156 53.447C58.7209 53.4524 58.7263 53.4524 58.7317 53.4578Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.3276 49.4809V50.0791L38.5396 40.1204C38.4757 40.0885 38.4268 40.0328 38.4037 39.9653C38.3805 39.8977 38.3848 39.8238 38.4156 39.7594C38.4857 39.6246 38.6473 39.5708 38.7767 39.6354L58.3276 49.4809Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 46.4119C58.5549 46.4119 58.5134 46.4022 58.4757 46.3833L38.5369 36.3465C38.5052 36.3306 38.477 36.3086 38.4539 36.2818C38.4308 36.2549 38.4131 36.2238 38.402 36.1902C38.3909 36.1566 38.3866 36.1211 38.3892 36.0858C38.3918 36.0505 38.4013 36.016 38.4172 35.9844C38.4331 35.9527 38.4551 35.9245 38.482 35.9014C38.5088 35.8783 38.5399 35.8607 38.5735 35.8495C38.6071 35.8384 38.6426 35.8341 38.6779 35.8367C38.7133 35.8393 38.7477 35.8488 38.7794 35.8647L58.7182 45.9015C58.7725 45.9287 58.816 45.9735 58.8417 46.0285C58.8674 46.0835 58.8737 46.1456 58.8597 46.2047C58.8456 46.2638 58.8121 46.3164 58.7644 46.354C58.7167 46.3916 58.6577 46.412 58.597 46.4119Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.4\"\n d=\"M58.597 42.539C58.5549 42.5389 58.5134 42.5289 58.4758 42.5099L38.5369 32.4731C38.505 32.4573 38.4766 32.4354 38.4532 32.4086C38.4299 32.3818 38.4121 32.3506 38.4008 32.3169C38.3896 32.2832 38.3851 32.2476 38.3877 32.2121C38.3902 32.1767 38.3998 32.1421 38.4158 32.1104C38.4318 32.0786 38.4539 32.0503 38.4809 32.0272C38.5078 32.004 38.5391 31.9864 38.5729 31.9754C38.6067 31.9644 38.6424 31.9602 38.6778 31.963C38.7132 31.9658 38.7477 31.9756 38.7794 31.9919L58.7183 42.0287C58.7726 42.0559 58.8161 42.1006 58.8417 42.1556C58.8674 42.2107 58.8737 42.2728 58.8597 42.3318C58.8457 42.3909 58.8121 42.4435 58.7644 42.4811C58.7167 42.5187 58.6577 42.5391 58.597 42.539Z\"\n fill=\"#1C5F1B\"\n />\n <path\n opacity=\"0.7\"\n d=\"M59.4056 44.728C65.9532 44.728 71.2612 39.42 71.2612 32.8724C71.2612 26.3248 65.9532 21.0168 59.4056 21.0168C52.858 21.0168 47.55 26.3248 47.55 32.8724C47.55 39.42 52.858 44.728 59.4056 44.728Z\"\n fill=\"white\"\n />\n <path\n d=\"M78.9294 50.4185L70.1078 41.5969C72.0245 39.2332 73.0691 36.2819 73.0663 33.2387C73.0663 25.8937 67.1116 19.939 59.7666 19.939C53.4777 19.939 48.2074 24.3094 46.8278 30.1779C46.6608 30.8892 46.5476 31.6221 46.5045 32.3711C46.4883 32.5651 46.4776 32.7591 46.4776 32.9585C46.4722 33.0501 46.4722 33.1471 46.4722 33.2387C46.4722 34.1926 46.5746 35.1195 46.7632 36.014C46.8117 36.2457 46.8656 36.4667 46.9302 36.693V36.6984C47.3506 38.2666 48.0511 39.7162 48.9726 40.9933V40.9987C49.2259 41.349 49.4953 41.6831 49.7809 42.0065C51.9149 44.4422 54.9273 46.0912 58.3277 46.4523C60.0708 46.6467 61.8352 46.4923 63.518 45.9983C65.2009 45.5042 66.7687 44.6804 68.1301 43.5746L76.9517 52.4016C77.2155 52.6632 77.5718 52.8099 77.9433 52.8099C78.3147 52.8099 78.6711 52.6632 78.9348 52.4016C79.0652 52.2713 79.1684 52.1165 79.2387 51.9462C79.309 51.7758 79.345 51.5932 79.3445 51.4089C79.344 51.2247 79.307 51.0423 79.2358 50.8723C79.1646 50.7023 79.0605 50.5481 78.9294 50.4185ZM59.7558 43.8063C59.2708 43.8063 58.7966 43.774 58.3277 43.7093C55.0297 43.2675 52.2167 41.3005 50.6108 38.5468C50.4546 38.2827 50.3091 38.0079 50.1797 37.7331C49.5143 36.3226 49.1701 34.7821 49.172 33.2226C49.172 32.5382 49.2367 31.87 49.366 31.2179C49.3983 31.0401 49.4361 30.8622 49.4792 30.6844C49.5223 30.5174 49.5654 30.3449 49.6193 30.1779C50.9234 25.8182 54.9704 22.6388 59.7558 22.6388C65.6027 22.6388 70.3396 27.381 70.3396 33.2226C70.3396 39.0695 65.6027 43.8063 59.7558 43.8063Z\"\n fill=\"#333333\"\n />\n <path\n d=\"M58.7319 66.7306C58.7319 66.6234 58.6893 66.5206 58.6135 66.4448C58.5377 66.369 58.4349 66.3264 58.3278 66.3264C58.2206 66.3264 58.1178 66.369 58.042 66.4448C57.9662 66.5206 57.9236 66.6234 57.9236 66.7306\"\n fill=\"#02AC61\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_1037_5913\">\n <rect\n width=\"97\"\n height=\"97\"\n fill=\"white\"\n transform=\"translate(0.666504)\"\n />\n </clipPath>\n </defs>\n </svg>\n </div>\n <div className={`${ChartEmptyState.className}__title`}>{title}</div>\n <div className={`${ChartEmptyState.className}__subtitle`}>\n {subtitle}\n </div>\n {onReset ? (\n <StyledResetButton\n variant=\"unstyled\"\n leftIcon={mdiRefresh}\n onClick={onReset}\n >\n {resetLabel}\n </StyledResetButton>\n ) : null}\n </StyledChartEmptyState>\n );\n });\n\nChartEmptyState.className = CLASSNAME;\nChartEmptyState.defaultProps = DEFAULT_PROPS;\nChartEmptyState.displayName = COMPONENT_NAME;\n","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","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","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 { 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","import React, {\n forwardRef,\n RefObject,\n useMemo,\n useReducer,\n useRef,\n useState,\n} 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';\nconst DEFAULT_PROPS: Partial<DashboardProps> = {};\n\nexport const Dashboard: Comp<DashboardProps, HTMLDivElement> = forwardRef(\n (props, ref) => {\n const {\n children,\n className,\n data,\n dataGridApiRef: propsDataGridApiRef,\n ...forwardedProps\n } = 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}>\n {children}\n </DashboardContext.Provider>\n </div>\n );\n }\n);\nDashboard.className = CLASSNAME;\nDashboard.defaultProps = DEFAULT_PROPS;\nDashboard.displayName = COMPONENT_NAME;\n","// istanbul ignore file\n\nimport { Font, StyleSheet } from '@react-pdf/renderer';\nconst BACKGROUND_COLOR = '#F8F8F8';\nconst GREY_1 = '#E2E6EA';\nconst GREY_2 = '#bff0fd';\n\nexport const getPdfStyles = (primaryColor: string) => {\n Font.register({\n family: 'Source Code Pro',\n fonts: [\n {\n src: 'https://fonts.gstatic.com/s/sourcecodepro/v7/HI_SiYsKILxRpg3hIP6sJ7fM7PqlM-vT.ttf',\n },\n ],\n });\n\n Font.register({\n family: 'Roboto',\n fonts: [\n {\n fontWeight: 700,\n src: 'https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/fonts/roboto/Roboto-Regular.ttf',\n },\n {\n fontWeight: 400,\n src: 'https://cdnjs.cloudflare.com/ajax/libs/ink/3.1.10/fonts/Roboto/roboto-light-webfont.ttf',\n },\n ],\n });\n\n return StyleSheet.create({\n page: {\n borderTopStyle: 'solid',\n borderTopWidth: 32,\n borderTopColor: primaryColor,\n borderBottomStyle: 'solid',\n borderBottomWidth: 6,\n borderBottomColor: primaryColor,\n backgroundColor: BACKGROUND_COLOR,\n paddingTop: 20,\n paddingBottom: 40,\n },\n logoContainer: {\n margin: 0,\n paddingBottom: 10,\n alignItems: 'center',\n width: '100%',\n },\n logo: {\n width: 'auto',\n height: 30,\n },\n introductionContainer: {\n lineHeight: 1.4,\n textAlign: 'center',\n marginHorizontal: 40,\n marginVertical: 10,\n },\n introductionText: {\n fontSize: 8,\n fontFamily: 'Roboto',\n fontWeight: 400,\n color: 'black',\n },\n pageNumber: {\n fontFamily: 'Source Code Pro',\n position: 'absolute',\n fontSize: 6,\n bottom: 5,\n right: 20,\n left: 0,\n textAlign: 'right',\n color: 'black',\n },\n pageContinue: {\n fontSize: 8,\n fontFamily: 'Roboto',\n fontWeight: 400,\n top: -10,\n left: 20,\n },\n tableContainer: {\n backgroundColor: 'white',\n marginHorizontal: 20,\n marginVertical: 10,\n paddingTop: 10,\n paddingLeft: 10,\n borderRightWidth: 1,\n borderBottomWidth: 1,\n borderRightColor: BACKGROUND_COLOR,\n borderBottomColor: GREY_1,\n width: 'auto',\n },\n tableRowContainer: {\n flexDirection: 'row',\n borderBottomColor: GREY_2,\n alignItems: 'flex-start',\n fontSize: 8,\n marginLeft: 16,\n marginRight: 24,\n height: 'auto',\n },\n tableHeaderContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n fontSize: 7,\n fontFamily: 'Roboto',\n fontWeight: 700,\n marginLeft: 16,\n marginRight: 24,\n marginBottom: 12,\n paddingTop: 12,\n paddingBottom: 12,\n borderBottomWidth: 2,\n borderBottomColor: primaryColor,\n },\n tableCellHeaderText: {\n fontSize: 7,\n fontFamily: 'Roboto',\n fontWeight: 700,\n color: 'black',\n overflow: 'hidden',\n },\n tableCellText: {\n fontSize: 6,\n lineHeight: 1.5,\n fontFamily: 'Roboto',\n fontWeight: 400,\n color: 'black',\n overflow: 'hidden',\n },\n dashboardImageContainer: {\n marginHorizontal: 20,\n marginTop: 0,\n marginBottom: 10,\n },\n constraintsContainer: {\n width: 'auto',\n height: 'auto',\n paddingVertical: 30,\n textAlign: 'center',\n },\n constraints: {\n fontSize: 6,\n fontFamily: 'Roboto',\n fontWeight: 700,\n color: 'black',\n },\n });\n};\n","// istanbul ignore file\n\nimport React from 'react';\nimport { Document, Image, Page, Text, View } from '@react-pdf/renderer';\nimport { GridValidRowModel } from '@mui/x-data-grid-pro';\nimport {\n PdfTableColumn,\n PdfTableRowProps,\n PdfTableProps,\n PdfDocumentProps,\n PdfStyles,\n} from './types';\nimport { getPdfStyles } from './styles';\n\nconst DEFAULT_COLUMN_WIDTH = 100;\n\nconst getWidthColumn = (width: number, totalW: number, nrColumns: number) => {\n // calculation width column where the 7px margin between the columns is included\n return `${Math.round((width * 100) / (totalW - 7 * (nrColumns - 1)))}%`;\n};\n\nconst PdfTableRow = ({\n rowIndex,\n rowData,\n columns,\n styles,\n totalWidth,\n}: PdfTableRowProps) => {\n return (\n <View style={styles.tableRowContainer} key={`row-${rowIndex}`}>\n {columns.map((column: PdfTableColumn, index: number) => {\n const { field, width } = column;\n let totalW = totalWidth;\n let nrColumns = columns.length;\n\n // The checkbox in the table will not be printed\n if (field === '__check__') {\n totalW = totalW - (width || 50);\n nrColumns = nrColumns - 1;\n return;\n }\n const widthColumn = getWidthColumn(\n width || DEFAULT_COLUMN_WIDTH,\n totalW,\n nrColumns\n );\n\n // Empty value will print '-'\n if (!rowData[field]) {\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`cell-${rowIndex}-${index}`}\n >\n <Text style={styles.tableCellText}>{'-'}</Text>\n </View>\n );\n }\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`cell-${rowIndex}-${index}`}\n >\n <Text style={styles.tableCellText}>\n {Array.isArray(rowData[field])\n ? rowData[field].join(', ')\n : rowData[field]}\n </Text>\n </View>\n );\n })}\n </View>\n );\n};\n\nconst PdfTable = ({ dataTable, styles, localeText }: PdfTableProps) => {\n const { data, columns, totalWidth } = dataTable;\n\n return (\n <>\n <View style={styles.tableHeaderContainer}>\n {columns.map((column: PdfTableColumn) => {\n let totalW = totalWidth;\n let nrColumns = columns.length;\n const { field, headerName, width } = column;\n\n // The checkbox in the table will not be printed\n if (field === '__check__') {\n totalW = totalW - (width || 50);\n nrColumns = nrColumns - 1;\n return;\n }\n const widthColumn = getWidthColumn(\n width || DEFAULT_COLUMN_WIDTH,\n totalW,\n nrColumns\n );\n\n return (\n <View\n style={{\n width: widthColumn,\n paddingVertical: 2,\n marginRight: 7,\n }}\n key={`heading-${field}`}\n >\n <Text style={styles.tableCellHeaderText}>{headerName}</Text>\n </View>\n );\n })}\n </View>\n <View>\n {data.map((row: GridValidRowModel, index: number) => {\n if (index < 1000) {\n return (\n <PdfTableRow\n key={index}\n rowIndex={index}\n rowData={data[index]}\n columns={columns}\n styles={styles}\n totalWidth={totalWidth}\n />\n );\n }\n })}\n </View>\n {data.length >= 1000 ? (\n <View style={styles.constraintsContainer}>\n <Text style={styles.constraints}>\n {localeText?.maxSizeDisclaimer ||\n 'Due to processing constraints this pdf is limited to the first 1000 rows of data.'}\n </Text>\n </View>\n ) : null}\n </>\n );\n};\n\nconst Pagination = ({ styles }: { styles: PdfStyles }) => {\n return (\n <Text\n style={styles.pageNumber}\n render={({ pageNumber, totalPages }) => `${pageNumber}/${totalPages}`}\n fixed\n />\n );\n};\n\nexport const PdfDocument = ({\n dashboardImage,\n introduction,\n localeText,\n logo,\n dataTable,\n primaryColor,\n}: PdfDocumentProps) => {\n const styles = getPdfStyles(primaryColor);\n\n return (\n <Document>\n <Page size=\"A4\" style={styles.page}>\n <>\n {logo ? (\n <View style={styles.logoContainer}>\n <Image src={logo} style={styles.logo} />\n </View>\n ) : null}\n {introduction ? (\n <View style={styles.introductionContainer}>\n <Text style={styles.introductionText}>{introduction}</Text>\n </View>\n ) : null}\n {dashboardImage ? (\n <View style={styles.dashboardImageContainer}>\n <Image src={dashboardImage as unknown as string} />\n </View>\n ) : null}\n {dataTable ? (\n <View style={styles.tableContainer}>\n <PdfTable\n dataTable={dataTable}\n styles={styles}\n localeText={localeText}\n />\n </View>\n ) : null}\n\n <Pagination styles={styles} />\n </>\n </Page>\n </Document>\n );\n};\n","// istanbul ignore file\n\nimport React, {\n forwardRef,\n JSXElementConstructor,\n ReactElement,\n RefObject,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport {\n gridFilteredSortedRowEntriesSelector,\n gridVisibleColumnDefinitionsSelector,\n gridColumnsTotalWidthSelector,\n} from '@mui/x-data-grid-pro';\nimport classNames from 'classnames';\nimport { saveAs } from 'file-saver';\nimport { pdf } from '@react-pdf/renderer';\nimport domToImage from 'dom-to-image';\n\nimport {\n Comp,\n Button,\n RedsiftColorDefaultPrimary,\n Spinner,\n} from '@redsift/design-system';\n\nimport { PdfExportButtonProps } from './types';\nimport { PdfDocument } from './PdfDocument';\nimport { DashboardContext } from '../Dashboard';\n\nconst COMPONENT_NAME = 'PdfExportButton';\nconst CLASSNAME = 'redsift-pdf-export-button';\n\nconst getDashboardImage = async (\n componentRef: RefObject<HTMLElement>\n): Promise<string> => {\n const filter = (el: Node) => {\n const classList = (el as HTMLElement).classList;\n return !(\n classList?.contains('redsift-data-grid') ||\n classList?.contains('redsift-button')\n );\n };\n\n const dashboardHeight = (\n componentRef.current as HTMLElement\n ).getBoundingClientRect().height;\n const datagridHeight =\n (componentRef.current as HTMLElement)\n ?.getElementsByClassName('redsift-data-grid')?.[0]\n ?.getBoundingClientRect()?.height || 0;\n\n return new Promise((resolve) => {\n domToImage\n .toPng(componentRef.current as HTMLElement, {\n filter,\n height: dashboardHeight - datagridHeight,\n })\n .then(function (dataUrl: string) {\n resolve(dataUrl);\n })\n .catch(() => {\n resolve('');\n });\n });\n};\n\nexport const PdfExportButton: Comp<PdfExportButtonProps, HTMLButtonElement> =\n forwardRef((props, ref) => {\n const {\n children,\n className,\n componentRef: propComponentRef,\n fileName,\n introduction,\n localeText,\n logo,\n onClick,\n primaryColor,\n ...forwardedProps\n } = props;\n const [componentRef, setComponentRef] = useState(propComponentRef);\n const [isLoading, setIsLoading] = useState(false);\n\n const { dashboardRef, dataGridApiRef } = useContext(DashboardContext);\n\n useEffect(() => {\n if (!componentRef || !componentRef.current) {\n setComponentRef(dashboardRef);\n }\n }, [dashboardRef]);\n\n const exportPdf = async () => {\n if (onClick) {\n onClick();\n }\n setIsLoading(true);\n try {\n const dashboardImage = await getDashboardImage(\n componentRef || dashboardRef!\n );\n\n let dataTable;\n if (\n dataGridApiRef &&\n dataGridApiRef.current &&\n Object.keys(dataGridApiRef.current).length\n ) {\n dataTable = {\n data: gridFilteredSortedRowEntriesSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n )\n .slice(0, 1000)\n .map(({ model }) => model),\n columns: gridVisibleColumnDefinitionsSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n ),\n totalWidth: gridColumnsTotalWidthSelector(\n dataGridApiRef.current.state,\n dataGridApiRef.current.instanceId\n ),\n };\n }\n\n const doc = (\n <PdfDocument\n localeText={localeText}\n dashboardImage={dashboardImage}\n introduction={introduction}\n logo={logo}\n primaryColor={primaryColor || RedsiftColorDefaultPrimary}\n dataTable={dataTable}\n />\n );\n const asPdf = pdf(\n [] as unknown as ReactElement<\n any,\n string | JSXElementConstructor<any>\n >\n );\n asPdf.updateContainer(doc);\n const blob = await asPdf.toBlob();\n saveAs(blob, fileName || 'redsift-dashboard.pdf');\n } catch (e) {\n console.log('error:', e);\n }\n setIsLoading(false);\n };\n\n return (\n <Button\n className={classNames(PdfExportButton.className, className)}\n onClick={exportPdf}\n isDisabled={isLoading}\n {...forwardedProps}\n ref={ref as RefObject<HTMLButtonElement>}\n >\n {isLoading ? <Spinner size=\"xsmall\" color=\"no-data\" /> : null}{' '}\n {children}\n </Button>\n );\n });\nPdfExportButton.className = CLASSNAME;\nPdfExportButton.displayName = COMPONENT_NAME;\n","// istanbul ignore file\n\nimport { ComponentProps } from 'react';\nimport { ValueOf } from '@redsift/design-system';\nimport { ColorTheme, DimensionSelector, JSONArray } from '../../types';\n\ntype SuccessDangerColorTheme = {\n success: string;\n warning: string;\n danger: string;\n neutral?: string;\n};\n\n/**\n * Component size.\n */\nexport const TimeSeriesBarChartSize = {\n large: 'large',\n medium: 'medium',\n small: 'small',\n} as const;\nexport type TimeSeriesBarChartSize = ValueOf<typeof TimeSeriesBarChartSize>;\n\n/**\n * Component theme.\n */\nexport const TimeSeriesBarChartTheme = ColorTheme;\nexport type TimeSeriesBarChartTheme = ValueOf<typeof TimeSeriesBarChartTheme>;\n\nexport type datetimeEnum = 'hour' | 'day' | 'week' | 'month' | 'year';\n\ninterface LocaleText {\n emptyChartTitle?: string;\n emptyChartSubtitle?: string;\n emptyChartResetLabel?: string;\n resetLabel?: string;\n}\n\n/**\n * Component props.\n */\nexport interface TimeSeriesBarChartProps extends ComponentProps<'div'> {\n /** Caption. */\n caption?: string;\n /** Whether the x axis labels are rotated or not. */\n areXLabelsRotated?: boolean;\n /** Field value of the DataGrid column to filter. */\n columnToFilter?: string;\n /** Dataset to use to generate the chart, if no context is provided. */\n data?: JSONArray;\n /** Name of the dataset field that contains the datetime value. */\n dateTimeFieldName: string;\n /** Format used for the date and time values in the dataset by d3.js. Should follow https://github.com/d3/d3-time-format#locale_format. */\n dateTimeFormat?: string;\n /** Datetime unit to used to group values and for x units. */\n dateTimeGroup?: datetimeEnum;\n /** Method that will be used by crossfilter to compute the dimensions of the charts. */\n dimension: DimensionSelector;\n /** Whether the reset button is hidden or not. */\n isResetable?: boolean;\n /** Overriden values for internal labels and texts. */\n localeText?: LocaleText;\n /** Method to call when a filter occured on the chart. */\n onFilter?: (filters?: string[], allFiltered?: JSONArray) => void;\n /** TimeSeriesChart size. */\n size?: TimeSeriesBarChartSize;\n /** Color palette to use. You can choose among the list of available color palette or also choose to use the success/warning/danger theme for which you have to specify which key corresponds to which status. */\n theme?: TimeSeriesBarChartTheme | SuccessDangerColorTheme;\n /** Title. */\n title?: string;\n /** Dataset key to use to stack values. */\n stackedCategory?: string;\n /** X Axis Label. */\n xAxisLabel?: string;\n /** Y Axis Label. */\n yAxisLabel?: string;\n}\n\nexport type StyledTimeSeriesBarChartProps = Omit<\n TimeSeriesBarChartProps,\n 'dimension' | 'dateTimeFieldName'\n> & {};\n","// istanbul ignore file\n\nimport styled, { css } from 'styled-components';\nimport { Flexbox } from '@redsift/design-system';\nimport { StyledTimeSeriesBarChartProps } from './types';\n\n/**\n * Component style.\n */\nexport const StyledTimeSeriesBarChart = styled.div<StyledTimeSeriesBarChartProps>`\n margin: 16px;\n padding: 16px;\n color: var(--redsift-color-neutral-black);\n\n .redsift-timeseries-barchart__chart {\n display: flex;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 12px;\n justify-content: center;\n margin: 8px 0;\n }\n\n svg > g {\n margin: 8px;\n }\n\n .grid-line,\n .axis .grid-line,\n .grid-line line,\n .axis .grid-line line {\n fill: none;\n stroke: #ccc;\n shape-rendering: crispEdges;\n }\n\n .axis text {\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 10px;\n }\n\n g.stack rect.bar.deselected {\n fill-opacity: 0.5;\n fill: var(--redsift-color-neutral-midgrey);\n }\n\n .brush .custom-brush-handle {\n fill: #eee;\n stroke: #666;\n cursor: ew-resize;\n }\n\n text {\n user-select: none;\n }\n`;\n\nexport const StyledTimeSeriesBarChartTitle = styled(\n Flexbox\n)<StyledTimeSeriesBarChartProps>`\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\nexport const StyledTimeSeriesBarChartCaption = styled.p<StyledTimeSeriesBarChartProps>`\n font-family: var(--redsift-typography-caption-font-family);\n font-size: var(--redsift-typography-caption-font-size);\n font-weight: var(--redsift-typography-caption-font-weight);\n line-height: var(--redsift-typography-caption-line-height);\n`;\n\nexport const StyledTimeSeriesBarChartContainer = styled.div<{\n $isEmpty: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: 16px;\n font-family: var(--redsift-typography-font-family-source-code-pro);\n font-size: 11px;\n justify-content: center;\n margin: 8px 0;\n position: relative;\n\n .redsift-timeseries-barchart-container__chart {\n position: relative;\n ${({ $isEmpty }) =>\n $isEmpty\n ? css`\n display: none;\n `\n : ''};\n }\n`;\n","// istanbul ignore file\n\nimport React, {\n forwardRef,\n RefObject,\n useContext,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n config as dcconfig,\n filterAll as dcfilterAll,\n filters as dcfilters,\n redrawAll as dcredrawAll,\n barChart as dcbarChart,\n BarChart as dcBarChart,\n UnitFunction as dcUnitFunction,\n} from 'dc';\nimport {\n scaleTime as d3scaleTime,\n timeFormat as d3timeFormat,\n isoParse as d3isoParse,\n utcParse as d3utcParse,\n timeHour as d3timeHour,\n timeHours as d3timeHours,\n timeDay as d3timeDay,\n timeDays as d3timeDays,\n timeWeek as d3timeWeek,\n timeWeeks as d3timeWeeks,\n timeMonth as d3timeMonth,\n timeMonths as d3timeMonths,\n timeYear as d3timeYear,\n timeYears as d3timeYears,\n} from 'd3';\n\nimport { Button, Comp } from '@redsift/design-system';\nimport { scheme, useColor } from '@redsift/charts';\n\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport {\n TimeSeriesBarChartProps,\n TimeSeriesBarChartSize,\n TimeSeriesBarChartTheme,\n} from './types';\nimport { JSONObject, JSONArray } from '../../types';\nimport {\n StyledTimeSeriesBarChart,\n StyledTimeSeriesBarChartCaption,\n StyledTimeSeriesBarChartTitle,\n StyledTimeSeriesBarChartContainer,\n} from './styles';\nimport { GridFilterItem } from '@redsift/table';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\n\nconst COMPONENT_NAME = 'TimeSeriesBarChart';\nconst CLASSNAME = 'redsift-timeseries-barchart';\nconst DEFAULT_PROPS: Partial<TimeSeriesBarChartProps> = {\n dateTimeFormat: '%Y-%m-%d %H:%M:%S',\n dateTimeGroup: 'month',\n isResetable: true,\n localeText: {\n resetLabel: 'Reset',\n },\n size: TimeSeriesBarChartSize.medium,\n};\n\ntype ChartDimensions = {\n width: number;\n height: number;\n marginTop?: number;\n marginRight?: number;\n marginBottom?: number;\n marginLeft?: number;\n};\n\nconst getStartDate = (dates: Date[]) =>\n new Date(Math.min(...dates.map(Number)));\nconst getEndDate = (dates: Date[]) => new Date(Math.max(...dates.map(Number)));\n\nconst sizeToDimension = (size: TimeSeriesBarChartSize): ChartDimensions => {\n switch (size) {\n case TimeSeriesBarChartSize.small:\n return {\n width: 400,\n height: 200,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n case TimeSeriesBarChartSize.large:\n return {\n width: 1000,\n height: 300,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n case TimeSeriesBarChartSize.medium:\n default:\n return {\n width: 600,\n height: 250,\n marginLeft: 16,\n marginTop: 16,\n marginRight: 16,\n marginBottom: 32,\n };\n }\n};\n\nconst parseDateTimeGroup = (\n data: JSONArray,\n dateTimeGroup: TimeSeriesBarChartProps['dateTimeGroup'],\n dateTimeFieldName: string\n) => {\n const dates = [\n ...data.map(\n (d: (typeof data)[number]) => new Date(d[dateTimeFieldName] as string)\n ),\n ];\n const startDate = getStartDate(dates);\n const endDate = getEndDate(dates);\n\n switch (dateTimeGroup) {\n case 'hour':\n return {\n group: (g: Date) => d3timeHour(g),\n round: (x: Date) => d3timeHour(x),\n x: d3scaleTime().domain([\n d3timeHour.offset(startDate, -1),\n d3timeHour.offset(endDate, 2),\n ]),\n xUnits: d3timeHours,\n };\n case 'day':\n return {\n group: (g: Date) => d3timeDay(g),\n round: (x: Date) => d3timeDay(x),\n x: d3scaleTime().domain([\n d3timeDay.offset(startDate, -1),\n d3timeDay.offset(endDate, 2),\n ]),\n xUnits: d3timeDays,\n };\n case 'week':\n return {\n group: (g: Date) => d3timeWeek(g),\n round: (x: Date) => d3timeWeek(x),\n x: d3scaleTime().domain([\n d3timeWeek.offset(startDate, -1),\n d3timeWeek.offset(endDate, 2),\n ]),\n xUnits: d3timeWeeks,\n };\n case 'year':\n return {\n group: (g: Date) => d3timeYear(g),\n round: (x: Date) => d3timeYear(x),\n x: d3scaleTime().domain([\n d3timeYear.offset(startDate, -2),\n d3timeYear.offset(endDate, 2),\n ]),\n xUnits: d3timeYears,\n };\n case 'month':\n default:\n return {\n group: (g: Date) => d3timeMonth(g),\n round: (x: Date) => d3timeMonth(x),\n x: d3scaleTime().domain([\n d3timeMonth.offset(startDate, -1),\n d3timeMonth.offset(endDate, 2),\n ]),\n xUnits: d3timeMonths,\n };\n }\n};\n\nexport const TimeSeriesBarChart: Comp<TimeSeriesBarChartProps, HTMLDivElement> =\n forwardRef((props, ref) => {\n const containerRef = (ref ||\n useRef<HTMLDivElement>()) as RefObject<HTMLDivElement>;\n const chartRef = useRef<HTMLDivElement>() as RefObject<HTMLDivElement>;\n\n const id = useId();\n const [chart, setChart] = useState<dcBarChart>();\n\n const {\n areXLabelsRotated,\n caption,\n className,\n columnToFilter,\n data: propsData,\n dateTimeFieldName,\n dateTimeFormat = DEFAULT_PROPS.dateTimeFormat,\n dateTimeGroup = DEFAULT_PROPS.dateTimeGroup,\n dimension,\n isResetable,\n localeText,\n onFilter,\n size = DEFAULT_PROPS.size,\n theme = props.stackedCategory\n ? TimeSeriesBarChartTheme.default\n : TimeSeriesBarChartTheme.monochrome,\n title,\n stackedCategory,\n xAxisLabel,\n yAxisLabel,\n ...forwardedProps\n } = props;\n\n // Get overriden labels and texts.\n const {\n emptyChartTitle,\n emptyChartSubtitle,\n emptyChartResetLabel,\n resetLabel,\n } = {\n ...DEFAULT_PROPS.localeText,\n ...localeText,\n };\n\n // Get charts dimensions based on the selected size.\n const chartDimensions = sizeToDimension(size!);\n\n // Get ndx from context or initialize it.\n const { dispatch, state, data } = useContext(DashboardContext);\n const { tableFilters } = state;\n\n // Set color scheme.\n const colorScale = useColor({\n data: propsData ?? data,\n theme: theme!,\n category: stackedCategory!,\n });\n\n const ndx = CrossfilterRegistry.get(propsData ? propsData : data);\n\n // useEffect called only once to initialize the chart.\n useEffect(() => {\n if (chartRef.current) {\n dcconfig.defaultColors(scheme.default);\n const parseTime = d3utcParse(dateTimeFormat!);\n const barChart = dcbarChart(chartRef.current as any);\n const dataset = ndx.all();\n\n // Get time methods based on props\n const { group, round, x, xUnits } = parseDateTimeGroup(\n dataset as JSONArray,\n dateTimeGroup,\n dateTimeFieldName\n );\n\n // Compute dimension and group.\n const computedDimension = ndx.dimension(\n (d: JSONArray) => parseTime(dimension(d) as string) as Date\n );\n const timeGroup = computedDimension.group(group);\n\n // Initialize the chart.\n barChart\n .width(chartDimensions.width)\n .height(chartDimensions.height - (areXLabelsRotated ? 30 : 0))\n .dimension(computedDimension)\n .x(x)\n .xUnits(xUnits as dcUnitFunction)\n .round(round)\n .centerBar(true)\n .alwaysUseRounding(true)\n .renderHorizontalGridLines(true)\n .margins({\n left: chartDimensions.marginLeft! + (yAxisLabel ? 24 : 0),\n top: chartDimensions.marginTop!,\n right: chartDimensions.marginRight!,\n bottom: chartDimensions.marginBottom!,\n })\n .barPadding(0.2);\n\n barChart.yAxis().ticks(5);\n\n // Add label to axis.\n if (xAxisLabel) {\n barChart.xAxisLabel(xAxisLabel);\n }\n if (yAxisLabel) {\n barChart.yAxisLabel(yAxisLabel);\n }\n\n // Rotate labels and reset the height, if asked for.\n if (areXLabelsRotated) {\n barChart.on('pretransition', (rowChart) => {\n barChart\n .select('.axis')\n .attr('text-anchor', 'end')\n .selectAll('text')\n .attr('transform', 'translate(-6,5) rotate(-45)');\n rowChart.select('svg').attr('height', chartDimensions.height);\n });\n }\n\n // Set group whether the chart is stacked or not.\n if (!stackedCategory) {\n barChart.group(timeGroup).colors(colorScale as any);\n } else if (dataset.length) {\n if (!Array.isArray(dataset[0][stackedCategory])) {\n const categories = dataset.reduce(\n (acc: string[], curr: JSONObject) => {\n if (acc.indexOf(curr[stackedCategory] as string) === -1) {\n acc.push(curr[stackedCategory] as string);\n }\n return acc;\n },\n []\n );\n const stackedTimeGroup = timeGroup.reduce(\n (p, v) => {\n (p as JSONObject)[v[stackedCategory]] =\n (((p as JSONObject)[v[stackedCategory]] as number) || 0) + 1;\n return p;\n },\n (p, v) => {\n (p as JSONObject)[v[stackedCategory]] =\n (((p as JSONObject)[v[stackedCategory]] as number) || 0) - 1;\n return p;\n },\n () => ({})\n );\n barChart\n .group(\n stackedTimeGroup,\n categories[0], // @ts-expect-error\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[0])\n )\n .colors(colorScale as any);\n for (var i = 1; i < categories.length; ++i) {\n barChart.stack(\n stackedTimeGroup,\n categories[i],\n (\n (cat) => (d) =>\n d.value[cat]\n )(categories[i])\n );\n }\n } else {\n const categories = dataset.reduce(\n (acc: string[], curr: JSONObject) => {\n (curr[stackedCategory] as string[]).forEach((val: string) => {\n if (acc.indexOf(val) === -1) {\n acc.push(val);\n }\n });\n return acc;\n },\n []\n );\n const stackedTimeGroup = timeGroup.reduce(\n (p, v) => {\n v[stackedCategory].forEach((val: string) => {\n (p as JSONObject)[val] =\n (((p as JSONObject)[val] as number) || 0) + 1;\n });\n return p;\n },\n (p, v) => {\n v[stackedCategory].forEach((val: string) => {\n (p as JSONObject)[val] =\n (((p as JSONObject)[val] as number) || 0) - 1;\n });\n return p;\n },\n () => ({})\n );\n barChart\n .group(\n stackedTimeGroup,\n categories[0], // @ts-expect-error\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[0])\n )\n .colors(colorScale as any);\n for (var i = 1; i < categories.length; ++i) {\n barChart.stack(\n stackedTimeGroup,\n categories[i],\n (\n (cat) =>\n (d: { key: Date; value: { [key: string]: number } }) =>\n d.value[cat]\n )(categories[i])\n );\n }\n }\n }\n\n // Dispatch filters to datagrid when a value is selected or unselected.\n const formatTime = d3timeFormat('%Y-%m-%dT%H:%M');\n barChart.on('filtered', () => {\n if (columnToFilter) {\n const dateArray = barChart.filters()?.[0];\n if (Array.isArray(dateArray) && dateArray.length === 2) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTableBatch,\n filter: [\n {\n id: `${barChart.anchorName()}-start`,\n columnField: columnToFilter,\n operatorValue: 'after',\n value: formatTime(dateArray[0]),\n },\n {\n id: `${barChart.anchorName()}-end`,\n columnField: columnToFilter,\n operatorValue: 'onOrBefore',\n value: formatTime(dateArray[1]),\n },\n ],\n });\n }\n }\n\n onFilter?.(barChart.filters(), ndx.allFiltered());\n });\n\n // Render the chart.\n barChart.render();\n\n // Store chart for further use.\n setChart(barChart);\n }\n }, [propsData, data]);\n\n // Filter chart if context is updated by an external component.\n const filterStart = tableFilters.find(\n (filter) =>\n filter.columnField === columnToFilter &&\n filter.operatorValue === 'after'\n );\n const filterEnd = tableFilters.find(\n (filter) =>\n filter.columnField === columnToFilter &&\n filter.operatorValue === 'onOrBefore'\n );\n useEffect(() => {\n if (\n chart &&\n filterStart &&\n filterEnd &&\n filterStart.value &&\n filterEnd.value\n ) {\n const chartFiltersObj = chart.filters();\n const chartFilters = chartFiltersObj?.[0];\n const chartFilterStart = chartFilters?.[0];\n const chartFilterEnd = chartFilters?.[1];\n if (\n chartFilterStart !== d3isoParse(filterStart.value) &&\n chartFilterEnd !== d3isoParse(filterEnd.value)\n ) {\n chart.filter(null);\n chart.filter(\n dcfilters.RangedFilter(\n d3isoParse(filterStart.value)?.getTime() || 0,\n d3isoParse(filterEnd.value)?.getTime() || 0\n )\n );\n dcredrawAll();\n }\n }\n }, [filterStart?.value, filterEnd?.value]);\n\n return (\n <StyledTimeSeriesBarChart\n {...forwardedProps}\n className={classNames(TimeSeriesBarChart.className, className)}\n ref={containerRef as RefObject<HTMLDivElement>}\n >\n <StyledTimeSeriesBarChartTitle\n className={`${TimeSeriesBarChart.className}__title`}\n alignItems=\"center\"\n >\n {title ? <div id={`id${id}__title`}>{title}</div> : null}\n {chart && isResetable ? (\n <Button\n variant=\"unstyled\"\n onClick={() => {\n chart.filter(null);\n dcredrawAll();\n\n if (columnToFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${chart.anchorName()}-start`,\n columnField: columnToFilter,\n operatorValue: 'after',\n } as GridFilterItem,\n });\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: `${chart.anchorName()}-end`,\n columnField: columnToFilter,\n operatorValue: 'onOrBefore',\n } as GridFilterItem,\n });\n }\n }}\n >\n {resetLabel}\n </Button>\n ) : null}\n </StyledTimeSeriesBarChartTitle>\n\n <StyledTimeSeriesBarChartContainer\n className={`${TimeSeriesBarChart.className}__container`}\n $isEmpty={ndx.all().length === 0}\n >\n <div\n className={`${TimeSeriesBarChart.className}-container__chart`}\n ref={chartRef as RefObject<HTMLDivElement>}\n />\n {ndx.all().length === 0 ? (\n <ChartEmptyState\n title={emptyChartTitle!}\n subtitle={emptyChartSubtitle}\n resetLabel={emptyChartResetLabel}\n onReset={() => {\n dcfilterAll();\n dcredrawAll();\n dispatch?.({\n type: DashboardReducerActionType.ResetFilters,\n });\n }}\n />\n ) : null}\n </StyledTimeSeriesBarChartContainer>\n\n {caption ? (\n <StyledTimeSeriesBarChartCaption\n className={`${TimeSeriesBarChart.className}__caption`}\n id={`id${id}__caption`}\n >\n {caption}\n </StyledTimeSeriesBarChartCaption>\n ) : null}\n </StyledTimeSeriesBarChart>\n );\n });\nTimeSeriesBarChart.className = CLASSNAME;\nTimeSeriesBarChart.defaultProps = DEFAULT_PROPS;\nTimeSeriesBarChart.displayName = COMPONENT_NAME;\n","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","import { GridFilterItem } from '@redsift/table';\nimport { BarDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n useRef,\n MutableRefObject,\n} from 'react';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { ChartsWithFiltersProps } from './types';\nimport { useCategoricalChartAsListbox } from '@redsift/dashboard/hooks/useCategoricalChartAsListbox';\n\nexport const FilterableBarChart: React.FC<ChartsWithFiltersProps> = (props) => {\n const {\n children,\n datagridCategoryDimFilter,\n dimension,\n group,\n id: propsId,\n isDimensionArray,\n isResetable,\n localeText,\n onFilter,\n } = props;\n const id = (propsId ?? useId()).replace(/:/g, '');\n const ref = useRef<HTMLDivElement>();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : computedNdxDimension.group();\n setNdxDimension(computedNdxDimension);\n setNdxGroup(computedNdxGroup);\n return function cleanup() {\n computedNdxDimension.filterAll();\n };\n }, [dimension, data, group]);\n\n const [filters, setFilters] = useState<string[]>([]);\n\n const handleFilter = (category: string) => {\n let newFilters: string[];\n if (filters.includes(category)) {\n newFilters = filters.filter((f) => f !== category);\n } else {\n newFilters = [...filters, category];\n }\n\n setFilters(newFilters);\n if (newFilters.length) {\n ndxDimension!.filter((d) => newFilters.includes(d as string));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n value: newFilters,\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const resetFilters = () => {\n setFilters([]);\n ndxDimension!.filterAll();\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n } as GridFilterItem,\n });\n }\n\n if (onFilter) {\n onFilter();\n }\n };\n\n useEffect(() => {\n if (!datagridCategoryDimFilter) {\n return;\n }\n\n const updatedFilters = tableFilters.find(\n (filter) =>\n filter.columnField === datagridCategoryDimFilter.field &&\n filter.operatorValue === datagridCategoryDimFilter.operator\n )?.value;\n if (updatedFilters && updatedFilters !== filters) {\n setFilters(updatedFilters);\n if (updatedFilters.length) {\n ndxDimension!.filter((d) => updatedFilters.includes(d));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\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 chartProps = useCategoricalChartAsListbox({\n id,\n ref: ref as MutableRefObject<HTMLDivElement>,\n type: 'bar',\n ndxGroup,\n orientation: 'vertical',\n });\n\n const filterProps = {\n barProps: {\n tabIndex: -1,\n },\n barRole: 'option',\n chartProps: chartProps,\n chartRef: ref,\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n emptyComponent,\n id,\n isBarSelected: (datum: BarDatum) => {\n return filters.length === 0 || filters.includes(datum.data.key);\n },\n onBarClick: (datum: BarDatum) => {\n handleFilter(datum.data.key);\n },\n onReset: isResetable ? resetFilters : undefined,\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { GridFilterModel } from '@redsift/table';\nimport React, { useContext, isValidElement, useState, useEffect } from 'react';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { WithFiltersProps } from './types';\n\nexport const FilterableDataGrid: React.FC<WithFiltersProps> = (props) => {\n const { children, onFilter } = props;\n\n const { state, data, dispatch, dataGridApiRef } =\n useContext(DashboardContext);\n const { tableFilters } = state;\n\n const [filterModel, setFilterModel] = useState<GridFilterModel>();\n useEffect(() => {\n setFilterModel({\n ...filterModel,\n items: tableFilters,\n });\n }, [tableFilters]);\n\n const updateChartFilters = (filterModel: GridFilterModel) => {\n dispatch?.({\n type: DashboardReducerActionType.FilterTableBatch,\n filter: filterModel.items,\n });\n };\n\n if (isValidElement(children)) {\n const filterProps = {\n apiRef: children.props.apiRef ?? dataGridApiRef,\n rows: data || [],\n filterModel,\n onFilterModelChange: (filterModel: GridFilterModel) => {\n if (onFilter) {\n onFilter(filterModel);\n }\n updateChartFilters(filterModel);\n },\n };\n\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { GridFilterItem } from '@redsift/table';\nimport { ArcDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n useRef,\n MutableRefObject,\n} from 'react';\nimport { CrossfilterRegistry } from '../CrossfilterRegistry';\nimport { DashboardContext, DashboardReducerActionType } from '../Dashboard';\nimport { ChartEmptyState } from '../ChartEmptyState';\nimport { ChartsWithFiltersProps } from './types';\nimport { useCategoricalChartAsListbox } from '@redsift/dashboard/hooks/useCategoricalChartAsListbox';\n\nexport const FilterablePieChart: React.FC<ChartsWithFiltersProps> = (props) => {\n const {\n children,\n datagridCategoryDimFilter,\n dimension,\n group,\n id: propsId,\n isDimensionArray,\n isResetable,\n localeText,\n onFilter,\n } = props;\n const id = (propsId ?? useId()).replace(/:/g, '');\n const ref = useRef<HTMLDivElement>();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : computedNdxDimension.group();\n setNdxDimension(computedNdxDimension);\n setNdxGroup(computedNdxGroup);\n return function cleanup() {\n computedNdxDimension.filterAll();\n };\n }, [dimension, data, group]);\n\n const [filters, setFilters] = useState<string[]>([]);\n\n const handleFilter = (category: string) => {\n let newFilters: string[];\n if (filters.includes(category)) {\n newFilters = filters.filter((f) => f !== category);\n } else {\n newFilters = [...filters, category];\n }\n\n setFilters(newFilters);\n if (newFilters.length) {\n ndxDimension!.filter((d) => newFilters.includes(d as string));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.FilterTable,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n value: newFilters,\n },\n });\n }\n\n if (onFilter) {\n onFilter(newFilters);\n }\n };\n\n const resetFilters = () => {\n setFilters([]);\n ndxDimension!.filterAll();\n toggleUpdateContext?.();\n\n if (datagridCategoryDimFilter) {\n dispatch?.({\n type: DashboardReducerActionType.ResetFilter,\n filter: {\n id: id,\n columnField: datagridCategoryDimFilter.field,\n operatorValue: datagridCategoryDimFilter.operator,\n } as GridFilterItem,\n });\n }\n\n if (onFilter) {\n onFilter();\n }\n };\n\n const updatedFilters = datagridCategoryDimFilter\n ? tableFilters.find(\n (filter) =>\n filter.columnField === datagridCategoryDimFilter.field &&\n filter.operatorValue === datagridCategoryDimFilter.operator\n )?.value\n : null;\n useEffect(() => {\n if (updatedFilters && updatedFilters !== filters) {\n setFilters(updatedFilters);\n if (updatedFilters.length) {\n ndxDimension!.filter((d) => updatedFilters.includes(d));\n } else {\n ndxDimension!.filterAll();\n }\n toggleUpdateContext?.();\n }\n }, [updatedFilters]);\n\n const emptyComponent = (\n <ChartEmptyState\n title={emptyChartTitle!}\n subtitle={emptyChartSubtitle}\n resetLabel={emptyChartResetLabel}\n onReset={resetFilters}\n />\n );\n\n const chartProps = useCategoricalChartAsListbox({\n id,\n ref: ref as MutableRefObject<HTMLDivElement>,\n type: 'bar',\n ndxGroup,\n orientation: 'horizontal',\n });\n\n const filterProps = {\n sliceProps: {\n tabIndex: -1,\n },\n sliceRole: 'option',\n chartProps: chartProps,\n chartRef: ref,\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n emptyComponent,\n id,\n isSliceSelected: (datum: ArcDatum) => {\n return filters.length === 0 || filters.includes(datum.data.key);\n },\n onSliceClick: (datum: ArcDatum) => {\n handleFilter(datum.data.key);\n },\n onReset: isResetable ? resetFilters : undefined,\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","import { DotDatum, LegendItemDatum } from '@redsift/charts';\nimport { Dimension, Group } from '../../types';\nimport React, {\n useEffect,\n useContext,\n useId,\n useState,\n isValidElement,\n} 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';\n\ntype BrushFilter = {\n minX: number;\n minY: number;\n maxX: number;\n maxY: number;\n};\n\nconst filter =\n (legendFilters?: string[], brushFilters?: BrushFilter) =>\n (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 &&\n d[0] <= brushFilters.maxX &&\n d[1] >= brushFilters.minY &&\n d[1] <= brushFilters.maxY\n );\n } else {\n return true;\n }\n };\n\nconst isFiltered =\n (legendFilters?: string[], brushFilters?: BrushFilter) =>\n (datum: DotDatum) => {\n if (legendFilters && legendFilters.length && brushFilters) {\n return (\n datum.data.key[0] >= brushFilters.minX &&\n datum.data.key[0] <= brushFilters.maxX &&\n datum.data.key[1] >= brushFilters.minY &&\n datum.data.key[1] <= 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] >= brushFilters.minX &&\n datum.data.key[0] <= brushFilters.maxX &&\n datum.data.key[1] >= brushFilters.minY &&\n datum.data.key[1] <= brushFilters.maxY\n );\n } else {\n return true;\n }\n };\n\nexport const FilterableScatterPlot: React.FC<ChartsWithFiltersProps> = (\n props\n) => {\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 = propsId ?? useId();\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(\n dimension,\n isDimensionArray\n );\n const computedNdxGroup = group\n ? group(computedNdxDimension)\n : 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) =>\n filter(\n legendFilters,\n newFilters\n )(d as unknown as [number, number, string])\n );\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) =>\n filter(newFilters, brushFilters)(d as unknown as [number, number, string])\n );\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(\n legend ? [] : legendFilters,\n brush ? undefined : brushFilters\n )(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 (\n legendFilters.length === 0 || legendFilters.includes(datum.data.key)\n );\n },\n legendItemRole: 'option',\n };\n\n const filterProps = {\n isBrushable: true,\n data: ndxGroup ? JSON.parse(JSON.stringify(ndxGroup.all())) : undefined,\n dotRole: 'option',\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) =>\n isFiltered(legendFilters, brushFilters)(datum),\n };\n\n if (isValidElement(children)) {\n return React.cloneElement(children, { ...filterProps });\n }\n\n return null;\n};\n","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":["groupReduceCount","d","group","reduceCount","COUNT","groupReduceSum","field","reduceSum","SUM","StyledChartEmptyState","styled","div","StyledResetButton","Button","COMPONENT_NAME","CLASSNAME","DEFAULT_PROPS","title","subtitle","resetLabel","ChartEmptyState","forwardRef","props","ref","onReset","React","createElement","className","xmlns","width","height","viewBox","fill","clipPath","fillRule","clipRule","opacity","id","transform","variant","leftIcon","mdiRefresh","onClick","defaultProps","displayName","initialState","tableFilters","DashboardContext","createContext","state","DashboardReducerActionType","areEquals","tableFilter","actionFilter","columnField","operatorValue","addOrUpdateFilter","oldFilters","newFilter","find","f","map","addOrUpdateFilters","newFilters","updatedFilters","i","length","replaceFilters","Array","isArray","removeFilter","filter","removeAllFilters","DashboardReducer","action","type","ResetFilter","_objectSpread","ResetFilters","FilterTable","FilterTableBatch","AppendFilterTableBatch","CrossfilterRegistry","instances","WeakMap","get","data","instance","crossfilter","set","remove","delete","Dashboard","children","dataGridApiRef","propsDataGridApiRef","forwardedProps","_objectWithoutProperties","_excluded","providerRef","useRef","useGridApiRef","updateContext","setUpdateContext","useState","dispatch","useReducer","value","useMemo","dashboardRef","ndx","toggleUpdateContext","_extends","classNames","Provider","BACKGROUND_COLOR","GREY_1","GREY_2","getPdfStyles","primaryColor","Font","register","family","fonts","src","fontWeight","StyleSheet","create","page","borderTopStyle","borderTopWidth","borderTopColor","borderBottomStyle","borderBottomWidth","borderBottomColor","backgroundColor","paddingTop","paddingBottom","logoContainer","margin","alignItems","logo","introductionContainer","lineHeight","textAlign","marginHorizontal","marginVertical","introductionText","fontSize","fontFamily","color","pageNumber","position","bottom","right","left","pageContinue","top","tableContainer","paddingLeft","borderRightWidth","borderRightColor","tableRowContainer","flexDirection","marginLeft","marginRight","tableHeaderContainer","marginBottom","tableCellHeaderText","overflow","tableCellText","dashboardImageContainer","marginTop","constraintsContainer","paddingVertical","constraints","DEFAULT_COLUMN_WIDTH","getWidthColumn","totalW","nrColumns","Math","round","PdfTableRow","_ref","rowIndex","rowData","columns","styles","totalWidth","View","style","key","column","index","widthColumn","Text","join","PdfTable","_ref2","dataTable","localeText","Fragment","headerName","row","maxSizeDisclaimer","Pagination","_ref3","render","_ref4","totalPages","fixed","PdfDocument","_ref5","dashboardImage","introduction","Document","Page","size","Image","getDashboardImage","componentRef","_componentRef$current","_componentRef$current2","_componentRef$current3","_componentRef$current4","el","classList","contains","dashboardHeight","current","getBoundingClientRect","datagridHeight","getElementsByClassName","Promise","resolve","domToImage","toPng","then","dataUrl","catch","PdfExportButton","propComponentRef","fileName","setComponentRef","isLoading","setIsLoading","useContext","useEffect","exportPdf","Object","keys","gridFilteredSortedRowEntriesSelector","instanceId","slice","model","gridVisibleColumnDefinitionsSelector","gridColumnsTotalWidthSelector","doc","RedsiftColorDefaultPrimary","asPdf","pdf","updateContainer","blob","toBlob","saveAs","e","console","log","isDisabled","Spinner","TimeSeriesBarChartSize","large","medium","small","TimeSeriesBarChartTheme","ColorTheme","StyledTimeSeriesBarChart","StyledTimeSeriesBarChartTitle","Flexbox","StyledTimeSeriesBarChartCaption","p","StyledTimeSeriesBarChartContainer","$isEmpty","css","dateTimeFormat","dateTimeGroup","isResetable","getStartDate","dates","Date","min","Number","getEndDate","max","sizeToDimension","parseDateTimeGroup","dateTimeFieldName","startDate","endDate","g","d3timeHour","x","d3scaleTime","domain","offset","xUnits","d3timeHours","d3timeDay","d3timeDays","d3timeWeek","d3timeWeeks","d3timeYear","d3timeYears","d3timeMonth","d3timeMonths","TimeSeriesBarChart","containerRef","chartRef","useId","chart","setChart","areXLabelsRotated","caption","columnToFilter","propsData","dimension","onFilter","theme","stackedCategory","default","monochrome","xAxisLabel","yAxisLabel","emptyChartTitle","emptyChartSubtitle","emptyChartResetLabel","chartDimensions","colorScale","useColor","category","dcconfig","defaultColors","scheme","parseTime","d3utcParse","barChart","dcbarChart","dataset","all","computedDimension","timeGroup","centerBar","alwaysUseRounding","renderHorizontalGridLines","margins","barPadding","yAxis","ticks","on","rowChart","select","attr","selectAll","colors","categories","reduce","acc","curr","indexOf","push","stackedTimeGroup","v","cat","stack","forEach","val","formatTime","d3timeFormat","_barChart$filters","dateArray","filters","anchorName","allFiltered","filterStart","filterEnd","chartFiltersObj","chartFilters","chartFilterStart","chartFilterEnd","d3isoParse","_d3isoParse","_d3isoParse2","dcfilters","RangedFilter","getTime","dcredrawAll","dcfilterAll","useCategoricalChartAsListbox","ndxGroup","orientation","currentIndexRef","numberOfGroups","datum","getCurrentOption","querySelector","next","setAttribute","add","previous","focus","blur","keydown","stopPropagation","code","preventDefault","dispatchEvent","Event","role","tabIndex","onFocus","onBlur","onMouseDown","event","onMouseLeave","onKeyDown","JSON","parse","stringify","FilterableBarChart","datagridCategoryDimFilter","propsId","isDimensionArray","replace","ndxDimension","setNdxDimension","setNdxGroup","computedNdxDimension","computedNdxGroup","cleanup","filterAll","setFilters","handleFilter","includes","operator","resetFilters","_tableFilters$find","emptyComponent","chartProps","filterProps","barProps","barRole","undefined","isBarSelected","onBarClick","isValidElement","cloneElement","FilterableDataGrid","filterModel","setFilterModel","items","updateChartFilters","_children$props$apiRe","apiRef","rows","onFilterModelChange","FilterablePieChart","sliceProps","sliceRole","isSliceSelected","onSliceClick","legendFilters","brushFilters","minX","maxX","minY","maxY","isFiltered","FilterableScatterPlot","datagridCoordinatesCategoryDimFilter","setBrushFilters","setLegendFilters","handleBrushFilter","handleLegendFilter","brush","arguments","legend","legendProps","onLegendItemClick","isLegendItemSelected","legendItemRole","isBrushable","dotRole","onBrush","selection","scaleX","scaleY","invert","onBrushEnd","isDotSelected","WithFilters","isComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -25,10 +25,12 @@
25
25
  "lint": "eslint --ext .js,.jsx,.ts,.tsx src/",
26
26
  "prepare": "install-peers || exit 0",
27
27
  "prepublishOnly": "yarn build",
28
- "test": "cp -f ../../.env ./ && NODE_ENV=test jest --verbose"
28
+ "test:unit": "cp -f ../../.env ./ && NODE_ENV=test jest --verbose",
29
+ "test:storybook": "test-storybook -c ../../.storybook --url http://localhost:9000/ --coverage",
30
+ "test": "yarn test:unit && yarn test:storybook"
29
31
  },
30
32
  "types": "types.d.ts",
31
- "version": "8.0.0-alpha.7",
33
+ "version": "8.0.0",
32
34
  "dependencies": {
33
35
  "@emotion/react": "^11.10.4",
34
36
  "@emotion/styled": "^11.10.4",
@@ -39,7 +41,6 @@
39
41
  "d3-shape": "^3.1.0",
40
42
  "d3-svg-annotation": "2",
41
43
  "d3-transition": "^3.0.1",
42
- "d3fc": "15",
43
44
  "dom-to-image": "^2.6.0",
44
45
  "file-saver": "^2.0.5"
45
46
  },
@@ -60,12 +61,7 @@
60
61
  "@rollup/plugin-commonjs": "^24.0.0",
61
62
  "@rollup/plugin-json": "^6.0.0",
62
63
  "@rollup/plugin-node-resolve": "^13.3.0",
63
- "@storybook/addon-a11y": "^6.5.6",
64
- "@storybook/addon-essentials": "^6.5.3",
65
- "@storybook/addon-interactions": "^6.5.3",
66
- "@storybook/addon-links": "^6.5.3",
67
- "@storybook/addon-storyshots": "^6.5.8",
68
- "@storybook/react": "^6.5.14",
64
+ "@testing-library/dom": "^8.5.0",
69
65
  "@testing-library/jest-dom": "^5.16.4",
70
66
  "@testing-library/react": "^13.4.0",
71
67
  "@testing-library/user-event": "14.2.1",
@@ -88,8 +84,8 @@
88
84
  "jest": "^28.1.0",
89
85
  "jest-environment-jsdom": "^29.3.0",
90
86
  "msw": "^0.47.4",
91
- "react": "18.1.0",
92
- "react-dom": "18.1.0",
87
+ "react": "18.2.0",
88
+ "react-dom": "18.2.0",
93
89
  "rollup": "^2.72.1",
94
90
  "rollup-plugin-analyzer": "^4.0.0",
95
91
  "rollup-plugin-auto-external": "^2.0.0",
@@ -100,7 +96,6 @@
100
96
  "rollup-plugin-svg": "^2.0.0",
101
97
  "rollup-plugin-ts-paths-resolve": "^1.7.1",
102
98
  "rollup-plugin-typescript-paths": "^1.3.1",
103
- "storybook-addon-styled-component-theme": "^2.0.0",
104
99
  "ts-jest": "^28.0.3"
105
100
  },
106
101
  "peerDependencies": {
@@ -115,5 +110,5 @@
115
110
  "react-dom": "18",
116
111
  "styled-components": "^5.3.5"
117
112
  },
118
- "gitHead": "11e39878a6a9e911ccc0b6f203618e151b094079"
113
+ "gitHead": "d5b44ad25f944f5869829750628000b346718034"
119
114
  }