@redsift/table 11.0.0-alpha.1 → 11.0.0-alpha.2

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 (4) hide show
  1. package/index.d.ts +119 -42
  2. package/index.js +1348 -921
  3. package/index.js.map +1 -1
  4. package/package.json +2 -2
package/index.js CHANGED
@@ -1,9 +1,8 @@
1
- import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF, getGridNumericOperators as getGridNumericOperators$1, GridFilterInputValue, GridFilterInputMultipleValue, getGridStringOperators as getGridStringOperators$1, getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators, GridLogicOperator, GridToolbarContainer, GridToolbarFilterButton, GridToolbarColumnsButton, GridToolbarDensitySelector, GridToolbarExport, gridExpandedSortedRowIdsSelector, gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector, GRID_CHECKBOX_SELECTION_COL_DEF, useGridApiRef, gridPaginatedVisibleSortedGridRowEntriesSelector, gridPaginatedVisibleSortedGridRowIdsSelector, DataGridPro } from '@mui/x-data-grid-pro';
2
- export * from '@mui/x-data-grid-pro';
1
+ import { GRID_DETAIL_PANEL_TOGGLE_COL_DEF, getGridNumericOperators as getGridNumericOperators$1, GridFilterInputValue, GridFilterInputMultipleValue, getGridStringOperators as getGridStringOperators$1, getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators, GridLogicOperator, GridToolbarContainer, GridToolbarFilterButton, GridToolbarColumnsButton, GridToolbarDensitySelector, GridToolbarExport, gridExpandedSortedRowIdsSelector, gridPaginatedVisibleSortedGridRowEntriesSelector, gridPaginatedVisibleSortedGridRowIdsSelector, gridFilteredSortedRowEntriesSelector, gridFilteredSortedRowIdsSelector, useGridApiRef, DataGridPro, GRID_CHECKBOX_SELECTION_COL_DEF } from '@mui/x-data-grid-pro';
3
2
  export { getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-pro';
4
3
  import * as React from 'react';
5
- import React__default, { Children, isValidElement, cloneElement, useLayoutEffect, useEffect, useRef, forwardRef, useContext, useState, useCallback, createElement, useMemo } from 'react';
6
- import { Icon, baseContainer, Theme, AppContainerContext, useTheme as useTheme$4, useId as useId$2, partitionComponents, isComponent, Flexbox, TextField as TextField$2, Button, Switch, Text, ButtonsColorPalette, IconButton as IconButton$2, Checkbox, LinkButton, ThemeProvider as ThemeProvider$4, RedsiftColorBlueN, RedsiftColorNeutralXDarkGrey, RedsiftColorNeutralWhite, Shield } from '@redsift/design-system';
4
+ import React__default, { Children, isValidElement, cloneElement, forwardRef, useLayoutEffect, useEffect, useRef, useContext, useState, useCallback, createElement, useMemo } from 'react';
5
+ import { Icon, ButtonsColorPalette, IconButton as IconButton$2, Button, Checkbox, TextField as TextField$2, baseContainer, Theme, AppContainerContext, useTheme as useTheme$4, useId as useId$2, partitionComponents, isComponent, Flexbox, Switch, Text, LinkButton, ThemeProvider as ThemeProvider$4, RedsiftColorBlueN, RedsiftColorNeutralXDarkGrey, RedsiftColorNeutralWhite, Shield } from '@redsift/design-system';
7
6
  import { mdiSync, mdiFilterVariant, mdiViewColumn, mdiChevronUp, mdiChevronDown, mdiViewHeadline, mdiViewSequential, mdiViewStream, mdiChevronRight, mdiTrayArrowDown } from '@redsift/icons';
8
7
  import emStyled from '@emotion/styled';
9
8
  import { Global, ThemeContext as ThemeContext$3, keyframes } from '@emotion/react';
@@ -3625,7 +3624,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
3625
3624
  return target;
3626
3625
  }
3627
3626
 
