@hazelcast/ui 1.3.2-next.5 → 1.3.2-next.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/lib/Alert.d.ts +6 -5
  2. package/lib/Alert.js +2 -2
  3. package/lib/Alert.js.map +1 -1
  4. package/lib/AutocompleteField.d.ts +8 -5
  5. package/lib/AutocompleteField.js +6 -7
  6. package/lib/AutocompleteField.js.map +1 -1
  7. package/lib/AutocompleteField.module.scss +16 -0
  8. package/lib/AutocompleteFieldFormik.d.ts +1 -1
  9. package/lib/Badge.d.ts +4 -4
  10. package/lib/Button.d.ts +16 -16
  11. package/lib/Button.js +1 -1
  12. package/lib/Button.js.map +1 -1
  13. package/lib/Button.module.scss +24 -1
  14. package/lib/Calendar/Calendar.d.ts +7 -3
  15. package/lib/Calendar/Calendar.js +32 -22
  16. package/lib/Calendar/Calendar.js.map +1 -1
  17. package/lib/Calendar/Calendar.module.scss +2 -1
  18. package/lib/Calendar/CalendarRange.d.ts +4 -4
  19. package/lib/Calendar/CalendarRange.js +5 -5
  20. package/lib/Calendar/CalendarRange.js.map +1 -1
  21. package/lib/Calendar/CalendarRange.module.scss +5 -0
  22. package/lib/Calendar/components/CalendarHeader.d.ts +2 -2
  23. package/lib/Calendar/components/CalendarInput.d.ts +7 -5
  24. package/lib/Calendar/components/CalendarInput.js +3 -3
  25. package/lib/Calendar/components/CalendarInput.js.map +1 -1
  26. package/lib/Calendar/components/CalendarTime.d.ts +2 -2
  27. package/lib/Calendar/components/CalendarTime.js +15 -10
  28. package/lib/Calendar/components/CalendarTime.js.map +1 -1
  29. package/lib/Calendar/components/CalendarTime.module.scss +4 -0
  30. package/lib/Calendar/helpers/consts.js +97 -97
  31. package/lib/Calendar/helpers/consts.js.map +1 -1
  32. package/lib/Card.d.ts +1 -1
  33. package/lib/Card.js +2 -2
  34. package/lib/Card.js.map +1 -1
  35. package/lib/Carousel.d.ts +25 -0
  36. package/lib/Carousel.js +28 -0
  37. package/lib/Carousel.js.map +1 -0
  38. package/lib/Carousel.module.scss +26 -0
  39. package/lib/Checkbox.d.ts +4 -3
  40. package/lib/Checkbox.js +2 -2
  41. package/lib/Checkbox.js.map +1 -1
  42. package/lib/CheckboxFormik.d.ts +1 -1
  43. package/lib/CircularProgressBar.d.ts +1 -1
  44. package/lib/Dialog.d.ts +2 -2
  45. package/lib/EmptyState.d.ts +5 -5
  46. package/lib/FieldHeader.d.ts +7 -5
  47. package/lib/FieldHeader.js +2 -2
  48. package/lib/FieldHeader.js.map +1 -1
  49. package/lib/Help.d.ts +2 -1
  50. package/lib/Help.js +2 -2
  51. package/lib/Help.js.map +1 -1
  52. package/lib/Icon.d.ts +4 -4
  53. package/lib/Icon.js +1 -1
  54. package/lib/Icon.js.map +1 -1
  55. package/lib/IconButton.d.ts +6 -6
  56. package/lib/InteractiveList.d.ts +5 -5
  57. package/lib/InteractiveList.js +4 -2
  58. package/lib/InteractiveList.js.map +1 -1
  59. package/lib/InteractiveListFormik.d.ts +1 -1
  60. package/lib/Label.d.ts +1 -1
  61. package/lib/Link.d.ts +6 -6
  62. package/lib/Loader.d.ts +1 -1
  63. package/lib/Modal.d.ts +4 -2
  64. package/lib/Modal.js.map +1 -1
  65. package/lib/Notification.d.ts +4 -4
  66. package/lib/NumberBadge.d.ts +2 -1
  67. package/lib/NumberBadge.js +3 -2
  68. package/lib/NumberBadge.js.map +1 -1
  69. package/lib/NumberField.d.ts +4 -6
  70. package/lib/NumberField.js.map +1 -1
  71. package/lib/NumberFieldFormik.d.ts +1 -1
  72. package/lib/Overlay.d.ts +7 -2
  73. package/lib/Overlay.js +5 -5
  74. package/lib/Overlay.js.map +1 -1
  75. package/lib/Overlay.module.scss +1 -1
  76. package/lib/Pagination.d.ts +7 -6
  77. package/lib/Pagination.js +7 -7
  78. package/lib/Pagination.js.map +1 -1
  79. package/lib/PasswordField.d.ts +3 -3
  80. package/lib/PasswordFieldFormik.d.ts +1 -1
  81. package/lib/Popover.d.ts +2 -0
  82. package/lib/Popover.js +12 -6
  83. package/lib/Popover.js.map +1 -1
  84. package/lib/Radio.d.ts +3 -3
  85. package/lib/RadioFormik.d.ts +1 -1
  86. package/lib/RadioGroup.d.ts +3 -3
  87. package/lib/RadioGroupFormik.d.ts +1 -1
  88. package/lib/SegmentedControl.d.ts +3 -3
  89. package/lib/SegmentedControlFormik.d.ts +1 -1
  90. package/lib/Select/CheckableSelectField.d.ts +3 -3
  91. package/lib/Select/CheckableSelectField.module.scss +1 -1
  92. package/lib/Select/CheckableSelectFieldFormik.d.ts +1 -1
  93. package/lib/Select/Common.d.ts +6 -6
  94. package/lib/Select/MultiSelectField.d.ts +7 -7
  95. package/lib/Select/MultiSelectField.js +3 -1
  96. package/lib/Select/MultiSelectField.js.map +1 -1
  97. package/lib/Select/MultiSelectFieldFormik.d.ts +1 -1
  98. package/lib/Select/SelectField.d.ts +7 -7
  99. package/lib/Select/SelectField.js +13 -4
  100. package/lib/Select/SelectField.js.map +1 -1
  101. package/lib/Select/SelectField.module.scss +0 -2
  102. package/lib/Select/SelectFieldFormik.d.ts +1 -1
  103. package/lib/Select/helpers.d.ts +2 -2
  104. package/lib/SimpleTable.d.ts +1 -1
  105. package/lib/Slider.d.ts +8 -8
  106. package/lib/SliderFormik.d.ts +1 -1
  107. package/lib/Table/Cell.d.ts +11 -3
  108. package/lib/Table/Cell.js +41 -9
  109. package/lib/Table/Cell.js.map +1 -1
  110. package/lib/Table/Cell.module.scss +8 -0
  111. package/lib/Table/CellWrapper.d.ts +11 -0
  112. package/lib/Table/CellWrapper.js +29 -0
  113. package/lib/Table/CellWrapper.js.map +1 -0
  114. package/lib/Table/EnhancedRenderers.d.ts +2 -2
  115. package/lib/Table/Header.d.ts +1 -1
  116. package/lib/Table/Row.d.ts +4 -4
  117. package/lib/Table/Row.js +6 -2
  118. package/lib/Table/Row.js.map +1 -1
  119. package/lib/Table/Table.d.ts +14 -19
  120. package/lib/Table/Table.js +103 -159
  121. package/lib/Table/Table.js.map +1 -1
  122. package/lib/Table/Table.module.scss +4 -16
  123. package/lib/Table/TableContent.d.ts +25 -0
  124. package/lib/Table/TableContent.js +49 -0
  125. package/lib/Table/TableContent.js.map +1 -0
  126. package/lib/Table/TableContent.module.scss +21 -0
  127. package/lib/Table/constants.d.ts +2 -0
  128. package/lib/Table/constants.js +3 -0
  129. package/lib/Table/constants.js.map +1 -0
  130. package/lib/Table/features/columnsSelection/CellCopyablePopover.d.ts +8 -0
  131. package/lib/Table/features/columnsSelection/CellCopyablePopover.js +13 -0
  132. package/lib/Table/features/columnsSelection/CellCopyablePopover.js.map +1 -0
  133. package/lib/Table/features/columnsSelection/CellCopyablePopover.module.scss +12 -0
  134. package/lib/Table/features/columnsSelection/columnsSelection.d.ts +19 -0
  135. package/lib/Table/features/columnsSelection/columnsSelection.js +71 -0
  136. package/lib/Table/features/columnsSelection/columnsSelection.js.map +1 -0
  137. package/lib/Table/features/columnsSelection/helpers.d.ts +7 -0
  138. package/lib/Table/features/columnsSelection/helpers.js +26 -0
  139. package/lib/Table/features/columnsSelection/helpers.js.map +1 -0
  140. package/lib/Table/features/columnsSelection/index.d.ts +3 -0
  141. package/lib/Table/features/columnsSelection/index.js +4 -0
  142. package/lib/Table/features/columnsSelection/index.js.map +1 -0
  143. package/lib/Tabs/Tab.d.ts +22 -8
  144. package/lib/Tabs/Tab.js +15 -4
  145. package/lib/Tabs/Tab.js.map +1 -1
  146. package/lib/Tabs/TabContext.d.ts +3 -3
  147. package/lib/Tabs/TabList.d.ts +1 -1
  148. package/lib/Tabs/TabPanel.d.ts +1 -1
  149. package/lib/Terminal.d.ts +1 -1
  150. package/lib/TextArea.d.ts +4 -4
  151. package/lib/TextAreaFormik.d.ts +1 -1
  152. package/lib/TextField.d.ts +6 -6
  153. package/lib/TextField.js +2 -2
  154. package/lib/TextField.js.map +1 -1
  155. package/lib/TextFieldFormik.d.ts +1 -1
  156. package/lib/TimeField.d.ts +3 -3
  157. package/lib/TimeField.js +4 -12
  158. package/lib/TimeField.js.map +1 -1
  159. package/lib/TimeField.module.scss +0 -87
  160. package/lib/TimeFieldFormik.d.ts +1 -1
  161. package/lib/Toast.d.ts +3 -3
  162. package/lib/Toggle.d.ts +3 -3
  163. package/lib/ToggleFormik.d.ts +1 -1
  164. package/lib/Tooltip.d.ts +6 -5
  165. package/lib/Tooltip.js +4 -14
  166. package/lib/Tooltip.js.map +1 -1
  167. package/lib/hooks/index.d.ts +0 -1
  168. package/lib/hooks/index.js +0 -1
  169. package/lib/hooks/index.js.map +1 -1
  170. package/lib/hooks/useCloseOnResize.d.ts +8 -0
  171. package/lib/hooks/useCloseOnResize.js +16 -0
  172. package/lib/hooks/useCloseOnResize.js.map +1 -0
  173. package/lib/hooks/useDimensions.d.ts +1 -1
  174. package/lib/hooks/useOnClickOutside.d.ts +1 -1
  175. package/lib/hooks/usePagination.d.ts +2 -2
  176. package/lib/index.d.ts +2 -4
  177. package/lib/index.js +2 -4
  178. package/lib/index.js.map +1 -1
  179. package/lib/utils/formik.d.ts +2 -2
  180. package/lib/utils/portal.d.ts +2 -0
  181. package/lib/utils/portal.js +15 -0
  182. package/lib/utils/portal.js.map +1 -0
  183. package/lib/utils/test.d.ts +3 -1
  184. package/lib/utils/test.js.map +1 -1
  185. package/lib/utils/types.d.ts +1 -1
  186. package/package.json +59 -55
  187. package/styles/constants/_colors.scss +2 -0
  188. package/styles/constants/_typography.scss +31 -21
  189. package/lib/Code.d.ts +0 -8
  190. package/lib/Code.js +0 -16
  191. package/lib/Code.js.map +0 -1
  192. package/lib/CodeEditor.d.ts +0 -28
  193. package/lib/CodeEditor.js +0 -180
  194. package/lib/CodeEditor.js.map +0 -1
  195. package/lib/CodeEditor.module.scss +0 -32
  196. package/lib/CodeEditorFormik.d.ts +0 -9
  197. package/lib/CodeEditorFormik.js +0 -14
  198. package/lib/CodeEditorFormik.js.map +0 -1
  199. package/lib/hooks/useTableCustomizableColumns.d.ts +0 -9
  200. package/lib/hooks/useTableCustomizableColumns.js +0 -21
  201. package/lib/hooks/useTableCustomizableColumns.js.map +0 -1
  202. package/styles/fonts.css +0 -26
