@propellerads/table 4.9.0 → 5.0.1
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/dist/index.d.ts +2 -2
- package/dist/table.cjs.development.js +49 -31
- 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 +49 -31
- package/dist/table.esm.js.map +1 -1
- package/package.json +8 -11
- package/src/index.tsx +60 -103
- package/src/propsGetter.tsx +49 -40
- package/src/style.tsx +41 -46
- package/src/types.tsx +117 -104
- package/src/useLoadingState.tsx +14 -9
- package/CHANGELOG.md +0 -89
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}\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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"}
|
|
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(\n () =>\n showLoadingState && loading\n ? columns.map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n })\n : [],\n [columns, loading, showLoadingState],\n );\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,\n TableState,\n UsePaginationInstanceProps,\n UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState,\n UseSortByColumnProps,\n UseRowSelectRowProps,\n UseSortByInstanceProps,\n UseSortByOptions,\n UseTableOptions,\n 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 =\n | FooterGroupPropGetter<DefaultObject>\n | HeaderGroupPropGetter<DefaultObject>\n | FooterPropGetter<DefaultObject>;\n\nexport type GetTableContainerPropsGetter = (\n userGetter?: TableGetter,\n getter?: TableGetter,\n) => TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>;\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T;\n\nexport type GetTableElementInternalPropsGetter = (\n internalProps: DefaultObject,\n userGetter?: ElementGetter,\n 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 = UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> & {\n state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>;\n };\n\nexport type TableOptionsProps = UseTableOptions<DefaultObject> &\n UseSortByOptions<DefaultObject> &\n UsePaginationOptions<DefaultObject> & {\n initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>>;\n };\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: GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\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: GetTableElementPropsGetter<ElementRowPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\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: GetTableElementPropsGetter<ElementCellPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\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: GetTableElementInternalPropsGetter = (\n internalProps,\n userGetter,\n getter = defaultGetter,\n) => {\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, {keyframes, css, CSSObject} from 'styled-components';\nimport {fontNormal, white, black, spacing, gray80, gray95} 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}) =>\n props.isLoading &&\n 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}) =>\n align &&\n 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, {FunctionComponent, useEffect, useMemo, useRef} 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 {ArrowDown, ArrowUp, COLOR, SIZE} 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 as _TableRoot,\n TableWrapper as _TableWrapper,\n TableContent as _TableContent,\n HeadCell as _HeadCell,\n TableLoading as _TableLoading,\n TableLoadingInner as _TableLoadingInner,\n TD as _TD,\n TableCore as _TableCore,\n THead as _THead,\n TR as _TR,\n TH as _TH,\n TBody as _TBody,\n TRGroup as _TRGroup,\n TFoot as _TFoot,\n EmptyStateCell as _EmptyStateCell,\n TResizer as _TResizer,\n} from './style';\n\nconst TableRoot = _TableRoot as unknown as React.FunctionComponent<DefaultObject>;\nconst TableWrapper = _TableWrapper as unknown as React.FunctionComponent<DefaultObject>;\nconst TableContent = _TableContent as unknown as React.FunctionComponent<DefaultObject>;\nconst HeadCell = _HeadCell as unknown as React.FunctionComponent<DefaultObject>;\nconst TableLoading = _TableLoading as unknown as React.FunctionComponent<DefaultObject>;\nconst TableLoadingInner = _TableLoadingInner as unknown as React.FunctionComponent<DefaultObject>;\nconst TD = _TD as unknown as React.FunctionComponent<DefaultObject>;\nconst TableCore = _TableCore as unknown as React.FunctionComponent<DefaultObject>;\nconst THead = _THead as unknown as React.FunctionComponent<DefaultObject>;\nconst TR = _TR as unknown as React.FunctionComponent<DefaultObject>;\nconst TH = _TH as unknown as React.FunctionComponent<DefaultObject>;\nconst TBody = _TBody as unknown as React.FunctionComponent<DefaultObject>;\nconst TRGroup = _TRGroup as unknown as React.FunctionComponent<DefaultObject>;\nconst TFoot = _TFoot as unknown as React.FunctionComponent<DefaultObject>;\nconst EmptyStateCell = _EmptyStateCell as unknown as React.FunctionComponent<DefaultObject>;\nconst TResizer = _TResizer as unknown as React.FunctionComponent<DefaultObject>;\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 && controlledPagination && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : 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('You have to pass pageCount in controlledPagination data');\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 {getToggleAllPageRowsSelectedProps, toggleAllPageRowsSelected, page} = 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 {id, original, toggleRowSelected, getToggleRowSelectedProps} = 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>) => [newColumn, ...tableColumns]);\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?.(selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect));\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 isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore {..._getTableProps(getTableBodyProps(getTableProps))} ref={tableRef}>\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(column) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter),\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 {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>\n {group.headers.map((column) => (\n <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>\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 const cell = row.cells[0].render('Cell') as React.ReactNode;\n\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(getTableCellProps(getCellProps, cellGetter))}\n >\n <strong>{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 {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>\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 {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>\n {group.headers.map((column) => (\n <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>\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","_TableRoot","_TableWrapper","_TableContent","_HeadCell","_TableLoading","_TableLoadingInner","_TD","_TableCore","_THead","_TR","_TH","_TBody","_TRGroup","_TFoot","_EmptyStateCell","_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","cells","Fragment","key","index","colSpan","isExpanded","BOTTOM"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CACtBC,gBADsB,EAEtBC,OAFsB,EAGtBC,QAHsB,EAItBC,OAJsB,EAKtBC,oBALsB;AAOtB,MAAMC,cAAc,GAAwCC,OAAO,CACjE;AAAA,WACEN,gBAAgB,IAAIC,OAApB,GACIE,OAAO,CAACI,GAAR,CAAY,UAACC,MAAD;AACV,UAAMC,aAAa,gBACdD,MADc;AAEjBE,QAAAA,IAAI,EAAE;AAAA,iBAAMC,mBAAA,CAACP,oBAAD,MAAA,CAAN;AAAA;AAFW,QAAnB;;AAKA,aAAOK,aAAP;AACD,KAPD,CADJ,GASI,EAVN;AAAA,GADiE,EAYjE,CAACN,OAAD,EAAUF,OAAV,EAAmBD,gBAAnB,CAZiE,CAAnE;AAeA,MAAMY,WAAW,GAAGN,OAAO,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,CA5CD;;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,SAAS,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;;ACLA,IAAYG,gBAAZ;;AAAA,WAAYA;AACVA,EAAAA,uBAAA,QAAA;AACAA,EAAAA,0BAAA,WAAA;AACD,CAHD,EAAYA,gBAAgB,KAAhBA,gBAAgB,KAAA,CAA5B;;ACvBO,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,GAA8D,SAAlFA,oBAAkF,CAC7FF,UAD6F,EAE7FC,MAF6F;MAE7FA;AAAAA,IAAAA,SAASR;;;AAET,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,CAZM;AAcP,AAAO,IAAMG,gBAAgB,GAAqD,SAArEA,gBAAqE,CAChFJ,UADgF,EAEhFC,MAFgF;MAEhFA;AAAAA,IAAAA,SAASR;;;AAET,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,CAZM;AAcP,AAAO,IAAMI,iBAAiB,GAAsD,SAAvEA,iBAAuE,CAClFL,UADkF,EAElFC,MAFkF;MAElFA;AAAAA,IAAAA,SAASR;;;AAET,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,CAZM;AAcP,AAAO,IAAMK,4BAA4B,GAAuC,SAAnEA,4BAAmE,CAC9EC,aAD8E,EAE9EP,UAF8E,EAG9EC,MAH8E;MAG9EA;AAAAA,IAAAA,SAASR;;;AAET,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,CAbM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EP,IAAMK,gBAAgB,gBAAGC,SAAH,iCAAtB;AAYA,AAAO,IAAMC,YAAY,gBAAGC,MAAM,CAACC,GAAV,mCAarB,UAAClB,KAAD;AAAA,SACAA,KAAK,CAACmB,SAAN,IACAC,GADA,oBADA;AAAA,CAbqB,CAAlB;AAsBP,AAAO,IAAMC,iBAAiB,gBAAGJ,MAAM,CAACC,GAAV,kCAAvB;AAYP,AAAO,IAAMI,YAAY,gBAAGL,MAAM,CAACC,GAAV,kCAAlB;AA6CP,AAAO,IAAMK,SAAS,gBAAGN,MAAM,CAACC,GAAV,mCACPM,UADO,CAAf;AAQP,AAAO,IAAMC,YAAY,gBAAGR,MAAM,CAACC,GAAV,kCAAlB;AAOP,AAAO,IAAMQ,SAAS,gBAAGT,MAAM,CAACC,GAAV,kCAAf;AAQP,AAAO,IAAMS,QAAQ,gBAAGV,MAAM,CAACC,GAAV,kCAAd;AAIP,AAAO,IAAMU,EAAE,gBAAGX,MAAM,CAACC,GAAV,oCAQX;AAAA,MAAEf,KAAF,QAAEA,KAAF;AAAA,SACAA,KAAK,IACLiB,GADK,sBAEWjB,KAFX,CADL;AAAA,CARW,CAAR;AAeP,AAAO,IAAM0B,cAAc,gBAAGZ,MAAM,CAACC,GAAV,oCAEfY,OAAO,GAAG,CAFK,EAGcC,MAHd,EAGyBC,KAHzB,EAGmCD,MAHnC,EAKZjB,gBALY,CAApB;AAQP,AAAO,IAAMmB,EAAE,gBAAGhB,MAAM,CAACC,GAAV,mCAAR;AAUP,AAAO,IAAMgB,KAAK,gBAAGjB,MAAM,CAACC,GAAV,oCAMde,EANc,EAMPL,EANO,EAWLO,KAXK,CAAX;AAiBP,AAAO,IAAMC,OAAO,gBAAGnB,MAAM,CAACC,GAAV,oCAGaa,MAHb,CAAb;AAQP,AAAO,IAAMM,EAAE,gBAAGpB,MAAM,CAACC,GAAV,mCAAR;AAMP,AAAO,IAAMoB,KAAK,gBAAGrB,MAAM,CAACC,GAAV,oCACQqB,MADR,EAEFT,OAAO,GAAG,CAFR,CAAX;AAOP,AAAO,IAAMU,KAAK,gBAAGvB,MAAM,CAACC,GAAV,oCACFa,MADE,CAAX;AAOP,AAAO,IAAMU,QAAQ,gBAAGxB,MAAM,CAACC,GAAV,mCAAd;;AC1IP,IAAMK,WAAS,GAAGmB,SAAlB;AACA,IAAMpB,cAAY,GAAGqB,YAArB;AACA,IAAMlB,cAAY,GAAGmB,YAArB;AACA,IAAMjB,UAAQ,GAAGkB,QAAjB;AACA,IAAM7B,cAAY,GAAG8B,YAArB;AACA,IAAMzB,mBAAiB,GAAG0B,iBAA1B;AACA,IAAMnB,IAAE,GAAGoB,EAAX;AACA,IAAMtB,WAAS,GAAGuB,SAAlB;AACA,IAAMf,OAAK,GAAGgB,KAAd;AACA,IAAMb,IAAE,GAAGc,EAAX;AACA,IAAMlB,IAAE,GAAGmB,EAAX;AACA,IAAMd,OAAK,GAAGe,KAAd;AACA,IAAMjB,SAAO,GAAGkB,OAAhB;AACA,IAAMd,OAAK,GAAGe,KAAd;AACA,IAAM1B,gBAAc,GAAG2B,cAAvB;AACA,IAAMf,UAAQ,GAAGgB,QAAjB;;AAEA,IAAMC,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;AAE1B3C,EAAAA,SAAS,EAAE,KAFe;AAG1B4C,EAAAA,eAAe,EAAE,EAHS;AAI1BC,EAAAA,cAAc,EAAE,YAJU;AAK1BC,EAAAA,YAAY,EAAE,WALY;AAM1BC,EAAAA,eAAe,EAAE,gBANS;AAO1BC,EAAAA,cAAc,EAAE,EAPU;AAQ1BxH,EAAAA,gBAAgB,EAAE,KARQ;AAS1ByH,EAAAA,YAAY,EAAE,EATY;AAU1BrH,EAAAA,oBAAoB,EAAE8E,gBAVI;AAW1BwC,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,CAAuB7H,MAAvB;AACE,MAAIA,MAAM,CAAC8H,WAAX,EAAwB;AACtB,WACE3H,mBAAA,CAACmF,UAAD,oBACMtF,MAAM,CAAC+H,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,CAAwBpI,MAAxB;AACE,MAAIA,MAAM,CAACqI,QAAP,IAAmBrI,MAAM,CAACsI,YAA9B,EAA4C;AAC1C,WACEnI,mBAAA,CAACqE,UAAD,MAAA,EACGxE,MAAM,CAACuI,MAAP,CAAc,QAAd,CADH,EAEEpI,mBAAA,CAACqI,SAAD;AAAWC,MAAAA,IAAI,EAAEC,IAAI,CAACC;AAAOC,MAAAA,KAAK,EAAEC,KAAK,CAACC;KAA1C,CAFF,CADF;AAMD;;AAED,MAAI9I,MAAM,CAACqI,QAAP,IAAmB,CAACrI,MAAM,CAACsI,YAA/B,EAA6C;AAC3C,WACEnI,mBAAA,CAACqE,UAAD,MAAA,EACGxE,MAAM,CAACuI,MAAP,CAAc,QAAd,CADH,EAEEpI,mBAAA,CAAC4I,OAAD;AAASN,MAAAA,IAAI,EAAEC,IAAI,CAACC;AAAOC,MAAAA,KAAK,EAAEC,KAAK,CAACC;KAAxC,CAFF,CADF;AAMD;;AAED,SAAO9I,MAAM,CAACuI,MAAP,CAAc,QAAd,CAAP;AACD;;AAED,IAAMS,KAAK,GAAiD,SAAtDA,KAAsD,CAACnG,KAAD;;;MAExDlD,UA8BEkD,MA9BFlD;MACAsJ,OA6BEpG,MA7BFoG;MACAC,aA4BErG,MA5BFqG;MACAC,YA2BEtG,MA3BFsG;MACAC,uBA0BEvG,MA1BFuG;MACAnC,eAyBEpE,MAzBFoE;MACAjD,YAwBEnB,MAxBFmB;MACA6C,iBAuBEhE,MAvBFgE;MACAC,eAsBEjE,MAtBFiE;MACAF,kBAqBE/D,MArBF+D;MACAyC,iBAoBExG,MApBFwG;MACA1C,uBAmBE9D,MAnBF8D;MACA2C,qBAkBEzG,MAlBFyG;MACAvC,kBAiBElE,MAjBFkE;MACAC,iBAgBEnE,MAhBFmE;MACApH,uBAeEiD,MAfFjD;MACA2J,sBAcE1G,MAdF0G;MACArC,iBAaErE,MAbFqE;MACAhE,kBAYEL,MAZFK;MACAsG,sBAWE3G,MAXF2G;MACAC,iBAUE5G,MAVF4G;MACAC,cASE7G,MATF6G;MACAC,eAQE9G,MARF8G;MACAC,iBAOE/G,MAPF+G;MACAC,sBAMEhH,MANFgH;MACArK,mBAKEqD,MALFrD;MACA6H,gBAIExE,MAJFwE;MACAyC,kBAGEjH,MAHFiH;MACA3C,oBAEEtE,MAFFsE;MACAC,oBACEvE,MADFuE;AAGF,MAAM2C,WAAW,GAAGjK,OAAO,CAAC;AAAA,WAAMH,OAAN;AAAA,GAAD,EAAgB,CAACA,OAAD,CAAhB,CAA3B;;yBAEsCJ,eAAe,CACnDC,gBADmD,EAEnDwE,SAFmD,2BAGnDoF,oBAHmD,aAGnDA,oBAHmD,uBAGnDA,oBAAoB,CAAE1J,QAH6B,yEAGjBgI,iBAHiB,EAInDqC,WAJmD,EAKnDnK,oBALmD;MAA9CC,kCAAAA;MAAgBO,+BAAAA;;AAQvB,MAAM4J,WAAW,GAAGxK,gBAAgB,IAAIwE,SAAxC;AACA,MAAMiG,sBAAsB,GAAGX,kBAAkB,IAAI3B,UAAU,CAAC2B,kBAAD,CAA/D;AACA,MAAMY,eAAe,GAAGb,cAAc,IAAI1B,UAAU,CAAC0B,cAAD,CAApD;AACA,MAAMc,uBAAuB,GAAGhB,SAAS,IAAIC,oBAAb,IAAqCgB,MAAM,CAACC,IAAP,CAAYjB,oBAAZ,EAAkC/I,MAAlC,GAA2C,CAAhH;AAEA,MAAMiK,OAAO,GAAsB;AACjC3K,IAAAA,OAAO,EAAEqK,WAAW,GAAInK,cAAJ,GAAiDkK,WADpC;AAEjCd,IAAAA,IAAI,EAAEe,WAAW,GAAG5J,WAAH,GAAiB6I,IAFD;AAGjChC,IAAAA,YAAY,EAAZA,YAHiC;AAIjCK,IAAAA,iBAAiB,EAAjBA,iBAJiC;AAKjCC,IAAAA,gBAAgB,EAAhBA,gBALiC;AAMjCC,IAAAA,mBAAmB,EAAnBA;AANiC,GAAnC;;AASA,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,CAAU,yDAAV,CAAN;AACD;;AAEDH,IAAAA,OAAO,CAACrD,YAAR,gBACKqD,OAAO,CAACrD,YADb;AAEEyD,MAAAA,SAAS,4BAAEtB,oBAAoB,CAACsB,SAAvB,2EAAoCjD,kBAF/C;AAGE/H,MAAAA,QAAQ,4BAAE0J,oBAAoB,CAAC1J,QAAvB,2EAAmCgI;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;YACCC,oCAAsED,SAAtEC;YAAmCC,4BAAmCF,SAAnCE;YAA2BC,OAAQH,SAARG;AAErE,YAAMC,iBAAiB,GAAGD,IAAI,CAACvL,GAAL,CAAS;AAAA,cAAEyL,QAAF,QAAEA,QAAF;AAAA,iBAAgBA,QAAhB;AAAA,SAAT,EAAmCC,MAAnC,CAA0CtE,iBAA1C,EAA6D9G,MAA7D,KAAwE,CAAlG;AAEA,eACEF,mBAAA,CAACuL,QAAD;AACEC,UAAAA,SAAS,EAAC;AACVC,UAAAA,QAAQ,EAAEP;AACVQ,UAAAA,SAAS,EAAET,iCAAiC,GAAGU;AAC/CC,UAAAA,UAAU,EAAER;SAJd,CADF;AAQD,OAhBY;AAiBbrL,MAAAA,IAAI,EAAE;YAAE8L,YAAAA;YACChB,KAA8DgB,IAA9DhB;YAAIQ,WAA0DQ,IAA1DR;YAAUS,oBAAgDD,IAAhDC;YAAmBC,4BAA6BF,IAA7BE;AAExC,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,eACErL,mBAAA,CAACuL,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;AA/BY,OAgCV1E,iBAhCU,CAAf;;AAmCA0D,IAAAA,KAAK,CAACwB,cAAN,CAAqB7L,IAArB,CAA0B,UAAC8L,YAAD;AAAA,cAA0CxB,SAA1C,SAAwDwB,YAAxD;AAAA,KAA1B;AACD,GAzCD;;kBAoDIC,QAAQ,CACVlC,OADU,EAEVmC,aAFU,EAGVC,SAHU,EAIVC,WAJU,EAKVC,aALU,EAMVC,YANU,EAOVhC,SAPU,EAQViC,gBARU;MARKC,2BAAf7J;MACA8J,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;MAAWhL,uBAAAA;AAKrC,MAAMuC,QAAQ,GAAG+L,MAAM,CAAC,IAAD,CAAvB;AACA,MAAM9L,eAAe,GAAG8L,MAAM,CAAC,IAAD,CAA9B;AAEAC,EAAAA,cAAc,CAAChM,QAAD,EAAWC,eAAX,CAAd;AAEAC,EAAAA,SAAS,CAAC;AACR,QAAI,EAAC8E,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/L,EAAAA,SAAS,CAAC;AACR,QAAI8H,sBAAJ,EAA4B;AAC1BX,MAAAA,kBAAkB,SAAlB,IAAAA,kBAAkB,WAAlB,YAAAA,kBAAkB,CAAGgE,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEvN,GAAlB,CAAsB,UAACiM,GAAD;AAAA,eAAsBA,GAAG,CAACR,QAA1B;AAAA,OAAtB,EAA0DC,MAA1D,CAAiEtE,iBAAjE,CAAH,CAAlB;AACD;AACF,GAJQ,EAIN,CAAC4G,cAAD,CAJM,CAAT;AAMA,MAAII,UAAU,GAAuB,IAArC;;AAEA,MAAIxH,oBAAoB,IAAIwD,uBAA5B,EAAqD;AACnD,UAAM,IAAIM,KAAJ,CACJ,uEACE,uDAFE,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,EAAE9O,QAX6B;AAYtCwJ,MAAAA,UAAU,EAAEA,UAAF,aAAEA,UAAF,cAAEA,UAAF,GAAgBD,IAAI,CAAC5I;AAZO,KAAxC;;AAeA,QAAI8J,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,CAAC1J,QAA9C;;AAEA0O,MAAAA,cAAc,CAACP,WAAf,GAA6B,UAACY,WAAD;AAC3BtF,QAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAG;AACVuB,UAAAA,SAAS,EAAE0D,cAAc,CAAC1D,SADhB;AAEVhL,UAAAA,QAAQ,EAAE+O;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;AAEVhP,UAAAA,QAAQ,EAAE0O,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,GAAGhO,mBAAA,CAACoJ,mBAAD,oBAAyB6E,eAAzB,CAAb;AACD;;AAED,WAASQ,iBAAT,CAA2B5O,MAA3B;AACE,QAAM6O,WAAW,GAAG7O,MAAM,CAAC8O,oBAAP,IAA+B9O,MAAM,CAAC8O,oBAAP,EAAnD;AAEOD,IAAAA,WAAP,aAAOA,WAAP,4BAAOA,WAAW,CAAEE,KAApB;;AAEA,QAAI7E,eAAe,IAAIlK,MAAM,CAACgP,OAA1B,IAAqCH,WAAzC,EAAsD;AACpDA,MAAAA,WAAW,CAAC7G,OAAZ,GAAsB;AACpBqB,QAAAA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAGrJ,MAAM,CAACgL,EAAV,EAAciE,OAAO,CAACjP,MAAM,CAACsI,YAAR,CAArB,CAAd;AACAiF,QAAAA,SAAS,CAAC,CACR;AACEvC,UAAAA,EAAE,EAAEhL,MAAM,CAACgL,EADb;AAEEkE,UAAAA,IAAI,EAAE,CAAClP,MAAM,CAACsI;AAFhB,SADQ,CAAD,CAAT;AAMD,OARD;AASD;;AAED,WAAOuG,WAAP;AACD;;AAED,MAAMM,OAAO,GAAGhF,uBAAuB,IAAIxD,oBAA3B,GAAkD2E,IAAlD,GAAyD6B,IAAzE;AAEA,SACEhN,mBAAA,CAACiE,WAAD;AAAWgL,IAAAA,SAAS,EAAC;GAArB,EACEjP,mBAAA,CAAC0D,cAAD;AAAcG,IAAAA,SAAS,EAAE,CAACxE,gBAAD,IAAqBwE;AAAWoL,IAAAA,SAAS,EAAC;GAAnE,EACEjP,mBAAA,CAAC+D,mBAAD,MAAA,EAAoB2C,cAApB,CADF,CADF,EAIE1G,mBAAA,CAACgE,cAAD;AAAckL,IAAAA,GAAG,EAAEnN;AAAiBkN,IAAAA,SAAS,EAAC;GAA9C,EACEjP,mBAAA,CAACmE,cAAD;AAAc0G,IAAAA,EAAE,EAAEhE;AAAgBoI,IAAAA,SAAS,EAAC;GAA5C,EACEjP,mBAAA,CAACoE,WAAD,oBAAewI,cAAc,CAACuC,aAAiB,CAACpM,eAAD,CAAlB;AAAoCmM,IAAAA,GAAG,EAAEpN;IAAtE,EACE9B,mBAAA,CAAC4E,OAAD;AAAOqK,IAAAA,SAAS,EAAC;iBAAuB;GAAxC,EACGpC,YAAY,CAACjN,GAAb,CAAiB,UAACwP,WAAD;AAAA,WAChBpP,mBAAA,CAAC+E,IAAD,oBAAQqK,WAAW,CAAC/F,mBAAZ,CAAgCnG,oBAAoB,CAACmG,mBAAD,CAApD,EAAR,EACG+F,WAAW,CAACC,OAAZ,CAAoBzP,GAApB,CAAwB,UAACC,MAAD;AACvB,UAAM6O,WAAW,GAAGD,iBAAiB,CAAC5O,MAAD,CAArC;AAEA,aACEG,mBAAA,CAAC2E,IAAD,oBACM9E,MAAM,CAACyJ,cAAP,CACFhG,4BAA4B,CAACoL,WAAD,EAAcpF,cAAd,EAA8BxG,cAA9B,CAD1B,EADN,EAKGmF,cAAc,CAACpI,MAAD,CALjB,EAMG6H,aAAa,CAAC7H,MAAD,CANhB,CADF;AAUD,KAbA,CADH,CADgB;AAAA,GAAjB,CADH,CADF,EAqBG4G,eAAe,CAAC6I,QAAhB,CAAyB9M,gBAAgB,CAAC+M,GAA1C,KACCvP,mBAAA,CAACkF,OAAD;AAAO+J,IAAAA,SAAS,EAAC;iBAA6B;GAA9C,EACGnC,YAAY,CAAClN,GAAb,CAAiB,UAAC4P,KAAD;AAAA,WAChBxP,mBAAA,CAAC+E,IAAD,oBAAQyK,KAAK,CAAC9F,mBAAN,CAA0BxG,oBAAoB,CAACwG,mBAAD,CAA9C,EAAR,EACG8F,KAAK,CAACH,OAAN,CAAczP,GAAd,CAAkB,UAACC,MAAD;AAAA,aACjBG,mBAAA,CAACsE,IAAD,oBAAQzE,MAAM,CAAC4J,cAAP,CAAsBvG,oBAAoB,CAACuG,cAAD,EAAiB3G,cAAjB,CAA1C,EAAR,EACGjD,MAAM,CAACuI,MAAP,CAAc,QAAd,CADH,CADiB;AAAA,KAAlB,CADH,CADgB;AAAA,GAAjB,CADH,CAtBJ,EAkCEpI,mBAAA,CAACgF,OAAD;AAAOiK,IAAAA,SAAS,EAAC;iBAAuB;GAAxC,EACGD,OAAO,CAACpP,GAAR,CAAY,UAACiM,GAAD;AACXoB,IAAAA,UAAU,CAACpB,GAAD,CAAV;;0BACwB9E,cAAc,CAAC8E,GAAD;QAA/B4D,gCAAAA;;AAEP,QAAIA,aAAJ,EAAmB;AACjB,UAAM7M,IAAI,GAAGiJ,GAAG,CAAC6D,KAAJ,CAAU,CAAV,EAAatH,MAAb,CAAoB,MAApB,CAAb;AAEA,aACEpI,mBAAA,CAACA,KAAK,CAAC2P,QAAP;AAAgBC,QAAAA,GAAG,aAAW/D,GAAG,CAACgE;OAAlC,EACE7P,mBAAA,CAAC8E,SAAD,MAAA,EACE9E,mBAAA,CAAC+E,IAAD,oBAAQ8G,GAAG,CAACtC,WAAJ,CAAgBnG,gBAAgB,CAACmG,WAAD,CAAhC,EAAR,EACEvJ,mBAAA,CAACsE,IAAD;AACEwL,QAAAA,OAAO,EAAE3D,cAAc,CAACjM;SACpB2L,GAAG,CAAC6D,KAAJ,CAAU,CAAV,EAAalG,YAAb,CAA0BnG,iBAAiB,CAACmG,YAAD,EAAe7G,UAAf,CAA3C,EAFN,EAIE3C,mBAAA,SAAA,MAAA,EAAS4C,IAAT,CAJF,CADF,CADF,CADF,EAWG,CAAAiJ,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEkE,UAAL,KAAmBpG,eAAnB,IAAsCA,eAAe,CAACkC,GAAD,CAXxD,CADF;AAeD;;AAED,WACE7L,mBAAA,CAACA,KAAK,CAAC2P,QAAP;AAAgBC,MAAAA,GAAG,aAAW/D,GAAG,CAACgE;KAAlC,EACE7P,mBAAA,CAAC8E,SAAD,MAAA,EACE9E,mBAAA,CAAC+E,IAAD,oBAAQ8G,GAAG,CAACtC,WAAJ,CAAgBnG,gBAAgB,CAACmG,WAAD,CAAhC,EAAR,EACGsC,GAAG,CAAC6D,KAAJ,CAAU9P,GAAV,CAAc,UAACgD,IAAD;AAAA,aACb5C,mBAAA,CAACsE,IAAD,oBAAQ1B,IAAI,CAAC4G,YAAL,CAAkBnG,iBAAiB,CAACmG,YAAD,EAAe7G,UAAf,CAAnC,EAAR,EACGC,IAAI,CAACwF,MAAL,CAAY,MAAZ,CADH,CADa;AAAA,KAAd,CADH,CADF,CADF,EAUG,CAAAyD,GAAG,SAAH,IAAAA,GAAG,WAAH,YAAAA,GAAG,CAAEkE,UAAL,KAAmBpG,eAAnB,IAAsCA,eAAe,CAACkC,GAAD,CAVxD,CADF;AAcD,GAtCA,CADH,CAlCF,EA2EGpF,eAAe,CAAC6I,QAAhB,CAAyB9M,gBAAgB,CAACwN,MAA1C,KACChQ,mBAAA,CAACkF,OAAD;AAAO+J,IAAAA,SAAS,EAAC;iBAAgC;GAAjD,EACGnC,YAAY,CAAClN,GAAb,CAAiB,UAAC4P,KAAD;AAAA,WAChBxP,mBAAA,CAAC+E,IAAD,oBAAQyK,KAAK,CAAC9F,mBAAN,CAA0BxG,oBAAoB,CAACwG,mBAAD,CAA9C,EAAR,EACG8F,KAAK,CAACH,OAAN,CAAczP,GAAd,CAAkB,UAACC,MAAD;AAAA,aACjBG,mBAAA,CAACsE,IAAD,oBAAQzE,MAAM,CAAC4J,cAAP,CAAsBvG,oBAAoB,CAACuG,cAAD,EAAiB3G,cAAjB,CAA1C,EAAR,EACGjD,MAAM,CAACuI,MAAP,CAAc,QAAd,CADH,CADiB;AAAA,KAAlB,CADH,CADgB;AAAA,GAAjB,CADH,CA5EJ,CADF,CADF,CAJF,EAiGG,CAACvE,SAAD,IAAc,CAACiF,IAAI,CAAC5I,MAApB,IAA8BgH,aAjGjC,EAkGG8G,UAlGH,CADF;AAsGD,CA3WD;;AA6WAnF,KAAK,CAACtC,YAAN,GAAqBA,YAArB;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propellerads/table",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"repository": "https://github.com/propellerads/ui-components",
|
|
5
5
|
"author": "i.pasyuk@propellerads.net",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,25 +20,22 @@
|
|
|
20
20
|
"build": "tsdx build"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"
|
|
24
|
-
"@types/react-dom": "^17.0.2",
|
|
25
|
-
"@types/styled-components": "5.1.1",
|
|
26
|
-
"react": "^17.0.2",
|
|
27
|
-
"react-dom": "^17.0.2",
|
|
23
|
+
"react": ">=18 <19",
|
|
28
24
|
"styled-components": "5.1.1"
|
|
29
25
|
},
|
|
30
26
|
"module": "dist/table.esm.js",
|
|
31
27
|
"devDependencies": {
|
|
32
28
|
"tsdx": "^0.13.3",
|
|
33
29
|
"tslib": "^2.4.0",
|
|
34
|
-
"typescript": "^4.
|
|
30
|
+
"typescript": "^4.9.5",
|
|
31
|
+
"@types/react": ">=18 <19",
|
|
32
|
+
"@types/styled-components": "5.1.34"
|
|
35
33
|
},
|
|
36
34
|
"dependencies": {
|
|
35
|
+
"@types/react-table": "^7.7.12",
|
|
36
|
+
"@propellerads/stylevariables": "^1.2.0",
|
|
37
37
|
"@propellerads/icon": "^5.7.0",
|
|
38
38
|
"@propellerads/input-checkbox": "^2.3.1",
|
|
39
|
-
"@propellerads/stylevariables": "^1.2.0",
|
|
40
|
-
"@types/react-table": "^7.7.12",
|
|
41
39
|
"react-table": "^7.8.0"
|
|
42
|
-
}
|
|
43
|
-
"gitHead": "f405e66536244e955229a57dea53bf678ffe9b02"
|
|
40
|
+
}
|
|
44
41
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
FunctionComponent, useEffect, useMemo, useRef,
|
|
3
|
-
} from 'react';
|
|
1
|
+
import React, {FunctionComponent, useEffect, useMemo, useRef} from 'react';
|
|
4
2
|
import {
|
|
5
3
|
useSortBy,
|
|
6
4
|
useTable,
|
|
@@ -12,9 +10,7 @@ import {
|
|
|
12
10
|
Column,
|
|
13
11
|
} from 'react-table';
|
|
14
12
|
|
|
15
|
-
import {
|
|
16
|
-
ArrowDown, ArrowUp, COLOR, SIZE,
|
|
17
|
-
} from '@propellerads/icon';
|
|
13
|
+
import {ArrowDown, ArrowUp, COLOR, SIZE} from '@propellerads/icon';
|
|
18
14
|
import Checkbox from '@propellerads/input-checkbox';
|
|
19
15
|
|
|
20
16
|
import useLoadingState from './useLoadingState';
|
|
@@ -46,24 +42,41 @@ import {
|
|
|
46
42
|
} from './propsGetter';
|
|
47
43
|
|
|
48
44
|
import {
|
|
49
|
-
TableRoot,
|
|
50
|
-
TableWrapper,
|
|
51
|
-
TableContent,
|
|
52
|
-
HeadCell,
|
|
53
|
-
TableLoading,
|
|
54
|
-
TableLoadingInner,
|
|
55
|
-
TD,
|
|
56
|
-
TableCore,
|
|
57
|
-
THead,
|
|
58
|
-
TR,
|
|
59
|
-
TH,
|
|
60
|
-
TBody,
|
|
61
|
-
TRGroup,
|
|
62
|
-
TFoot,
|
|
63
|
-
EmptyStateCell,
|
|
64
|
-
TResizer,
|
|
45
|
+
TableRoot as _TableRoot,
|
|
46
|
+
TableWrapper as _TableWrapper,
|
|
47
|
+
TableContent as _TableContent,
|
|
48
|
+
HeadCell as _HeadCell,
|
|
49
|
+
TableLoading as _TableLoading,
|
|
50
|
+
TableLoadingInner as _TableLoadingInner,
|
|
51
|
+
TD as _TD,
|
|
52
|
+
TableCore as _TableCore,
|
|
53
|
+
THead as _THead,
|
|
54
|
+
TR as _TR,
|
|
55
|
+
TH as _TH,
|
|
56
|
+
TBody as _TBody,
|
|
57
|
+
TRGroup as _TRGroup,
|
|
58
|
+
TFoot as _TFoot,
|
|
59
|
+
EmptyStateCell as _EmptyStateCell,
|
|
60
|
+
TResizer as _TResizer,
|
|
65
61
|
} from './style';
|
|
66
62
|
|
|
63
|
+
const TableRoot = _TableRoot as unknown as React.FunctionComponent<DefaultObject>;
|
|
64
|
+
const TableWrapper = _TableWrapper as unknown as React.FunctionComponent<DefaultObject>;
|
|
65
|
+
const TableContent = _TableContent as unknown as React.FunctionComponent<DefaultObject>;
|
|
66
|
+
const HeadCell = _HeadCell as unknown as React.FunctionComponent<DefaultObject>;
|
|
67
|
+
const TableLoading = _TableLoading as unknown as React.FunctionComponent<DefaultObject>;
|
|
68
|
+
const TableLoadingInner = _TableLoadingInner as unknown as React.FunctionComponent<DefaultObject>;
|
|
69
|
+
const TD = _TD as unknown as React.FunctionComponent<DefaultObject>;
|
|
70
|
+
const TableCore = _TableCore as unknown as React.FunctionComponent<DefaultObject>;
|
|
71
|
+
const THead = _THead as unknown as React.FunctionComponent<DefaultObject>;
|
|
72
|
+
const TR = _TR as unknown as React.FunctionComponent<DefaultObject>;
|
|
73
|
+
const TH = _TH as unknown as React.FunctionComponent<DefaultObject>;
|
|
74
|
+
const TBody = _TBody as unknown as React.FunctionComponent<DefaultObject>;
|
|
75
|
+
const TRGroup = _TRGroup as unknown as React.FunctionComponent<DefaultObject>;
|
|
76
|
+
const TFoot = _TFoot as unknown as React.FunctionComponent<DefaultObject>;
|
|
77
|
+
const EmptyStateCell = _EmptyStateCell as unknown as React.FunctionComponent<DefaultObject>;
|
|
78
|
+
const TResizer = _TResizer as unknown as React.FunctionComponent<DefaultObject>;
|
|
79
|
+
|
|
67
80
|
const isEnableRowSelectDefault: () => boolean = () => true;
|
|
68
81
|
const selectColumnPropsDefault = {};
|
|
69
82
|
const getRowPrePropsDefault: () => DefaultObject = () => ({});
|
|
@@ -183,14 +196,10 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
183
196
|
const showLoading = showLoadingState && isLoading;
|
|
184
197
|
const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);
|
|
185
198
|
const hasManualSortBy = onSortedChange && isFunction(onSortedChange);
|
|
186
|
-
const hasControlledPagination = fetchData
|
|
187
|
-
&& controlledPagination
|
|
188
|
-
&& Object.keys(controlledPagination).length > 0;
|
|
199
|
+
const hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;
|
|
189
200
|
|
|
190
201
|
const options: TableOptionsProps = {
|
|
191
|
-
columns: showLoading
|
|
192
|
-
? (loadingColumns as Column<DefaultObject>[])
|
|
193
|
-
: memoColumns,
|
|
202
|
+
columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : memoColumns,
|
|
194
203
|
data: showLoading ? loadingData : data,
|
|
195
204
|
initialState,
|
|
196
205
|
disableSortRemove,
|
|
@@ -204,9 +213,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
204
213
|
|
|
205
214
|
if (hasControlledPagination) {
|
|
206
215
|
if (typeof controlledPagination?.pageCount === 'undefined') {
|
|
207
|
-
throw new Error(
|
|
208
|
-
'You have to pass pageCount in controlledPagination data',
|
|
209
|
-
);
|
|
216
|
+
throw new Error('You have to pass pageCount in controlledPagination data');
|
|
210
217
|
}
|
|
211
218
|
|
|
212
219
|
options.initialState = {
|
|
@@ -228,12 +235,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
228
235
|
const newColumn = {
|
|
229
236
|
id: 'selection',
|
|
230
237
|
disableSortBy: true,
|
|
231
|
-
Header: (instance: TableHooksInstanceProps & {
|
|
232
|
-
const {
|
|
233
|
-
getToggleAllPageRowsSelectedProps,
|
|
234
|
-
toggleAllPageRowsSelected,
|
|
235
|
-
page,
|
|
236
|
-
} = instance;
|
|
238
|
+
Header: (instance: TableHooksInstanceProps & {toggleAllPageRowsSelected: () => void}) => {
|
|
239
|
+
const {getToggleAllPageRowsSelectedProps, toggleAllPageRowsSelected, page} = instance;
|
|
237
240
|
|
|
238
241
|
const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;
|
|
239
242
|
|
|
@@ -246,13 +249,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
246
249
|
/>
|
|
247
250
|
);
|
|
248
251
|
},
|
|
249
|
-
Cell: ({row}: {
|
|
250
|
-
const {
|
|
251
|
-
id,
|
|
252
|
-
original,
|
|
253
|
-
toggleRowSelected,
|
|
254
|
-
getToggleRowSelectedProps,
|
|
255
|
-
} = row;
|
|
252
|
+
Cell: ({row}: {row: SelectableRow}) => {
|
|
253
|
+
const {id, original, toggleRowSelected, getToggleRowSelectedProps} = row;
|
|
256
254
|
|
|
257
255
|
const elementId = Number.isInteger(original.id) ? original.id : id;
|
|
258
256
|
const isEnabled = isEnableRowSelect(row.original);
|
|
@@ -269,10 +267,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
269
267
|
...selectColumnProps,
|
|
270
268
|
};
|
|
271
269
|
|
|
272
|
-
hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [
|
|
273
|
-
newColumn,
|
|
274
|
-
...tableColumns,
|
|
275
|
-
]);
|
|
270
|
+
hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [newColumn, ...tableColumns]);
|
|
276
271
|
};
|
|
277
272
|
|
|
278
273
|
const {
|
|
@@ -326,9 +321,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
326
321
|
|
|
327
322
|
useEffect(() => {
|
|
328
323
|
if (hasSelectedRowsAbility) {
|
|
329
|
-
onSelectRowsChange?.(
|
|
330
|
-
selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),
|
|
331
|
-
);
|
|
324
|
+
onSelectRowsChange?.(selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect));
|
|
332
325
|
}
|
|
333
326
|
}, [selectedRowIds]);
|
|
334
327
|
|
|
@@ -336,8 +329,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
336
329
|
|
|
337
330
|
if (hasDefaultPagination && hasControlledPagination) {
|
|
338
331
|
throw new Error(
|
|
339
|
-
'You have to pass either hasDefaultPagination true boolean prop or '
|
|
340
|
-
|
|
332
|
+
'You have to pass either hasDefaultPagination true boolean prop or ' +
|
|
333
|
+
'pass fetchData callback and controlledPagination data',
|
|
341
334
|
);
|
|
342
335
|
}
|
|
343
336
|
|
|
@@ -419,38 +412,22 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
419
412
|
|
|
420
413
|
return (
|
|
421
414
|
<TableRoot className="table-root">
|
|
422
|
-
<TableLoading
|
|
423
|
-
isLoading={!showLoadingState && isLoading}
|
|
424
|
-
className="table-loading"
|
|
425
|
-
>
|
|
415
|
+
<TableLoading isLoading={!showLoadingState && isLoading} className="table-loading">
|
|
426
416
|
<TableLoadingInner>{loadingMessage}</TableLoadingInner>
|
|
427
417
|
</TableLoading>
|
|
428
418
|
<TableWrapper ref={tableWrapperRef} className="table-wrapper">
|
|
429
419
|
<TableContent id={tableContentId} className="table-content">
|
|
430
|
-
<TableCore
|
|
431
|
-
{..._getTableProps(getTableBodyProps(getTableProps))}
|
|
432
|
-
ref={tableRef}
|
|
433
|
-
>
|
|
420
|
+
<TableCore {..._getTableProps(getTableBodyProps(getTableProps))} ref={tableRef}>
|
|
434
421
|
<THead className="table-head" data-role="table-head">
|
|
435
422
|
{headerGroups.map((headerGroup) => (
|
|
436
|
-
<TR
|
|
437
|
-
{...headerGroup.getHeaderGroupProps(
|
|
438
|
-
getTableElementProps(getHeaderGroupProps),
|
|
439
|
-
)}
|
|
440
|
-
>
|
|
423
|
+
<TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>
|
|
441
424
|
{headerGroup.headers.map((column) => {
|
|
442
|
-
const headerProps = extendSortByProps(
|
|
443
|
-
column,
|
|
444
|
-
) as DefaultObject;
|
|
425
|
+
const headerProps = extendSortByProps(column) as DefaultObject;
|
|
445
426
|
|
|
446
427
|
return (
|
|
447
428
|
<TH
|
|
448
429
|
{...column.getHeaderProps(
|
|
449
|
-
getTableElementInternalProps(
|
|
450
|
-
headerProps,
|
|
451
|
-
getHeaderProps,
|
|
452
|
-
mainCellGetter,
|
|
453
|
-
),
|
|
430
|
+
getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter),
|
|
454
431
|
)}
|
|
455
432
|
>
|
|
456
433
|
{getHeadContent(column)}
|
|
@@ -464,17 +441,9 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
464
441
|
{footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (
|
|
465
442
|
<TFoot className="table-footer-top" data-role="table-footer-top">
|
|
466
443
|
{footerGroups.map((group) => (
|
|
467
|
-
<TR
|
|
468
|
-
{...group.getFooterGroupProps(
|
|
469
|
-
getTableElementProps(getFooterGroupProps),
|
|
470
|
-
)}
|
|
471
|
-
>
|
|
444
|
+
<TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>
|
|
472
445
|
{group.headers.map((column) => (
|
|
473
|
-
<TD
|
|
474
|
-
{...column.getFooterProps(
|
|
475
|
-
getTableElementProps(getFooterProps, mainCellGetter),
|
|
476
|
-
)}
|
|
477
|
-
>
|
|
446
|
+
<TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>
|
|
478
447
|
{column.render('Footer')}
|
|
479
448
|
</TD>
|
|
480
449
|
))}
|
|
@@ -488,17 +457,17 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
488
457
|
const {isDelimiterTd} = getRowPreProps(row);
|
|
489
458
|
|
|
490
459
|
if (isDelimiterTd) {
|
|
460
|
+
const cell = row.cells[0].render('Cell') as React.ReactNode;
|
|
461
|
+
|
|
491
462
|
return (
|
|
492
463
|
<React.Fragment key={`group_${row.index}`}>
|
|
493
464
|
<TRGroup>
|
|
494
465
|
<TR {...row.getRowProps(getTableRowProps(getRowProps))}>
|
|
495
466
|
<TD
|
|
496
467
|
colSpan={visibleColumns.length}
|
|
497
|
-
{...row.cells[0].getCellProps(
|
|
498
|
-
getTableCellProps(getCellProps, cellGetter),
|
|
499
|
-
)}
|
|
468
|
+
{...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}
|
|
500
469
|
>
|
|
501
|
-
<strong>{
|
|
470
|
+
<strong>{cell}</strong>
|
|
502
471
|
</TD>
|
|
503
472
|
</TR>
|
|
504
473
|
</TRGroup>
|
|
@@ -512,11 +481,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
512
481
|
<TRGroup>
|
|
513
482
|
<TR {...row.getRowProps(getTableRowProps(getRowProps))}>
|
|
514
483
|
{row.cells.map((cell: StandardCell) => (
|
|
515
|
-
<TD
|
|
516
|
-
{...cell.getCellProps(
|
|
517
|
-
getTableCellProps(getCellProps, cellGetter),
|
|
518
|
-
)}
|
|
519
|
-
>
|
|
484
|
+
<TD {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>
|
|
520
485
|
{cell.render('Cell')}
|
|
521
486
|
</TD>
|
|
522
487
|
))}
|
|
@@ -530,17 +495,9 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
530
495
|
{footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (
|
|
531
496
|
<TFoot className="table-footer-bottom" data-role="table-footer-bottom">
|
|
532
497
|
{footerGroups.map((group) => (
|
|
533
|
-
<TR
|
|
534
|
-
{...group.getFooterGroupProps(
|
|
535
|
-
getTableElementProps(getFooterGroupProps),
|
|
536
|
-
)}
|
|
537
|
-
>
|
|
498
|
+
<TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>
|
|
538
499
|
{group.headers.map((column) => (
|
|
539
|
-
<TD
|
|
540
|
-
{...column.getFooterProps(
|
|
541
|
-
getTableElementProps(getFooterProps, mainCellGetter),
|
|
542
|
-
)}
|
|
543
|
-
>
|
|
500
|
+
<TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>
|
|
544
501
|
{column.render('Footer')}
|
|
545
502
|
</TD>
|
|
546
503
|
))}
|