@propellerads/table 4.9.0 → 5.0.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"table.esm.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n rowSubComponent?: (row: StandardRow) => ReactElement,\n isEnableRowSelect?: (original: DefaultObject) => boolean,\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject> & { isExpanded?: boolean }\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n \n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {\n FunctionComponent, useEffect, useMemo, useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDown, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n TResizer,\n} from './style';\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction renderResizer(column) {\n if (column.isResizable) {\n return (\n <TResizer\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData\n && controlledPagination\n && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading\n ? (loadingColumns as Column<DefaultObject>[])\n : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error(\n 'You have to pass pageCount in controlledPagination data',\n );\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {\n const {\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n page,\n } = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [\n newColumn,\n ...tableColumns,\n ]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(\n selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),\n );\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or '\n + 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading\n isLoading={!showLoadingState && isLoading}\n className=\"table-loading\"\n >\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore\n {..._getTableProps(getTableBodyProps(getTableProps))}\n ref={tableRef}\n >\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR\n {...headerGroup.getHeaderGroupProps(\n getTableElementProps(getHeaderGroupProps),\n )}\n >\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(\n column,\n ) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(\n headerProps,\n getHeaderProps,\n mainCellGetter,\n ),\n )}\n >\n {getHeadContent(column)}\n {renderResizer(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD\n {...cell.getCellProps(\n getTableCellProps(getCellProps, cellGetter),\n )}\n >\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR\n {...group.getFooterGroupProps(\n getTableElementProps(getFooterGroupProps),\n )}\n >\n {group.headers.map((column) => (\n <TD\n {...column.getFooterProps(\n getTableElementProps(getFooterProps, mainCellGetter),\n )}\n >\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","renderResizer","isResizable","getResizerProps","onClick","e","preventDefault","stopPropagation","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","Fragment","key","index","colSpan","cells","isExpanded","BOTTOM"],"mappings":"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"}
1
+ {"version":3,"file":"table.esm.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(\n () =>\n showLoadingState && loading\n ? columns.map((column: Column<DefaultObject>) => {\n const loadingColumn: Column<DefaultObject> = {\n ...column,\n Cell: () => <LoadingCellComponent />,\n };\n\n return loadingColumn;\n })\n : [],\n [columns, loading, showLoadingState],\n );\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n // @ts-ignore\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter,\n TableState,\n UsePaginationInstanceProps,\n UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState,\n UseSortByColumnProps,\n UseRowSelectRowProps,\n UseSortByInstanceProps,\n UseSortByOptions,\n UseTableOptions,\n HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[];\n loadingData: any[];\n};\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom',\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement;\n parentElementId: string;\n labelPerPage?: string;\n pageSizes?: Array<string | number>;\n pageIndex: number;\n perPage: number;\n totalPages: number;\n totalItems: number;\n canNextPage: boolean;\n canPreviousPage: boolean;\n nextPageHandler: () => void;\n previousPageHandler: () => void;\n setPageSize: (size: number) => void;\n gotoPage: (page: number) => void;\n};\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement;\n pageSize: number;\n pageIndex: number;\n pageCount: number;\n};\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>;\n data: [];\n totalItems?: number;\n PaginationComponent: React.FunctionComponent<PaginationProps>;\n initialState: Partial<TableState<DefaultObject>>;\n fetchData?: (params: {pageIndex: number; pageSize: number}) => void;\n onSortedChange?: (id: string, isDesc: boolean) => void;\n isLoading?: boolean;\n footerPlacement?: Array<FOOTER_PLACEMENT>;\n hasDefaultPagination?: boolean;\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void;\n controlledPagination?: ControlledPagination;\n loadingMessage?: string;\n labelPerPage?: string;\n parentElementId?: string;\n tableContentId?: string;\n getRowPreProps?: (row: Row) => DefaultObject;\n getTableProps?: TableGetter;\n getHeaderGroupProps?: ElementGetter;\n getHeaderProps?: ElementGetter;\n getRowProps?: ElementGetter;\n getCellProps?: ElementGetter;\n getFooterProps?: ElementGetter;\n getFooterGroupProps?: ElementGetter;\n showLoadingState?: boolean;\n LoadingCellComponent?: FunctionComponent<DefaultObject>;\n noDataMessage?: string | ReactElement;\n rowSubComponent?: (row: StandardRow) => ReactElement;\n isEnableRowSelect?: (original: DefaultObject) => boolean;\n};\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>;\n data: Array<DefaultObject>;\n initialState: {\n pageIndex?: number;\n pageSize?: number;\n };\n disableSortRemove: boolean;\n disableMultiSort: boolean;\n disableMultiRemove: boolean;\n manualSortBy?: boolean;\n autoResetPage?: boolean;\n manualPagination?: boolean;\n pageCount?: number;\n};\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>;\n cell?: Cell;\n};\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>;\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>;\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>;\n\nexport type ElementHeaderFooterPropGetter =\n | FooterGroupPropGetter<DefaultObject>\n | HeaderGroupPropGetter<DefaultObject>\n | FooterPropGetter<DefaultObject>;\n\nexport type GetTableContainerPropsGetter = (\n userGetter?: TableGetter,\n getter?: TableGetter,\n) => TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>;\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T;\n\nexport type GetTableElementInternalPropsGetter = (\n internalProps: DefaultObject,\n userGetter?: ElementGetter,\n getter?: ElementGetter,\n) => HeaderPropGetter<DefaultObject>;\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>;\n\nexport type StandardColumn = Column<DefaultObject>;\n\nexport type StandardRow = Row<DefaultObject> & {isExpanded?: boolean};\n\nexport type SelectableRow = Row<{id: string}> & UseRowSelectRowProps<DefaultObject>;\n\nexport type StandardCell = Cell<DefaultObject>;\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>;\n\nexport type StandardHooks = Hooks<DefaultObject>;\n\nexport type TableHooksInstanceProps = UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> & {\n state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>;\n };\n\nexport type TableOptionsProps = UseTableOptions<DefaultObject> &\n UseSortByOptions<DefaultObject> &\n UsePaginationOptions<DefaultObject> & {\n initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>>;\n };\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps: GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n};\n\nexport const getTableRowProps: GetTableElementPropsGetter<ElementRowPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n};\n\nexport const getTableCellProps: GetTableElementPropsGetter<ElementCellPropGetter> = (\n userGetter,\n getter = defaultGetter,\n) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementInternalProps: GetTableElementInternalPropsGetter = (\n internalProps,\n userGetter,\n getter = defaultGetter,\n) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n};\n","/* eslint max-len: off */\nimport styled, {keyframes, css, CSSObject} from 'styled-components';\nimport {fontNormal, white, black, spacing, gray80, gray95} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n\n ${(props: {isLoading: boolean}) =>\n props.isLoading &&\n css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n\n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.2);\n transition: 0.3s opacity;\n }\n\n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n\n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n\n ${({align}: {align?: CSSObject; colSpan?: number}) =>\n align &&\n css`\n text-align: ${align};\n `}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n\n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n\nexport const TResizer = styled.div`\n display: inline-block;\n position: absolute;\n right: 5px;\n top: 0;\n z-index: 1;\n touch-action: none;\n\n &:after {\n content: '↔';\n position: absolute;\n right: 0;\n top: 0;\n }\n`;\n","import React, {FunctionComponent, useEffect, useMemo, useRef} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useExpanded,\n useFlexLayout,\n useResizeColumns,\n Column,\n} from 'react-table';\n\nimport {ArrowDown, ArrowUp, COLOR, SIZE} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot as _TableRoot,\n TableWrapper as _TableWrapper,\n TableContent as _TableContent,\n HeadCell as _HeadCell,\n TableLoading as _TableLoading,\n TableLoadingInner as _TableLoadingInner,\n TD as _TD,\n TableCore as _TableCore,\n THead as _THead,\n TR as _TR,\n TH as _TH,\n TBody as _TBody,\n TRGroup as _TRGroup,\n TFoot as _TFoot,\n EmptyStateCell as _EmptyStateCell,\n TResizer as _TResizer,\n} from './style';\n\nconst TableRoot = _TableRoot as unknown as React.FunctionComponent<DefaultObject>;\nconst TableWrapper = _TableWrapper as unknown as React.FunctionComponent<DefaultObject>;\nconst TableContent = _TableContent as unknown as React.FunctionComponent<DefaultObject>;\nconst HeadCell = _HeadCell as unknown as React.FunctionComponent<DefaultObject>;\nconst TableLoading = _TableLoading as unknown as React.FunctionComponent<DefaultObject>;\nconst TableLoadingInner = _TableLoadingInner as unknown as React.FunctionComponent<DefaultObject>;\nconst TD = _TD as unknown as React.FunctionComponent<DefaultObject>;\nconst TableCore = _TableCore as unknown as React.FunctionComponent<DefaultObject>;\nconst THead = _THead as unknown as React.FunctionComponent<DefaultObject>;\nconst TR = _TR as unknown as React.FunctionComponent<DefaultObject>;\nconst TH = _TH as unknown as React.FunctionComponent<DefaultObject>;\nconst TBody = _TBody as unknown as React.FunctionComponent<DefaultObject>;\nconst TRGroup = _TRGroup as unknown as React.FunctionComponent<DefaultObject>;\nconst TFoot = _TFoot as unknown as React.FunctionComponent<DefaultObject>;\nconst EmptyStateCell = _EmptyStateCell as unknown as React.FunctionComponent<DefaultObject>;\nconst TResizer = _TResizer as unknown as React.FunctionComponent<DefaultObject>;\n\nconst isEnableRowSelectDefault: () => boolean = () => true;\nconst selectColumnPropsDefault = {};\nconst getRowPrePropsDefault: () => DefaultObject = () => ({});\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n initialState: {},\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: getRowPrePropsDefault,\n isEnableRowSelect: isEnableRowSelectDefault,\n selectColumnProps: selectColumnPropsDefault,\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction renderResizer(column) {\n if (column.isResizable) {\n return (\n <TResizer\n {...column.getResizerProps()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n );\n }\n\n return null;\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDown size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp size={SIZE.SMALL} color={COLOR.GRAY_DARK} />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n rowSubComponent,\n isEnableRowSelect,\n selectColumnProps,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState,\n isLoading,\n controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE,\n memoColumns,\n LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: TableHooksInstanceProps & {toggleAllPageRowsSelected: () => void}) => {\n const {getToggleAllPageRowsSelectedProps, toggleAllPageRowsSelected, page} = instance;\n\n const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllPageRowsSelected}\n isChecked={getToggleAllPageRowsSelectedProps().checked}\n isDisabled={isDisabledAllRows}\n />\n );\n },\n Cell: ({row}: {row: SelectableRow}) => {\n const {id, original, toggleRowSelected, getToggleRowSelectedProps} = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n const isEnabled = isEnableRowSelect(row.original);\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isDisabled={!isEnabled}\n isChecked={isEnabled && getToggleRowSelectedProps().checked}\n />\n );\n },\n ...selectColumnProps,\n };\n\n // @ts-ignore\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [newColumn, ...tableColumns]);\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect,\n useSelect,\n useResizeColumns,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect));\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n throw new Error(\n 'You have to pass either hasDefaultPagination true boolean prop or ' +\n 'pass fetchData callback and controlledPagination data',\n );\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = <PaginationComponent {...paginationData} />;\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([\n {\n id: column.id,\n desc: !column.isSortedDesc,\n },\n ]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = hasControlledPagination || hasDefaultPagination ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>{loadingMessage}</TableLoadingInner>\n </TableLoading>\n <TableWrapper ref={tableWrapperRef} className=\"table-wrapper\">\n <TableContent id={tableContentId} className=\"table-content\">\n <TableCore {..._getTableProps(getTableBodyProps(getTableProps))} ref={tableRef}>\n <THead className=\"table-head\" data-role=\"table-head\">\n {headerGroups.map((headerGroup) => (\n <TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(column) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(\n getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter),\n )}\n >\n {getHeadContent(column)}\n {renderResizer(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"table-footer-top\" data-role=\"table-footer-top\">\n {footerGroups.map((group) => (\n <TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>\n {group.headers.map((column) => (\n <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n <TBody className=\"table-body\" data-role=\"table-body\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n const cell = row.cells[0].render('Cell') as React.ReactNode;\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}\n >\n <strong>{cell}</strong>\n </TD>\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment key={`group_${row.index}`}>\n <TRGroup>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n {row?.isExpanded && rowSubComponent && rowSubComponent(row)}\n </React.Fragment>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"table-footer-bottom\" data-role=\"table-footer-bottom\">\n {footerGroups.map((group) => (\n <TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>\n {group.headers.map((column) => (\n <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>\n {column.render('Footer')}\n </TD>\n ))}\n </TR>\n ))}\n </TFoot>\n )}\n </TableCore>\n </TableContent>\n </TableWrapper>\n {!isLoading && !data.length && noDataMessage}\n {pagination}\n </TableRoot>\n );\n};\n\nTable.defaultProps = defaultProps;\n\nexport {Table};\n"],"names":["useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","loadingColumns","useMemo","map","column","loadingColumn","_extends","Cell","React","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","apply","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","_tableRef$current","addEventListener","_tableRef$current2","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","_ref","_cell$column","cell","align","mainCellGetter","_ref2","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","_templateObject","_taggedTemplateLiteralLoose","TableLoading","styled","div","_templateObject2","isLoading","css","_templateObject3","TableLoadingInner","_templateObject4","TableWrapper","_templateObject5","TableRoot","_templateObject6","fontNormal","TableContent","_templateObject7","TableCore","_templateObject8","HeadCell","_templateObject9","TD","_templateObject0","_templateObject1","EmptyStateCell","_templateObject10","spacing","gray95","white","TH","_templateObject11","THead","_templateObject12","black","TRGroup","_templateObject13","TR","_templateObject14","TBody","_templateObject15","gray80","TFoot","_templateObject16","TResizer","_templateObject17","_TableRoot","_TableWrapper","_TableContent","_HeadCell","_TableLoading","_TableLoadingInner","_TD","_TableCore","_THead","_TR","_TH","_TBody","_TRGroup","_TFoot","_EmptyStateCell","_TResizer","isEnableRowSelectDefault","selectColumnPropsDefault","getRowPrePropsDefault","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","initialState","getRowPreProps","isEnableRowSelect","selectColumnProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","renderResizer","isResizable","getResizerProps","onClick","e","preventDefault","stopPropagation","getHeadContent","isSorted","isSortedDesc","render","ArrowDown","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","rowSubComponent","memoColumns","_useLoadingState","_controlledPagination","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","_controlledPagination2","_controlledPagination3","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","Header","instance","getToggleAllPageRowsSelectedProps","toggleAllPageRowsSelected","page","isDisabledAllRows","original","filter","Checkbox","elementId","onChange","isChecked","checked","isDisabled","row","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","isEnabled","visibleColumns","tableColumns","concat","_useTable","useTable","useFlexLayout","useSortBy","useExpanded","usePagination","useRowSelect","useResizeColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","_objectWithoutPropertiesLoose","_excluded","selectedFlatRows","setSortBy","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","_rest$state","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","_getRowPreProps","isDelimiterTd","cells","Fragment","key","index","colSpan","isExpanded","BOTTOM"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@propellerads/table",
3
- "version": "4.9.0",
3
+ "version": "5.0.2",
4
4
  "repository": "https://github.com/propellerads/ui-components",
5
5
  "author": "i.pasyuk@propellerads.net",
6
6
  "license": "MIT",
@@ -15,30 +15,26 @@
15
15
  "node": ">=10"
16
16
  },