@@ -1,17 +1,25 @@
1
- import { FC } from 'react';
1
+ import { FC, RefObject } from 'react';
2
2
  import { TableCellProps } from 'react-table';
3
- export declare type CellWarningProps = {
3
+ export type CellWarningProps = {
4
4
  align: 'left' | 'right';
5
5
  warning: string;
6
6
  };
7
7
  export declare const CellWarning: FC<CellWarningProps>;
8
- export declare type CellProps = {
8
+ export type CellProps = {
9
9
  /**
10
10
  * Number fields should be right aligned as that allows
11
11
  * you to compare them or add them up quickly in your head.
12
12
  */
13
13
  align?: 'left' | 'right' | 'center';
14
+ selected?: boolean;
14
15
  warning?: string;
15
16
  colSpan?: number;
17
+ cellId?: string;
18
+ selectionStartedRef?: RefObject<boolean>;
19
+ onMouseEnterSelection?: (id: string) => void;
20
+ onClickSelection?: (id: string, modifiers: {
21
+ ctrl: boolean;
22
+ shift: boolean;
23
+ }) => void;
16
24
  } & Omit<TableCellProps, 'key'>;
17
25
  export declare const Cell: FC<CellProps>;
package/lib/Table/Cell.js CHANGED
@@ -1,9 +1,11 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import { AlertTriangle } from 'react-feather';
3
3
  import { useUID } from 'react-uid';
4
4
  import cn from 'classnames';
5
5
  import { Icon } from '../Icon';
6
6
  import { Tooltip } from '../Tooltip';
7
+ import { useOpenCloseState } from '../hooks';
8
+ import { CellCopyablePopover } from './features/columnsSelection';
7
9
  import styles from './Cell.module.scss';
8
10
  export const CellWarning = ({ align, warning }) => {
9
11
  const id = useUID();
@@ -13,12 +15,42 @@ export const CellWarning = ({ align, warning }) => {
13
15
  }) },
14
16
  React.createElement(Icon, { icon: AlertTriangle, ariaLabelledBy: id, size: "small" })))));
