@economic/taco 1.1.4 → 1.1.5-alpha.102
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/README.md +82 -82
- package/dist/components/Icon/components/LogOut.d.ts +3 -0
- package/dist/components/Icon/components/Menu.d.ts +3 -0
- package/dist/components/Icon/components/Numbers.d.ts +3 -0
- package/dist/components/Icon/components/Profile.d.ts +3 -0
- package/dist/components/Icon/components/index.d.ts +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Menu/Menu.d.ts +2 -2
- package/dist/components/Menu/components/Item.d.ts +1 -1
- package/dist/components/Menu/components/Link.d.ts +1 -1
- package/dist/components/Tour/Tour.d.ts +2 -0
- package/dist/esm/components/Banner/util.js +1 -1
- package/dist/esm/components/Banner/util.js.map +1 -1
- package/dist/esm/components/Button/util.js +18 -23
- package/dist/esm/components/Button/util.js.map +1 -1
- package/dist/esm/components/Card/Card.js +3 -0
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Combobox/Combobox.js +1 -0
- package/dist/esm/components/Combobox/Combobox.js.map +1 -1
- package/dist/esm/components/Combobox/useCombobox.js +67 -87
- package/dist/esm/components/Combobox/useCombobox.js.map +1 -1
- package/dist/esm/components/Datepicker/useDatepicker.js +27 -34
- package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/components/Dialog/Context.js +4 -4
- package/dist/esm/components/Dialog/Context.js.map +1 -1
- package/dist/esm/components/Dialog/components/Content.js +39 -44
- package/dist/esm/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/components/Dialog/components/Drawer.js +3 -3
- package/dist/esm/components/Dialog/components/Drawer.js.map +1 -1
- package/dist/esm/components/Dialog/components/Extra.js +2 -2
- package/dist/esm/components/Dialog/components/Extra.js.map +1 -1
- package/dist/esm/components/Dialog/components/Trigger.js +3 -3
- package/dist/esm/components/Dialog/components/Trigger.js.map +1 -1
- package/dist/esm/components/Hanger/Hanger.js +1 -1
- package/dist/esm/components/Hanger/Hanger.js.map +1 -1
- package/dist/esm/components/Icon/components/LogOut.js +20 -0
- package/dist/esm/components/Icon/components/LogOut.js.map +1 -0
- package/dist/esm/components/Icon/components/Menu.js +18 -0
- package/dist/esm/components/Icon/components/Menu.js.map +1 -0
- package/dist/esm/components/Icon/components/Numbers.js +18 -0
- package/dist/esm/components/Icon/components/Numbers.js.map +1 -0
- package/dist/esm/components/Icon/components/Profile.js +20 -0
- package/dist/esm/components/Icon/components/Profile.js.map +1 -0
- package/dist/esm/components/Icon/components/index.js +12 -4
- package/dist/esm/components/Icon/components/index.js.map +1 -1
- package/dist/esm/components/Input/util.js +2 -2
- package/dist/esm/components/Input/util.js.map +1 -1
- package/dist/esm/components/Listbox/ScrollableList.js +64 -83
- package/dist/esm/components/Listbox/ScrollableList.js.map +1 -1
- package/dist/esm/components/Listbox/useListbox.js +51 -60
- package/dist/esm/components/Listbox/useListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useMultiListbox.js +64 -91
- package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -1
- package/dist/esm/components/Listbox/useTypeahead.js +10 -9
- package/dist/esm/components/Listbox/useTypeahead.js.map +1 -1
- package/dist/esm/components/Listbox/util.js +48 -85
- package/dist/esm/components/Listbox/util.js.map +1 -1
- package/dist/esm/components/Menu/Context.js +2 -2
- package/dist/esm/components/Menu/Context.js.map +1 -1
- package/dist/esm/components/Menu/components/Checkbox.js +9 -10
- package/dist/esm/components/Menu/components/Checkbox.js.map +1 -1
- package/dist/esm/components/Menu/components/Content.js +9 -11
- package/dist/esm/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/components/Menu/components/Header.js +3 -3
- package/dist/esm/components/Menu/components/Header.js.map +1 -1
- package/dist/esm/components/Menu/components/Item.js +30 -31
- package/dist/esm/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/components/Menu/components/Link.js +10 -11
- package/dist/esm/components/Menu/components/Link.js.map +1 -1
- package/dist/esm/components/Menu/components/RadioGroup.js +17 -19
- package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -1
- package/dist/esm/components/Menu/components/Separator.js +1 -1
- package/dist/esm/components/Menu/components/Separator.js.map +1 -1
- package/dist/esm/components/Menu/components/Trigger.js +4 -4
- package/dist/esm/components/Menu/components/Trigger.js.map +1 -1
- package/dist/esm/components/Pagination/PageNumbers.js +23 -28
- package/dist/esm/components/Pagination/PageNumbers.js.map +1 -1
- package/dist/esm/components/Pagination/usePagination.js +7 -21
- package/dist/esm/components/Pagination/usePagination.js.map +1 -1
- package/dist/esm/components/Pagination/usePaginationShortcuts.js +9 -9
- package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -1
- package/dist/esm/components/Popover/Popover.js +1 -1
- package/dist/esm/components/Popover/Popover.js.map +1 -1
- package/dist/esm/components/Popover/Primitives.js +7 -8
- package/dist/esm/components/Popover/Primitives.js.map +1 -1
- package/dist/esm/components/SearchInput/SearchInput.js +4 -1
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
- package/dist/esm/components/Select/useSelect.js +63 -81
- package/dist/esm/components/Select/useSelect.js.map +1 -1
- package/dist/esm/components/Table/components/BaseTable.js +23 -30
- package/dist/esm/components/Table/components/BaseTable.js.map +1 -1
- package/dist/esm/components/Table/components/PaginatedTable.js +3 -7
- package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -1
- package/dist/esm/components/Table/components/Table.js +18 -25
- package/dist/esm/components/Table/components/Table.js.map +1 -1
- package/dist/esm/components/Table/components/WindowedTable.js +89 -109
- package/dist/esm/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js +122 -146
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +57 -61
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +39 -36
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -1
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +79 -89
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
- package/dist/esm/components/Table/hooks/useRowCreation.js +29 -64
- package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTable.js +119 -141
- package/dist/esm/components/Table/hooks/useTable.js.map +1 -1
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +13 -16
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
- package/dist/esm/components/Table/util/renderColumn.js +10 -10
- package/dist/esm/components/Table/util/renderColumn.js.map +1 -1
- package/dist/esm/components/Table/util/renderRow.js +37 -46
- package/dist/esm/components/Table/util/renderRow.js.map +1 -1
- package/dist/esm/components/Table/util/rowIndexPath.js +14 -16
- package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -1
- package/dist/esm/components/Table/util/sortTypes.js +23 -31
- package/dist/esm/components/Table/util/sortTypes.js.map +1 -1
- package/dist/esm/components/Table/util.js +29 -41
- package/dist/esm/components/Table/util.js.map +1 -1
- package/dist/esm/components/Toast/Toast.js +21 -22
- package/dist/esm/components/Toast/Toast.js.map +1 -1
- package/dist/esm/components/Toast/util.js +2 -2
- package/dist/esm/components/Toast/util.js.map +1 -1
- package/dist/esm/components/Tour/Tour.js +3 -1
- package/dist/esm/components/Tour/Tour.js.map +1 -1
- package/dist/esm/index.css +661 -661
- package/dist/esm/index.js +4 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/primitives/Button.js +9 -13
- package/dist/esm/primitives/Button.js.map +1 -1
- package/dist/esm/utils/date.js.map +1 -1
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -1
- package/dist/esm/utils/hooks/useDraggable.js +16 -17
- package/dist/esm/utils/hooks/useDraggable.js.map +1 -1
- package/dist/esm/utils/hooks/useDropTarget.js.map +1 -1
- package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -1
- package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -1
- package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -1
- package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -1
- package/dist/esm/utils/hooks/useTimer.js +9 -17
- package/dist/esm/utils/hooks/useTimer.js.map +1 -1
- package/dist/esm/utils/input.js +7 -11
- package/dist/esm/utils/input.js.map +1 -1
- package/dist/esm/utils/mergeRefs.js +1 -1
- package/dist/esm/utils/mergeRefs.js.map +1 -1
- package/dist/esm/utils/taillwind.js +2 -2
- package/dist/esm/utils/taillwind.js.map +1 -1
- package/dist/index.css +661 -661
- package/dist/index.d.ts +4 -1
- package/dist/taco.cjs.development.js +1566 -1823
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/utils/mergeRefs.d.ts +1 -1
- package/package.json +6 -7
- package/plugins/tailwindcss-aria-attributes.js +73 -73
- package/tailwind.config.js +9 -0
- package/types.json +2612 -7006
@@ -1,14 +1,14 @@
|
|
1
|
-
import { extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
import cn from 'classnames';
|
4
3
|
import { Icon } from '../../Icon/Icon.js';
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
5
|
+
const Column = ({
|
6
|
+
cell
|
7
|
+
}) => {
|
8
|
+
const props = { ...cell.getHeaderProps(),
|
9
|
+
...(cell.getSortByToggleProps && cell.getSortByToggleProps({
|
10
|
+
title: undefined
|
11
|
+
})),
|
12
12
|
className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-darkest hover:text-black', cell.className, {
|
13
13
|
'yt-table__cell__group': !!cell.columns,
|
14
14
|
'cursor-pointer': !cell.disableSorting,
|
@@ -16,10 +16,10 @@ var Column = function Column(_ref) {
|
|
16
16
|
'justify-end text-right': cell.align === 'right',
|
17
17
|
'justify-center text-center': cell.align === 'center' || !cell.align
|
18
18
|
}),
|
19
|
-
style:
|
19
|
+
style: { ...cell.style,
|
20
20
|
flex: cell.flex
|
21
|
-
}
|
22
|
-
}
|
21
|
+
}
|
22
|
+
};
|
23
23
|
|
24
24
|
if (cell.isSorted) {
|
25
25
|
props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"renderColumn.js","sources":["../../../../../src/components/Table/util/renderColumn.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../../Icon/Icon';\n\nexport const Column = ({ cell }: any): any => {\n const props = {\n ...cell.getHeaderProps(),\n ...(cell.getSortByToggleProps && cell.getSortByToggleProps({ title: undefined })),\n className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-darkest hover:text-black', cell.className, {\n 'yt-table__cell__group': !!cell.columns,\n 'cursor-pointer': !cell.disableSorting,\n 'justify-start text-left': cell.align === 'left',\n 'justify-end text-right': cell.align === 'right',\n 'justify-center text-center': cell.align === 'center' || !cell.align,\n }),\n style: { ...cell.style, flex: cell.flex },\n };\n\n if (cell.isSorted) {\n props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';\n }\n\n return (\n <div {...props} key={cell.id} data-taco=\"table-column\">\n <span className=\"truncate\">{cell.render('Header')}</span>\n {cell.isSorted ? (\n <Icon name={cell.isSortedDesc ? 'chevron-down-solid' : 'chevron-up-solid'} className=\"-mt-0.5\" />\n ) : null}\n </div>\n );\n};\n"],"names":["Column","cell","props","getHeaderProps","getSortByToggleProps","title","undefined","className","cn","columns","disableSorting","align","style","flex","isSorted","isSortedDesc","React","key","id","render","Icon","name"],"mappings":"
|
1
|
+
{"version":3,"file":"renderColumn.js","sources":["../../../../../src/components/Table/util/renderColumn.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../../Icon/Icon';\n\nexport const Column = ({ cell }: any): any => {\n const props = {\n ...cell.getHeaderProps(),\n ...(cell.getSortByToggleProps && cell.getSortByToggleProps({ title: undefined })),\n className: cn('yt-table__cell flex flex-1 truncate p-2 align-middle text-grey-darkest hover:text-black', cell.className, {\n 'yt-table__cell__group': !!cell.columns,\n 'cursor-pointer': !cell.disableSorting,\n 'justify-start text-left': cell.align === 'left',\n 'justify-end text-right': cell.align === 'right',\n 'justify-center text-center': cell.align === 'center' || !cell.align,\n }),\n style: { ...cell.style, flex: cell.flex },\n };\n\n if (cell.isSorted) {\n props['aria-sort'] = cell.isSortedDesc ? 'descending' : 'ascending';\n }\n\n return (\n <div {...props} key={cell.id} data-taco=\"table-column\">\n <span className=\"truncate\">{cell.render('Header')}</span>\n {cell.isSorted ? (\n <Icon name={cell.isSortedDesc ? 'chevron-down-solid' : 'chevron-up-solid'} className=\"-mt-0.5\" />\n ) : null}\n </div>\n );\n};\n"],"names":["Column","cell","props","getHeaderProps","getSortByToggleProps","title","undefined","className","cn","columns","disableSorting","align","style","flex","isSorted","isSortedDesc","React","key","id","render","Icon","name"],"mappings":";;;;MAIaA,MAAM,GAAG,CAAC;EAAEC;AAAF,CAAD;EAClB,MAAMC,KAAK,GAAG,EACV,GAAGD,IAAI,CAACE,cAAL,EADO;IAEV,IAAIF,IAAI,CAACG,oBAAL,IAA6BH,IAAI,CAACG,oBAAL,CAA0B;MAAEC,KAAK,EAAEC;KAAnC,CAAjC,CAFU;IAGVC,SAAS,EAAEC,EAAE,CAAC,yFAAD,EAA4FP,IAAI,CAACM,SAAjG,EAA4G;MACrH,yBAAyB,CAAC,CAACN,IAAI,CAACQ,OADqF;MAErH,kBAAkB,CAACR,IAAI,CAACS,cAF6F;MAGrH,2BAA2BT,IAAI,CAACU,KAAL,KAAe,MAH2E;MAIrH,0BAA0BV,IAAI,CAACU,KAAL,KAAe,OAJ4E;MAKrH,8BAA8BV,IAAI,CAACU,KAAL,KAAe,QAAf,IAA2B,CAACV,IAAI,CAACU;KALtD,CAHH;IAUVC,KAAK,EAAE,EAAE,GAAGX,IAAI,CAACW,KAAV;MAAiBC,IAAI,EAAEZ,IAAI,CAACY;;GAVvC;;EAaA,IAAIZ,IAAI,CAACa,QAAT,EAAmB;IACfZ,KAAK,CAAC,WAAD,CAAL,GAAqBD,IAAI,CAACc,YAAL,GAAoB,YAApB,GAAmC,WAAxD;;;EAGJ,OACIC,4BAAA,MAAA,oBAASd;IAAOe,GAAG,EAAEhB,IAAI,CAACiB;iBAAc;IAAxC,EACIF,4BAAA,OAAA;IAAMT,SAAS,EAAC;GAAhB,EAA4BN,IAAI,CAACkB,MAAL,CAAY,QAAZ,CAA5B,CADJ,EAEKlB,IAAI,CAACa,QAAL,GACGE,4BAAA,CAACI,IAAD;IAAMC,IAAI,EAAEpB,IAAI,CAACc,YAAL,GAAoB,oBAApB,GAA2C;IAAoBR,SAAS,EAAC;GAArF,CADH,GAEG,IAJR,CADJ;AAQH;;;;"}
|
@@ -1,78 +1,73 @@
|
|
1
|
-
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
import cn from 'classnames';
|
4
3
|
import { sanitizeRowProps } from '../util.js';
|
5
4
|
import { FocusScope } from '@react-aria/focus';
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
var renderCell = function renderCell(cell, row) {
|
10
|
-
var props = _extends({}, cell.getCellProps(), {
|
6
|
+
const renderCell = (cell, row) => {
|
7
|
+
const props = { ...cell.getCellProps(),
|
11
8
|
className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {
|
12
9
|
'justify-start text-left': cell.column.align === 'left',
|
13
10
|
'justify-end text-right': cell.column.align === 'right',
|
14
11
|
'text-center': !cell.column.align
|
15
12
|
}),
|
16
|
-
style:
|
13
|
+
style: { ...cell.column.style,
|
17
14
|
flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex
|
18
|
-
}
|
19
|
-
}
|
20
|
-
|
15
|
+
}
|
16
|
+
};
|
21
17
|
return React__default.createElement("div", Object.assign({}, props, {
|
22
18
|
role: "gridcell",
|
23
19
|
"data-taco": "table-cell"
|
24
20
|
}), cell.render('Cell') || null);
|
25
21
|
};
|
26
22
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
23
|
+
const Row = /*#__PURE__*/React__default.forwardRef(function TableRow({
|
24
|
+
row,
|
25
|
+
index,
|
26
|
+
instance,
|
27
|
+
headerGroups,
|
28
|
+
...rowProps
|
29
|
+
}, ref) {
|
30
|
+
const {
|
31
|
+
activeIndex,
|
32
|
+
onRowClick,
|
33
|
+
rowClassName,
|
34
|
+
rowExpansionRenderer,
|
35
|
+
rowHeight,
|
36
|
+
setActiveIndex,
|
37
|
+
style,
|
38
|
+
inlineEditingUniqueId
|
39
|
+
} = rowProps;
|
40
|
+
const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);
|
41
|
+
const props = { ...row.getRowProps(),
|
42
|
+
style: { ...style,
|
43
|
+
minHeight: rowHeight ? `${rowHeight}px` : undefined,
|
44
|
+
paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined
|
45
|
+
},
|
48
46
|
className: cn('yt-table__row border-grey-light flex border-b min-h-[2.5rem] hover:bg-grey-light', {
|
49
47
|
'yt-table__row--active bg-grey-light hover:bg-grey-light': activeIndex === index,
|
50
48
|
'yt-table__row--clickable': !!onRowClick,
|
51
49
|
'yt-table__row--dragging': !!row.isDragging,
|
52
50
|
'yt-table__row--editing': !!row.isEditing
|
53
51
|
}, typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName),
|
54
|
-
onClick: onRowClick ?
|
52
|
+
onClick: onRowClick ? event => {
|
55
53
|
if (event.target === event.currentTarget || event.target.classList.contains('yt-table__cell')) {
|
56
54
|
event.preventDefault();
|
57
55
|
event.persist();
|
58
56
|
setActiveIndex(index);
|
59
57
|
onRowClick(sanitizedRow);
|
60
58
|
}
|
61
|
-
} :
|
59
|
+
} : () => {
|
62
60
|
setActiveIndex(index);
|
63
61
|
}
|
64
|
-
}
|
65
|
-
|
66
|
-
var cells = row.cells;
|
62
|
+
};
|
63
|
+
let cells = row.cells;
|
67
64
|
|
68
65
|
if (row.depth > 0) {
|
69
|
-
cells = row.cells.filter(
|
70
|
-
return !cell.column.hiddenOnSubRows;
|
71
|
-
});
|
66
|
+
cells = row.cells.filter(cell => !cell.column.hiddenOnSubRows);
|
72
67
|
}
|
73
68
|
|
74
|
-
|
75
|
-
|
69
|
+
const expandedRow = rowExpansionRenderer && row.isExpanded && React__default.createElement("div", null, rowExpansionRenderer(sanitizedRow, instance));
|
70
|
+
const rowContent = React__default.useMemo(() => {
|
76
71
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement(FocusScope, {
|
77
72
|
key: row.original._createKey,
|
78
73
|
contain: true,
|
@@ -89,9 +84,7 @@ var Row = /*#__PURE__*/React__default.forwardRef(function TableRow(_ref, ref) {
|
|
89
84
|
type: "hidden",
|
90
85
|
name: "_inlineEditingUniqueId",
|
91
86
|
value: row.original[inlineEditingUniqueId]
|
92
|
-
}), cells.map(
|
93
|
-
return renderCell(cell, sanitizedRow);
|
94
|
-
}))), expandedRow);
|
87
|
+
}), cells.map(cell => renderCell(cell, sanitizedRow)))), expandedRow);
|
95
88
|
}, [row.original._createKey]);
|
96
89
|
|
97
90
|
if (row.isEditing) {
|
@@ -101,9 +94,7 @@ var Row = /*#__PURE__*/React__default.forwardRef(function TableRow(_ref, ref) {
|
|
101
94
|
return React__default.createElement(React__default.Fragment, null, React__default.createElement("div", Object.assign({}, props, {
|
102
95
|
role: "row",
|
103
96
|
ref: ref
|
104
|
-
}), cells.map(
|
105
|
-
return renderCell(cell, sanitizedRow);
|
106
|
-
})), expandedRow);
|
97
|
+
}), cells.map(cell => renderCell(cell, sanitizedRow))), expandedRow);
|
107
98
|
});
|
108
99
|
|
109
100
|
export { Row };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"renderRow.js","sources":["../../../../../src/components/Table/util/renderRow.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { FocusScope } from '@react-aria/focus';\nimport { InternalTableCell, TableRow } from '../types';\nimport { sanitizeRowProps } from '../util';\n\nconst renderCell = (cell: InternalTableCell, row: TableRow<any>): JSX.Element => {\n const props = {\n ...cell.getCellProps(),\n className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {\n 'justify-start text-left': cell.column.align === 'left',\n 'justify-end text-right': cell.column.align === 'right',\n 'text-center': !cell.column.align,\n }),\n style: {\n ...cell.column.style,\n flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex,\n },\n };\n return (\n <div {...props} role=\"gridcell\" data-taco=\"table-cell\">\n {cell.render('Cell') || null}\n </div>\n );\n};\n\nexport const Row = React.forwardRef(function TableRow({ row, index, instance, headerGroups, ...rowProps }: any, ref: any) {\n const {\n activeIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n setActiveIndex,\n style,\n inlineEditingUniqueId,\n } = rowProps;\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n\n const props = {\n ...row.getRowProps(),\n style: {\n ...style,\n minHeight: rowHeight ? `${rowHeight}px` : undefined,\n paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined,\n },\n className: cn(\n 'yt-table__row border-grey-light flex border-b min-h-[2.5rem] hover:bg-grey-light',\n {\n 'yt-table__row--active bg-grey-light hover:bg-grey-light': activeIndex === index,\n 'yt-table__row--clickable': !!onRowClick,\n 'yt-table__row--dragging': !!row.isDragging,\n 'yt-table__row--editing': !!row.isEditing,\n },\n typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName\n ),\n onClick: onRowClick\n ? (event: React.MouseEvent<HTMLElement>) => {\n if (\n event.target === event.currentTarget ||\n (event.target as HTMLElement).classList.contains('yt-table__cell')\n ) {\n event.preventDefault();\n event.persist();\n setActiveIndex(index);\n onRowClick(sanitizedRow);\n }\n }\n : () => {\n setActiveIndex(index);\n },\n };\n\n let cells = row.cells;\n\n if (row.depth > 0) {\n cells = row.cells.filter((cell: any) => !cell.column.hiddenOnSubRows);\n }\n\n const expandedRow = rowExpansionRenderer && row.isExpanded && <div>{rowExpansionRenderer(sanitizedRow, instance)}</div>;\n const rowContent = React.useMemo(() => {\n return (\n <>\n <FocusScope key={row.original._createKey} contain restoreFocus autoFocus>\n <div {...props} role=\"row\" ref={ref}>\n <input type=\"hidden\" name=\"_rowIndexPath\" value={row.id} />\n <input type=\"hidden\" name=\"_inlineEditingUniqueId\" value={row.original[inlineEditingUniqueId]} />\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n </FocusScope>\n {expandedRow}\n </>\n );\n }, [row.original._createKey]);\n\n if (row.isEditing) {\n return rowContent;\n }\n\n return (\n <>\n <div {...props} role=\"row\" ref={ref}>\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n {expandedRow}\n </>\n );\n});\n"],"names":["renderCell","cell","row","props","getCellProps","className","cn","column","align","style","flex","React","role","render","Row","forwardRef","TableRow","
|
1
|
+
{"version":3,"file":"renderRow.js","sources":["../../../../../src/components/Table/util/renderRow.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { FocusScope } from '@react-aria/focus';\nimport { InternalTableCell, TableRow } from '../types';\nimport { sanitizeRowProps } from '../util';\n\nconst renderCell = (cell: InternalTableCell, row: TableRow<any>): JSX.Element => {\n const props = {\n ...cell.getCellProps(),\n className: cn('yt-table__cell flex-1 truncate p-2 align-middle', cell.column.className, {\n 'justify-start text-left': cell.column.align === 'left',\n 'justify-end text-right': cell.column.align === 'right',\n 'text-center': !cell.column.align,\n }),\n style: {\n ...cell.column.style,\n flex: typeof cell.column.flex === 'function' ? cell.column.flex(row) : cell.column.flex,\n },\n };\n return (\n <div {...props} role=\"gridcell\" data-taco=\"table-cell\">\n {cell.render('Cell') || null}\n </div>\n );\n};\n\nexport const Row = React.forwardRef(function TableRow({ row, index, instance, headerGroups, ...rowProps }: any, ref: any) {\n const {\n activeIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n setActiveIndex,\n style,\n inlineEditingUniqueId,\n } = rowProps;\n const sanitizedRow = sanitizeRowProps(row, rowExpansionRenderer);\n\n const props = {\n ...row.getRowProps(),\n style: {\n ...style,\n minHeight: rowHeight ? `${rowHeight}px` : undefined,\n paddingLeft: row.depth ? `${row.depth * 2}rem` : undefined,\n },\n className: cn(\n 'yt-table__row border-grey-light flex border-b min-h-[2.5rem] hover:bg-grey-light',\n {\n 'yt-table__row--active bg-grey-light hover:bg-grey-light': activeIndex === index,\n 'yt-table__row--clickable': !!onRowClick,\n 'yt-table__row--dragging': !!row.isDragging,\n 'yt-table__row--editing': !!row.isEditing,\n },\n typeof rowClassName === 'function' ? rowClassName(sanitizedRow) : rowClassName\n ),\n onClick: onRowClick\n ? (event: React.MouseEvent<HTMLElement>) => {\n if (\n event.target === event.currentTarget ||\n (event.target as HTMLElement).classList.contains('yt-table__cell')\n ) {\n event.preventDefault();\n event.persist();\n setActiveIndex(index);\n onRowClick(sanitizedRow);\n }\n }\n : () => {\n setActiveIndex(index);\n },\n };\n\n let cells = row.cells;\n\n if (row.depth > 0) {\n cells = row.cells.filter((cell: any) => !cell.column.hiddenOnSubRows);\n }\n\n const expandedRow = rowExpansionRenderer && row.isExpanded && <div>{rowExpansionRenderer(sanitizedRow, instance)}</div>;\n const rowContent = React.useMemo(() => {\n return (\n <>\n <FocusScope key={row.original._createKey} contain restoreFocus autoFocus>\n <div {...props} role=\"row\" ref={ref}>\n <input type=\"hidden\" name=\"_rowIndexPath\" value={row.id} />\n <input type=\"hidden\" name=\"_inlineEditingUniqueId\" value={row.original[inlineEditingUniqueId]} />\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n </FocusScope>\n {expandedRow}\n </>\n );\n }, [row.original._createKey]);\n\n if (row.isEditing) {\n return rowContent;\n }\n\n return (\n <>\n <div {...props} role=\"row\" ref={ref}>\n {cells.map((cell: InternalTableCell) => renderCell(cell, sanitizedRow))}\n </div>\n {expandedRow}\n </>\n );\n});\n"],"names":["renderCell","cell","row","props","getCellProps","className","cn","column","align","style","flex","React","role","render","Row","forwardRef","TableRow","index","instance","headerGroups","rowProps","ref","activeIndex","onRowClick","rowClassName","rowExpansionRenderer","rowHeight","setActiveIndex","inlineEditingUniqueId","sanitizedRow","sanitizeRowProps","getRowProps","minHeight","undefined","paddingLeft","depth","isDragging","isEditing","onClick","event","target","currentTarget","classList","contains","preventDefault","persist","cells","filter","hiddenOnSubRows","expandedRow","isExpanded","rowContent","useMemo","FocusScope","key","original","_createKey","contain","restoreFocus","autoFocus","type","name","value","id","map"],"mappings":"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"}
|
@@ -1,21 +1,21 @@
|
|
1
1
|
import set from 'lodash-es/set';
|
2
2
|
|
3
|
-
|
3
|
+
const convertRowIndexPathToNumberArray = rowIndexPath => {
|
4
4
|
var _rowIndexPath$split$m;
|
5
5
|
|
6
6
|
return (_rowIndexPath$split$m = rowIndexPath === null || rowIndexPath === void 0 ? void 0 : rowIndexPath.split('.').map(Number)) !== null && _rowIndexPath$split$m !== void 0 ? _rowIndexPath$split$m : [];
|
7
7
|
};
|
8
|
-
|
8
|
+
const getByRowIndexPath = (data, rowIndexPath) => {
|
9
9
|
if (!rowIndexPath) {
|
10
10
|
return undefined;
|
11
11
|
}
|
12
12
|
|
13
|
-
|
14
|
-
|
13
|
+
const currenTRow = [...data];
|
14
|
+
const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));
|
15
15
|
|
16
16
|
if (indexes.length) {
|
17
|
-
|
18
|
-
return indexes.reduce(
|
17
|
+
const startIndex = indexes.shift();
|
18
|
+
return indexes.reduce((value, index) => {
|
19
19
|
var _value$subRows;
|
20
20
|
|
21
21
|
return value === null || value === void 0 ? void 0 : (_value$subRows = value.subRows) === null || _value$subRows === void 0 ? void 0 : _value$subRows[index];
|
@@ -24,15 +24,13 @@ var getByRowIndexPath = function getByRowIndexPath(data, rowIndexPath) {
|
|
24
24
|
|
25
25
|
return undefined;
|
26
26
|
};
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
const setByRowIndexPath = (data, rowIndexPath, values) => {
|
28
|
+
const nexTRow = [...data];
|
29
|
+
const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
|
30
|
+
const rootIndex = rowIndexes.shift();
|
31
31
|
|
32
32
|
if (rowIndexes.length) {
|
33
|
-
|
34
|
-
return "subRows[" + index + "]";
|
35
|
-
}).join('.');
|
33
|
+
const path = rowIndexes.map(index => `subRows[${index}]`).join('.');
|
36
34
|
set(nexTRow[rootIndex], path, values);
|
37
35
|
} else {
|
38
36
|
nexTRow[rootIndex] = values;
|
@@ -40,11 +38,11 @@ var setByRowIndexPath = function setByRowIndexPath(data, rowIndexPath, values) {
|
|
40
38
|
|
41
39
|
return nexTRow;
|
42
40
|
};
|
43
|
-
|
44
|
-
|
41
|
+
const getParentRowIndexPath = rowIndexPath => {
|
42
|
+
let parentIndexPath;
|
45
43
|
|
46
44
|
if (rowIndexPath) {
|
47
|
-
|
45
|
+
const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);
|
48
46
|
rowIndexes.pop();
|
49
47
|
|
50
48
|
if (rowIndexes.length) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rowIndexPath.js","sources":["../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\nimport { Row, RowIndexPath } from '../types';\n\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\n rowIndexPath?.split('.').map(Number) ?? [];\n\nexport const getByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\n if (!rowIndexPath) {\n return undefined;\n }\n\n const currenTRow = [...data];\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\n\n if (indexes.length) {\n const startIndex = indexes.shift() as number;\n return indexes.reduce((value, index) => value?.subRows?.[index], currenTRow[startIndex]);\n }\n\n return undefined;\n};\n\nexport const setByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\n const nexTRow = [...data];\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = rowIndexes.shift() as number;\n\n if (rowIndexes.length) {\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\n set(nexTRow[rootIndex], path, values);\n } else {\n nexTRow[rootIndex] = values;\n }\n\n return nexTRow;\n};\n\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\n let parentIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n rowIndexes.pop();\n\n if (rowIndexes.length) {\n parentIndexPath = rowIndexes.join('.');\n }\n }\n\n return parentIndexPath;\n};\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;
|
1
|
+
{"version":3,"file":"rowIndexPath.js","sources":["../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\r\nimport { Row, RowIndexPath } from '../types';\r\n\r\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\r\n rowIndexPath?.split('.').map(Number) ?? [];\r\n\r\nexport const getByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\r\n if (!rowIndexPath) {\r\n return undefined;\r\n }\r\n\r\n const currenTRow = [...data];\r\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\r\n\r\n if (indexes.length) {\r\n const startIndex = indexes.shift() as number;\r\n return indexes.reduce((value, index) => value?.subRows?.[index], currenTRow[startIndex]);\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const setByRowIndexPath = <TRow>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\r\n const nexTRow = [...data];\r\n\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n const rootIndex = rowIndexes.shift() as number;\r\n\r\n if (rowIndexes.length) {\r\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\r\n set(nexTRow[rootIndex], path, values);\r\n } else {\r\n nexTRow[rootIndex] = values;\r\n }\r\n\r\n return nexTRow;\r\n};\r\n\r\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\r\n let parentIndexPath;\r\n\r\n if (rowIndexPath) {\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n rowIndexes.pop();\r\n\r\n if (rowIndexes.length) {\r\n parentIndexPath = rowIndexes.join('.');\r\n }\r\n }\r\n\r\n return parentIndexPath;\r\n};\r\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;MAGaA,gCAAgC,GAAIC,YAAD;EAAA;;EAAA,gCAC5CA,YAD4C,aAC5CA,YAD4C,uBAC5CA,YAAY,CAAEC,KAAd,CAAoB,GAApB,EAAyBC,GAAzB,CAA6BC,MAA7B,CAD4C,yEACJ,EADI;AAAA;MAGnCC,iBAAiB,GAAG,CAAOC,IAAP,EAA0BL,YAA1B;EAC7B,IAAI,CAACA,YAAL,EAAmB;IACf,OAAOM,SAAP;;;EAGJ,MAAMC,UAAU,GAAG,CAAC,GAAGF,IAAJ,CAAnB;EACA,MAAMG,OAAO,GAAGT,gCAAgC,CAACU,MAAM,CAACT,YAAD,CAAP,CAAhD;;EAEA,IAAIQ,OAAO,CAACE,MAAZ,EAAoB;IAChB,MAAMC,UAAU,GAAGH,OAAO,CAACI,KAAR,EAAnB;IACA,OAAOJ,OAAO,CAACK,MAAR,CAAe,CAACC,KAAD,EAAQC,KAAR;MAAA;;MAAA,OAAkBD,KAAlB,aAAkBA,KAAlB,yCAAkBA,KAAK,CAAEE,OAAzB,mDAAkB,eAAiBD,KAAjB,CAAlB;KAAf,EAA0DR,UAAU,CAACI,UAAD,CAApE,CAAP;;;EAGJ,OAAOL,SAAP;AACH;MAEYW,iBAAiB,GAAG,CAAOZ,IAAP,EAA0BL,YAA1B,EAAsDkB,MAAtD;EAC7B,MAAMC,OAAO,GAAG,CAAC,GAAGd,IAAJ,CAAhB;EAEA,MAAMe,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;EACA,MAAMqB,SAAS,GAAGD,UAAU,CAACR,KAAX,EAAlB;;EAEA,IAAIQ,UAAU,CAACV,MAAf,EAAuB;IACnB,MAAMY,IAAI,GAAGF,UAAU,CAAClB,GAAX,CAAea,KAAK,eAAeA,QAAnC,EAA6CQ,IAA7C,CAAkD,GAAlD,CAAb;IACAC,GAAG,CAACL,OAAO,CAACE,SAAD,CAAR,EAAqBC,IAArB,EAA2BJ,MAA3B,CAAH;GAFJ,MAGO;IACHC,OAAO,CAACE,SAAD,CAAP,GAAqBH,MAArB;;;EAGJ,OAAOC,OAAP;AACH;MAEYM,qBAAqB,GAAIzB,YAAD;EACjC,IAAI0B,eAAJ;;EAEA,IAAI1B,YAAJ,EAAkB;IACd,MAAMoB,UAAU,GAAGrB,gCAAgC,CAACC,YAAD,CAAnD;IACAoB,UAAU,CAACO,GAAX;;IAEA,IAAIP,UAAU,CAACV,MAAf,EAAuB;MACnBgB,eAAe,GAAGN,UAAU,CAACG,IAAX,CAAgB,GAAhB,CAAlB;;;;EAIR,OAAOG,eAAP;AACH;;;;"}
|
@@ -1,17 +1,9 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
const getTime = value => {
|
2
|
+
const parsedValue = typeof value === 'string' ? new Date(value) : value;
|
3
3
|
return parsedValue !== null && parsedValue !== void 0 && parsedValue.getTime ? parsedValue.getTime() : undefined;
|
4
4
|
};
|
5
5
|
|
6
|
-
|
7
|
-
if (amount === void 0) {
|
8
|
-
amount = '';
|
9
|
-
}
|
10
|
-
|
11
|
-
if (decimalSeparator === void 0) {
|
12
|
-
decimalSeparator = ',';
|
13
|
-
}
|
14
|
-
|
6
|
+
const getNumber = (amount = '', decimalSeparator = ',') => {
|
15
7
|
if (typeof amount === 'number') {
|
16
8
|
return amount;
|
17
9
|
}
|
@@ -20,7 +12,7 @@ var getNumber = function getNumber(amount, decimalSeparator) {
|
|
20
12
|
return undefined;
|
21
13
|
}
|
22
14
|
|
23
|
-
|
15
|
+
let value;
|
24
16
|
|
25
17
|
if (decimalSeparator === ',') {
|
26
18
|
// replace digit seperator then replace decimal separator
|
@@ -33,7 +25,7 @@ var getNumber = function getNumber(amount, decimalSeparator) {
|
|
33
25
|
return Number.isNaN(value) ? undefined : value;
|
34
26
|
};
|
35
27
|
|
36
|
-
|
28
|
+
const getString = value => {
|
37
29
|
if (value) {
|
38
30
|
return String(value).toLowerCase();
|
39
31
|
}
|
@@ -41,7 +33,7 @@ var getString = function getString(value) {
|
|
41
33
|
return undefined;
|
42
34
|
};
|
43
35
|
|
44
|
-
|
36
|
+
const guess = value => {
|
45
37
|
if (typeof value === 'boolean') {
|
46
38
|
return !!value;
|
47
39
|
}
|
@@ -49,7 +41,7 @@ var guess = function guess(value) {
|
|
49
41
|
return isNaN(value) ? getString(value) : Number(value);
|
50
42
|
};
|
51
43
|
|
52
|
-
|
44
|
+
const compareBasic = (a, b) => {
|
53
45
|
// places undefined values first in ascending order instead of descending
|
54
46
|
if (a !== undefined && b === undefined) {
|
55
47
|
return 1;
|
@@ -58,30 +50,30 @@ var compareBasic = function compareBasic(a, b) {
|
|
58
50
|
return a === b ? 0 : a > b ? 1 : -1;
|
59
51
|
};
|
60
52
|
|
61
|
-
|
62
|
-
datetime:
|
63
|
-
|
64
|
-
|
53
|
+
const sortTypes = {
|
54
|
+
datetime: (rowA, rowB, columnId) => {
|
55
|
+
const a = getTime(rowA.values[columnId]);
|
56
|
+
const b = getTime(rowB.values[columnId]);
|
65
57
|
return compareBasic(a, b);
|
66
58
|
},
|
67
|
-
string:
|
68
|
-
|
69
|
-
|
59
|
+
string: (rowA, rowB, columnId) => {
|
60
|
+
const a = getString(rowA.values[columnId]);
|
61
|
+
const b = getString(rowB.values[columnId]);
|
70
62
|
return compareBasic(a, b);
|
71
63
|
},
|
72
|
-
number:
|
73
|
-
|
74
|
-
|
64
|
+
number: (rowA, rowB, columnId) => {
|
65
|
+
const a = getNumber(rowA.values[columnId]);
|
66
|
+
const b = getNumber(rowB.values[columnId]);
|
75
67
|
return compareBasic(a, b);
|
76
68
|
},
|
77
|
-
|
78
|
-
|
79
|
-
|
69
|
+
boolean: (rowA, rowB, columnId) => {
|
70
|
+
const a = !!rowA.values[columnId];
|
71
|
+
const b = !!rowB.values[columnId];
|
80
72
|
return compareBasic(a, b);
|
81
73
|
},
|
82
|
-
auto:
|
83
|
-
|
84
|
-
|
74
|
+
auto: (rowA, rowB, columnId) => {
|
75
|
+
const a = guess(rowA.values[columnId]);
|
76
|
+
const b = guess(rowB.values[columnId]);
|
85
77
|
return compareBasic(a, b);
|
86
78
|
}
|
87
79
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sortTypes.js","sources":["../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\n\nconst getTime = (value: any): number | undefined => {\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\n};\n\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\n if (typeof amount === 'number') {\n return amount;\n }\n\n if (amount === null || !amount.length) {\n return undefined;\n }\n\n let value;\n\n if (decimalSeparator === ',') {\n // replace digit seperator then replace decimal separator\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\n } else {\n // replace digit seperator\n value = Number(amount.replace(/,/g, ''));\n }\n\n return Number.isNaN(value) ? undefined : value;\n};\n\nconst getString = (value: any): string | undefined => {\n if (value) {\n return String(value).toLowerCase();\n }\n\n return undefined;\n};\n\nconst guess = (value: any): any => {\n if (typeof value === 'boolean') {\n return !!value;\n }\n\n return isNaN(value) ? getString(value) : Number(value);\n};\n\nconst compareBasic = (a: any, b: any) => {\n // places undefined values first in ascending order instead of descending\n if (a !== undefined && b === undefined) {\n return 1;\n }\n\n return a === b ? 0 : a > b ? 1 : -1;\n};\n\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\n\nexport const sortTypes: Record<SortTypes, SortHandler<any>> = {\n datetime: (rowA, rowB, columnId) => {\n const a = getTime(rowA.values[columnId]);\n const b = getTime(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n string: (rowA, rowB, columnId) => {\n const a = getString(rowA.values[columnId]);\n const b = getString(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n number: (rowA, rowB, columnId) => {\n const a = getNumber(rowA.values[columnId]);\n const b = getNumber(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n boolean: (rowA, rowB, columnId) => {\n const a = !!rowA.values[columnId];\n const b = !!rowB.values[columnId];\n return compareBasic(a, b);\n },\n auto: (rowA, rowB, columnId) => {\n const a = guess(rowA.values[columnId]);\n const b = guess(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n};\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","sortTypes","datetime","rowA","rowB","columnId","values","string","number","auto"],"mappings":"AAEA,
|
1
|
+
{"version":3,"file":"sortTypes.js","sources":["../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\r\n\r\nconst getTime = (value: any): number | undefined => {\r\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\r\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\r\n};\r\n\r\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\r\n if (typeof amount === 'number') {\r\n return amount;\r\n }\r\n\r\n if (amount === null || !amount.length) {\r\n return undefined;\r\n }\r\n\r\n let value;\r\n\r\n if (decimalSeparator === ',') {\r\n // replace digit seperator then replace decimal separator\r\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\r\n } else {\r\n // replace digit seperator\r\n value = Number(amount.replace(/,/g, ''));\r\n }\r\n\r\n return Number.isNaN(value) ? undefined : value;\r\n};\r\n\r\nconst getString = (value: any): string | undefined => {\r\n if (value) {\r\n return String(value).toLowerCase();\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst guess = (value: any): any => {\r\n if (typeof value === 'boolean') {\r\n return !!value;\r\n }\r\n\r\n return isNaN(value) ? getString(value) : Number(value);\r\n};\r\n\r\nconst compareBasic = (a: any, b: any) => {\r\n // places undefined values first in ascending order instead of descending\r\n if (a !== undefined && b === undefined) {\r\n return 1;\r\n }\r\n\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n};\r\n\r\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\r\n\r\nexport const sortTypes: Record<SortTypes, SortHandler<any>> = {\r\n datetime: (rowA, rowB, columnId) => {\r\n const a = getTime(rowA.values[columnId]);\r\n const b = getTime(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n string: (rowA, rowB, columnId) => {\r\n const a = getString(rowA.values[columnId]);\r\n const b = getString(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n number: (rowA, rowB, columnId) => {\r\n const a = getNumber(rowA.values[columnId]);\r\n const b = getNumber(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n boolean: (rowA, rowB, columnId) => {\r\n const a = !!rowA.values[columnId];\r\n const b = !!rowB.values[columnId];\r\n return compareBasic(a, b);\r\n },\r\n auto: (rowA, rowB, columnId) => {\r\n const a = guess(rowA.values[columnId]);\r\n const b = guess(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n};\r\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","sortTypes","datetime","rowA","rowB","columnId","values","string","number","boolean","auto"],"mappings":"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"}
|
@@ -1,11 +1,9 @@
|
|
1
|
-
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
2
1
|
import React__default from 'react';
|
3
2
|
|
4
|
-
|
5
|
-
var sanitizeRowProps = function sanitizeRowProps(row, rowExpansionRenderer) {
|
3
|
+
const sanitizeRowProps = (row, rowExpansionRenderer) => {
|
6
4
|
var _row$subRows;
|
7
5
|
|
8
|
-
|
6
|
+
const props = {
|
9
7
|
index: row.index,
|
10
8
|
indexPath: row.id,
|
11
9
|
values: row.original
|
@@ -15,15 +13,11 @@ var sanitizeRowProps = function sanitizeRowProps(row, rowExpansionRenderer) {
|
|
15
13
|
props.isExpanded = !!row.isExpanded;
|
16
14
|
props.depth = row.depth;
|
17
15
|
|
18
|
-
props.toggleRowExpanded =
|
19
|
-
return row.toggleRowExpanded(!props.isExpanded);
|
20
|
-
};
|
16
|
+
props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);
|
21
17
|
} else if (rowExpansionRenderer) {
|
22
18
|
props.isExpanded = !!row.isExpanded;
|
23
19
|
|
24
|
-
props.toggleRowExpanded =
|
25
|
-
return row.toggleRowExpanded(!props.isExpanded);
|
26
|
-
};
|
20
|
+
props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);
|
27
21
|
}
|
28
22
|
|
29
23
|
if (row.toggleRowEditing) {
|
@@ -33,40 +27,36 @@ var sanitizeRowProps = function sanitizeRowProps(row, rowExpansionRenderer) {
|
|
33
27
|
|
34
28
|
return props;
|
35
29
|
};
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
30
|
+
const getColumnsFromChildren = (children, rowExpansionRenderer) => {
|
31
|
+
const sortRules = [];
|
32
|
+
const columns = React__default.Children.toArray(children).filter(child => !!child && !child.props.hidden) // skip falsey or hidden columns
|
33
|
+
.map(({
|
34
|
+
props: {
|
35
|
+
children: groupChildren,
|
36
|
+
...props
|
37
|
+
}
|
38
|
+
}) => {
|
39
|
+
const column = { ...props
|
40
|
+
};
|
48
41
|
column.sortType = column.sortType || 'auto';
|
49
42
|
column.disableSortBy = column.disableSorting; // this is a Table.Group - TODO: Find a better way to determine the child type
|
50
43
|
|
51
44
|
if (props.title && groupChildren) {
|
52
45
|
column.Header = props.title;
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
46
|
+
const {
|
47
|
+
columns: groupColumns,
|
48
|
+
sortRules: groupSortRules
|
49
|
+
} = getColumnsFromChildren(groupChildren, rowExpansionRenderer);
|
58
50
|
column.columns = groupColumns;
|
59
|
-
groupSortRules.forEach(
|
60
|
-
return sortRules.push(sort);
|
61
|
-
});
|
51
|
+
groupSortRules.forEach(sort => sortRules.push(sort));
|
62
52
|
} else {
|
63
53
|
column.accessor = props.accessor;
|
64
54
|
column.Header = props.headRenderer || '';
|
65
55
|
|
66
|
-
column.Cell =
|
56
|
+
column.Cell = columnProps => {
|
67
57
|
var _props$cellRenderer, _cell$value;
|
68
58
|
|
69
|
-
|
59
|
+
const cell = {
|
70
60
|
accessor: columnProps.cell.column.id,
|
71
61
|
row: sanitizeRowProps(columnProps.cell.row, rowExpansionRenderer),
|
72
62
|
value: columnProps.cell.value
|
@@ -94,17 +84,15 @@ var getColumnsFromChildren = function getColumnsFromChildren(children, rowExpans
|
|
94
84
|
return column;
|
95
85
|
});
|
96
86
|
return {
|
97
|
-
columns
|
98
|
-
sortRules
|
87
|
+
columns,
|
88
|
+
sortRules
|
99
89
|
};
|
100
90
|
};
|
101
|
-
|
102
|
-
return sortRules === null || sortRules === void 0 ? void 0 : sortRules.map(
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
};
|
107
|
-
});
|
91
|
+
const getInternalSortRules = sortRules => {
|
92
|
+
return sortRules === null || sortRules === void 0 ? void 0 : sortRules.map(rule => ({
|
93
|
+
id: rule.accessor,
|
94
|
+
desc: rule.desc
|
95
|
+
}));
|
108
96
|
};
|
109
97
|
|
110
98
|
export { getColumnsFromChildren, getInternalSortRules, sanitizeRowProps };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../../src/components/Table/util.ts"],"sourcesContent":["import React from 'react';\nimport { TableRow, TableCell, TableChildren, InternalTableRow, InternalTableColumn, SortRule } from './types';\nimport { SortingRule } from 'react-table';\n\nexport const sanitizeRowProps = (row: InternalTableRow, rowExpansionRenderer: any): TableRow<any> => {\n const props: TableRow<any> = {\n index: row.index,\n indexPath: row.id,\n values: row.original,\n };\n\n if (row.subRows?.length > 0) {\n props.isExpanded = !!row.isExpanded;\n props.depth = row.depth;\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\n } else if (rowExpansionRenderer) {\n props.isExpanded = !!row.isExpanded;\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\n }\n\n if (row.toggleRowEditing) {\n props.isEditing = !!row.isEditing;\n props.toggleRowEditing = row.toggleRowEditing;\n }\n\n return props;\n};\n\nexport const getColumnsFromChildren = (children: TableChildren<any>, rowExpansionRenderer: any) => {\n const sortRules: SortingRule<any>[] = [];\n\n const columns = React.Children.toArray(children)\n .filter((child: any) => !!child && !child.props.hidden) // skip falsey or hidden columns\n .map(({ props: { children: groupChildren, ...props } }: any) => {\n const column: InternalTableColumn & { disableSortBy: boolean | undefined } = { ...props };\n\n column.sortType = column.sortType || 'auto';\n column.disableSortBy = column.disableSorting;\n\n // this is a Table.Group - TODO: Find a better way to determine the child type\n if (props.title && groupChildren) {\n column.Header = props.title;\n\n const { columns: groupColumns, sortRules: groupSortRules } = getColumnsFromChildren(\n groupChildren,\n rowExpansionRenderer\n );\n column.columns = groupColumns;\n groupSortRules.forEach(sort => sortRules.push(sort));\n } else {\n column.accessor = props.accessor;\n column.Header = props.headRenderer || '';\n column.Cell = (columnProps: any) => {\n const cell: TableCell<any> = {\n accessor: columnProps.cell.column.id,\n row: sanitizeRowProps(columnProps.cell.row, rowExpansionRenderer),\n value: columnProps.cell.value,\n };\n\n if (cell.row.isEditing && typeof props.editRenderer === 'function') {\n return props.editRenderer(cell);\n }\n\n return typeof props.cellRenderer === 'function' ? props.cellRenderer(cell) ?? null : cell.value ?? null;\n };\n\n // custom props\n column.align = props.align;\n column.flex = props.flex;\n\n if (props.sort && !props.disableSorting) {\n sortRules.push({\n id: props.accessor,\n desc: props.sort === 'desc',\n });\n }\n }\n\n return column;\n });\n\n return { columns, sortRules };\n};\n\nexport const getInternalSortRules = <T>(sortRules: SortRule<T>[] | undefined): SortingRule<T>[] | undefined => {\n return sortRules?.map<SortingRule<T>>(rule => ({ id: rule.accessor, desc: rule.desc }));\n};\n"],"names":["sanitizeRowProps","row","rowExpansionRenderer","props","index","indexPath","id","values","original","subRows","length","isExpanded","depth","toggleRowExpanded","toggleRowEditing","isEditing","getColumnsFromChildren","children","sortRules","columns","React","Children","toArray","filter","child","hidden","map","groupChildren","column","sortType","disableSortBy","disableSorting","title","Header","groupColumns","groupSortRules","forEach","sort","push","accessor","headRenderer","Cell","columnProps","cell","value","editRenderer","cellRenderer","align","flex","desc","getInternalSortRules","rule"],"mappings":"
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../src/components/Table/util.ts"],"sourcesContent":["import React from 'react';\r\nimport { TableRow, TableCell, TableChildren, InternalTableRow, InternalTableColumn, SortRule } from './types';\r\nimport { SortingRule } from 'react-table';\r\n\r\nexport const sanitizeRowProps = (row: InternalTableRow, rowExpansionRenderer: any): TableRow<any> => {\r\n const props: TableRow<any> = {\r\n index: row.index,\r\n indexPath: row.id,\r\n values: row.original,\r\n };\r\n\r\n if (row.subRows?.length > 0) {\r\n props.isExpanded = !!row.isExpanded;\r\n props.depth = row.depth;\r\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\r\n } else if (rowExpansionRenderer) {\r\n props.isExpanded = !!row.isExpanded;\r\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\r\n }\r\n\r\n if (row.toggleRowEditing) {\r\n props.isEditing = !!row.isEditing;\r\n props.toggleRowEditing = row.toggleRowEditing;\r\n }\r\n\r\n return props;\r\n};\r\n\r\nexport const getColumnsFromChildren = (children: TableChildren<any>, rowExpansionRenderer: any) => {\r\n const sortRules: SortingRule<any>[] = [];\r\n\r\n const columns = React.Children.toArray(children)\r\n .filter((child: any) => !!child && !child.props.hidden) // skip falsey or hidden columns\r\n .map(({ props: { children: groupChildren, ...props } }: any) => {\r\n const column: InternalTableColumn & { disableSortBy: boolean | undefined } = { ...props };\r\n\r\n column.sortType = column.sortType || 'auto';\r\n column.disableSortBy = column.disableSorting;\r\n\r\n // this is a Table.Group - TODO: Find a better way to determine the child type\r\n if (props.title && groupChildren) {\r\n column.Header = props.title;\r\n\r\n const { columns: groupColumns, sortRules: groupSortRules } = getColumnsFromChildren(\r\n groupChildren,\r\n rowExpansionRenderer\r\n );\r\n column.columns = groupColumns;\r\n groupSortRules.forEach(sort => sortRules.push(sort));\r\n } else {\r\n column.accessor = props.accessor;\r\n column.Header = props.headRenderer || '';\r\n column.Cell = (columnProps: any) => {\r\n const cell: TableCell<any> = {\r\n accessor: columnProps.cell.column.id,\r\n row: sanitizeRowProps(columnProps.cell.row, rowExpansionRenderer),\r\n value: columnProps.cell.value,\r\n };\r\n\r\n if (cell.row.isEditing && typeof props.editRenderer === 'function') {\r\n return props.editRenderer(cell);\r\n }\r\n\r\n return typeof props.cellRenderer === 'function' ? props.cellRenderer(cell) ?? null : cell.value ?? null;\r\n };\r\n\r\n // custom props\r\n column.align = props.align;\r\n column.flex = props.flex;\r\n\r\n if (props.sort && !props.disableSorting) {\r\n sortRules.push({\r\n id: props.accessor,\r\n desc: props.sort === 'desc',\r\n });\r\n }\r\n }\r\n\r\n return column;\r\n });\r\n\r\n return { columns, sortRules };\r\n};\r\n\r\nexport const getInternalSortRules = <T>(sortRules: SortRule<T>[] | undefined): SortingRule<T>[] | undefined => {\r\n return sortRules?.map<SortingRule<T>>(rule => ({ id: rule.accessor, desc: rule.desc }));\r\n};\r\n"],"names":["sanitizeRowProps","row","rowExpansionRenderer","props","index","indexPath","id","values","original","subRows","length","isExpanded","depth","toggleRowExpanded","toggleRowEditing","isEditing","getColumnsFromChildren","children","sortRules","columns","React","Children","toArray","filter","child","hidden","map","groupChildren","column","sortType","disableSortBy","disableSorting","title","Header","groupColumns","groupSortRules","forEach","sort","push","accessor","headRenderer","Cell","columnProps","cell","value","editRenderer","cellRenderer","align","flex","desc","getInternalSortRules","rule"],"mappings":"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"}
|