@propellerads/table 4.8.0 → 4.9.0
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/CHANGELOG.md +4 -0
- package/dist/table.cjs.development.js +15 -10
- package/dist/table.cjs.development.js.map +1 -1
- package/dist/table.cjs.production.min.js +1 -1
- package/dist/table.cjs.production.min.js.map +1 -1
- package/dist/table.esm.js +15 -10
- package/dist/table.esm.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/package.json +2 -2
- package/src/index.tsx +17 -12
- package/src/types.tsx +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -501,6 +501,19 @@ function isFunction(reference) {
|
|
|
501
501
|
return typeof reference === 'function';
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
+
function renderResizer(column) {
|
|
505
|
+
if (column.isResizable) {
|
|
506
|
+
return React__default.createElement(TResizer, Object.assign({}, column.getResizerProps(), {
|
|
507
|
+
onClick: function onClick(e) {
|
|
508
|
+
e.preventDefault();
|
|
509
|
+
e.stopPropagation();
|
|
510
|
+
}
|
|
511
|
+
}));
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
return null;
|
|
515
|
+
}
|
|
516
|
+
|
|
504
517
|
function getHeadContent(column) {
|
|
505
518
|
if (column.isSorted && column.isSortedDesc) {
|
|
506
519
|
return React__default.createElement(HeadCell, null, column.render('Header'), React__default.createElement(icon.ArrowDown, {
|
|
@@ -551,8 +564,7 @@ var Table = function Table(props) {
|
|
|
551
564
|
noDataMessage = props.noDataMessage,
|
|
552
565
|
rowSubComponent = props.rowSubComponent,
|
|
553
566
|
isEnableRowSelect = props.isEnableRowSelect,
|
|
554
|
-
selectColumnProps = props.selectColumnProps
|
|
555
|
-
isResizableColumns = props.isResizableColumns;
|
|
567
|
+
selectColumnProps = props.selectColumnProps;
|
|
556
568
|
var memoColumns = React.useMemo(function () {
|
|
557
569
|
return columns;
|
|
558
570
|
}, [columns]);
|
|
@@ -777,14 +789,7 @@ var Table = function Table(props) {
|
|
|
777
789
|
}, headerGroups.map(function (headerGroup) {
|
|
778
790
|
return React__default.createElement(TR, Object.assign({}, headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))), headerGroup.headers.map(function (column) {
|
|
779
791
|
var headerProps = extendSortByProps(column);
|
|
780
|
-
return React__default.createElement(TH, Object.assign({}, column.getHeaderProps(getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter))), getHeadContent(column),
|
|
781
|
-
// @ts-ignore
|
|
782
|
-
, Object.assign({}, column.getResizerProps(), {
|
|
783
|
-
onClick: function onClick(e) {
|
|
784
|
-
e.preventDefault();
|
|
785
|
-
e.stopPropagation();
|
|
786
|
-
}
|
|
787
|
-
})));
|
|
792
|
+
return React__default.createElement(TH, Object.assign({}, column.getHeaderProps(getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter))), getHeadContent(column), renderResizer(column));
|
|
788
793
|
}));
|
|
789
794
|
})), footerPlacement.includes(FOOTER_PLACEMENT.TOP) && React__default.createElement(TFoot, {
|
|
790
795
|
className: "table-footer-top",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.cjs.development.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n isResizableColumns?: boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n isResizableColumns,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {isResizableColumns && (\n <TResizer\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n )}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","isResizableColumns","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","getResizerProps","e","preventDefault","stopPropagation","includes","TOP","group","isDelimiterTd","Fragment","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.cjs.development.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction renderResizer(column) {\n if (column.isResizable) {\n return (\n <TResizer\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {renderResizer(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","renderResizer","isResizable","getResizerProps","onClick","e","preventDefault","stopPropagation","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","Fragment","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CACtBC,gBADsB,EAEtBC,OAFsB,EAGtBC,QAHsB,EAItBC,OAJsB,EAKtBC,oBALsB;AAOtB,MAAMC,cAAc,GAAwCC,aAAO,CAAC;AAAA,WAAON,gBAAgB,IAAIC,OAApB,GAA8BE,OAAO,CAC7GI,GADsG,CAClG,UAACC,MAAD;AACH,UAAMC,aAAa,gBACdD,MADc;AAEjBE,QAAAA,IAAI,EAAE;AAAA,iBAAMC,4BAAA,CAACP,oBAAD,MAAA,CAAN;AAAA;AAFW,QAAnB;;AAKA,aAAOK,aAAP;AACD,KARsG,CAA9B,GAQpE,EAR6D;AAAA,GAAD,EAQvD,CAACN,OAAD,EAAUF,OAAV,EAAmBD,gBAAnB,CARuD,CAAnE;AAUA,MAAMY,WAAW,GAAGN,aAAO,CAAC;AAC1B,QAAIN,gBAAgB,IAAIC,OAApB,IAA+BE,OAA/B,IAA0CA,OAAO,CAACU,MAAR,GAAiB,CAA/D,EAAkE;AAChE,UAAMC,UAAU,GAAkB,EAAlC;AACA,UAAMC,SAAS,GAAoB,EAAnC;;AAEA,WAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGb,OAAO,CAACU,MAA5B,EAAoCG,CAAC,IAAI,CAAzC,EAA4C;AAC1CF,QAAAA,UAAU,YAAUE,CAAV,CAAV,GAA2B,EAA3B;AACD;;AACD,WAAK,IAAIA,EAAC,GAAG,CAAb,EAAgBA,EAAC,GAAGd,QAApB,EAA8Bc,EAAC,IAAI,CAAnC,EAAsC;AACpCD,QAAAA,SAAS,CAACE,IAAV,CAAeH,UAAf;AACD;;AAED,aAAOC,SAAP;AACD;;AAED,WAAO,EAAP;AACD,GAhB0B,EAgBxB,CAACZ,OAAD,EAAUF,OAAV,EAAmBC,QAAnB,EAA6BF,gBAA7B,CAhBwB,CAA3B;AAkBA,SAAO;AACLK,IAAAA,cAAc,EAAdA,cADK;AAELO,IAAAA,WAAW,EAAXA;AAFK,GAAP;AAID,CAvCD;;ACJA;AACA,AAGA,IAAMM,uBAAuB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,aADwB;AAE9BC,EAAAA,KAAK,EAAE;AAFuB,CAAhC;;AAKA,SAASC,eAAT,CAAyBC,gBAAzB,EAAoDC,gBAApD;MACSC,YAAaF,iBAAbE;AAEPA,EAAAA,SAAS,CAACC,MAAV,CAAiBP,uBAAuB,CAACC,IAAzC,EAA+CD,uBAAuB,CAACE,KAAvE;AACAI,EAAAA,SAAS,CAACE,GAAV,OAAAF,SAAS,EAAQD,gBAAR,CAAT;AACD;;AAED,SAASI,sBAAT,CAAgCC,SAAhC,EAA2CN,gBAA3C;AACE,MAAI,CAACM,SAAD,IAAc,CAACN,gBAAnB,EAAqC;AACnC;AACD;;AAED,MAAMO,SAAS,GAAGD,SAAS,CAACE,qBAAV,EAAlB;AACA,MAAMC,gBAAgB,GAAGT,gBAAgB,CAACQ,qBAAjB,EAAzB;AACA,MAAME,YAAY,GAAG,EAArB;AAEA,MAAMC,aAAa,GAAGC,IAAI,CAACC,KAAL,CAAWN,SAAS,CAACO,IAArB,CAAtB;AACA,MAAMC,cAAc,GAAGH,IAAI,CAACC,KAAL,CAAWN,SAAS,CAACS,KAArB,CAAvB;AACA,MAAMC,oBAAoB,GAAGL,IAAI,CAACC,KAAL,CAAWJ,gBAAgB,CAACK,IAA5B,CAA7B;AACA,MAAMI,qBAAqB,GAAGN,IAAI,CAACC,KAAL,CAAWJ,gBAAgB,CAACO,KAA5B,CAA9B;;AAEA,MAAIL,aAAa,GAAGM,oBAApB,EAA0C;AACxCP,IAAAA,YAAY,CAACf,IAAb,CAAkBC,uBAAuB,CAACC,IAA1C;AACD;;AAED,MAAIkB,cAAc,GAAGG,qBAArB,EAA4C;AAC1CR,IAAAA,YAAY,CAACf,IAAb,CAAkBC,uBAAuB,CAACE,KAA1C;AACD;;AAEDC,EAAAA,eAAe,CAACC,gBAAD,EAAmBU,YAAnB,CAAf;AACD;;AAED,sBAAe,UAACS,QAAD,EAAWC,eAAX;AACbC,EAAAA,eAAS,CAAC;;;AACR,QAAIC,OAAO,GAAG,KAAd;;AAEA,aAASC,YAAT;AACE,UAAID,OAAJ,EAAa;AACX;AACD;;AAEDE,MAAAA,MAAM,CAACC,qBAAP,CAA6B;AAC3BpB,QAAAA,sBAAsB,CAACc,QAAQ,CAACO,OAAV,EAAmBN,eAAe,CAACM,OAAnC,CAAtB;AACAJ,QAAAA,OAAO,GAAG,KAAV;AACD,OAHD;AAKAA,MAAAA,OAAO,GAAG,IAAV;AACD;;AAEDjB,IAAAA,sBAAsB,CAACc,QAAQ,CAACO,OAAV,EAAmBN,eAAe,CAACM,OAAnC,CAAtB;AAEAP,IAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,iCAAAA,QAAQ,CAAEO,OAAV,wEAAmBC,gBAAnB,CAAoC,YAApC,EAAkDJ,YAAlD;AACAC,IAAAA,MAAM,CAACG,gBAAP,CAAwB,QAAxB,EAAkCJ,YAAlC;AAEA,WAAO;;;AACLJ,MAAAA,QAAQ,SAAR,IAAAA,QAAQ,WAAR,kCAAAA,QAAQ,CAAEO,OAAV,0EAAmBE,mBAAnB,CAAuC,YAAvC,EAAqDL,YAArD;AACAC,MAAAA,MAAM,CAACI,mBAAP,CAA2B,QAA3B,EAAqCL,YAArC;AACD,KAHD;AAID,GAzBQ,EAyBN,CAACJ,QAAQ,CAACO,OAAV,EAAmBN,eAAe,CAACM,OAAnC,CAzBM,CAAT;AA0BD,CA3BD;;ACXA,IAAYG,gBAAZ;;AAAA,WAAYA;AACRA,EAAAA,uBAAA,QAAA;AACAA,EAAAA,0BAAA,WAAA;AACH,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;ACjBO,IAAMC,aAAa,GAAkB,SAA/BA,aAA+B,CAACC,KAAD;AAAA,SAAWA,KAAX;AAAA,CAArC;AAEP,AAAO,IAAMC,UAAU,GAAkB,SAA5BA,UAA4B,CAACD,KAAD;AAAA;;AAAA,MAASE,IAAT,QAASA,IAAT;AAAA,sBACpCF,KADoC;AAEvC;AACA;AACAG,IAAAA,KAAK,EAAED,IAAF,aAAEA,IAAF,uCAAEA,IAAI,CAAE/C,MAAR,iDAAE,aAAcgD;AAJkB;AAAA,CAAlC;AAMP,AAAO,IAAMC,cAAc,GAAkB,SAAhCA,cAAgC,CAACJ,KAAD;AAAA,MAAS7C,MAAT,SAASA,MAAT;AAAA,sBACxC6C,KADwC;AAE3C;AACA;AACAG,IAAAA,KAAK,EAAEhD,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEgD;AAJ4B;AAAA,CAAtC;AAOP,AAAO,IAAME,aAAa,GAAiC,SAA9CA,aAA8C,CAACC,UAAD,EAAaC,MAAb;MAAaA;AAAAA,IAAAA,SAASR;;;AAC/E,MAAIO,UAAJ,EAAgB;AACd,WAAO,UAACN,KAAD;AAAA,0BACFO,MAAM,CAACP,KAAD,CADJ,EAEFM,UAAU,CAACN,KAAD,CAFR;AAAA,KAAP;AAID;;AAED,SAAOO,MAAP;AACD,CATM;AAWP,AAAO,IAAMC,oBAAoB,GAC+B,SADnDA,oBACmD,CAACF,UAAD,EAAaC,MAAb;MAAaA;AAAAA,IAAAA,SAASR;;;AAChF,MAAIO,UAAJ,EAAgB;AACd,WAAO,UAACN,KAAD,EAAQS,IAAR;AAAA,0BACFF,MAAM,CAACP,KAAD,EAAQS,IAAR,CADJ,EAEFH,UAAU,CAACN,KAAD,EAAQS,IAAR,CAFR;AAAA,KAAP;AAID;;AAED,SAAOF,MAAP;AACD,CAVE;AAYP,AAAO,IAAMG,gBAAgB,GAC0B,SAD1CA,gBAC0C,CAACJ,UAAD,EAAaC,MAAb;MAAaA;AAAAA,IAAAA,SAASR;;;AACvE,MAAIO,UAAJ,EAAgB;AACd,WAAO,UAACN,KAAD,EAAQS,IAAR;AAAA,0BACFF,MAAM,CAACP,KAAD,EAAQS,IAAR,CADJ,EAEFH,UAAU,CAACN,KAAD,EAAQS,IAAR,CAFR;AAAA,KAAP;AAID;;AAED,SAAOF,MAAP;AACD,CAVE;AAYP,AAAO,IAAMI,iBAAiB,GAC0B,SAD3CA,iBAC2C,CAACL,UAAD,EAAaC,MAAb;MAAaA;AAAAA,IAAAA,SAASR;;;AACxE,MAAIO,UAAJ,EAAgB;AACd,WAAO,UAACN,KAAD,EAAQS,IAAR;AAAA,0BACFF,MAAM,CAACP,KAAD,EAAQS,IAAR,CADJ,EAEFH,UAAU,CAACN,KAAD,EAAQS,IAAR,CAFR;AAAA,KAAP;AAID;;AAED,SAAOF,MAAP;AACD,CAVE;AAYP,AAAO,IAAMK,4BAA4B,GACA,SAD5BA,4BAC4B,CAACC,aAAD,EAAgBP,UAAhB,EAA4BC,MAA5B;MAA4BA;AAAAA,IAAAA,SAASR;;;AACxE,MAAIO,UAAJ,EAAgB;AACd,WAAO,UAACN,KAAD,EAAQS,IAAR;AAAA,0BACFF,MAAM,cAAKP,KAAL,EAAea,aAAf,GAA+BJ,IAA/B,CADJ,EAEFH,UAAU,CAACN,KAAD,EAAQS,IAAR,CAFR;AAAA,KAAP;AAID;;AAED,SAAO,UAACT,KAAD,EAAuBS,IAAvB;AAAA,WAA0CF,MAAM,cAAKP,KAAL,EAAea,aAAf,GAA+BJ,IAA/B,CAAhD;AAAA,GAAP;AACD,CAVE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9DP,IAAMK,gBAAgB,gBAAGC,gBAAH,iCAAtB;AAYA,AAAO,IAAMC,YAAY,gBAAGC,eAAM,CAACC,GAAV,mCAarB,UAAClB,KAAD;AAAA,SAAmCA,KAAK,CAACmB,SAAN,IAAmBC,UAAnB,oBAAnC;AAAA,CAbqB,CAAlB;AAoBP,AAAO,IAAMC,iBAAiB,gBAAGJ,eAAM,CAACC,GAAV,kCAAvB;AAYP,AAAO,IAAMI,YAAY,gBAAGL,eAAM,CAACC,GAAV,kCAAlB;AA6CP,AAAO,IAAMK,SAAS,gBAAGN,eAAM,CAACC,GAAV,mCACPM,yBADO,CAAf;AAQP,AAAO,IAAMC,YAAY,gBAAGR,eAAM,CAACC,GAAV,kCAAlB;AAOP,AAAO,IAAMQ,SAAS,gBAAGT,eAAM,CAACC,GAAV,kCAAf;AAQP,AAAO,IAAMS,QAAQ,gBAAGV,eAAM,CAACC,GAAV,kCAAd;AAIP,AAAO,IAAMU,EAAE,gBAAGX,eAAM,CAACC,GAAV,oCAQX;AAAA,MAAEf,KAAF,QAAEA,KAAF;AAAA,SAAsDA,KAAK,IAAIiB,UAAJ,sBAC7CjB,KAD6C,CAA3D;AAAA,CARW,CAAR;AAaP,AAAO,IAAM0B,cAAc,gBAAGZ,eAAM,CAACC,GAAV,oCAEfY,sBAAO,GAAG,CAFK,EAGcC,qBAHd,EAGyBC,oBAHzB,EAGmCD,qBAHnC,EAKZjB,gBALY,CAApB;AAQP,AAAO,IAAMmB,EAAE,gBAAGhB,eAAM,CAACC,GAAV,mCAAR;AAUP,AAAO,IAAMgB,KAAK,gBAAGjB,eAAM,CAACC,GAAV,oCAMde,EANc,EAMPL,EANO,EAWLO,oBAXK,CAAX;AAiBP,AAAO,IAAMC,OAAO,gBAAGnB,eAAM,CAACC,GAAV,oCAGaa,qBAHb,CAAb;AAQP,AAAO,IAAMM,EAAE,gBAAGpB,eAAM,CAACC,GAAV,mCAAR;AAMP,AAAO,IAAMoB,KAAK,gBAAGrB,eAAM,CAACC,GAAV,oCACQqB,qBADR,EAEFT,sBAAO,GAAG,CAFR,CAAX;AAOP,AAAO,IAAMU,KAAK,gBAAGvB,eAAM,CAACC,GAAV,oCACFa,qBADE,CAAX;AAOP,AAAO,IAAMU,QAAQ,gBAAGxB,eAAM,CAACC,GAAV,mCAAd;;AC3IP,IAAMwB,wBAAwB,GAAkB,SAA1CA,wBAA0C;AAAA,SAAM,IAAN;AAAA,CAAhD;;AACA,IAAMC,wBAAwB,GAAG,EAAjC;;AACA,IAAMC,qBAAqB,GAAwB,SAA7CA,qBAA6C;AAAA,SAAO,EAAP;AAAA,CAAnD;;AAEA,IAAaC,YAAY,GAAG;AAC1BC,EAAAA,oBAAoB,EAAE,KADI;AAE1B3B,EAAAA,SAAS,EAAE,KAFe;AAG1B4B,EAAAA,eAAe,EAAE,EAHS;AAI1BC,EAAAA,cAAc,EAAE,YAJU;AAK1BC,EAAAA,YAAY,EAAE,WALY;AAM1BC,EAAAA,eAAe,EAAE,gBANS;AAO1BC,EAAAA,cAAc,EAAE,EAPU;AAQ1BxG,EAAAA,gBAAgB,EAAE,KARQ;AAS1ByG,EAAAA,YAAY,EAAE,EATY;AAU1BrG,EAAAA,oBAAoB,EAAE8E,cAVI;AAW1BwB,EAAAA,cAAc,EAAET,qBAXU;AAY1BU,EAAAA,iBAAiB,EAAEZ,wBAZO;AAa1Ba,EAAAA,iBAAiB,EAAEZ,wBAbO;AAc1Ba,EAAAA,aAAa,EAAE;AAdW,CAArB;AAmBP,IAAMC,iBAAiB,GAAG,IAA1B;AACA,IAAMC,gBAAgB,GAAG,IAAzB;AACA,IAAMC,mBAAmB,GAAG,IAA5B;AAEA,IAAMC,kBAAkB,GAAG,CAA3B;AACA,IAAMC,iBAAiB,GAAG,EAA1B;;AAEA,SAASC,UAAT,CAAoBC,SAApB;AACE,SAAO,OAAOA,SAAP,KAAqB,UAA5B;AACD;;AAED,SAASC,aAAT,CAAuB7G,MAAvB;AACE,MAAIA,MAAM,CAAC8G,WAAX,EAAwB;AACtB,WACE3G,4BAAA,CAACmF,QAAD,oBACMtF,MAAM,CAAC+G,eAAP;AACJC,MAAAA,OAAO,EAAE,iBAACC,CAAD;AACPA,QAAAA,CAAC,CAACC,cAAF;AACAD,QAAAA,CAAC,CAACE,eAAF;AACD;MALH,CADF;AASD;;AAED,SAAO,IAAP;AACD;;AAED,SAASC,cAAT,CAAwBpH,MAAxB;AACE,MAAIA,MAAM,CAACqH,QAAP,IAAmBrH,MAAM,CAACsH,YAA9B,EAA4C;AAC1C,WACEnH,4BAAA,CAACqE,QAAD,MAAA,EACGxE,MAAM,CAACuH,MAAP,CAAc,QAAd,CADH,EAEEpH,4BAAA,CAACqH,cAAD;AAAWC,MAAAA,IAAI,EAAEC,SAAI,CAACC;AAAOC,MAAAA,KAAK,EAAEC,UAAK,CAACC;KAA1C,CAFF,CADF;AAMD;;AAED,MAAI9H,MAAM,CAACqH,QAAP,IAAmB,CAACrH,MAAM,CAACsH,YAA/B,EAA6C;AAC3C,WACEnH,4BAAA,CAACqE,QAAD,MAAA,EACGxE,MAAM,CAACuH,MAAP,CAAc,QAAd,CADH,EAEEpH,4BAAA,CAAC4H,YAAD;AAASN,MAAAA,IAAI,EAAEC,SAAI,CAACC;AAAOC,MAAAA,KAAK,EAAEC,UAAK,CAACC;KAAxC,CAFF,CADF;AAMD;;AAED,SAAO9H,MAAM,CAACuH,MAAP,CAAc,QAAd,CAAP;AACD;;AAED,IAAMS,KAAK,GAAiD,SAAtDA,KAAsD,CAACnF,KAAD;;;MAExDlD,UA8BEkD,MA9BFlD;MACAsI,OA6BEpF,MA7BFoF;MACAC,aA4BErF,MA5BFqF;MACAC,YA2BEtF,MA3BFsF;MACAC,uBA0BEvF,MA1BFuF;MACAnC,eAyBEpD,MAzBFoD;MACAjC,YAwBEnB,MAxBFmB;MACA6B,iBAuBEhD,MAvBFgD;MACAC,eAsBEjD,MAtBFiD;MACAF,kBAqBE/C,MArBF+C;MACAyC,iBAoBExF,MApBFwF;MACA1C,uBAmBE9C,MAnBF8C;MACA2C,qBAkBEzF,MAlBFyF;MACAvC,kBAiBElD,MAjBFkD;MACAC,iBAgBEnD,MAhBFmD;MACApG,uBAeEiD,MAfFjD;MACA2I,sBAcE1F,MAdF0F;MACArC,iBAaErD,MAbFqD;MACAhD,kBAYEL,MAZFK;MACAsF,sBAWE3F,MAXF2F;MACAC,iBAUE5F,MAVF4F;MACAC,cASE7F,MATF6F;MACAC,eAQE9F,MARF8F;MACAC,iBAOE/F,MAPF+F;MACAC,sBAMEhG,MANFgG;MACArJ,mBAKEqD,MALFrD;MACA6G,gBAIExD,MAJFwD;MACAyC,kBAGEjG,MAHFiG;MACA3C,oBAEEtD,MAFFsD;MACAC,oBACEvD,MADFuD;AAGF,MAAM2C,WAAW,GAAGjJ,aAAO,CAAC;AAAA,WAAMH,OAAN;AAAA,GAAD,EAAgB,CAACA,OAAD,CAAhB,CAA3B;;yBAEsCJ,eAAe,CACnDC,gBADmD,EAEnDwE,SAFmD,2BAGnDoE,oBAHmD,aAGnDA,oBAHmD,uBAGnDA,oBAAoB,CAAE1I,QAH6B,yEAGjBgH,iBAHiB,EAInDqC,WAJmD,EAKnDnJ,oBALmD;MAA9CC,kCAAAA;MAAgBO,+BAAAA;;AAQvB,MAAM4I,WAAW,GAAGxJ,gBAAgB,IAAIwE,SAAxC;AACA,MAAMiF,sBAAsB,GAAGX,kBAAkB,IAAI3B,UAAU,CAAC2B,kBAAD,CAA/D;AACA,MAAMY,eAAe,GAAGb,cAAc,IAAI1B,UAAU,CAAC0B,cAAD,CAApD;AACA,MAAMc,uBAAuB,GAAGhB,SAAS,IACpCC,oBAD2B,IAE3BgB,MAAM,CAACC,IAAP,CAAYjB,oBAAZ,EAAkC/H,MAAlC,GAA2C,CAFhD;AAIA,MAAMiJ,OAAO,GAAsB;AACjC3J,IAAAA,OAAO,EAAEqJ,WAAW,GACfnJ,cADe,GAEhBkJ,WAH6B;AAIjCd,IAAAA,IAAI,EAAEe,WAAW,GAAG5I,WAAH,GAAiB6H,IAJD;AAKjChC,IAAAA,YAAY,EAAZA,YALiC;AAMjCK,IAAAA,iBAAiB,EAAjBA,iBANiC;AAOjCC,IAAAA,gBAAgB,EAAhBA,gBAPiC;AAQjCC,IAAAA,mBAAmB,EAAnBA;AARiC,GAAnC;;AAWA,MAAI0C,eAAJ,EAAqB;AACnBI,IAAAA,OAAO,CAACC,YAAR,GAAuB,IAAvB;AACD;;AAED,MAAIJ,uBAAJ,EAA6B;AAAA;;AAC3B,QAAI,QAAOf,oBAAP,aAAOA,oBAAP,uBAAOA,oBAAoB,CAAEoB,SAA7B,MAA2C,WAA/C,EAA4D;AAC1D,YAAM,IAAIC,KAAJ,CACJ,yDADI,CAAN;AAGD;;AAEDH,IAAAA,OAAO,CAACrD,YAAR,gBACKqD,OAAO,CAACrD,YADb;AAEEyD,MAAAA,SAAS,4BAAEtB,oBAAoB,CAACsB,SAAvB,2EAAoCjD,kBAF/C;AAGE/G,MAAAA,QAAQ,4BAAE0I,oBAAoB,CAAC1I,QAAvB,2EAAmCgH;AAH7C;AAMA4C,IAAAA,OAAO,CAACK,aAAR,GAAwB,IAAxB;AACAL,IAAAA,OAAO,CAACM,gBAAR,GAA2B,IAA3B;AACAN,IAAAA,OAAO,CAACE,SAAR,GAAoBpB,oBAAoB,CAACoB,SAAzC;AACD;;AAED,MAAMK,SAAS,GAAG,SAAZA,SAAY,CAACC,KAAD;AAChB,QAAI,CAACb,sBAAL,EAA6B;AAC3B;AACD;;AAED,QAAMc,SAAS;AACbC,MAAAA,EAAE,EAAE,WADS;AAEbC,MAAAA,aAAa,EAAE,IAFF;AAGbC,MAAAA,MAAM,EAAE,gBAACC,QAAD;YAEJC,oCAGED,SAHFC;YACAC,4BAEEF,SAFFE;YACAC,OACEH,SADFG;AAGF,YAAMC,iBAAiB,GAAGD,IAAI,CAACvK,GAAL,CAAS;AAAA,cAAEyK,QAAF,QAAEA,QAAF;AAAA,iBAAgBA,QAAhB;AAAA,SAAT,EAAmCC,MAAnC,CAA0CtE,iBAA1C,EAA6D9F,MAA7D,KAAwE,CAAlG;AAEA,eACEF,4BAAA,CAACuK,QAAD;AACEC,UAAAA,SAAS,EAAC;AACVC,UAAAA,QAAQ,EAAEP;AACVQ,UAAAA,SAAS,EAAET,iCAAiC,GAAGU;AAC/CC,UAAAA,UAAU,EAAER;SAJd,CADF;AAQD,OApBY;AAqBbrK,MAAAA,IAAI,EAAE;YAAE8K,YAAAA;YAEJhB,KAIEgB,IAJFhB;YACAQ,WAGEQ,IAHFR;YACAS,oBAEED,IAFFC;YACAC,4BACEF,IADFE;AAGF,YAAMP,SAAS,GAAGQ,MAAM,CAACC,SAAP,CAAiBZ,QAAQ,CAACR,EAA1B,IAAgCQ,QAAQ,CAACR,EAAzC,GAA8CA,EAAhE;AACA,YAAMqB,SAAS,GAAGlF,iBAAiB,CAAC6E,GAAG,CAACR,QAAL,CAAnC;AAEA,eACErK,4BAAA,CAACuK,QAAD;AACEC,UAAAA,SAAS,EAAEA;AACXC,UAAAA,QAAQ,EAAEK;AACVF,UAAAA,UAAU,EAAE,CAACM;AACbR,UAAAA,SAAS,EAAEQ,SAAS,IAAIH,yBAAyB,GAAGJ;SAJtD,CADF;AAQD;AAxCY,OAyCV1E,iBAzCU,CAAf;;AA4CA0D,IAAAA,KAAK,CAACwB,cAAN,CAAqB7K,IAArB,CAA0B,UAAC8K,YAAD;AAAA,cACxBxB,SADwB,SAErBwB,YAFqB;AAAA,KAA1B;AAID,GArDD;;kBAgEIC,mBAAQ,CACVlC,OADU,EAEVmC,wBAFU,EAGVC,oBAHU,EAIVC,sBAJU,EAKVC,wBALU,EAMVC,uBANU,EAOVhC,SAPU,EAQViC,2BARU;MARKC,2BAAf7I;MACA8I,yBAAAA;MACAC,yBAAAA;MACAC,6BAAAA;MACAC,iBAAAA;MACAC,uBAAAA;MACAd,2BAAAA;MACGe;;MAaHC,mBAaED,KAbFC;MACAC,YAYEF,KAZFE;MACAjC,OAWE+B,KAXF/B;MACAkC,kBAUEH,KAVFG;MACAC,cASEJ,KATFI;MACAjD,YAQE6C,KARF7C;MACAkD,WAOEL,KAPFK;MACAC,WAMEN,KANFM;MACAC,eAKEP,KALFO;MACAC,cAIER,KAJFQ;oBAIER,KAHFS;MAAQC,6BAAAA;MAAgBrD,wBAAAA;MAAWhK,uBAAAA;AAKrC,MAAMuC,QAAQ,GAAG+K,YAAM,CAAC,IAAD,CAAvB;AACA,MAAM9K,eAAe,GAAG8K,YAAM,CAAC,IAAD,CAA9B;AAEAC,EAAAA,cAAc,CAAChL,QAAD,EAAWC,eAAX,CAAd;AAEAC,EAAAA,eAAS,CAAC;AACR,QAAI,EAAC8D,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAEiH,aAAf,CAAJ,EAAkC;AAChC;AACD;;AAEDhB,IAAAA,gBAAgB,CAACjG,YAAY,CAACiH,aAAd,CAAhB;AACD,GANQ,EAMN,CAACjH,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAEiH,aAAf,CANM,CAAT;AAQA/K,EAAAA,eAAS,CAAC;AACR,QAAI8G,sBAAJ,EAA4B;AAC1BX,MAAAA,kBAAkB,SAAlB,IAAAA,kBAAkB,WAAlB,YAAAA,kBAAkB,CAChBgE,gBADgB,aAChBA,gBADgB,uBAChBA,gBAAgB,CAAEvM,GAAlB,CAAsB,UAACiL,GAAD;AAAA,eAAsBA,GAAG,CAACR,QAA1B;AAAA,OAAtB,EAA0DC,MAA1D,CAAiEtE,iBAAjE,CADgB,CAAlB;AAGD;AACF,GANQ,EAMN,CAAC4G,cAAD,CANM,CAAT;AAQA,MAAII,UAAU,GAAuB,IAArC;;AAEA,MAAIxH,oBAAoB,IAAIwD,uBAA5B,EAAqD;AACnD,UAAM,IAAIM,KAAJ,CACJ,uEACI,uDAFA,CAAN;AAID;;AAED,MAAIN,uBAAuB,IAAIxD,oBAA/B,EAAqD;AACnD,QAAMyH,cAAc,GAAoB;AACtCP,MAAAA,WAAW,EAAXA,WADsC;AAEtCH,MAAAA,QAAQ,EAARA,QAFsC;AAGtCD,MAAAA,WAAW,EAAXA,WAHsC;AAItCD,MAAAA,eAAe,EAAfA,eAJsC;AAKtCzG,MAAAA,eAAe,EAAfA,eALsC;AAMtCD,MAAAA,YAAY,EAAZA,YANsC;AAOtC4D,MAAAA,SAAS,EAATA,SAPsC;AAQtC2D,MAAAA,mBAAmB,EAAET,YARiB;AAStCU,MAAAA,eAAe,EAAEX,QATqB;AAUtCY,MAAAA,UAAU,EAAE/D,SAV0B;AAWtCgE,MAAAA,OAAO,EAAE9N,QAX6B;AAYtCwI,MAAAA,UAAU,EAAEA,UAAF,aAAEA,UAAF,cAAEA,UAAF,GAAgBD,IAAI,CAAC5H;AAZO,KAAxC;;AAeA,QAAI8I,uBAAuB,IAAIf,oBAA/B,EAAqD;AACnDgF,MAAAA,cAAc,CAACX,WAAf,GAA6BrE,oBAAoB,CAACsB,SAArB,GAAiC,CAAjC,KAAuC0D,cAAc,CAACG,UAAnF;AACAH,MAAAA,cAAc,CAACZ,eAAf,GAAiCpE,oBAAoB,CAACsB,SAArB,KAAmC,CAApE;AACA0D,MAAAA,cAAc,CAAC1D,SAAf,GAA2BtB,oBAAoB,CAACsB,SAAhD;AACA0D,MAAAA,cAAc,CAACI,OAAf,GAAyBpF,oBAAoB,CAAC1I,QAA9C;;AAEA0N,MAAAA,cAAc,CAACP,WAAf,GAA6B,UAACY,WAAD;AAC3BtF,QAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAG;AACVuB,UAAAA,SAAS,EAAE0D,cAAc,CAAC1D,SADhB;AAEVhK,UAAAA,QAAQ,EAAE+N;AAFA,SAAH,CAAT;AAID,OALD;;AAOAL,MAAAA,cAAc,CAACV,QAAf,GAA0B,UAACgB,YAAD;AACxBvF,QAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAG;AACVuB,UAAAA,SAAS,EAAEgE,YADD;AAEVhO,UAAAA,QAAQ,EAAE0N,cAAc,CAACI;AAFf,SAAH,CAAT;AAID,OALD;;AAOAJ,MAAAA,cAAc,CAACE,eAAf,GAAiC;AAC/B,YAAMI,YAAY,GAAGN,cAAc,CAAC1D,SAAf,GAA2B,CAAhD;AACA0D,QAAAA,cAAc,CAACV,QAAf,CAAwBgB,YAAxB;AACD,OAHD;;AAKAN,MAAAA,cAAc,CAACC,mBAAf,GAAqC;AACnC,YAAMK,YAAY,GAAGN,cAAc,CAAC1D,SAAf,GAA2B,CAAhD;AACA0D,QAAAA,cAAc,CAACV,QAAf,CAAwBgB,YAAxB;AACD,OAHD;;AAKA,UAAItF,oBAAJ,aAAIA,oBAAJ,uBAAIA,oBAAoB,CAAEuF,gBAA1B,EAA4C;AAC1CP,QAAAA,cAAc,CAACO,gBAAf,GAAkCvF,oBAAoB,CAACuF,gBAAvD;AACD;AACF;;AAEDR,IAAAA,UAAU,GAAGhN,4BAAA,CAACoI,mBAAD,oBAAyB6E,eAAzB,CAAb;AACD;;AAED,WAASQ,iBAAT,CAA2B5N,MAA3B;AACE,QAAM6N,WAAW,GAAG7N,MAAM,CAAC8N,oBAAP,IAA+B9N,MAAM,CAAC8N,oBAAP,EAAnD;AAEOD,IAAAA,WAAP,aAAOA,WAAP,4BAAOA,WAAW,CAAEE,KAApB;;AAEA,QAAI7E,eAAe,IAAIlJ,MAAM,CAACgO,OAA1B,IAAqCH,WAAzC,EAAsD;AACpDA,MAAAA,WAAW,CAAC7G,OAAZ,GAAsB;AACpBqB,QAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAGrI,MAAM,CAACgK,EAAV,EAAciE,OAAO,CAACjO,MAAM,CAACsH,YAAR,CAArB,CAAd;AACAiF,QAAAA,SAAS,CAAC,CACR;AACEvC,UAAAA,EAAE,EAAEhK,MAAM,CAACgK,EADb;AAEEkE,UAAAA,IAAI,EAAE,CAAClO,MAAM,CAACsH;AAFhB,SADQ,CAAD,CAAT;AAMD,OARD;AASD;;AAED,WAAOuG,WAAP;AACD;;AAED,MAAMM,OAAO,GAAGhF,uBAAuB,IAAIxD,oBAA3B,GAAkD2E,IAAlD,GAAyD6B,IAAzE;AAEA,SACEhM,4BAAA,CAACiE,SAAD;AAAWgK,IAAAA,SAAS,EAAC;GAArB,EACEjO,4BAAA,CAAC0D,YAAD;AACEG,IAAAA,SAAS,EAAE,CAACxE,gBAAD,IAAqBwE;AAChCoK,IAAAA,SAAS,EAAC;GAFZ,EAIEjO,4BAAA,CAAC+D,iBAAD,MAAA,EAAoB2B,cAApB,CAJF,CADF,EAOE1F,4BAAA,CAACgE,YAAD;AAAckK,IAAAA,GAAG,EAAEnM;AAAiBkM,IAAAA,SAAS,EAAC;GAA9C,EACEjO,4BAAA,CAACmE,YAAD;AAAc0F,IAAAA,EAAE,EAAEhE;AAAgBoI,IAAAA,SAAS,EAAC;GAA5C,EACEjO,4BAAA,CAACoE,SAAD,oBACMwH,cAAc,CAACuC,aAAiB,CAACpL,eAAD,CAAlB;AAClBmL,IAAAA,GAAG,EAAEpM;IAFP,EAIE9B,4BAAA,CAAC4E,KAAD;AAAOqJ,IAAAA,SAAS,EAAC;iBAAuB;GAAxC,EACGpC,YAAY,CAACjM,GAAb,CAAiB,UAACwO,WAAD;AAAA,WAChBpO,4BAAA,CAAC+E,EAAD,oBACMqJ,WAAW,CAAC/F,mBAAZ,CACFnF,oBAAoB,CAACmF,mBAAD,CADlB,EADN,EAKG+F,WAAW,CAACC,OAAZ,CAAoBzO,GAApB,CAAwB,UAACC,MAAD;AACvB,UAAM6N,WAAW,GAAGD,iBAAiB,CACnC5N,MADmC,CAArC;AAIA,aACEG,4BAAA,CAAC2E,EAAD,oBACM9E,MAAM,CAACyI,cAAP,CACFhF,4BAA4B,CAC1BoK,WAD0B,EAE1BpF,cAF0B,EAG1BxF,cAH0B,CAD1B,EADN,EASGmE,cAAc,CAACpH,MAAD,CATjB,EAUG6G,aAAa,CAAC7G,MAAD,CAVhB,CADF;AAcD,KAnBA,CALH,CADgB;AAAA,GAAjB,CADH,CAJF,EAkCG4F,eAAe,CAAC6I,QAAhB,CAAyB9L,gBAAgB,CAAC+L,GAA1C,KACCvO,4BAAA,CAACkF,KAAD;AAAO+I,IAAAA,SAAS,EAAC;iBAA6B;GAA9C,EACGnC,YAAY,CAAClM,GAAb,CAAiB,UAAC4O,KAAD;AAAA,WAChBxO,4BAAA,CAAC+E,EAAD,oBACMyJ,KAAK,CAAC9F,mBAAN,CACFxF,oBAAoB,CAACwF,mBAAD,CADlB,EADN,EAKG8F,KAAK,CAACH,OAAN,CAAczO,GAAd,CAAkB,UAACC,MAAD;AAAA,aACjBG,4BAAA,CAACsE,EAAD,oBACMzE,MAAM,CAAC4I,cAAP,CACFvF,oBAAoB,CAACuF,cAAD,EAAiB3F,cAAjB,CADlB,EADN,EAKGjD,MAAM,CAACuH,MAAP,CAAc,QAAd,CALH,CADiB;AAAA,KAAlB,CALH,CADgB;AAAA,GAAjB,CADH,CAnCJ,EAuDEpH,4BAAA,CAACgF,KAAD;AAAOiJ,IAAAA,SAAS,EAAC;iBAAuB;GAAxC,EACGD,OAAO,CAACpO,GAAR,CAAY,UAACiL,GAAD;AACXoB,IAAAA,UAAU,CAACpB,GAAD,CAAV;;0BACwB9E,cAAc,CAAC8E,GAAD;QAA/B4D,gCAAAA;;AAEP,QAAIA,aAAJ,EAAmB;AACjB,aACEzO,4BAAA,CAACA,cAAK,CAAC0O,QAAP;AAAgBC,QAAAA,GAAG,aAAW9D,GAAG,CAAC+D;OAAlC,EACE5O,4BAAA,CAAC8E,OAAD,MAAA,EACE9E,4BAAA,CAAC+E,EAAD,oBAAQ8F,GAAG,CAACtC,WAAJ,CAAgBnF,gBAAgB,CAACmF,WAAD,CAAhC,EAAR,EACEvI,4BAAA,CAACsE,EAAD;AACEuK,QAAAA,OAAO,EAAE1D,cAAc,CAACjL;SACpB2K,GAAG,CAACiE,KAAJ,CAAU,CAAV,EAAatG,YAAb,CACFnF,iBAAiB,CAACmF,YAAD,EAAe7F,UAAf,CADf,EAFN,EAME3C,4BAAA,SAAA,MAAA,EAAS6K,GAAG,CAACiE,KAAJ,CAAU,CAAV,EAAa1H,MAAb,CAAoB,MAApB,CAAT,CANF,CADF,CADF,CADF,EAaG,CAAAyD,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEkE,UAAL,KAAmBpG,eAAnB,IAAsCA,eAAe,CAACkC,GAAD,CAbxD,CADF;AAiBD;;AAED,WACE7K,4BAAA,CAACA,cAAK,CAAC0O,QAAP;AAAgBC,MAAAA,GAAG,aAAW9D,GAAG,CAAC+D;KAAlC,EACE5O,4BAAA,CAAC8E,OAAD,MAAA,EACE9E,4BAAA,CAAC+E,EAAD,oBAAQ8F,GAAG,CAACtC,WAAJ,CAAgBnF,gBAAgB,CAACmF,WAAD,CAAhC,EAAR,EACGsC,GAAG,CAACiE,KAAJ,CAAUlP,GAAV,CAAc,UAACgD,IAAD;AAAA,aACb5C,4BAAA,CAACsE,EAAD,oBACM1B,IAAI,CAAC4F,YAAL,CACFnF,iBAAiB,CAACmF,YAAD,EAAe7F,UAAf,CADf,EADN,EAKGC,IAAI,CAACwE,MAAL,CAAY,MAAZ,CALH,CADa;AAAA,KAAd,CADH,CADF,CADF,EAcG,CAAAyD,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEkE,UAAL,KAAmBpG,eAAnB,IAAsCA,eAAe,CAACkC,GAAD,CAdxD,CADF;AAkBD,GA1CA,CADH,CAvDF,EAoGGpF,eAAe,CAAC6I,QAAhB,CAAyB9L,gBAAgB,CAACwM,MAA1C,KACChP,4BAAA,CAACkF,KAAD;AAAO+I,IAAAA,SAAS,EAAC;iBAAgC;GAAjD,EACGnC,YAAY,CAAClM,GAAb,CAAiB,UAAC4O,KAAD;AAAA,WAChBxO,4BAAA,CAAC+E,EAAD,oBACMyJ,KAAK,CAAC9F,mBAAN,CACFxF,oBAAoB,CAACwF,mBAAD,CADlB,EADN,EAKG8F,KAAK,CAACH,OAAN,CAAczO,GAAd,CAAkB,UAACC,MAAD;AAAA,aACjBG,4BAAA,CAACsE,EAAD,oBACMzE,MAAM,CAAC4I,cAAP,CACFvF,oBAAoB,CAACuF,cAAD,EAAiB3F,cAAjB,CADlB,EADN,EAKGjD,MAAM,CAACuH,MAAP,CAAc,QAAd,CALH,CADiB;AAAA,KAAlB,CALH,CADgB;AAAA,GAAjB,CADH,CArGJ,CADF,CADF,CAPF,EAqIG,CAACvD,SAAD,IAAc,CAACiE,IAAI,CAAC5H,MAApB,IAA8BgG,aArIjC,EAsIG8G,UAtIH,CADF;AA0ID,CAnaD;;AAqaAnF,KAAK,CAACtC,YAAN,GAAqBA,YAArB;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("react"),o=e(t),r=require("react-table"),a=require("@propellerads/icon"),i=e(require("@propellerads/input-checkbox")),l=require("styled-components"),u=e(l),s=require("@propellerads/stylevariables");function c(){return(c=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e}).apply(this,arguments)}function d(e,n){return n||(n=e.slice(0)),e.raw=n,e}function g(e,n){if(e&&n){var t=e.getBoundingClientRect(),o=n.getBoundingClientRect(),r=[],a=Math.floor(t.left),i=Math.floor(t.right),l=Math.floor(o.left),u=Math.floor(o.right);a<l&&r.push("shadow_left"),i>u&&r.push("shadow_right"),function(e,n){var t=e.classList;t.remove("shadow_left","shadow_right"),t.add.apply(t,n)}(n,r)}}!function(e){e.TOP="top",e.BOTTOM="bottom"}(n||(n={}));var p=function(e){return e},f=function(e,n){var t,o=n.cell;return c({},e,{align:null==o||null===(t=o.column)||void 0===t?void 0:t.align})},m=function(e,n){var t=n.column;return c({},e,{align:null==t?void 0:t.align})},v=function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n},b=function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n};function h(){var e=d(["\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n"]);return h=function(){return e},e}function P(){var e=d(["\n background: ",";\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n"]);return P=function(){return e},e}function x(){var e=d(["\n border-top: 1px solid ",";\n margin-top: ","px;\n min-width: 100%;\n width: max-content;\n"]);return x=function(){return e},e}function w(){var e=d(["\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n"]);return w=function(){return e},e}function y(){var e=d(["\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ",";\n min-width: 100%;\n width: max-content;\n"]);return y=function(){return e},e}function E(){var e=d(["\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ",", "," {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ",";\n font-weight: 500;\n outline: none;\n }\n"]);return E=function(){return e},e}function S(){var e=d(["\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n"]);return S=function(){return e},e}function C(){var e=d(["\n width: 100%;\n height: ","px;\n background: linear-gradient(to left, ",", ",", ",");\n background-size: 200% 200%;\n animation: "," 1.6s linear infinite;\n"]);return C=function(){return e},e}function R(){var e=d(["\n text-align: ",""]);return R=function(){return e},e}function O(){var e=d(["\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ","\n"]);return O=function(){return e},e}function I(){var e=d(["\n display: inline-flex;\n"]);return I=function(){return e},e}function k(){var e=d(["\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n"]);return k=function(){return e},e}function z(){var e=d(["\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n"]);return z=function(){return e},e}function D(){var e=d(["\n font-size: ","px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n"]);return D=function(){return e},e}function L(){var e=d(["\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n"]);return L=function(){return e},e}function j(){var e=d(["\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n"]);return j=function(){return e},e}function M(){var e=d(["\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n "]);return M=function(){return e},e}function T(){var e=d(["\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ","\n"]);return T=function(){return e},e}function A(){var e=d(["\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n"]);return A=function(){return e},e}var H=l.keyframes(A()),N=u.div(T(),(function(e){return e.isLoading&&l.css(M())})),F=u.div(j()),_=u.div(L()),B=u.div(D(),s.fontNormal),G=u.div(z()),q=u.div(k()),Y=u.div(I()),K=u.div(O(),(function(e){var n=e.align;return n&&l.css(R(),n)})),Z=u.div(C(),4*s.spacing,s.gray95,s.white,s.gray95,H),U=u.div(S()),J=u.div(E(),U,K,s.black),Q=u.div(y(),s.gray95),V=u.div(w()),W=u.div(x(),s.gray80,2*s.spacing),X=u.div(P(),s.gray95),$=u.div(h()),ee={hasDefaultPagination:!1,isLoading:!1,footerPlacement:[],loadingMessage:"loading...",labelPerPage:"Show rows",parentElementId:"parent-element",tableContentId:"",showLoadingState:!1,initialState:{},LoadingCellComponent:Z,getRowPreProps:function(){return{}},isEnableRowSelect:function(){return!0},selectColumnProps:{},noDataMessage:""};function ne(e){return"function"==typeof e}var te=function(e){var l,u=e.columns,s=e.data,d=e.totalItems,h=e.fetchData,P=e.controlledPagination,x=e.initialState,w=e.isLoading,y=e.loadingMessage,E=e.labelPerPage,S=e.footerPlacement,C=e.onSortedChange,R=e.hasDefaultPagination,O=e.onSelectRowsChange,I=e.parentElementId,k=e.tableContentId,z=e.LoadingCellComponent,D=e.PaginationComponent,L=e.getRowPreProps,j=e.getTableProps,M=e.getHeaderGroupProps,T=e.getHeaderProps,A=e.getRowProps,H=e.getCellProps,Z=e.getFooterProps,ee=e.getFooterGroupProps,te=e.showLoadingState,oe=e.noDataMessage,re=e.rowSubComponent,ae=e.isEnableRowSelect,ie=e.selectColumnProps,le=e.isResizableColumns,ue=t.useMemo((function(){return u}),[u]),se=function(e,n,r,a,i){return{loadingColumns:t.useMemo((function(){return e&&n?a.map((function(e){return c({},e,{Cell:function(){return o.createElement(i,null)}})})):[]}),[a,n,e]),loadingData:t.useMemo((function(){if(e&&n&&a&&a.length>0){for(var t={},o=[],i=0;i<a.length;i+=1)t["empty_"+i]="";for(var l=0;l<r;l+=1)o.push(t);return o}return[]}),[a,n,r,e])}}(te,w,null!==(l=null==P?void 0:P.pageSize)&&void 0!==l?l:10,ue,z),ce=se.loadingColumns,de=se.loadingData,ge=te&&w,pe=O&&ne(O),fe=C&&ne(C),me=h&&P&&Object.keys(P).length>0,ve={columns:ge?ce:ue,data:ge?de:s,initialState:x,disableSortRemove:!0,disableMultiSort:!0,disabledMultiRemove:!0};if(fe&&(ve.manualSortBy=!0),me){var be,he;if(void 0===(null==P?void 0:P.pageCount))throw new Error("You have to pass pageCount in controlledPagination data");ve.initialState=c({},ve.initialState,{pageIndex:null!==(be=P.pageIndex)&&void 0!==be?be:0,pageSize:null!==(he=P.pageSize)&&void 0!==he?he:10}),ve.autoResetPage=!0,ve.manualPagination=!0,ve.pageCount=P.pageCount}var Pe=r.useTable(ve,r.useFlexLayout,r.useSortBy,r.useExpanded,r.usePagination,r.useRowSelect,(function(e){if(pe){var n=c({id:"selection",disableSortBy:!0,Header:function(e){var n=e.getToggleAllPageRowsSelectedProps,t=e.toggleAllPageRowsSelected,r=0===e.page.map((function(e){return e.original})).filter(ae).length;return o.createElement(i,{elementId:"all",onChange:t,isChecked:n().checked,isDisabled:r})},Cell:function(e){var n=e.row,t=n.id,r=n.original,a=n.toggleRowSelected,l=n.getToggleRowSelectedProps,u=Number.isInteger(r.id)?r.id:t,s=ae(n.original);return o.createElement(i,{elementId:u,onChange:a,isDisabled:!s,isChecked:s&&l().checked})}},ie);e.visibleColumns.push((function(e){return[n].concat(e)}))}}),r.useResizeColumns),xe=Pe.getTableProps,we=Pe.headerGroups,ye=Pe.footerGroups,Ee=Pe.setHiddenColumns,Se=Pe.rows,Ce=Pe.prepareRow,Re=Pe.visibleColumns,Oe=function(e,n){if(null==e)return{};var t,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n.indexOf(t=a[o])>=0||(r[t]=e[t]);return r}(Pe,["getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","visibleColumns"]),Ie=Oe.selectedFlatRows,ke=Oe.setSortBy,ze=Oe.page,De=Oe.canPreviousPage,Le=Oe.canNextPage,je=Oe.pageCount,Me=Oe.gotoPage,Te=Oe.nextPage,Ae=Oe.previousPage,He=Oe.setPageSize,Ne=Oe.state,Fe=Ne.selectedRowIds,_e=Ne.pageIndex,Be=Ne.pageSize,Ge=t.useRef(null),qe=t.useRef(null);!function(e,n){t.useEffect((function(){var t,o=!1;function r(){o||(window.requestAnimationFrame((function(){g(e.current,n.current),o=!1})),o=!0)}return g(e.current,n.current),null==e||null===(t=e.current)||void 0===t||t.addEventListener("mousewheel",r),window.addEventListener("resize",r),function(){var n;null==e||null===(n=e.current)||void 0===n||n.removeEventListener("mousewheel",r),window.removeEventListener("resize",r)}}),[e.current,n.current])}(Ge,qe),t.useEffect((function(){(null==x?void 0:x.hiddenColumns)&&Ee(x.hiddenColumns)}),[null==x?void 0:x.hiddenColumns]),t.useEffect((function(){pe&&(null==O||O(null==Ie?void 0:Ie.map((function(e){return e.original})).filter(ae)))}),[Fe]);var Ye=null;if(R&&me)throw new Error("You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data");if(me||R){var Ke={setPageSize:He,gotoPage:Me,canNextPage:Le,canPreviousPage:De,parentElementId:I,labelPerPage:E,pageIndex:_e,previousPageHandler:Ae,nextPageHandler:Te,totalPages:je,perPage:Be,totalItems:null!=d?d:s.length};me&&P&&(Ke.canNextPage=P.pageIndex+1!==Ke.totalPages,Ke.canPreviousPage=0!==P.pageIndex,Ke.pageIndex=P.pageIndex,Ke.perPage=P.pageSize,Ke.setPageSize=function(e){null==h||h({pageIndex:Ke.pageIndex,pageSize:e})},Ke.gotoPage=function(e){null==h||h({pageIndex:e,pageSize:Ke.perPage})},Ke.nextPageHandler=function(){Ke.gotoPage(Ke.pageIndex+1)},Ke.previousPageHandler=function(){Ke.gotoPage(Ke.pageIndex-1)},(null==P?void 0:P.paginationAmount)&&(Ke.paginationAmount=P.paginationAmount)),Ye=o.createElement(D,Object.assign({},Ke))}var Ze,Ue,Je=me||R?ze:Se;return o.createElement(B,{className:"table-root"},o.createElement(N,{isLoading:!te&&w,className:"table-loading"},o.createElement(F,null,y)),o.createElement(_,{ref:qe,className:"table-wrapper"},o.createElement(G,{id:k,className:"table-content"},o.createElement(q,Object.assign({},xe((void 0===Ue&&(Ue=p),(Ze=j)?function(e){return c({},Ue(e),Ze(e))}:Ue)),{ref:Ge}),o.createElement(J,{className:"table-head","data-role":"table-head"},we.map((function(e){return o.createElement(V,Object.assign({},e.getHeaderGroupProps(v(M))),e.headers.map((function(e){var n=function(e){var n=e.getSortByToggleProps&&e.getSortByToggleProps();return null==n||delete n.style,fe&&e.canSort&&n&&(n.onClick=function(){null==C||C(e.id,Boolean(e.isSortedDesc)),ke([{id:e.id,desc:!e.isSortedDesc}])}),n}(e);return o.createElement(U,Object.assign({},e.getHeaderProps(function(e,n,t){return void 0===t&&(t=p),n?function(o,r){return c({},t(c({},o,e),r),n(o,r))}:function(n,o){return t(c({},n,e),o)}}(n,T,m))),function(e){return e.isSorted&&e.isSortedDesc?o.createElement(Y,null,e.render("Header"),o.createElement(a.ArrowDown,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.isSorted&&!e.isSortedDesc?o.createElement(Y,null,e.render("Header"),o.createElement(a.ArrowUp,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.render("Header")}(e),le&&o.createElement($,Object.assign({},e.getResizerProps(),{onClick:function(e){e.preventDefault(),e.stopPropagation()}})))})))}))),S.includes(n.TOP)&&o.createElement(X,{className:"table-footer-top","data-role":"table-footer-top"},ye.map((function(e){return o.createElement(V,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return o.createElement(K,Object.assign({},e.getFooterProps(v(Z,m))),e.render("Footer"))})))}))),o.createElement(W,{className:"table-body","data-role":"table-body"},Je.map((function(e){Ce(e);var n=L(e);return o.createElement(o.Fragment,{key:"group_"+e.index},o.createElement(Q,null,o.createElement(V,Object.assign({},e.getRowProps(function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n}(A))),n.isDelimiterTd?o.createElement(K,Object.assign({colSpan:Re.length},e.cells[0].getCellProps(b(H,f))),o.createElement("strong",null,e.cells[0].render("Cell"))):e.cells.map((function(e){return o.createElement(K,Object.assign({},e.getCellProps(b(H,f))),e.render("Cell"))})))),(null==e?void 0:e.isExpanded)&&re&&re(e))}))),S.includes(n.BOTTOM)&&o.createElement(X,{className:"table-footer-bottom","data-role":"table-footer-bottom"},ye.map((function(e){return o.createElement(V,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return o.createElement(K,Object.assign({},e.getFooterProps(v(Z,m))),e.render("Footer"))})))})))))),!w&&!s.length&&oe,Ye)};te.defaultProps=ee,exports.Table=te,exports.defaultProps=ee;
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("react"),o=e(t),r=require("react-table"),a=require("@propellerads/icon"),i=e(require("@propellerads/input-checkbox")),l=require("styled-components"),u=e(l),s=require("@propellerads/stylevariables");function c(){return(c=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])}return e}).apply(this,arguments)}function d(e,n){return n||(n=e.slice(0)),e.raw=n,e}function g(e,n){if(e&&n){var t=e.getBoundingClientRect(),o=n.getBoundingClientRect(),r=[],a=Math.floor(t.left),i=Math.floor(t.right),l=Math.floor(o.left),u=Math.floor(o.right);a<l&&r.push("shadow_left"),i>u&&r.push("shadow_right"),function(e,n){var t=e.classList;t.remove("shadow_left","shadow_right"),t.add.apply(t,n)}(n,r)}}!function(e){e.TOP="top",e.BOTTOM="bottom"}(n||(n={}));var p=function(e){return e},f=function(e,n){var t,o=n.cell;return c({},e,{align:null==o||null===(t=o.column)||void 0===t?void 0:t.align})},m=function(e,n){var t=n.column;return c({},e,{align:null==t?void 0:t.align})},v=function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n},b=function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n};function h(){var e=d(["\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n"]);return h=function(){return e},e}function P(){var e=d(["\n background: ",";\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n"]);return P=function(){return e},e}function x(){var e=d(["\n border-top: 1px solid ",";\n margin-top: ","px;\n min-width: 100%;\n width: max-content;\n"]);return x=function(){return e},e}function w(){var e=d(["\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n"]);return w=function(){return e},e}function y(){var e=d(["\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ",";\n min-width: 100%;\n width: max-content;\n"]);return y=function(){return e},e}function E(){var e=d(["\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ",", "," {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ",";\n font-weight: 500;\n outline: none;\n }\n"]);return E=function(){return e},e}function S(){var e=d(["\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n"]);return S=function(){return e},e}function C(){var e=d(["\n width: 100%;\n height: ","px;\n background: linear-gradient(to left, ",", ",", ",");\n background-size: 200% 200%;\n animation: "," 1.6s linear infinite;\n"]);return C=function(){return e},e}function R(){var e=d(["\n text-align: ",""]);return R=function(){return e},e}function O(){var e=d(["\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ","\n"]);return O=function(){return e},e}function I(){var e=d(["\n display: inline-flex;\n"]);return I=function(){return e},e}function k(){var e=d(["\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n"]);return k=function(){return e},e}function z(){var e=d(["\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n"]);return z=function(){return e},e}function D(){var e=d(["\n font-size: ","px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n"]);return D=function(){return e},e}function L(){var e=d(["\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n"]);return L=function(){return e},e}function j(){var e=d(["\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n"]);return j=function(){return e},e}function M(){var e=d(["\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n "]);return M=function(){return e},e}function T(){var e=d(["\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ","\n"]);return T=function(){return e},e}function A(){var e=d(["\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n"]);return A=function(){return e},e}var H=l.keyframes(A()),N=u.div(T(),(function(e){return e.isLoading&&l.css(M())})),F=u.div(j()),_=u.div(L()),B=u.div(D(),s.fontNormal),G=u.div(z()),q=u.div(k()),Y=u.div(I()),K=u.div(O(),(function(e){var n=e.align;return n&&l.css(R(),n)})),Z=u.div(C(),4*s.spacing,s.gray95,s.white,s.gray95,H),U=u.div(S()),J=u.div(E(),U,K,s.black),Q=u.div(y(),s.gray95),V=u.div(w()),W=u.div(x(),s.gray80,2*s.spacing),X=u.div(P(),s.gray95),$=u.div(h()),ee={hasDefaultPagination:!1,isLoading:!1,footerPlacement:[],loadingMessage:"loading...",labelPerPage:"Show rows",parentElementId:"parent-element",tableContentId:"",showLoadingState:!1,initialState:{},LoadingCellComponent:Z,getRowPreProps:function(){return{}},isEnableRowSelect:function(){return!0},selectColumnProps:{},noDataMessage:""};function ne(e){return"function"==typeof e}var te=function(e){var l,u=e.columns,s=e.data,d=e.totalItems,h=e.fetchData,P=e.controlledPagination,x=e.initialState,w=e.isLoading,y=e.loadingMessage,E=e.labelPerPage,S=e.footerPlacement,C=e.onSortedChange,R=e.hasDefaultPagination,O=e.onSelectRowsChange,I=e.parentElementId,k=e.tableContentId,z=e.LoadingCellComponent,D=e.PaginationComponent,L=e.getRowPreProps,j=e.getTableProps,M=e.getHeaderGroupProps,T=e.getHeaderProps,A=e.getRowProps,H=e.getCellProps,Z=e.getFooterProps,ee=e.getFooterGroupProps,te=e.showLoadingState,oe=e.noDataMessage,re=e.rowSubComponent,ae=e.isEnableRowSelect,ie=e.selectColumnProps,le=t.useMemo((function(){return u}),[u]),ue=function(e,n,r,a,i){return{loadingColumns:t.useMemo((function(){return e&&n?a.map((function(e){return c({},e,{Cell:function(){return o.createElement(i,null)}})})):[]}),[a,n,e]),loadingData:t.useMemo((function(){if(e&&n&&a&&a.length>0){for(var t={},o=[],i=0;i<a.length;i+=1)t["empty_"+i]="";for(var l=0;l<r;l+=1)o.push(t);return o}return[]}),[a,n,r,e])}}(te,w,null!==(l=null==P?void 0:P.pageSize)&&void 0!==l?l:10,le,z),se=ue.loadingColumns,ce=ue.loadingData,de=te&&w,ge=O&&ne(O),pe=C&&ne(C),fe=h&&P&&Object.keys(P).length>0,me={columns:de?se:le,data:de?ce:s,initialState:x,disableSortRemove:!0,disableMultiSort:!0,disabledMultiRemove:!0};if(pe&&(me.manualSortBy=!0),fe){var ve,be;if(void 0===(null==P?void 0:P.pageCount))throw new Error("You have to pass pageCount in controlledPagination data");me.initialState=c({},me.initialState,{pageIndex:null!==(ve=P.pageIndex)&&void 0!==ve?ve:0,pageSize:null!==(be=P.pageSize)&&void 0!==be?be:10}),me.autoResetPage=!0,me.manualPagination=!0,me.pageCount=P.pageCount}var he=r.useTable(me,r.useFlexLayout,r.useSortBy,r.useExpanded,r.usePagination,r.useRowSelect,(function(e){if(ge){var n=c({id:"selection",disableSortBy:!0,Header:function(e){var n=e.getToggleAllPageRowsSelectedProps,t=e.toggleAllPageRowsSelected,r=0===e.page.map((function(e){return e.original})).filter(ae).length;return o.createElement(i,{elementId:"all",onChange:t,isChecked:n().checked,isDisabled:r})},Cell:function(e){var n=e.row,t=n.id,r=n.original,a=n.toggleRowSelected,l=n.getToggleRowSelectedProps,u=Number.isInteger(r.id)?r.id:t,s=ae(n.original);return o.createElement(i,{elementId:u,onChange:a,isDisabled:!s,isChecked:s&&l().checked})}},ie);e.visibleColumns.push((function(e){return[n].concat(e)}))}}),r.useResizeColumns),Pe=he.getTableProps,xe=he.headerGroups,we=he.footerGroups,ye=he.setHiddenColumns,Ee=he.rows,Se=he.prepareRow,Ce=he.visibleColumns,Re=function(e,n){if(null==e)return{};var t,o,r={},a=Object.keys(e);for(o=0;o<a.length;o++)n.indexOf(t=a[o])>=0||(r[t]=e[t]);return r}(he,["getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","visibleColumns"]),Oe=Re.selectedFlatRows,Ie=Re.setSortBy,ke=Re.page,ze=Re.canPreviousPage,De=Re.canNextPage,Le=Re.pageCount,je=Re.gotoPage,Me=Re.nextPage,Te=Re.previousPage,Ae=Re.setPageSize,He=Re.state,Ne=He.selectedRowIds,Fe=He.pageIndex,_e=He.pageSize,Be=t.useRef(null),Ge=t.useRef(null);!function(e,n){t.useEffect((function(){var t,o=!1;function r(){o||(window.requestAnimationFrame((function(){g(e.current,n.current),o=!1})),o=!0)}return g(e.current,n.current),null==e||null===(t=e.current)||void 0===t||t.addEventListener("mousewheel",r),window.addEventListener("resize",r),function(){var n;null==e||null===(n=e.current)||void 0===n||n.removeEventListener("mousewheel",r),window.removeEventListener("resize",r)}}),[e.current,n.current])}(Be,Ge),t.useEffect((function(){(null==x?void 0:x.hiddenColumns)&&ye(x.hiddenColumns)}),[null==x?void 0:x.hiddenColumns]),t.useEffect((function(){ge&&(null==O||O(null==Oe?void 0:Oe.map((function(e){return e.original})).filter(ae)))}),[Ne]);var qe=null;if(R&&fe)throw new Error("You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data");if(fe||R){var Ye={setPageSize:Ae,gotoPage:je,canNextPage:De,canPreviousPage:ze,parentElementId:I,labelPerPage:E,pageIndex:Fe,previousPageHandler:Te,nextPageHandler:Me,totalPages:Le,perPage:_e,totalItems:null!=d?d:s.length};fe&&P&&(Ye.canNextPage=P.pageIndex+1!==Ye.totalPages,Ye.canPreviousPage=0!==P.pageIndex,Ye.pageIndex=P.pageIndex,Ye.perPage=P.pageSize,Ye.setPageSize=function(e){null==h||h({pageIndex:Ye.pageIndex,pageSize:e})},Ye.gotoPage=function(e){null==h||h({pageIndex:e,pageSize:Ye.perPage})},Ye.nextPageHandler=function(){Ye.gotoPage(Ye.pageIndex+1)},Ye.previousPageHandler=function(){Ye.gotoPage(Ye.pageIndex-1)},(null==P?void 0:P.paginationAmount)&&(Ye.paginationAmount=P.paginationAmount)),qe=o.createElement(D,Object.assign({},Ye))}var Ke,Ze,Ue=fe||R?ke:Ee;return o.createElement(B,{className:"table-root"},o.createElement(N,{isLoading:!te&&w,className:"table-loading"},o.createElement(F,null,y)),o.createElement(_,{ref:Ge,className:"table-wrapper"},o.createElement(G,{id:k,className:"table-content"},o.createElement(q,Object.assign({},Pe((void 0===Ze&&(Ze=p),(Ke=j)?function(e){return c({},Ze(e),Ke(e))}:Ze)),{ref:Be}),o.createElement(J,{className:"table-head","data-role":"table-head"},xe.map((function(e){return o.createElement(V,Object.assign({},e.getHeaderGroupProps(v(M))),e.headers.map((function(e){var n=function(e){var n=e.getSortByToggleProps&&e.getSortByToggleProps();return null==n||delete n.style,pe&&e.canSort&&n&&(n.onClick=function(){null==C||C(e.id,Boolean(e.isSortedDesc)),Ie([{id:e.id,desc:!e.isSortedDesc}])}),n}(e);return o.createElement(U,Object.assign({},e.getHeaderProps(function(e,n,t){return void 0===t&&(t=p),n?function(o,r){return c({},t(c({},o,e),r),n(o,r))}:function(n,o){return t(c({},n,e),o)}}(n,T,m))),function(e){return e.isSorted&&e.isSortedDesc?o.createElement(Y,null,e.render("Header"),o.createElement(a.ArrowDown,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.isSorted&&!e.isSortedDesc?o.createElement(Y,null,e.render("Header"),o.createElement(a.ArrowUp,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.render("Header")}(e),function(e){return e.isResizable?o.createElement($,Object.assign({},e.getResizerProps(),{onClick:function(e){e.preventDefault(),e.stopPropagation()}})):null}(e))})))}))),S.includes(n.TOP)&&o.createElement(X,{className:"table-footer-top","data-role":"table-footer-top"},we.map((function(e){return o.createElement(V,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return o.createElement(K,Object.assign({},e.getFooterProps(v(Z,m))),e.render("Footer"))})))}))),o.createElement(W,{className:"table-body","data-role":"table-body"},Ue.map((function(e){Se(e);var n=L(e);return o.createElement(o.Fragment,{key:"group_"+e.index},o.createElement(Q,null,o.createElement(V,Object.assign({},e.getRowProps(function(e,n){return void 0===n&&(n=p),e?function(t,o){return c({},n(t,o),e(t,o))}:n}(A))),n.isDelimiterTd?o.createElement(K,Object.assign({colSpan:Ce.length},e.cells[0].getCellProps(b(H,f))),o.createElement("strong",null,e.cells[0].render("Cell"))):e.cells.map((function(e){return o.createElement(K,Object.assign({},e.getCellProps(b(H,f))),e.render("Cell"))})))),(null==e?void 0:e.isExpanded)&&re&&re(e))}))),S.includes(n.BOTTOM)&&o.createElement(X,{className:"table-footer-bottom","data-role":"table-footer-bottom"},we.map((function(e){return o.createElement(V,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return o.createElement(K,Object.assign({},e.getFooterProps(v(Z,m))),e.render("Footer"))})))})))))),!w&&!s.length&&oe,qe)};te.defaultProps=ee,exports.Table=te,exports.defaultProps=ee;
|
|
2
2
|
//# sourceMappingURL=table.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.cjs.production.min.js","sources":["../src/types.tsx","../src/useTableShadow.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx","../src/useLoadingState.tsx"],"sourcesContent":["import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n isResizableColumns?: boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n isResizableColumns,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {isResizableColumns && (\n <TResizer\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n )}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n","import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n"],"names":["FOOTER_PLACEMENT","calculateNewClassNames","tableNode","tableWrapperNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","push","newClassNameList","classList","remove","add","changeClassName","defaultGetter","props","cellGetter","cell","align","column","_cell$column","mainCellGetter","getTableElementProps","userGetter","getter","meta","getTableCellProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","showLoadingState","initialState","LoadingCellComponent","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","isFunction","reference","Table","columns","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getTableProps","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","isResizableColumns","memoColumns","useMemo","loading","pageSize","loadingColumns","map","Cell","React","loadingData","length","dataObject","dataArray","i","useLoadingState","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","disableSortRemove","disableMultiSort","disabledMultiRemove","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","isDisabledAllRows","page","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","tableRef","useRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","tBodyTr","className","ref","headerGroup","headers","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","isSortedDesc","desc","extendSortByProps","internalProps","getTableElementInternalProps","isSorted","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","getHeadContent","getResizerProps","e","preventDefault","stopPropagation","includes","TOP","group","Fragment","key","index","getTableRowProps","isDelimiterTd","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.cjs.production.min.js","sources":["../src/types.tsx","../src/useTableShadow.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx","../src/useLoadingState.tsx"],"sourcesContent":["import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction renderResizer(column) {\n if (column.isResizable) {\n return (\n <TResizer\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {renderResizer(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n","import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n"],"names":["FOOTER_PLACEMENT","calculateNewClassNames","tableNode","tableWrapperNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","push","newClassNameList","classList","remove","add","changeClassName","defaultGetter","props","cellGetter","cell","align","column","_cell$column","mainCellGetter","getTableElementProps","userGetter","getter","meta","getTableCellProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","showLoadingState","initialState","LoadingCellComponent","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","isFunction","reference","Table","columns","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getTableProps","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","memoColumns","useMemo","loading","pageSize","loadingColumns","map","Cell","React","loadingData","length","dataObject","dataArray","i","useLoadingState","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","disableSortRemove","disableMultiSort","disabledMultiRemove","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","isDisabledAllRows","page","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","tableRef","useRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","tBodyTr","className","ref","headerGroup","headers","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","isSortedDesc","desc","extendSortByProps","internalProps","getTableElementInternalProps","isSorted","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","getHeadContent","isResizable","getResizerProps","e","preventDefault","stopPropagation","renderResizer","includes","TOP","group","Fragment","key","index","getTableRowProps","isDelimiterTd","colSpan","cells","isExpanded","BOTTOM"],"mappings":"8IA8BYA,odCdZ,SAASC,EAAuBC,EAAWC,MACpCD,GAAcC,OAIbC,EAAYF,EAAUG,wBACtBC,EAAmBH,EAAiBE,wBACpCE,EAAe,GAEfC,EAAgBC,KAAKC,MAAMN,EAAUO,MACrCC,EAAiBH,KAAKC,MAAMN,EAAUS,OACtCC,EAAuBL,KAAKC,MAAMJ,EAAiBK,MACnDI,EAAwBN,KAAKC,MAAMJ,EAAiBO,OAEtDL,EAAgBM,GAClBP,EAAaS,KA1BT,eA6BFJ,EAAiBG,GACnBR,EAAaS,KA7BR,gBAGT,SAAyBb,EAA2Bc,OAC3CC,EAAaf,EAAbe,UAEPA,EAAUC,OAPJ,cACC,gBAOPD,EAAUE,UAAVF,EAAiBD,GAyBjBI,CAAgBlB,EAAkBI,KDRpC,SAAYP,GACRA,YACAA,kBAFJ,CAAYA,IAAAA,OEjBL,IAAMsB,EAA+B,SAACC,UAAUA,GAE1CC,EAA4B,SAACD,WAAQE,IAAAA,iBAC7CF,GAGHG,MAAOD,MAAAA,aAAAA,EAAME,2BAANC,EAAcF,SAEVG,EAAgC,SAACN,SAAQI,IAAAA,mBACjDJ,GAGHG,MAAOC,MAAAA,SAAAA,EAAQD,SAcJI,EACmD,SAACC,EAAYC,mBAAAA,IAAAA,EAASV,GAC5ES,EACK,SAACR,EAAOU,eACVD,EAAOT,EAAOU,GACdF,EAAWR,EAAOU,KAIlBD,GAeAE,EAC2C,SAACH,EAAYC,mBAAAA,IAAAA,EAASV,GACpES,EACK,SAACR,EAAOU,eACVD,EAAOT,EAAOU,GACdF,EAAWR,EAAOU,KAIlBD,60IC3DPG,EAAmBC,iBAYZC,EAAeC,EAAOC,SAa/B,SAAChB,UAAkCA,EAAMiB,WAAaC,cAO7CC,EAAoBJ,EAAOC,SAY3BI,EAAeL,EAAOC,SA6CtBK,EAAYN,EAAOC,QACjBM,cAOFC,EAAeR,EAAOC,SAOtBQ,EAAYT,EAAOC,SAQnBS,EAAWV,EAAOC,SAIlBU,EAAKX,EAAOC,SAQrB,gBAAEb,IAAAA,aAAoDA,GAASe,UACjDf,MAILwB,EAAiBZ,EAAOC,QAEf,EAAVY,UAC6BC,SAAWC,QAAUD,SAE/CjB,GAGFmB,EAAKhB,EAAOC,SAUZgB,EAAQjB,EAAOC,QAMxBe,EAAOL,EAKEO,SAMAC,EAAUnB,EAAOC,QAGGa,UAKpBM,EAAKpB,EAAOC,SAMZoB,EAAQrB,EAAOC,QACFqB,SACA,EAAVT,WAKHU,EAAQvB,EAAOC,QACZa,UAMHU,EAAWxB,EAAOC,SCvIlBwB,GAAe,CAC1BC,sBAAsB,EACtBxB,WAAW,EACXyB,gBAAiB,GACjBC,eAAgB,aAChBC,aAAc,YACdC,gBAAiB,iBACjBC,eAAgB,GAChBC,kBAAkB,EAClBC,aAAc,GACdC,qBAAsBtB,EACtBuB,eAbiD,iBAAO,IAcxDC,kBAhB8C,kBAAM,GAiBpDC,kBAhB+B,GAiB/BC,cAAe,IAYjB,SAASC,GAAWC,SACU,mBAAdA,MAyCVC,GAAsD,SAACxD,SAEzDyD,EA8BEzD,EA9BFyD,QACAC,EA6BE1D,EA7BF0D,KACAC,EA4BE3D,EA5BF2D,WACAC,EA2BE5D,EA3BF4D,UACAC,EA0BE7D,EA1BF6D,qBACAb,EAyBEhD,EAzBFgD,aACA/B,EAwBEjB,EAxBFiB,UACA0B,EAuBE3C,EAvBF2C,eACAC,EAsBE5C,EAtBF4C,aACAF,EAqBE1C,EArBF0C,gBACAoB,EAoBE9D,EApBF8D,eACArB,EAmBEzC,EAnBFyC,qBACAsB,EAkBE/D,EAlBF+D,mBACAlB,EAiBE7C,EAjBF6C,gBACAC,EAgBE9C,EAhBF8C,eACAG,EAeEjD,EAfFiD,qBACAe,EAcEhE,EAdFgE,oBACAd,EAaElD,EAbFkD,eACAe,EAYEjE,EAZFiE,cACAC,EAWElE,EAXFkE,oBACAC,EAUEnE,EAVFmE,eACAC,EASEpE,EATFoE,YACAC,EAQErE,EARFqE,aACAC,EAOEtE,EAPFsE,eACAC,GAMEvE,EANFuE,oBACAxB,GAKE/C,EALF+C,iBACAM,GAIErD,EAJFqD,cACAmB,GAGExE,EAHFwE,gBACArB,GAEEnD,EAFFmD,kBACAC,GACEpD,EADFoD,kBAGIqB,GAAcC,WAAQ,kBAAMjB,IAAS,CAACA,OCxKtB,SACtBV,EACA4B,EACAC,EACAnB,EACAR,SA8BO,CACL4B,eA7B0DH,WAAQ,kBAAO3B,GAAoB4B,EAAUlB,EACtGqB,KAAI,SAAC1E,eAECA,GACH2E,KAAM,kBAAMC,gBAAC/B,cAIZ,KAAK,CAACQ,EAASkB,EAAS5B,IAsB7BkC,YApBkBP,WAAQ,cACtB3B,GAAoB4B,GAAWlB,GAAWA,EAAQyB,OAAS,EAAG,SAC1DC,EAA4B,GAC5BC,EAA6B,GAE1BC,EAAI,EAAGA,EAAI5B,EAAQyB,OAAQG,GAAK,EACvCF,WAAoBE,GAAO,OAExB,IAAIA,EAAI,EAAGA,EAAIT,EAAUS,GAAK,EACjCD,EAAU3F,KAAK0F,UAGVC,QAGF,KACN,CAAC3B,EAASkB,EAASC,EAAU7B,KDyIMuC,CACpCvC,GACA9B,YACA4C,MAAAA,SAAAA,EAAsBe,wBAnFA,GAoFtBH,GACAxB,GALK4B,MAAAA,eAAgBI,MAAAA,YAQjBM,GAAcxC,IAAoB9B,EAClCuE,GAAyBzB,GAAsBT,GAAWS,GAC1D0B,GAAkB3B,GAAkBR,GAAWQ,GAC/C4B,GAA0B9B,GAC3BC,GACA8B,OAAOC,KAAK/B,GAAsBqB,OAAS,EAE1CW,GAA6B,CACjCpC,QAAS8B,GACJV,GACDJ,GACJf,KAAM6B,GAAcN,GAAcvB,EAClCV,aAAAA,EACA8C,mBA1GsB,EA2GtBC,kBA1GqB,EA2GrBC,qBA1GwB,MA6GtBP,KACFI,GAAQI,cAAe,GAGrBP,GAAyB,mBACoB,KAApC7B,MAAAA,SAAAA,EAAsBqC,iBACzB,IAAIC,MACR,2DAIJN,GAAQ7C,kBACH6C,GAAQ7C,cACXoD,qBAAWvC,EAAqBuC,2BAxHX,EAyHrBxB,oBAAUf,EAAqBe,0BAxHX,KA2HtBiB,GAAQQ,eAAgB,EACxBR,GAAQS,kBAAmB,EAC3BT,GAAQK,UAAYrC,EAAqBqC,iBAmEvCK,WACFV,GACAW,gBACAC,YACAC,cACAC,gBACAC,gBAtEgB,SAACC,MACZrB,QAICsB,KACJC,GAAI,YACJC,eAAe,EACfC,OAAQ,SAACC,OAELC,EAGED,EAHFC,kCACAC,EAEEF,EAFFE,0BAIIC,EAA4F,IAF9FH,EADFI,KAG6BxC,KAAI,qBAAEyC,YAAwBC,OAAOrE,IAAmB+B,cAGrFF,gBAACyC,GACCC,UAAU,MACVC,SAAUP,EACVQ,UAAWT,IAAoCU,QAC/CC,WAAYT,KAIlBtC,KAAM,gBAAEgD,IAAAA,IAEJhB,EAIEgB,EAJFhB,GACAQ,EAGEQ,EAHFR,SACAS,EAEED,EAFFC,kBACAC,EACEF,EADFE,0BAGIP,EAAYQ,OAAOC,UAAUZ,EAASR,IAAMQ,EAASR,GAAKA,EAC1DqB,EAAYjF,GAAkB4E,EAAIR,iBAGtCvC,gBAACyC,GACCC,UAAWA,EACXC,SAAUK,EACVF,YAAaM,EACbR,UAAWQ,GAAaH,IAA4BJ,YAIvDzE,IAGLyD,EAAMwB,eAAe5I,MAAK,SAAC6I,UACzBxB,UACGwB,SAqBLC,oBAhBeC,MAAfvE,cACAwE,MAAAA,aACAC,MAAAA,aACAC,MAAAA,iBACAC,MAAAA,KACAC,MAAAA,WACAR,MAAAA,eACGS,kPAaHC,GAaED,GAbFC,iBACAC,GAYEF,GAZFE,UACA1B,GAWEwB,GAXFxB,KACA2B,GAUEH,GAVFG,gBACAC,GASEJ,GATFI,YACAhD,GAQE4C,GARF5C,UACAiD,GAOEL,GAPFK,SACAC,GAMEN,GANFM,SACAC,GAKEP,GALFO,aACAC,GAIER,GAJFQ,eAIER,GAHFS,MAAQC,MAAAA,eAAgBpD,MAAAA,UAAWxB,MAAAA,SAK/B6E,GAAWC,SAAO,MAClBC,GAAkBD,SAAO,gBHjRjBD,EAAUE,GACxBC,aAAU,iBACJC,GAAU,WAELC,IACHD,IAIJE,OAAOC,uBAAsB,WAC3BtL,EAAuB+K,EAASQ,QAASN,EAAgBM,SACzDJ,GAAU,KAGZA,GAAU,UAGZnL,EAAuB+K,EAASQ,QAASN,EAAgBM,SAEzDR,MAAAA,aAAAA,EAAUQ,wBAASC,iBAAiB,aAAcJ,GAClDC,OAAOG,iBAAiB,SAAUJ,GAE3B,iBACLL,MAAAA,aAAAA,EAAUQ,wBAASE,oBAAoB,aAAcL,GACrDC,OAAOI,oBAAoB,SAAUL,MAEtC,CAACL,EAASQ,QAASN,EAAgBM,UGyPtCG,CAAeX,GAAUE,IAEzBC,aAAU,YACH5G,MAAAA,SAAAA,EAAcqH,gBAInB1B,GAAiB3F,EAAaqH,iBAC7B,CAACrH,MAAAA,SAAAA,EAAcqH,gBAElBT,aAAU,WACJpE,KACFzB,MAAAA,GAAAA,EACEgF,MAAAA,UAAAA,GAAkBjE,KAAI,SAACiD,UAAqBA,EAAIR,YAAUC,OAAOrE,QAGpE,CAACqG,SAEAc,GAAiC,QAEjC7H,GAAwBiD,SACpB,IAAIS,MACR,8HAKAT,IAA2BjD,EAAsB,KAC7C8H,GAAkC,CACtCjB,YAAAA,GACAH,SAAAA,GACAD,YAAAA,GACAD,gBAAAA,GACApG,gBAAAA,EACAD,aAAAA,EACAwD,UAAAA,GACAoE,oBAAqBnB,GACrBoB,gBAAiBrB,GACjBsB,WAAYxE,GACZyE,QAAS/F,GACTjB,WAAYA,MAAAA,EAAAA,EAAcD,EAAKwB,QAG7BQ,IAA2B7B,IAC7B0G,GAAerB,YAAcrF,EAAqBuC,UAAY,IAAMmE,GAAeG,WACnFH,GAAetB,gBAAqD,IAAnCpF,EAAqBuC,UACtDmE,GAAenE,UAAYvC,EAAqBuC,UAChDmE,GAAeI,QAAU9G,EAAqBe,SAE9C2F,GAAejB,YAAc,SAACsB,GAC5BhH,MAAAA,GAAAA,EAAY,CACVwC,UAAWmE,GAAenE,UAC1BxB,SAAUgG,KAIdL,GAAepB,SAAW,SAAC0B,GACzBjH,MAAAA,GAAAA,EAAY,CACVwC,UAAWyE,EACXjG,SAAU2F,GAAeI,WAI7BJ,GAAeE,gBAAkB,WAE/BF,GAAepB,SADMoB,GAAenE,UAAY,IAIlDmE,GAAeC,oBAAsB,WAEnCD,GAAepB,SADMoB,GAAenE,UAAY,KAI9CvC,MAAAA,SAAAA,EAAsBiH,oBACxBP,GAAeO,iBAAmBjH,EAAqBiH,mBAI3DR,GAAatF,gBAAChB,mBAAwBuG,SF9WkB/J,GAAYC,GEqYhEsK,GAAUrF,IAA2BjD,EAAuB6E,GAAOsB,UAGvE5D,gBAAC3D,GAAU2J,UAAU,cACnBhG,gBAAClE,GACCG,WAAY8B,IAAoB9B,EAChC+J,UAAU,iBAEVhG,gBAAC7D,OAAmBwB,IAEtBqC,gBAAC5D,GAAa6J,IAAKtB,GAAiBqB,UAAU,iBAC5ChG,gBAACzD,GAAawF,GAAIjE,EAAgBkI,UAAU,iBAC1ChG,gBAACxD,mBACKgH,aFlZwD/H,KAAAA,GAASV,IAArBS,GEkZXyD,GFhZtC,SAACjE,eACHS,GAAOT,GACPQ,GAAWR,KAIXS,ME2YGwK,IAAKxB,KAELzE,gBAAChD,GAAMgJ,UAAU,yBAAuB,cACrCvC,GAAa3D,KAAI,SAACoG,UACjBlG,gBAAC7C,mBACK+I,EAAYhH,oBACd3D,EAAqB2D,KAGtBgH,EAAYC,QAAQrG,KAAI,SAAC1E,OAClBgL,WA5CGhL,OACnBgL,EAAchL,EAAOiL,sBAAwBjL,EAAOiL,8BAEnDD,MAAAA,UAAAA,EAAaE,MAEhB7F,IAAmBrF,EAAOmL,SAAWH,IACvCA,EAAYI,QAAU,WACpB1H,MAAAA,GAAAA,EAAiB1D,EAAO2G,GAAI0E,QAAQrL,EAAOsL,eAC3C1C,GAAU,CACR,CACEjC,GAAI3G,EAAO2G,GACX4E,MAAOvL,EAAOsL,kBAMfN,EA2B6BQ,CAClBxL,UAIA4E,gBAACjD,mBACK3B,EAAO+D,eFnXM,SAAC0H,EAAerL,EAAYC,mBAAAA,IAAAA,EAASV,GACpES,EACK,SAACR,EAAOU,eACVD,OAAWT,EAAU6L,GAAgBnL,GACrCF,EAAWR,EAAOU,KAIlB,SAACV,EAAsBU,UAAmBD,OAAWT,EAAU6L,GAAgBnL,IE4WlEoL,CACEV,EACAjH,EACA7D,KA/U5B,SAAwBF,UAClBA,EAAO2L,UAAY3L,EAAOsL,aAE1B1G,gBAACvD,OACErB,EAAO4L,OAAO,UACfhH,gBAACiH,aAAUC,KAAMC,OAAKC,MAAOC,MAAOC,QAAMC,aAK5CnM,EAAO2L,WAAa3L,EAAOsL,aAE3B1G,gBAACvD,OACErB,EAAO4L,OAAO,UACfhH,gBAACwH,WAAQN,KAAMC,OAAKC,MAAOC,MAAOC,QAAMC,aAKvCnM,EAAO4L,OAAO,UAgUES,CAAerM,GAnWxC,SAAuBA,UACjBA,EAAOsM,YAEP1H,gBAACzC,mBACKnC,EAAOuM,mBACXnB,QAAS,SAACoB,GACRA,EAAEC,iBACFD,EAAEE,sBAMH,KAuVgBC,CAAc3M,YAO1BsC,EAAgBsK,SAASvO,EAAiBwO,MACzCjI,gBAAC1C,GAAM0I,UAAU,+BAA6B,oBAC3CtC,GAAa5D,KAAI,SAACoI,UACjBlI,gBAAC7C,mBACK+K,EAAM3I,oBACRhE,EAAqBgE,MAGtB2I,EAAM/B,QAAQrG,KAAI,SAAC1E,UAClB4E,gBAACtD,mBACKtB,EAAOkE,eACT/D,EAAqB+D,EAAgBhE,KAGtCF,EAAO4L,OAAO,mBAO3BhH,gBAAC5C,GAAM4I,UAAU,yBAAuB,cACrCD,GAAQjG,KAAI,SAACiD,GACZc,GAAWd,SACa7E,EAAe6E,UAInC/C,gBAACA,EAAMmI,UAASC,aAAcrF,EAAIsF,OAChCrI,gBAAC9C,OACC8C,gBAAC7C,mBAAO4F,EAAI3D,YFzbmB,SAAC5D,EAAYC,mBAAAA,IAAAA,EAASV,GACnES,EACK,SAACR,EAAOU,eACVD,EAAOT,EAAOU,GACdF,EAAWR,EAAOU,KAIlBD,EEibmC6M,CAAiBlJ,OAN1CmJ,cAOGvI,gBAACtD,iBACC8L,QAASnF,GAAenD,QACpB6C,EAAI0F,MAAM,GAAGpJ,aACf1D,EAAkB0D,EAAcpE,KAGlC+E,8BAAS+C,EAAI0F,MAAM,GAAGzB,OAAO,UAahCjE,EAAI0F,MAAM3I,KAAI,SAAC5E,UACd8E,gBAACtD,mBACKxB,EAAKmE,aACP1D,EAAkB0D,EAAcpE,KAGjCC,EAAK8L,OAAO,eAflBjE,MAAAA,SAAAA,EAAK2F,aAAclJ,IAAmBA,GAAgBuD,QAyBhErF,EAAgBsK,SAASvO,EAAiBkP,SACzC3I,gBAAC1C,GAAM0I,UAAU,kCAAgC,uBAC9CtC,GAAa5D,KAAI,SAACoI,UACjBlI,gBAAC7C,mBACK+K,EAAM3I,oBACRhE,EAAqBgE,MAGtB2I,EAAM/B,QAAQrG,KAAI,SAAC1E,UAClB4E,gBAACtD,mBACKtB,EAAOkE,eACT/D,EAAqB+D,EAAgBhE,KAGtCF,EAAO4L,OAAO,uBAU/B/K,IAAcyC,EAAKwB,QAAU7B,GAC9BiH,KAKP9G,GAAMhB,aAAeA"}
|
package/dist/table.esm.js
CHANGED
|
@@ -493,6 +493,19 @@ function isFunction(reference) {
|
|
|
493
493
|
return typeof reference === 'function';
|
|
494
494
|
}
|
|
495
495
|
|
|
496
|
+
function renderResizer(column) {
|
|
497
|
+
if (column.isResizable) {
|
|
498
|
+
return React.createElement(TResizer, Object.assign({}, column.getResizerProps(), {
|
|
499
|
+
onClick: function onClick(e) {
|
|
500
|
+
e.preventDefault();
|
|
501
|
+
e.stopPropagation();
|
|
502
|
+
}
|
|
503
|
+
}));
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
return null;
|
|
507
|
+
}
|
|
508
|
+
|
|
496
509
|
function getHeadContent(column) {
|
|
497
510
|
if (column.isSorted && column.isSortedDesc) {
|
|
498
511
|
return React.createElement(HeadCell, null, column.render('Header'), React.createElement(ArrowDown, {
|
|
@@ -543,8 +556,7 @@ var Table = function Table(props) {
|
|
|
543
556
|
noDataMessage = props.noDataMessage,
|
|
544
557
|
rowSubComponent = props.rowSubComponent,
|
|
545
558
|
isEnableRowSelect = props.isEnableRowSelect,
|
|
546
|
-
selectColumnProps = props.selectColumnProps
|
|
547
|
-
isResizableColumns = props.isResizableColumns;
|
|
559
|
+
selectColumnProps = props.selectColumnProps;
|
|
548
560
|
var memoColumns = useMemo(function () {
|
|
549
561
|
return columns;
|
|
550
562
|
}, [columns]);
|
|
@@ -769,14 +781,7 @@ var Table = function Table(props) {
|
|
|
769
781
|
}, headerGroups.map(function (headerGroup) {
|
|
770
782
|
return React.createElement(TR, Object.assign({}, headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))), headerGroup.headers.map(function (column) {
|
|
771
783
|
var headerProps = extendSortByProps(column);
|
|
772
|
-
return React.createElement(TH, Object.assign({}, column.getHeaderProps(getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter))), getHeadContent(column),
|
|
773
|
-
// @ts-ignore
|
|
774
|
-
, Object.assign({}, column.getResizerProps(), {
|
|
775
|
-
onClick: function onClick(e) {
|
|
776
|
-
e.preventDefault();
|
|
777
|
-
e.stopPropagation();
|
|
778
|
-
}
|
|
779
|
-
})));
|
|
784
|
+
return React.createElement(TH, Object.assign({}, column.getHeaderProps(getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter))), getHeadContent(column), renderResizer(column));
|
|
780
785
|
}));
|
|
781
786
|
})), footerPlacement.includes(FOOTER_PLACEMENT.TOP) && React.createElement(TFoot, {
|
|
782
787
|
className: "table-footer-top",
|
package/dist/table.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.esm.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n isResizableColumns?: boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n isResizableColumns,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {isResizableColumns && (\n <TResizer\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n )}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","isResizableColumns","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","getResizerProps","e","preventDefault","stopPropagation","includes","TOP","group","isDelimiterTd","Fragment","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.esm.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction renderResizer(column) {\n if (column.isResizable) {\n return (\n <TResizer\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {renderResizer(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","renderResizer","isResizable","getResizerProps","onClick","e","preventDefault","stopPropagation","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","Fragment","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -64,7 +64,6 @@ export declare type TableProps = {
|
|
|
64
64
|
noDataMessage?: string | ReactElement;
|
|
65
65
|
rowSubComponent?: (row: StandardRow) => ReactElement;
|
|
66
66
|
isEnableRowSelect?: (original: DefaultObject) => boolean;
|
|
67
|
-
isResizableColumns?: boolean;
|
|
68
67
|
};
|
|
69
68
|
export declare type TableOptions = {
|
|
70
69
|
columns: Array<Column<DefaultObject>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propellerads/table",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.9.0",
|
|
4
4
|
"repository": "https://github.com/propellerads/ui-components",
|
|
5
5
|
"author": "i.pasyuk@propellerads.net",
|
|
6
6
|
"license": "MIT",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"@types/react-table": "^7.7.12",
|
|
41
41
|
"react-table": "^7.8.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "f405e66536244e955229a57dea53bf678ffe9b02"
|
|
44
44
|
}
|
package/src/index.tsx
CHANGED
|
@@ -98,6 +98,22 @@ function isFunction(reference?: (arg1?: any, arg2?: any) => void) {
|
|
|
98
98
|
return typeof reference === 'function';
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
function renderResizer(column) {
|
|
102
|
+
if (column.isResizable) {
|
|
103
|
+
return (
|
|
104
|
+
<TResizer
|
|
105
|
+
{...column.getResizerProps()}
|
|
106
|
+
onClick={(e) => {
|
|
107
|
+
e.preventDefault();
|
|
108
|
+
e.stopPropagation();
|
|
109
|
+
}}
|
|
110
|
+
/>
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
|
|
101
117
|
function getHeadContent(column: ColumnWithSort) {
|
|
102
118
|
if (column.isSorted && column.isSortedDesc) {
|
|
103
119
|
return (
|
|
@@ -152,7 +168,6 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
152
168
|
rowSubComponent,
|
|
153
169
|
isEnableRowSelect,
|
|
154
170
|
selectColumnProps,
|
|
155
|
-
isResizableColumns,
|
|
156
171
|
} = props;
|
|
157
172
|
|
|
158
173
|
const memoColumns = useMemo(() => columns, [columns]);
|
|
@@ -439,17 +454,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
439
454
|
)}
|
|
440
455
|
>
|
|
441
456
|
{getHeadContent(column)}
|
|
442
|
-
{
|
|
443
|
-
<TResizer
|
|
444
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
445
|
-
// @ts-ignore
|
|
446
|
-
{...column.getResizerProps()}
|
|
447
|
-
onClick={(e) => {
|
|
448
|
-
e.preventDefault();
|
|
449
|
-
e.stopPropagation();
|
|
450
|
-
}}
|
|
451
|
-
/>
|
|
452
|
-
)}
|
|
457
|
+
{renderResizer(column)}
|
|
453
458
|
</TH>
|
|
454
459
|
);
|
|
455
460
|
})}
|
package/src/types.tsx
CHANGED