@hazelcast/ui 1.3.1 → 1.3.2-next.5

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.
@@ -27,6 +27,7 @@ export declare type AutocompleteFieldProps = {
27
27
  options: AutocompleteFieldOption[];
28
28
  value?: string | null;
29
29
  placeholder?: string;
30
+ openMenuOnClick?: boolean;
30
31
  };
31
32
  declare type GetSelectedOptionFromValueProps = {
32
33
  value?: string | null;
@@ -54,7 +54,7 @@ export const highlightOptionText = (labelText, inputValue) => {
54
54
  }), key: val + `${i}` }, val)))
55
55
  : labelText;
56
56
  };
57
- export const AutocompleteField = ({ 'data-test': dataTest, className, disabled, error, errorClassName, isClearable, label, labelClassName, helperText, menuPortalTarget = 'body', name, onChange, onFocus, onBlur, onInputChange, options, required, value, placeholder = 'Search...', renderOption, ...rest }) => {
57
+ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled, error, errorClassName, isClearable, label, labelClassName, helperText, menuPortalTarget = 'body', name, onChange, onFocus, onBlur, onInputChange, options, required, value, placeholder = 'Search...', renderOption, openMenuOnClick = true, ...rest }) => {
58
58
  // when the user clicks on an input with the value, the value should disappear,
59
59
  // but then it should appear after the user selects something or blurs the input
60
60
  const [isValueHidden, setValueHidden] = useState(false);
@@ -78,7 +78,9 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
78
78
  if (onFocus) {
79
79
  onFocus(e);
80
80
  }
81
- setValueHidden(true);
81
+ if (!openMenuOnClick) {
82
+ setValueHidden(true);
83
+ }
82
84
  }, [onFocus]);
