@propellerads/table 4.3.0 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/dist/table.cjs.development.js +35 -21
- 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 +37 -23
- package/dist/table.esm.js.map +1 -1
- package/dist/types.d.ts +4 -1
- package/package.json +2 -2
- package/src/index.tsx +125 -72
- package/src/types.tsx +2 -1
- package/src/useLoadingState.tsx +4 -2
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(({maxWidth, width, Header}: Column, key: number) => {\n const column: Column<DefaultObject> = {\n Cell: () => <LoadingCellComponent />,\n accessor: `empty_${key}`,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.width = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\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}\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>\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","import React, {\n FunctionComponent,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useFlexLayout,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDownFull, 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 SelectableRowInstanceProps,\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} from './style';\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 LoadingCellComponent: EmptyStateCell,\n getRowPreProps: () => ({}),\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDownFull\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\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 } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState, isLoading, controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE, memoColumns, 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: SelectableRowInstanceProps) => {\n const {getToggleAllRowsSelectedProps, toggleAllRowsSelected} = instance;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllRowsSelected}\n isChecked={getToggleAllRowsSelectedProps().checked}\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\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isChecked={getToggleRowSelectedProps().checked}\n />\n );\n },\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 usePagination,\n useRowSelect,\n useSelect,\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));\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n // eslint-disable-next-line max-len\n throw new Error('You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data');\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 = (\n <PaginationComponent {...paginationData} />\n );\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 id: column.id,\n desc: !column.isSortedDesc,\n }]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = (hasControlledPagination || hasDefaultPagination) ? page : rows;\n\n return (\n <TableRoot>\n <TableLoading isLoading={!showLoadingState && isLoading}>\n <TableLoadingInner>\n {loadingMessage}\n </TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef}>\n <TableContent id={tableContentId}>\n <TableCore {..._getTableProps(getTableBodyProps(getTableProps))} ref={tableRef}>\n <THead>\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(getTableElementInternalProps(\n headerProps, getHeaderProps, mainCellGetter,\n ))}\n >\n {getHeadContent(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot>\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>\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <TRGroup key={`group_${row.index}`}>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n );\n }\n\n return (\n <TRGroup key={`group_${row.index}`}>\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 );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot>\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","key","maxWidth","width","Header","column","Cell","React","accessor","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","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","getRowPreProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","getHeadContent","isSorted","isSortedDesc","render","ArrowDownFull","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","initialState","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","instance","getToggleAllRowsSelectedProps","toggleAllRowsSelected","Checkbox","elementId","onChange","isChecked","checked","row","original","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","usePagination","useRowSelect","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","page","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","desc","tBodyTr","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","index","colSpan","cells","BOTTOM"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.esm.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map(({\n maxWidth, width, Header, accessor,\n }: Column) => {\n const column: Column<DefaultObject> = {\n Cell: () => <LoadingCellComponent />,\n accessor: accessor as string,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.width = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\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}\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","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\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 SelectableRowInstanceProps,\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} from './style';\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 LoadingCellComponent: EmptyStateCell,\n getRowPreProps: () => ({}),\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n } = 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: SelectableRowInstanceProps) => {\n const {\n getToggleAllRowsSelectedProps,\n toggleAllRowsSelected,\n } = instance;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllRowsSelected}\n isChecked={getToggleAllRowsSelectedProps().checked}\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\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isChecked={getToggleRowSelectedProps().checked}\n />\n );\n },\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 );\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),\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\">\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 </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"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\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <>\n <TRGroup key={`group_${row.index}`}>\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 </>\n );\n }\n\n return (\n <>\n <TRGroup key={`group_${row.index}`}>\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 </>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"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","maxWidth","width","Header","accessor","column","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","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","getRowPreProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","initialState","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","instance","getToggleAllRowsSelectedProps","toggleAllRowsSelected","Checkbox","elementId","onChange","isChecked","checked","row","original","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","page","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -62,6 +62,7 @@ export declare type TableProps = {
|
|
|
62
62
|
showLoadingState?: boolean;
|
|
63
63
|
LoadingCellComponent?: FunctionComponent<DefaultObject>;
|
|
64
64
|
noDataMessage?: string | ReactElement;
|
|
65
|
+
rowSubComponent?: (row: StandardRow) => ReactElement;
|
|
65
66
|
};
|
|
66
67
|
export declare type TableOptions = {
|
|
67
68
|
columns: Array<Column<DefaultObject>>;
|
|
@@ -93,7 +94,9 @@ export declare type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter,
|
|
|
93
94
|
export declare type GetTableElementInternalPropsGetter = (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) => HeaderPropGetter<DefaultObject>;
|
|
94
95
|
export declare type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>;
|
|
95
96
|
export declare type StandardColumn = Column<DefaultObject>;
|
|
96
|
-
export declare type StandardRow = Row<DefaultObject
|
|
97
|
+
export declare type StandardRow = Row<DefaultObject> & {
|
|
98
|
+
isExpanded?: boolean;
|
|
99
|
+
};
|
|
97
100
|
export declare type SelectableRow = Row<{
|
|
98
101
|
id: string;
|
|
99
102
|
}> & UseRowSelectRowProps<DefaultObject>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propellerads/table",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"repository": "https://github.com/propellerads/ui-components",
|
|
5
5
|
"author": "i.pasyuk@propellerads.net",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,5 +41,5 @@
|
|
|
41
41
|
"@types/react-table": "^7.7.12",
|
|
42
42
|
"react-table": "^7.8.0"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "c453bc2f9c1cbcf5ce155f1eb2d0f5092bd473a2"
|
|
45
45
|
}
|
package/src/index.tsx
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
1
|
import React, {
|
|
2
|
-
FunctionComponent,
|
|
3
|
-
useEffect,
|
|
4
|
-
useMemo,
|
|
5
|
-
useRef,
|
|
2
|
+
FunctionComponent, useEffect, useMemo, useRef,
|
|
6
3
|
} from 'react';
|
|
7
4
|
import {
|
|
8
5
|
useSortBy,
|
|
9
6
|
useTable,
|
|
10
7
|
useRowSelect,
|
|
11
8
|
usePagination,
|
|
9
|
+
useExpanded,
|
|
12
10
|
useFlexLayout,
|
|
13
11
|
Column,
|
|
14
12
|
} from 'react-table';
|
|
15
13
|
|
|
16
14
|
import {
|
|
17
|
-
|
|
15
|
+
ArrowDown, ArrowUp, COLOR, SIZE,
|
|
18
16
|
} from '@propellerads/icon';
|
|
19
17
|
import Checkbox from '@propellerads/input-checkbox';
|
|
20
18
|
|
|
@@ -97,10 +95,7 @@ function getHeadContent(column: ColumnWithSort) {
|
|
|
97
95
|
return (
|
|
98
96
|
<HeadCell>
|
|
99
97
|
{column.render('Header')}
|
|
100
|
-
<
|
|
101
|
-
size={SIZE.SMALL}
|
|
102
|
-
color={COLOR.GRAY_DARK}
|
|
103
|
-
/>
|
|
98
|
+
<ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />
|
|
104
99
|
</HeadCell>
|
|
105
100
|
);
|
|
106
101
|
}
|
|
@@ -109,10 +104,7 @@ function getHeadContent(column: ColumnWithSort) {
|
|
|
109
104
|
return (
|
|
110
105
|
<HeadCell>
|
|
111
106
|
{column.render('Header')}
|
|
112
|
-
<ArrowUp
|
|
113
|
-
size={SIZE.SMALL}
|
|
114
|
-
color={COLOR.GRAY_DARK}
|
|
115
|
-
/>
|
|
107
|
+
<ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />
|
|
116
108
|
</HeadCell>
|
|
117
109
|
);
|
|
118
110
|
}
|
|
@@ -149,21 +141,30 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
149
141
|
getFooterGroupProps,
|
|
150
142
|
showLoadingState,
|
|
151
143
|
noDataMessage,
|
|
144
|
+
rowSubComponent,
|
|
152
145
|
} = props;
|
|
153
146
|
|
|
154
147
|
const memoColumns = useMemo(() => columns, [columns]);
|
|
155
148
|
|
|
156
149
|
const {loadingColumns, loadingData} = useLoadingState(
|
|
157
|
-
showLoadingState,
|
|
150
|
+
showLoadingState,
|
|
151
|
+
isLoading,
|
|
152
|
+
controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,
|
|
153
|
+
memoColumns,
|
|
154
|
+
LoadingCellComponent,
|
|
158
155
|
);
|
|
159
156
|
|
|
160
157
|
const showLoading = showLoadingState && isLoading;
|
|
161
158
|
const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);
|
|
162
159
|
const hasManualSortBy = onSortedChange && isFunction(onSortedChange);
|
|
163
|
-
const hasControlledPagination = fetchData
|
|
160
|
+
const hasControlledPagination = fetchData
|
|
161
|
+
&& controlledPagination
|
|
162
|
+
&& Object.keys(controlledPagination).length > 0;
|
|
164
163
|
|
|
165
164
|
const options: TableOptionsProps = {
|
|
166
|
-
columns: showLoading
|
|
165
|
+
columns: showLoading
|
|
166
|
+
? (loadingColumns as Column<DefaultObject>[])
|
|
167
|
+
: memoColumns,
|
|
167
168
|
data: showLoading ? loadingData : data,
|
|
168
169
|
initialState,
|
|
169
170
|
disableSortRemove,
|
|
@@ -177,7 +178,9 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
177
178
|
|
|
178
179
|
if (hasControlledPagination) {
|
|
179
180
|
if (typeof controlledPagination?.pageCount === 'undefined') {
|
|
180
|
-
throw new Error(
|
|
181
|
+
throw new Error(
|
|
182
|
+
'You have to pass pageCount in controlledPagination data',
|
|
183
|
+
);
|
|
181
184
|
}
|
|
182
185
|
|
|
183
186
|
options.initialState = {
|
|
@@ -200,7 +203,10 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
200
203
|
id: 'selection',
|
|
201
204
|
disableSortBy: true,
|
|
202
205
|
Header: (instance: SelectableRowInstanceProps) => {
|
|
203
|
-
const {
|
|
206
|
+
const {
|
|
207
|
+
getToggleAllRowsSelectedProps,
|
|
208
|
+
toggleAllRowsSelected,
|
|
209
|
+
} = instance;
|
|
204
210
|
|
|
205
211
|
return (
|
|
206
212
|
<Checkbox
|
|
@@ -230,10 +236,10 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
230
236
|
},
|
|
231
237
|
};
|
|
232
238
|
|
|
233
|
-
hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) =>
|
|
239
|
+
hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [
|
|
234
240
|
newColumn,
|
|
235
241
|
...tableColumns,
|
|
236
|
-
])
|
|
242
|
+
]);
|
|
237
243
|
};
|
|
238
244
|
|
|
239
245
|
const {
|
|
@@ -249,6 +255,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
249
255
|
options,
|
|
250
256
|
useFlexLayout,
|
|
251
257
|
useSortBy,
|
|
258
|
+
useExpanded,
|
|
252
259
|
usePagination,
|
|
253
260
|
useRowSelect,
|
|
254
261
|
useSelect,
|
|
@@ -285,15 +292,19 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
285
292
|
|
|
286
293
|
useEffect(() => {
|
|
287
294
|
if (hasSelectedRowsAbility) {
|
|
288
|
-
onSelectRowsChange?.(
|
|
295
|
+
onSelectRowsChange?.(
|
|
296
|
+
selectedFlatRows?.map((row: StandardRow) => row.original),
|
|
297
|
+
);
|
|
289
298
|
}
|
|
290
299
|
}, [selectedRowIds]);
|
|
291
300
|
|
|
292
301
|
let pagination: JSX.Element | null = null;
|
|
293
302
|
|
|
294
303
|
if (hasDefaultPagination && hasControlledPagination) {
|
|
295
|
-
|
|
296
|
-
|
|
304
|
+
throw new Error(
|
|
305
|
+
'You have to pass either hasDefaultPagination true boolean prop or '
|
|
306
|
+
+ 'pass fetchData callback and controlledPagination data',
|
|
307
|
+
);
|
|
297
308
|
}
|
|
298
309
|
|
|
299
310
|
if (hasControlledPagination || hasDefaultPagination) {
|
|
@@ -347,9 +358,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
347
358
|
}
|
|
348
359
|
}
|
|
349
360
|
|
|
350
|
-
pagination =
|
|
351
|
-
<PaginationComponent {...paginationData} />
|
|
352
|
-
);
|
|
361
|
+
pagination = <PaginationComponent {...paginationData} />;
|
|
353
362
|
}
|
|
354
363
|
|
|
355
364
|
function extendSortByProps(column: ColumnWithSort) {
|
|
@@ -357,42 +366,58 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
357
366
|
|
|
358
367
|
delete headerProps?.style;
|
|
359
368
|
|
|
360
|
-
if (hasManualSortBy &&
|
|
369
|
+
if (hasManualSortBy && column.canSort && headerProps) {
|
|
361
370
|
headerProps.onClick = () => {
|
|
362
371
|
onSortedChange?.(column.id, Boolean(column.isSortedDesc));
|
|
363
|
-
setSortBy([
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
372
|
+
setSortBy([
|
|
373
|
+
{
|
|
374
|
+
id: column.id,
|
|
375
|
+
desc: !column.isSortedDesc,
|
|
376
|
+
},
|
|
377
|
+
]);
|
|
367
378
|
};
|
|
368
379
|
}
|
|
369
380
|
|
|
370
381
|
return headerProps;
|
|
371
382
|
}
|
|
372
383
|
|
|
373
|
-
const tBodyTr =
|
|
384
|
+
const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;
|
|
374
385
|
|
|
375
386
|
return (
|
|
376
|
-
<TableRoot>
|
|
377
|
-
<TableLoading
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
387
|
+
<TableRoot className="table-root">
|
|
388
|
+
<TableLoading
|
|
389
|
+
isLoading={!showLoadingState && isLoading}
|
|
390
|
+
className="table-loading"
|
|
391
|
+
>
|
|
392
|
+
<TableLoadingInner>{loadingMessage}</TableLoadingInner>
|
|
381
393
|
</TableLoading>
|
|
382
|
-
<TableWrapper ref={tableWrapperRef}>
|
|
383
|
-
<TableContent id={tableContentId}>
|
|
384
|
-
<TableCore
|
|
385
|
-
|
|
394
|
+
<TableWrapper ref={tableWrapperRef} className="table-wrapper">
|
|
395
|
+
<TableContent id={tableContentId} className="table-content">
|
|
396
|
+
<TableCore
|
|
397
|
+
{..._getTableProps(getTableBodyProps(getTableProps))}
|
|
398
|
+
ref={tableRef}
|
|
399
|
+
>
|
|
400
|
+
<THead className="table-head">
|
|
386
401
|
{headerGroups.map((headerGroup) => (
|
|
387
|
-
<TR
|
|
402
|
+
<TR
|
|
403
|
+
{...headerGroup.getHeaderGroupProps(
|
|
404
|
+
getTableElementProps(getHeaderGroupProps),
|
|
405
|
+
)}
|
|
406
|
+
>
|
|
388
407
|
{headerGroup.headers.map((column) => {
|
|
389
|
-
const headerProps = extendSortByProps(
|
|
408
|
+
const headerProps = extendSortByProps(
|
|
409
|
+
column,
|
|
410
|
+
) as DefaultObject;
|
|
390
411
|
|
|
391
412
|
return (
|
|
392
413
|
<TH
|
|
393
|
-
{...column.getHeaderProps(
|
|
394
|
-
|
|
395
|
-
|
|
414
|
+
{...column.getHeaderProps(
|
|
415
|
+
getTableElementInternalProps(
|
|
416
|
+
headerProps,
|
|
417
|
+
getHeaderProps,
|
|
418
|
+
mainCellGetter,
|
|
419
|
+
),
|
|
420
|
+
)}
|
|
396
421
|
>
|
|
397
422
|
{getHeadContent(column)}
|
|
398
423
|
</TH>
|
|
@@ -402,11 +427,19 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
402
427
|
))}
|
|
403
428
|
</THead>
|
|
404
429
|
{footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (
|
|
405
|
-
<TFoot>
|
|
430
|
+
<TFoot className="table-footer-top">
|
|
406
431
|
{footerGroups.map((group) => (
|
|
407
|
-
<TR
|
|
432
|
+
<TR
|
|
433
|
+
{...group.getFooterGroupProps(
|
|
434
|
+
getTableElementProps(getFooterGroupProps),
|
|
435
|
+
)}
|
|
436
|
+
>
|
|
408
437
|
{group.headers.map((column) => (
|
|
409
|
-
<TD
|
|
438
|
+
<TD
|
|
439
|
+
{...column.getFooterProps(
|
|
440
|
+
getTableElementProps(getFooterProps, mainCellGetter),
|
|
441
|
+
)}
|
|
442
|
+
>
|
|
410
443
|
{column.render('Footer')}
|
|
411
444
|
</TD>
|
|
412
445
|
))}
|
|
@@ -414,45 +447,65 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
|
|
|
414
447
|
))}
|
|
415
448
|
</TFoot>
|
|
416
449
|
)}
|
|
417
|
-
<TBody>
|
|
450
|
+
<TBody className="table-body">
|
|
418
451
|
{tBodyTr.map((row: StandardRow) => {
|
|
419
452
|
prepareRow(row);
|
|
420
453
|
const {isDelimiterTd} = getRowPreProps(row);
|
|
421
454
|
|
|
422
455
|
if (isDelimiterTd) {
|
|
423
456
|
return (
|
|
424
|
-
|
|
425
|
-
<
|
|
426
|
-
<
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
457
|
+
<>
|
|
458
|
+
<TRGroup key={`group_${row.index}`}>
|
|
459
|
+
<TR {...row.getRowProps(getTableRowProps(getRowProps))}>
|
|
460
|
+
<TD
|
|
461
|
+
colSpan={visibleColumns.length}
|
|
462
|
+
{...row.cells[0].getCellProps(
|
|
463
|
+
getTableCellProps(getCellProps, cellGetter),
|
|
464
|
+
)}
|
|
465
|
+
>
|
|
466
|
+
<strong>{row.cells[0].render('Cell')}</strong>
|
|
467
|
+
</TD>
|
|
468
|
+
</TR>
|
|
469
|
+
</TRGroup>
|
|
470
|
+
{row?.isExpanded && rowSubComponent && rowSubComponent(row)}
|
|
471
|
+
</>
|
|
434
472
|
);
|
|
435
473
|
}
|
|
436
474
|
|
|
437
475
|
return (
|
|
438
|
-
|
|
439
|
-
<
|
|
440
|
-
{row.
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
476
|
+
<>
|
|
477
|
+
<TRGroup key={`group_${row.index}`}>
|
|
478
|
+
<TR {...row.getRowProps(getTableRowProps(getRowProps))}>
|
|
479
|
+
{row.cells.map((cell: StandardCell) => (
|
|
480
|
+
<TD
|
|
481
|
+
{...cell.getCellProps(
|
|
482
|
+
getTableCellProps(getCellProps, cellGetter),
|
|
483
|
+
)}
|
|
484
|
+
>
|
|
485
|
+
{cell.render('Cell')}
|
|
486
|
+
</TD>
|
|
487
|
+
))}
|
|
488
|
+
</TR>
|
|
489
|
+
</TRGroup>
|
|
490
|
+
{row?.isExpanded && rowSubComponent && rowSubComponent(row)}
|
|
491
|
+
</>
|
|
447
492
|
);
|
|
448
493
|
})}
|
|
449
494
|
</TBody>
|
|
450
495
|
{footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (
|
|
451
|
-
<TFoot>
|
|
496
|
+
<TFoot className="table-footer-bottom">
|
|
452
497
|
{footerGroups.map((group) => (
|
|
453
|
-
<TR
|
|
498
|
+
<TR
|
|
499
|
+
{...group.getFooterGroupProps(
|
|
500
|
+
getTableElementProps(getFooterGroupProps),
|
|
501
|
+
)}
|
|
502
|
+
>
|
|
454
503
|
{group.headers.map((column) => (
|
|
455
|
-
<TD
|
|
504
|
+
<TD
|
|
505
|
+
{...column.getFooterProps(
|
|
506
|
+
getTableElementProps(getFooterProps, mainCellGetter),
|
|
507
|
+
)}
|
|
508
|
+
>
|
|
456
509
|
{column.render('Footer')}
|
|
457
510
|
</TD>
|
|
458
511
|
))}
|