@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.
- package/lib/AutocompleteField.d.ts +1 -0
- package/lib/AutocompleteField.js +6 -3
- package/lib/AutocompleteField.js.map +1 -1
- package/lib/Checkbox.d.ts +2 -1
- package/lib/Checkbox.js +2 -2
- package/lib/Checkbox.js.map +1 -1
- package/lib/FieldHeader.js +3 -3
- package/lib/FieldHeader.js.map +1 -1
- package/lib/Link.d.ts +2 -1
- package/lib/Link.js +3 -2
- package/lib/Link.js.map +1 -1
- package/lib/Link.module.scss +12 -2
- package/lib/Table/Header.d.ts +4 -1
- package/lib/Table/Header.js +46 -7
- package/lib/Table/Header.js.map +1 -1
- package/lib/Table/Header.module.scss +19 -0
- package/lib/Table/Table.d.ts +20 -6
- package/lib/Table/Table.js +160 -36
- package/lib/Table/Table.js.map +1 -1
- package/lib/Table/Table.module.scss +23 -0
- package/lib/hooks/useTableCustomizableColumns.d.ts +8 -8
- package/lib/hooks/useTableCustomizableColumns.js +15 -17
- package/lib/hooks/useTableCustomizableColumns.js.map +1 -1
- package/package.json +2 -2
- package/lib/Calendar/components/CalendarHeader.tsx +0 -45
- package/lib/Calendar/components/CalendarInput.tsx +0 -50
- package/lib/Calendar/components/CalendarTime.tsx +0 -117
- package/lib/Calendar/helpers/consts.ts +0 -99
package/lib/AutocompleteField.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
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":"AAAA,OAAO,KAAK,EAAE,EAAwC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,WAAW,EAAE,EAAc,UAAU,EAAa,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,MAAM,MAAM,iCAAiC,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"AutocompleteField.js","sourceRoot":"","sources":["../src/AutocompleteField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAwC,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACtF,OAAO,WAAW,EAAE,EAAc,UAAU,EAAa,MAAM,cAAc,CAAA;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,yBAAyB,MAAM,yCAAyC,CAAA;AAC/E,OAAO,MAAM,MAAM,iCAAiC,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,IAAI,EAAa,MAAM,QAAQ,CAAA;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA0CzC;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAmC;;IAC/F,IAAI,MAAM,GAAG,IAAI,CAAA;IACjB,IAAI,KAAK,EAAE;QACT,MAAM,GAAG,MAAA,UAAU,CAAC,KAAK,CAAC,mCAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;KAC7D;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,KAAK,GAA4B,CAAC,UAAU,EAAE,EAAE;IACpD,mFAAmF;IACnF,kEAAkE;IAClE,MAAM,KAAK,GAAG;QACZ,GAAG,UAAU;QACb,YAAY,EAAE,YAAY;KAC3B,CAAA;IACD,OAAO,oBAAC,UAAU,CAAC,KAAK,OAAK,KAAK,GAAI,CAAA;AACxC,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAwC,CAAC,KAAK,EAAE,EAAE;IACvE,OAAO,CACL,oBAAC,UAAU,CAAC,iBAAiB,OAAK,KAAK;QACrC,oBAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,CACS,CAChC,CAAA;AACH,CAAC,CAAA;AAED,gCAAgC;AAChC,MAAM,cAAc,GAAqC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;IAC1E,mJAAmJ;IACnJ,OAAO,oBAAC,UAAU,OAAK,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,QAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI,CAAA;AAC/H,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAiB,EAAE,UAA8B,EAAa,EAAE;IAClG,MAAM,SAAS,GAAG,KAAK,CAAA;IACvB,MAAM,KAAK,GAAG,UAAU,IAAI,EAAE,CAAA;IAC9B,OAAO,KAAK;QACV,CAAC,CAAC,SAAS;aACN,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,GAAG,SAAS,KAAK,SAAS,EAAE,CAAC;aAC9D,KAAK,CAAC,SAAS,CAAC;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC;aACpB,GAAG,CAAC,CAAC,GAAW,EAAE,CAAS,EAAE,EAAE,CAAC,CAC/B,8BACE,SAAS,EAAE,EAAE,CAAC;gBACZ,4CAA4C,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE;aACxF,CAAC,EACF,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,IAEhB,GAAG,CACC,CACR,CAAC;QACN,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAqC,CAAC,EAClE,WAAW,EAAE,QAAQ,EACrB,SAAS,EACT,QAAQ,EACR,KAAK,EACL,cAAc,EACd,WAAW,EACX,KAAK,EACL,cAAc,EACd,UAAU,EACV,gBAAgB,GAAG,MAAM,EACzB,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,MAAM,EACN,aAAa,EACb,OAAO,EACP,QAAQ,EACR,KAAK,EACL,WAAW,GAAG,WAAW,EACzB,YAAY,EACZ,eAAe,GAAG,IAAI,EACtB,GAAG,IAAI,EACR,EAAE,EAAE;IACH,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,CAAC,aAAa,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACvD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAEnB,yBAAyB,CAAC,GAAG,EAAE;QAC7B,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;QAExD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;YAC5E,aAAa,CAAC,SAAS,GAAG,GAAG,aAAa,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,EAAE,CAAA;SAC/E;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAC9B,GAAG,EAAE,CACH,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC7B,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAA;QAC/B,OAAO,GAAG,CAAA;IACZ,CAAC,EAAE,EAAgD,CAAC,EACtD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;IAE5G,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAClC,CAAC,MAAsC,EAAE,EAAE;QACzC,cAAc,CAAC,KAAK,CAAC,CACpB;QAAC,QAA8C,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzF,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAA;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,CAA0B,EAAE,EAAE;QAC7B,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,CAAC,CAAC,CAAA;SACX;QACD,IAAI,CAAC,eAAe,EAAE;YACpB,cAAc,CAAC,IAAI,CAAC,CAAA;SACrB;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAChC,CAAC,CAA0B,EAAE,EAAE;QAC7B,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAA;SACV;QACD,cAAc,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAC3C,CAAC,MAA+B,EAAE,SAAyD,EAAE,EAAE;QAC7F,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAA;QAChC,IAAI,UAAU,GAAc,MAAM,CAAC,KAAK,CAAA;QACxC,IAAI,UAAU,EAAE;YACd,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SAC3D;QACD,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;IAChF,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,gBAAsD,EAAkC,EAAE;QAClH,IAAI,gBAAgB,IAAI,MAAM,EAAE;YAC9B,0CAA0C;YAC1C,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;SAC7C;QACD,IAAI,gBAAgB,IAAI,MAAM,EAAE;YAC9B,OAAO,SAAS,CAAA;SACjB;QACD,OAAO,gBAAgB,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,KAAK,GAA8C;QACvD,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,uBAAuB;QAClC,eAAe,EAAE,uBAAuB;QACxC,mHAAmH;QACnH,mBAAmB,EAAE,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;QACzC,cAAc,EAAE,CAAC,CAAC,KAAK;QACvB,eAAe,EAAE,QAAQ;QACzB,KAAK;QACL,WAAW,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK;QACjC,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;QAClB,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,cAAc;QACrB,WAAW;QACX,OAAO;QACP,QAAQ,EAAE,UAA8G;QACxH,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,gBAAgB,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;QACpD,UAAU,EAAE;YACV,iBAAiB;YACjB,cAAc;YACd,KAAK;SACN;QACD,eAAe;QACf,GAAG,IAAI;KACR,CAAA;IAED,OAAO,CACL,0CACa,QAAQ,EACnB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,SAAS,EAChB;YACE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,KAAK;YACpC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;YAC3B,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK;YACxB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK;SACvB;QACD,mEAAmE;QACnE,uHAAuH;QACvH,4GAA4G;QAC5G,MAAM,CAAC,aAAa,EACpB,SAAS,CACV;QAED,oBAAC,KAAK,IAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,GAAI;QAC5E,6BAAK,SAAS,EAAE,MAAM,CAAC,WAAW;YAChC,oBAAC,WAAW,IACV,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,mBAAmB,EACtC,MAAM,EAAE;oBACN,GAAG,KAAK,CAAC,MAAM;oBACf,WAAW,EAAE,CAAC,IAAmB,EAAE,EAAE;;wBAAC,OAAA,CAAC;4BACrC,GAAG,IAAI;4BACP,GAAG,MAAA,KAAK,CAAC,MAAM,0CAAE,WAAW;4BAC5B,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;yBACjD,CAAC,CAAA;qBAAA;iBACH,KACG,KAAK,GACT;YACD,UAAU,IAAI,oBAAC,IAAI,IAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,GAAI,CACvF;QACN,oBAAC,KAAK,IAAC,SAAS,QAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,OAAO,EAAE,EAAE,GAAI,CAChG,CACP,CAAA;AACH,CAAC,CAAA"}
|
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 })));
|
package/lib/Checkbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAwE,MAAM,
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../src/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAwE,MAAM,EAAc,MAAM,OAAO,CAAA;AACvH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,IAAI,EAAa,aAAa,EAAE,MAAM,QAAQ,CAAA;AAEvD,OAAO,MAAM,MAAM,wBAAwB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAwB/C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,KAAK,EAAE,EAAE;IACnD,MAAM,EACJ,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,GAAG,KAAK,EACrB,KAAK,EACL,UAAU,EACV,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,WAAW,EAAE,QAAQ,EACrB,OAAO,GACR,GAAG,KAAK,CAAA;IACT,MAAM,QAAQ,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAA;IAC/C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAEnB,IAAI,WAAW,GAAmC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IAC5E,IAAI,aAAa,EAAE;QACjB,WAAW,GAAG,OAAO,CAAA;KACtB;IAED,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,eAAa,QAAQ;QAKlG,+BACE,SAAS,EAAE,UAAU,CACnB,MAAM,CAAC,OAAO,EACd;gBACE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK;gBACvB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO;gBACzB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ;aAC5B,EACD,cAAc,CACf,EACD,OAAO,EAAE,EAAE;YAEV,KAAK,KAAK,SAAS,IAAI,CACtB,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,eAAY,sBAAsB;gBAC3D,oBAAC,aAAa,IAAC,IAAI,EAAE,KAAK,GAAI,CAC1B,CACP;YACD,+BACE,IAAI,EAAC,UAAU,EACf,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,kBACJ,WAAW,kBACX,CAAC,CAAC,KAAK,mBACN,QAAQ,sBACL,UAAU,IAAI,aAAa,CAAC,EAAE,CAAC,uBAC9B,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC,GACvC;YACD,aAAa,CAAC,CAAC,CAAC,oBAAC,KAAK,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAI,CAAC,CAAC,CAAC,oBAAC,KAAK,IAAC,SAAS,EAAE,MAAM,CAAC,SAAS,GAAI;YAC/F,UAAU,IAAI,oBAAC,IAAI,IAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,UAAU,GAAI,CACrF;QACR,oBAAC,KAAK,IAAC,SAAS,QAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,GAAI,CAC5E,CACP,CAAA;AACH,CAAC,CAAA"}
|
package/lib/FieldHeader.js
CHANGED
|
@@ -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
|
-
|
|
13
|
-
|
|
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
|
package/lib/FieldHeader.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
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;
|
|
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"}
|
package/lib/Link.module.scss
CHANGED
|
@@ -34,16 +34,26 @@
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
.
|
|
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
|
}
|
package/lib/Table/Header.d.ts
CHANGED
|
@@ -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>;
|
package/lib/Table/Header.js
CHANGED
|
@@ -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
|
-
}),
|
|
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,
|
package/lib/Table/Header.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/Table/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,OAAO,EAAE,WAAW,
|
|
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
|
+
}
|
package/lib/Table/Table.d.ts
CHANGED
|
@@ -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,
|
|
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
|
|
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;
|
package/lib/Table/Table.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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 },
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
136
|
-
|
|
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
|
package/lib/Table/Table.js.map
CHANGED
|
@@ -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 {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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,
|
|
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(() =>
|
|
8
|
-
const options = useMemo(() => toggleableColumns.map(({ Header }) => ({
|
|
9
|
-
value: String(
|
|
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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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;
|
|
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.
|
|
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": "
|
|
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
|
-
]
|