15
17
  };
16
- export const Cell = ({ align = 'left', warning, colSpan, children, style, className, role }) => (React.createElement("div", { "data-test": "table-cell", className: cn(styles.td, {
17
- [styles.alignLeft]: align === 'left',
18
- [styles.alignRight]: align === 'right',
19
- [styles.alignCenter]: align === 'center',
20
- }, className), "aria-colspan": colSpan, style: style, role: role },
21
- warning && align === 'right' && React.createElement(CellWarning, { warning: warning, align: "right" }),
22
- children,
23
- warning && (align === 'left' || align === 'center') && React.createElement(CellWarning, { warning: warning, align: "left" })));
18
+ export const Cell = ({ align = 'left', warning, colSpan, children, style, className, role, cellId, onClickSelection, selected, onMouseEnterSelection, selectionStartedRef, }) => {
19
+ const rootRef = useRef(null);
20
+ const { isOpen, open, close } = useOpenCloseState();
21
+ const handleClick = (e) => {
22
+ if (onClickSelection && cellId) {
23
+ onClickSelection(cellId, {
24
+ shift: e.shiftKey,
25
+ ctrl: e.ctrlKey || e.metaKey,
26
+ });
27
+ }
28
+ };
29
+ const handleMouseEnter = () => {
30
+ if (cellId && onMouseEnterSelection && (selectionStartedRef === null || selectionStartedRef === void 0 ? void 0 : selectionStartedRef.current)) {
31
+ onMouseEnterSelection(cellId);
32
+ }
33
+ };
34
+ useEffect(() => {
35
+ if (!selected) {
36
+ close();
37
+ }
38
+ }, [close, selected]);
39
+ return (React.createElement(React.Fragment, null,
40
+ React.createElement("div", { ref: rootRef, "data-test": "table-cell", className: cn(styles.td, {
41
+ [styles.alignLeft]: align === 'left',
42
+ [styles.alignRight]: align === 'right',
43
+ [styles.alignCenter]: align === 'center',
44
+ [styles.selectable]: onClickSelection,
45
+ [styles.selected]: selected,
46
+ }, className), "aria-colspan": colSpan, style: style, role: role, onDoubleClick: selected ? open : undefined, onMouseEnter: onClickSelection ? handleMouseEnter : undefined, onMouseDown: onClickSelection ? handleClick : undefined },
47
+ warning && align === 'right' && React.createElement(CellWarning, { warning: warning, align: "right" }),
48
+ children,
49
+ warning && (align === 'left' || align === 'center') && React.createElement(CellWarning, { warning: warning, align: "left" })),
50
+ selected && (React.createElement(CellCopyablePopover, { anchorElement: rootRef.current, isOpen: isOpen, onClose: close, contentClassName: cn(styles.td, {
51
+ [styles.alignLeft]: align === 'left',
52
+ [styles.alignRight]: align === 'right',
53
+ [styles.alignCenter]: align === 'center',
54
+ }) }, children))));
55
+ };
24
56
  //# sourceMappingURL=Cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Cell.js","sourceRoot":"","sources":["../../src/Table/Cell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAyB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IACtE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAA;IAEnB,OAAO,CACL,oBAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,IAC9B,CAAC,UAAU,EAAE,EAAE,CAAC,CACf,0CACY,sBAAsB,EAChC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE;YAChC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,MAAM;YAC/B,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,OAAO;SAClC,CAAC;QAEF,oBAAC,IAAI,IAAC,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAC,OAAO,GAAG,CAC1D,CACP,CACO,CACX,CAAA;AACH,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,IAAI,GAAkB,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAC7G,0CACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,EAAE,EACT;QACE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,MAAM;QACpC,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,OAAO;QACtC,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,KAAK,KAAK,QAAQ;KACzC,EACD,SAAS,CACV,kBACa,OAAO,EACrB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI;IAET,OAAO,IAAI,KAAK,KAAK,OAAO,IAAI,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,OAAO,GAAG;IAC/E,QAAQ;IACR,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,oBAAC,WAAW,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,MAAM,GAAG,CAClG,CACP,CAAA"}