17
17
  "scripts": {
18
- "prepublishOnly": "tsdx build",
19
18
  "start": "tsdx watch",
20
19
  "build": "tsdx build"
21
20
  },
22
21
  "peerDependencies": {
23
- "@types/react": "^17.0.2",
24
- "@types/react-dom": "^17.0.2",
25
- "@types/styled-components": "5.1.1",
26
- "react": "^17.0.2",
27
- "react-dom": "^17.0.2",
22
+ "react": ">=18 <19",
28
23
  "styled-components": "5.1.1"
29
24
  },
30
25
  "module": "dist/table.esm.js",
31
26
  "devDependencies": {
32
- "tsdx": "^0.13.3",
33
- "tslib": "^2.4.0",
34
- "typescript": "^4.0.2"
27
+ "tsdx": "0.13.3",
28
+ "tslib": "2.4.0",
29
+ "typescript": "4.9.5",
30
+ "@types/react": "18.3.24",
31
+ "@types/styled-components": "5.1.34"
35
32
  },
36
33
  "dependencies": {
37
- "@propellerads/icon": "^5.7.0",
38
- "@propellerads/input-checkbox": "^2.3.1",
39
- "@propellerads/stylevariables": "^1.2.0",
40
- "@types/react-table": "^7.7.12",
41
- "react-table": "^7.8.0"
42
- },
43
- "gitHead": "f405e66536244e955229a57dea53bf678ffe9b02"
34
+ "@types/react-table": "7.7.12",
35
+ "@propellerads/stylevariables": "^2.0.1",
36
+ "@propellerads/icon": "^6.0.2",
37
+ "@propellerads/input-checkbox": "^3.1.1",
38
+ "react-table": "7.8.0"
39
+ }
44
40
  }