83
85
  const onBlurFn = React.useCallback((e) => {
84
86
  if (onBlur) {
@@ -130,6 +132,7 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
130
132
  ClearIndicator,
131
133
  Input,
132
134
  },
135
+ openMenuOnClick,
133
136
  ...rest,
134
137
  };
135
138
  return (React.createElement("div", { "data-test": dataTest, className: cn(styles.container, {
@@ -144,7 +147,7 @@ export const AutocompleteField = ({ 'data-test': dataTest, className, disabled,
144
147
  styles.menuContainer, className) },
145
148
  React.createElement(Label, { id: id, label: label, className: cn(styles.label, labelClassName) }),
146
149
  React.createElement("div", { className: styles.selectBlock },
147
- React.createElement(ReactSelect, { onInputChange: onInputChange, formatOptionLabel: formatOptionLabelFn, openMenuOnClick: false, styles: {
150
+ React.createElement(ReactSelect, { onInputChange: onInputChange, formatOptionLabel: formatOptionLabelFn, styles: {
148
151
  ...props.styles,
149
152
  singleValue: (base) => {
150
153
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../src/AutocompleteField.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../src/AutocompleteField.tsx"],"names":[],"mappings":"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"}
package/lib/Checkbox.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ChangeEvent, FC, FocusEvent, ReactElement, ReactText } from 'react';
1
+ import { ChangeEvent, FC, FocusEvent, ReactElement, ReactText, MouseEvent } from 'react';
2
2
  import { DataTestProp } from '@hazelcast/helpers';
3
3
  import { HelpProps } from './Help';
4
4
  declare type CheckboxCoreProps = {
@@ -6,6 +6,7 @@ declare type CheckboxCoreProps = {
6
6
  value?: string;
7
7
  onBlur?: (e: FocusEvent<HTMLInputElement>) => void;
8
8
  onChange: (e: ChangeEvent<HTMLInputElement>) => void;
9
+ onClick?: (e: MouseEvent<HTMLInputElement>) => void;
9
10
  error?: string;
10
11
  checked?: boolean;
11
12
  };
package/lib/Checkbox.js CHANGED
@@ -17,7 +17,7 @@ import { TruncatedText } from './TruncatedText';
17
17
  * - They can have a special indeterminate state, that represents a '3rd' value, usually used in tree structures, etc.
18
18
  */
19
19
  export const Checkbox = (props) => {
20
- const { checked, name, onChange, onBlur, className, classNameLabel, value, indeterminate = false, label, helperText, error, disabled = false, required, 'data-test': dataTest, } = props;
20
+ const { checked, name, onChange, onBlur, className, classNameLabel, value, indeterminate = false, label, helperText, error, disabled = false, required, 'data-test': dataTest, onClick, } = props;
21
21
  const inputRef = useRef(null);
22
22
  const id = useUID();
23
23
  let ariaChecked = checked ? 'true' : 'false';
@@ -32,7 +32,7 @@ export const Checkbox = (props) => {
32
32
  }, classNameLabel), htmlFor: id },
33
33
  label !== undefined && (React.createElement("div", { className: styles.name, "data-test": "input-checkbox-label" },
34
34
  React.createElement(TruncatedText, { text: label }))),
35
- React.createElement("input", { type: "checkbox", ref: inputRef, id: id, name: name, checked: !!checked, onChange: onChange, onBlur: onBlur, value: value, disabled: disabled, "aria-checked": ariaChecked, "aria-invalid": !!error, "aria-required": required, "aria-describedby": helperText && helpTooltipId(id), "aria-errormessage": error && errorId(id) }),
35
+ React.createElement("input", { type: "checkbox", ref: inputRef, id: id, name: name, checked: !!checked, onChange: onChange, onBlur: onBlur, onClick: onClick, value: value, disabled: disabled, "aria-checked": ariaChecked, "aria-invalid": !!error, "aria-required": required, "aria-describedby": helperText && helpTooltipId(id), "aria-errormessage": error && errorId(id) }),
36
36
  indeterminate ? React.createElement(Minus, { className: styles.checkmark }) : React.createElement(Check, { className: styles.checkmark }),
37
37
  helperText && React.createElement(Help, { parentId: id, helperText: helperText, className: styles.helperText })),
38
38
  React.createElement(Error, { truncated: true, error: error, className: styles.errorContainer, inputId: id })));
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"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"}
@@ -8,8 +8,8 @@ export const FieldHeader = (props) => {
8
8
  if (showAriaLabel) {
9
9
  return null;
10
10
  }
11
- return (React.createElement("div", { className: styles.root },
12
- label && (React.createElement(Label, { id: id, label: label, "data-test": dataTest ? `${dataTest}-label` : undefined, className: cn(styles.label, { [styles.small]: size === 'small' }, labelClassName) })),
13
- label && helperText && (React.createElement(Help, { parentId: id, helperText: helperText, className: styles.helperText, "data-test": dataTest ? `${dataTest}-helperText` : undefined }))));
11
+ return label ? (React.createElement("div", { className: styles.root },
12
+ React.createElement(Label, { id: id, label: label, "data-test": dataTest ? `${dataTest}-label` : undefined, className: cn(styles.label, { [styles.small]: size === 'small' }, labelClassName) }),
13
+ helperText && (React.createElement(Help, { parentId: id, helperText: helperText, className: styles.helperText, "data-test": dataTest ? `${dataTest}-helperText` : undefined })))) : null;
14
14
  };
15
15
  //# sourceMappingURL=FieldHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FieldHeader.js","sourceRoot":"","sources":["../src/FieldHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AAGxC,OAAO,MAAM,MAAM,2BAA2B,CAAA;AAY9C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;IACrD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAE9G,IAAI,aAAa,EAAE;QACjB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACxB,KAAK,IAAI,CACR,oBAAC,KAAK,IACJ,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,eACD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,SAAS,EACrD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,EAAE,cAAc,CAAC,GACjF,CACH;QACA,KAAK,IAAI,UAAU,IAAI,CACtB,oBAAC,IAAI,IACH,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,UAAU,eACjB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC,CAAC,SAAS,GAC1D,CACH,CACG,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FieldHeader.js","sourceRoot":"","sources":["../src/FieldHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AAGxC,OAAO,MAAM,MAAM,2BAA2B,CAAA;AAY9C,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAE,EAAE;IACrD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,GAAG,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAE9G,IAAI,aAAa,EAAE;QACjB,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CACb,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI;QACzB,oBAAC,KAAK,IACJ,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,eACD,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,SAAS,EACrD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,KAAK,OAAO,EAAE,EAAE,cAAc,CAAC,GACjF;QACD,UAAU,IAAI,CACb,oBAAC,IAAI,IACH,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,UAAU,eACjB,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,aAAa,CAAC,CAAC,CAAC,SAAS,GAC1D,CACH,CACG,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAA"}
package/lib/Link.d.ts CHANGED
@@ -4,6 +4,7 @@ export declare type LinkKind = 'primary' | 'secondary';
4
4
  declare const sizes: {
5
5
  normal: string;
6
6
  small: string;
7
+ inherit: string;
7
8
  };
8
9
  declare type AnchorAttributes = AnchorHTMLAttributes<HTMLAnchorElement>;
9
10
  declare type IconProps = {
@@ -43,7 +44,7 @@ export declare type LinkProps = IconProps & {
43
44
  *
44
45
  * ### General Info
45
46
  * - There are 2 kinds (colors) of Link available - primary (default) and secondary.
46
- * - There are 2 sizes of Link available - normal (default) and small.
47
+ * - There are 3 sizes of Link available - normal (default), small and inherit.
47
48
  * - The default state of all types of link is underlined and on hover it has no underline.
48
49
  * - Link can be used as a stand-alone component with right chevron icon.
49
50
  * - You can change underlying semantics with a component property. Typescript will guard you on providing other properties related to the component type.
package/lib/Link.js CHANGED
@@ -5,6 +5,7 @@ import styles from './Link.module.scss';
5
5
  const sizes = {
6
6
  normal: styles.normal,
7
7
  small: styles.small,
8
+ inherit: styles.inherit,
8
9
  };
9
10
  /**
10
11
  * ### Purpose
@@ -13,7 +14,7 @@ const sizes = {
13
14
  *
14
15
  * ### General Info
15
16
  * - There are 2 kinds (colors) of Link available - primary (default) and secondary.
16
- * - There are 2 sizes of Link available - normal (default) and small.
17
+ * - There are 3 sizes of Link available - normal (default), small and inherit.
17
18
  * - The default state of all types of link is underlined and on hover it has no underline.
18
19
  * - Link can be used as a stand-alone component with right chevron icon.
19
20
  * - You can change underlying semantics with a component property. Typescript will guard you on providing other properties related to the component type.
@@ -21,7 +22,7 @@ const sizes = {
21
22
  export const Link = forwardRef(({ component = 'a', kind = 'primary', size = 'normal', bold = false, icon, ariaLabel, iconClassName, href, rel = 'noopener', target = '_self', type = 'button', onClick, className, children, }, ref) => {
22
23
  const relFinal = Array.isArray(rel) ? rel.join(' ') : rel;
23
24
  const commonProps = {
24
- className: cn(styles[size], {
25
+ className: cn(styles.link, styles[size], {
25
26
  // kind
26
27
  [styles.primary]: kind === 'primary',
27
28
  [styles.secondary]: kind === 'secondary',
package/lib/Link.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA8C,UAAU,EAAkD,MAAM,OAAO,CAAA;AAErI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAIvC,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,KAAK;CACpB,CAAA;AA6DD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EACE,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,KAAK,EACZ,IAAI,EACJ,SAAS,EACT,aAAa,EACb,IAAI,EACJ,GAAG,GAAG,UAAU,EAChB,MAAM,GAAG,OAAO,EAChB,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAEzD,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,IAAI,CAAC,EACZ;YACE,OAAO;YACP,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,SAAS;YACpC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,WAAW;YACxC,OAAO;YACP,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI;SACpB,EACD,SAAS,CACV;QACD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO;KACjB,CAAA;IAED,MAAM,aAAa,GACjB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAClB,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,GAAI,CAC/H,CAAC,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CACzB,8BAAO,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAA0C;QAC/F,QAAQ;QACR,aAAa,CACZ,CACL,CAAC,CAAC,CAAC,CACF,mCAAY,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAA0C;QACjF,QAAQ;QACR,aAAa,CACP,CACV,CAAA;AACH,CAAC,CACF,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA"}
1
+ {"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAA8C,UAAU,EAAkD,MAAM,OAAO,CAAA;AAErI,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAIvC,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC,KAAK;IACnB,OAAO,EAAE,MAAM,CAAC,OAAO;CACxB,CAAA;AA6DD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EACE,SAAS,GAAG,GAAG,EACf,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,IAAI,GAAG,KAAK,EACZ,IAAI,EACJ,SAAS,EACT,aAAa,EACb,IAAI,EACJ,GAAG,GAAG,UAAU,EAChB,MAAM,GAAG,OAAO,EAChB,IAAI,GAAG,QAAQ,EACf,OAAO,EACP,SAAS,EACT,QAAQ,GACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAEzD,MAAM,WAAW,GAAG;QAClB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,IAAI,CAAC,EACZ;YACE,OAAO;YACP,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,SAAS;YACpC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,KAAK,WAAW;YACxC,OAAO;YACP,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI;SACpB,EACD,SAAS,CACV;QACD,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO;KACjB,CAAA;IAED,MAAM,aAAa,GACjB,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,CAClB,oBAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,GAAI,CAC/H,CAAC,CAAC,CAAC,SAAS,CAAA;IAEf,OAAO,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,CACzB,8BAAO,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAA0C;QAC/F,QAAQ;QACR,aAAa,CACZ,CACL,CAAC,CAAC,CAAC,CACF,mCAAY,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAA0C;QACjF,QAAQ;QACR,aAAa,CACP,CACV,CAAA;AACH,CAAC,CACF,CAAA;AACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA"}
@@ -34,16 +34,26 @@
34
34
  }
35
35
  }
36
36
 
37
- .normal {
37
+ .link {
38
38
  @include link;
39
+ }
40
+
41
+ .normal {
39
42
  @include c.typographyBodyNormal;
40
43
  }
41
44
 
42
45
  .small {
43
- @include link;
44
46
  @include c.typographyBodySmall;
45
47
  }
46
48
 
49
+ .inherit {
50
+ font-family: inherit;
51
+ font-size: inherit;
52
+ letter-spacing: inherit;
53
+ line-height: inherit;
54
+ font-weight: inherit;
55
+ }
56
+
47
57
  .bold {
48
58
  @include c.typographyBodyWeight('bold');
49
59
  }
@@ -1,4 +1,4 @@
1
- import { FC, MouseEvent, KeyboardEvent } from 'react';
1
+ import { FC, MouseEvent, KeyboardEvent, DragEvent } from 'react';
2
2
  import { TableHeaderProps, TableResizerProps } from 'react-table';
3
3
  export declare type HeaderProps = {
4
4
  /**
@@ -15,5 +15,8 @@ export declare type HeaderProps = {
15
15
  isResizing: boolean;
16
16
  getResizerProps: (props?: Partial<TableResizerProps>) => TableResizerProps;
17
17
  isLastHeader: boolean;
18
+ index: number;
19
+ onDragStart?: (e: DragEvent) => void;
20
+ onDrop?: (e: DragEvent, index: number) => void;
18
21
  } & Omit<TableHeaderProps, 'key'>;
19
22
  export declare const Header: FC<HeaderProps>;
@@ -1,10 +1,14 @@
1
- import React, { useMemo, useCallback } from 'react';
2
- import { ChevronDown, ChevronUp } from 'react-feather';
1
+ import React, { useMemo, useCallback, useRef } from 'react';
2
+ import { ChevronDown, ChevronUp, Menu } from 'react-feather';
3
3
  import cn from 'classnames';
4
4
  import { Icon } from '../Icon';
5
5
  import { keyIsOneOf } from '../utils/keyboard';
6
6
  import styles from './Header.module.scss';
7
- export const Header = ({ align = 'left', colSpan, children, canSort, isSorted, isSortedDesc, canResize, isResizing, getResizerProps, isLastHeader, onClick, style, className, role, }) => {
7
+ export const Header = ({ align = 'left', colSpan, children, canSort, isSorted, isSortedDesc, canResize, isResizing, getResizerProps, isLastHeader, onClick, style, className, role, index, onDragStart, onDrop, }) => {
8
+ const rootRef = useRef(null);
9
+ const isDragStarterRef = useRef(false);
10
+ const counterRef = useRef(0);
11
+ const draggable = !!onDrop && !!onDragStart;
8
12
  let ariaSort;
9
13
  if (isSorted) {
10
14
  ariaSort = isSortedDesc ? 'descending' : 'ascending';
@@ -13,6 +17,7 @@ export const Header = ({ align = 'left', colSpan, children, canSort, isSorted, i
13
17
  [styles.left]: align === 'left',
14
18
  [styles.right]: align === 'right',
15
19
  }), icon: !isSorted ? ChevronUp : isSortedDesc ? ChevronDown : ChevronUp, ariaLabel: !isSorted ? 'Not Sorted' : isSortedDesc ? 'Descending' : 'Ascending', size: "smallMedium" })), [align, isSorted, isSortedDesc]);
20
+ const DraggableIcon = (React.createElement(Icon, { icon: Menu, size: "small", ariaLabel: "draggable-indicator", className: cn(styles.dragIcon, { [styles.dragIconRight]: align === 'right' }) }));
16
21
  const onKeyPress = useCallback((event) => {
17
22
  event.preventDefault();
18
23
  if (keyIsOneOf(event, 'Enter') && onClick) {
@@ -25,16 +30,50 @@ export const Header = ({ align = 'left', colSpan, children, canSort, isSorted, i
25
30
  onKeyPress: onClick ? onKeyPress : undefined,
26
31
  onClick,
27
32
  };
28
- return (React.createElement("div", { "data-test": "table-header-container", className: cn(styles.container, className), style: style, role: role, "aria-colspan": colSpan, "aria-sort": ariaSort },
29
- React.createElement("div", { "data-test": "table-header-content", className: cn(styles.th, {
33
+ return (React.createElement("div", { ref: rootRef, "data-test": "table-header-container", className: cn(styles.container, className), style: style, role: role, "aria-colspan": colSpan, "aria-sort": ariaSort },
34
+ React.createElement("div", { draggable: draggable, "data-test": "table-header-content", className: cn(styles.th, {
30
35
  [styles.sortable]: canSort,
31
36
  [styles.alignLeft]: align === 'left',
32
37
  [styles.alignRight]: align === 'right',
33
38
  [styles.alignCenter]: align === 'center',
34
- }), ...buttonRoleProps },
39
+ }), onDragStart: draggable
40
+ ? (e) => {
41
+ e.dataTransfer.setData('text/plain', String(index));
42
+ isDragStarterRef.current = true;
43
+ onDragStart && onDragStart(e);
44
+ }
45
+ : undefined, onDragEnd: () => {
46
+ isDragStarterRef.current = false;
47
+ }, onDragOver: (e) => e.preventDefault(), onDragEnter: draggable
48
+ ? (e) => {
49
+ e.preventDefault();
50
+ if (!isDragStarterRef.current && rootRef.current && counterRef.current === 0) {
51
+ rootRef.current.classList.add(styles.dragOver);
52
+ }
53
+ counterRef.current++;
54
+ }
55
+ : undefined, onDragLeave: draggable
56
+ ? () => {
57
+ counterRef.current--;
58
+ if (rootRef.current && counterRef.current === 0) {
59
+ rootRef.current.classList.remove(styles.dragOver);
60
+ }
61
+ }
62
+ : undefined, onDrop: draggable
63
+ ? (e) => {
64
+ onDrop && onDrop(e, index);
65
+ if (rootRef.current) {
66
+ rootRef.current.classList.remove(styles.dragOver);
67
+ }
68
+ isDragStarterRef.current = false;
69
+ counterRef.current = 0;
70
+ }
71
+ : undefined, ...buttonRoleProps },
72
+ draggable && align === 'right' && DraggableIcon,
35
73
  canSort && align === 'right' && Chevron,
36
74
  children,
37
- canSort && (align === 'left' || align === 'center') && Chevron),
75
+ canSort && (align === 'left' || align === 'center') && Chevron,
76
+ draggable && (align === 'left' || align === 'center') && DraggableIcon),
38
77
  canResize && !isLastHeader && (React.createElement("div", { "data-test": "table-header-column-resizer-container", className: styles.resizer, ...getResizerProps() },
39
78
  React.createElement("div", { "data-test": "table-header-column-resizer", className: cn(styles.separator, {
40
79
  [styles.resizing]: isResizing,
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Table/Header.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Table/Header.tsx"],"names":[],"mappings":"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"}
@@ -59,6 +59,12 @@
59
59
  &.alignCenter {
60
60
  justify-content: center;
61
61
  }
62
+
63
+ &[draggable='true'] {
64
+ /* doiuse-disable css3-cursors-newer */
65
+ cursor: grabbing;
66
+ /* doiuse-enable css3-cursors-newer */
67
+ }
62
68
  }
63
69
  }
64
70
 
@@ -90,3 +96,16 @@
90
96
  background-color: c.$colorPrimary;
91
97
  }
92
98
  }
99
+
100
+ .dragOver {
101
+ @include h.outlineSimple;
102
+ }
103
+
104
+ .dragIcon {
105
+ margin-left: c.$grid * 2;
106
+ }
107
+
108
+ .dragIconRight {
109
+ margin-left: 0;
110
+ margin-right: c.$grid * 2;
111
+ }
@@ -1,12 +1,15 @@
1
1
  import { DataTestProp } from '@hazelcast/helpers';
2
- import { AnchorHTMLAttributes, FC, ReactChild, ReactElement } from 'react';
3
- import { TableOptions, Row as RowType, Cell as CellType, Column as ColumnType } from 'react-table';
2
+ import { AnchorHTMLAttributes, FC, ReactChild, ReactElement, ReactNode } from 'react';
3
+ import { TableOptions, Row as RowType, Cell as CellType, Column as ColumnType, TableState, IdType } from 'react-table';
4
4
  import { PaginationProps } from '../Pagination';
5
5
  import { CellProps } from './Cell';
6
6
  import { RowProps } from './Row';
7
- export type { Accessor, Column, Cell, Renderer, Row, CellProps, HeaderGroup, TableInstance } from 'react-table';
7
+ export type { Accessor, Cell, Renderer, Row, CellProps, HeaderGroup, TableInstance } from 'react-table';
8
+ export declare type Column<T extends object> = ColumnType<T> & {
9
+ canHide?: boolean;
10
+ };
8
11
  declare module 'react-table' {
9
- interface TableOptions<D extends object = {}> extends UsePaginationOptions<D>, UseSortByOptions<D>, UseFiltersOptions<D>, UseRowSelectOptions<D>, UseGroupByOptions<D>, UseResizeColumnsOptions<D>, Record<string, any> {
12
+ interface TableOptions<D extends object = {}> extends UsePaginationOptions<D & UseExpandedRowProps<D>>, UseSortByOptions<D>, UseFiltersOptions<D>, UseRowSelectOptions<D>, UseGroupByOptions<D>, UseResizeColumnsOptions<D>, Record<string, any> {
10
13
  }
11
14
  interface Hooks<D extends object = {}> extends UseSortByHooks<D>, UseRowSelectHooks<D>, UseGroupByHooks<D> {
12
15
  }
@@ -22,7 +25,7 @@ declare module 'react-table' {
22
25
  }
23
26
  interface Cell<D extends object = {}, V = any> extends UseGroupByCellProps<D>, UseRowStateCellProps<D> {
24
27
  }
25
- interface Row<D extends object = {}> extends UseGroupByRowProps<D>, UseRowSelectRowProps<D> {
28
+ interface Row<D extends object = {}> extends UseGroupByRowProps<D>, UseRowSelectRowProps<D>, UseExpandedRowProps<D> {
26
29
  }
27
30
  }
28
31
  export declare type PaginationOptions = Partial<Pick<PaginationProps, 'pageSizeOptions'>>;
@@ -56,6 +59,7 @@ declare type CustomTableRowClickProps<D extends object> = {
56
59
  };
57
60
  declare type CustomTableProps<D extends object> = {
58
61
  loading?: boolean;
62
+ overlayLoading?: boolean;
59
63
  className?: string;
60
64
  hideHeader?: boolean;
61
65
  searchValue?: string;
@@ -70,9 +74,19 @@ declare type CustomTableProps<D extends object> = {
70
74
  autoResetGlobalFilter?: boolean;
71
75
  pageIndex?: number;
72
76
  onPageChange?: (newPage: number) => void;
77
+ onRowSelect?: (ids: string[]) => void;
78
+ columnsOrdering?: boolean;
79
+ storageKey?: string;
80
+ children?: (table: ReactElement, toggleColumnsControl: ReactElement) => ReactElement;
81
+ renderRowSubComponent?: (props: RowType<D>) => ReactNode;
73
82
  } & CustomTableRowClickProps<D> & DataTestProp;
74
83
  export declare type TableProps<D extends object> = TableOptions<D> & ExtendedPaginationProps & ControlledPaginationProps & CustomTableProps<D>;
75
84
  export type { ColumnType, RowType, CellType };
85
+ export declare const selectionColumnId = "selection";
86
+ export declare type TableLocalState<T extends object> = (TableState<T> & {
87
+ columnOrder: IdType<T>[];
88
+ columns: Column<T>[];
89
+ }) | null;
76
90
  /**
77
91
  * ### Purpose
78
92
  * Table component allows to arrange data in rows and columns.
@@ -83,4 +97,4 @@ export type { ColumnType, RowType, CellType };
83
97
  * - Rows can be clickable. If you supply Table with `getHref` function rows will become <a> tags!
84
98
  * - Is able to resize columns out of the box
85
99
  */
86
- export declare const Table: <D extends object>({ "data-test": dataTest, autoResetSortBy, columns, data, defaultColumn, disableSortBy, onPaginationChange, manualPagination, onRenderedContentChange, autoResetPage, hidePagination, pageCount: controlledPageCount, defaultPageSize, paginationOptions, onRowClick, getHref, AnchorComponent, getCustomRowProps, getCustomCellProps, loading, noDataTitle, pageIndex: incomingPageIndex, initialState, className, headerClassName, contentClassName, footerClassName, searchValue, hideHeader, autoResetGlobalFilter, onPageChange, }: TableProps<D>) => ReactElement;
100
+ export declare const Table: <D extends object>({ "data-test": dataTest, autoResetSortBy, columns: propColumns, data, defaultColumn, disableSortBy, onPaginationChange, manualPagination, onRenderedContentChange, autoResetPage, hidePagination, pageCount: controlledPageCount, defaultPageSize, paginationOptions, onRowClick, getHref, AnchorComponent, getCustomRowProps, getCustomCellProps, loading, noDataTitle, pageIndex: incomingPageIndex, initialState, className, headerClassName, contentClassName, footerClassName, searchValue, hideHeader, autoResetGlobalFilter, onPageChange, overlayLoading, onRowSelect, columnsOrdering, autoResetResize, autoResetSelectedRows, children, storageKey, renderRowSubComponent, }: TableProps<D>) => ReactElement;
@@ -1,7 +1,7 @@
1
- import React, { useEffect } from 'react';
1
+ import React, { useCallback, useEffect, useRef, useMemo, } from 'react';
2
2
  import cn from 'classnames';
3
- import { useTable, usePagination, useSortBy, useAsyncDebounce, useResizeColumns, useFlexLayout, useGlobalFilter, } from 'react-table';
4
- import { AlertTriangle } from 'react-feather';
3
+ import { useTable, usePagination, useSortBy, useAsyncDebounce, useResizeColumns, useFlexLayout, useGlobalFilter, useColumnOrder, useExpanded, } from 'react-table';
4
+ import { AlertTriangle, ChevronDown, ChevronUp } from 'react-feather';
5
5
  import { Pagination } from '../Pagination';
6
6
  import { Cell } from './Cell';
7
7
  import { EnhancedCellRenderer, EnhancedHeaderFooterRenderer } from './EnhancedRenderers';
@@ -10,6 +10,8 @@ import { HeaderRow, LinkRow, Row } from './Row';
10
10
  import { Loader } from '../Loader';
11
11
  import { EmptyState } from '../EmptyState';
12
12
  import { usePrevious } from '../hooks/usePrevious';
13
+ import { useTableCustomizableColumns } from '../hooks';
14
+ import { Icon } from '../Icon';
13
15
  import styles from './Table.module.scss';
14
16
  import styleConsts from '../../styles/constants/export.module.scss';
15
17
  const column = {
@@ -18,6 +20,34 @@ const column = {
18
20
  width: Number(styleConsts.tableColumnWidth),
19
21
  maxWidth: Number(styleConsts.tableColumnMaxWidth), // maxWidth is only used as a limit for resizing
20
22
  };
23
+ export const selectionColumnId = 'selection';
24
+ const readStorage = (key) => {
25
+ try {
26
+ const data = window.localStorage.getItem(key);
27
+ if (data) {
28
+ return JSON.parse(data);
29
+ }
30
+ return null;
31
+ }
32
+ catch (e) {
33
+ return null;
34
+ }
35
+ };
36
+ const writeStorage = (key, value) => {
37
+ try {
38
+ const state = readStorage(key);
39
+ const data = JSON.stringify({ ...(state || {}), ...value });
40
+ if (data) {
41
+ window.localStorage.setItem(key, data);
42
+ }
43
+ }
44
+ catch (e) {
45
+ return null;
46
+ }
47
+ };
48
+ const clearStorage = (key) => {
49
+ window.localStorage.removeItem(key);
50
+ };
21
51
  /**
22
52
  * ### Purpose
23
53
  * Table component allows to arrange data in rows and columns.
@@ -29,12 +59,51 @@ const column = {
29
59
  * - Is able to resize columns out of the box
30
60
  */
31
61
  // Inspiration here: https://react-table.tanstack.com/docs/examples/basic
32
- export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns, data, defaultColumn = column, disableSortBy, onPaginationChange, manualPagination, onRenderedContentChange, autoResetPage = false, hidePagination = false, pageCount: controlledPageCount, defaultPageSize = 10, paginationOptions, onRowClick, getHref, AnchorComponent, getCustomRowProps, getCustomCellProps, loading, noDataTitle = 'The table is empty', pageIndex: incomingPageIndex, initialState = { pageIndex: incomingPageIndex || 0, pageSize: defaultPageSize }, className = '', headerClassName = '', contentClassName = '', footerClassName = '', searchValue, hideHeader, autoResetGlobalFilter = false, onPageChange, }) => {
62
+ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns: propColumns, data, defaultColumn = column, disableSortBy, onPaginationChange, manualPagination, onRenderedContentChange, autoResetPage = false, hidePagination = false, pageCount: controlledPageCount, defaultPageSize = 10, paginationOptions, onRowClick, getHref, AnchorComponent, getCustomRowProps, getCustomCellProps, loading, noDataTitle = 'The table is empty', pageIndex: incomingPageIndex, initialState = { pageIndex: incomingPageIndex || 0, pageSize: defaultPageSize }, className = '', headerClassName = '', contentClassName = '', footerClassName = '', searchValue, hideHeader, autoResetGlobalFilter = false, onPageChange, overlayLoading, onRowSelect, columnsOrdering = false, autoResetResize = false, autoResetSelectedRows = false, children, storageKey, renderRowSubComponent, }) => {
33
63
  var _a;
64
+ const didMountRef = useRef(false);
65
+ const draggedColumnRef = useRef(null);
34
66
  const previousIncomingPageIndex = usePrevious(incomingPageIndex);
35
- const { getTableProps, headerGroups, footerGroups, prepareRow, page, canPreviousPage, canNextPage, pageCount, gotoPage, nextPage, previousPage, setPageSize,
67
+ // Debounce our `fetchData` call for 200ms.
68
+ // We can use non-null assertion here since we're checking existence of `fetchData` in the `useEffect` below
69
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
70
+ const columns = useMemo(() => {
71
+ if (renderRowSubComponent || data.some((item) => 'subRows' in item)) {
72
+ return [
73
+ {
74
+ width: 60,
75
+ id: 'expander',
76
+ disableResizing: true,
77
+ Cell: ({ row }) => {
78
+ return row.canExpand || renderRowSubComponent ? (React.createElement("div", { tabIndex: 0, role: "button", "data-test": "row-expander", className: styles.expander, ...row.getToggleRowExpandedProps() },
79
+ React.createElement(Icon, { icon: row.isExpanded ? ChevronUp : ChevronDown, ariaLabel: "row-expander" }))) : null;
80
+ },
81
+ },
82
+ ...propColumns,
83
+ ];
84
+ }
85
+ return propColumns;
86
+ }, [propColumns, data, renderRowSubComponent]);
87
+ const savedInitialState = useMemo(() => {
88
+ var _a;
89
+ const state = storageKey ? readStorage(storageKey) : null;
90
+ if (storageKey && state) {
91
+ // delete saved state if columns are changed
92
+ if (state.columns &&
93
+ (state.columns.length !== columns.length ||
94
+ ((_a = state.columns) === null || _a === void 0 ? void 0 : _a.every(({ id, accessor }) => columns.find((column) => (id && id in column) || (typeof accessor === 'string' && accessor in column)))))) {
95
+ clearStorage(storageKey);
96
+ return {};
97
+ }
98
+ }
99
+ return state;
100
+ //eslint-disable-next-line react-hooks/exhaustive-deps
101
+ }, [storageKey]);
102
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
103
+ const onPaginationChangeDebounced = useAsyncDebounce(onPaginationChange, 200);
104
+ const { getTableProps, headerGroups, footerGroups, prepareRow, page, visibleColumns, allColumns, canPreviousPage, canNextPage, pageCount, gotoPage, nextPage, previousPage, setPageSize,
36
105
  // Get the state from the instance
37
- state: { pageIndex, pageSize, columnResizing }, setGlobalFilter, } = useTable({
106
+ state: { pageIndex, pageSize, columnResizing, selectedRowIds }, setGlobalFilter, setHiddenColumns, setColumnOrder, } = useTable({
38
107
  columns,
39
108
  data,
40
109
  disableSortBy,
@@ -42,7 +111,20 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
42
111
  // https://react-table.tanstack.com/docs/faq#how-do-i-stop-my-table-state-from-automatically-resetting-when-my-data-changes
43
112
  autoResetSortBy,
44
113
  // Pass our hoisted table state
45
- initialState,
114
+ initialState: useMemo(() => ({
115
+ ...(savedInitialState || {}),
116
+ ...initialState,
117
+ }), [initialState, savedInitialState]),
118
+ useControlledState: useCallback((state) => {
119
+ var _a, _b;
120
+ if (storageKey) {
121
+ writeStorage(storageKey, {
122
+ ...state,
123
+ columnOrder: (_b = (_a = state) === null || _a === void 0 ? void 0 : _a.columnOrder) === null || _b === void 0 ? void 0 : _b.filter((id) => id !== selectionColumnId),
124
+ });
125
+ }
126
+ return state;
127
+ }, [storageKey]),
46
128
  // Tell the usePagination hook that we'll handle our own data fetching
47
129
  manualPagination: manualPagination,
48
130
  // This means we'll also have to provide our own pageCount
@@ -50,11 +132,28 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
50
132
  autoResetPage,
51
133
  defaultColumn,
52
134
  autoResetGlobalFilter,
53
- }, useGlobalFilter, useSortBy, usePagination, useFlexLayout, useResizeColumns);
54
- // Debounce our `fetchData` call for 200ms.
55
- // We can use non-null assertion here since we're checking existence of `fetchData` in the `useEffect` below
56
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
57
- const onPaginationChangeDebounced = useAsyncDebounce(onPaginationChange, 200);
135
+ autoResetResize,
136
+ autoResetSelectedRows,
137
+ paginateExpandedRows: false,
138
+ }, useGlobalFilter, useSortBy, useExpanded, usePagination, useFlexLayout, useResizeColumns, useColumnOrder);
139
+ const toggleColumnsControl = useTableCustomizableColumns({
140
+ columns: allColumns,
141
+ visibleColumns,
142
+ setHiddenColumns,
143
+ });
144
+ // drag and drop
145
+ const onDragStart = useCallback((e) => {
146
+ draggedColumnRef.current = Number(e.dataTransfer.getData('text/plain'));
147
+ }, []);
148
+ const onDrop = useCallback((e, columnIndex) => {
149
+ if (draggedColumnRef.current !== null && columnIndex !== draggedColumnRef.current) {
150
+ const newColumns = [...visibleColumns];
151
+ newColumns[columnIndex] = visibleColumns[draggedColumnRef.current];
152
+ newColumns[draggedColumnRef.current] = visibleColumns[columnIndex];
153
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
154
+ setColumnOrder(newColumns.map(({ id, accessor }) => (id || accessor)));
155
+ }
156
+ }, [visibleColumns, setColumnOrder]);
58
157
  // Listen for changes in pagination and use the state to fetch new data. This is a recommended way to fetch new data: https://react-table.tanstack.com/docs/faq#how-can-i-use-the-table-state-to-fetch-new-data
59
158
  useEffect(() => {
60
159
  if (onPaginationChange) {
@@ -88,6 +187,17 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
88
187
  gotoPage(incomingPageIndex);
89
188
  }
90
189
  }, [gotoPage, incomingPageIndex, previousIncomingPageIndex]);
190
+ useEffect(() => {
191
+ if (onRowSelect) {
192
+ onRowSelect(Object.keys(selectedRowIds));
193
+ }
194
+ }, [onRowSelect, selectedRowIds]);
195
+ useEffect(() => {
196
+ if (storageKey && didMountRef.current) {
197
+ clearStorage(storageKey);
198
+ }
199
+ didMountRef.current = true;
200
+ }, [columns, storageKey]);
91
201
  const hasData = data.length > 0;
92
202
  // If at least one of the columns has footer then we display the footer row
93
203
  const hasFooter = !loading && hasData && columns.some((col) => !!col.Footer);
@@ -97,7 +207,7 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
97
207
  const cellIndexOffset = pageSize * pageIndex + headerIndex;
98
208
  // Total row count.
99
209
  const rowCount = data.length + headerIndex + (hasFooter ? 1 : 0);
100
- return (React.createElement("div", { "data-test": dataTest !== null && dataTest !== void 0 ? dataTest : 'table-wrapper', className: className },
210
+ const content = (React.createElement("div", { "data-test": dataTest !== null && dataTest !== void 0 ? dataTest : 'table-wrapper', className: className },
101
211
  React.createElement("div", { className: cn(styles.container, {
102
212
  [styles.spaceBottom]: !hidePagination,
103
213
  }) },
@@ -106,34 +216,44 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
106
216
  const { key: headerGroupKey, ...restHeaderGroupProps } = headerGroup.getHeaderGroupProps();
107
217
  return (React.createElement(HeaderRow, { key: headerGroupKey, ...restHeaderGroupProps, ariaRowIndex: headerIndex }, headerGroup.headers.map((column, i) => {
108
218
  const { key: columnKey, ...restHeaderProps } = column.getHeaderProps(column.getSortByToggleProps());
109
- return (React.createElement(Header, { key: columnKey, align: column.align, canSort: column.canSort, isSorted: column.isSorted, isSortedDesc: column.isSortedDesc, isLastHeader: headerGroup.headers.length === i + 1, canResize: column.canResize, isResizing: column.isResizing, getResizerProps: column.getResizerProps, ...restHeaderProps },
219
+ const isDraggable = columnsOrdering && column.id !== 'expander';
220
+ return (React.createElement(Header, { index: i, key: columnKey, align: column.align, canSort: column.canSort, isSorted: column.isSorted, isSortedDesc: column.isSortedDesc, isLastHeader: headerGroup.headers.length === i + 1, canResize: column.canResize, isResizing: column.isResizing, getResizerProps: column.getResizerProps, onDrop: isDraggable ? onDrop : undefined, onDragStart: onDragStart, ...restHeaderProps },
110
221
  React.createElement(EnhancedHeaderFooterRenderer, { column: column, columnResizing: columnResizing, type: "Header" })));
111
222
  })));
112
223
  }))),
113
- loading ? (React.createElement(Row, { role: "row" },
224
+ !overlayLoading && loading ? (React.createElement(Row, { role: "row" },
114
225
  React.createElement(Cell, { role: "cell", align: "center", colSpan: columns.length, "data-test": "table-loader-cell" },
115
- React.createElement(Loader, null)))) : hasData ? (React.createElement("div", { "data-test": "table-cell-row-group", role: "rowgroup", className: contentClassName }, page.map((row) => {
116
- prepareRow(row);
117
- const { key: rowKey, ...restRowProps } = row.getRowProps(getCustomRowProps === null || getCustomRowProps === void 0 ? void 0 : getCustomRowProps(row));
118
- const cells = row.cells.map((cell, i) => {
119
- const { key: cellKey, ...restCellProps } = cell.getCellProps(getCustomCellProps === null || getCustomCellProps === void 0 ? void 0 : getCustomCellProps(cell));
120
- // We don't want to use cell.column.Cell as that is a ColumnInstance which already has a cell renderer
121
- const column = columns[i];
122
- return (React.createElement(Cell, { key: cellKey, align: cell.column.align, ...restCellProps },
123
- React.createElement(EnhancedCellRenderer, { cell: cell, hasCellRenderer: !!column.Cell, columnResizing: columnResizing })));
124
- });
125
- if (getHref) {
126
- const href = getHref(row);
127
- if (href) {
128
- return (React.createElement(LinkRow, { key: rowKey, AnchorComponent: AnchorComponent, ...restRowProps, ariaRowIndex: row.index + 1 + cellIndexOffset, href: href }, cells));
129
- }
130
- }
131
- return (React.createElement(Row, { key: rowKey, ...restRowProps, ariaRowIndex: row.index + 1 + cellIndexOffset, onClick: onRowClick
132
- ? () => {
133
- onRowClick(row);
226
+ React.createElement(Loader, null)))) : hasData ? (React.createElement("div", { "data-test": "table-cell-row-group", role: "rowgroup", className: cn(styles.content, contentClassName) },
227
+ page.map((row) => {
228
+ prepareRow(row);
229
+ const { key: rowKey, ...restRowProps } = row.getRowProps(getCustomRowProps === null || getCustomRowProps === void 0 ? void 0 : getCustomRowProps(row));
230
+ const cells = row.cells.map((cell, i) => {
231
+ const { key: cellKey, ...restCellProps } = cell.getCellProps(getCustomCellProps === null || getCustomCellProps === void 0 ? void 0 : getCustomCellProps(cell));
232
+ // We don't want to use cell.column.Cell as that is a ColumnInstance which already has a cell renderer
233
+ const column = columns[i];
234
+ // columns added via react-table hooks
235
+ if (!column) {
236
+ return (React.createElement(Cell, { key: cellKey, align: cell.column.align, ...restCellProps }, cell.render('Cell')));
237
+ }
238
+ return (React.createElement(Cell, { key: cellKey, align: cell.column.align, ...restCellProps },
239
+ React.createElement(EnhancedCellRenderer, { cell: cell, hasCellRenderer: !!column.Cell, columnResizing: columnResizing })));
240
+ });
241
+ if (getHref) {
242
+ const href = getHref(row);
243
+ if (href) {
244
+ return (React.createElement(LinkRow, { key: rowKey, AnchorComponent: AnchorComponent, ...restRowProps, ariaRowIndex: row.index + 1 + cellIndexOffset, href: href }, cells));
134
245
  }
135
- : undefined }, cells));
136
- }))) : (React.createElement("div", { role: "row" },
246
+ }
247
+ return (React.createElement(React.Fragment, { key: rowKey },
248
+ React.createElement(Row, { ...restRowProps, ariaRowIndex: row.index + 1 + cellIndexOffset, onClick: onRowClick
249
+ ? () => {
250
+ onRowClick(row);
251
+ }
252
+ : undefined }, cells),
253
+ row.isExpanded ? renderRowSubComponent && React.createElement("div", null, renderRowSubComponent(row)) : null));
254
+ }),
255
+ overlayLoading && loading && (React.createElement("div", { className: styles.overlayLoading },
256
+ React.createElement(Loader, null))))) : (React.createElement("div", { role: "row" },
137
257
  React.createElement("div", { role: "cell" },
138
258
  React.createElement(EmptyState, { "data-test": "table-no-data", className: styles.empty, title: noDataTitle, icon: AlertTriangle, iconLabel: "Alert" })))),
139
259
  hasFooter && (React.createElement("div", { "data-test": "table-footer-row-group", role: "rowgroup", className: footerClassName }, footerGroups.map((group) => {
@@ -170,5 +290,9 @@ export const Table = ({ 'data-test': dataTest, autoResetSortBy = false, columns,
170
290
  previousPage();
171
291
  }
172
292
  }, pageSize: pageSize, setPageSize: setPageSize, numberOfItems: data.length, pageSizeOptions: (_a = paginationOptions === null || paginationOptions === void 0 ? void 0 : paginationOptions.pageSizeOptions) !== null && _a !== void 0 ? _a : [5, 10, 20] }))));
293
+ if (children) {
294
+ return children(content, toggleColumnsControl);
295
+ }
296
+ return content;
173
297
  };
174
298
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/Table/Table.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAKZ,WAAW,EACX,SAAS,EACT,MAAM,EAEN,OAAO,GAER,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,SAAS,EAGT,gBAAgB,EAChB,gBAAgB,EAEhB,aAAa,EAEb,eAAe,EACf,cAAc,EAGd,WAAW,GACZ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAErE,OAAO,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAY,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,OAAO,MAAM,MAAM,qBAAqB,CAAA;AACxC,OAAO,WAAW,MAAM,2CAA2C,CAAA;AAgLnE,MAAM,MAAM,GAAG;IACb,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACjD,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,gDAAgD;CACpG,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAI5C,MAAM,WAAW,GAAG,CAAmB,GAAW,EAAsB,EAAE;IACxE,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAE7C,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAA;SAC9C;QAED,OAAO,IAAI,CAAA;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AACD,MAAM,YAAY,GAAG,CAAmB,GAAW,EAAE,KAAkC,EAAE,EAAE;IACzF,IAAI;QACF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAA;QAE3D,IAAI,IAAI,EAAE;YACR,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;SACvC;KACF;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAA;KACZ;AACH,CAAC,CAAA;AACD,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,EAAE;IACnC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACrC,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,yEAAyE;AACzE,MAAM,CAAC,MAAM,KAAK,GAAG,CAAmB,EACtC,WAAW,EAAE,QAAQ,EACrB,eAAe,GAAG,KAAK,EACvB,OAAO,EAAE,WAAW,EACpB,IAAI,EACJ,aAAa,GAAG,MAAM,EACtB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,GAAG,KAAK,EACrB,cAAc,GAAG,KAAK,EACtB,SAAS,EAAE,mBAAmB,EAC9B,eAAe,GAAG,EAAE,EACpB,iBAAiB,EACjB,UAAU,EACV,OAAO,EACP,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,WAAW,GAAG,oBAAoB,EAClC,SAAS,EAAE,iBAAiB,EAC5B,YAAY,GAAG,EAAE,SAAS,EAAE,iBAAiB,IAAI,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAC/E,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,EAAE,EACpB,gBAAgB,GAAG,EAAE,EACrB,eAAe,GAAG,EAAE,EACpB,WAAW,EACX,UAAU,EACV,qBAAqB,GAAG,KAAK,EAC7B,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAAG,KAAK,EACvB,eAAe,GAAG,KAAK,EACvB,qBAAqB,GAAG,KAAK,EAC7B,QAAQ,EACR,UAAU,EACV,qBAAqB,GACP,EAAgB,EAAE;;IAChC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,gBAAgB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAA;IACpD,MAAM,yBAAyB,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAChE,2CAA2C;IAC3C,4GAA4G;IAC5G,oEAAoE;IAEpE,MAAM,OAAO,GAAG,OAAO,CAAuB,GAAG,EAAE;QACjD,IAAI,qBAAqB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,EAAE;YACnE,OAAO;gBACL;oBACE,KAAK,EAAE,EAAE;oBACT,EAAE,EAAE,UAAU;oBACd,eAAe,EAAE,IAAI;oBACrB,IAAI,EAAE,CAAC,EAAE,GAAG,EAAuB,EAAE,EAAE;wBACrC,OAAO,GAAG,CAAC,SAAS,IAAI,qBAAqB,CAAC,CAAC,CAAC,CAC9C,6BAAK,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAC,QAAQ,eAAW,cAAc,EAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,KAAM,GAAG,CAAC,yBAAyB,EAAE;4BACtH,oBAAC,IAAI,IAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,EAAC,cAAc,GAAG,CAC7E,CACP,CAAC,CAAC,CAAC,IAAI,CAAA;oBACV,CAAC;iBACF;gBACD,GAAG,WAAW;aACf,CAAA;SACF;QAED,OAAO,WAAW,CAAA;IACpB,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAA;IAE9C,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE;;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,WAAW,CAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAE5D,IAAI,UAAU,IAAI,KAAK,EAAE;YACvB,4CAA4C;YAC5C,IACE,KAAK,CAAC,OAAO;gBACb,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;qBACtC,MAAA,KAAK,CAAC,OAAO,0CAAE,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,CAAC,CAAC,CACvG,CAAA,CAAC,EACJ;gBACA,YAAY,CAAC,UAAU,CAAC,CAAA;gBAExB,OAAO,EAAE,CAAA;aACV;SACF;QAED,OAAO,KAAK,CAAA;QACZ,sDAAsD;IACxD,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhB,oEAAoE;IACpE,MAAM,2BAA2B,GAAG,gBAAgB,CAAyD,kBAAmB,EAAE,GAAG,CAAC,CAAA;IAEtI,MAAM,EACJ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,IAAI,EACJ,cAAc,EACd,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,WAAW;IACX,kCAAkC;IAClC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,EAC9D,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,GAAG,QAAQ,CACV;QACE,OAAO;QACP,IAAI;QACJ,aAAa;QACb,gBAAgB,EAAE,IAAI;QACtB,2HAA2H;QAC3H,eAAe;QACf,+BAA+B;QAC/B,YAAY,EAAE,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;YACL,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;YAC5B,GAAG,YAAY;SAChB,CAAC,EACF,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAClC;QACD,kBAAkB,EAAE,WAAW,CAC7B,CAAC,KAAoB,EAAE,EAAE;;YACvB,IAAI,UAAU,EAAE;gBACd,YAAY,CAAC,UAAU,EAAE;oBACvB,GAAG,KAAK;oBACR,WAAW,EAAE,MAAA,MAAC,KAA4B,0CAAE,WAAW,0CAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC;iBAClG,CAAC,CAAA;aACH;YAED,OAAO,KAAK,CAAA;QACd,CAAC,EACD,CAAC,UAAU,CAAC,CACb;QACD,sEAAsE;QACtE,gBAAgB,EAAE,gBAAgB;QAClC,0DAA0D;QAC1D,SAAS,EAAE,mBAAmB;QAC9B,aAAa;QACb,aAAa;QACb,qBAAqB;QACrB,eAAe;QACf,qBAAqB;QACrB,oBAAoB,EAAE,KAAK;KAC5B,EACD,eAAe,EACf,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,cAAc,CACf,CAAA;IAED,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;QACvD,OAAO,EAAE,UAAU;QACnB,cAAc;QACd,gBAAgB;KACjB,CAAC,CAAA;IAEF,gBAAgB;IAChB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAY,EAAE,EAAE;QAC/C,gBAAgB,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAY,EAAE,WAAmB,EAAE,EAAE;QACpC,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,IAAI,WAAW,KAAK,gBAAgB,CAAC,OAAO,EAAE;YACjF,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC,CAAA;YACtC,UAAU,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;YAClE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;YAElE,6DAA6D;YAC7D,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAa,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAW,CAAC,CAAC,CAAA;SAC5F;IACH,CAAC,EACD,CAAC,cAAc,EAAE,cAAc,CAAC,CACjC,CAAA;IAED,+MAA+M;IAC/M,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,EAAE;YACtB,2BAA2B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;SACrD;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,2BAA2B,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE1E,2CAA2C;IAC3C,4GAA4G;IAC5G,oEAAoE;IACpE,MAAM,gCAAgC,GAAG,gBAAgB,CAAkC,uBAAwB,EAAE,GAAG,CAAC,CAAA;IAEzH,+MAA+M;IAC/M,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,uBAAuB,EAAE;YAC3B,gCAAgC,CAAC,IAAI,CAAC,CAAA;SACvC;IACH,CAAC,EAAE,CAAC,uBAAuB,EAAE,gCAAgC,EAAE,IAAI,CAAC,CAAC,CAAA;IAErE,+CAA+C;IAC/C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,CAAC;YAAC,eAA2C,CAAC,WAAW,CAAC,CAAA;SAC3D;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAA;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,EAAE;YAC7B,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;SACxB;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,KAAK,yBAAyB,EAAE;YACtF,QAAQ,CAAC,iBAAiB,CAAC,CAAA;SAC5B;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAA;SACzC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAA;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,WAAW,CAAC,OAAO,EAAE;YACrC,YAAY,CAAC,UAAU,CAAC,CAAA;SACzB;QAED,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;IAC5B,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IAEzB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAE/B,2EAA2E;IAC3E,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAE5E,2CAA2C;IAC3C,MAAM,WAAW,GAAG,CAAC,CAAA;IACrB,yFAAyF;IACzF,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAA;IAC1D,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhE,MAAM,OAAO,GAAG,CACd,0CAAgB,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,eAAe,EAAE,SAAS,EAAE,SAAS;QAC/D,6BACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC9B,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc;aACtC,CAAC;YAEF,0CAAe,OAAO,KAAK,aAAa,EAAE,mBAAiB,QAAQ;gBAChE,CAAC,UAAU,IAAI,CACd,0CAAe,wBAAwB,EAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAE,eAAe,IAC/E,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;oBAChC,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,oBAAoB,EAAE,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAA;oBAE1F,OAAO,CACL,oBAAC,SAAS,IAAC,GAAG,EAAE,cAAc,KAAM,oBAAoB,EAAE,YAAY,EAAE,WAAW,IAChF,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACrC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAA;wBACnG,MAAM,WAAW,GAAG,eAAe,IAAI,MAAM,CAAC,EAAE,KAAK,UAAU,CAAA;wBAE/D,OAAO,CACL,oBAAC,MAAM,IACL,KAAK,EAAE,CAAC,EACR,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,YAAY,EAAE,MAAM,CAAC,YAAY,EACjC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAClD,SAAS,EAAE,MAAM,CAAC,SAAS,EAC3B,UAAU,EAAE,MAAM,CAAC,UAAU,EAC7B,eAAe,EAAE,MAAM,CAAC,eAAe,EACvC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACxC,WAAW,EAAE,WAAW,KACpB,eAAe;4BAEnB,oBAAC,4BAA4B,IAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAC,QAAQ,GAAG,CACvF,CACV,CAAA;oBACH,CAAC,CAAC,CACQ,CACb,CAAA;gBACH,CAAC,CAAC,CACE,CACP;gBACA,CAAC,cAAc,IAAI,OAAO,CAAC,CAAC,CAAC,CAC5B,oBAAC,GAAG,IAAC,IAAI,EAAC,KAAK;oBACb,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,CAAC,MAAM,eAAY,mBAAmB;wBACrF,oBAAC,MAAM,OAAG,CACL,CACH,CACP,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,0CAAe,sBAAsB,EAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;oBAClG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;wBAChB,UAAU,CAAC,GAAG,CAAC,CAAA;wBACf,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,GAAG,CAAC,CAAC,CAAA;wBAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BACtC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,IAAI,CAAC,CAAC,CAAA;4BACxF,sGAAsG;4BACtG,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAmC,CAAA;4BAE3D,sCAAsC;4BACtC,IAAI,CAAC,MAAM,EAAE;gCACX,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAM,aAAa,IAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CACf,CACR,CAAA;6BACF;4BAED,OAAO,CACL,oBAAC,IAAI,IAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,KAAM,aAAa;gCAC7D,oBAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,GAAI,CAC/F,CACR,CAAA;wBACH,CAAC,CAAC,CAAA;wBAEF,IAAI,OAAO,EAAE;4BACX,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;4BACzB,IAAI,IAAI,EAAE;gCACR,OAAO,CACL,oBAAC,OAAO,IACN,GAAG,EAAE,MAAM,EACX,eAAe,EAAE,eAAe,KAC5B,YAAY,EAChB,YAAY,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,eAAe,EAC7C,IAAI,EAAE,IAAI,IAET,KAAK,CACE,CACX,CAAA;6BACF;yBACF;wBAED,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,MAAM;4BACzB,oBAAC,GAAG,OACE,YAAY,EAChB,YAAY,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,eAAe,EAC7C,OAAO,EACL,UAAU;oCACR,CAAC,CAAC,GAAG,EAAE;wCACH,UAAU,CAAC,GAAG,CAAC,CAAA;oCACjB,CAAC;oCACH,CAAC,CAAC,SAAS,IAGd,KAAK,CACF;4BACL,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,IAAI,iCAAM,qBAAqB,CAAC,GAAG,CAAC,CAAO,CAAC,CAAC,CAAC,IAAI,CAC1E,CAClB,CAAA;oBACH,CAAC,CAAC;oBACD,cAAc,IAAI,OAAO,IAAI,CAC5B,6BAAK,SAAS,EAAE,MAAM,CAAC,cAAc;wBACnC,oBAAC,MAAM,OAAG,CACN,CACP,CACG,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,IAAI,EAAC,KAAK;oBACb,6BAAK,IAAI,EAAC,MAAM;wBACd,oBAAC,UAAU,iBAAW,eAAe,EAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAC,OAAO,GAAG,CACxH,CACF,CACP;gBACA,SAAS,IAAI,CACZ,0CAAe,wBAAwB,EAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAE,eAAe,IAC/E,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;oBAC1B,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,oBAAoB,EAAE,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAA;oBACpF,OAAO;oBACL,sDAAsD;oBACtD,oBAAC,GAAG,IAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,KAAM,oBAAoB,EAAE,IAAI,EAAC,KAAK,IACnF,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC5B,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,cAAc,EAAE,CAAA;wBACtE,OAAO;wBACL,sDAAsD;wBACtD,oBAAC,IAAI,IAAC,GAAG,EAAE,SAAS,KAAM,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAC,MAAM;4BACzE,oBAAC,4BAA4B,IAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAC,QAAQ,GAAG,CACzF,CACR,CAAA;oBACH,CAAC,CAAC,CACE,CACP,CAAA;gBACH,CAAC,CAAC,CACE,CACP,CACG,CACF;QAEL,CAAC,cAAc,IAAI,OAAO,IAAI,CAC7B,oBAAC,UAAU,IACT,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,GAAG,CAAC,EAC1B,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;iBACpB;qBAAM;oBACL,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;iBAChB;YACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;gBACb,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;iBAC5B;qBAAM;oBACL,QAAQ,EAAE,CAAA;iBACX;YACH,CAAC,EACD,YAAY,EAAE,GAAG,EAAE;gBACjB,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,SAAS,GAAG,CAAC,CAAC,CAAA;iBAC5B;qBAAM;oBACL,YAAY,EAAE,CAAA;iBACf;YACH,CAAC,EACD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,IAAI,CAAC,MAAM,EAC1B,eAAe,EAAE,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,eAAe,mCAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,GAClE,CACH,CACG,CACP,CAAA;IAED,IAAI,QAAQ,EAAE;QACZ,OAAO,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;KAC/C;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  @use '../../styles/constants' as c;
2
+ @use '../../styles/helpers' as h;
2
3
 
3
4
  .container {
4
5
  display: block;
@@ -12,3 +13,25 @@
12
13
  margin-top: c.$grid * 8;
13
14
  }
14
15
  }
16
+
17
+ .content {
18
+ position: relative;
19
+ }
20
+
21
+ .overlayLoading {
22
+ position: absolute;
23
+ top: 0;
24
+ left: 0;
25
+ width: 100%;
26
+ height: 100%;
27
+ display: flex;
28
+ align-items: center;
29
+ justify-content: center;
30
+ background: rgb(255 255 255 / 50%);
31
+ }
32
+
33
+ .expander {
34
+ &:focus {
35
+ @include h.outlineSimple;
36
+ }
37
+ }
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { CheckableSelectProps } from '../Select/CheckableSelectField';
3
- export declare function useTableCustomizableColumns<T>(columns: T, opts?: {
4
- 'data-test'?: string;
5
- size: CheckableSelectProps<T>['size'];
6
- }): {
7
- tableColumns: T;
8
- control: JSX.Element;
9
- };
2
+ import { ColumnInstance, IdType } from 'react-table';
3
+ import { Column } from '../Table/Table';
4
+ export declare function useTableCustomizableColumns<T extends object>({ columns, visibleColumns, setHiddenColumns, dataTest, }: {
5
+ dataTest?: string;
6
+ columns: Column<T>[];
7
+ visibleColumns: ColumnInstance<T>[];
8
+ setHiddenColumns: (columns: IdType<T>[]) => void;
9
+ }): JSX.Element;
@@ -1,23 +1,21 @@
1
- import React, { useMemo, useState } from 'react';
1
+ import React, { useCallback, useMemo, useState } from 'react';
2
+ import { selectionColumnId } from '../Table/Table';
2
3
  import { CheckableSelectField } from '../Select';
3
- export function useTableCustomizableColumns(columns, opts) {
4
- const untypedColumns = columns;
5
- const { size = 'medium', 'data-test': dataTest = 'table-custom-columns' } = opts || {};
4
+ export function useTableCustomizableColumns({ columns, visibleColumns, setHiddenColumns, dataTest = 'table-custom-columns', }) {
6
5
  // Header is used as a label
7
- const toggleableColumns = useMemo(() => untypedColumns.filter(({ Header }) => !!Header), [untypedColumns]);
8
- const options = useMemo(() => toggleableColumns.map(({ Header }) => ({
9
- value: String(Header),
6
+ const toggleableColumns = useMemo(() => columns.filter(({ Header, id, accessor, canHide = true }) => canHide && !!Header && (!!id || !!accessor)), [columns]);
7
+ const options = useMemo(() => toggleableColumns.map(({ Header, id, accessor }) => ({
8
+ value: String(id || accessor),
10
9
  label: String(Header),
11
10
  })), [toggleableColumns]);
12
- const [value, setValue] = useState(toggleableColumns.map(({ Header }) => String(Header)));
13
- const valueSet = useMemo(() => new Set(value), [value]);
14
- const toggleableColumnsSet = useMemo(() => new Set(toggleableColumns.map(({ Header }) => String(Header))), [toggleableColumns]);
15
- const tableColumns = useMemo(() => {
16
- return untypedColumns.filter(({ Header }) => (toggleableColumnsSet.has(String(Header)) ? valueSet.has(String(Header)) : true));
17
- }, [untypedColumns, valueSet, toggleableColumnsSet]);
18
- return {
19
- tableColumns: tableColumns,
20
- control: (React.createElement(CheckableSelectField, { name: "custom-columns", options: options, value: value, "data-test": dataTest, label: "Columns", onChange: setValue, size: size })),
21
- };
11
+ const onChange = useCallback((value) => {
12
+ const visibleColumns = new Set(value);
13
+ setHiddenColumns(toggleableColumns
14
+ .filter(({ id, accessor }) => !visibleColumns.has((id || accessor)))
15
+ .map(({ id, accessor }) => (id || accessor)));
16
+ setValue(value);
17
+ }, [setHiddenColumns, toggleableColumns]);
18
+ const [value, setValue] = useState(visibleColumns.filter(({ id }) => id !== selectionColumnId).map(({ id }) => id));
19
+ return (React.createElement(CheckableSelectField, { name: "custom-columns", options: options, value: value, "data-test": dataTest, label: "Columns", onChange: onChange }));
22
20
  }
23
21
  //# sourceMappingURL=useTableCustomizableColumns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableCustomizableColumns.js","sourceRoot":"","sources":["../../src/hooks/useTableCustomizableColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAIhD,MAAM,UAAU,2BAA2B,CACzC,OAAU,EACV,IAGC;IAED,MAAM,cAAc,GAAI,OAA2C,CAAA;IACnE,MAAM,EAAE,IAAI,GAAG,QAAQ,EAAE,WAAW,EAAE,QAAQ,GAAG,sBAAsB,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;IACtF,4BAA4B;IAC5B,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAA;IAC1G,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KACtB,CAAC,CAAC,EACL,CAAC,iBAAiB,CAAC,CACpB,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACnG,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAC/H,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAChI,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAEpD,OAAO;QACL,YAAY,EAAG,YAA6B;QAC5C,OAAO,EAAE,CACP,oBAAC,oBAAoB,IACnB,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,eACD,QAAQ,EACnB,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,GACV,CACH;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"useTableCustomizableColumns.js","sourceRoot":"","sources":["../../src/hooks/useTableCustomizableColumns.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAG7D,OAAO,EAAU,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAGhD,MAAM,UAAU,2BAA2B,CAAmB,EAC5D,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,QAAQ,GAAG,sBAAsB,GAMlC;IACC,4BAA4B;IAC5B,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAC/G,CAAC,OAAO,CAAC,CACV,CAAA;IACD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CACH,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACnD,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,QAAQ,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;KACtB,CAAC,CAAC,EACL,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,KAAe,EAAE,EAAE;QAClB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,gBAAgB,CACd,iBAAiB;aACd,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAW,CAAC,CAAC;aAC7E,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAW,CAAC,CACzD,CAAA;QACD,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjB,CAAC,EACD,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CACtC,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAW,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAE7H,OAAO,CACL,oBAAC,oBAAoB,IACnB,IAAI,EAAC,gBAAgB,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,eACD,QAAQ,EACnB,KAAK,EAAC,SAAS,EACf,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hazelcast/ui",
3
- "version": "1.3.1",
3
+ "version": "1.3.2-next.5+2abd7b3",
4
4
  "description": "Hazelcast design system components",
5
5
  "author": "",
6
6
  "homepage": "https://github.com/hazelcast/frontend-shared#readme",
@@ -113,5 +113,5 @@
113
113
  "webpack": "^5.65.0",
114
114
  "yup": "^0.32.11"
115
115
  },
116
- "gitHead": "d24ee0a98517f6e5e6ebd27e7c3b1be3ac6a768a"
116
+ "gitHead": "2abd7b3f52b6e33f683762d0ba7fcf413f6f939e"
117
117
  }
@@ -1,45 +0,0 @@
1
- import React, { FC } from 'react'
2
- import { ReactDatePickerProps } from 'react-datepicker'
3
- import { ChevronLeft, ChevronRight } from 'react-feather'
4
- import { format } from 'date-fns'
5
-
6
- import { IconButton } from '../../IconButton'
7
-
8
- import styles from '../Calendar.module.scss'
9
- import styleConsts from '../../../styles/constants/export.module.scss'
10
-
11
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
- type ExtractFnArgumentType<T> = T extends (arg: infer U) => any ? U : never
13
-
14
- /*
15
- * Note:
16
- * react-datepicker does expose header props type as "renderCustomHeader", however the property is defined
17
- * as a render-prop.
18
- * This way we can pick the argument type from the render function and convert the property
19
- * to use a regular component, rather than a render-prop.
20
- *
21
- * There is no significant benefit other than readability.
22
- */
23
- export type CalendarHeaderProps = ExtractFnArgumentType<ReactDatePickerProps['renderCustomHeader']>
24
-
25
- export const CalendarHeader: FC<CalendarHeaderProps> = ({ date, decreaseMonth, increaseMonth }) => {
26
- return (
27
- <div data-test="date-picker-header" className={styles.headerContainer}>
28
- <IconButton
29
- data-test="date-picker-header-icon-previous"
30
- icon={ChevronLeft}
31
- ariaLabel="Previous month"
32
- iconColor={styleConsts.colorPrimary}
33
- onClick={decreaseMonth}
34
- />
35
- <div className={styles.headerMonthAndYear}>{format(date, 'MMMM y')}</div>
36
- <IconButton
37
- data-test="date-picker-header-icon-next"
38
- icon={ChevronRight}
39
- ariaLabel="Next month"
40
- iconColor={styleConsts.colorPrimary}
41
- onClick={increaseMonth}
42
- />
43
- </div>
44
- )
45
- }
@@ -1,50 +0,0 @@
1
- import React, { FC, ChangeEvent, InputHTMLAttributes, forwardRef } from 'react'
2
- import { Calendar } from 'react-feather'
3
-
4
- import { TextField } from '../../TextField'
5
- import { CalendarSize } from '../Calendar'
6
-
7
- export type CalendarInputInternalProps = {
8
- onChange: (e: ChangeEvent<HTMLInputElement>) => void
9
- } & CalendarInputExtraProps &
10
- Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange'>
11
-
12
- export const CalendarInputInternal: FC<CalendarInputInternalProps> = ({ className, value, onChange, label, textFieldSize, ...props }) => (
13
- <TextField<'text'>
14
- {...props}
15
- size={textFieldSize}
16
- data-test="calendar-input"
17
- value={value?.toString()}
18
- onChange={onChange}
19
- inputContainerClassName={className}
20
- type="text"
21
- name="calendar-input"
22
- label={label}
23
- inputTrailingIcon={Calendar}
24
- inputTrailingIconLabel="Calendar Icon"
25
- />
26
- )
27
-
28
- export type CalendarInputExtraProps = {
29
- label: string
30
- textFieldSize?: CalendarSize
31
- className?: string
32
- }
33
-
34
- /*
35
- * Note:
36
- * The types are not available, the element is internally instantiated via React.cloneElement
37
- * We need to accept the props as unknown and cast them in place
38
- * Otherwise "Calendar.customInput" would require us to pass them explicitly
39
- */
40
- export type CalendarInputProps = unknown & CalendarInputExtraProps
41
-
42
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
- export const CalendarInput: FC<CalendarInputProps> = forwardRef((props, ref) => {
44
- // Note: Cast the "unknown" props to the actual type
45
- const propsTyped = props as CalendarInputInternalProps
46
-
47
- return <CalendarInputInternal {...propsTyped} />
48
- })
49
-
50
- CalendarInput.displayName = 'CalendarInput'
@@ -1,117 +0,0 @@
1
- import React, { ChangeEvent, FC, useCallback, useEffect, useState } from 'react'
2
- import { format, parse } from 'date-fns'
3
-
4
- import { Button } from '../../Button'
5
- import { timePoints } from '../helpers/consts'
6
- import { TimeField } from '../../TimeField'
7
-
8
- import styles from './CalendarTime.module.scss'
9
-
10
- // Note: AM/PM 1-12 hours time
11
- const DATE_FORMAT = 'hh:mm a'
12
- // Note: 0-23 hours time
13
- const DATE_FORMAT_NO_MERIDIEM = 'HH:mm'
14
-
15
- export type CalendarTimeInternalProps = {
16
- date: Date
17
- onChange: (timeString: string) => void
18
- value: string
19
- }
20
-
21
- export const CalendarTimeInternal: FC<CalendarTimeInternalProps> = ({ date, value, onChange }) => {
22
- const [time, setTime] = useState(value)
23
- const [timeInputError, setTimeInputError] = useState<string | undefined>()
24
-
25
- /*
26
- * Note:
27
- * We cannot override how react-datepicker handles time values.
28
- * It always expects format of "xx:xx" to parse the hours and minutes from. (See Source 2. link below)
29
- *
30
- * This is not an issue for majority of browsers, however as for IE11, where <input type="time" />
31
- * fall back to <input type="text" />, this becomes an issue.
32
- *
33
- * Furthermore, the package even does not handle potential thrown error by date-fns' parse.
34
- * Even the live demos do crash on an input like "10:10q" (See source 1. link below).
35
- *
36
- * For this reasons we need to provide our own wrapper around the functionality to achieve 2 things:
37
- * - Provide IE11 with a proper fallback
38
- * - Prevent the invalid input value crash
39
- * - Provide the user with an input error in case the value is invalid
40
- *
41
- * Source(1): https://reactdatepicker.com/#example-custom-time-input
42
- * Source(2): https://github.com/Hacker0x01/react-datepicker/blob/master/src/inputTime.jsx#L32
43
- */
44
- useEffect(() => {
45
- setTime(value)
46
- }, [value])
47
-
48
- const handleTimeInputChange = useCallback(
49
- ({ target: { value } }: ChangeEvent<HTMLInputElement>) => {
50
- setTime(value)
51
- const parsedDate = parse(value, DATE_FORMAT_NO_MERIDIEM, date)
52
-
53
- if (!isNaN(parsedDate.valueOf())) {
54
- setTimeInputError(undefined)
55
- onChange(value)
56
- } else {
57
- setTimeInputError('Invalid time')
58
- }
59
- },
60
- [onChange, date],
61
- )
62
-
63
- const handleDateClick = useCallback(
64
- (dp: string) => () => {
65
- // Note: Input time (derived from timePoints) is in 'DATE_FORMAT'
66
- const parsedDate = parse(dp, DATE_FORMAT, date)
67
- // Note: Output time, that we feed back to 'react-datetime' is in 'DATE_FORMAT_NO_MERIDIEM' format
68
- const timeStringWithoutAm = format(parsedDate, DATE_FORMAT_NO_MERIDIEM)
69
- onChange(timeStringWithoutAm)
70
- },
71
- [onChange, date],
72
- )
73
-
74
- return (
75
- <div data-test="calendar-time" className={styles.container}>
76
- <div data-test="calendar-time-header" className={styles.header}>
77
- <TimeField
78
- showAriaLabel
79
- label="Time Input"
80
- error={timeInputError}
81
- className={styles.input}
82
- name="time"
83
- value={time.toString()}
84
- onChange={handleTimeInputChange}
85
- />
86
- </div>
87
- <div data-test="calendar-time-timePoints" className={styles.timePoints}>
88
- {timePoints.map((tP) => (
89
- <Button
90
- className={styles.timePoint}
91
- bodyClassName={styles.timePointBody}
92
- key={tP}
93
- kind="transparent"
94
- onClick={handleDateClick(tP)}
95
- >
96
- {tP}
97
- </Button>
98
- ))}
99
- </div>
100
- </div>
101
- )
102
- }
103
-
104
- /*
105
- * Note:
106
- * The types are not available, the element is internally instantiated via React.cloneElement
107
- * We need to accept the props as unknown and cast them in place
108
- * Otherwise "Calendar.customTimeInput" would require us to pass them explicitly
109
- */
110
- export type CalendarTimeProps = unknown
111
-
112
- export const CalendarTime: FC<CalendarTimeProps> = (props) => {
113
- // Note: Cast the "unknown" props to the actual type
114
- const propsTyped = props as CalendarTimeInternalProps
115
-
116
- return <CalendarTimeInternal {...propsTyped} />
117
- }
@@ -1,99 +0,0 @@
1
- export const timePoints = [
2
- // Source: https://simple.wikipedia.org/wiki/12-hour_clock
3
- '12:00 AM',
4
- '12:15 AM',
5
- '12:30 AM',
6
- '12:45 AM',
7
- '01:00 AM',
8
- '01:15 AM',
9
- '01:30 AM',
10
- '01:45 AM',
11
- '02:00 AM',
12
- '02:15 AM',
13
- '02:30 AM',
14
- '02:45 AM',
15
- '03:00 AM',
16
- '03:15 AM',
17
- '03:30 AM',
18
- '03:45 AM',
19
- '04:00 AM',
20
- '04:15 AM',
21
- '04:30 AM',
22
- '04:45 AM',
23
- '05:00 AM',
24
- '05:15 AM',
25
- '05:30 AM',
26
- '05:45 AM',
27
- '06:00 AM',
28
- '06:15 AM',
29
- '06:30 AM',
30
- '06:45 AM',
31
- '07:00 AM',
32
- '07:15 AM',
33
- '07:30 AM',
34
- '07:45 AM',
35
- '08:00 AM',
36
- '08:15 AM',
37
- '08:30 AM',
38
- '08:45 AM',
39
- '09:00 AM',
40
- '09:15 AM',
41
- '09:30 AM',
42
- '09:45 AM',
43
- '10:00 AM',
44
- '10:15 AM',
45
- '10:30 AM',
46
- '10:45 AM',
47
- '11:00 AM',
48
- '11:15 AM',
49
- '11:30 AM',
50
- '11:45 AM',
51
- '12:00 PM',
52
- '12:15 PM',
53
- '12:30 PM',
54
- '12:45 PM',
55
- '01:00 PM',
56
- '01:15 PM',
57
- '01:30 PM',
58
- '01:45 PM',
59
- '02:00 PM',
60
- '02:15 PM',
61
- '02:30 PM',
62
- '02:45 PM',
63
- '03:00 PM',
64
- '03:15 PM',
65
- '03:30 PM',
66
- '03:45 PM',
67
- '04:00 PM',
68
- '04:15 PM',
69
- '04:30 PM',
70
- '04:45 PM',
71
- '05:00 PM',
72
- '05:15 PM',
73
- '05:30 PM',
74
- '05:45 PM',
75
- '06:00 PM',
76
- '06:15 PM',
77
- '06:30 PM',
78
- '06:45 PM',
79
- '07:00 PM',
80
- '07:15 PM',
81
- '07:30 PM',
82
- '07:45 PM',
83
- '08:00 PM',
84
- '08:15 PM',
85
- '08:30 PM',
86
- '08:45 PM',
87
- '09:00 PM',
88
- '09:15 PM',
89
- '09:30 PM',
90
- '09:45 PM',
91
- '10:00 PM',
92
- '10:15 PM',
93
- '10:30 PM',
94
- '10:45 PM',
95
- '11:00 PM',
96
- '11:15 PM',
97
- '11:30 PM',
98
- '11:45 PM',
99
- ]