@propellerads/table 5.1.0 → 6.0.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/dist/index.d.ts +114 -22
- package/dist/index.js +495 -6
- package/dist/index.js.map +1 -0
- package/package.json +32 -28
- package/dist/propsGetter.d.ts +0 -9
- package/dist/style.d.ts +0 -22
- package/dist/table.cjs.development.js +0 -650
- package/dist/table.cjs.development.js.map +0 -1
- package/dist/table.cjs.production.min.js +0 -2
- package/dist/table.cjs.production.min.js.map +0 -1
- package/dist/table.esm.js +0 -641
- package/dist/table.esm.js.map +0 -1
- package/dist/types.d.ts +0 -114
- package/dist/useLoadingState.d.ts +0 -5
- package/dist/useTableShadow.d.ts +0 -2
- package/src/index.tsx +0 -544
- package/src/propsGetter.tsx +0 -93
- package/src/style.tsx +0 -215
- package/src/types.tsx +0 -173
- package/src/useLoadingState.tsx +0 -52
- package/src/useTableShadow.tsx +0 -68
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/propsGetter.tsx","../src/style.tsx","../src/types.ts","../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/index.tsx"],"sourcesContent":["import type {CSSProperties} from 'react';\nimport type {Cell, Header} from '@tanstack/react-table';\nimport type {DefaultObject} from './types';\n\nexport const getColumnAlign = <TData extends DefaultObject>(\n header: Header<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => header.column.columnDef.meta?.align;\n\nexport const getCellAlign = <TData extends DefaultObject>(\n cell: Cell<TData, unknown>,\n): CSSProperties['textAlign'] | undefined => cell.column.columnDef.meta?.align;\n","import styled, {keyframes, css} from 'styled-components';\nimport type {CSSProperties} from 'react';\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<{$isLoading: boolean}>`\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 ${({$isLoading}) =>\n $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<{$align?: CSSProperties['textAlign']; $size?: number}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\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}) =>\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<{$size?: number; $align?: CSSProperties['textAlign']}>`\n flex: 0 0 ${({$size}) => $size ?? 50}px;\n width: ${({$size}) => $size ?? 50}px;\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 ${({$align}) =>\n $align &&\n css`\n text-align: ${$align};\n `}\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 display: flex;\n flex: 1 0 auto;\n padding: 0;\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 type {ComponentPropsWithoutRef, ComponentType, CSSProperties, ReactElement, ReactNode} from 'react';\nimport type {\n Cell,\n ColumnDef,\n Header,\n HeaderGroup,\n Row,\n RowData,\n SortingState,\n TableState,\n VisibilityState,\n} from '@tanstack/react-table';\n\ndeclare module '@tanstack/react-table' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CSSProperties['textAlign'];\n }\n}\n\nexport type DefaultObject = Record<string, unknown>;\n\nexport type LoadingState<TData extends DefaultObject = DefaultObject> = {\n loadingColumns?: ColumnDef<TData>[];\n loadingData: TData[];\n};\n\nexport type RowPreProps = ComponentPropsWithoutRef<'div'> & {\n isDelimiterTd?: boolean;\n};\n\nexport const FooterPlacement = {\n Top: 'top',\n Bottom: 'bottom',\n} as const;\nexport type FooterPlacement = (typeof FooterPlacement)[keyof typeof FooterPlacement];\n\nexport type PaginationProps = {\n paginationAmount?: ReactNode;\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?: ReactNode;\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n};\n\nexport type HeaderGroupPropsGetter<TData extends DefaultObject = DefaultObject> = (\n headerGroup: HeaderGroup<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type HeaderPropsGetter<TData extends DefaultObject = DefaultObject> = (\n header: Header<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type RowPropsGetter<TData extends DefaultObject = DefaultObject> = (\n row: Row<TData>,\n) => ComponentPropsWithoutRef<'div'>;\nexport type CellPropsGetter<TData extends DefaultObject = DefaultObject> = (\n cell: Cell<TData, unknown>,\n) => ComponentPropsWithoutRef<'div'>;\n\nexport type SelectColumnProps<TData extends DefaultObject = DefaultObject> = Pick<\n ColumnDef<TData>,\n 'size' | 'minSize' | 'maxSize' | 'meta' | 'enableHiding'\n>;\n\nexport type TableProps<TData extends DefaultObject = DefaultObject> = {\n columns: ColumnDef<TData>[];\n data: TData[];\n totalItems?: number;\n PaginationComponent?: ComponentType<PaginationProps>;\n initialState?: Partial<TableState> & {columnVisibility?: VisibilityState};\n fetchData?: (params: {pageIndex: number; pageSize: number}) => void;\n onSortedChange?: (sorting: SortingState) => void;\n isLoading?: boolean;\n footerPlacement?: FooterPlacement[];\n hasDefaultPagination?: boolean;\n onSelectRowsChange?: (rows: TData[]) => void;\n controlledPagination?: ControlledPagination;\n loadingMessage?: string;\n labelPerPage?: string;\n parentElementId?: string;\n tableContentId?: string;\n getRowPreProps?: (row: Row<TData>) => RowPreProps;\n getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;\n getSubRows?: (originalRow: TData, index: number) => TData[] | undefined;\n getTableProps?: () => ComponentPropsWithoutRef<'div'>;\n getHeaderGroupProps?: HeaderGroupPropsGetter<TData>;\n getHeaderProps?: HeaderPropsGetter<TData>;\n getRowProps?: RowPropsGetter<TData>;\n getCellProps?: CellPropsGetter<TData>;\n getFooterProps?: HeaderPropsGetter<TData>;\n getFooterGroupProps?: HeaderGroupPropsGetter<TData>;\n showLoadingState?: boolean;\n LoadingCellComponent?: ComponentType;\n noDataMessage?: ReactNode;\n rowSubComponent?: (row: Row<TData>) => ReactElement;\n isEnableRowSelect?: (original: TData) => boolean;\n selectColumnProps?: Partial<SelectColumnProps<TData>>;\n};\n\n// Re-exported for consumers\nexport type StandardColumn<TData extends DefaultObject = DefaultObject> = ColumnDef<TData>;\nexport type StandardRow<TData extends DefaultObject = DefaultObject> = Row<TData>;\nexport type StandardCell<TData extends DefaultObject = DefaultObject> = Cell<TData, unknown>;\nexport type {SortingState, VisibilityState};\n","import {useMemo, type ComponentType} from 'react';\nimport type {ColumnDef} from '@tanstack/react-table';\nimport type {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = <TData extends DefaultObject>(\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: ColumnDef<TData>[],\n LoadingCellComponent: ComponentType,\n): LoadingState<TData> => {\n const loadingColumns: ColumnDef<TData>[] | undefined = useMemo(\n () =>\n showLoadingState && loading\n ? columns.map((column) => ({\n ...column,\n cell: () => <LoadingCellComponent />,\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: TData[] = [];\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 as TData);\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","import {useEffect} from 'react';\n\nconst TableShadowClassName = {\n Left: 'shadow_left',\n Right: 'shadow_right',\n} as const;\n\nconst changeClassName = (tableWrapperNode: Element, newClassNameList: string[]) => {\n const {classList} = tableWrapperNode;\n\n classList.remove(TableShadowClassName.Left, TableShadowClassName.Right);\n classList.add(...newClassNameList);\n};\n\nconst calculateNewClassNames = (tableNode: Element | null, tableWrapperNode: Element | null) => {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName: string[] = [];\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(TableShadowClassName.Left);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TableShadowClassName.Right);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n};\n\nconst useTableShadow = (tableRef: {current: Element | null}, tableWrapperRef: {current: Element | null}) => {\n useEffect(() => {\n let ticking = false;\n\n const 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\nexport default useTableShadow;\n","import {ArrowDown, ArrowUp, Color, Size} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\nimport {Fragment, useEffect, useMemo, useRef, useState, type MouseEvent, type ReactNode} from 'react';\nimport {\n flexRender,\n getCoreRowModel,\n getExpandedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n type Cell,\n type ColumnDef,\n type RowData,\n type VisibilityState,\n type Header,\n type PaginationState,\n type Row,\n type RowSelectionState,\n type SortingState,\n} from '@tanstack/react-table';\nimport {getCellAlign, getColumnAlign} from './propsGetter';\nimport {\n EmptyStateCell,\n HeadCell,\n TableContent,\n TableCore,\n TableLoading,\n TableLoadingInner,\n TableRoot,\n TableWrapper,\n TBody,\n TD,\n TFoot,\n TH,\n THead,\n TR,\n TResizer,\n TRGroup,\n} from './style';\nimport {FooterPlacement} from './types';\nimport type {DefaultObject, PaginationProps, RowPreProps, TableProps} from './types';\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\ntype TableRowData = DefaultObject & RowData;\n\nconst isEnableRowSelectDefault = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault = (): RowPreProps => ({});\nconst getSubRowsDefault = <TData extends TableRowData>(row: TData): TData[] | undefined => {\n const {subRows} = row as TData & {subRows?: TData[]};\n\n if (!Array.isArray(subRows)) {\n return undefined;\n }\n\n return subRows;\n};\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: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nconst getHeadContent = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n const sorted = header.column.getIsSorted();\n const rendered = flexRender(header.column.columnDef.header, header.getContext());\n\n if (sorted === 'desc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowUp size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n if (sorted === 'asc') {\n return (\n <HeadCell>\n {rendered}\n <ArrowDown size={Size.Small} color={Color.GrayDark} />\n </HeadCell>\n );\n }\n\n return rendered;\n};\n\nconst renderResizer = <TData extends TableRowData>(header: Header<TData, unknown>) => {\n if (header.column.getCanResize()) {\n return (\n <TResizer\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onClick={(e: MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n return null;\n};\n\nconst Table = <TData extends TableRowData = DefaultObject>({\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading = defaultProps.isLoading,\n loadingMessage = defaultProps.loadingMessage,\n labelPerPage = defaultProps.labelPerPage,\n footerPlacement = defaultProps.footerPlacement,\n onSortedChange,\n hasDefaultPagination = defaultProps.hasDefaultPagination,\n onSelectRowsChange,\n parentElementId = defaultProps.parentElementId,\n tableContentId = defaultProps.tableContentId,\n LoadingCellComponent = defaultProps.LoadingCellComponent,\n PaginationComponent,\n getRowPreProps = getRowPrePropsDefault,\n getRowId,\n getSubRows = getSubRowsDefault,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState = defaultProps.showLoadingState,\n noDataMessage = defaultProps.noDataMessage,\n rowSubComponent,\n isEnableRowSelect = defaultProps.isEnableRowSelect,\n selectColumnProps = defaultProps.selectColumnProps,\n}: TableProps<TData>) => {\n const memoColumns = useMemo(() => columns, [columns]);\n const showLoading = showLoadingState && isLoading;\n\n const hasSelectedRowsAbility = !showLoading && typeof onSelectRowsChange === 'function';\n const hasManualSortBy = typeof onSortedChange === 'function';\n const hasControlledPagination = !!(fetchData && controlledPagination && Object.keys(controlledPagination).length > 0);\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 && typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n const [sorting, setSorting] = useState<SortingState>([]);\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [pagination, setPagination] = useState<PaginationState>({\n pageIndex: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n const [columnVisibility, setColumnVisibility] = useState<VisibilityState>(initialState?.columnVisibility ?? {});\n\n useEffect(() => {\n if (initialState?.columnVisibility) {\n setColumnVisibility(initialState.columnVisibility);\n }\n }, [initialState?.columnVisibility]);\n\n const selectionColumn: ColumnDef<TData> = useMemo(\n () => ({\n id: 'selection',\n enableSorting: false,\n header: ({table}) => {\n const pageRows = table.getRowModel().rows;\n const isDisabledAllRows = pageRows.map((r) => r.original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={table.toggleAllPageRowsSelected}\n isChecked={table.getIsAllPageRowsSelected()}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n cell: ({row}) => {\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={row.id}\n onChange={row.toggleSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && row.getIsSelected()}\n />\n );\n },\n ...selectColumnProps,\n }),\n [isEnableRowSelect, selectColumnProps],\n );\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n hasControlledPagination ? (controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE) : pagination.pageSize,\n memoColumns,\n LoadingCellComponent,\n );\n\n const finalColumns = useMemo<ColumnDef<TData>[]>(() => {\n const base = showLoading ? (loadingColumns ?? []) : memoColumns;\n return hasSelectedRowsAbility ? [selectionColumn, ...base] : base;\n }, [showLoading, loadingColumns, memoColumns, hasSelectedRowsAbility, selectionColumn]);\n\n const finalData = showLoading ? loadingData : data;\n\n const effectivePagination: PaginationState =\n hasControlledPagination && controlledPagination\n ? {pageIndex: controlledPagination.pageIndex, pageSize: controlledPagination.pageSize}\n : pagination;\n\n const table = useReactTable<TData>({\n columns: finalColumns,\n data: finalData,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n ...(hasDefaultPagination || hasControlledPagination ? {getPaginationRowModel: getPaginationRowModel()} : {}),\n enableRowSelection: hasSelectedRowsAbility ? (row) => isEnableRowSelect(row.original) : false,\n getRowCanExpand: (row) => !showLoading && (Boolean(rowSubComponent) || row.subRows.length > 0),\n getRowId,\n getSubRows,\n state: {\n sorting,\n rowSelection,\n pagination: effectivePagination,\n columnVisibility,\n },\n onSortingChange: setSorting,\n onRowSelectionChange: setRowSelection,\n onPaginationChange: hasControlledPagination ? undefined : setPagination,\n onColumnVisibilityChange: setColumnVisibility,\n manualSorting: hasManualSortBy,\n manualPagination: hasControlledPagination ? true : undefined,\n pageCount: hasControlledPagination ? controlledPagination?.pageCount : undefined,\n enableSortingRemoval: false,\n enableMultiSort: false,\n enableColumnResizing: false,\n columnResizeMode: 'onChange',\n });\n\n const tableRef = useRef<HTMLDivElement>(null);\n const tableWrapperRef = useRef<HTMLDivElement>(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n const selectedRows = table\n .getSelectedRowModel()\n .flatRows.map((row) => row.original)\n .filter(isEnableRowSelect);\n onSelectRowsChange?.(selectedRows);\n }\n }, [rowSelection, hasSelectedRowsAbility]);\n\n let paginationNode: ReactNode = null;\n\n if (hasControlledPagination || hasDefaultPagination) {\n const {pageIndex: tPageIndex, pageSize: tPageSize} = table.getState().pagination;\n\n const paginationData: PaginationProps = {\n setPageSize: table.setPageSize,\n gotoPage: table.setPageIndex,\n canNextPage: table.getCanNextPage(),\n canPreviousPage: table.getCanPreviousPage(),\n parentElementId,\n labelPerPage,\n pageIndex: tPageIndex,\n previousPageHandler: table.previousPage,\n nextPageHandler: table.nextPage,\n totalPages: table.getPageCount(),\n perPage: tPageSize,\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?.({pageIndex: controlledPagination.pageIndex, pageSize: newPageSize});\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({pageIndex: newPageIndex, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.nextPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex + 1, pageSize: controlledPagination.pageSize});\n };\n\n paginationData.previousPageHandler = () => {\n fetchData?.({pageIndex: controlledPagination.pageIndex - 1, pageSize: controlledPagination.pageSize});\n };\n\n if (controlledPagination.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n paginationNode = PaginationComponent ? <PaginationComponent {...paginationData} /> : null;\n }\n\n const handleSortClick = (header: Header<TData, unknown>) => {\n if (!header.column.getCanSort()) return;\n\n const currentSort = header.column.getIsSorted();\n const nextSorting: SortingState = [{id: header.column.id, desc: currentSort !== 'desc'}];\n\n if (hasManualSortBy) {\n onSortedChange?.(nextSorting);\n }\n\n setSorting(nextSorting);\n };\n\n const headerGroups = table.getHeaderGroups();\n const footerGroups = table.getFooterGroups();\n const tBodyRows = table.getRowModel().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?.()} ref={tableRef}>\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR key={headerGroup.id} {...getHeaderGroupProps?.(headerGroup)}>\n {headerGroup.headers.map((header) => (\n <TH\n key={header.id}\n $size={header.getSize()}\n onClick={() => handleSortClick(header)}\n {...getHeaderProps?.(header)}\n >\n {header.isPlaceholder ? null : getHeadContent(header)}\n {renderResizer(header)}\n </TH>\n ))}\n </TR>\n ))}\n </THead>\n\n {footerPlacement.includes(FooterPlacement.Top) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyRows.map((row: Row<TData>) => {\n const rowPreProps = showLoading ? getRowPrePropsDefault() : getRowPreProps(row);\n const {isDelimiterTd} = rowPreProps;\n\n if (isDelimiterTd) {\n const firstCell = row.getVisibleCells()[0];\n\n if (!firstCell) return null;\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n <TD style={{flex: '1 0 0%'}} {...(showLoading ? undefined : getCellProps?.(firstCell))}>\n <strong>{flexRender(firstCell.column.columnDef.cell, firstCell.getContext())}</strong>\n </TD>\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n }\n\n return (\n <Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...(showLoading ? undefined : getRowProps?.(row))}>\n {row.getVisibleCells().map((cell: Cell<TData, unknown>) => (\n <TD\n key={cell.id}\n $size={cell.column.getSize()}\n $align={getCellAlign(cell)}\n {...(showLoading ? undefined : getCellProps?.(cell))}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {!showLoading && row.getIsExpanded() && rowSubComponent && rowSubComponent(row)}\n </Fragment>\n );\n })}\n </TBody>\n\n {footerPlacement.includes(FooterPlacement.Bottom) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((footerGroup) => (\n <TR key={footerGroup.id} {...getFooterGroupProps?.(footerGroup)}>\n {footerGroup.headers.map((header) => (\n <TD\n key={header.id}\n $size={header.getSize()}\n $align={getColumnAlign(header)}\n {...getFooterProps?.(header)}\n >\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.footer, header.getContext())}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {paginationNode}\n </TableRoot>\n );\n};\n\nexport default Table;\nexport type {\n CellPropsGetter,\n ControlledPagination,\n DefaultObject,\n HeaderGroupPropsGetter,\n HeaderPropsGetter,\n LoadingState,\n PaginationProps,\n RowPreProps,\n RowPropsGetter,\n SelectColumnProps,\n SortingState,\n StandardCell,\n StandardColumn,\n StandardRow,\n TableProps,\n VisibilityState,\n} from './types';\n"],"names":["getColumnAlign","header","getCellAlign","cell","loadingAnimation","keyframes","TableLoading","styled","$isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","$size","$align","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","FooterPlacement","useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","column","jsx","loadingData","dataObject","dataArray","i","TableShadowClassName","changeClassName","tableWrapperNode","newClassNameList","classList","calculateNewClassNames","tableNode","tableRect","tableWrapperRect","newClassName","tableRectLeft","tableRectRight","tableWrapperRectLeft","tableWrapperRectRight","useTableShadow","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","getSubRowsDefault","row","subRows","defaultProps","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","getHeadContent","sorted","rendered","flexRender","ArrowUp","Size","Color","ArrowDown","renderResizer","e","Table","data","totalItems","fetchData","controlledPagination","initialState","isLoading","loadingMessage","labelPerPage","footerPlacement","onSortedChange","hasDefaultPagination","onSelectRowsChange","parentElementId","tableContentId","PaginationComponent","getRowPreProps","getRowId","getSubRows","getTableProps","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","noDataMessage","rowSubComponent","isEnableRowSelect","selectColumnProps","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","sorting","setSorting","useState","rowSelection","setRowSelection","pagination","setPagination","columnVisibility","setColumnVisibility","selectionColumn","table","isDisabledAllRows","r","Checkbox","isEnabled","finalColumns","base","finalData","effectivePagination","useReactTable","getCoreRowModel","getSortedRowModel","getExpandedRowModel","getPaginationRowModel","useRef","selectedRows","paginationNode","tPageIndex","tPageSize","paginationData","newPageSize","newPageIndex","handleSortClick","currentSort","nextSorting","headerGroups","footerGroups","tBodyRows","jsxs","headerGroup","footerGroup","rowPreProps","isDelimiterTd","firstCell","Fragment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,40 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@propellerads/table",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
"version": "6.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"types": "dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
10
12
|
"files": [
|
|
11
|
-
"dist"
|
|
12
|
-
"src"
|
|
13
|
+
"dist"
|
|
13
14
|
],
|
|
14
|
-
"
|
|
15
|
-
|
|
15
|
+
"repository": "https://github.com/propellerads/ui-components.git",
|
|
16
|
+
"author": "i.pasyuk@propellerads.net",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/propellerads/ui-components/issues"
|
|
16
20
|
},
|
|
17
21
|
"scripts": {
|
|
18
|
-
"
|
|
19
|
-
|
|
22
|
+
"build": "tsc && vite build && rollup -c rollup.dts.config.mjs"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://github.com/propellerads/ui-components#readme",
|
|
25
|
+
"private": false,
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@propellerads/stylevariables": "^2.0.1",
|
|
28
|
+
"@propellerads/icon": "^7.2.1",
|
|
29
|
+
"@propellerads/input-checkbox": "^4.0.0",
|
|
30
|
+
"@tanstack/react-table": "^8.21.3"
|
|
20
31
|
},
|
|
21
32
|
"peerDependencies": {
|
|
22
|
-
"react": "
|
|
23
|
-
"styled-components": "5.1.1"
|
|
33
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
34
|
+
"styled-components": "^5.1.1 || ^6.0.0"
|
|
24
35
|
},
|
|
25
|
-
"module": "dist/table.esm.js",
|
|
26
36
|
"devDependencies": {
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"@types/react-table": "7.7.12",
|
|
35
|
-
"@propellerads/stylevariables": "^2.0.1",
|
|
36
|
-
"@propellerads/icon": "^7.1.1",
|
|
37
|
-
"@propellerads/input-checkbox": "^3.1.4",
|
|
38
|
-
"react-table": "7.8.0"
|
|
37
|
+
"@types/react": "^19.2.14",
|
|
38
|
+
"@vitejs/plugin-react": "^5.1.4",
|
|
39
|
+
"rollup": "^4.58.0",
|
|
40
|
+
"rollup-plugin-dts": "^6.3.0",
|
|
41
|
+
"typescript": "^5.9.3",
|
|
42
|
+
"vite": "^7.3.1"
|
|
39
43
|
}
|
|
40
44
|
}
|
package/dist/propsGetter.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ElementCellPropGetter, ElementGetter, ElementHeaderFooterPropGetter, ElementRowPropGetter, GetTableContainerPropsGetter, GetTableElementInternalPropsGetter, GetTableElementPropsGetter } from './types';
|
|
2
|
-
export declare const defaultGetter: ElementGetter;
|
|
3
|
-
export declare const cellGetter: ElementGetter;
|
|
4
|
-
export declare const mainCellGetter: ElementGetter;
|
|
5
|
-
export declare const getTableProps: GetTableContainerPropsGetter;
|
|
6
|
-
export declare const getTableElementProps: GetTableElementPropsGetter<ElementHeaderFooterPropGetter>;
|
|
7
|
-
export declare const getTableRowProps: GetTableElementPropsGetter<ElementRowPropGetter>;
|
|
8
|
-
export declare const getTableCellProps: GetTableElementPropsGetter<ElementCellPropGetter>;
|
|
9
|
-
export declare const getTableElementInternalProps: GetTableElementInternalPropsGetter;
|
package/dist/style.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { CSSObject } from 'styled-components';
|
|
2
|
-
export declare const TableLoading: import("styled-components").StyledComponent<"div", any, {
|
|
3
|
-
isLoading: boolean;
|
|
4
|
-
}, never>;
|
|
5
|
-
export declare const TableLoadingInner: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
6
|
-
export declare const TableWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
7
|
-
export declare const TableRoot: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
8
|
-
export declare const TableContent: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
9
|
-
export declare const TableCore: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
10
|
-
export declare const HeadCell: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
11
|
-
export declare const TD: import("styled-components").StyledComponent<"div", any, {
|
|
12
|
-
align?: CSSObject | undefined;
|
|
13
|
-
colSpan?: number | undefined;
|
|
14
|
-
}, never>;
|
|
15
|
-
export declare const EmptyStateCell: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
16
|
-
export declare const TH: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
17
|
-
export declare const THead: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
18
|
-
export declare const TRGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
19
|
-
export declare const TR: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
20
|
-
export declare const TBody: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
21
|
-
export declare const TFoot: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
22
|
-
export declare const TResizer: import("styled-components").StyledComponent<"div", any, {}, never>;
|