package/src/index.tsx CHANGED
@@ -1,6 +1,4 @@
1
- import React, {
2
- FunctionComponent, useEffect, useMemo, useRef,
3
- } from 'react';
1
+ import React, {FunctionComponent, useEffect, useMemo, useRef} from 'react';
4
2
  import {
5
3
  useSortBy,
6
4
  useTable,
@@ -12,9 +10,7 @@ import {
12
10
  Column,
13
11
  } from 'react-table';
14
12
 
15
- import {
16
- ArrowDown, ArrowUp, COLOR, SIZE,
17
- } from '@propellerads/icon';
13
+ import {ArrowDown, ArrowUp, COLOR, SIZE} from '@propellerads/icon';
18
14
  import Checkbox from '@propellerads/input-checkbox';
19
15
 
20
16
  import useLoadingState from './useLoadingState';
@@ -46,24 +42,41 @@ import {
46
42
  } from './propsGetter';
47
43
 
48
44
  import {
49
- TableRoot,
50
- TableWrapper,
51
- TableContent,
52
- HeadCell,
53
- TableLoading,
54
- TableLoadingInner,
55
- TD,
56
- TableCore,
57
- THead,
58
- TR,
59
- TH,
60
- TBody,
61
- TRGroup,
62
- TFoot,
63
- EmptyStateCell,
64
- TResizer,
45
+ TableRoot as _TableRoot,
46
+ TableWrapper as _TableWrapper,
47
+ TableContent as _TableContent,
48
+ HeadCell as _HeadCell,
49
+ TableLoading as _TableLoading,
50
+ TableLoadingInner as _TableLoadingInner,
51
+ TD as _TD,
52
+ TableCore as _TableCore,
53
+ THead as _THead,
54
+ TR as _TR,
55
+ TH as _TH,
56
+ TBody as _TBody,
57
+ TRGroup as _TRGroup,
58
+ TFoot as _TFoot,
59
+ EmptyStateCell as _EmptyStateCell,
60
+ TResizer as _TResizer,
65
61
  } from './style';
66
62
 
63
+ const TableRoot = _TableRoot as unknown as React.FunctionComponent<DefaultObject>;
64
+ const TableWrapper = _TableWrapper as unknown as React.FunctionComponent<DefaultObject>;
65
+ const TableContent = _TableContent as unknown as React.FunctionComponent<DefaultObject>;
66
+ const HeadCell = _HeadCell as unknown as React.FunctionComponent<DefaultObject>;
67
+ const TableLoading = _TableLoading as unknown as React.FunctionComponent<DefaultObject>;
68
+ const TableLoadingInner = _TableLoadingInner as unknown as React.FunctionComponent<DefaultObject>;
69
+ const TD = _TD as unknown as React.FunctionComponent<DefaultObject>;
70
+ const TableCore = _TableCore as unknown as React.FunctionComponent<DefaultObject>;
71
+ const THead = _THead as unknown as React.FunctionComponent<DefaultObject>;
72
+ const TR = _TR as unknown as React.FunctionComponent<DefaultObject>;
73
+ const TH = _TH as unknown as React.FunctionComponent<DefaultObject>;
74
+ const TBody = _TBody as unknown as React.FunctionComponent<DefaultObject>;
75
+ const TRGroup = _TRGroup as unknown as React.FunctionComponent<DefaultObject>;
76
+ const TFoot = _TFoot as unknown as React.FunctionComponent<DefaultObject>;
77
+ const EmptyStateCell = _EmptyStateCell as unknown as React.FunctionComponent<DefaultObject>;
78
+ const TResizer = _TResizer as unknown as React.FunctionComponent<DefaultObject>;
79
+
67
80
  const isEnableRowSelectDefault: () => boolean = () => true;
68
81
  const selectColumnPropsDefault = {};
69
82
  const getRowPrePropsDefault: () => DefaultObject = () => ({});
@@ -183,14 +196,10 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
183
196
  const showLoading = showLoadingState && isLoading;
184
197
  const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);
