@propellerads/table 4.9.0 → 5.0.1

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