1
+ {"version":3,"file":"Cell.js","sourceRoot":"","sources":["../../src/Table/Cell.tsx"],"names":[],"mappings":"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"}
@@ -26,6 +26,10 @@
26
26
  justify-content: center;
27
27
  }
28
28
 
29
+ &.selected {
30
+ background: lighten((c.$colorPrimary), 30) !important;
31
+ }
32
+
29
33
  &:not(:last-of-type) {
30
34
  border-right: c.$borderWidth solid c.$colorNeutral;
31
35
  }
@@ -42,3 +46,7 @@
42
46
  margin-right: c.$grid * 2;
43
47
  }
44
48
  }
49
+
50
+ .selectable {
51
+ user-select: none;
52
+ }
@@ -0,0 +1,11 @@
1
+ import { RefObject } from 'react';
2
+ import { ColumnInterface, ColumnInterfaceBasedOnValue, Cell, UseResizeColumnsState } from 'react-table';
3
+ import { CellProps } from './Cell';
4
+ export type CellWrapperProps<D extends object> = CellProps & {
5
+ cell: Cell<D>;
6
+ selectable?: boolean;
7
+ column?: ColumnInterface<D> & ColumnInterfaceBasedOnValue;
8
+ selectedColumnValuesRef?: RefObject<(string | undefined)[][]>;
9
+ columnResizing: UseResizeColumnsState<D>['columnResizing'];
10
+ };
11
+ export declare const CellWrapper: <D extends object>(props: CellWrapperProps<D>) => JSX.Element;
@@ -0,0 +1,29 @@
1
+ import React, { useEffect } from 'react';
2
+ import { ROW_EXPANDER_COLUMN_ID } from './constants';
3
+ import { Cell as TableCell } from './Cell';
4
+ import { EnhancedCellRenderer } from './EnhancedRenderers';
5
+ export const CellWrapper = (props) => {
6
+ const { selectable, column, cell, columnResizing, selectedColumnValuesRef, onClickSelection, onMouseEnterSelection, selectionStartedRef, ...rest } = props;
7
+ const isSelectable = selectable && (column === null || column === void 0 ? void 0 : column.id) !== ROW_EXPANDER_COLUMN_ID;
8
+ useEffect(() => {
9
+ if (rest.cellId) {
10
+ const [rowIndex, cellIndex] = rest.cellId.split(':');
11
+ if (selectedColumnValuesRef === null || selectedColumnValuesRef === void 0 ? void 0 : selectedColumnValuesRef.current) {
12
+ if (rest.selected) {
13
+ const row = selectedColumnValuesRef.current[Number(rowIndex)];
14
+ if (row) {
15
+ row[Number(cellIndex)] = typeof cell.value !== 'object' ? String(cell.value) : '';
16
+ }
17
+ }
18
+ else {
19
+ if (selectedColumnValuesRef.current[Number(rowIndex)] && selectedColumnValuesRef.current[Number(rowIndex)][Number(cellIndex)]) {
20
+ selectedColumnValuesRef.current[Number(rowIndex)][Number(cellIndex)] = undefined;
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }, [rest, cell, selectedColumnValuesRef]);
26
+ const content = column ? (React.createElement(EnhancedCellRenderer, { cell: cell, hasCellRenderer: !!column.Cell, columnResizing: columnResizing })) : (cell.render('Cell'));
27
+ return (React.createElement(TableCell, { onClickSelection: isSelectable ? onClickSelection : undefined, selectionStartedRef: isSelectable ? selectionStartedRef : undefined, onMouseEnterSelection: isSelectable ? onMouseEnterSelection : undefined, ...rest }, content));
28
+ };
29
+ //# sourceMappingURL=CellWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellWrapper.js","sourceRoot":"","sources":["../../src/Table/CellWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAa,SAAS,EAAE,MAAM,OAAO,CAAA;AAGnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAa,IAAI,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAU1D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmB,KAA0B,EAAE,EAAE;IAC1E,MAAM,EACJ,UAAU,EACV,MAAM,EACN,IAAI,EACJ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,GAAG,IAAI,EACR,GAAG,KAAK,CAAA;IAET,MAAM,YAAY,GAAG,UAAU,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,MAAK,sBAAsB,CAAA;IAExE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAA;YAExE,IAAI,uBAAuB,aAAvB,uBAAuB,uBAAvB,uBAAuB,CAAE,OAAO,EAAE;gBACpC,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACjB,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;oBAC7D,IAAI,GAAG,EAAE;wBACP,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;qBAClF;iBACF;qBAAM;oBACL,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;wBAC7H,uBAAuB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;qBACjF;iBACF;aACF;SACF;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAEzC,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CACvB,oBAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,cAAc,GAAI,CACrG,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CACpB,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IACR,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,EAC7D,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,EACnE,qBAAqB,EAAE,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,KACnE,IAAI,IAEP,OAAO,CACE,CACb,CAAA;AACH,CAAC,CAAA"}
@@ -9,13 +9,13 @@ import { Cell as CellType, HeaderGroup, UseResizeColumnsState } from 'react-tabl
9
9
  * The above also applies to simple functions returning string - react-table transforms them into react components.
10
10
  * Here's how react-table renderers are made: https://github.com/tannerlinsley/react-table/blob/6e2fe31ac028e543ce0f9d56168d5f922389fbbc/src/publicUtils.js#L199
11
11
  */
12
- export declare type EnhancedHeaderFooterRendererProps<D extends object> = {
12
+ export type EnhancedHeaderFooterRendererProps<D extends object> = {
13
13
  column: HeaderGroup<D>;
14
14
  columnResizing: UseResizeColumnsState<D>['columnResizing'];
15
15
  type: 'Header' | 'Footer';
16
16
  };
17
17
  export declare const EnhancedHeaderFooterRenderer: <D extends object>({ column, columnResizing, type }: EnhancedHeaderFooterRendererProps<D>) => JSX.Element;
18
- export declare type EnhancedCellRendererProps<D extends object> = {
18
+ export type EnhancedCellRendererProps<D extends object> = {
19
19
  cell: CellType<D, ReactText>;
20
20
  hasCellRenderer: boolean;
21
21
  columnResizing: UseResizeColumnsState<D>['columnResizing'];
@@ -1,6 +1,6 @@
1
1
  import { FC, MouseEvent, KeyboardEvent, DragEvent } from 'react';
2
2
  import { TableHeaderProps, TableResizerProps } from 'react-table';
3
- export declare type HeaderProps = {
3
+ export type HeaderProps = {
4
4
  /**
5
5
  * Number fields should be right aligned as that allows
6
6
  * you to compare them or add them up quickly in your head.
@@ -1,16 +1,16 @@
1
1
  import { FC, AnchorHTMLAttributes } from 'react';
2
2
  import { TableHeaderGroupProps } from 'react-table';
3
- declare type RowBase = Omit<TableHeaderGroupProps, 'key'> & {
3
+ type RowBase = Omit<TableHeaderGroupProps, 'key'> & {
4
4
  ariaRowIndex?: number;
5
5
  };
6
- export declare type RowProps = RowBase & {
6
+ export type RowProps = RowBase & {
7
7
  onClick?: () => void;
8
8
  };
9
- export declare type LinkRowProps = RowBase & {
9
+ export type LinkRowProps = RowBase & {
10
10
  href: string;
11
11
  AnchorComponent?: FC<AnchorHTMLAttributes<HTMLAnchorElement>>;
12
12
  };
13
- export declare type HeaderRowProps = RowBase;
13
+ export type HeaderRowProps = RowBase;
14
14
  export declare const Row: FC<RowProps>;
15
15
  export declare const LinkRow: FC<LinkRowProps>;
16
16
  export declare const HeaderRow: FC<HeaderRowProps>;
package/lib/Table/Row.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import cn from 'classnames';
3
3
  import styles from './Row.module.scss';
4
+ import { useUID } from 'react-uid';
4
5
  import { keyIsOneOf } from '../utils/keyboard';
5
6
  export const Row = ({ children, className, style, role, ariaRowIndex, onClick }) => {
6
7
  const onKeyPress = useCallback((event) => {
@@ -15,7 +16,10 @@ export const Row = ({ children, className, style, role, ariaRowIndex, onClick })
15
16
  };
16
17
  // eslint-disable-next-line jsx-a11y/anchor-has-content
17
18
  const DefaultAnchor = (props) => React.createElement("a", { ...props });
18
- export const LinkRow = ({ children, className, style, role, ariaRowIndex, href, AnchorComponent = DefaultAnchor }) => (React.createElement("div", { "data-test": "table-cell-row", className: cn(styles.linkRow, className), role: role, "aria-rowindex": ariaRowIndex },
19
- React.createElement(AnchorComponent, { className: styles.link, style: style, href: href }, children)));
19
+ export const LinkRow = ({ children, className, style, role, ariaRowIndex, href, AnchorComponent = DefaultAnchor }) => {
20
+ const anchorId = useUID();
21
+ return (React.createElement("div", { "data-test": "table-cell-row", className: cn(styles.linkRow, className), role: role, "aria-rowindex": ariaRowIndex, "aria-owns": anchorId },
22
+ React.createElement(AnchorComponent, { className: styles.link, style: style, href: href, id: anchorId }, children)));
23
+ };
20
24
  export const HeaderRow = ({ children, className, style, role, ariaRowIndex }) => (React.createElement("div", { "data-test": "table-header-row", className: cn(styles.headerRow, className), style: style, role: role, "aria-rowindex": ariaRowIndex }, children));
21
25
  //# sourceMappingURL=Row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../src/Table/Row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAuC,MAAM,OAAO,CAAA;AACnF,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAO9C,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/F,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAoC,EAAE,EAAE;QACvC,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE;YACzC,OAAO,EAAE,CAAA;SACV;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,OAAO,CACL,0CACY,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EACV;YACE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO;SAC9B,EACD,SAAS,CACV,EACD,KAAK,EAAE,KAAK,mBACG,YAAY,EAC3B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACjC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC5C,OAAO,EAAE,OAAO,IAEf,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,uDAAuD;AACvD,MAAM,aAAa,GAAgD,CAAC,KAAK,EAAE,EAAE,CAAC,8BAAO,KAAK,GAAI,CAAA;AAE9F,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,aAAa,EAAE,EAAE,EAAE,CAAC,CACtI,0CAAe,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,mBAAiB,YAAY;IAC/G,oBAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAC9D,QAAQ,CACO,CACd,CACP,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CACnG,0CAAe,kBAAkB,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,mBAAiB,YAAY,IAChI,QAAQ,CACL,CACP,CAAA"}
1
+ {"version":3,"file":"Row.js","sourceRoot":"","sources":["../../src/Table/Row.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAuC,MAAM,OAAO,CAAA;AACnF,OAAO,EAAE,MAAM,YAAY,CAAA;AAE3B,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAO9C,MAAM,CAAC,MAAM,GAAG,GAAiB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,EAAE;IAC/F,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAoC,EAAE,EAAE;QACvC,KAAK,CAAC,cAAc,EAAE,CAAA;QACtB,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE;YACzC,OAAO,EAAE,CAAA;SACV;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,OAAO,CACL,0CACY,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EACV;YACE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO;SAC9B,EACD,SAAS,CACV,EACD,KAAK,EAAE,KAAK,mBACG,YAAY,EAC3B,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EACjC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAC5C,OAAO,EAAE,OAAO,IAEf,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA;AAED,uDAAuD;AACvD,MAAM,aAAa,GAAgD,CAAC,KAAK,EAAE,EAAE,CAAC,8BAAO,KAAK,GAAI,CAAA;AAE9F,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,GAAG,aAAa,EAAE,EAAE,EAAE;IACrI,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAA;IAEzB,OAAO,CACL,0CAAe,gBAAgB,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,mBAAiB,YAAY,eAAa,QAAQ;QACpI,oBAAC,eAAe,IAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,IAC5E,QAAQ,CACO,CACd,CACP,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAuB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CACnG,0CAAe,kBAAkB,EAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,mBAAiB,YAAY,IAChI,QAAQ,CACL,CACP,CAAA"}
@@ -1,15 +1,15 @@
1
1
  import { DataTestProp } from '@hazelcast/helpers';
2
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';
3
+ import { TableOptions, Row as RowType, Cell as CellType, Column as ColumnType, TableInstance } 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, Cell, Renderer, Row, CellProps, HeaderGroup, TableInstance } from 'react-table';
8
- export declare type Column<T extends object> = ColumnType<T> & {
7
+ export type { Accessor, Cell, Renderer, Row, CellProps, HeaderGroup, TableInstance, TableState } from 'react-table';
8
+ export type Column<T extends object> = ColumnType<T> & {
9
9
  canHide?: boolean;
10
10
  };
11
11
  declare module 'react-table' {
12
- interface TableOptions<D extends object = {}> extends UsePaginationOptions<D & UseExpandedRowProps<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>, UseExpandedOptions<D>, UseResizeColumnsOptions<D>, Record<string, any> {
13
13
  }
14
14
  interface Hooks<D extends object = {}> extends UseSortByHooks<D>, UseRowSelectHooks<D>, UseGroupByHooks<D> {
15
15
  }
@@ -28,27 +28,27 @@ declare module 'react-table' {
28
28
  interface Row<D extends object = {}> extends UseGroupByRowProps<D>, UseRowSelectRowProps<D>, UseExpandedRowProps<D> {
29
29
  }
30
30
  }
31
- export declare type PaginationOptions = Partial<Pick<PaginationProps, 'pageSizeOptions'>>;
31
+ export type PaginationOptions = Partial<Pick<PaginationProps, 'pageSizeOptions'>>;
32
32
  /**
33
33
  * `defaultPageSize` should be one of the values in `pageSizeOptions`.
34
34
  * If it's not it won't break anything but it is a bad UX
35
35
  * because once user selects different page size he won't be able to select
36
36
  * `defaultPageSize` again.
37
37
  */
38
- declare type ExtendedPaginationProps = {
38
+ type ExtendedPaginationProps = {
39
39
  paginationOptions?: PaginationOptions;
40
40
  defaultPageSize?: number;
41
41
  hidePagination?: boolean;
42
42
  };
43
- export declare type PaginationChangeProps = {
43
+ export type PaginationChangeProps = {
44
44
  pageSize: number;
45
45
  pageIndex: number;
46
46
  };
47
- export declare type ControlledPaginationProps = {
47
+ export type ControlledPaginationProps = {
48
48
  manualPagination?: boolean;
49
49
  onPaginationChange?: (paginationChangeProps: PaginationChangeProps) => void;
50
50
  };
51
- declare type CustomTableRowClickProps<D extends object> = {
51
+ type CustomTableRowClickProps<D extends object> = {
52
52
  onRowClick?: (rowInfo: RowType<D>) => void;
53
53
  getHref?: never;
54
54
  AnchorComponent?: never;
@@ -57,7 +57,7 @@ declare type CustomTableRowClickProps<D extends object> = {
57
57
  onRowClick?: never;
58
58
  AnchorComponent?: FC<AnchorHTMLAttributes<HTMLAnchorElement>>;
59
59
  };
60
- declare type CustomTableProps<D extends object> = {
60
+ type CustomTableProps<D extends object> = {
61
61
  loading?: boolean;
62
62
  overlayLoading?: boolean;
63
63
  className?: string;
@@ -76,17 +76,12 @@ declare type CustomTableProps<D extends object> = {
76
76
  onPageChange?: (newPage: number) => void;
77
77
  onRowSelect?: (ids: string[]) => void;
78
78
  columnsOrdering?: boolean;
79
- storageKey?: string;
80
- children?: (table: ReactElement, toggleColumnsControl: ReactElement) => ReactElement;
79
+ children?: (table: ReactElement, tableInstance: TableInstance<D>) => ReactElement;
81
80
  renderRowSubComponent?: (props: RowType<D>) => ReactNode;
81
+ onCopy?: (data: (string | undefined)[][]) => void;
82
82
  } & CustomTableRowClickProps<D> & DataTestProp;
83
- export declare type TableProps<D extends object> = TableOptions<D> & ExtendedPaginationProps & ControlledPaginationProps & CustomTableProps<D>;
83
+ export type TableProps<D extends object> = TableOptions<D> & ExtendedPaginationProps & ControlledPaginationProps & CustomTableProps<D>;
84
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;
90
85
  /**
91
86
  * ### Purpose
92
87
  * Table component allows to arrange data in rows and columns.
@@ -97,4 +92,4 @@ export declare type TableLocalState<T extends object> = (TableState<T> & {
97
92
  * - Rows can be clickable. If you supply Table with `getHref` function rows will become <a> tags!
98
93
  * - Is able to resize columns out of the box
99
94
  */
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;
95
+ 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, renderRowSubComponent, autoResetExpanded, onCopy, }: TableProps<D>) => ReactElement;