185
198
  const hasManualSortBy = onSortedChange && isFunction(onSortedChange);
186
- const hasControlledPagination = fetchData
187
- && controlledPagination
188
- && Object.keys(controlledPagination).length > 0;
199
+ const hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;
189
200
 
190
201
  const options: TableOptionsProps = {
191
- columns: showLoading
192
- ? (loadingColumns as Column<DefaultObject>[])
193
- : memoColumns,
202
+ columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : memoColumns,
194
203
  data: showLoading ? loadingData : data,
195
204
  initialState,
196
205
  disableSortRemove,
@@ -204,9 +213,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
204
213
 
205
214
  if (hasControlledPagination) {
206
215
  if (typeof controlledPagination?.pageCount === 'undefined') {
207
- throw new Error(
208
- 'You have to pass pageCount in controlledPagination data',
209
- );
216
+ throw new Error('You have to pass pageCount in controlledPagination data');
210
217
  }
211
218
 
212
219
  options.initialState = {
@@ -228,12 +235,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
228
235
  const newColumn = {
229
236
  id: 'selection',
230
237
  disableSortBy: true,
231
- Header: (instance: TableHooksInstanceProps & { toggleAllPageRowsSelected: () => void}) => {
232
- const {
233
- getToggleAllPageRowsSelectedProps,
234
- toggleAllPageRowsSelected,
235
- page,
236
- } = instance;
238
+ Header: (instance: TableHooksInstanceProps & {toggleAllPageRowsSelected: () => void}) => {
239
+ const {getToggleAllPageRowsSelectedProps, toggleAllPageRowsSelected, page} = instance;
237
240
 
238
241
  const isDisabledAllRows = page.map(({original}) => original).filter(isEnableRowSelect).length === 0;
239
242
 
@@ -246,13 +249,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
246
249
  />
247
250
  );
248
251
  },
249
- Cell: ({row}: { row: SelectableRow }) => {
250
- const {
251
- id,
252
- original,
253
- toggleRowSelected,
254
- getToggleRowSelectedProps,
255
- } = row;
252
+ Cell: ({row}: {row: SelectableRow}) => {
253
+ const {id, original, toggleRowSelected, getToggleRowSelectedProps} = row;
256
254
 
257
255
  const elementId = Number.isInteger(original.id) ? original.id : id;
258
256
  const isEnabled = isEnableRowSelect(row.original);
@@ -269,10 +267,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
269
267
  ...selectColumnProps,
270
268
  };
271
269
 
272
- hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [
273
- newColumn,
274
- ...tableColumns,
275
- ]);
270
+ // @ts-ignore
271
+ hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => [newColumn, ...tableColumns]);
276
272
  };
277
273
 
278
274
  const {
@@ -326,9 +322,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
326
322
 
327
323
  useEffect(() => {
328
324
  if (hasSelectedRowsAbility) {
329
- onSelectRowsChange?.(
330
- selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect),
331
- );
325
+ onSelectRowsChange?.(selectedFlatRows?.map((row: StandardRow) => row.original).filter(isEnableRowSelect));
332
326
  }
333
327
  }, [selectedRowIds]);
334
328
 
@@ -336,8 +330,8 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
336
330
 
337
331
  if (hasDefaultPagination && hasControlledPagination) {
338
332
  throw new Error(
339
- 'You have to pass either hasDefaultPagination true boolean prop or '
340
- + 'pass fetchData callback and controlledPagination data',
333
+ 'You have to pass either hasDefaultPagination true boolean prop or ' +
334
+ 'pass fetchData callback and controlledPagination data',
341
335
  );
342
336
  }
343
337
 
@@ -419,38 +413,22 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
419
413
 
420
414
  return (
421
415
  <TableRoot className="table-root">
422
- <TableLoading
423
- isLoading={!showLoadingState && isLoading}
424
- className="table-loading"
425
- >
416
+ <TableLoading isLoading={!showLoadingState && isLoading} className="table-loading">
426
417
  <TableLoadingInner>{loadingMessage}</TableLoadingInner>
427
418
  </TableLoading>
428
419
  <TableWrapper ref={tableWrapperRef} className="table-wrapper">
429
420
  <TableContent id={tableContentId} className="table-content">
430
- <TableCore
431
- {..._getTableProps(getTableBodyProps(getTableProps))}
432
- ref={tableRef}
433
- >
421
+ <TableCore {..._getTableProps(getTableBodyProps(getTableProps))} ref={tableRef}>
434
422
  <THead className="table-head" data-role="table-head">
435
423
  {headerGroups.map((headerGroup) => (
436
- <TR
437
- {...headerGroup.getHeaderGroupProps(
438
- getTableElementProps(getHeaderGroupProps),
439
- )}
440
- >
424
+ <TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>
441
425
  {headerGroup.headers.map((column) => {
442
- const headerProps = extendSortByProps(
443
- column,
444
- ) as DefaultObject;
426
+ const headerProps = extendSortByProps(column) as DefaultObject;
445
427
 
446
428
  return (
447
429
  <TH
448
430
  {...column.getHeaderProps(
449
- getTableElementInternalProps(
450
- headerProps,
451
- getHeaderProps,
452
- mainCellGetter,
453
- ),
431
+ getTableElementInternalProps(headerProps, getHeaderProps, mainCellGetter),
454
432
  )}
455
433
  >
456
434
  {getHeadContent(column)}
@@ -464,17 +442,9 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
464
442
  {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (
465
443
  <TFoot className="table-footer-top" data-role="table-footer-top">
466
444
  {footerGroups.map((group) => (
467
- <TR
468
- {...group.getFooterGroupProps(
469
- getTableElementProps(getFooterGroupProps),
470
- )}
471
- >
445
+ <TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>
472
446
  {group.headers.map((column) => (
473
- <TD
474
- {...column.getFooterProps(
475
- getTableElementProps(getFooterProps, mainCellGetter),
476
- )}
477
- >
447
+ <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>
478
448
  {column.render('Footer')}
479
449
  </TD>
480
450
  ))}
@@ -488,17 +458,17 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
488
458
  const {isDelimiterTd} = getRowPreProps(row);
489
459
 
490
460
  if (isDelimiterTd) {
461
+ const cell = row.cells[0].render('Cell') as React.ReactNode;
462
+
491
463
  return (
492
464
  <React.Fragment key={`group_${row.index}`}>
493
465
  <TRGroup>
494
466
  <TR {...row.getRowProps(getTableRowProps(getRowProps))}>
495
467
  <TD
496
468
  colSpan={visibleColumns.length}
497
- {...row.cells[0].getCellProps(
498
- getTableCellProps(getCellProps, cellGetter),
499
- )}
469
+ {...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}
500
470
  >
501
- <strong>{row.cells[0].render('Cell')}</strong>
471
+ <strong>{cell}</strong>
502
472
  </TD>
503
473
  </TR>
504
474
  </TRGroup>
@@ -512,11 +482,7 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
512
482
  <TRGroup>
513
483
  <TR {...row.getRowProps(getTableRowProps(getRowProps))}>
514
484
  {row.cells.map((cell: StandardCell) => (
515
- <TD
516
- {...cell.getCellProps(
517
- getTableCellProps(getCellProps, cellGetter),
518
- )}
519
- >
485
+ <TD {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>
520
486
  {cell.render('Cell')}
521
487
  </TD>
522
488
  ))}
@@ -530,17 +496,9 @@ const Table: FunctionComponent<TableProps & DefaultProps> = (props) => {
530
496
  {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (
531
497
  <TFoot className="table-footer-bottom" data-role="table-footer-bottom">
532
498
  {footerGroups.map((group) => (
533
- <TR
534
- {...group.getFooterGroupProps(
535
- getTableElementProps(getFooterGroupProps),
536
- )}
537
- >
499
+ <TR {...group.getFooterGroupProps(getTableElementProps(getFooterGroupProps))}>
538
500
  {group.headers.map((column) => (
539
- <TD
540
- {...column.getFooterProps(
541
- getTableElementProps(getFooterProps, mainCellGetter),
542
- )}
543
- >
501
+ <TD {...column.getFooterProps(getTableElementProps(getFooterProps, mainCellGetter))}>
544
502
  {column.render('Footer')}
545
503
  </TD>
546
504
  ))}