3628
- const _excluded$R = ["values", "unit", "step"];
3627
+ const _excluded$S = ["values", "unit", "step"];
3629
3628
  const sortBreakpointsValues = values => {
3630
3629
  const breakpointsAsArray = Object.keys(values).map(key => ({
3631
3630
  key,
@@ -3660,7 +3659,7 @@ function createBreakpoints(breakpoints) {
3660
3659
  unit = 'px',
3661
3660
  step = 5
3662
3661
  } = breakpoints,
3663
- other = _objectWithoutPropertiesLoose(breakpoints, _excluded$R);
3662
+ other = _objectWithoutPropertiesLoose(breakpoints, _excluded$S);
3664
3663
  const sortedValues = sortBreakpointsValues(values);
3665
3664
  const keys = Object.keys(sortedValues);
3666
3665
  function up(key) {
@@ -4689,7 +4688,7 @@ const styleFunctionSx = unstable_createStyleFunctionSx();
4689
4688
  styleFunctionSx.filterProps = ['sx'];
4690
4689
  var styleFunctionSx$1 = styleFunctionSx;
4691
4690
 
4692
- const _excluded$Q = ["breakpoints", "palette", "spacing", "shape"];
4691
+ const _excluded$R = ["breakpoints", "palette", "spacing", "shape"];
4693
4692
  function createTheme$1(options = {}, ...args) {
4694
4693
  const {
4695
4694
  breakpoints: breakpointsInput = {},
@@ -4697,7 +4696,7 @@ function createTheme$1(options = {}, ...args) {
4697
4696
  spacing: spacingInput,
4698
4697
  shape: shapeInput = {}
4699
4698
  } = options,
4700
- other = _objectWithoutPropertiesLoose(options, _excluded$Q);
4699
+ other = _objectWithoutPropertiesLoose(options, _excluded$R);
4701
4700
  const breakpoints = createBreakpoints(breakpointsInput);
4702
4701
  const spacing = createSpacing(spacingInput);
4703
4702
  let muiTheme = deepmerge({
@@ -4765,7 +4764,7 @@ process.env.NODE_ENV !== "production" ? GlobalStyles$1.propTypes /* remove-propt
4765
4764
  themeId: PropTypes.string
4766
4765
  } : void 0;
4767
4766
 
4768
- const _excluded$P = ["sx"];
4767
+ const _excluded$Q = ["sx"];
4769
4768
  const splitProps = props => {
4770
4769
  var _props$theme$unstable, _props$theme;
4771
4770
  const result = {
@@ -4786,7 +4785,7 @@ function extendSxProp(props) {
4786
4785
  const {
4787
4786
  sx: inSx
4788
4787
  } = props,
4789
- other = _objectWithoutPropertiesLoose(props, _excluded$P);
4788
+ other = _objectWithoutPropertiesLoose(props, _excluded$Q);
4790
4789
  const {
4791
4790
  systemProps,
4792
4791
  otherProps
@@ -4812,7 +4811,7 @@ function extendSxProp(props) {
4812
4811
 
4813
4812
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
4814
4813
 
4815
- const _excluded$O = ["className", "component"];
4814
+ const _excluded$P = ["className", "component"];
4816
4815
  function createBox(options = {}) {
4817
4816
  const {
4818
4817
  themeId,
@@ -4830,7 +4829,7 @@ function createBox(options = {}) {
4830
4829
  className,
4831
4830
  component = 'div'
4832
4831
  } = _extendSxProp,
4833
- other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded$O);
4832
+ other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded$P);
4834
4833
  return /*#__PURE__*/jsxRuntimeExports.jsx(BoxRoot, _extends$1({
4835
4834
  as: component,
4836
4835
  ref: ref,
@@ -4841,7 +4840,7 @@ function createBox(options = {}) {
4841
4840
  return Box;
4842
4841
  }
4843
4842
 
4844
- const _excluded$N = ["variant"];
4843
+ const _excluded$O = ["variant"];
4845
4844
  function isEmpty$3(string) {
4846
4845
  return string.length === 0;
4847
4846
  }
@@ -4855,7 +4854,7 @@ function propsToClassKey(props) {
4855
4854
  const {
4856
4855
  variant
4857
4856
  } = props,
4858
- other = _objectWithoutPropertiesLoose(props, _excluded$N);
4857
+ other = _objectWithoutPropertiesLoose(props, _excluded$O);
4859
4858
  let classKey = variant || '';
4860
4859
  Object.keys(other).sort().forEach(key => {
4861
4860
  if (key === 'color') {
@@ -4867,7 +4866,7 @@ function propsToClassKey(props) {
4867
4866
  return classKey;
4868
4867
  }
4869
4868
 
4870
- const _excluded$M = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
4869
+ const _excluded$N = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
4871
4870
  function isEmpty$2(obj) {
4872
4871
  return Object.keys(obj).length === 0;
4873
4872
  }
@@ -4962,7 +4961,7 @@ function createStyled(input = {}) {
4962
4961
  skipSx: inputSkipSx,
4963
4962
  overridesResolver
4964
4963
  } = inputOptions,
4965
- options = _objectWithoutPropertiesLoose(inputOptions, _excluded$M);
4964
+ options = _objectWithoutPropertiesLoose(inputOptions, _excluded$N);
4966
4965
 
4967
4966
  // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
4968
4967
  const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;
@@ -5639,7 +5638,7 @@ const green = {
5639
5638
  };
5640
5639
  var green$1 = green;
5641
5640
 
5642
- const _excluded$L = ["mode", "contrastThreshold", "tonalOffset"];
5641
+ const _excluded$M = ["mode", "contrastThreshold", "tonalOffset"];
5643
5642
  const light = {
5644
5643
  // The colors used to style the text.
5645
5644
  text: {
@@ -5808,7 +5807,7 @@ function createPalette(palette) {
5808
5807
  contrastThreshold = 3,
5809
5808
  tonalOffset = 0.2
5810
5809
  } = palette,
5811
- other = _objectWithoutPropertiesLoose(palette, _excluded$L);
5810
+ other = _objectWithoutPropertiesLoose(palette, _excluded$M);
5812
5811
  const primary = palette.primary || getDefaultPrimary(mode);
5813
5812
  const secondary = palette.secondary || getDefaultSecondary(mode);
5814
5813
  const error = palette.error || getDefaultError(mode);
@@ -5932,7 +5931,7 @@ const theme2 = createTheme({ palette: {
5932
5931
  return paletteOutput;
5933
5932
  }
5934
5933
 
5935
- const _excluded$K = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"];
5934
+ const _excluded$L = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"];
5936
5935
  function round$2(value) {
5937
5936
  return Math.round(value * 1e5) / 1e5;
5938
5937
  }
@@ -5963,7 +5962,7 @@ function createTypography(palette, typography) {
5963
5962
  allVariants,
5964
5963
  pxToRem: pxToRem2
5965
5964
  } = _ref,
5966
- other = _objectWithoutPropertiesLoose(_ref, _excluded$K);
5965
+ other = _objectWithoutPropertiesLoose(_ref, _excluded$L);
5967
5966
  if (process.env.NODE_ENV !== 'production') {
5968
5967
  if (typeof fontSize !== 'number') {
5969
5968
  console.error('MUI: `fontSize` is required to be a number.');
@@ -6030,7 +6029,7 @@ function createShadow(...px) {
6030
6029
  const shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];
6031
6030
  var shadows$1 = shadows;
6032
6031
 
6033
- const _excluded$J = ["duration", "easing", "delay"];
6032
+ const _excluded$K = ["duration", "easing", "delay"];
6034
6033
  // Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves
6035
6034
  // to learn the context in which each easing should be used.
6036
6035
  const easing = {
@@ -6081,7 +6080,7 @@ function createTransitions(inputTransitions) {
6081
6080
  easing: easingOption = mergedEasing.easeInOut,
6082
6081
  delay = 0
6083
6082
  } = options,
6084
- other = _objectWithoutPropertiesLoose(options, _excluded$J);
6083
+ other = _objectWithoutPropertiesLoose(options, _excluded$K);
6085
6084
  if (process.env.NODE_ENV !== 'production') {
6086
6085
  const isString = value => typeof value === 'string';
6087
6086
  // IE11 support, replace with Number.isNaN
@@ -6128,7 +6127,7 @@ const zIndex = {
6128
6127
  };
6129
6128
  var zIndex$1 = zIndex;
6130
6129
 
6131
- const _excluded$I = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"];
6130
+ const _excluded$J = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"];
6132
6131
  function createTheme(options = {}, ...args) {
6133
6132
  const {
6134
6133
  mixins: mixinsInput = {},
@@ -6136,7 +6135,7 @@ function createTheme(options = {}, ...args) {
6136
6135
  transitions: transitionsInput = {},
6137
6136
  typography: typographyInput = {}
6138
6137
  } = options,
6139
- other = _objectWithoutPropertiesLoose(options, _excluded$I);
6138
+ other = _objectWithoutPropertiesLoose(options, _excluded$J);
6140
6139
  if (options.vars) {
6141
6140
  throw new Error(process.env.NODE_ENV !== "production" ? `MUI: \`vars\` is a private field used for CSS variables support.
6142
6141
  Please use another name.` : formatMuiErrorMessage(18));
@@ -6227,12 +6226,12 @@ const styled = createStyled({
6227
6226
  });
6228
6227
  var styled$1 = styled;
6229
6228
 
6230
- const _excluded$H = ["theme"];
6229
+ const _excluded$I = ["theme"];
6231
6230
  function ThemeProvider$1(_ref) {
6232
6231
  let {
6233
6232
  theme: themeInput
6234
6233
  } = _ref,
6235
- props = _objectWithoutPropertiesLoose(_ref, _excluded$H);
6234
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$I);
6236
6235
  const scopedTheme = themeInput[THEME_ID];
6237
6236
  return /*#__PURE__*/jsxRuntimeExports.jsx(ThemeProvider$2, _extends$1({}, props, {
6238
6237
  themeId: scopedTheme ? THEME_ID : undefined,
@@ -6456,7 +6455,7 @@ function mergeSlotProps(parameters) {
6456
6455
  };
6457
6456
  }
6458
6457
 
6459
- const _excluded$G = ["elementType", "externalSlotProps", "ownerState"];
6458
+ const _excluded$H = ["elementType", "externalSlotProps", "ownerState"];
6460
6459
  /**
6461
6460
  * @ignore - do not document.
6462
6461
  * Builds the props to be passed into the slot of an unstyled component.
@@ -6472,7 +6471,7 @@ function useSlotProps(parameters) {
6472
6471
  externalSlotProps,
6473
6472
  ownerState
6474
6473
  } = parameters,
6475
- rest = _objectWithoutPropertiesLoose(parameters, _excluded$G);
6474
+ rest = _objectWithoutPropertiesLoose(parameters, _excluded$H);
6476
6475
  const resolvedComponentsProps = resolveComponentProps(externalSlotProps, ownerState);
6477
6476
  const {
6478
6477
  props: mergedProps,
@@ -8688,8 +8687,8 @@ function getPopperUtilityClass(slot) {
8688
8687
  }
8689
8688
  generateUtilityClasses('MuiPopper', ['root']);
8690
8689
 
8691
- const _excluded$F = ["anchorEl", "children", "direction", "disablePortal", "modifiers", "open", "placement", "popperOptions", "popperRef", "slotProps", "slots", "TransitionProps", "ownerState"],
8692
- _excluded2$3 = ["anchorEl", "children", "container", "direction", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "style", "transition", "slotProps", "slots"];
8690
+ const _excluded$G = ["anchorEl", "children", "direction", "disablePortal", "modifiers", "open", "placement", "popperOptions", "popperRef", "slotProps", "slots", "TransitionProps", "ownerState"],
8691
+ _excluded2$2 = ["anchorEl", "children", "container", "direction", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "style", "transition", "slotProps", "slots"];
8693
8692
  function flipPlacement(placement, direction) {
8694
8693
  if (direction === 'ltr') {
8695
8694
  return placement;
@@ -8741,7 +8740,7 @@ const PopperTooltip = /*#__PURE__*/React.forwardRef(function PopperTooltip(props
8741
8740
  // @ts-ignore internal logic
8742
8741
  // prevent from spreading to DOM, it can come from the parent component e.g. Select.
8743
8742
  } = props,
8744
- other = _objectWithoutPropertiesLoose(props, _excluded$F);
8743
+ other = _objectWithoutPropertiesLoose(props, _excluded$G);
8745
8744
  const tooltipRef = React.useRef(null);
8746
8745
  const ownRef = useForkRef(tooltipRef, forwardedRef);
8747
8746
  const popperRef = React.useRef(null);
@@ -8873,7 +8872,7 @@ const Popper$2 = /*#__PURE__*/React.forwardRef(function Popper(props, forwardedR
8873
8872
  slotProps = {},
8874
8873
  slots = {}
8875
8874
  } = props,
8876
- other = _objectWithoutPropertiesLoose(props, _excluded2$3);
8875
+ other = _objectWithoutPropertiesLoose(props, _excluded2$2);
8877
8876
  const [exited, setExited] = React.useState(true);
8878
8877
  const handleEnter = () => {
8879
8878
  setExited(false);
@@ -9268,7 +9267,7 @@ function getModalUtilityClass(slot) {
9268
9267
  }
9269
9268
  generateUtilityClasses('MuiModal', ['root', 'hidden', 'backdrop']);
9270
9269
 
9271
- const _excluded$E = ["children", "closeAfterTransition", "container", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onKeyDown", "open", "onTransitionEnter", "onTransitionExited", "slotProps", "slots"];
9270
+ const _excluded$F = ["children", "closeAfterTransition", "container", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onKeyDown", "open", "onTransitionEnter", "onTransitionExited", "slotProps", "slots"];
9272
9271
  const useUtilityClasses$o = ownerState => {
9273
9272
  const {
9274
9273
  open,
@@ -9337,7 +9336,7 @@ const Modal$2 = /*#__PURE__*/React.forwardRef(function Modal(props, forwardedRef
9337
9336
  slotProps = {},
9338
9337
  slots = {}
9339
9338
  } = props,
9340
- other = _objectWithoutPropertiesLoose(props, _excluded$E);
9339
+ other = _objectWithoutPropertiesLoose(props, _excluded$F);
9341
9340
  // TODO: `modal`` must change its type in this file to match the type of methods
9342
9341
  // provided by `ModalManager`
9343
9342
  const manager = managerProp;
@@ -9627,7 +9626,7 @@ process.env.NODE_ENV !== "production" ? Modal$2.propTypes /* remove-proptypes */
9627
9626
  } : void 0;
9628
9627
  var ModalUnstyled = Modal$2;
9629
9628
 
9630
- const _excluded$D = ["onChange", "maxRows", "minRows", "style", "value"];
9629
+ const _excluded$E = ["onChange", "maxRows", "minRows", "style", "value"];
9631
9630
  function getStyleValue(value) {
9632
9631
  return parseInt(value, 10) || 0;
9633
9632
  }
@@ -9669,7 +9668,7 @@ const TextareaAutosize = /*#__PURE__*/React.forwardRef(function TextareaAutosize
9669
9668
  style,
9670
9669
  value
9671
9670
  } = props,
9672
- other = _objectWithoutPropertiesLoose(props, _excluded$D);
9671
+ other = _objectWithoutPropertiesLoose(props, _excluded$E);
9673
9672
  const {
9674
9673
  current: isControlled
9675
9674
  } = React.useRef(value != null);
@@ -9963,7 +9962,7 @@ function getInputBaseUtilityClass(slot) {
9963
9962
  const inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);
9964
9963
  var inputBaseClasses$1 = inputBaseClasses;
9965
9964
 
9966
- const _excluded$C = ["aria-describedby", "autoComplete", "autoFocus", "className", "color", "components", "componentsProps", "defaultValue", "disabled", "disableInjectingGlobalStyles", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputRef", "margin", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "rows", "size", "slotProps", "slots", "startAdornment", "type", "value"];
9965
+ const _excluded$D = ["aria-describedby", "autoComplete", "autoFocus", "className", "color", "components", "componentsProps", "defaultValue", "disabled", "disableInjectingGlobalStyles", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputRef", "margin", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "rows", "size", "slotProps", "slots", "startAdornment", "type", "value"];
9967
9966
  const rootOverridesResolver = (props, styles) => {
9968
9967
  const {
9969
9968
  ownerState
@@ -10194,7 +10193,7 @@ const InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref)
10194
10193
  type = 'text',
10195
10194
  value: valueProp
10196
10195
  } = props,
10197
- other = _objectWithoutPropertiesLoose(props, _excluded$C);
10196
+ other = _objectWithoutPropertiesLoose(props, _excluded$D);
10198
10197
  const value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;
10199
10198
  const {
10200
10199
  current: isControlled
@@ -10656,7 +10655,7 @@ function getInputUtilityClass(slot) {
10656
10655
  const inputClasses = _extends$1({}, inputBaseClasses$1, generateUtilityClasses('MuiInput', ['root', 'underline', 'input']));
10657
10656
  var inputClasses$1 = inputClasses;
10658
10657
 
10659
- const _excluded$B = ["disableUnderline", "components", "componentsProps", "fullWidth", "inputComponent", "multiline", "slotProps", "slots", "type"];
10658
+ const _excluded$C = ["disableUnderline", "components", "componentsProps", "fullWidth", "inputComponent", "multiline", "slotProps", "slots", "type"];
10660
10659
  const useUtilityClasses$m = ownerState => {
10661
10660
  const {
10662
10661
  classes,
@@ -10769,7 +10768,7 @@ const Input = /*#__PURE__*/React.forwardRef(function Input(inProps, ref) {
10769
10768
  slots = {},
10770
10769
  type = 'text'
10771
10770
  } = props,
10772
- other = _objectWithoutPropertiesLoose(props, _excluded$B);
10771
+ other = _objectWithoutPropertiesLoose(props, _excluded$C);
10773
10772
  const classes = useUtilityClasses$m(props);
10774
10773
  const ownerState = {
10775
10774
  disableUnderline
@@ -10992,7 +10991,7 @@ function getFilledInputUtilityClass(slot) {
10992
10991
  const filledInputClasses = _extends$1({}, inputBaseClasses$1, generateUtilityClasses('MuiFilledInput', ['root', 'underline', 'input']));
10993
10992
  var filledInputClasses$1 = filledInputClasses;
10994
10993
 
10995
- const _excluded$A = ["disableUnderline", "components", "componentsProps", "fullWidth", "hiddenLabel", "inputComponent", "multiline", "slotProps", "slots", "type"];
10994
+ const _excluded$B = ["disableUnderline", "components", "componentsProps", "fullWidth", "hiddenLabel", "inputComponent", "multiline", "slotProps", "slots", "type"];
10996
10995
  const useUtilityClasses$l = ownerState => {
10997
10996
  const {
10998
10997
  classes,
@@ -11176,7 +11175,7 @@ const FilledInput = /*#__PURE__*/React.forwardRef(function FilledInput(inProps,
11176
11175
  slots = {},
11177
11176
  type = 'text'
11178
11177
  } = props,
11179
- other = _objectWithoutPropertiesLoose(props, _excluded$A);
11178
+ other = _objectWithoutPropertiesLoose(props, _excluded$B);
11180
11179
  const ownerState = _extends$1({}, props, {
11181
11180
  fullWidth,
11182
11181
  inputComponent,
@@ -11407,7 +11406,7 @@ FilledInput.muiName = 'Input';
11407
11406
  var FilledInput$1 = FilledInput;
11408
11407
 
11409
11408
  var _span$2;
11410
- const _excluded$z = ["children", "classes", "className", "label", "notched"];
11409
+ const _excluded$A = ["children", "classes", "className", "label", "notched"];
11411
11410
  const NotchedOutlineRoot$1 = styled$1('fieldset')({
11412
11411
  textAlign: 'left',
11413
11412
  position: 'absolute',
@@ -11480,7 +11479,7 @@ function NotchedOutline(props) {
11480
11479
  label,
11481
11480
  notched
11482
11481
  } = props,
11483
- other = _objectWithoutPropertiesLoose(props, _excluded$z);
11482
+ other = _objectWithoutPropertiesLoose(props, _excluded$A);
11484
11483
  const withLabel = label != null && label !== '';
11485
11484
  const ownerState = _extends$1({}, props, {
11486
11485
  notched,
@@ -11537,7 +11536,7 @@ function getOutlinedInputUtilityClass(slot) {
11537
11536
  const outlinedInputClasses = _extends$1({}, inputBaseClasses$1, generateUtilityClasses('MuiOutlinedInput', ['root', 'notchedOutline', 'input']));
11538
11537
  var outlinedInputClasses$1 = outlinedInputClasses;
11539
11538
 
11540
- const _excluded$y = ["components", "fullWidth", "inputComponent", "label", "multiline", "notched", "slots", "type"];
11539
+ const _excluded$z = ["components", "fullWidth", "inputComponent", "label", "multiline", "notched", "slots", "type"];
11541
11540
  const useUtilityClasses$k = ownerState => {
11542
11541
  const {
11543
11542
  classes
@@ -11656,7 +11655,7 @@ const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inPro
11656
11655
  slots = {},
11657
11656
  type = 'text'
11658
11657
  } = props,
11659
- other = _objectWithoutPropertiesLoose(props, _excluded$y);
11658
+ other = _objectWithoutPropertiesLoose(props, _excluded$z);
11660
11659
  const classes = useUtilityClasses$k(props);
11661
11660
  const muiFormControl = useFormControl();
11662
11661
  const fcs = formControlState({
@@ -11877,7 +11876,7 @@ function getFormLabelUtilityClasses(slot) {
11877
11876
  const formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);
11878
11877
  var formLabelClasses$1 = formLabelClasses;
11879
11878
 
11880
- const _excluded$x = ["children", "className", "color", "component", "disabled", "error", "filled", "focused", "required"];
11879
+ const _excluded$y = ["children", "className", "color", "component", "disabled", "error", "filled", "focused", "required"];
11881
11880
  const useUtilityClasses$j = ownerState => {
11882
11881
  const {
11883
11882
  classes,
@@ -11942,7 +11941,7 @@ const FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref)
11942
11941
  className,
11943
11942
  component = 'label'
11944
11943
  } = props,
11945
- other = _objectWithoutPropertiesLoose(props, _excluded$x);
11944
+ other = _objectWithoutPropertiesLoose(props, _excluded$y);
11946
11945
  const muiFormControl = useFormControl();
11947
11946
  const fcs = formControlState({
11948
11947
  props,
@@ -12033,7 +12032,7 @@ function getInputLabelUtilityClasses(slot) {
12033
12032
  }
12034
12033
  generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);
12035
12034
 
12036
- const _excluded$w = ["disableAnimation", "margin", "shrink", "variant", "className"];
12035
+ const _excluded$x = ["disableAnimation", "margin", "shrink", "variant", "className"];
12037
12036
  const useUtilityClasses$i = ownerState => {
12038
12037
  const {
12039
12038
  classes,
@@ -12135,7 +12134,7 @@ const InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, re
12135
12134
  shrink: shrinkProp,
12136
12135
  className
12137
12136
  } = props,
12138
- other = _objectWithoutPropertiesLoose(props, _excluded$w);
12137
+ other = _objectWithoutPropertiesLoose(props, _excluded$x);
12139
12138
  const muiFormControl = useFormControl();
12140
12139
  let shrink = shrinkProp;
12141
12140
  if (typeof shrink === 'undefined' && muiFormControl) {
@@ -12238,7 +12237,7 @@ function getFormControlUtilityClasses(slot) {
12238
12237
  }
12239
12238
  generateUtilityClasses('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);
12240
12239
 
12241
- const _excluded$v = ["children", "className", "color", "component", "disabled", "error", "focused", "fullWidth", "hiddenLabel", "margin", "required", "size", "variant"];
12240
+ const _excluded$w = ["children", "className", "color", "component", "disabled", "error", "focused", "fullWidth", "hiddenLabel", "margin", "required", "size", "variant"];
12242
12241
  const useUtilityClasses$h = ownerState => {
12243
12242
  const {
12244
12243
  classes,
@@ -12324,7 +12323,7 @@ const FormControl = /*#__PURE__*/React.forwardRef(function FormControl(inProps,
12324
12323
  size = 'medium',
12325
12324
  variant = 'outlined'
12326
12325
  } = props,
12327
- other = _objectWithoutPropertiesLoose(props, _excluded$v);
12326
+ other = _objectWithoutPropertiesLoose(props, _excluded$w);
12328
12327
  const ownerState = _extends$1({}, props, {
12329
12328
  color,
12330
12329
  component,
@@ -12520,7 +12519,7 @@ const formHelperTextClasses = generateUtilityClasses('MuiFormHelperText', ['root
12520
12519
  var formHelperTextClasses$1 = formHelperTextClasses;
12521
12520
 
12522
12521
  var _span$1;
12523
- const _excluded$u = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];
12522
+ const _excluded$v = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];
12524
12523
  const useUtilityClasses$g = ownerState => {
12525
12524
  const {
12526
12525
  classes,
@@ -12579,7 +12578,7 @@ const FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inP
12579
12578
  className,
12580
12579
  component = 'p'
12581
12580
  } = props,
12582
- other = _objectWithoutPropertiesLoose(props, _excluded$u);
12581
+ other = _objectWithoutPropertiesLoose(props, _excluded$v);
12583
12582
  const muiFormControl = useFormControl();
12584
12583
  const fcs = formControlState({
12585
12584
  props,
@@ -12685,7 +12684,7 @@ function getListUtilityClass(slot) {
12685
12684
  }
12686
12685
  generateUtilityClasses('MuiList', ['root', 'padding', 'dense', 'subheader']);
12687
12686
 
12688
- const _excluded$t = ["children", "className", "component", "dense", "disablePadding", "subheader"];
12687
+ const _excluded$u = ["children", "className", "component", "dense", "disablePadding", "subheader"];
12689
12688
  const useUtilityClasses$f = ownerState => {
12690
12689
  const {
12691
12690
  classes,
@@ -12733,7 +12732,7 @@ const List = /*#__PURE__*/React.forwardRef(function List(inProps, ref) {
12733
12732
  disablePadding = false,
12734
12733
  subheader
12735
12734
  } = props,
12736
- other = _objectWithoutPropertiesLoose(props, _excluded$t);
12735
+ other = _objectWithoutPropertiesLoose(props, _excluded$u);
12737
12736
  const context = React.useMemo(() => ({
12738
12737
  dense
12739
12738
  }), [dense]);
@@ -12800,7 +12799,7 @@ process.env.NODE_ENV !== "production" ? List.propTypes /* remove-proptypes */ =
12800
12799
  } : void 0;
12801
12800
  var List$1 = List;
12802
12801
 
12803
- const _excluded$s = ["actions", "autoFocus", "autoFocusItem", "children", "className", "disabledItemsFocusable", "disableListWrap", "onKeyDown", "variant"];
12802
+ const _excluded$t = ["actions", "autoFocus", "autoFocusItem", "children", "className", "disabledItemsFocusable", "disableListWrap", "onKeyDown", "variant"];
12804
12803
  function nextItem(list, item, disableListWrap) {
12805
12804
  if (list === item) {
12806
12805
  return list.firstChild;
@@ -12882,7 +12881,7 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
12882
12881
  onKeyDown,
12883
12882
  variant = 'selectedMenu'
12884
12883
  } = props,
12885
- other = _objectWithoutPropertiesLoose(props, _excluded$s);
12884
+ other = _objectWithoutPropertiesLoose(props, _excluded$t);
12886
12885
  const listRef = React.useRef(null);
12887
12886
  const textCriteriaRef = React.useRef({
12888
12887
  keys: [],
@@ -14072,7 +14071,7 @@ function getTransitionProps(props, options) {
14072
14071
  };
14073
14072
  }
14074
14073
 
14075
- const _excluded$r = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
14074
+ const _excluded$s = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
14076
14075
  function getScale$1(value) {
14077
14076
  return `scale(${value}, ${value ** 2})`;
14078
14077
  }
@@ -14116,7 +14115,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
14116
14115
  // eslint-disable-next-line react/prop-types
14117
14116
  TransitionComponent = Transition$1
14118
14117
  } = props,
14119
- other = _objectWithoutPropertiesLoose(props, _excluded$r);
14118
+ other = _objectWithoutPropertiesLoose(props, _excluded$s);
14120
14119
  const timer = React.useRef();
14121
14120
  const autoTimeout = React.useRef();
14122
14121
  const theme = useTheme();
@@ -14320,7 +14319,7 @@ process.env.NODE_ENV !== "production" ? Grow.propTypes /* remove-proptypes */ =
14320
14319
  Grow.muiSupportAuto = true;
14321
14320
  var Grow$1 = Grow;
14322
14321
 
14323
- const _excluded$q = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
14322
+ const _excluded$r = ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"];
14324
14323
  const styles = {
14325
14324
  entering: {
14326
14325
  opacity: 1
@@ -14357,7 +14356,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
14357
14356
  // eslint-disable-next-line react/prop-types
14358
14357
  TransitionComponent = Transition$1
14359
14358
  } = props,
14360
- other = _objectWithoutPropertiesLoose(props, _excluded$q);
14359
+ other = _objectWithoutPropertiesLoose(props, _excluded$r);
14361
14360
  const nodeRef = React.useRef(null);
14362
14361
  const handleRef = useForkRef(nodeRef, children.ref, ref);
14363
14362
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
@@ -14518,7 +14517,7 @@ function getBackdropUtilityClass(slot) {
14518
14517
  }
14519
14518
  generateUtilityClasses('MuiBackdrop', ['root', 'invisible']);
14520
14519
 
14521
- const _excluded$p = ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"];
14520
+ const _excluded$q = ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"];
14522
14521
  const useUtilityClasses$e = ownerState => {
14523
14522
  const {
14524
14523
  classes,
@@ -14573,7 +14572,7 @@ const Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {
14573
14572
  TransitionComponent = Fade$1,
14574
14573
  transitionDuration
14575
14574
  } = props,
14576
- other = _objectWithoutPropertiesLoose(props, _excluded$p);
14575
+ other = _objectWithoutPropertiesLoose(props, _excluded$q);
14577
14576
  const ownerState = _extends$1({}, props, {
14578
14577
  component,
14579
14578
  invisible
@@ -14694,7 +14693,7 @@ process.env.NODE_ENV !== "production" ? Backdrop.propTypes /* remove-proptypes *
14694
14693
  } : void 0;
14695
14694
  var Backdrop$1 = Backdrop;
14696
14695
 
14697
- const _excluded$o = ["BackdropComponent", "BackdropProps", "classes", "className", "closeAfterTransition", "children", "container", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "open", "slotProps", "slots", "theme"];
14696
+ const _excluded$p = ["BackdropComponent", "BackdropProps", "classes", "className", "closeAfterTransition", "children", "container", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "onBackdropClick", "onClose", "open", "slotProps", "slots", "theme"];
14698
14697
  const ModalRoot = styled$1('div', {
14699
14698
  name: 'MuiModal',
14700
14699
  slot: 'Root',
@@ -14773,7 +14772,7 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
14773
14772
  // eslint-disable-next-line react/prop-types
14774
14773
  theme
14775
14774
  } = props,
14776
- other = _objectWithoutPropertiesLoose(props, _excluded$o);
14775
+ other = _objectWithoutPropertiesLoose(props, _excluded$p);
14777
14776
  const [exited, setExited] = React.useState(true);
14778
14777
  const commonProps = {
14779
14778
  container,
@@ -14997,7 +14996,7 @@ function getPaperUtilityClass(slot) {
14997
14996
  }
14998
14997
  generateUtilityClasses('MuiPaper', ['root', 'rounded', 'outlined', 'elevation', 'elevation0', 'elevation1', 'elevation2', 'elevation3', 'elevation4', 'elevation5', 'elevation6', 'elevation7', 'elevation8', 'elevation9', 'elevation10', 'elevation11', 'elevation12', 'elevation13', 'elevation14', 'elevation15', 'elevation16', 'elevation17', 'elevation18', 'elevation19', 'elevation20', 'elevation21', 'elevation22', 'elevation23', 'elevation24']);
14999
14998
 
15000
- const _excluded$n = ["className", "component", "elevation", "square", "variant"];
14999
+ const _excluded$o = ["className", "component", "elevation", "square", "variant"];
15001
15000
  const useUtilityClasses$d = ownerState => {
15002
15001
  const {
15003
15002
  square,
@@ -15052,7 +15051,7 @@ const Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {
15052
15051
  square = false,
15053
15052
  variant = 'elevation'
15054
15053
  } = props,
15055
- other = _objectWithoutPropertiesLoose(props, _excluded$n);
15054
+ other = _objectWithoutPropertiesLoose(props, _excluded$o);
15056
15055
  const ownerState = _extends$1({}, props, {
15057
15056
  component,
15058
15057
  elevation,
@@ -15133,8 +15132,8 @@ function getPopoverUtilityClass(slot) {
15133
15132
  }
15134
15133
  generateUtilityClasses('MuiPopover', ['root', 'paper']);
15135
15134
 
15136
- const _excluded$m = ["onEntering"],
15137
- _excluded2$2 = ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "slots", "slotProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"],
15135
+ const _excluded$n = ["onEntering"],
15136
+ _excluded2$1 = ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "slots", "slotProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"],
15138
15137
  _excluded3 = ["slotProps"];
15139
15138
  function getOffsetTop(rect, vertical) {
15140
15139
  let offset = 0;
@@ -15230,8 +15229,8 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
15230
15229
  onEntering
15231
15230
  } = {}
15232
15231
  } = props,
15233
- TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded$m),
15234
- other = _objectWithoutPropertiesLoose(props, _excluded2$2);
15232
+ TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded$n),
15233
+ other = _objectWithoutPropertiesLoose(props, _excluded2$1);
15235
15234
  const externalPaperSlotProps = (_slotProps$paper = slotProps == null ? void 0 : slotProps.paper) != null ? _slotProps$paper : PaperPropsProp;
15236
15235
  const paperRef = React.useRef();
15237
15236
  const handlePaperRef = useForkRef(paperRef, externalPaperSlotProps.ref);
@@ -15636,8 +15635,8 @@ function getMenuUtilityClass(slot) {
15636
15635
  }
15637
15636
  generateUtilityClasses('MuiMenu', ['root', 'paper', 'list']);
15638
15637
 
15639
- const _excluded$l = ["onEntering"],
15640
- _excluded2$1 = ["autoFocus", "children", "disableAutoFocusItem", "MenuListProps", "onClose", "open", "PaperProps", "PopoverClasses", "transitionDuration", "TransitionProps", "variant"];
15638
+ const _excluded$m = ["onEntering"],
15639
+ _excluded2 = ["autoFocus", "children", "disableAutoFocusItem", "MenuListProps", "onClose", "open", "PaperProps", "PopoverClasses", "transitionDuration", "TransitionProps", "variant"];
15641
15640
  const RTL_ORIGIN = {
15642
15641
  vertical: 'top',
15643
15642
  horizontal: 'right'
@@ -15703,8 +15702,8 @@ const Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {
15703
15702
  } = {},
15704
15703
  variant = 'selectedMenu'
15705
15704
  } = props,
15706
- TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded$l),
15707
- other = _objectWithoutPropertiesLoose(props, _excluded2$1);
15705
+ TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded$m),
15706
+ other = _objectWithoutPropertiesLoose(props, _excluded2);
15708
15707
  const theme = useTheme();
15709
15708
  const isRtl = theme.direction === 'rtl';
15710
15709
  const ownerState = _extends$1({}, props, {
@@ -15893,7 +15892,7 @@ function getNativeSelectUtilityClasses(slot) {
15893
15892
  const nativeSelectClasses = generateUtilityClasses('MuiNativeSelect', ['root', 'select', 'multiple', 'filled', 'outlined', 'standard', 'disabled', 'icon', 'iconOpen', 'iconFilled', 'iconOutlined', 'iconStandard', 'nativeInput', 'error']);
15894
15893
  var nativeSelectClasses$1 = nativeSelectClasses;
15895
15894
 
15896
- const _excluded$k = ["className", "disabled", "error", "IconComponent", "inputRef", "variant"];
15895
+ const _excluded$l = ["className", "disabled", "error", "IconComponent", "inputRef", "variant"];
15897
15896
  const useUtilityClasses$a = ownerState => {
15898
15897
  const {
15899
15898
  classes,
@@ -16022,7 +16021,7 @@ const NativeSelectInput = /*#__PURE__*/React.forwardRef(function NativeSelectInp
16022
16021
  inputRef,
16023
16022
  variant = 'standard'
16024
16023
  } = props,
16025
- other = _objectWithoutPropertiesLoose(props, _excluded$k);
16024
+ other = _objectWithoutPropertiesLoose(props, _excluded$l);
16026
16025
  const ownerState = _extends$1({}, props, {
16027
16026
  disabled,
16028
16027
  variant,
@@ -16107,7 +16106,7 @@ const selectClasses = generateUtilityClasses('MuiSelect', ['select', 'multiple',
16107
16106
  var selectClasses$1 = selectClasses;
16108
16107
 
16109
16108
  var _span;
16110
- const _excluded$j = ["aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "className", "defaultOpen", "defaultValue", "disabled", "displayEmpty", "error", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"];
16109
+ const _excluded$k = ["aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "className", "defaultOpen", "defaultValue", "disabled", "displayEmpty", "error", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"];
16111
16110
  const SelectSelect = styled$1('div', {
16112
16111
  name: 'MuiSelect',
16113
16112
  slot: 'Select',
@@ -16229,7 +16228,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
16229
16228
  value: valueProp,
16230
16229
  variant = 'standard'
16231
16230
  } = props,
16232
- other = _objectWithoutPropertiesLoose(props, _excluded$j);
16231
+ other = _objectWithoutPropertiesLoose(props, _excluded$k);
16233
16232
  const [value, setValueState] = useControlled({
16234
16233
  controlled: valueProp,
16235
16234
  default: defaultValue,
@@ -16740,7 +16739,7 @@ function getSvgIconUtilityClass(slot) {
16740
16739
  }
16741
16740
  generateUtilityClasses('MuiSvgIcon', ['root', 'colorPrimary', 'colorSecondary', 'colorAction', 'colorError', 'colorDisabled', 'fontSizeInherit', 'fontSizeSmall', 'fontSizeMedium', 'fontSizeLarge']);
16742
16741
 
16743
- const _excluded$i = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"];
16742
+ const _excluded$j = ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"];
16744
16743
  const useUtilityClasses$8 = ownerState => {
16745
16744
  const {
16746
16745
  color,
@@ -16806,7 +16805,7 @@ const SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
16806
16805
  titleAccess,
16807
16806
  viewBox = '0 0 24 24'
16808
16807
  } = props,
16809
- other = _objectWithoutPropertiesLoose(props, _excluded$i);
16808
+ other = _objectWithoutPropertiesLoose(props, _excluded$j);
16810
16809
  const ownerState = _extends$1({}, props, {
16811
16810
  color,
16812
16811
  component,
@@ -16932,7 +16931,7 @@ var ArrowDropDownIcon = createSvgIcon( /*#__PURE__*/jsxRuntimeExports.jsx("path"
16932
16931
  d: "M7 10l5 5 5-5z"
16933
16932
  }), 'ArrowDropDown');
16934
16933
 
16935
- const _excluded$h = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"];
16934
+ const _excluded$i = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"];
16936
16935
  const useUtilityClasses$7 = ownerState => {
16937
16936
  const {
16938
16937
  classes
@@ -16976,7 +16975,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
16976
16975
  SelectDisplayProps,
16977
16976
  variant: variantProp = 'outlined'
16978
16977
  } = props,
16979
- other = _objectWithoutPropertiesLoose(props, _excluded$h);
16978
+ other = _objectWithoutPropertiesLoose(props, _excluded$i);
16980
16979
  const inputComponent = native ? NativeSelectInput$1 : SelectInput$1;
16981
16980
  const muiFormControl = useFormControl();
16982
16981
  const fcs = formControlState({
@@ -17199,7 +17198,7 @@ function getTextFieldUtilityClass(slot) {
17199
17198
  }
17200
17199
  generateUtilityClasses('MuiTextField', ['root']);
17201
17200
 
17202
- const _excluded$g = ["autoComplete", "autoFocus", "children", "className", "color", "defaultValue", "disabled", "error", "FormHelperTextProps", "fullWidth", "helperText", "id", "InputLabelProps", "inputProps", "InputProps", "inputRef", "label", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "placeholder", "required", "rows", "select", "SelectProps", "type", "value", "variant"];
17201
+ const _excluded$h = ["autoComplete", "autoFocus", "children", "className", "color", "defaultValue", "disabled", "error", "FormHelperTextProps", "fullWidth", "helperText", "id", "InputLabelProps", "inputProps", "InputProps", "inputRef", "label", "maxRows", "minRows", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "placeholder", "required", "rows", "select", "SelectProps", "type", "value", "variant"];
17203
17202
  const variantComponent = {
17204
17203
  standard: Input$1,
17205
17204
  filled: FilledInput$1,
@@ -17292,7 +17291,7 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField(inProps, ref)
17292
17291
  value,
17293
17292
  variant = 'outlined'
17294
17293
  } = props,
17295
- other = _objectWithoutPropertiesLoose(props, _excluded$g);
17294
+ other = _objectWithoutPropertiesLoose(props, _excluded$h);
17296
17295
  const ownerState = _extends$1({}, props, {
17297
17296
  autoFocus,
17298
17297
  color,
@@ -18126,6 +18125,8 @@ const isValueValid = (value, field, columns, operator) => {
18126
18125
  return false;
18127
18126
  };
18128
18127
 
18128
+ /** FILTERS */
18129
+
18129
18130
  // example:
18130
18131
  // unicodeDomain[contains]=a&unicodeDomain[contains]=dsa&logicOperator=and&tab=ignored
18131
18132
  const getFilterModelFromString = (searchString, columns) => {
@@ -18164,7 +18165,13 @@ const getFilterModelFromString = (searchString, columns) => {
18164
18165
  isInvalid = true;
18165
18166
  return;
18166
18167
  }
18167
- const operator = decodeValue(key.split('[')[1].split(']')[0]);
18168
+ const splitRight = key.split('[')[1].split(']')[0].split(',');
18169
+ const type = splitRight[1];
18170
+ if (type !== columnType) {
18171
+ isInvalid = true;
18172
+ return;
18173
+ }
18174
+ const operator = splitRight[0];
18168
18175
  // if the operator is not part of the valid operators invalidate the URL
18169
18176
  if (!isOperatorValueValid(field, operator, columns) || Array.isArray(operator)) {
18170
18177
  isInvalid = true;
@@ -18180,7 +18187,8 @@ const getFilterModelFromString = (searchString, columns) => {
18180
18187
  field,
18181
18188
  operator: columnType === 'number' && Object.keys(numberOperatorDecoder).includes(operator) ? numberOperatorDecoder[operator] : operator,
18182
18189
  id,
18183
- value: listOperators.includes(operator) && decodedValue === '' ? [] : decodedValue
18190
+ value: listOperators.includes(operator) && decodedValue === '' ? [] : decodedValue,
18191
+ type
18184
18192
  });
18185
18193
  });
18186
18194
 
@@ -18205,12 +18213,13 @@ const getSearchParamsFromFilterModel = filterModel => {
18205
18213
  const {
18206
18214
  field,
18207
18215
  operator,
18208
- value
18216
+ value,
18217
+ type
18209
18218
  } = item;
18210
18219
  if (Object.keys(numberOperatorEncoder).includes(operator)) {
18211
- searchParams.set(`_${field}[${numberOperatorEncoder[operator]}]`, encodeValue(value));
18220
+ searchParams.set(`_${field}[${numberOperatorEncoder[operator]},${encodeValue(type)}]`, encodeValue(value));
18212
18221
  } else {
18213
- searchParams.set(`_${field}[${encodeValue(operator)}]`, encodeValue(value));
18222
+ searchParams.set(`_${field}[${encodeValue(operator)},${encodeValue(type)}]`, encodeValue(value));
18214
18223
  }
18215
18224
  });
18216
18225
  return searchParams;
@@ -18239,38 +18248,26 @@ const getFilterModel = (search, columns, localStorageFilters, setLocalStorageFil
18239
18248
  logicOperator: GridLogicOperator.And
18240
18249
  };
18241
18250
  };
18242
- const getSortingFromString = (notParsed, columns) => {
18243
- // If the string is empty return the default model
18244
- if (!notParsed) {
18251
+
18252
+ /** SORT */
18253
+
18254
+ const getSortingFromString = (searchString, columns) => {
18255
+ if (!searchString) {
18245
18256
  return null;
18246
18257
  }
18247
- // remove the initial ? if present
18248
- const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;
18249
- for (const item of parsed.split('&')) {
18250
- const fieldURL = item.split('=')[0];
18251
- if (fieldURL !== '_sortColumn') {
18252
- continue;
18253
- }
18254
- const left = item.split(']')[0];
18255
- if (left.split('[').length < 2) {
18256
- continue;
18257
- }
18258
- const value = item.split('[')[1].split(']')[0];
18259
- if (value === '') {
18260
- return [];
18261
- }
18262
- const fields = columns.map(column => column.field);
18263
- const [column, order] = value.split(',');
18264
- if (fields.includes(column) && (order === 'asc' || order === 'desc')) {
18265
- return [{
18266
- field: column,
18267
- sort: order
18268
- }];
18269
- }
18270
- continue;
18258
+ const searchParams = new URLSearchParams(searchString);
18259
+ const value = searchParams.get('_sortColumn');
18260
+ if (value === '' || value === null || value === '[]') {
18261
+ return [];
18262
+ }
18263
+ const fields = columns.map(column => column.field);
18264
+ const [column, order] = value.slice(1, value.length - 1).split(',');
18265
+ if (fields.includes(column) && (order === 'asc' || order === 'desc')) {
18266
+ return [{
18267
+ field: column,
18268
+ sort: order
18269
+ }];
18271
18270
  }
18272
-
18273
- // No information was found about the sorting model in the URL
18274
18271
  return null;
18275
18272
  };
18276
18273
  const getSearchParamsFromSorting = sorting => {
@@ -18287,8 +18284,9 @@ const getSortModel = (search, columns, localStorageSorting, setLocalStorageSorti
18287
18284
  const sorting = getSortingFromString(search, columns);
18288
18285
  if (sorting) {
18289
18286
  const searchFromSortModel = getSearchParamsFromSorting(sorting);
18290
- if (searchFromSortModel.toString() !== localStorageSorting) {
18291
- setLocalStorageSorting(searchFromSortModel.toString());
18287
+ const searchString = urlSearchParamsToString(searchFromSortModel);
18288
+ if (searchString !== localStorageSorting) {
18289
+ setLocalStorageSorting(searchString);
18292
18290
  }
18293
18291
  return sorting;
18294
18292
  }
@@ -18298,6 +18296,76 @@ const getSortModel = (search, columns, localStorageSorting, setLocalStorageSorti
18298
18296
  }
18299
18297
  return [];
18300
18298
  };
18299
+
18300
+ /** PAGINATION */
18301
+
18302
+ const getPaginationFromString = searchString => {
18303
+ if (!searchString) {
18304
+ return {
18305
+ page: 0,
18306
+ pageSize: 25,
18307
+ direction: 'next'
18308
+ };
18309
+ }
18310
+ const searchParams = new URLSearchParams(searchString);
18311
+ const value = searchParams.get('_pagination');
18312
+ if (value === '' || value === null || value === '[]') {
18313
+ return {
18314
+ page: 0,
18315
+ pageSize: 25,
18316
+ direction: 'next'
18317
+ };
18318
+ }
18319
+ const pagination = value.slice(1, value.length - 1).split(',');
18320
+ const page = parseFloat(pagination[0]);
18321
+ const pageSize = parseFloat(pagination[1]);
18322
+ const direction = pagination[2];
18323
+ if (!Number.isNaN(page) && !Number.isNaN(pageSize) && direction && ['next', 'back'].includes(direction)) {
18324
+ return {
18325
+ page,
18326
+ pageSize,
18327
+ direction: direction
18328
+ };
18329
+ }
18330
+ return {
18331
+ page: 0,
18332
+ pageSize: 25,
18333
+ direction: 'next'
18334
+ };
18335
+ };
18336
+ const getSearchParamsFromPagination = pagination => {
18337
+ const searchParams = new URLSearchParams();
18338
+ searchParams.set('_pagination', `[${pagination.page},${pagination.pageSize},${pagination.direction}]`);
18339
+ return searchParams;
18340
+ };
18341
+
18342
+ // Rules:
18343
+ // - if we have something in the URL, use that info
18344
+ // - if we don't have that, use the localStorage and update the URL
18345
+ // - if we don't have that, return an empty PaginationModel
18346
+ const getPaginationModel = (search, localStoragePagination, setLocalStoragePagination) => {
18347
+ const pagination = getPaginationFromString(search);
18348
+ if (pagination) {
18349
+ const searchFromPaginationModel = getSearchParamsFromPagination(pagination);
18350
+ const searchString = urlSearchParamsToString(searchFromPaginationModel);
18351
+ if (searchString !== localStoragePagination) {
18352
+ setLocalStoragePagination(searchString);
18353
+ }
18354
+ return pagination;
18355
+ }
18356
+ const paginationModelFromLocalStorage = getPaginationFromString(localStoragePagination);
18357
+ if (paginationModelFromLocalStorage) {
18358
+ return paginationModelFromLocalStorage;
18359
+ }
18360
+ return {
18361
+ page: 0,
18362
+ pageSize: 25,
18363
+ direction: 'next'
18364
+ };
18365
+ };
18366
+
18367
+ /** COLUMN VISIBILITY */
18368
+
18301
18369
  const getSearchParamsFromColumnVisibility = (columnVisibility, columns) => {
18302
18370
  const searchParams = new URLSearchParams();
18303
18371
  const fields = columns.map(column => column.field);
@@ -18487,12 +18555,14 @@ const getFinalSearch = _ref3 => {
18487
18555
  search,
18488
18556
  filterModel,
18489
18557
  sortModel,
18558
+ paginationModel,
18490
18559
  columnsVisibilityModel,
18491
18560
  pinnedColumnsModel,
18492
18561
  columns
18493
18562
  } = _ref3;
18494
18563
  const filterModelSearch = getSearchParamsFromFilterModel(filterModel);
18495
18564
  const sortModelSearch = getSearchParamsFromSorting(sortModel);
18565
+ const paginationModelSearch = getSearchParamsFromPagination(paginationModel);
18496
18566
  const columnVisibilityModelSearch = getSearchParamsFromColumnVisibility(columnsVisibilityModel, columns);
18497
18567
  const pinnedColumnsModelSearch = getSearchParamsFromPinnedColumns(pinnedColumnsModel);
18498
18568
  const tabSearch = getSearchParamsFromTab(search);
@@ -18502,7 +18572,7 @@ const getFinalSearch = _ref3 => {
18502
18572
  searchParams.set(key, value);
18503
18573
  }
18504
18574
  }
18505
- return new URLSearchParams([...searchParams, ...filterModelSearch, ...sortModelSearch, ...tabSearch, ...pinnedColumnsModelSearch, ...columnVisibilityModelSearch]);
18575
+ return new URLSearchParams([...searchParams, ...filterModelSearch, ...sortModelSearch, ...paginationModelSearch, ...tabSearch, ...pinnedColumnsModelSearch, ...columnVisibilityModelSearch]);
18506
18576
  };
18507
18577
  /** Return the state of the table given the URL and the local storage state */
18508
18578
  const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, localStorage) => {
@@ -18511,6 +18581,8 @@ const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, lo
18511
18581
  setLocalStorageFilters,
18512
18582
  localStorageSorting,
18513
18583
  setLocalStorageSorting,
18584
+ localStoragePagination,
18585
+ setLocalStoragePagination,
18514
18586
  localStorageColumnsVisibility,
18515
18587
  setLocalStorageColumnsVisibility,
18516
18588
  localStoragePinnedColumns,
@@ -18518,12 +18590,14 @@ const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, lo
18518
18590
  } = localStorage;
18519
18591
  const filterModel = getFilterModel(search, columns, localStorageFilters, setLocalStorageFilters);
18520
18592
  const sortModel = getSortModel(search, columns, localStorageSorting, setLocalStorageSorting);
18593
+ const paginationModel = getPaginationModel(search, localStoragePagination, setLocalStoragePagination);
18521
18594
  const columnVisibilityModel = getColumnsVisibility(search, columns, localStorageColumnsVisibility, setLocalStorageColumnsVisibility);
18522
18595
  const pinnedColumnsModel = getPinnedColumns(search, columns, localStoragePinnedColumns, setLocalStoragePinnedColumns);
18523
18596
  const finalSearch = getFinalSearch({
18524
18597
  search,
18525
18598
  filterModel,
18526
18599
  sortModel,
18600
+ paginationModel,
18527
18601
  columnsVisibilityModel: columnVisibilityModel,
18528
18602
  pinnedColumnsModel,
18529
18603
  columns
@@ -18535,6 +18609,7 @@ const getModelsParsedOrUpdateLocalStorage = (search, columns, historyReplace, lo
18535
18609
  return {
18536
18610
  filterModel,
18537
18611
  sortModel,
18612
+ paginationModel,
18538
18613
  columnVisibilityModel,
18539
18614
  pinnedColumnsModel
18540
18615
  };
@@ -18543,6 +18618,7 @@ const updateUrl = (_ref4, search, historyReplace, columns) => {
18543
18618
  let {
18544
18619
  filterModel,
18545
18620
  sortModel,
18621
+ paginationModel,
18546
18622
  columnsModel: columnsVisibilityModel,
18547
18623
  pinnedColumnsModel
18548
18624
  } = _ref4;
@@ -18550,6 +18626,7 @@ const updateUrl = (_ref4, search, historyReplace, columns) => {
18550
18626
  search,
18551
18627
  filterModel,
18552
18628
  sortModel,
18629
+ paginationModel,
18553
18630
  columnsVisibilityModel,
18554
18631
  pinnedColumnsModel,
18555
18632
  columns
@@ -18617,116 +18694,417 @@ const areFilterModelsEquivalent = (filterModel, filterModelToMatch) => {
18617
18694
  return true;
18618
18695
  };
18619
18696
 
18620
- // Store the license information in a global, so it can be shared
18621
- // when module duplication occurs. The duplication of the modules can happen
18622
- // if using multiple version of MUI X at the same time of the bundler
18623
- // decide to duplicate to improve the size of the chunks.
18624
- // eslint-disable-next-line no-underscore-dangle
18625
- ponyfillGlobal.__MUI_LICENSE_INFO__ = ponyfillGlobal.__MUI_LICENSE_INFO__ || {
18626
- key: undefined
18627
- };
18628
- class LicenseInfo {
18629
- static getLicenseInfo() {
18630
- // eslint-disable-next-line no-underscore-dangle
18631
- return ponyfillGlobal.__MUI_LICENSE_INFO__;
18632
- }
18633
- static getLicenseKey() {
18634
- return LicenseInfo.getLicenseInfo().key;
18635
- }
18636
- static setLicenseKey(key) {
18637
- const licenseInfo = LicenseInfo.getLicenseInfo();
18638
- licenseInfo.key = key;
18639
- }
18640
- }
18641
-
18642
- /**
18643
- * Component style.
18644
- */
18645
- const StyledDataGrid = styled$3.div`
18646
- ${_ref => {
18647
- let {
18648
- $height
18649
- } = _ref;
18650
- return $height ? css`
18651
- height: ${$height};
18652
- ` : '';
18653
- }}
18654
-
18655
- width: 100%;
18656
-
18657
- .MuiDataGrid-root {
18658
- font-family: var(--redsift-typography-datagrid-header-font-family);
18659
- border: none;
18697
+ const _excluded$g = ["children", "color", "onClick", "startIcon"];
18698
+ const BaseButton = /*#__PURE__*/forwardRef((props, ref) => {
18699
+ var _props$className;
18700
+ const {
18701
+ children,
18702
+ color: propsColor,
18703
+ onClick,
18704
+ startIcon
18705
+ } = props,
18706
+ forwardedProps = _objectWithoutProperties(props, _excluded$g);
18707
+ const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
18708
+ if ((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('redsift-condensed')) {
18709
+ return /*#__PURE__*/React__default.createElement(IconButton$2, _extends$2({}, forwardedProps, {
18710
+ color: color,
18711
+ onClick: onClick,
18712
+ ref: ref,
18713
+ variant: "unstyled",
18714
+ isActive: props['aria-expanded'] === 'true',
18715
+ icon: typeof startIcon !== 'string' ? /*#__PURE__*/React__default.cloneElement(startIcon, {
18716
+ fontSize: 'medium'
18717
+ }) : startIcon,
18718
+ "aria-label": children,
18719
+ size: "medium"
18720
+ }));
18660
18721
  }
18722
+ return /*#__PURE__*/React__default.createElement(Button, _extends$2({}, forwardedProps, {
18723
+ color: color,
18724
+ onClick: onClick,
18725
+ ref: ref,
18726
+ variant: "unstyled",
18727
+ isActive: props['aria-expanded'] === 'true',
18728
+ leftIcon: startIcon
18729
+ }), children);
18730
+ });
18661
18731
 
18662
- .MuiDataGrid-row {
18663
- font-family: var(--redsift-typography-datagrid-cell-font-family);
18664
- font-size: var(--redsift-typography-datagrid-cell-font-size);
18665
- font-weight: var(--redsift-typography-datagrid-cell-font-weight);
18666
- }
18732
+ const _excluded$f = ["checked", "indeterminate", "disabled", "onChange"];
18733
+ const BaseCheckbox = /*#__PURE__*/forwardRef((props, ref) => {
18734
+ const {
18735
+ checked,
18736
+ indeterminate,
18737
+ disabled,
18738
+ onChange
18739
+ } = props,
18740
+ forwardedProps = _objectWithoutProperties(props, _excluded$f);
18741
+ return /*#__PURE__*/React__default.createElement(Checkbox, _extends$2({}, forwardedProps, forwardedProps.inputProps, {
18742
+ isSelected: checked && !indeterminate,
18743
+ isDisabled: disabled,
18744
+ isIndeterminate: indeterminate,
18745
+ ref: ref,
18746
+ onChange: (isChecked, value, name, event) => onChange(event)
18747
+ }));
18748
+ });
18667
18749
 
18668
- .MuiDataGrid-columnHeaderTitle {
18669
- font-family: var(--redsift-typography-datagrid-header-font-family);
18670
- font-size: var(--redsift-typography-datagrid-header-font-size);
18671
- font-weight: var(--redsift-typography-datagrid-header-font-weight);
18672
- }
18750
+ const _excluded$e = ["displayName"];
18751
+ const muiIconToDSIcon = {
18752
+ ColumnFilteredIcon: mdiFilterVariant,
18753
+ ColumnSelectorIcon: mdiViewColumn,
18754
+ ColumnSortedAscendingIcon: mdiChevronUp,
18755
+ ColumnSortedDescendingIcon: mdiChevronDown,
18756
+ DensityCompactIcon: mdiViewHeadline,
18757
+ DensityStandardIcon: mdiViewSequential,
18758
+ DensityComfortableIcon: mdiViewStream,
18759
+ DetailPanelCollapseIcon: mdiChevronDown,
18760
+ DetailPanelExpandIcon: mdiChevronRight,
18761
+ ExportIcon: mdiTrayArrowDown,
18762
+ OpenFilterButtonIcon: mdiFilterVariant
18763
+ };
18764
+ const BaseIcon = /*#__PURE__*/forwardRef((props, ref) => {
18765
+ const {
18766
+ displayName
18767
+ } = props,
18768
+ forwardedProps = _objectWithoutProperties(props, _excluded$e);
18769
+ return /*#__PURE__*/React__default.createElement(Icon, _extends$2({}, forwardedProps, forwardedProps.inputProps, {
18770
+ ref: ref,
18771
+ size: forwardedProps.fontSize,
18772
+ icon: muiIconToDSIcon[displayName]
18773
+ }));
18774
+ });
18673
18775
 
18674
- .MuiDataGrid-columnHeaders {
18675
- border-bottom-color: var(--redsift-color-primary-n);
18676
- }
18776
+ const _excluded$d = ["anchorEl", "component", "components", "componentsProps", "container", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "transition", "slots", "slotProps"];
18777
+ const PopperRoot = styled$1(BasePopper$1, {
18778
+ name: 'MuiPopper',
18779
+ slot: 'Root',
18780
+ overridesResolver: (props, styles) => styles.root
18781
+ })({});
18677
18782
 
18678
- .MuiDataGrid-columnSeparator {
18679
- display: none;
18680
- }
18681
-
18682
- .MuiTablePagination-root {
18683
- .MuiTablePagination-selectLabel {
18684
- font-family: var(--redsift-typography-datagrid-header-font-family);
18685
- }
18686
- .MuiTablePagination-displayedRows {
18687
- font-family: var(--redsift-typography-datagrid-cell-font-family);
18688
- }
18783
+ /**
18784
+ *
18785
+ * Demos:
18786
+ *
18787
+ * - [Autocomplete](https://mui.com/material-ui/react-autocomplete/)
18788
+ * - [Menu](https://mui.com/material-ui/react-menu/)
18789
+ * - [Popper](https://mui.com/material-ui/react-popper/)
18790
+ *
18791
+ * API:
18792
+ *
18793
+ * - [Popper API](https://mui.com/material-ui/api/popper/)
18794
+ */
18795
+ const Popper = /*#__PURE__*/React.forwardRef(function Popper(inProps, ref) {
18796
+ var _slots$root;
18797
+ const theme = useTheme$3();
18798
+ const props = useThemeProps({
18799
+ props: inProps,
18800
+ name: 'MuiPopper'
18801
+ });
18802
+ const {
18803
+ anchorEl,
18804
+ component,
18805
+ components,
18806
+ componentsProps,
18807
+ container,
18808
+ disablePortal,
18809
+ keepMounted,
18810
+ modifiers,
18811
+ open,
18812
+ placement,
18813
+ popperOptions,
18814
+ popperRef,
18815
+ transition,
18816
+ slots,
18817
+ slotProps
18818
+ } = props,
18819
+ other = _objectWithoutPropertiesLoose(props, _excluded$d);
18820
+ const RootComponent = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components == null ? void 0 : components.Root;
18821
+ const otherProps = _extends$1({
18822
+ anchorEl,
18823
+ container,
18824
+ disablePortal,
18825
+ keepMounted,
18826
+ modifiers,
18827
+ open,
18828
+ placement,
18829
+ popperOptions,
18830
+ popperRef,
18831
+ transition
18832
+ }, other);
18833
+ return /*#__PURE__*/jsxRuntimeExports.jsx(PopperRoot, _extends$1({
18834
+ as: component,
18835
+ direction: theme == null ? void 0 : theme.direction,
18836
+ slots: {
18837
+ root: RootComponent
18838
+ },
18839
+ slotProps: slotProps != null ? slotProps : componentsProps
18840
+ }, otherProps, {
18841
+ ref: ref
18842
+ }));
18843
+ });
18844
+ process.env.NODE_ENV !== "production" ? Popper.propTypes /* remove-proptypes */ = {
18845
+ // ----------------------------- Warning --------------------------------
18846
+ // | These PropTypes are generated from the TypeScript type definitions |
18847
+ // | To update them edit TypeScript types and run "yarn proptypes" |
18848
+ // ----------------------------------------------------------------------
18849
+ /**
18850
+ * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),
18851
+ * or a function that returns either.
18852
+ * It's used to set the position of the popper.
18853
+ * The return value will passed as the reference object of the Popper instance.
18854
+ */
18855
+ anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),
18856
+ /**
18857
+ * Popper render function or node.
18858
+ */
18859
+ children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),
18860
+ /**
18861
+ * The component used for the root node.
18862
+ * Either a string to use a HTML element or a component.
18863
+ */
18864
+ component: PropTypes.elementType,
18865
+ /**
18866
+ * The components used for each slot inside the Popper.
18867
+ * Either a string to use a HTML element or a component.
18868
+ * @default {}
18869
+ */
18870
+ components: PropTypes.shape({
18871
+ Root: PropTypes.elementType
18872
+ }),
18873
+ /**
18874
+ * The props used for each slot inside the Popper.
18875
+ * @default {}
18876
+ */
18877
+ componentsProps: PropTypes.shape({
18878
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
18879
+ }),
18880
+ /**
18881
+ * An HTML element or function that returns one.
18882
+ * The `container` will have the portal children appended to it.
18883
+ *
18884
+ * By default, it uses the body of the top-level document object,
18885
+ * so it's simply `document.body` most of the time.
18886
+ */
18887
+ container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),
18888
+ /**
18889
+ * The `children` will be under the DOM hierarchy of the parent component.
18890
+ * @default false
18891
+ */
18892
+ disablePortal: PropTypes.bool,
18893
+ /**
18894
+ * Always keep the children in the DOM.
18895
+ * This prop can be useful in SEO situation or
18896
+ * when you want to maximize the responsiveness of the Popper.
18897
+ * @default false
18898
+ */
18899
+ keepMounted: PropTypes.bool,
18900
+ /**
18901
+ * Popper.js is based on a "plugin-like" architecture,
18902
+ * most of its features are fully encapsulated "modifiers".
18903
+ *
18904
+ * A modifier is a function that is called each time Popper.js needs to
18905
+ * compute the position of the popper.
18906
+ * For this reason, modifiers should be very performant to avoid bottlenecks.
18907
+ * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).
18908
+ */
18909
+ modifiers: PropTypes.arrayOf(PropTypes.shape({
18910
+ data: PropTypes.object,
18911
+ effect: PropTypes.func,
18912
+ enabled: PropTypes.bool,
18913
+ fn: PropTypes.func,
18914
+ name: PropTypes.any,
18915
+ options: PropTypes.object,
18916
+ phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),
18917
+ requires: PropTypes.arrayOf(PropTypes.string),
18918
+ requiresIfExists: PropTypes.arrayOf(PropTypes.string)
18919
+ })),
18920
+ /**
18921
+ * If `true`, the component is shown.
18922
+ */
18923
+ open: PropTypes.bool.isRequired,
18924
+ /**
18925
+ * Popper placement.
18926
+ * @default 'bottom'
18927
+ */
18928
+ placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
18929
+ /**
18930
+ * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.
18931
+ * @default {}
18932
+ */
18933
+ popperOptions: PropTypes.shape({
18934
+ modifiers: PropTypes.array,
18935
+ onFirstUpdate: PropTypes.func,
18936
+ placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
18937
+ strategy: PropTypes.oneOf(['absolute', 'fixed'])
18938
+ }),
18939
+ /**
18940
+ * A ref that points to the used popper instance.
18941
+ */
18942
+ popperRef: refType$1,
18943
+ /**
18944
+ * The props used for each slot inside the Popper.
18945
+ * @default {}
18946
+ */
18947
+ slotProps: PropTypes.shape({
18948
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
18949
+ }),
18950
+ /**
18951
+ * The components used for each slot inside the Popper.
18952
+ * Either a string to use a HTML element or a component.
18953
+ * @default {}
18954
+ */
18955
+ slots: PropTypes.shape({
18956
+ root: PropTypes.elementType
18957
+ }),
18958
+ /**
18959
+ * The system prop that allows defining system overrides as well as additional CSS styles.
18960
+ */
18961
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
18962
+ /**
18963
+ * Help supporting a react-transition-group/Transition component.
18964
+ * @default false
18965
+ */
18966
+ transition: PropTypes.bool
18967
+ } : void 0;
18968
+ var Popper$1 = Popper;
18689
18969
 
18690
- .MuiInputBase-root {
18691
- font-family: var(--redsift-typography-datagrid-cell-font-family);
18692
- }
18693
- }
18970
+ const BasePopper = /*#__PURE__*/forwardRef((props, ref) => {
18971
+ return /*#__PURE__*/React__default.createElement(Popper$1, _extends$2({}, props, {
18972
+ ref: ref,
18973
+ container: () => document.getElementById('redsift-app-container')
18974
+ }));
18975
+ });
18694
18976
 
18695
- .Mui-checked {
18696
- color: var(--redsift-color-primary-n);
18697
- }
18977
+ const BaseTextField = /*#__PURE__*/forwardRef((props, ref) => {
18978
+ const {
18979
+ label,
18980
+ id,
18981
+ value,
18982
+ onChange,
18983
+ placeholder
18984
+ } = props;
18985
+ return /*#__PURE__*/React__default.createElement(TextField$2, {
18986
+ marginTop: "6px",
18987
+ inputRef: ref,
18988
+ label: label,
18989
+ id: id,
18990
+ value: value,
18991
+ variant: "underline",
18992
+ onChange: (value, name, event) => onChange(event),
18993
+ autoFocus: true,
18994
+ placeholder: placeholder
18995
+ });
18996
+ });
18698
18997
 
18699
- .MuiDataGrid-rowCount {
18700
- font-family: var(--redsift-typography-datagrid-cell-font-family);
18998
+ // Store the license information in a global, so it can be shared
18999
+ // when module duplication occurs. The duplication of the modules can happen
19000
+ // if using multiple version of MUI X at the same time of the bundler
19001
+ // decide to duplicate to improve the size of the chunks.
19002
+ // eslint-disable-next-line no-underscore-dangle
19003
+ ponyfillGlobal.__MUI_LICENSE_INFO__ = ponyfillGlobal.__MUI_LICENSE_INFO__ || {
19004
+ key: undefined
19005
+ };
19006
+ class LicenseInfo {
19007
+ static getLicenseInfo() {
19008
+ // eslint-disable-next-line no-underscore-dangle
19009
+ return ponyfillGlobal.__MUI_LICENSE_INFO__;
18701
19010
  }
18702
-
18703
- .MuiTablePagination-displayedRows {
18704
- font-family: var(--redsift-typography-datagrid-cell-font-family);
19011
+ static getLicenseKey() {
19012
+ return LicenseInfo.getLicenseInfo().key;
18705
19013
  }
18706
-
18707
- .MuiBadge-standard {
18708
- font-family: var(--redsift-typography-datagrid-cell-font-family);
19014
+ static setLicenseKey(key) {
19015
+ const licenseInfo = LicenseInfo.getLicenseInfo();
19016
+ licenseInfo.key = key;
18709
19017
  }
18710
- `;
19018
+ }
18711
19019
 
18712
19020
  /**
18713
19021
  * Component style.
18714
19022
  */
18715
- const GridToolbarWrapper = styled$3.div`
18716
- .MuiButtonBase-root-JobBs.MuiButton-root {
18717
- svg {
18718
- path {
18719
- fill: var(--redsift-color-primary-n);
18720
- }
18721
- }
18722
- }
18723
- `;
18724
-
18725
- /*!
18726
- * tabbable 6.1.2
18727
- * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
18728
- */
18729
- // NOTE: separate `:not()` selectors has broader browser support than the newer
19023
+ const StyledDataGrid = styled$3.div`
19024
+ ${_ref => {
19025
+ let {
19026
+ $height
19027
+ } = _ref;
19028
+ return $height ? css`
19029
+ height: ${$height};
19030
+ ` : '';
19031
+ }}
19032
+
19033
+ width: 100%;
19034
+
19035
+ .MuiDataGrid-root {
19036
+ font-family: var(--redsift-typography-datagrid-header-font-family);
19037
+ border: none;
19038
+ }
19039
+
19040
+ .MuiDataGrid-row {
19041
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19042
+ font-size: var(--redsift-typography-datagrid-cell-font-size);
19043
+ font-weight: var(--redsift-typography-datagrid-cell-font-weight);
19044
+ }
19045
+
19046
+ .MuiDataGrid-columnHeaderTitle {
19047
+ font-family: var(--redsift-typography-datagrid-header-font-family);
19048
+ font-size: var(--redsift-typography-datagrid-header-font-size);
19049
+ font-weight: var(--redsift-typography-datagrid-header-font-weight);
19050
+ }
19051
+
19052
+ .MuiDataGrid-columnHeaders {
19053
+ border-bottom-color: var(--redsift-color-primary-n);
19054
+ }
19055
+
19056
+ .MuiDataGrid-columnSeparator {
19057
+ display: none;
19058
+ }
19059
+
19060
+ .MuiTablePagination-root {
19061
+ .MuiTablePagination-selectLabel {
19062
+ font-family: var(--redsift-typography-datagrid-header-font-family);
19063
+ }
19064
+ .MuiTablePagination-displayedRows {
19065
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19066
+ }
19067
+
19068
+ .MuiInputBase-root {
19069
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19070
+ }
19071
+ }
19072
+
19073
+ .Mui-checked {
19074
+ color: var(--redsift-color-primary-n);
19075
+ }
19076
+
19077
+ .MuiDataGrid-rowCount {
19078
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19079
+ }
19080
+
19081
+ .MuiTablePagination-displayedRows {
19082
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19083
+ }
19084
+
19085
+ .MuiBadge-standard {
19086
+ font-family: var(--redsift-typography-datagrid-cell-font-family);
19087
+ }
19088
+ `;
19089
+
19090
+ /**
19091
+ * Component style.
19092
+ */
19093
+ const GridToolbarWrapper = styled$3.div`
19094
+ .MuiButtonBase-root-JobBs.MuiButton-root {
19095
+ svg {
19096
+ path {
19097
+ fill: var(--redsift-color-primary-n);
19098
+ }
19099
+ }
19100
+ }
19101
+ `;
19102
+
19103
+ /*!
19104
+ * tabbable 6.1.2
19105
+ * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
19106
+ */
19107
+ // NOTE: separate `:not()` selectors has broader browser support than the newer
18730
19108
  // `:not([inert], [inert] *)` (Feb 2023)
18731
19109
  // CAREFUL: JSDom does not support `:not([inert] *)` as a selector; using it causes
18732
19110
  // the entire query to fail, resulting in no nodes found, which will break a lot
@@ -22411,8 +22789,8 @@ const StyledTooltipContent = styled$3.div`
22411
22789
  }}
22412
22790
  `;
22413
22791
 
22414
- const COMPONENT_NAME$5 = 'TooltipContent';
22415
- const CLASSNAME$5 = 'redsift-tooltip-content';
22792
+ const COMPONENT_NAME$6 = 'TooltipContent';
22793
+ const CLASSNAME$6 = 'redsift-tooltip-content';
22416
22794
 
22417
22795
  /**
22418
22796
  * The TooltipContent component.
@@ -22477,11 +22855,11 @@ const TooltipContent = /*#__PURE__*/forwardRef((props, ref) => {
22477
22855
  className: `${TooltipContent.className}__inner`
22478
22856
  }, children)));
22479
22857
  });
22480
- TooltipContent.className = CLASSNAME$5;
22481
- TooltipContent.displayName = COMPONENT_NAME$5;
22858
+ TooltipContent.className = CLASSNAME$6;
22859
+ TooltipContent.displayName = COMPONENT_NAME$6;
22482
22860
 
22483
- const COMPONENT_NAME$4 = 'TooltipTrigger';
22484
- const CLASSNAME$4 = 'redsift-tooltip-trigger';
22861
+ const COMPONENT_NAME$5 = 'TooltipTrigger';
22862
+ const CLASSNAME$5 = 'redsift-tooltip-trigger';
22485
22863
 
22486
22864
  /**
22487
22865
  * The TooltipTrigger component.
@@ -22516,8 +22894,8 @@ const TooltipTrigger = /*#__PURE__*/forwardRef((props, ref) => {
22516
22894
  ref: triggerRef
22517
22895
  }, getReferenceProps(props)), children);
22518
22896
  });
22519
- TooltipTrigger.className = CLASSNAME$4;
22520
- TooltipTrigger.displayName = COMPONENT_NAME$4;
22897
+ TooltipTrigger.className = CLASSNAME$5;
22898
+ TooltipTrigger.displayName = COMPONENT_NAME$5;
22521
22899
 
22522
22900
  const TooltipContext = /*#__PURE__*/React__default.createContext(null);
22523
22901
 
@@ -22616,8 +22994,8 @@ function useTooltip(_ref) {
22616
22994
  const ThemeContext = /*#__PURE__*/React__default.createContext(null);
22617
22995
  const ThemeProvider = ThemeContext.Provider;
22618
22996
 
22619
- const COMPONENT_NAME$3 = 'Tooltip';
22620
- const CLASSNAME$3 = 'redsift-tooltip';
22997
+ const COMPONENT_NAME$4 = 'Tooltip';
22998
+ const CLASSNAME$4 = 'redsift-tooltip';
22621
22999
 
22622
23000
  /**
22623
23001
  * The Tooltip component.
@@ -22658,8 +23036,8 @@ const BaseTooltip = props => {
22658
23036
  value: tooltip
22659
23037
  }, trigger && isComponent('TooltipTrigger')(trigger) ? trigger : null, content && isComponent('TooltipContent')(content) ? content : null));
22660
23038
  };
22661
- BaseTooltip.className = CLASSNAME$3;
22662
- BaseTooltip.displayName = COMPONENT_NAME$3;
23039
+ BaseTooltip.className = CLASSNAME$4;
23040
+ BaseTooltip.displayName = COMPONENT_NAME$4;
22663
23041
  const Tooltip = Object.assign(BaseTooltip, {
22664
23042
  Trigger: TooltipTrigger,
22665
23043
  Content: TooltipContent
@@ -22689,9 +23067,9 @@ const StyledGridToolbarFilterSemanticField = styled$3.form`
22689
23067
  }
22690
23068
  `;
22691
23069
 
22692
- const _excluded$f = ["className", "nlpFilterConfig", "onFilterModelChange", "dateFormat", "defaultModel", "defaultFilter", "disablePower", "localeText"];
22693
- const COMPONENT_NAME$2 = 'GridToolbarFilterSemanticField';
22694
- const CLASSNAME$2 = 'redsift-datagrid-toolbar-nlp-filter-field';
23070
+ const _excluded$c = ["className", "nlpFilterConfig", "onFilterModelChange", "dateFormat", "defaultModel", "defaultFilter", "disablePower", "localeText"];
23071
+ const COMPONENT_NAME$3 = 'GridToolbarFilterSemanticField';
23072
+ const CLASSNAME$3 = 'redsift-datagrid-toolbar-nlp-filter-field';
22695
23073
  const DEFAULT_OPERATORS = {
22696
23074
  string: ['contains', 'equals', 'startsWith', 'endsWith', 'isEmpty', 'isNotEmpty', 'isAnyOf'],
22697
23075
  number: ['=', '!=', '>', '>=', '<', '<=', 'isEmpty', 'isNotEmpty', 'isAnyOf'],
@@ -22774,7 +23152,7 @@ const GridToolbarFilterSemanticField = /*#__PURE__*/forwardRef((props, ref) => {
22774
23152
  disablePower = false,
22775
23153
  localeText
22776
23154
  } = props,
22777
- forwardedProps = _objectWithoutProperties(props, _excluded$f);
23155
+ forwardedProps = _objectWithoutProperties(props, _excluded$c);
22778
23156
  const {
22779
23157
  textLabel,
22780
23158
  textPlaceholder,
@@ -22859,8 +23237,8 @@ const GridToolbarFilterSemanticField = /*#__PURE__*/forwardRef((props, ref) => {
22859
23237
  marginLeft: "8px"
22860
23238
  }, errorText));
22861
23239
  });
22862
- GridToolbarFilterSemanticField.className = CLASSNAME$2;
22863
- GridToolbarFilterSemanticField.displayName = COMPONENT_NAME$2;
23240
+ GridToolbarFilterSemanticField.className = CLASSNAME$3;
23241
+ GridToolbarFilterSemanticField.displayName = COMPONENT_NAME$3;
22864
23242
 
22865
23243
  /**
22866
23244
  * Temporary workaround for a type mismatch between react 17 and 18
@@ -22922,381 +23300,101 @@ const Toolbar$2 = props => {
22922
23300
  }, semanticFilterProps ? /*#__PURE__*/React__default.createElement(GridToolbarFilterSemanticField, semanticFilterProps) : null)));
22923
23301
  };
22924
23302
 
22925
- const _excluded$e = ["displayName"];
22926
- const muiIconToDSIcon = {
22927
- ColumnFilteredIcon: mdiFilterVariant,
22928
- ColumnSelectorIcon: mdiViewColumn,
22929
- ColumnSortedAscendingIcon: mdiChevronUp,
22930
- ColumnSortedDescendingIcon: mdiChevronDown,
22931
- DensityCompactIcon: mdiViewHeadline,
22932
- DensityStandardIcon: mdiViewSequential,
22933
- DensityComfortableIcon: mdiViewStream,
22934
- DetailPanelCollapseIcon: mdiChevronDown,
22935
- DetailPanelExpandIcon: mdiChevronRight,
22936
- ExportIcon: mdiTrayArrowDown,
22937
- OpenFilterButtonIcon: mdiFilterVariant
22938
- };
22939
- const BaseIcon = /*#__PURE__*/forwardRef((props, ref) => {
22940
- const {
22941
- displayName
22942
- } = props,
22943
- forwardedProps = _objectWithoutProperties(props, _excluded$e);
22944
- return /*#__PURE__*/React__default.createElement(Icon, _extends$2({}, forwardedProps, forwardedProps.inputProps, {
22945
- ref: ref,
22946
- size: forwardedProps.fontSize,
22947
- icon: muiIconToDSIcon[displayName]
22948
- }));
22949
- });
22950
-
22951
- const _excluded$d = ["children", "color", "onClick", "startIcon"];
22952
- const BaseButton = /*#__PURE__*/forwardRef((props, ref) => {
22953
- var _props$className;
23303
+ function Ripple(props) {
22954
23304
  const {
22955
- children,
22956
- color: propsColor,
22957
- onClick,
22958
- startIcon
22959
- } = props,
22960
- forwardedProps = _objectWithoutProperties(props, _excluded$d);
22961
- const color = Object.keys(ButtonsColorPalette).includes(propsColor) ? propsColor : 'primary';
22962
- if ((_props$className = props.className) !== null && _props$className !== void 0 && _props$className.includes('redsift-condensed')) {
22963
- return /*#__PURE__*/React__default.createElement(IconButton$2, _extends$2({}, forwardedProps, {
22964
- color: color,
22965
- onClick: onClick,
22966
- ref: ref,
22967
- variant: "unstyled",
22968
- isActive: props['aria-expanded'] === 'true',
22969
- icon: typeof startIcon !== 'string' ? /*#__PURE__*/React__default.cloneElement(startIcon, {
22970
- fontSize: 'medium'
22971
- }) : startIcon,
22972
- "aria-label": children,
22973
- size: "medium"
22974
- }));
23305
+ className,
23306
+ classes,
23307
+ pulsate = false,
23308
+ rippleX,
23309
+ rippleY,
23310
+ rippleSize,
23311
+ in: inProp,
23312
+ onExited,
23313
+ timeout
23314
+ } = props;
23315
+ const [leaving, setLeaving] = React.useState(false);
23316
+ const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);
23317
+ const rippleStyles = {
23318
+ width: rippleSize,
23319
+ height: rippleSize,
23320
+ top: -(rippleSize / 2) + rippleY,
23321
+ left: -(rippleSize / 2) + rippleX
23322
+ };
23323
+ const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);
23324
+ if (!inProp && !leaving) {
23325
+ setLeaving(true);
22975
23326
  }
22976
- return /*#__PURE__*/React__default.createElement(Button, _extends$2({}, forwardedProps, {
22977
- color: color,
22978
- onClick: onClick,
22979
- ref: ref,
22980
- variant: "unstyled",
22981
- isActive: props['aria-expanded'] === 'true',
22982
- leftIcon: startIcon
22983
- }), children);
22984
- });
23327
+ React.useEffect(() => {
23328
+ if (!inProp && onExited != null) {
23329
+ // react-transition-group#onExited
23330
+ const timeoutId = setTimeout(onExited, timeout);
23331
+ return () => {
23332
+ clearTimeout(timeoutId);
23333
+ };
23334
+ }
23335
+ return undefined;
23336
+ }, [onExited, inProp, timeout]);
23337
+ return /*#__PURE__*/jsxRuntimeExports.jsx("span", {
23338
+ className: rippleClassName,
23339
+ style: rippleStyles,
23340
+ children: /*#__PURE__*/jsxRuntimeExports.jsx("span", {
23341
+ className: childClassName
23342
+ })
23343
+ });
23344
+ }
23345
+ process.env.NODE_ENV !== "production" ? Ripple.propTypes = {
23346
+ /**
23347
+ * Override or extend the styles applied to the component.
23348
+ * See [CSS API](#css) below for more details.
23349
+ */
23350
+ classes: PropTypes.object.isRequired,
23351
+ className: PropTypes.string,
23352
+ /**
23353
+ * @ignore - injected from TransitionGroup
23354
+ */
23355
+ in: PropTypes.bool,
23356
+ /**
23357
+ * @ignore - injected from TransitionGroup
23358
+ */
23359
+ onExited: PropTypes.func,
23360
+ /**
23361
+ * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.
23362
+ */
23363
+ pulsate: PropTypes.bool,
23364
+ /**
23365
+ * Diameter of the ripple.
23366
+ */
23367
+ rippleSize: PropTypes.number,
23368
+ /**
23369
+ * Horizontal position of the ripple center.
23370
+ */
23371
+ rippleX: PropTypes.number,
23372
+ /**
23373
+ * Vertical position of the ripple center.
23374
+ */
23375
+ rippleY: PropTypes.number,
23376
+ /**
23377
+ * exit delay
23378
+ */
23379
+ timeout: PropTypes.number.isRequired
23380
+ } : void 0;
22985
23381
 
22986
- const _excluded$c = ["checked", "indeterminate", "disabled", "onChange"];
22987
- const BaseCheckbox = /*#__PURE__*/forwardRef((props, ref) => {
22988
- const {
22989
- checked,
22990
- indeterminate,
22991
- disabled,
22992
- onChange
22993
- } = props,
22994
- forwardedProps = _objectWithoutProperties(props, _excluded$c);
22995
- return /*#__PURE__*/React__default.createElement(Checkbox, _extends$2({}, forwardedProps, forwardedProps.inputProps, {
22996
- isSelected: checked && !indeterminate,
22997
- isDisabled: disabled,
22998
- isIndeterminate: indeterminate,
22999
- ref: ref,
23000
- onChange: (isChecked, value, name, event) => onChange(event)
23001
- }));
23002
- });
23382
+ const touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);
23383
+ var touchRippleClasses$1 = touchRippleClasses;
23003
23384
 
23004
- const _excluded$b = ["anchorEl", "component", "components", "componentsProps", "container", "disablePortal", "keepMounted", "modifiers", "open", "placement", "popperOptions", "popperRef", "transition", "slots", "slotProps"];
23005
- const PopperRoot = styled$1(BasePopper$1, {
23006
- name: 'MuiPopper',
23007
- slot: 'Root',
23008
- overridesResolver: (props, styles) => styles.root
23009
- })({});
23010
-
23011
- /**
23012
- *
23013
- * Demos:
23014
- *
23015
- * - [Autocomplete](https://mui.com/material-ui/react-autocomplete/)
23016
- * - [Menu](https://mui.com/material-ui/react-menu/)
23017
- * - [Popper](https://mui.com/material-ui/react-popper/)
23018
- *
23019
- * API:
23020
- *
23021
- * - [Popper API](https://mui.com/material-ui/api/popper/)
23022
- */
23023
- const Popper = /*#__PURE__*/React.forwardRef(function Popper(inProps, ref) {
23024
- var _slots$root;
23025
- const theme = useTheme$3();
23026
- const props = useThemeProps({
23027
- props: inProps,
23028
- name: 'MuiPopper'
23029
- });
23030
- const {
23031
- anchorEl,
23032
- component,
23033
- components,
23034
- componentsProps,
23035
- container,
23036
- disablePortal,
23037
- keepMounted,
23038
- modifiers,
23039
- open,
23040
- placement,
23041
- popperOptions,
23042
- popperRef,
23043
- transition,
23044
- slots,
23045
- slotProps
23046
- } = props,
23047
- other = _objectWithoutPropertiesLoose(props, _excluded$b);
23048
- const RootComponent = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components == null ? void 0 : components.Root;
23049
- const otherProps = _extends$1({
23050
- anchorEl,
23051
- container,
23052
- disablePortal,
23053
- keepMounted,
23054
- modifiers,
23055
- open,
23056
- placement,
23057
- popperOptions,
23058
- popperRef,
23059
- transition
23060
- }, other);
23061
- return /*#__PURE__*/jsxRuntimeExports.jsx(PopperRoot, _extends$1({
23062
- as: component,
23063
- direction: theme == null ? void 0 : theme.direction,
23064
- slots: {
23065
- root: RootComponent
23066
- },
23067
- slotProps: slotProps != null ? slotProps : componentsProps
23068
- }, otherProps, {
23069
- ref: ref
23070
- }));
23071
- });
23072
- process.env.NODE_ENV !== "production" ? Popper.propTypes /* remove-proptypes */ = {
23073
- // ----------------------------- Warning --------------------------------
23074
- // | These PropTypes are generated from the TypeScript type definitions |
23075
- // | To update them edit TypeScript types and run "yarn proptypes" |
23076
- // ----------------------------------------------------------------------
23077
- /**
23078
- * An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),
23079
- * or a function that returns either.
23080
- * It's used to set the position of the popper.
23081
- * The return value will passed as the reference object of the Popper instance.
23082
- */
23083
- anchorEl: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.object, PropTypes.func]),
23084
- /**
23085
- * Popper render function or node.
23086
- */
23087
- children: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.node, PropTypes.func]),
23088
- /**
23089
- * The component used for the root node.
23090
- * Either a string to use a HTML element or a component.
23091
- */
23092
- component: PropTypes.elementType,
23093
- /**
23094
- * The components used for each slot inside the Popper.
23095
- * Either a string to use a HTML element or a component.
23096
- * @default {}
23097
- */
23098
- components: PropTypes.shape({
23099
- Root: PropTypes.elementType
23100
- }),
23101
- /**
23102
- * The props used for each slot inside the Popper.
23103
- * @default {}
23104
- */
23105
- componentsProps: PropTypes.shape({
23106
- root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
23107
- }),
23108
- /**
23109
- * An HTML element or function that returns one.
23110
- * The `container` will have the portal children appended to it.
23111
- *
23112
- * By default, it uses the body of the top-level document object,
23113
- * so it's simply `document.body` most of the time.
23114
- */
23115
- container: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([HTMLElementType, PropTypes.func]),
23116
- /**
23117
- * The `children` will be under the DOM hierarchy of the parent component.
23118
- * @default false
23119
- */
23120
- disablePortal: PropTypes.bool,
23121
- /**
23122
- * Always keep the children in the DOM.
23123
- * This prop can be useful in SEO situation or
23124
- * when you want to maximize the responsiveness of the Popper.
23125
- * @default false
23126
- */
23127
- keepMounted: PropTypes.bool,
23128
- /**
23129
- * Popper.js is based on a "plugin-like" architecture,
23130
- * most of its features are fully encapsulated "modifiers".
23131
- *
23132
- * A modifier is a function that is called each time Popper.js needs to
23133
- * compute the position of the popper.
23134
- * For this reason, modifiers should be very performant to avoid bottlenecks.
23135
- * To learn how to create a modifier, [read the modifiers documentation](https://popper.js.org/docs/v2/modifiers/).
23136
- */
23137
- modifiers: PropTypes.arrayOf(PropTypes.shape({
23138
- data: PropTypes.object,
23139
- effect: PropTypes.func,
23140
- enabled: PropTypes.bool,
23141
- fn: PropTypes.func,
23142
- name: PropTypes.any,
23143
- options: PropTypes.object,
23144
- phase: PropTypes.oneOf(['afterMain', 'afterRead', 'afterWrite', 'beforeMain', 'beforeRead', 'beforeWrite', 'main', 'read', 'write']),
23145
- requires: PropTypes.arrayOf(PropTypes.string),
23146
- requiresIfExists: PropTypes.arrayOf(PropTypes.string)
23147
- })),
23148
- /**
23149
- * If `true`, the component is shown.
23150
- */
23151
- open: PropTypes.bool.isRequired,
23152
- /**
23153
- * Popper placement.
23154
- * @default 'bottom'
23155
- */
23156
- placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
23157
- /**
23158
- * Options provided to the [`Popper.js`](https://popper.js.org/docs/v2/constructors/#options) instance.
23159
- * @default {}
23160
- */
23161
- popperOptions: PropTypes.shape({
23162
- modifiers: PropTypes.array,
23163
- onFirstUpdate: PropTypes.func,
23164
- placement: PropTypes.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
23165
- strategy: PropTypes.oneOf(['absolute', 'fixed'])
23166
- }),
23167
- /**
23168
- * A ref that points to the used popper instance.
23169
- */
23170
- popperRef: refType$1,
23171
- /**
23172
- * The props used for each slot inside the Popper.
23173
- * @default {}
23174
- */
23175
- slotProps: PropTypes.shape({
23176
- root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
23177
- }),
23178
- /**
23179
- * The components used for each slot inside the Popper.
23180
- * Either a string to use a HTML element or a component.
23181
- * @default {}
23182
- */
23183
- slots: PropTypes.shape({
23184
- root: PropTypes.elementType
23185
- }),
23186
- /**
23187
- * The system prop that allows defining system overrides as well as additional CSS styles.
23188
- */
23189
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
23190
- /**
23191
- * Help supporting a react-transition-group/Transition component.
23192
- * @default false
23193
- */
23194
- transition: PropTypes.bool
23195
- } : void 0;
23196
- var Popper$1 = Popper;
23197
-
23198
- const BasePopper = /*#__PURE__*/forwardRef((props, ref) => {
23199
- return /*#__PURE__*/React__default.createElement(Popper$1, _extends$2({}, props, {
23200
- ref: ref,
23201
- container: () => document.getElementById('redsift-app-container')
23202
- }));
23203
- });
23204
-
23205
- function Ripple(props) {
23206
- const {
23207
- className,
23208
- classes,
23209
- pulsate = false,
23210
- rippleX,
23211
- rippleY,
23212
- rippleSize,
23213
- in: inProp,
23214
- onExited,
23215
- timeout
23216
- } = props;
23217
- const [leaving, setLeaving] = React.useState(false);
23218
- const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);
23219
- const rippleStyles = {
23220
- width: rippleSize,
23221
- height: rippleSize,
23222
- top: -(rippleSize / 2) + rippleY,
23223
- left: -(rippleSize / 2) + rippleX
23224
- };
23225
- const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);
23226
- if (!inProp && !leaving) {
23227
- setLeaving(true);
23228
- }
23229
- React.useEffect(() => {
23230
- if (!inProp && onExited != null) {
23231
- // react-transition-group#onExited
23232
- const timeoutId = setTimeout(onExited, timeout);
23233
- return () => {
23234
- clearTimeout(timeoutId);
23235
- };
23236
- }
23237
- return undefined;
23238
- }, [onExited, inProp, timeout]);
23239
- return /*#__PURE__*/jsxRuntimeExports.jsx("span", {
23240
- className: rippleClassName,
23241
- style: rippleStyles,
23242
- children: /*#__PURE__*/jsxRuntimeExports.jsx("span", {
23243
- className: childClassName
23244
- })
23245
- });
23246
- }
23247
- process.env.NODE_ENV !== "production" ? Ripple.propTypes = {
23248
- /**
23249
- * Override or extend the styles applied to the component.
23250
- * See [CSS API](#css) below for more details.
23251
- */
23252
- classes: PropTypes.object.isRequired,
23253
- className: PropTypes.string,
23254
- /**
23255
- * @ignore - injected from TransitionGroup
23256
- */
23257
- in: PropTypes.bool,
23258
- /**
23259
- * @ignore - injected from TransitionGroup
23260
- */
23261
- onExited: PropTypes.func,
23262
- /**
23263
- * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.
23264
- */
23265
- pulsate: PropTypes.bool,
23266
- /**
23267
- * Diameter of the ripple.
23268
- */
23269
- rippleSize: PropTypes.number,
23270
- /**
23271
- * Horizontal position of the ripple center.
23272
- */
23273
- rippleX: PropTypes.number,
23274
- /**
23275
- * Vertical position of the ripple center.
23276
- */
23277
- rippleY: PropTypes.number,
23278
- /**
23279
- * exit delay
23280
- */
23281
- timeout: PropTypes.number.isRequired
23282
- } : void 0;
23283
-
23284
- const touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);
23285
- var touchRippleClasses$1 = touchRippleClasses;
23286
-
23287
- const _excluded$a = ["center", "classes", "className"];
23288
- let _ = t => t,
23289
- _t,
23290
- _t2,
23291
- _t3,
23292
- _t4;
23293
- const DURATION = 550;
23294
- const DELAY_RIPPLE = 80;
23295
- const enterKeyframe = keyframes(_t || (_t = _`
23296
- 0% {
23297
- transform: scale(0);
23298
- opacity: 0.1;
23299
- }
23385
+ const _excluded$b = ["center", "classes", "className"];
23386
+ let _ = t => t,
23387
+ _t,
23388
+ _t2,
23389
+ _t3,
23390
+ _t4;
23391
+ const DURATION = 550;
23392
+ const DELAY_RIPPLE = 80;
23393
+ const enterKeyframe = keyframes(_t || (_t = _`
23394
+ 0% {
23395
+ transform: scale(0);
23396
+ opacity: 0.1;
23397
+ }
23300
23398
 
23301
23399
  100% {
23302
23400
  transform: scale(1);
@@ -23413,7 +23511,7 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
23413
23511
  classes = {},
23414
23512
  className
23415
23513
  } = props,
23416
- other = _objectWithoutPropertiesLoose(props, _excluded$a);
23514
+ other = _objectWithoutPropertiesLoose(props, _excluded$b);
23417
23515
  const [ripples, setRipples] = React.useState([]);
23418
23516
  const nextKey = React.useRef(0);
23419
23517
  const rippleCallback = React.useRef(null);
@@ -23614,7 +23712,7 @@ function getButtonBaseUtilityClass(slot) {
23614
23712
  const buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);
23615
23713
  var buttonBaseClasses$1 = buttonBaseClasses;
23616
23714
 
23617
- const _excluded$9 = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];
23715
+ const _excluded$a = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];
23618
23716
  const useUtilityClasses$5 = ownerState => {
23619
23717
  const {
23620
23718
  disabled,
@@ -23716,7 +23814,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
23716
23814
  touchRippleRef,
23717
23815
  type
23718
23816
  } = props,
23719
- other = _objectWithoutPropertiesLoose(props, _excluded$9);
23817
+ other = _objectWithoutPropertiesLoose(props, _excluded$a);
23720
23818
  const buttonRef = React.useRef(null);
23721
23819
  const rippleRef = React.useRef(null);
23722
23820
  const handleRippleRef = useForkRef(rippleRef, touchRippleRef);
@@ -24089,7 +24187,7 @@ function getMenuItemUtilityClass(slot) {
24089
24187
  const menuItemClasses = generateUtilityClasses('MuiMenuItem', ['root', 'focusVisible', 'dense', 'disabled', 'divider', 'gutters', 'selected']);
24090
24188
  var menuItemClasses$1 = menuItemClasses;
24091
24189
 
24092
- const _excluded$8 = ["autoFocus", "component", "dense", "divider", "disableGutters", "focusVisibleClassName", "role", "tabIndex", "className"];
24190
+ const _excluded$9 = ["autoFocus", "component", "dense", "divider", "disableGutters", "focusVisibleClassName", "role", "tabIndex", "className"];
24093
24191
  const overridesResolver = (props, styles) => {
24094
24192
  const {
24095
24193
  ownerState
@@ -24211,7 +24309,7 @@ const MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(inProps, ref) {
24211
24309
  tabIndex: tabIndexProp,
24212
24310
  className
24213
24311
  } = props,
24214
- other = _objectWithoutPropertiesLoose(props, _excluded$8);
24312
+ other = _objectWithoutPropertiesLoose(props, _excluded$9);
24215
24313
  const context = React.useContext(ListContext$1);
24216
24314
  const childContext = React.useMemo(() => ({
24217
24315
  dense: dense || context.dense || false,
@@ -24354,7 +24452,7 @@ function getTableCellUtilityClass(slot) {
24354
24452
  const tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);
24355
24453
  var tableCellClasses$1 = tableCellClasses;
24356
24454
 
24357
- const _excluded$7 = ["align", "className", "component", "padding", "scope", "size", "sortDirection", "variant"];
24455
+ const _excluded$8 = ["align", "className", "component", "padding", "scope", "size", "sortDirection", "variant"];
24358
24456
  const useUtilityClasses$3 = ownerState => {
24359
24457
  const {
24360
24458
  classes,
@@ -24451,7 +24549,7 @@ const TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref)
24451
24549
  sortDirection,
24452
24550
  variant: variantProp
24453
24551
  } = props,
24454
- other = _objectWithoutPropertiesLoose(props, _excluded$7);
24552
+ other = _objectWithoutPropertiesLoose(props, _excluded$8);
24455
24553
  const table = React.useContext(TableContext$1);
24456
24554
  const tablelvl2 = React.useContext(Tablelvl2Context$1);
24457
24555
  const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';
@@ -24558,7 +24656,7 @@ function getToolbarUtilityClass(slot) {
24558
24656
  }
24559
24657
  generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);
24560
24658
 
24561
- const _excluded$6 = ["className", "component", "disableGutters", "variant"];
24659
+ const _excluded$7 = ["className", "component", "disableGutters", "variant"];
24562
24660
  const useUtilityClasses$2 = ownerState => {
24563
24661
  const {
24564
24662
  classes,
@@ -24610,7 +24708,7 @@ const Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {
24610
24708
  disableGutters = false,
24611
24709
  variant = 'regular'
24612
24710
  } = props,
24613
- other = _objectWithoutPropertiesLoose(props, _excluded$6);
24711
+ other = _objectWithoutPropertiesLoose(props, _excluded$7);
24614
24712
  const ownerState = _extends$1({}, props, {
24615
24713
  component,
24616
24714
  disableGutters,
@@ -24678,7 +24776,7 @@ function getIconButtonUtilityClass(slot) {
24678
24776
  const iconButtonClasses = generateUtilityClasses('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
24679
24777
  var iconButtonClasses$1 = iconButtonClasses;
24680
24778
 
24681
- const _excluded$5 = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"];
24779
+ const _excluded$6 = ["edge", "children", "className", "color", "disabled", "disableFocusRipple", "size"];
24682
24780
  const useUtilityClasses$1 = ownerState => {
24683
24781
  const {
24684
24782
  classes,
@@ -24779,7 +24877,7 @@ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(inProps, re
24779
24877
  disableFocusRipple = false,
24780
24878
  size = 'medium'
24781
24879
  } = props,
24782
- other = _objectWithoutPropertiesLoose(props, _excluded$5);
24880
+ other = _objectWithoutPropertiesLoose(props, _excluded$6);
24783
24881
  const ownerState = _extends$1({}, props, {
24784
24882
  edge,
24785
24883
  color,
@@ -24877,7 +24975,7 @@ var FirstPageIcon = createSvgIcon( /*#__PURE__*/jsxRuntimeExports.jsx("path", {
24877
24975
  }), 'FirstPage');
24878
24976
 
24879
24977
  var _LastPageIcon, _FirstPageIcon, _KeyboardArrowRight, _KeyboardArrowLeft, _KeyboardArrowLeft2, _KeyboardArrowRight2, _FirstPageIcon2, _LastPageIcon2;
24880
- const _excluded$4 = ["backIconButtonProps", "count", "getItemAriaLabel", "nextIconButtonProps", "onPageChange", "page", "rowsPerPage", "showFirstButton", "showLastButton"];
24978
+ const _excluded$5 = ["backIconButtonProps", "count", "getItemAriaLabel", "nextIconButtonProps", "onPageChange", "page", "rowsPerPage", "showFirstButton", "showLastButton"];
24881
24979
  const TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, ref) {
24882
24980
  const {
24883
24981
  backIconButtonProps,
@@ -24890,7 +24988,7 @@ const TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePagin
24890
24988
  showFirstButton,
24891
24989
  showLastButton
24892
24990
  } = props,
24893
- other = _objectWithoutPropertiesLoose(props, _excluded$4);
24991
+ other = _objectWithoutPropertiesLoose(props, _excluded$5);
24894
24992
  const theme = useTheme();
24895
24993
  const handleFirstPageButtonClick = event => {
24896
24994
  onPageChange(event, 0);
@@ -24994,7 +25092,7 @@ const tablePaginationClasses = generateUtilityClasses('MuiTablePagination', ['ro
24994
25092
  var tablePaginationClasses$1 = tablePaginationClasses;
24995
25093
 
24996
25094
  var _InputBase;
24997
- const _excluded$3 = ["ActionsComponent", "backIconButtonProps", "className", "colSpan", "component", "count", "getItemAriaLabel", "labelDisplayedRows", "labelRowsPerPage", "nextIconButtonProps", "onPageChange", "onRowsPerPageChange", "page", "rowsPerPage", "rowsPerPageOptions", "SelectProps", "showFirstButton", "showLastButton"];
25095
+ const _excluded$4 = ["ActionsComponent", "backIconButtonProps", "className", "colSpan", "component", "count", "getItemAriaLabel", "labelDisplayedRows", "labelRowsPerPage", "nextIconButtonProps", "onPageChange", "onRowsPerPageChange", "page", "rowsPerPage", "rowsPerPageOptions", "SelectProps", "showFirstButton", "showLastButton"];
24998
25096
  const TablePaginationRoot = styled$1(TableCell$1, {
24999
25097
  name: 'MuiTablePagination',
25000
25098
  slot: 'Root',
@@ -25141,7 +25239,7 @@ const TablePagination = /*#__PURE__*/React.forwardRef(function TablePagination(i
25141
25239
  showFirstButton = false,
25142
25240
  showLastButton = false
25143
25241
  } = props,
25144
- other = _objectWithoutPropertiesLoose(props, _excluded$3);
25242
+ other = _objectWithoutPropertiesLoose(props, _excluded$4);
25145
25243
  const ownerState = props;
25146
25244
  const classes = useUtilityClasses(ownerState);
25147
25245
  const MenuItemComponent = SelectProps.native ? 'option' : TablePaginationMenuItem;
@@ -25360,7 +25458,62 @@ process.env.NODE_ENV !== "production" ? TablePagination.propTypes /* remove-prop
25360
25458
  } : void 0;
25361
25459
  var TablePagination$1 = TablePagination;
25362
25460
 
25363
- const ServerSideControlledPagination = _ref => {
25461
+ const onServerSideSelectionStatusChange = (newSelectionModel, apiRef, selectionStatus, isRowSelectable, page, pageSize) => {
25462
+ const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
25463
+ let {
25464
+ model
25465
+ } = _ref;
25466
+ return isRowSelectable({
25467
+ row: model
25468
+ });
25469
+ }).map(_ref2 => {
25470
+ let {
25471
+ id
25472
+ } = _ref2;
25473
+ return id;
25474
+ }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
25475
+ const numberOfSelectableRowsInPage = selectableRowsInPage.length;
25476
+ const numberOfSelectedRows = newSelectionModel.length;
25477
+ const selectedRowsInPage = selectableRowsInPage.filter(rowId => newSelectionModel.includes(rowId));
25478
+ const numberOfSelectedRowsInPage = selectedRowsInPage.length;
25479
+ const isSamePage = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.page) == page;
25480
+ const isSamePageSize = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.pageSize) == pageSize;
25481
+
25482
+ // if previous status is `page`,
25483
+ // if page and pageSize didn't change
25484
+ // and all the rows are selected, deselect all row
25485
+ if (selectionStatus.current.type === 'page' && isSamePage && isSamePageSize && numberOfSelectedRowsInPage === numberOfSelectableRowsInPage) {
25486
+ setTimeout(() => {
25487
+ apiRef.current.selectRows(selectedRowsInPage, false, false);
25488
+ }, 0);
25489
+ }
25490
+ if (numberOfSelectedRowsInPage === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage != 0) {
25491
+ selectionStatus.current = {
25492
+ type: 'page',
25493
+ numberOfSelectedRows,
25494
+ numberOfSelectedRowsInPage,
25495
+ page,
25496
+ pageSize
25497
+ };
25498
+ } else if (numberOfSelectedRows > 0) {
25499
+ selectionStatus.current = {
25500
+ type: 'other',
25501
+ numberOfSelectedRows,
25502
+ numberOfSelectedRowsInPage,
25503
+ page,
25504
+ pageSize
25505
+ };
25506
+ } else {
25507
+ selectionStatus.current = {
25508
+ type: 'none',
25509
+ numberOfSelectedRows,
25510
+ numberOfSelectedRowsInPage,
25511
+ page,
25512
+ pageSize
25513
+ };
25514
+ }
25515
+ };
25516
+ const ServerSideControlledPagination = _ref3 => {
25364
25517
  let {
25365
25518
  selectionStatus,
25366
25519
  displaySelection,
@@ -25371,7 +25524,7 @@ const ServerSideControlledPagination = _ref => {
25371
25524
  displayRowsPerPage,
25372
25525
  paginationProps,
25373
25526
  rowCount
25374
- } = _ref;
25527
+ } = _ref3;
25375
25528
  const totalNumberOfRowsInTable = rowCount;
25376
25529
  const totalRowsLabel = `${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected`;
25377
25530
  const pageRowsLabel = `All ${selectionStatus.numberOfSelectedRowsInPage} selectable rows on this page are selected${selectionStatus.numberOfSelectedRows != selectionStatus.numberOfSelectedRowsInPage ? ` (${selectionStatus.numberOfSelectedRows} row${selectionStatus.numberOfSelectedRows > 1 ? 's' : ''} selected in total)` : ''}.`;
@@ -25456,20 +25609,24 @@ const ControlledPagination = _ref3 => {
25456
25609
  component: "div",
25457
25610
  count: numberOfFilteredRowsInTable,
25458
25611
  page: paginationModel.page,
25459
- onPageChange: (event, page) => onPaginationModelChange({
25460
- page,
25461
- pageSize: paginationModel.pageSize
25462
- }),
25612
+ onPageChange: (event, page) => {
25613
+ onPaginationModelChange({
25614
+ page,
25615
+ pageSize: paginationModel.pageSize
25616
+ });
25617
+ },
25463
25618
  rowsPerPage: paginationModel.pageSize,
25464
- onRowsPerPageChange: event => onPaginationModelChange({
25465
- page: paginationModel.page,
25466
- pageSize: parseInt(event.target.value, 10)
25467
- }),
25619
+ onRowsPerPageChange: event => {
25620
+ onPaginationModelChange({
25621
+ page: paginationModel.page,
25622
+ pageSize: parseInt(event.target.value, 10)
25623
+ });
25624
+ },
25468
25625
  rowsPerPageOptions: displayRowsPerPage ? pageSizeOptions : []
25469
25626
  }, paginationProps)) : null);
25470
25627
  };
25471
25628
 
25472
- const _excluded$2 = ["hideToolbar", "RenderedToolbar", "filterModel", "onFilterModelChange", "pagination", "paginationPlacement", "selectionStatus", "apiRef", "isRowSelectable", "paginationModel", "onPaginationModelChange", "pageSizeOptions", "paginationProps", "paginationMode", "rowCount"];
25629
+ const _excluded$3 = ["hideToolbar", "RenderedToolbar", "filterModel", "onFilterModelChange", "pagination", "paginationPlacement", "selectionStatus", "apiRef", "isRowSelectable", "paginationModel", "onPaginationModelChange", "pageSizeOptions", "paginationProps", "paginationMode", "rowCount"];
25473
25630
  const ToolbarWrapper = _ref => {
25474
25631
  let {
25475
25632
  hideToolbar,
@@ -25477,48 +25634,431 @@ const ToolbarWrapper = _ref => {
25477
25634
  filterModel,
25478
25635
  onFilterModelChange,
25479
25636
  pagination,
25480
- paginationPlacement,
25481
- selectionStatus,
25482
- apiRef,
25483
- isRowSelectable,
25484
- paginationModel,
25485
- onPaginationModelChange,
25486
- pageSizeOptions,
25637
+ paginationPlacement,
25638
+ selectionStatus,
25639
+ apiRef,
25640
+ isRowSelectable,
25641
+ paginationModel,
25642
+ onPaginationModelChange,
25643
+ pageSizeOptions,
25644
+ paginationProps,
25645
+ paginationMode = 'client',
25646
+ rowCount
25647
+ } = _ref,
25648
+ forwardedProps = _objectWithoutProperties(_ref, _excluded$3);
25649
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !hideToolbar ? /*#__PURE__*/React__default.createElement(RenderedToolbar, _extends$2({}, forwardedProps, {
25650
+ filterModel: filterModel,
25651
+ onFilterModelChange: onFilterModelChange
25652
+ })) : null, pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, {
25653
+ displaySelection: true,
25654
+ displayRowsPerPage: false,
25655
+ displayPagination: ['top', 'both'].includes(paginationPlacement),
25656
+ selectionStatus: selectionStatus.current,
25657
+ paginationModel: paginationModel,
25658
+ onPaginationModelChange: onPaginationModelChange,
25659
+ pageSizeOptions: pageSizeOptions,
25660
+ paginationProps: paginationProps,
25661
+ rowCount: rowCount
25662
+ }) : /*#__PURE__*/React__default.createElement(ControlledPagination, {
25663
+ displaySelection: true,
25664
+ displayRowsPerPage: false,
25665
+ displayPagination: ['top', 'both'].includes(paginationPlacement),
25666
+ selectionStatus: selectionStatus.current,
25667
+ apiRef: apiRef,
25668
+ isRowSelectable: isRowSelectable,
25669
+ paginationModel: paginationModel,
25670
+ onPaginationModelChange: onPaginationModelChange,
25671
+ pageSizeOptions: pageSizeOptions,
25672
+ paginationProps: paginationProps
25673
+ }) : null);
25674
+ };
25675
+
25676
+ const useControlledDatagridState = _ref => {
25677
+ var _ref2, _ref3, _propsPaginationModel, _initialState$paginat, _initialState$paginat2, _pageSizeOptions$, _ref4, _propsPaginationModel2, _initialState$paginat3, _initialState$paginat4;
25678
+ let {
25679
+ initialState,
25680
+ pageSizeOptions,
25681
+ propsColumnVisibilityModel,
25682
+ propsFilterModel,
25683
+ propsOnColumnVisibilityModelChange,
25684
+ propsOnFilterModelChange,
25685
+ propsOnPaginationModelChange,
25686
+ propsOnPinnedColumnsChange,
25687
+ propsOnSortModelChange,
25688
+ propsPaginationModel,
25689
+ propsPinnedColumns,
25690
+ propsSortModel
25691
+ } = _ref;
25692
+ const [filterModel, setFilterModel] = useState(propsFilterModel);
25693
+ useEffect(() => {
25694
+ setFilterModel(propsFilterModel);
25695
+ }, [propsFilterModel]);
25696
+ const onFilterModelChange = (model, details) => {
25697
+ if (propsOnFilterModelChange) {
25698
+ propsOnFilterModelChange(model, details);
25699
+ } else {
25700
+ setFilterModel(model);
25701
+ }
25702
+ };
25703
+ const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);
25704
+ useEffect(() => {
25705
+ setColumnVisibilityModel(propsColumnVisibilityModel);
25706
+ }, [propsColumnVisibilityModel]);
25707
+ const onColumnVisibilityModelChange = (model, details) => {
25708
+ if (propsOnColumnVisibilityModelChange) {
25709
+ propsOnColumnVisibilityModelChange(model, details);
25710
+ } else {
25711
+ setColumnVisibilityModel(model);
25712
+ }
25713
+ };
25714
+ const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);
25715
+ useEffect(() => {
25716
+ setPinnedColumns(propsPinnedColumns);
25717
+ }, [propsPinnedColumns]);
25718
+ const onPinnedColumnsChange = (model, details) => {
25719
+ if (propsOnPinnedColumnsChange) {
25720
+ propsOnPinnedColumnsChange(model, details);
25721
+ } else {
25722
+ setPinnedColumns(model);
25723
+ }
25724
+ };
25725
+ const [sortModel, setSortModel] = useState(propsSortModel);
25726
+ useEffect(() => {
25727
+ setSortModel(propsSortModel);
25728
+ }, [propsSortModel]);
25729
+ const onSortModelChange = (model, details) => {
25730
+ if (propsOnSortModelChange) {
25731
+ propsOnSortModelChange(model, details);
25732
+ } else {
25733
+ setSortModel(model);
25734
+ }
25735
+ };
25736
+ const [paginationModel, setPaginationModel] = useState({
25737
+ pageSize: (_ref2 = (_ref3 = (_propsPaginationModel = propsPaginationModel === null || propsPaginationModel === void 0 ? void 0 : propsPaginationModel.pageSize) !== null && _propsPaginationModel !== void 0 ? _propsPaginationModel : initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat = initialState.pagination) === null || _initialState$paginat === void 0 ? void 0 : (_initialState$paginat2 = _initialState$paginat.paginationModel) === null || _initialState$paginat2 === void 0 ? void 0 : _initialState$paginat2.pageSize) !== null && _ref3 !== void 0 ? _ref3 : typeof (pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : pageSizeOptions[0]) === 'number' ? pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : pageSizeOptions[0] : pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : (_pageSizeOptions$ = pageSizeOptions[0]) === null || _pageSizeOptions$ === void 0 ? void 0 : _pageSizeOptions$.value) !== null && _ref2 !== void 0 ? _ref2 : 25,
25738
+ page: (_ref4 = (_propsPaginationModel2 = propsPaginationModel === null || propsPaginationModel === void 0 ? void 0 : propsPaginationModel.page) !== null && _propsPaginationModel2 !== void 0 ? _propsPaginationModel2 : initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat3 = initialState.pagination) === null || _initialState$paginat3 === void 0 ? void 0 : (_initialState$paginat4 = _initialState$paginat3.paginationModel) === null || _initialState$paginat4 === void 0 ? void 0 : _initialState$paginat4.page) !== null && _ref4 !== void 0 ? _ref4 : 0
25739
+ });
25740
+ const onPaginationModelChange = (model, details) => {
25741
+ if (propsOnPaginationModelChange) {
25742
+ propsOnPaginationModelChange(model, details);
25743
+ } else {
25744
+ setPaginationModel(model);
25745
+ }
25746
+ };
25747
+ useEffect(() => {
25748
+ if (propsPaginationModel) {
25749
+ setPaginationModel(propsPaginationModel);
25750
+ }
25751
+ }, [propsPaginationModel]);
25752
+ return {
25753
+ filterModel,
25754
+ onFilterModelChange,
25755
+ columnVisibilityModel,
25756
+ onColumnVisibilityModelChange,
25757
+ pinnedColumns,
25758
+ onPinnedColumnsChange,
25759
+ sortModel,
25760
+ onSortModelChange,
25761
+ paginationModel,
25762
+ onPaginationModelChange
25763
+ };
25764
+ };
25765
+
25766
+ const _excluded$2 = ["apiRef", "autoHeight", "className", "slots", "slotProps", "filterModel", "columnVisibilityModel", "pinnedColumns", "sortModel", "paginationModel", "height", "hideToolbar", "initialState", "isRowSelectable", "license", "onFilterModelChange", "rowSelectionModel", "onPaginationModelChange", "onRowSelectionModelChange", "onColumnVisibilityModelChange", "onPinnedColumnsChange", "onSortModelChange", "pagination", "paginationPlacement", "paginationProps", "rows", "pageSizeOptions", "sx", "theme", "paginationMode", "rowCount"];
25767
+ const COMPONENT_NAME$2 = 'DataGrid';
25768
+ const CLASSNAME$2 = 'redsift-datagrid';
25769
+ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25770
+ const datagridRef = ref || useRef();
25771
+ const {
25772
+ apiRef: propsApiRef,
25773
+ autoHeight,
25774
+ className,
25775
+ slots,
25776
+ slotProps,
25777
+ filterModel: propsFilterModel,
25778
+ columnVisibilityModel: propsColumnVisibilityModel,
25779
+ pinnedColumns: propsPinnedColumns,
25780
+ sortModel: propsSortModel,
25781
+ paginationModel: propsPaginationModel,
25782
+ height: propsHeight,
25783
+ hideToolbar,
25784
+ initialState,
25785
+ isRowSelectable,
25786
+ license = process.env.MUI_LICENSE_KEY,
25787
+ onFilterModelChange: propsOnFilterModelChange,
25788
+ rowSelectionModel: propsSelectionModel,
25789
+ onPaginationModelChange: propsOnPaginationModelChange,
25790
+ onRowSelectionModelChange,
25791
+ onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,
25792
+ onPinnedColumnsChange: propsOnPinnedColumnsChange,
25793
+ onSortModelChange: propsOnSortModelChange,
25794
+ pagination,
25795
+ paginationPlacement = 'both',
25487
25796
  paginationProps,
25797
+ rows,
25798
+ pageSizeOptions,
25799
+ sx,
25800
+ theme: propsTheme,
25488
25801
  paginationMode = 'client',
25489
25802
  rowCount
25490
- } = _ref,
25491
- forwardedProps = _objectWithoutProperties(_ref, _excluded$2);
25492
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, !hideToolbar ? /*#__PURE__*/React__default.createElement(RenderedToolbar, _extends$2({}, forwardedProps, {
25493
- filterModel: filterModel,
25494
- onFilterModelChange: onFilterModelChange
25495
- })) : null, pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, {
25496
- displaySelection: true,
25497
- displayRowsPerPage: false,
25498
- displayPagination: ['top', 'both'].includes(paginationPlacement),
25499
- selectionStatus: selectionStatus.current,
25500
- paginationModel: paginationModel,
25501
- onPaginationModelChange: onPaginationModelChange,
25502
- pageSizeOptions: pageSizeOptions,
25503
- paginationProps: paginationProps,
25504
- rowCount: rowCount
25505
- }) : /*#__PURE__*/React__default.createElement(ControlledPagination, {
25506
- displaySelection: true,
25507
- displayRowsPerPage: false,
25508
- displayPagination: ['top', 'both'].includes(paginationPlacement),
25509
- selectionStatus: selectionStatus.current,
25803
+ } = props,
25804
+ forwardedProps = _objectWithoutProperties(props, _excluded$2);
25805
+ const theme = useTheme$4(propsTheme);
25806
+ const _apiRef = useGridApiRef();
25807
+ const apiRef = propsApiRef !== null && propsApiRef !== void 0 ? propsApiRef : _apiRef;
25808
+ const RenderedToolbar = slots !== null && slots !== void 0 && slots.toolbar ? slots.toolbar : Toolbar$2;
25809
+ LicenseInfo.setLicenseKey(license);
25810
+ const height = propsHeight !== null && propsHeight !== void 0 ? propsHeight : autoHeight ? undefined : '500px';
25811
+ const {
25812
+ columnVisibilityModel,
25813
+ filterModel,
25814
+ onColumnVisibilityModelChange,
25815
+ onFilterModelChange,
25816
+ onPaginationModelChange,
25817
+ onPinnedColumnsChange,
25818
+ onSortModelChange,
25819
+ paginationModel,
25820
+ pinnedColumns,
25821
+ sortModel
25822
+ } = useControlledDatagridState({
25823
+ initialState,
25824
+ pageSizeOptions,
25825
+ propsColumnVisibilityModel,
25826
+ propsFilterModel,
25827
+ propsOnColumnVisibilityModelChange,
25828
+ propsOnFilterModelChange,
25829
+ propsOnPinnedColumnsChange,
25830
+ propsOnSortModelChange,
25831
+ propsPaginationModel,
25832
+ propsPinnedColumns,
25833
+ propsSortModel,
25834
+ propsOnPaginationModelChange
25835
+ });
25836
+ const [rowSelectionModel, setRowSelectionModel] = useState(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
25837
+ useEffect(() => {
25838
+ setRowSelectionModel(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
25839
+ }, [propsSelectionModel]);
25840
+ const selectionStatus = useRef({
25841
+ type: 'none',
25842
+ numberOfSelectedRows: 0,
25843
+ numberOfSelectedRowsInPage: 0,
25844
+ page: paginationModel.page,
25845
+ pageSize: paginationModel.pageSize
25846
+ });
25847
+
25848
+ // in server-side pagination we want to update the selection status
25849
+ // every time we navigate between pages, resize our page or select something
25850
+ useEffect(() => {
25851
+ if (paginationMode == 'server') {
25852
+ onServerSideSelectionStatusChange(Array.isArray(rowSelectionModel) ? rowSelectionModel : [rowSelectionModel], apiRef, selectionStatus, isRowSelectable, paginationModel.page, paginationModel.pageSize);
25853
+ }
25854
+ }, [rowSelectionModel, paginationModel.page, paginationModel.pageSize]);
25855
+ if (!Array.isArray(rows)) {
25856
+ return null;
25857
+ }
25858
+ const muiTheme = useMemo(() => createTheme({
25859
+ palette: {
25860
+ mode: theme,
25861
+ primary: {
25862
+ main: RedsiftColorBlueN
25863
+ },
25864
+ background: {
25865
+ default: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,
25866
+ paper: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite
25867
+ }
25868
+ }
25869
+ }), [theme]);
25870
+ return /*#__PURE__*/React__default.createElement(ThemeProvider$4, {
25871
+ value: {
25872
+ theme
25873
+ }
25874
+ }, /*#__PURE__*/React__default.createElement(ThemeProvider$1, {
25875
+ theme: muiTheme
25876
+ }, /*#__PURE__*/React__default.createElement(StyledDataGrid, {
25877
+ ref: datagridRef,
25878
+ className: classNames(DataGrid.className, className),
25879
+ $height: height
25880
+ }, /*#__PURE__*/React__default.createElement(DataGridPro, _extends$2({}, forwardedProps, {
25881
+ rowCount: rowCount,
25510
25882
  apiRef: apiRef,
25883
+ autoHeight: autoHeight,
25884
+ checkboxSelectionVisibleOnly: Boolean(pagination),
25885
+ slots: _objectSpread2(_objectSpread2({
25886
+ baseButton: BaseButton,
25887
+ baseCheckbox: BaseCheckbox,
25888
+ // baseTextField,
25889
+ basePopper: BasePopper,
25890
+ columnFilteredIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25891
+ displayName: "ColumnFilteredIcon"
25892
+ })),
25893
+ columnSelectorIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25894
+ displayName: "ColumnSelectorIcon"
25895
+ })),
25896
+ columnSortedAscendingIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25897
+ displayName: "ColumnSortedAscendingIcon"
25898
+ })),
25899
+ columnSortedDescendingIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25900
+ displayName: "ColumnSortedDescendingIcon"
25901
+ })),
25902
+ densityCompactIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25903
+ displayName: "DensityCompactIcon"
25904
+ })),
25905
+ densityStandardIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25906
+ displayName: "DensityStandardIcon"
25907
+ })),
25908
+ densityComfortableIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25909
+ displayName: "DensityComfortableIcon"
25910
+ })),
25911
+ detailPanelCollapseIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25912
+ displayName: "DetailPanelCollapseIcon"
25913
+ })),
25914
+ detailPanelExpandIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25915
+ displayName: "DetailPanelExpandIcon"
25916
+ })),
25917
+ exportIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({}, props, {
25918
+ displayName: "ExportIcon"
25919
+ })),
25920
+ openFilterButtonIcon: props => /*#__PURE__*/React__default.createElement(BaseIcon, _extends$2({
25921
+ displayName: "OpenFilterButtonIcon"
25922
+ }, props))
25923
+ }, slots), {}, {
25924
+ toolbar: ToolbarWrapper,
25925
+ pagination: props => pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, _extends$2({}, props, {
25926
+ displaySelection: false,
25927
+ displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
25928
+ displayPagination: ['bottom', 'both'].includes(paginationPlacement),
25929
+ selectionStatus: selectionStatus.current,
25930
+ paginationModel: paginationModel,
25931
+ onPaginationModelChange: onPaginationModelChange,
25932
+ pageSizeOptions: pageSizeOptions,
25933
+ paginationProps: paginationProps,
25934
+ paginationMode: paginationMode,
25935
+ rowCount: rowCount
25936
+ })) : /*#__PURE__*/React__default.createElement(ControlledPagination, _extends$2({}, props, {
25937
+ displaySelection: false,
25938
+ displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
25939
+ displayPagination: ['bottom', 'both'].includes(paginationPlacement),
25940
+ selectionStatus: selectionStatus.current,
25941
+ apiRef: apiRef,
25942
+ isRowSelectable: isRowSelectable,
25943
+ paginationModel: paginationModel,
25944
+ onPaginationModelChange: onPaginationModelChange,
25945
+ pageSizeOptions: pageSizeOptions,
25946
+ paginationProps: paginationProps,
25947
+ paginationMode: paginationMode
25948
+ })) : null
25949
+ }),
25950
+ slotProps: _objectSpread2(_objectSpread2({}, slotProps), {}, {
25951
+ toolbar: _objectSpread2({
25952
+ hideToolbar,
25953
+ RenderedToolbar,
25954
+ filterModel,
25955
+ onFilterModelChange,
25956
+ pagination,
25957
+ paginationPlacement,
25958
+ selectionStatus,
25959
+ apiRef,
25960
+ isRowSelectable,
25961
+ paginationModel,
25962
+ onPaginationModelChange,
25963
+ pageSizeOptions,
25964
+ paginationProps,
25965
+ paginationMode,
25966
+ rowCount
25967
+ }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.toolbar)
25968
+ }),
25969
+ filterModel: filterModel,
25970
+ columnVisibilityModel: columnVisibilityModel,
25971
+ pinnedColumns: pinnedColumns,
25972
+ sortModel: sortModel,
25973
+ initialState: initialState,
25511
25974
  isRowSelectable: isRowSelectable,
25975
+ onFilterModelChange: onFilterModelChange,
25976
+ onColumnVisibilityModelChange: onColumnVisibilityModelChange,
25977
+ onPinnedColumnsChange: onPinnedColumnsChange,
25978
+ onSortModelChange: onSortModelChange,
25979
+ pagination: pagination,
25980
+ paginationMode: paginationMode,
25981
+ keepNonExistentRowsSelected: paginationMode == 'server',
25982
+ rows: rows,
25983
+ pageSizeOptions: pageSizeOptions,
25512
25984
  paginationModel: paginationModel,
25513
25985
  onPaginationModelChange: onPaginationModelChange,
25514
- pageSizeOptions: pageSizeOptions,
25515
- paginationProps: paginationProps
25516
- }) : null);
25517
- };
25986
+ rowSelectionModel: rowSelectionModel,
25987
+ onRowSelectionModelChange: (newSelectionModel, details) => {
25988
+ if (pagination && paginationMode != 'server') {
25989
+ const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
25990
+ let {
25991
+ model
25992
+ } = _ref;
25993
+ return isRowSelectable({
25994
+ row: model
25995
+ });
25996
+ }).map(_ref2 => {
25997
+ let {
25998
+ id
25999
+ } = _ref2;
26000
+ return id;
26001
+ }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
26002
+ const numberOfSelectableRowsInPage = selectableRowsInPage.length;
26003
+ const selectableRowsInTable = isRowSelectable ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref3 => {
26004
+ let {
26005
+ model
26006
+ } = _ref3;
26007
+ return isRowSelectable({
26008
+ row: model
26009
+ });
26010
+ }).map(_ref4 => {
26011
+ let {
26012
+ id
26013
+ } = _ref4;
26014
+ return id;
26015
+ }) : gridFilteredSortedRowIdsSelector(apiRef);
26016
+ const numberOfSelectableRowsInTable = selectableRowsInTable.length;
26017
+ const numberOfSelectedRows = newSelectionModel.length;
26018
+ if (selectionStatus.current.type === 'table' && numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage || selectionStatus.current.type === 'table' && numberOfSelectedRows === numberOfSelectableRowsInTable || selectionStatus.current.type === 'page' && numberOfSelectedRows === numberOfSelectableRowsInPage) {
26019
+ setTimeout(() => {
26020
+ apiRef.current.selectRows([], true, true);
26021
+ }, 0);
26022
+ }
26023
+ if (numberOfSelectedRows === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
26024
+ selectionStatus.current = {
26025
+ type: 'page',
26026
+ numberOfSelectedRows
26027
+ };
26028
+ } else if (numberOfSelectedRows === numberOfSelectableRowsInTable && numberOfSelectableRowsInPage < numberOfSelectableRowsInTable) {
26029
+ selectionStatus.current = {
26030
+ type: 'table',
26031
+ numberOfSelectedRows
26032
+ };
26033
+ } else if (numberOfSelectedRows > 0) {
26034
+ selectionStatus.current = {
26035
+ type: 'other',
26036
+ numberOfSelectedRows
26037
+ };
26038
+ } else {
26039
+ selectionStatus.current = {
26040
+ type: 'none',
26041
+ numberOfSelectedRows
26042
+ };
26043
+ }
26044
+ }
26045
+ onRowSelectionModelChange === null || onRowSelectionModelChange === void 0 ? void 0 : onRowSelectionModelChange(newSelectionModel, details);
26046
+ },
26047
+ sx: _objectSpread2(_objectSpread2({}, sx), {}, {
26048
+ '.MuiDataGrid-columnHeaders': {
26049
+ flexDirection: 'column',
26050
+ alignItems: 'normal'
26051
+ },
26052
+ '.MuiDataGrid-selectedRowCount': {
26053
+ margin: 'none'
26054
+ }
26055
+ })
26056
+ })))));
26057
+ });
26058
+ DataGrid.className = CLASSNAME$2;
26059
+ DataGrid.displayName = COMPONENT_NAME$2;
25518
26060
 
25519
26061
  // Get and Set data from LocalStorage WITHOUT useState
25520
-
25521
- // triggering a state update and consecutive re-render
25522
26062
  const useFetchState = (defaultValue, key) => {
25523
26063
  let stickyValue = null;
25524
26064
  try {
@@ -25526,16 +26066,7 @@ const useFetchState = (defaultValue, key) => {
25526
26066
  } catch (e) {
25527
26067
  console.error('StatefulDataGrid: error getting item from local storage: ', e);
25528
26068
  }
25529
- let parsedValue = stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined' ? JSON.parse(stickyValue) : defaultValue;
25530
-
25531
- // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)
25532
- // Consider upgrading the Datagrid component library as the exception handling was added in this PR: https://github.com/mui-org/material-ui-x/pull/3224
25533
- if (parsedValue instanceof Array) {
25534
- const fields = (parsedValue || []).map(item => item.field);
25535
- if (fields.includes('screenshot') || fields.includes('diffs')) {
25536
- parsedValue = defaultValue;
25537
- }
25538
- }
26069
+ const parsedValue = stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined' ? JSON.parse(stickyValue) : defaultValue;
25539
26070
  const updateValue = useCallback(value => {
25540
26071
  try {
25541
26072
  window.localStorage.setItem(key, JSON.stringify(value));
@@ -25546,35 +26077,14 @@ const useFetchState = (defaultValue, key) => {
25546
26077
  return [parsedValue, updateValue];
25547
26078
  };
25548
26079
 
25549
- function useLocalStorage(key, defaultValue) {
25550
- const [value, setValue] = useState(() => {
25551
- let currentValue;
25552
- try {
25553
- currentValue = JSON.parse(localStorage.getItem(key) || String(defaultValue));
25554
- } catch (error) {
25555
- currentValue = defaultValue;
25556
- }
25557
- return currentValue;
25558
- });
25559
- useEffect(() => {
25560
- try {
25561
- localStorage.setItem(key, JSON.stringify(value));
25562
- } catch (e) {
25563
- console.error('local-storage: error setting item into local storage: ', e);
25564
- }
25565
- }, [value, key]);
25566
- return [value, setValue];
25567
- }
26080
+ // import useLocalStorage from './useLocalStorage';
25568
26081
 
25569
26082
  const useTableStates = (id, version, customDefaults) => {
25570
- const [paginationModel, setPaginationModel] = useLocalStorage(buildStorageKey({
26083
+ const [paginationModel, setPaginationModel] = useFetchState('', buildStorageKey({
25571
26084
  id,
25572
26085
  version,
25573
26086
  category: PAGINATION_MODEL_KEY
25574
- }), {
25575
- page: 0,
25576
- pageSize: 10
25577
- });
26087
+ }));
25578
26088
  const [sortModel, setSortModel] = useFetchState(customDefaults && customDefaults[SORT_MODEL_KEY] ? customDefaults[SORT_MODEL_KEY] : '', buildStorageKey({
25579
26089
  id,
25580
26090
  version,
@@ -25677,6 +26187,7 @@ const useStatefulTable = props => {
25677
26187
  const {
25678
26188
  filterModel: filterParsed,
25679
26189
  sortModel: sortModelParsed,
26190
+ paginationModel: paginationModelParsed,
25680
26191
  columnVisibilityModel: visibilityModel,
25681
26192
  pinnedColumnsModel
25682
26193
  } = getModelsParsedOrUpdateLocalStorage(search || '', propsColumns, historyReplace, {
@@ -25684,6 +26195,8 @@ const useStatefulTable = props => {
25684
26195
  setLocalStorageFilters,
25685
26196
  localStorageSorting: sortModel,
25686
26197
  setLocalStorageSorting: setSortModel,
26198
+ localStoragePagination: paginationModel,
26199
+ setLocalStoragePagination: setPaginationModel,
25687
26200
  localStorageColumnsVisibility: visibilityModelLocalStorage,
25688
26201
  setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,
25689
26202
  localStoragePinnedColumns: pinnedColumns,
@@ -25697,10 +26210,20 @@ const useStatefulTable = props => {
25697
26210
  apiRef,
25698
26211
  columns,
25699
26212
  onFilterModelChange: (model, details) => {
25700
- propsOnFilterModelChange === null || propsOnFilterModelChange === void 0 ? void 0 : propsOnFilterModelChange(model, details);
26213
+ const filterModel = _objectSpread2(_objectSpread2({}, model), {}, {
26214
+ items: model.items.map(item => {
26215
+ if (!item.type) {
26216
+ const column = apiRef.current.getColumn(item.field);
26217
+ item.type = column.type || 'string';
26218
+ }
26219
+ return item;
26220
+ })
26221
+ });
26222
+ propsOnFilterModelChange === null || propsOnFilterModelChange === void 0 ? void 0 : propsOnFilterModelChange(filterModel, details);
25701
26223
  updateUrl({
25702
- filterModel: model,
26224
+ filterModel: filterModel,
25703
26225
  sortModel: sortModelParsed,
26226
+ paginationModel: paginationModelParsed,
25704
26227
  columnsModel: apiRef.current.state.columns.columnVisibilityModel,
25705
26228
  pinnedColumnsModel: pinnedColumnsModel
25706
26229
  }, search, historyReplace, columns);
@@ -25711,6 +26234,7 @@ const useStatefulTable = props => {
25711
26234
  updateUrl({
25712
26235
  filterModel: filterParsed,
25713
26236
  sortModel: model,
26237
+ paginationModel: paginationModelParsed,
25714
26238
  columnsModel: apiRef.current.state.columns.columnVisibilityModel,
25715
26239
  pinnedColumnsModel: pinnedColumnsModel
25716
26240
  }, search, historyReplace, columns);
@@ -25721,15 +26245,25 @@ const useStatefulTable = props => {
25721
26245
  updateUrl({
25722
26246
  filterModel: filterParsed,
25723
26247
  sortModel: sortModelParsed,
26248
+ paginationModel: paginationModelParsed,
25724
26249
  columnsModel: apiRef.current.state.columns.columnVisibilityModel,
25725
26250
  pinnedColumnsModel: pinnedColumns
25726
26251
  }, search, historyReplace, columns);
25727
26252
  },
25728
26253
  pinnedColumns: pinnedColumnsModel,
25729
- paginationModel,
26254
+ paginationModel: paginationModelParsed,
25730
26255
  onPaginationModelChange: (model, details) => {
25731
- propsOnPaginationModelChange === null || propsOnPaginationModelChange === void 0 ? void 0 : propsOnPaginationModelChange(model, details);
25732
- setPaginationModel(model);
26256
+ const paginationModel = _objectSpread2(_objectSpread2({}, model), {}, {
26257
+ direction: paginationModelParsed.page < model.page ? 'next' : 'back'
26258
+ });
26259
+ propsOnPaginationModelChange === null || propsOnPaginationModelChange === void 0 ? void 0 : propsOnPaginationModelChange(paginationModel, details);
26260
+ updateUrl({
26261
+ filterModel: filterParsed,
26262
+ sortModel: sortModelParsed,
26263
+ paginationModel: paginationModel,
26264
+ columnsModel: apiRef.current.state.columns.columnVisibilityModel,
26265
+ pinnedColumnsModel: pinnedColumnsModel
26266
+ }, search, historyReplace, columns);
25733
26267
  },
25734
26268
  columnVisibilityModel: visibilityModel,
25735
26269
  onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {
@@ -25737,6 +26271,7 @@ const useStatefulTable = props => {
25737
26271
  updateUrl({
25738
26272
  filterModel: filterParsed,
25739
26273
  sortModel: sortModelParsed,
26274
+ paginationModel: paginationModelParsed,
25740
26275
  columnsModel: columnsVisibilityModel,
25741
26276
  pinnedColumnsModel: pinnedColumnsModel
25742
26277
  }, search, historyReplace, columns);
@@ -25751,120 +26286,31 @@ const useStatefulTable = props => {
25751
26286
  };
25752
26287
  };
25753
26288
 
25754
- const _excluded$1 = ["apiRef", "columns", "onColumnVisibilityModelChange", "onColumnWidthChange", "onFilterModelChange", "onPaginationModelChange", "onPinnedColumnsChange", "onSortModelChange", "pinnedCustomColumns", "rows", "useRouter"],
25755
- _excluded2 = ["apiRef", "autoHeight", "className", "slots", "slotProps", "filterModel", "columnVisibilityModel", "pinnedColumns", "sortModel", "height", "hideToolbar", "initialState", "isRowSelectable", "isStateful", "license", "onFilterModelChange", "rowSelectionModel", "paginationModel", "onPaginationModelChange", "onRowSelectionModelChange", "onColumnVisibilityModelChange", "onPinnedColumnsChange", "onSortModelChange", "pagination", "paginationPlacement", "paginationProps", "pinnedCustomColumns", "rows", "pageSizeOptions", "sx", "theme", "useRouter", "paginationMode", "rowCount"];
26289
+ const _excluded$1 = ["apiRef", "autoHeight", "className", "columns", "slots", "slotProps", "filterModel", "columnVisibilityModel", "pinnedColumns", "sortModel", "paginationModel", "height", "hideToolbar", "initialState", "isRowSelectable", "license", "onFilterModelChange", "rowSelectionModel", "onColumnWidthChange", "onPaginationModelChange", "onRowSelectionModelChange", "onColumnVisibilityModelChange", "onPinnedColumnsChange", "onSortModelChange", "pagination", "paginationPlacement", "paginationProps", "pinnedCustomColumns", "rows", "pageSizeOptions", "sx", "theme", "useRouter", "paginationMode", "rowCount"];
25756
26290
  const COMPONENT_NAME$1 = 'DataGrid';
25757
26291
  const CLASSNAME$1 = 'redsift-datagrid';
25758
- const onServerSideSelectionStatusChange = (newSelectionModel, apiRef, selectionStatus, isRowSelectable, page, pageSize) => {
25759
- const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
25760
- let {
25761
- model
25762
- } = _ref;
25763
- return isRowSelectable({
25764
- row: model
25765
- });
25766
- }).map(_ref2 => {
25767
- let {
25768
- id
25769
- } = _ref2;
25770
- return id;
25771
- }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
25772
- const numberOfSelectableRowsInPage = selectableRowsInPage.length;
25773
- const numberOfSelectedRows = newSelectionModel.length;
25774
- const selectedRowsInPage = selectableRowsInPage.filter(rowId => newSelectionModel.includes(rowId));
25775
- const numberOfSelectedRowsInPage = selectedRowsInPage.length;
25776
- const isSamePage = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.page) == page;
25777
- const isSamePageSize = (selectionStatus === null || selectionStatus === void 0 ? void 0 : selectionStatus.current.pageSize) == pageSize;
25778
-
25779
- // if previous status is `page`,
25780
- // if page and pageSize didn't change
25781
- // and all the rows are selected, deselect all row
25782
- if (selectionStatus.current.type === 'page' && isSamePage && isSamePageSize && numberOfSelectedRowsInPage === numberOfSelectableRowsInPage) {
25783
- setTimeout(() => {
25784
- apiRef.current.selectRows(selectedRowsInPage, false, false);
25785
- }, 0);
25786
- }
25787
- if (numberOfSelectedRowsInPage === numberOfSelectableRowsInPage && numberOfSelectableRowsInPage != 0) {
25788
- selectionStatus.current = {
25789
- type: 'page',
25790
- numberOfSelectedRows,
25791
- numberOfSelectedRowsInPage,
25792
- page,
25793
- pageSize
25794
- };
25795
- } else if (numberOfSelectedRows > 0) {
25796
- selectionStatus.current = {
25797
- type: 'other',
25798
- numberOfSelectedRows,
25799
- numberOfSelectedRowsInPage,
25800
- page,
25801
- pageSize
25802
- };
25803
- } else {
25804
- selectionStatus.current = {
25805
- type: 'none',
25806
- numberOfSelectedRows,
25807
- numberOfSelectedRowsInPage,
25808
- page,
25809
- pageSize
25810
- };
25811
- }
25812
- };
25813
26292
  const StatefulDataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25814
- const {
25815
- // density = 'standard',
25816
- apiRef,
25817
- columns,
25818
- onColumnVisibilityModelChange,
25819
- onColumnWidthChange,
25820
- onFilterModelChange,
25821
- onPaginationModelChange,
25822
- onPinnedColumnsChange,
25823
- onSortModelChange,
25824
- pinnedCustomColumns,
25825
- rows,
25826
- useRouter
25827
- } = props,
25828
- forwardedProps = _objectWithoutProperties(props, _excluded$1);
25829
- const statefulTableProps = useStatefulTable({
25830
- apiRef: apiRef,
25831
- columns,
25832
- onFilterModelChange,
25833
- onPinnedColumnsChange,
25834
- onSortModelChange,
25835
- onPaginationModelChange,
25836
- onColumnVisibilityModelChange,
25837
- onColumnWidthChange,
25838
- pinnedCustomColumns,
25839
- useRouter: useRouter
25840
- });
25841
- return /*#__PURE__*/React__default.createElement(DataGridPro, _extends$2({
25842
- ref: ref,
25843
- rows: rows
25844
- }, forwardedProps, statefulTableProps));
25845
- });
25846
- const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25847
- var _ref3, _ref4, _initialState$paginat, _initialState$paginat2, _initialState$paginat3, _pageSizeOptions$, _ref5, _initialState$paginat4, _initialState$paginat5, _initialState$paginat6;
25848
26293
  const datagridRef = ref || useRef();
25849
26294
  const {
25850
26295
  apiRef: propsApiRef,
25851
26296
  autoHeight,
25852
26297
  className,
26298
+ columns,
25853
26299
  slots,
25854
26300
  slotProps,
25855
26301
  filterModel: propsFilterModel,
25856
26302
  columnVisibilityModel: propsColumnVisibilityModel,
25857
26303
  pinnedColumns: propsPinnedColumns,
25858
26304
  sortModel: propsSortModel,
26305
+ paginationModel: propsPaginationModel,
25859
26306
  height: propsHeight,
25860
26307
  hideToolbar,
25861
26308
  initialState,
25862
26309
  isRowSelectable,
25863
- isStateful: propsIsStateful,
25864
26310
  license = process.env.MUI_LICENSE_KEY,
25865
26311
  onFilterModelChange: propsOnFilterModelChange,
25866
26312
  rowSelectionModel: propsSelectionModel,
25867
- paginationModel: propsPaginationModel,
26313
+ onColumnWidthChange: propsOnColumnWidthChange,
25868
26314
  onPaginationModelChange: propsOnPaginationModelChange,
25869
26315
  onRowSelectionModelChange,
25870
26316
  onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,
@@ -25882,77 +26328,61 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25882
26328
  paginationMode = 'client',
25883
26329
  rowCount
25884
26330
  } = props,
25885
- forwardedProps = _objectWithoutProperties(props, _excluded2);
26331
+ forwardedProps = _objectWithoutProperties(props, _excluded$1);
25886
26332
  const theme = useTheme$4(propsTheme);
25887
26333
  const _apiRef = useGridApiRef();
25888
26334
  const apiRef = propsApiRef !== null && propsApiRef !== void 0 ? propsApiRef : _apiRef;
25889
26335
  const RenderedToolbar = slots !== null && slots !== void 0 && slots.toolbar ? slots.toolbar : Toolbar$2;
25890
26336
  LicenseInfo.setLicenseKey(license);
25891
26337
  const height = propsHeight !== null && propsHeight !== void 0 ? propsHeight : autoHeight ? undefined : '500px';
25892
- const [filterModel, setFilterModel] = useState(propsFilterModel);
25893
- useEffect(() => {
25894
- setFilterModel(propsFilterModel);
25895
- }, [propsFilterModel]);
25896
- const onFilterModelChange = (model, details) => {
25897
- if (propsOnFilterModelChange) {
25898
- propsOnFilterModelChange(model, details);
25899
- } else {
25900
- setFilterModel(model);
25901
- }
25902
- };
25903
- const [columnVisibilityModel, setColumnVisibilityModel] = useState(propsColumnVisibilityModel);
25904
- useEffect(() => {
25905
- setColumnVisibilityModel(propsColumnVisibilityModel);
25906
- }, [propsColumnVisibilityModel]);
25907
- const onColumnVisibilityModelChange = (model, details) => {
25908
- if (propsOnColumnVisibilityModelChange) {
25909
- propsOnColumnVisibilityModelChange(model, details);
25910
- } else {
25911
- setColumnVisibilityModel(model);
25912
- }
25913
- };
25914
- const [pinnedColumns, setPinnedColumns] = useState(propsPinnedColumns);
25915
- useEffect(() => {
25916
- setPinnedColumns(propsPinnedColumns);
25917
- }, [propsPinnedColumns]);
25918
- const onPinnedColumnsChange = (model, details) => {
25919
- if (propsOnPinnedColumnsChange) {
25920
- propsOnPinnedColumnsChange(model, details);
25921
- } else {
25922
- setPinnedColumns(model);
25923
- }
25924
- };
25925
- const [sortModel, setSortModel] = useState(propsSortModel);
25926
- useEffect(() => {
25927
- setSortModel(propsSortModel);
25928
- }, [propsSortModel]);
25929
- const onSortModelChange = (model, details) => {
25930
- if (propsOnSortModelChange) {
25931
- propsOnSortModelChange(model, details);
25932
- } else {
25933
- setSortModel(model);
25934
- }
25935
- };
26338
+ const {
26339
+ onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,
26340
+ onFilterModelChange: controlledOnFilterModelChange,
26341
+ onPaginationModelChange: controlledOnPaginationModelChange,
26342
+ onPinnedColumnsChange: controlledOnPinnedColumnsChange,
26343
+ onSortModelChange: controlledOnSortModelChange
26344
+ } = useControlledDatagridState({
26345
+ initialState,
26346
+ pageSizeOptions,
26347
+ propsColumnVisibilityModel,
26348
+ propsFilterModel,
26349
+ propsOnColumnVisibilityModelChange,
26350
+ propsOnFilterModelChange,
26351
+ propsOnPinnedColumnsChange,
26352
+ propsOnSortModelChange,
26353
+ propsPaginationModel,
26354
+ propsPinnedColumns,
26355
+ propsSortModel,
26356
+ propsOnPaginationModelChange
26357
+ });
26358
+ const {
26359
+ columnVisibilityModel,
26360
+ filterModel,
26361
+ onColumnVisibilityModelChange,
26362
+ onFilterModelChange,
26363
+ onPaginationModelChange,
26364
+ onPinnedColumnsChange,
26365
+ onSortModelChange,
26366
+ paginationModel,
26367
+ pinnedColumns,
26368
+ sortModel,
26369
+ onColumnWidthChange
26370
+ } = useStatefulTable({
26371
+ apiRef: apiRef,
26372
+ columns,
26373
+ onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,
26374
+ onColumnWidthChange: propsOnColumnWidthChange,
26375
+ onFilterModelChange: controlledOnFilterModelChange,
26376
+ onPaginationModelChange: controlledOnPaginationModelChange,
26377
+ onPinnedColumnsChange: controlledOnPinnedColumnsChange,
26378
+ onSortModelChange: controlledOnSortModelChange,
26379
+ pinnedCustomColumns,
26380
+ useRouter: useRouter
26381
+ });
25936
26382
  const [rowSelectionModel, setRowSelectionModel] = useState(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
25937
26383
  useEffect(() => {
25938
26384
  setRowSelectionModel(propsSelectionModel !== null && propsSelectionModel !== void 0 ? propsSelectionModel : []);
25939
26385
  }, [propsSelectionModel]);
25940
- const [paginationModel, setPaginationModel] = useState({
25941
- pageSize: (_ref3 = (_ref4 = (_initialState$paginat = initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat2 = initialState.pagination) === null || _initialState$paginat2 === void 0 ? void 0 : (_initialState$paginat3 = _initialState$paginat2.paginationModel) === null || _initialState$paginat3 === void 0 ? void 0 : _initialState$paginat3.pageSize) !== null && _initialState$paginat !== void 0 ? _initialState$paginat : propsPaginationModel === null || propsPaginationModel === void 0 ? void 0 : propsPaginationModel.pageSize) !== null && _ref4 !== void 0 ? _ref4 : typeof (pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : pageSizeOptions[0]) === 'number' ? pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : pageSizeOptions[0] : pageSizeOptions === null || pageSizeOptions === void 0 ? void 0 : (_pageSizeOptions$ = pageSizeOptions[0]) === null || _pageSizeOptions$ === void 0 ? void 0 : _pageSizeOptions$.value) !== null && _ref3 !== void 0 ? _ref3 : 100,
25942
- page: (_ref5 = (_initialState$paginat4 = initialState === null || initialState === void 0 ? void 0 : (_initialState$paginat5 = initialState.pagination) === null || _initialState$paginat5 === void 0 ? void 0 : (_initialState$paginat6 = _initialState$paginat5.paginationModel) === null || _initialState$paginat6 === void 0 ? void 0 : _initialState$paginat6.page) !== null && _initialState$paginat4 !== void 0 ? _initialState$paginat4 : propsPaginationModel === null || propsPaginationModel === void 0 ? void 0 : propsPaginationModel.page) !== null && _ref5 !== void 0 ? _ref5 : 0
25943
- });
25944
- const onPaginationModelChange = model => {
25945
- if (propsOnPaginationModelChange) {
25946
- propsOnPaginationModelChange(model, undefined);
25947
- } else {
25948
- setPaginationModel(model);
25949
- }
25950
- };
25951
- useEffect(() => {
25952
- if (propsPaginationModel) {
25953
- setPaginationModel(propsPaginationModel);
25954
- }
25955
- }, [propsPaginationModel]);
25956
26386
  const selectionStatus = useRef({
25957
26387
  type: 'none',
25958
26388
  numberOfSelectedRows: 0,
@@ -25983,8 +26413,6 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25983
26413
  }
25984
26414
  }
25985
26415
  }), [theme]);
25986
- const isStateful = propsIsStateful && useRouter;
25987
- const RenderedDataGrid = isStateful ? StatefulDataGrid : DataGridPro;
25988
26416
  return /*#__PURE__*/React__default.createElement(ThemeProvider$4, {
25989
26417
  value: {
25990
26418
  theme
@@ -25993,14 +26421,30 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
25993
26421
  theme: muiTheme
25994
26422
  }, /*#__PURE__*/React__default.createElement(StyledDataGrid, {
25995
26423
  ref: datagridRef,
25996
- className: classNames(DataGrid.className, className),
26424
+ className: classNames(StatefulDataGrid.className, className),
25997
26425
  $height: height
25998
- }, /*#__PURE__*/React__default.createElement(RenderedDataGrid, _extends$2({}, isStateful ? {
25999
- pinnedCustomColumns,
26000
- useRouter
26001
- } : {}, forwardedProps, {
26002
- rowCount: rowCount,
26426
+ }, /*#__PURE__*/React__default.createElement(DataGridPro, _extends$2({}, forwardedProps, {
26003
26427
  apiRef: apiRef,
26428
+ columns: columns,
26429
+ columnVisibilityModel: columnVisibilityModel,
26430
+ filterModel: filterModel,
26431
+ onColumnVisibilityModelChange: onColumnVisibilityModelChange,
26432
+ onFilterModelChange: onFilterModelChange,
26433
+ onPaginationModelChange: onPaginationModelChange,
26434
+ onPinnedColumnsChange: onPinnedColumnsChange,
26435
+ onSortModelChange: onSortModelChange,
26436
+ paginationModel: paginationModel,
26437
+ pinnedColumns: pinnedColumns,
26438
+ sortModel: sortModel,
26439
+ pageSizeOptions: pageSizeOptions,
26440
+ onColumnWidthChange: onColumnWidthChange,
26441
+ initialState: initialState,
26442
+ isRowSelectable: isRowSelectable,
26443
+ pagination: pagination,
26444
+ paginationMode: paginationMode,
26445
+ keepNonExistentRowsSelected: paginationMode == 'server',
26446
+ rows: rows,
26447
+ rowCount: rowCount,
26004
26448
  autoHeight: autoHeight,
26005
26449
  checkboxSelectionVisibleOnly: Boolean(pagination),
26006
26450
  slots: _objectSpread2(_objectSpread2({
@@ -26043,30 +26487,32 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
26043
26487
  }, props))
26044
26488
  }, slots), {}, {
26045
26489
  toolbar: ToolbarWrapper,
26046
- pagination: props => pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, _extends$2({}, props, {
26047
- displaySelection: false,
26048
- displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
26049
- displayPagination: ['bottom', 'both'].includes(paginationPlacement),
26050
- selectionStatus: selectionStatus.current,
26051
- paginationModel: paginationModel,
26052
- onPaginationModelChange: onPaginationModelChange,
26053
- pageSizeOptions: pageSizeOptions,
26054
- paginationProps: paginationProps,
26055
- paginationMode: paginationMode,
26056
- rowCount: rowCount
26057
- })) : /*#__PURE__*/React__default.createElement(ControlledPagination, _extends$2({}, props, {
26058
- displaySelection: false,
26059
- displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
26060
- displayPagination: ['bottom', 'both'].includes(paginationPlacement),
26061
- selectionStatus: selectionStatus.current,
26062
- apiRef: apiRef,
26063
- isRowSelectable: isRowSelectable,
26064
- paginationModel: paginationModel,
26065
- onPaginationModelChange: onPaginationModelChange,
26066
- pageSizeOptions: pageSizeOptions,
26067
- paginationProps: paginationProps,
26068
- paginationMode: paginationMode
26069
- })) : null
26490
+ pagination: props => {
26491
+ return pagination ? paginationMode == 'server' ? /*#__PURE__*/React__default.createElement(ServerSideControlledPagination, _extends$2({}, props, {
26492
+ displaySelection: false,
26493
+ displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
26494
+ displayPagination: ['bottom', 'both'].includes(paginationPlacement),
26495
+ selectionStatus: selectionStatus.current,
26496
+ paginationModel: paginationModel,
26497
+ onPaginationModelChange: onPaginationModelChange,
26498
+ pageSizeOptions: pageSizeOptions,
26499
+ paginationProps: paginationProps,
26500
+ paginationMode: paginationMode,
26501
+ rowCount: rowCount
26502
+ })) : /*#__PURE__*/React__default.createElement(ControlledPagination, _extends$2({}, props, {
26503
+ displaySelection: false,
26504
+ displayRowsPerPage: ['bottom', 'both'].includes(paginationPlacement),
26505
+ displayPagination: ['bottom', 'both'].includes(paginationPlacement),
26506
+ selectionStatus: selectionStatus.current,
26507
+ apiRef: apiRef,
26508
+ isRowSelectable: isRowSelectable,
26509
+ paginationModel: paginationModel,
26510
+ onPaginationModelChange: onPaginationModelChange,
26511
+ pageSizeOptions: pageSizeOptions,
26512
+ paginationProps: paginationProps,
26513
+ paginationMode: paginationMode
26514
+ })) : null;
26515
+ }
26070
26516
  }),
26071
26517
  slotProps: _objectSpread2(_objectSpread2({}, slotProps), {}, {
26072
26518
  toolbar: _objectSpread2({
@@ -26087,53 +26533,34 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
26087
26533
  rowCount
26088
26534
  }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.toolbar)
26089
26535
  }),
26090
- filterModel: filterModel,
26091
- columnVisibilityModel: columnVisibilityModel,
26092
- pinnedColumns: pinnedColumns,
26093
- sortModel: sortModel,
26094
- initialState: initialState,
26095
- isRowSelectable: isRowSelectable,
26096
- onFilterModelChange: onFilterModelChange,
26097
- onColumnVisibilityModelChange: onColumnVisibilityModelChange
26098
- // onColumnWidthChange={onColumnWidthChange}
26099
- ,
26100
- onPinnedColumnsChange: onPinnedColumnsChange,
26101
- onSortModelChange: onSortModelChange,
26102
- pagination: pagination,
26103
- paginationMode: paginationMode,
26104
- keepNonExistentRowsSelected: paginationMode == 'server',
26105
- rows: rows,
26106
- pageSizeOptions: pageSizeOptions,
26107
- paginationModel: paginationModel,
26108
- onPaginationModelChange: onPaginationModelChange,
26109
26536
  rowSelectionModel: rowSelectionModel,
26110
26537
  onRowSelectionModelChange: (newSelectionModel, details) => {
26111
26538
  if (pagination && paginationMode != 'server') {
26112
- const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref6 => {
26539
+ const selectableRowsInPage = isRowSelectable ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef).filter(_ref => {
26113
26540
  let {
26114
26541
  model
26115
- } = _ref6;
26542
+ } = _ref;
26116
26543
  return isRowSelectable({
26117
26544
  row: model
26118
26545
  });
26119
- }).map(_ref7 => {
26546
+ }).map(_ref2 => {
26120
26547
  let {
26121
26548
  id
26122
- } = _ref7;
26549
+ } = _ref2;
26123
26550
  return id;
26124
26551
  }) : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);
26125
26552
  const numberOfSelectableRowsInPage = selectableRowsInPage.length;
26126
- const selectableRowsInTable = isRowSelectable ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref8 => {
26553
+ const selectableRowsInTable = isRowSelectable ? gridFilteredSortedRowEntriesSelector(apiRef).filter(_ref3 => {
26127
26554
  let {
26128
26555
  model
26129
- } = _ref8;
26556
+ } = _ref3;
26130
26557
  return isRowSelectable({
26131
26558
  row: model
26132
26559
  });
26133
- }).map(_ref9 => {
26560
+ }).map(_ref4 => {
26134
26561
  let {
26135
26562
  id
26136
- } = _ref9;
26563
+ } = _ref4;
26137
26564
  return id;
26138
26565
  }) : gridFilteredSortedRowIdsSelector(apiRef);
26139
26566
  const numberOfSelectableRowsInTable = selectableRowsInTable.length;
@@ -26178,8 +26605,8 @@ const DataGrid = /*#__PURE__*/forwardRef((props, ref) => {
26178
26605
  })
26179
26606
  })))));
26180
26607
  });
26181
- DataGrid.className = CLASSNAME$1;
26182
- DataGrid.displayName = COMPONENT_NAME$1;
26608
+ StatefulDataGrid.className = CLASSNAME$1;
26609
+ StatefulDataGrid.displayName = COMPONENT_NAME$1;
26183
26610
 
26184
26611
  const StyledTextCell = styled$3.div`
26185
26612
  align-items: center;
@@ -26239,5 +26666,5 @@ const TextCell = /*#__PURE__*/forwardRef((props, ref) => {
26239
26666
  TextCell.className = CLASSNAME;
26240
26667
  TextCell.displayName = COMPONENT_NAME;
26241
26668
 
26242
- export { CATEGORIES, CONTAINS_ANY_OF, CONTAINS_ANY_OF_I, DEFAULT_OPERATORS, DETAIL_PANEL_TOGGLE_COL_DEF, DIMENSION_MODEL_KEY, DOES_NOT_CONTAIN, DOES_NOT_EQUAL, DataGrid, ENDS_WITH_ANY_OF, FILTER_MODEL_KEY, FILTER_SEARCH_KEY, GridToolbarFilterSemanticField, IS_ANY_OF, IS_BETWEEN, IS_NOT_ANY_OF, PAGINATION_MODEL_KEY, PINNED_COLUMNS, SORT_MODEL_KEY, STARTS_WITH_ANY_OF, TextCell, Toolbar$2 as Toolbar, VISIBILITY_MODEL_KEY, areFilterModelsEquivalent, buildStorageKey, clearPreviousVersionStorage, customColumnTypes, decodeValue, encodeValue, getColumnVisibilityFromString, getCompletion, getFilterModelFromString, getFinalSearch, getGridNumericOperators, getGridStringArrayOperators, getGridStringOperators, getModelsParsedOrUpdateLocalStorage, getPinnedColumnsFromString, getRsNumberColumnType, getRsStringColumnType, getSearchParamsFromColumnVisibility, getSearchParamsFromFilterModel, getSearchParamsFromPinnedColumns, getSearchParamsFromSorting, getSearchParamsFromTab, getSortingFromString, isOperatorValueValid, isValueValid, numberOperatorDecoder, numberOperatorEncoder, operatorList, updateUrl, urlSearchParamsToString };
26669
+ export { BaseButton, BaseCheckbox, BaseIcon, BasePopper, BaseTextField, CATEGORIES, CONTAINS_ANY_OF, CONTAINS_ANY_OF_I, ControlledPagination, DEFAULT_OPERATORS, DETAIL_PANEL_TOGGLE_COL_DEF, DIMENSION_MODEL_KEY, DOES_NOT_CONTAIN, DOES_NOT_EQUAL, DataGrid, ENDS_WITH_ANY_OF, FILTER_MODEL_KEY, FILTER_SEARCH_KEY, GridToolbarFilterSemanticField, IS_ANY_OF, IS_BETWEEN, IS_NOT_ANY_OF, PAGINATION_MODEL_KEY, PINNED_COLUMNS, SORT_MODEL_KEY, STARTS_WITH_ANY_OF, ServerSideControlledPagination, StatefulDataGrid, TextCell, Toolbar$2 as Toolbar, ToolbarWrapper, VISIBILITY_MODEL_KEY, areFilterModelsEquivalent, buildStorageKey, clearPreviousVersionStorage, customColumnTypes, decodeValue, encodeValue, getColumnVisibilityFromString, getCompletion, getFilterModelFromString, getFinalSearch, getGridNumericOperators, getGridStringArrayOperators, getGridStringOperators, getModelsParsedOrUpdateLocalStorage, getPaginationFromString, getPinnedColumnsFromString, getRsNumberColumnType, getRsStringColumnType, getSearchParamsFromColumnVisibility, getSearchParamsFromFilterModel, getSearchParamsFromPagination, getSearchParamsFromPinnedColumns, getSearchParamsFromSorting, getSearchParamsFromTab, getSortingFromString, isOperatorValueValid, isValueValid, muiIconToDSIcon, numberOperatorDecoder, numberOperatorEncoder, onServerSideSelectionStatusChange, operatorList, updateUrl, urlSearchParamsToString };
26243
26670
  //# sourceMappingURL=index.js.map