@propellerads/table 3.0.0 → 4.3.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.cjs.development.js","sources":["../src/style.tsx","../src/useLoadingState.tsx","../src/index.tsx"],"sourcesContent":["/* eslint max-len: off */\nimport styled, {createGlobalStyle, keyframes} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n semiWhite,\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 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\nconst CommonStyles = createGlobalStyle`\n\n.ReactTable {\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n\n .pagination-bottom {\n padding: 24px 0;\n }\n\n &__header-cell_right {\n text-align: right !important;\n flex-direction: row !important;\n justify-content: flex-end !important;\n\n &:before {\n margin-left: 0 !important;\n margin-right: 4px !important;\n }\n }\n\n .rt-thead {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n }\n\n .rt-table {\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n border-collapse: collapse;\n overflow: auto;\n }\n}\n\n.ReactTable .rt-thead.-filters input,\n.ReactTable .rt-thead.-filters select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ${white};\n padding: 2px 7px;\n margin: 4px 0;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .rt-thead .rt-th,\n.ReactTable .rt-thead .rt-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.ReactTable .rt-thead .rt-th {\n display: flex;\n}\n\n.ReactTable .rt-thead .rt-th.-cursor-pointer,\n.ReactTable .rt-thead .rt-td.-cursor-pointer {\n cursor: pointer;\n transition: 220ms ease;\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n\n &:before {\n transition: 220ms ease;\n content: '';\n min-width: 12px;\n width: 12px;\n height: 12px;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAABGdBTUEAALGPC/xhBQAAAlZJREFUWAntVklSwzAQtJ1ck/AYtpA78COKLEWoLHe+wx3C8hggOSehW7iNrMgb5gIVVblmNOrpGWuksYMgHv1+f0s1kkEyGg6HY00SSaNcEmO2YkMTnUoycX3dhZ28XAcD8KXlMhlHHzDF6PMql0OKxpkUMjQZNwzD3mw2e7SdB4PB23a7PQhpjEFdGBbz+TzE/B3mDnUDEIgSbEsA21zkPDXIxCdlzJuUcSh8y7wAXKtN0CQLU/VtJdeyBrcZPneGIIqi281m8wCioNFonE0mk0WWIzCmBNjpALUbp7aapw1EN3QGu6kbdbt2mlNypAi+TEFgE8lG6a2tDXD1wvPvOrjzv3EOah+k/0AQ13rpljBvjntwyBITE8VHtwVDKZLRaHSEe/BKZwaPrONZSILIx+v1+sVExgWcTqdjUwWbBKAPAtxBZ0R+pp23l85QvxuKSNgQXRKkfeJzJsHObdTmqLsSpGFHlm2HgAsiEYjS50y7l4ALNkmWM3G5gyQsVR4oM4M8J67ZGXKuIlCvMmpfxirBfNh9AvsdSHYAp/oaLaPnOyi/aUObYiu+EmfIe6q/idi4Qhu6dH8Z5SBZ9RqyjSPOPXrigTjYYCLTkqHICNkCiP9JSzh1LfuPVAYG1zs/A25wxk41Is9uMOgKP2wX7g9b0Q7En497+HdIouG21VQCAvkS4dcB6xcozRNxWQmUDaxY3gS0mJUI3uIcW2oSERa7dBrXuC0bpfvG9hr13AQE9iWitSxZFFh+pRIQuEwiZQOLs1ICcvIlUjWwuGpJJsKnDskn5F1o5Z7NGz4AAAAASUVORK5CYII=');\n background-size: contain;\n opacity: 0;\n margin-left: 4px;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-asc,\n.ReactTable .rt-thead .rt-td.-sort-asc {\n padding-left: 4px;\n\n &:before {\n transform: rotate(180deg);\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-desc,\n.ReactTable .rt-thead .rt-td.-sort-desc {\n padding-left: 4px;\n\n &:before {\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th:last-child,\n.ReactTable .rt-thead .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-thead .rt-resizable-header {\n overflow: visible;\n display: flex;\n align-items: center;\n}\n\n.ReactTable .rt-thead .rt-resizable-header:last-child {\n overflow: hidden;\n}\n\n.ReactTable .rt-thead .rt-resizable-header-content {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ReactTable .rt-thead .rt-header-pivot {\n border-right-color: #f7f7f7;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after,\n.ReactTable .rt-thead .rt-header-pivot:before {\n left: 100%;\n top: 50%;\n border: solid transparent;\n content: ' ';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after {\n border-color: rgba(255, 255, 255, 0);\n border-left-color: ${white};\n border-width: 8px;\n margin-top: -8px;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:before {\n border-color: rgba(102, 102, 102, 0);\n border-left-color: #f7f7f7;\n border-width: 10px;\n margin-top: -10px;\n}\n\n.ReactTable .rt-tbody {\n flex: 99999 1 auto;\n display: flex;\n flex-direction: column;\n overflow: auto;\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n}\n\n.ReactTable .rt-tbody .rt-tr-group {\n box-shadow: inset 0 -1px 0 0 ${gray95};\n}\n\n.ReactTable .rt-tbody .rt-tr-group:hover {\n background-color: ${semiWhite};\n transition: 0.2s ease-in-out;\n}\n\n.ReactTable .rt-tbody .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-tbody .rt-expandable {\n cursor: pointer;\n text-overflow: clip;\n}\n\n.ReactTable .rt-tr-group {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.ReactTable .rt-tr {\n flex: 1 0 auto;\n display: inline-flex;\n padding: 0;\n align-items: center;\n}\n\n.ReactTable .rt-th,\n.ReactTable .rt-td {\n flex: 1 0 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding: 7px 4px;\n overflow: hidden;\n transition: 0.3s ease;\n transition-property: width, min-width, padding, opacity;\n line-height: 1.3rem;\n}\n\n.ReactTable .rt-th.-hidden,\n.ReactTable .rt-td.-hidden {\n width: 0 !important;\n min-width: 0 !important;\n padding: 0 !important;\n border: 0 !important;\n opacity: 0 !important;\n}\n\n.ReactTable .rt-expander {\n display: inline-block;\n position: relative;\n color: transparent;\n margin: 0 10px;\n}\n\n.ReactTable .rt-expander:after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-90deg);\n border-left: 5.04px solid transparent;\n border-right: 5.04px solid transparent;\n border-top: 7px solid rgba(0, 0, 0, 0.8);\n transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n cursor: pointer;\n}\n\n.ReactTable .rt-expander.-open:after {\n transform: translate(-50%, -50%) rotate(0);\n}\n\n.ReactTable .rt-resizer {\n display: inline-block;\n position: absolute;\n width: 36px;\n top: 0;\n bottom: 0;\n right: -18px;\n cursor: col-resize;\n z-index: 10;\n}\n\n.ReactTable .rt-tfoot {\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n.ReactTable .rt-tfoot .rt-td {\n}\n\n.ReactTable .rt-tfoot .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable.-striped .rt-tr.-odd {\n background: rgba(0, 0, 0, 0.03);\n}\n\n.ReactTable.-highlight .rt-tbody .rt-tr:not(.-padRow):hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.ReactTable .-pagination {\n z-index: 1;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n flex-wrap: wrap;\n padding: 3px;\n}\n\n.ReactTable .-pagination input,\n.ReactTable .-pagination select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ${white};\n padding: 5px 7px;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .-pagination .-btn {\n appearance: none;\n display: block;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 3px;\n padding: 6px;\n font-size: 1em;\n color: rgba(0, 0, 0, 0.6);\n transition: all 0.1s ease;\n cursor: pointer;\n outline: none;\n background-color: white;\n color: #0080ff;\n box-shadow: inset 0 0 0 1px #0080ff;\n}\n\n.ReactTable .-pagination .-btn[disabled] {\n opacity: 0;\n cursor: default;\n}\n\n.ReactTable .-pagination .-btn:not([disabled]):hover {\n}\n\n.ReactTable .-pagination .-previous,\n.ReactTable .-pagination .-next {\n flex: 1;\n text-align: center;\n}\n\n.ReactTable .-pagination .-center {\n flex: 1.5;\n text-align: center;\n margin-bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-around;\n}\n\n.ReactTable .-pagination .-pageInfo {\n display: inline-block;\n margin: 3px 10px;\n white-space: nowrap;\n}\n\n.ReactTable .-pagination .-pageJump {\n display: inline-block;\n}\n\n.ReactTable .-pagination .-pageJump input {\n width: 70px;\n text-align: center;\n}\n\n.ReactTable .-pagination .-pageSizeOptions {\n margin: 3px 10px;\n}\n\n.ReactTable .rt-noData {\n display: flex;\n justify-content: center;\n background: transparent;\n transition: all 0.3s ease;\n z-index: 1;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.5);\n}\n\n.ReactTable .-loading {\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\n.ReactTable .-loading > div {\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n font-size: 15px;\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\n.ReactTable .-loading.-active {\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n}\n\n.ReactTable .-loading.-active > div {\n transform: translateY(50%);\n}\n\n.ReactTable .rt-resizing .rt-th,\n.ReactTable .rt-resizing .rt-td {\n transition: none !important;\n cursor: col-resize;\n user-select: none;\n}\n`;\n\nexport {CommonStyles};\n","import React, {useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {LoadingState} from './types';\nimport {EmptyStateCell} from './style';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column[],\n LoadingCellComponent = (props: any) => <EmptyStateCell {...props} />,\n): LoadingState => {\n const loadingColumns: Column[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map(({maxWidth, width, Header}: Column, key: number) => {\n const column: Column = {\n Cell: LoadingCellComponent,\n accessor: `empty_${key}`,\n filterable: false,\n sortable: false,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.maxWidth = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\n }) : []), [LoadingCellComponent, columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: any = {};\n const dataArray: any[] = [];\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","import React from 'react';\nimport ReactTable, {TableProps} from 'react-table';\n\nimport {CommonStyles} from './style';\n\nimport useLoadingState from './useLoadingState';\n\nconst Table = ({\n data,\n columns = [],\n defaultPageSize = 20,\n loading = false,\n defaultSorted = [],\n pageText = 'page',\n ofText = 'of',\n previousText = 'Previous page',\n nextText = 'Next page',\n loadingText = 'Loading...',\n noDataText = 'Woops, no data.',\n getTrProps,\n manual = false,\n filterable = true,\n showPagination,\n showPageSizeOptions = false,\n showPageJump = false,\n style = {},\n ExpanderComponent,\n SubComponent,\n resizable = false,\n showLoadingState = false,\n LoadingCellComponent,\n defaultFilterMethod = (filter, row) => String(row[filter.id])\n .toLowerCase()\n .includes(filter.value.toLowerCase()),\n ...rest\n}: Partial<TableProps> & { showLoadingState: boolean, LoadingCellComponent?: (props: any) => React.ReactElement}) => {\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState, loading, defaultPageSize, columns, LoadingCellComponent,\n );\n const showLoading = showLoadingState && loading;\n return (\n <>\n <ReactTable\n data={showLoading ? loadingData : data}\n columns={showLoading ? loadingColumns : columns}\n defaultPageSize={defaultPageSize}\n filterable={filterable}\n defaultSorted={defaultSorted}\n showPagination={!showLoading && showPagination}\n showPageSizeOptions={showPageSizeOptions}\n showPageJump={showPageJump}\n loading={!showLoadingState && loading}\n resizable={resizable}\n minRows={0}\n pageText={pageText}\n ofText={ofText}\n previousText={previousText}\n nextText={nextText}\n loadingText={loadingText}\n noDataText={noDataText}\n defaultFilterMethod={defaultFilterMethod}\n getTrProps={getTrProps}\n manual={manual}\n style={style}\n ExpanderComponent={ExpanderComponent}\n SubComponent={SubComponent}\n {...rest}\n />\n <CommonStyles />\n </>\n );\n};\n\nTable.defaultProps = {\n LoadingCellComponent: undefined,\n};\n\nexport {Table};\n"],"names":["loadingAnimation","keyframes","EmptyStateCell","styled","div","spacing","gray95","white","CommonStyles","createGlobalStyle","fontNormal","black","gray80","semiWhite","useLoadingState","showLoadingState","loading","pageSize","columns","LoadingCellComponent","props","React","loadingColumns","useMemo","map","key","maxWidth","width","Header","column","Cell","accessor","filterable","sortable","loadingData","length","dataObject","dataArray","i","push","Table","data","defaultPageSize","defaultSorted","pageText","ofText","previousText","nextText","loadingText","noDataText","getTrProps","manual","showPagination","showPageSizeOptions","showPageJump","style","ExpanderComponent","SubComponent","resizable","defaultFilterMethod","filter","row","String","id","toLowerCase","includes","value","rest","showLoading","ReactTable","minRows","defaultProps","undefined"],"mappings":"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"}
1
+ {"version":3,"file":"table.cjs.development.js","sources":["../src/useLoadingState.tsx","../src/useTableShadow.tsx","../src/types.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx"],"sourcesContent":["import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map(({maxWidth, width, Header}: Column, key: number) => {\n const column: Column<DefaultObject> = {\n Cell: () => <LoadingCellComponent />,\n accessor: `empty_${key}`,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.width = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport {useEffect} from 'react';\n\nconst TABLE_SHADOW_CLASS_NAME = {\n LEFT: 'shadow_left',\n RIGHT: 'shadow_right',\n};\n\nfunction changeClassName(tableWrapperNode: Element, newClassNameList: string[]) {\n const {classList} = tableWrapperNode;\n\n classList.remove(TABLE_SHADOW_CLASS_NAME.LEFT, TABLE_SHADOW_CLASS_NAME.RIGHT);\n classList.add(...newClassNameList);\n}\n\nfunction calculateNewClassNames(tableNode, tableWrapperNode) {\n if (!tableNode || !tableWrapperNode) {\n return;\n }\n\n const tableRect = tableNode.getBoundingClientRect();\n const tableWrapperRect = tableWrapperNode.getBoundingClientRect();\n const newClassName = [];\n\n const tableRectLeft = Math.floor(tableRect.left);\n const tableRectRight = Math.floor(tableRect.right);\n const tableWrapperRectLeft = Math.floor(tableWrapperRect.left);\n const tableWrapperRectRight = Math.floor(tableWrapperRect.right);\n\n if (tableRectLeft < tableWrapperRectLeft) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.LEFT);\n }\n\n if (tableRectRight > tableWrapperRectRight) {\n newClassName.push(TABLE_SHADOW_CLASS_NAME.RIGHT);\n }\n\n changeClassName(tableWrapperNode, newClassName);\n}\n\nexport default (tableRef, tableWrapperRef) => {\n useEffect(() => {\n let ticking = false;\n\n function onMousewheel() {\n if (ticking) {\n return;\n }\n\n window.requestAnimationFrame(() => {\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n ticking = false;\n });\n\n ticking = true;\n }\n\n calculateNewClassNames(tableRef.current, tableWrapperRef.current);\n\n tableRef?.current?.addEventListener('mousewheel', onMousewheel);\n window.addEventListener('resize', onMousewheel);\n\n return () => {\n tableRef?.current?.removeEventListener('mousewheel', onMousewheel);\n window.removeEventListener('resize', onMousewheel);\n };\n }, [tableRef.current, tableWrapperRef.current]);\n};\n","import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject>\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","import {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n","import React, {\n FunctionComponent,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useFlexLayout,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDownFull, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n SelectableRowInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n} from './style';\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: () => ({}),\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDownFull\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState, isLoading, controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE, memoColumns, LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: SelectableRowInstanceProps) => {\n const {getToggleAllRowsSelectedProps, toggleAllRowsSelected} = instance;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllRowsSelected}\n isChecked={getToggleAllRowsSelectedProps().checked}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isChecked={getToggleRowSelectedProps().checked}\n />\n );\n },\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => ([\n newColumn,\n ...tableColumns,\n ]));\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n usePagination,\n useRowSelect,\n useSelect,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(selectedFlatRows?.map((row: StandardRow) => row.original));\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n // eslint-disable-next-line max-len\n throw new Error('You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data');\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = (\n <PaginationComponent {...paginationData} />\n );\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && !column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([{\n id: column.id,\n desc: !column.isSortedDesc,\n }]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = (hasControlledPagination || hasDefaultPagination) ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>\n {loadingMessage}\n </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\">\n {headerGroups.map((headerGroup) => (\n <TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(column) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(getTableElementInternalProps(\n headerProps, getHeaderProps, mainCellGetter,\n ))}\n >\n {getHeadContent(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"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\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <TRGroup key={`group_${row.index}`}>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n );\n }\n\n return (\n <TRGroup key={`group_${row.index}`}>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"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","key","maxWidth","width","Header","column","Cell","React","accessor","loadingData","length","dataObject","dataArray","i","push","TABLE_SHADOW_CLASS_NAME","LEFT","RIGHT","changeClassName","tableWrapperNode","newClassNameList","classList","remove","add","calculateNewClassNames","tableNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","tableRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","FOOTER_PLACEMENT","defaultGetter","props","cellGetter","cell","align","mainCellGetter","getTableProps","userGetter","getter","getTableElementProps","meta","getTableRowProps","getTableCellProps","getTableElementInternalProps","internalProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","getRowPreProps","noDataMessage","disableSortRemove","disableMultiSort","disabledMultiRemove","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","isFunction","reference","getHeadContent","isSorted","isSortedDesc","render","ArrowDownFull","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","Table","data","totalItems","fetchData","controlledPagination","initialState","onSortedChange","onSelectRowsChange","PaginationComponent","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","memoColumns","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useSelect","hooks","newColumn","id","disableSortBy","instance","getToggleAllRowsSelectedProps","toggleAllRowsSelected","Checkbox","elementId","onChange","isChecked","checked","row","original","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","visibleColumns","tableColumns","useTable","useFlexLayout","useSortBy","usePagination","useRowSelect","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","page","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","useRef","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","extendSortByProps","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","desc","tBodyTr","className","ref","getTableBodyProps","headerGroup","headers","includes","TOP","group","isDelimiterTd","index","colSpan","cells","BOTTOM"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";function n(n){return n&&"object"==typeof n&&"default"in n?n.default:n}Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=n(e),a=n(require("react-table")),r=require("styled-components"),o=n(r),i=require("@propellerads/stylevariables");function l(n,e){return e||(e=n.slice(0)),n.raw=e,n}function d(){var n=l(["\n\n.ReactTable {\n font-size: ","px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n\n .pagination-bottom {\n padding: 24px 0;\n }\n\n &__header-cell_right {\n text-align: right !important;\n flex-direction: row !important;\n justify-content: flex-end !important;\n\n &:before {\n margin-left: 0 !important;\n margin-right: 4px !important;\n }\n }\n\n .rt-thead {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n }\n\n .rt-table {\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n border-collapse: collapse;\n overflow: auto;\n }\n}\n\n.ReactTable .rt-thead.-filters input,\n.ReactTable .rt-thead.-filters select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ",";\n padding: 2px 7px;\n margin: 4px 0;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .rt-thead .rt-th,\n.ReactTable .rt-thead .rt-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: ",";\n font-weight: 500;\n outline: none;\n}\n\n.ReactTable .rt-thead .rt-th {\n display: flex;\n}\n\n.ReactTable .rt-thead .rt-th.-cursor-pointer,\n.ReactTable .rt-thead .rt-td.-cursor-pointer {\n cursor: pointer;\n transition: 220ms ease;\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n\n &:before {\n transition: 220ms ease;\n content: '';\n min-width: 12px;\n width: 12px;\n height: 12px;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAABGdBTUEAALGPC/xhBQAAAlZJREFUWAntVklSwzAQtJ1ck/AYtpA78COKLEWoLHe+wx3C8hggOSehW7iNrMgb5gIVVblmNOrpGWuksYMgHv1+f0s1kkEyGg6HY00SSaNcEmO2YkMTnUoycX3dhZ28XAcD8KXlMhlHHzDF6PMql0OKxpkUMjQZNwzD3mw2e7SdB4PB23a7PQhpjEFdGBbz+TzE/B3mDnUDEIgSbEsA21zkPDXIxCdlzJuUcSh8y7wAXKtN0CQLU/VtJdeyBrcZPneGIIqi281m8wCioNFonE0mk0WWIzCmBNjpALUbp7aapw1EN3QGu6kbdbt2mlNypAi+TEFgE8lG6a2tDXD1wvPvOrjzv3EOah+k/0AQ13rpljBvjntwyBITE8VHtwVDKZLRaHSEe/BKZwaPrONZSILIx+v1+sVExgWcTqdjUwWbBKAPAtxBZ0R+pp23l85QvxuKSNgQXRKkfeJzJsHObdTmqLsSpGFHlm2HgAsiEYjS50y7l4ALNkmWM3G5gyQsVR4oM4M8J67ZGXKuIlCvMmpfxirBfNh9AvsdSHYAp/oaLaPnOyi/aUObYiu+EmfIe6q/idi4Qhu6dH8Z5SBZ9RqyjSPOPXrigTjYYCLTkqHICNkCiP9JSzh1LfuPVAYG1zs/A25wxk41Is9uMOgKP2wX7g9b0Q7En497+HdIouG21VQCAvkS4dcB6xcozRNxWQmUDaxY3gS0mJUI3uIcW2oSERa7dBrXuC0bpfvG9hr13AQE9iWitSxZFFh+pRIQuEwiZQOLs1ICcvIlUjWwuGpJJsKnDskn5F1o5Z7NGz4AAAAASUVORK5CYII=');\n background-size: contain;\n opacity: 0;\n margin-left: 4px;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-asc,\n.ReactTable .rt-thead .rt-td.-sort-asc {\n padding-left: 4px;\n\n &:before {\n transform: rotate(180deg);\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-desc,\n.ReactTable .rt-thead .rt-td.-sort-desc {\n padding-left: 4px;\n\n &:before {\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th:last-child,\n.ReactTable .rt-thead .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-thead .rt-resizable-header {\n overflow: visible;\n display: flex;\n align-items: center;\n}\n\n.ReactTable .rt-thead .rt-resizable-header:last-child {\n overflow: hidden;\n}\n\n.ReactTable .rt-thead .rt-resizable-header-content {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ReactTable .rt-thead .rt-header-pivot {\n border-right-color: #f7f7f7;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after,\n.ReactTable .rt-thead .rt-header-pivot:before {\n left: 100%;\n top: 50%;\n border: solid transparent;\n content: ' ';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after {\n border-color: rgba(255, 255, 255, 0);\n border-left-color: ",";\n border-width: 8px;\n margin-top: -8px;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:before {\n border-color: rgba(102, 102, 102, 0);\n border-left-color: #f7f7f7;\n border-width: 10px;\n margin-top: -10px;\n}\n\n.ReactTable .rt-tbody {\n flex: 99999 1 auto;\n display: flex;\n flex-direction: column;\n overflow: auto;\n border-top: 1px solid ",";\n margin-top: ","px;\n}\n\n.ReactTable .rt-tbody .rt-tr-group {\n box-shadow: inset 0 -1px 0 0 ",";\n}\n\n.ReactTable .rt-tbody .rt-tr-group:hover {\n background-color: ",";\n transition: 0.2s ease-in-out;\n}\n\n.ReactTable .rt-tbody .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-tbody .rt-expandable {\n cursor: pointer;\n text-overflow: clip;\n}\n\n.ReactTable .rt-tr-group {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.ReactTable .rt-tr {\n flex: 1 0 auto;\n display: inline-flex;\n padding: 0;\n align-items: center;\n}\n\n.ReactTable .rt-th,\n.ReactTable .rt-td {\n flex: 1 0 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding: 7px 4px;\n overflow: hidden;\n transition: 0.3s ease;\n transition-property: width, min-width, padding, opacity;\n line-height: 1.3rem;\n}\n\n.ReactTable .rt-th.-hidden,\n.ReactTable .rt-td.-hidden {\n width: 0 !important;\n min-width: 0 !important;\n padding: 0 !important;\n border: 0 !important;\n opacity: 0 !important;\n}\n\n.ReactTable .rt-expander {\n display: inline-block;\n position: relative;\n color: transparent;\n margin: 0 10px;\n}\n\n.ReactTable .rt-expander:after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-90deg);\n border-left: 5.04px solid transparent;\n border-right: 5.04px solid transparent;\n border-top: 7px solid rgba(0, 0, 0, 0.8);\n transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n cursor: pointer;\n}\n\n.ReactTable .rt-expander.-open:after {\n transform: translate(-50%, -50%) rotate(0);\n}\n\n.ReactTable .rt-resizer {\n display: inline-block;\n position: absolute;\n width: 36px;\n top: 0;\n bottom: 0;\n right: -18px;\n cursor: col-resize;\n z-index: 10;\n}\n\n.ReactTable .rt-tfoot {\n background: ",";\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n.ReactTable .rt-tfoot .rt-td {\n}\n\n.ReactTable .rt-tfoot .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable.-striped .rt-tr.-odd {\n background: rgba(0, 0, 0, 0.03);\n}\n\n.ReactTable.-highlight .rt-tbody .rt-tr:not(.-padRow):hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.ReactTable .-pagination {\n z-index: 1;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n flex-wrap: wrap;\n padding: 3px;\n}\n\n.ReactTable .-pagination input,\n.ReactTable .-pagination select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ",";\n padding: 5px 7px;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .-pagination .-btn {\n appearance: none;\n display: block;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 3px;\n padding: 6px;\n font-size: 1em;\n color: rgba(0, 0, 0, 0.6);\n transition: all 0.1s ease;\n cursor: pointer;\n outline: none;\n background-color: white;\n color: #0080ff;\n box-shadow: inset 0 0 0 1px #0080ff;\n}\n\n.ReactTable .-pagination .-btn[disabled] {\n opacity: 0;\n cursor: default;\n}\n\n.ReactTable .-pagination .-btn:not([disabled]):hover {\n}\n\n.ReactTable .-pagination .-previous,\n.ReactTable .-pagination .-next {\n flex: 1;\n text-align: center;\n}\n\n.ReactTable .-pagination .-center {\n flex: 1.5;\n text-align: center;\n margin-bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-around;\n}\n\n.ReactTable .-pagination .-pageInfo {\n display: inline-block;\n margin: 3px 10px;\n white-space: nowrap;\n}\n\n.ReactTable .-pagination .-pageJump {\n display: inline-block;\n}\n\n.ReactTable .-pagination .-pageJump input {\n width: 70px;\n text-align: center;\n}\n\n.ReactTable .-pagination .-pageSizeOptions {\n margin: 3px 10px;\n}\n\n.ReactTable .rt-noData {\n display: flex;\n justify-content: center;\n background: transparent;\n transition: all 0.3s ease;\n z-index: 1;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.5);\n}\n\n.ReactTable .-loading {\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\n.ReactTable .-loading > div {\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n font-size: 15px;\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\n.ReactTable .-loading.-active {\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n}\n\n.ReactTable .-loading.-active > div {\n transform: translateY(50%);\n}\n\n.ReactTable .rt-resizing .rt-th,\n.ReactTable .rt-resizing .rt-td {\n transition: none !important;\n cursor: col-resize;\n user-select: none;\n}\n"]);return d=function(){return n},n}function s(){var n=l(["\n width: 100%;\n height: ","px;\n background: linear-gradient(to left, ",", ",", ",");\n background-size: 200% 200%;\n animation: "," 1.6s linear infinite;\n"]);return s=function(){return n},n}function p(){var n=l(["\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"]);return p=function(){return n},n}var c=r.keyframes(p()),b=o.div(s(),4*i.spacing,i.gray95,i.white,i.gray95,c),g=r.createGlobalStyle(d(),i.fontNormal,i.white,i.black,i.white,i.gray80,2*i.spacing,i.gray95,i.semiWhite,i.gray95,i.white),u=function(n){var r=n.data,o=n.columns,i=void 0===o?[]:o,l=n.defaultPageSize,d=void 0===l?20:l,s=n.loading,p=void 0!==s&&s,c=n.defaultSorted,u=void 0===c?[]:c,f=n.pageText,x=void 0===f?"page":f,h=n.ofText,m=void 0===h?"of":h,T=n.previousText,w=void 0===T?"Previous page":T,v=n.nextText,R=void 0===v?"Next page":v,y=n.loadingText,A=void 0===y?"Loading...":y,z=n.noDataText,k=void 0===z?"Woops, no data.":z,S=n.getTrProps,C=n.manual,E=void 0!==C&&C,P=n.filterable,O=void 0===P||P,I=n.showPagination,j=n.showPageSizeOptions,L=void 0!==j&&j,B=n.showPageJump,N=void 0!==B&&B,G=n.style,W=void 0===G?{}:G,D=n.ExpanderComponent,M=n.SubComponent,Q=n.resizable,U=void 0!==Q&&Q,H=n.showLoadingState,J=void 0!==H&&H,Y=n.LoadingCellComponent,K=n.defaultFilterMethod,Z=void 0===K?function(n,e){return String(e[n.id]).toLowerCase().includes(n.value.toLowerCase())}:K,F=function(n,e){if(null==n)return{};var t,a,r={},o=Object.keys(n);for(a=0;a<o.length;a++)e.indexOf(t=o[a])>=0||(r[t]=n[t]);return r}(n,["data","columns","defaultPageSize","loading","defaultSorted","pageText","ofText","previousText","nextText","loadingText","noDataText","getTrProps","manual","filterable","showPagination","showPageSizeOptions","showPageJump","style","ExpanderComponent","SubComponent","resizable","showLoadingState","LoadingCellComponent","defaultFilterMethod"]),V=function(n,a,r,o,i){return void 0===i&&(i=function(n){return t.createElement(b,Object.assign({},n))}),{loadingColumns:e.useMemo((function(){return n&&a?o.map((function(n,e){var t=n.maxWidth,a=n.width,r=n.Header,o={Cell:i,accessor:"empty_"+e,filterable:!1,sortable:!1};return t&&(o.maxWidth=t),a&&(o.maxWidth=a),r&&(o.Header=r),o})):[]}),[i,o,a,n]),loadingData:e.useMemo((function(){if(n&&a&&o&&o.length>0){for(var e={},t=[],i=0;i<o.length;i+=1)e["empty_"+i]="";for(var l=0;l<r;l+=1)t.push(e);return t}return[]}),[o,a,r,n])}}(J,p,d,i,Y),q=J&&p;return t.createElement(t.Fragment,null,t.createElement(a,Object.assign({data:q?V.loadingData:r,columns:q?V.loadingColumns:i,defaultPageSize:d,filterable:O,defaultSorted:u,showPagination:!q&&I,showPageSizeOptions:L,showPageJump:N,loading:!J&&p,resizable:U,minRows:0,pageText:x,ofText:m,previousText:w,nextText:R,loadingText:A,noDataText:k,defaultFilterMethod:Z,getTrProps:S,manual:E,style:W,ExpanderComponent:D,SubComponent:M},F)),t.createElement(g,null))};u.defaultProps={LoadingCellComponent:void 0},exports.Table=u;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,t=require("react"),r=e(t),o=require("react-table"),a=require("@propellerads/icon"),i=e(require("@propellerads/input-checkbox")),l=require("styled-components"),u=e(l),s=require("@propellerads/stylevariables");function c(){return(c=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function d(e,n){return n||(n=e.slice(0)),e.raw=n,e}function g(e,n){if(e&&n){var t=e.getBoundingClientRect(),r=n.getBoundingClientRect(),o=[],a=Math.floor(t.left),i=Math.floor(t.right),l=Math.floor(r.left),u=Math.floor(r.right);a<l&&o.push("shadow_left"),i>u&&o.push("shadow_right"),function(e,n){var t=e.classList;t.remove("shadow_left","shadow_right"),t.add.apply(t,n)}(n,o)}}!function(e){e.TOP="top",e.BOTTOM="bottom"}(n||(n={}));var p=function(e){return e},f=function(e,n){var t,r=n.cell;return c({},e,{align:null==r||null===(t=r.column)||void 0===t?void 0:t.align})},m=function(e,n){var t=n.column;return c({},e,{align:null==t?void 0:t.align})},v=function(e,n){return void 0===n&&(n=p),e?function(t,r){return c({},n(t,r),e(t,r))}:n},h=function(e,n){return void 0===n&&(n=p),e?function(t,r){return c({},n(t,r),e(t,r))}:n};function b(){var e=d(["\n background: ",";\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n"]);return b=function(){return e},e}function x(){var e=d(["\n border-top: 1px solid ",";\n margin-top: ","px;\n min-width: 100%;\n width: max-content;\n"]);return x=function(){return e},e}function P(){var e=d(["\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n"]);return P=function(){return e},e}function w(){var e=d(["\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ",";\n min-width: 100%;\n width: max-content;\n"]);return w=function(){return e},e}function y(){var e=d(["\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ",", "," {\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: ",";\n font-weight: 500;\n outline: none;\n }\n"]);return y=function(){return e},e}function S(){var e=d(["\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"]);return S=function(){return e},e}function E(){var e=d(["\n width: 100%;\n height: ","px;\n background: linear-gradient(to left, ",", ",", ",");\n background-size: 200% 200%;\n animation: "," 1.6s linear infinite;\n"]);return E=function(){return e},e}function C(){var e=d(["\n text-align: ",""]);return C=function(){return e},e}function O(){var e=d(["\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 ","\n"]);return O=function(){return e},e}function R(){var e=d(["\n display: inline-flex;\n"]);return R=function(){return e},e}function I(){var e=d(["\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n"]);return I=function(){return e},e}function k(){var e=d(["\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n"]);return k=function(){return e},e}function z(){var e=d(["\n font-size: ","px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n"]);return z=function(){return e},e}function L(){var e=d(["\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"]);return L=function(){return e},e}function M(){var e=d(["\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"]);return M=function(){return e},e}function j(){var e=d(["\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n "]);return j=function(){return e},e}function D(){var e=d(["\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 ","\n"]);return D=function(){return e},e}function H(){var e=d(["\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"]);return H=function(){return e},e}var T=l.keyframes(H()),A=u.div(D(),(function(e){return e.isLoading&&l.css(j())})),N=u.div(M()),_=u.div(L()),F=u.div(z(),s.fontNormal),B=u.div(k()),G=u.div(I()),q=u.div(R()),Y=u.div(O(),(function(e){var n=e.align;return n&&l.css(C(),n)})),K=u.div(E(),4*s.spacing,s.gray95,s.white,s.gray95,T),W=u.div(S()),Z=u.div(y(),W,Y,s.black),U=u.div(w(),s.gray95),J=u.div(P()),Q=u.div(x(),s.gray80,2*s.spacing),V=u.div(b(),s.gray95),X={hasDefaultPagination:!1,isLoading:!1,footerPlacement:[],loadingMessage:"loading...",labelPerPage:"Show rows",parentElementId:"parent-element",tableContentId:"",showLoadingState:!1,LoadingCellComponent:K,getRowPreProps:function(){return{}},noDataMessage:""};function $(e){return"function"==typeof e}var ee=function(e){var l,u=e.columns,s=e.data,d=e.totalItems,b=e.fetchData,x=e.controlledPagination,P=e.initialState,w=e.isLoading,y=e.loadingMessage,S=e.labelPerPage,E=e.footerPlacement,C=e.onSortedChange,O=e.hasDefaultPagination,R=e.onSelectRowsChange,I=e.parentElementId,k=e.tableContentId,z=e.LoadingCellComponent,L=e.PaginationComponent,M=e.getRowPreProps,j=e.getTableProps,D=e.getHeaderGroupProps,H=e.getHeaderProps,T=e.getRowProps,K=e.getCellProps,X=e.getFooterProps,ee=e.getFooterGroupProps,ne=e.showLoadingState,te=e.noDataMessage,re=t.useMemo((function(){return u}),[u]),oe=function(e,n,o,a,i){return{loadingColumns:t.useMemo((function(){return e&&n?a.map((function(e,n){var t=e.maxWidth,o=e.width,a=e.Header,l={Cell:function(){return r.createElement(i,null)},accessor:"empty_"+n};return t&&(l.maxWidth=t),o&&(l.width=o),a&&(l.Header=a),l})):[]}),[a,n,e]),loadingData:t.useMemo((function(){if(e&&n&&a&&a.length>0){for(var t={},r=[],i=0;i<a.length;i+=1)t["empty_"+i]="";for(var l=0;l<o;l+=1)r.push(t);return r}return[]}),[a,n,o,e])}}(ne,w,null!==(l=null==x?void 0:x.pageSize)&&void 0!==l?l:10,re,z),ae=oe.loadingColumns,ie=oe.loadingData,le=ne&&w,ue=R&&$(R),se=C&&$(C),ce=b&&x&&Object.keys(x).length>0,de={columns:le?ae:re,data:le?ie:s,initialState:P,disableSortRemove:!0,disableMultiSort:!0,disabledMultiRemove:!0};if(se&&(de.manualSortBy=!0),ce){var ge,pe;if(void 0===(null==x?void 0:x.pageCount))throw new Error("You have to pass pageCount in controlledPagination data");de.initialState=c({},de.initialState,{pageIndex:null!==(ge=x.pageIndex)&&void 0!==ge?ge:0,pageSize:null!==(pe=x.pageSize)&&void 0!==pe?pe:10}),de.autoResetPage=!0,de.manualPagination=!0,de.pageCount=x.pageCount}var fe=o.useTable(de,o.useFlexLayout,o.useSortBy,o.usePagination,o.useRowSelect,(function(e){if(ue){var n={id:"selection",disableSortBy:!0,Header:function(e){return r.createElement(i,{elementId:"all",onChange:e.toggleAllRowsSelected,isChecked:(0,e.getToggleAllRowsSelectedProps)().checked})},Cell:function(e){var n=e.row,t=n.id,o=n.original,a=n.toggleRowSelected,l=n.getToggleRowSelectedProps,u=Number.isInteger(o.id)?o.id:t;return r.createElement(i,{elementId:u,onChange:a,isChecked:l().checked})}};e.visibleColumns.push((function(e){return[n].concat(e)}))}})),me=fe.getTableProps,ve=fe.headerGroups,he=fe.footerGroups,be=fe.setHiddenColumns,xe=fe.rows,Pe=fe.prepareRow,we=fe.visibleColumns,ye=function(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(o[t]=e[t]);return o}(fe,["getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","visibleColumns"]),Se=ye.selectedFlatRows,Ee=ye.setSortBy,Ce=ye.page,Oe=ye.canPreviousPage,Re=ye.canNextPage,Ie=ye.pageCount,ke=ye.gotoPage,ze=ye.nextPage,Le=ye.previousPage,Me=ye.setPageSize,je=ye.state,De=je.selectedRowIds,He=je.pageIndex,Te=je.pageSize,Ae=t.useRef(null),Ne=t.useRef(null);!function(e,n){t.useEffect((function(){var t,r=!1;function o(){r||(window.requestAnimationFrame((function(){g(e.current,n.current),r=!1})),r=!0)}return g(e.current,n.current),null==e||null===(t=e.current)||void 0===t||t.addEventListener("mousewheel",o),window.addEventListener("resize",o),function(){var n;null==e||null===(n=e.current)||void 0===n||n.removeEventListener("mousewheel",o),window.removeEventListener("resize",o)}}),[e.current,n.current])}(Ae,Ne),t.useEffect((function(){(null==P?void 0:P.hiddenColumns)&&be(P.hiddenColumns)}),[null==P?void 0:P.hiddenColumns]),t.useEffect((function(){ue&&(null==R||R(null==Se?void 0:Se.map((function(e){return e.original}))))}),[De]);var _e=null;if(O&&ce)throw new Error("You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data");if(ce||O){var Fe={setPageSize:Me,gotoPage:ke,canNextPage:Re,canPreviousPage:Oe,parentElementId:I,labelPerPage:S,pageIndex:He,previousPageHandler:Le,nextPageHandler:ze,totalPages:Ie,perPage:Te,totalItems:null!=d?d:s.length};ce&&x&&(Fe.canNextPage=x.pageIndex+1!==Fe.totalPages,Fe.canPreviousPage=0!==x.pageIndex,Fe.pageIndex=x.pageIndex,Fe.perPage=x.pageSize,Fe.setPageSize=function(e){null==b||b({pageIndex:Fe.pageIndex,pageSize:e})},Fe.gotoPage=function(e){null==b||b({pageIndex:e,pageSize:Fe.perPage})},Fe.nextPageHandler=function(){Fe.gotoPage(Fe.pageIndex+1)},Fe.previousPageHandler=function(){Fe.gotoPage(Fe.pageIndex-1)},(null==x?void 0:x.paginationAmount)&&(Fe.paginationAmount=x.paginationAmount)),_e=r.createElement(L,Object.assign({},Fe))}var Be,Ge,qe=ce||O?Ce:xe;return r.createElement(F,{className:"table-root"},r.createElement(A,{isLoading:!ne&&w,className:"table-loading"},r.createElement(N,null,y)),r.createElement(_,{ref:Ne,className:"table-wrapper"},r.createElement(B,{id:k,className:"table-content"},r.createElement(G,Object.assign({},me((void 0===Ge&&(Ge=p),(Be=j)?function(e){return c({},Ge(e),Be(e))}:Ge)),{ref:Ae}),r.createElement(Z,{className:"table-head"},ve.map((function(e){return r.createElement(J,Object.assign({},e.getHeaderGroupProps(v(D))),e.headers.map((function(e){var n=function(e){var n=e.getSortByToggleProps&&e.getSortByToggleProps();return null==n||delete n.style,se&&!e.canSort&&n&&(n.onClick=function(){null==C||C(e.id,Boolean(e.isSortedDesc)),Ee([{id:e.id,desc:!e.isSortedDesc}])}),n}(e);return r.createElement(W,Object.assign({},e.getHeaderProps(function(e,n,t){return void 0===t&&(t=p),n?function(r,o){return c({},t(c({},r,e),o),n(r,o))}:function(n,r){return t(c({},n,e),r)}}(n,H,m))),function(e){return e.isSorted&&e.isSortedDesc?r.createElement(q,null,e.render("Header"),r.createElement(a.ArrowDownFull,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.isSorted&&!e.isSortedDesc?r.createElement(q,null,e.render("Header"),r.createElement(a.ArrowUp,{size:a.SIZE.SMALL,color:a.COLOR.GRAY_DARK})):e.render("Header")}(e))})))}))),E.includes(n.TOP)&&r.createElement(V,{className:"table-footer-top"},he.map((function(e){return r.createElement(J,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return r.createElement(Y,Object.assign({},e.getFooterProps(v(X,m))),e.render("Footer"))})))}))),r.createElement(Q,{className:"table-body"},qe.map((function(e){Pe(e);var n=M(e);return r.createElement(U,{key:"group_"+e.index},r.createElement(J,Object.assign({},e.getRowProps(function(e,n){return void 0===n&&(n=p),e?function(t,r){return c({},n(t,r),e(t,r))}:n}(T))),n.isDelimiterTd?r.createElement(Y,Object.assign({colSpan:we.length},e.cells[0].getCellProps(h(K,f))),r.createElement("strong",null,e.cells[0].render("Cell"))):e.cells.map((function(e){return r.createElement(Y,Object.assign({},e.getCellProps(h(K,f))),e.render("Cell"))}))))}))),E.includes(n.BOTTOM)&&r.createElement(V,{className:"table-footer-bottom"},he.map((function(e){return r.createElement(J,Object.assign({},e.getFooterGroupProps(v(ee))),e.headers.map((function(e){return r.createElement(Y,Object.assign({},e.getFooterProps(v(X,m))),e.render("Footer"))})))})))))),!w&&!s.length&&te,_e)};ee.defaultProps=X,exports.Table=ee,exports.defaultProps=X;
2
2
  //# sourceMappingURL=table.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.cjs.production.min.js","sources":["../src/style.tsx","../src/index.tsx","../src/useLoadingState.tsx"],"sourcesContent":["/* eslint max-len: off */\nimport styled, {createGlobalStyle, keyframes} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n semiWhite,\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 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\nconst CommonStyles = createGlobalStyle`\n\n.ReactTable {\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n\n .pagination-bottom {\n padding: 24px 0;\n }\n\n &__header-cell_right {\n text-align: right !important;\n flex-direction: row !important;\n justify-content: flex-end !important;\n\n &:before {\n margin-left: 0 !important;\n margin-right: 4px !important;\n }\n }\n\n .rt-thead {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n }\n\n .rt-table {\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n width: 100%;\n border-collapse: collapse;\n overflow: auto;\n }\n}\n\n.ReactTable .rt-thead.-filters input,\n.ReactTable .rt-thead.-filters select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ${white};\n padding: 2px 7px;\n margin: 4px 0;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .rt-thead .rt-th,\n.ReactTable .rt-thead .rt-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.ReactTable .rt-thead .rt-th {\n display: flex;\n}\n\n.ReactTable .rt-thead .rt-th.-cursor-pointer,\n.ReactTable .rt-thead .rt-td.-cursor-pointer {\n cursor: pointer;\n transition: 220ms ease;\n display: flex;\n flex-direction: row-reverse;\n justify-content: flex-end;\n align-items: center;\n\n\n &:before {\n transition: 220ms ease;\n content: '';\n min-width: 12px;\n width: 12px;\n height: 12px;\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAEEfUpiAAAABGdBTUEAALGPC/xhBQAAAlZJREFUWAntVklSwzAQtJ1ck/AYtpA78COKLEWoLHe+wx3C8hggOSehW7iNrMgb5gIVVblmNOrpGWuksYMgHv1+f0s1kkEyGg6HY00SSaNcEmO2YkMTnUoycX3dhZ28XAcD8KXlMhlHHzDF6PMql0OKxpkUMjQZNwzD3mw2e7SdB4PB23a7PQhpjEFdGBbz+TzE/B3mDnUDEIgSbEsA21zkPDXIxCdlzJuUcSh8y7wAXKtN0CQLU/VtJdeyBrcZPneGIIqi281m8wCioNFonE0mk0WWIzCmBNjpALUbp7aapw1EN3QGu6kbdbt2mlNypAi+TEFgE8lG6a2tDXD1wvPvOrjzv3EOah+k/0AQ13rpljBvjntwyBITE8VHtwVDKZLRaHSEe/BKZwaPrONZSILIx+v1+sVExgWcTqdjUwWbBKAPAtxBZ0R+pp23l85QvxuKSNgQXRKkfeJzJsHObdTmqLsSpGFHlm2HgAsiEYjS50y7l4ALNkmWM3G5gyQsVR4oM4M8J67ZGXKuIlCvMmpfxirBfNh9AvsdSHYAp/oaLaPnOyi/aUObYiu+EmfIe6q/idi4Qhu6dH8Z5SBZ9RqyjSPOPXrigTjYYCLTkqHICNkCiP9JSzh1LfuPVAYG1zs/A25wxk41Is9uMOgKP2wX7g9b0Q7En497+HdIouG21VQCAvkS4dcB6xcozRNxWQmUDaxY3gS0mJUI3uIcW2oSERa7dBrXuC0bpfvG9hr13AQE9iWitSxZFFh+pRIQuEwiZQOLs1ICcvIlUjWwuGpJJsKnDskn5F1o5Z7NGz4AAAAASUVORK5CYII=');\n background-size: contain;\n opacity: 0;\n margin-left: 4px;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-asc,\n.ReactTable .rt-thead .rt-td.-sort-asc {\n padding-left: 4px;\n\n &:before {\n transform: rotate(180deg);\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th.-sort-desc,\n.ReactTable .rt-thead .rt-td.-sort-desc {\n padding-left: 4px;\n\n &:before {\n opacity: 1;\n }\n}\n\n.ReactTable .rt-thead .rt-th:last-child,\n.ReactTable .rt-thead .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-thead .rt-resizable-header {\n overflow: visible;\n display: flex;\n align-items: center;\n}\n\n.ReactTable .rt-thead .rt-resizable-header:last-child {\n overflow: hidden;\n}\n\n.ReactTable .rt-thead .rt-resizable-header-content {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.ReactTable .rt-thead .rt-header-pivot {\n border-right-color: #f7f7f7;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after,\n.ReactTable .rt-thead .rt-header-pivot:before {\n left: 100%;\n top: 50%;\n border: solid transparent;\n content: ' ';\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:after {\n border-color: rgba(255, 255, 255, 0);\n border-left-color: ${white};\n border-width: 8px;\n margin-top: -8px;\n}\n\n.ReactTable .rt-thead .rt-header-pivot:before {\n border-color: rgba(102, 102, 102, 0);\n border-left-color: #f7f7f7;\n border-width: 10px;\n margin-top: -10px;\n}\n\n.ReactTable .rt-tbody {\n flex: 99999 1 auto;\n display: flex;\n flex-direction: column;\n overflow: auto;\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n}\n\n.ReactTable .rt-tbody .rt-tr-group {\n box-shadow: inset 0 -1px 0 0 ${gray95};\n}\n\n.ReactTable .rt-tbody .rt-tr-group:hover {\n background-color: ${semiWhite};\n transition: 0.2s ease-in-out;\n}\n\n.ReactTable .rt-tbody .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable .rt-tbody .rt-expandable {\n cursor: pointer;\n text-overflow: clip;\n}\n\n.ReactTable .rt-tr-group {\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n}\n\n.ReactTable .rt-tr {\n flex: 1 0 auto;\n display: inline-flex;\n padding: 0;\n align-items: center;\n}\n\n.ReactTable .rt-th,\n.ReactTable .rt-td {\n flex: 1 0 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding: 7px 4px;\n overflow: hidden;\n transition: 0.3s ease;\n transition-property: width, min-width, padding, opacity;\n line-height: 1.3rem;\n}\n\n.ReactTable .rt-th.-hidden,\n.ReactTable .rt-td.-hidden {\n width: 0 !important;\n min-width: 0 !important;\n padding: 0 !important;\n border: 0 !important;\n opacity: 0 !important;\n}\n\n.ReactTable .rt-expander {\n display: inline-block;\n position: relative;\n color: transparent;\n margin: 0 10px;\n}\n\n.ReactTable .rt-expander:after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) rotate(-90deg);\n border-left: 5.04px solid transparent;\n border-right: 5.04px solid transparent;\n border-top: 7px solid rgba(0, 0, 0, 0.8);\n transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n cursor: pointer;\n}\n\n.ReactTable .rt-expander.-open:after {\n transform: translate(-50%, -50%) rotate(0);\n}\n\n.ReactTable .rt-resizer {\n display: inline-block;\n position: absolute;\n width: 36px;\n top: 0;\n bottom: 0;\n right: -18px;\n cursor: col-resize;\n z-index: 10;\n}\n\n.ReactTable .rt-tfoot {\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n.ReactTable .rt-tfoot .rt-td {\n}\n\n.ReactTable .rt-tfoot .rt-td:last-child {\n border-right: 0;\n}\n\n.ReactTable.-striped .rt-tr.-odd {\n background: rgba(0, 0, 0, 0.03);\n}\n\n.ReactTable.-highlight .rt-tbody .rt-tr:not(.-padRow):hover {\n background: rgba(0, 0, 0, 0.05);\n}\n\n.ReactTable .-pagination {\n z-index: 1;\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n flex-wrap: wrap;\n padding: 3px;\n}\n\n.ReactTable .-pagination input,\n.ReactTable .-pagination select {\n border: 1px solid rgba(0, 0, 0, 0.1);\n background: ${white};\n padding: 5px 7px;\n font-size: inherit;\n border-radius: 3px;\n font-weight: normal;\n outline: none;\n}\n\n.ReactTable .-pagination .-btn {\n appearance: none;\n display: block;\n width: 100%;\n height: 100%;\n border: 0;\n border-radius: 3px;\n padding: 6px;\n font-size: 1em;\n color: rgba(0, 0, 0, 0.6);\n transition: all 0.1s ease;\n cursor: pointer;\n outline: none;\n background-color: white;\n color: #0080ff;\n box-shadow: inset 0 0 0 1px #0080ff;\n}\n\n.ReactTable .-pagination .-btn[disabled] {\n opacity: 0;\n cursor: default;\n}\n\n.ReactTable .-pagination .-btn:not([disabled]):hover {\n}\n\n.ReactTable .-pagination .-previous,\n.ReactTable .-pagination .-next {\n flex: 1;\n text-align: center;\n}\n\n.ReactTable .-pagination .-center {\n flex: 1.5;\n text-align: center;\n margin-bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-around;\n}\n\n.ReactTable .-pagination .-pageInfo {\n display: inline-block;\n margin: 3px 10px;\n white-space: nowrap;\n}\n\n.ReactTable .-pagination .-pageJump {\n display: inline-block;\n}\n\n.ReactTable .-pagination .-pageJump input {\n width: 70px;\n text-align: center;\n}\n\n.ReactTable .-pagination .-pageSizeOptions {\n margin: 3px 10px;\n}\n\n.ReactTable .rt-noData {\n display: flex;\n justify-content: center;\n background: transparent;\n transition: all 0.3s ease;\n z-index: 1;\n pointer-events: none;\n color: rgba(0, 0, 0, 0.5);\n}\n\n.ReactTable .-loading {\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\n.ReactTable .-loading > div {\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n font-size: 15px;\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\n.ReactTable .-loading.-active {\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n}\n\n.ReactTable .-loading.-active > div {\n transform: translateY(50%);\n}\n\n.ReactTable .rt-resizing .rt-th,\n.ReactTable .rt-resizing .rt-td {\n transition: none !important;\n cursor: col-resize;\n user-select: none;\n}\n`;\n\nexport {CommonStyles};\n","import React from 'react';\nimport ReactTable, {TableProps} from 'react-table';\n\nimport {CommonStyles} from './style';\n\nimport useLoadingState from './useLoadingState';\n\nconst Table = ({\n data,\n columns = [],\n defaultPageSize = 20,\n loading = false,\n defaultSorted = [],\n pageText = 'page',\n ofText = 'of',\n previousText = 'Previous page',\n nextText = 'Next page',\n loadingText = 'Loading...',\n noDataText = 'Woops, no data.',\n getTrProps,\n manual = false,\n filterable = true,\n showPagination,\n showPageSizeOptions = false,\n showPageJump = false,\n style = {},\n ExpanderComponent,\n SubComponent,\n resizable = false,\n showLoadingState = false,\n LoadingCellComponent,\n defaultFilterMethod = (filter, row) => String(row[filter.id])\n .toLowerCase()\n .includes(filter.value.toLowerCase()),\n ...rest\n}: Partial<TableProps> & { showLoadingState: boolean, LoadingCellComponent?: (props: any) => React.ReactElement}) => {\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState, loading, defaultPageSize, columns, LoadingCellComponent,\n );\n const showLoading = showLoadingState && loading;\n return (\n <>\n <ReactTable\n data={showLoading ? loadingData : data}\n columns={showLoading ? loadingColumns : columns}\n defaultPageSize={defaultPageSize}\n filterable={filterable}\n defaultSorted={defaultSorted}\n showPagination={!showLoading && showPagination}\n showPageSizeOptions={showPageSizeOptions}\n showPageJump={showPageJump}\n loading={!showLoadingState && loading}\n resizable={resizable}\n minRows={0}\n pageText={pageText}\n ofText={ofText}\n previousText={previousText}\n nextText={nextText}\n loadingText={loadingText}\n noDataText={noDataText}\n defaultFilterMethod={defaultFilterMethod}\n getTrProps={getTrProps}\n manual={manual}\n style={style}\n ExpanderComponent={ExpanderComponent}\n SubComponent={SubComponent}\n {...rest}\n />\n <CommonStyles />\n </>\n );\n};\n\nTable.defaultProps = {\n LoadingCellComponent: undefined,\n};\n\nexport {Table};\n","import React, {useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {LoadingState} from './types';\nimport {EmptyStateCell} from './style';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column[],\n LoadingCellComponent = (props: any) => <EmptyStateCell {...props} />,\n): LoadingState => {\n const loadingColumns: Column[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map(({maxWidth, width, Header}: Column, key: number) => {\n const column: Column = {\n Cell: LoadingCellComponent,\n accessor: `empty_${key}`,\n filterable: false,\n sortable: false,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.maxWidth = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\n }) : []), [LoadingCellComponent, columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: any = {};\n const dataArray: any[] = [];\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"],"names":["loadingAnimation","keyframes","EmptyStateCell","styled","div","spacing","gray95","white","CommonStyles","createGlobalStyle","fontNormal","black","gray80","semiWhite","Table","data","columns","defaultPageSize","loading","defaultSorted","pageText","ofText","previousText","nextText","loadingText","noDataText","getTrProps","manual","filterable","showPagination","showPageSizeOptions","showPageJump","style","ExpanderComponent","SubComponent","resizable","showLoadingState","LoadingCellComponent","defaultFilterMethod","filter","row","String","id","toLowerCase","includes","value","rest","pageSize","props","React","loadingColumns","useMemo","map","key","maxWidth","width","Header","column","Cell","accessor","sortable","loadingData","length","dataObject","dataArray","i","push","useLoadingState","showLoading","ReactTable","minRows","defaultProps","undefined"],"mappings":"m3UAYA,IAAMA,EAAmBC,iBAYZC,EAAiBC,EAAOC,QAEf,EAAVC,UAC6BC,SAAWC,QAAUD,SAE/CN,GAGTQ,EAAeC,wBAGJC,aA0CCH,QAeLI,QAyFYJ,QAiBGK,SACA,EAAVP,UAIiBC,SAIXO,YAsFNP,SAiCAC,SC/TZO,EAAQ,gBACZC,IAAAA,SACAC,QAAAA,aAAU,SACVC,gBAAAA,aAAkB,SAClBC,QAAAA,oBACAC,cAAAA,aAAgB,SAChBC,SAAAA,aAAW,aACXC,OAAAA,aAAS,WACTC,aAAAA,aAAe,sBACfC,SAAAA,aAAW,kBACXC,YAAAA,aAAc,mBACdC,WAAAA,aAAa,oBACbC,IAAAA,eACAC,OAAAA,oBACAC,WAAAA,gBACAC,IAAAA,mBACAC,oBAAAA,oBACAC,aAAAA,oBACAC,MAAAA,aAAQ,KACRC,IAAAA,kBACAC,IAAAA,iBACAC,UAAAA,oBACAC,iBAAAA,gBACAC,IAAAA,yBACAC,oBAAAA,aAAsB,SAACC,EAAQC,UAAQC,OAAOD,EAAID,EAAOG,KACtDC,cACAC,SAASL,EAAOM,MAAMF,kBACtBG,keC7BmB,SACtBV,EACAlB,EACA6B,EACA/B,EACAqB,mBAAAA,IAAAA,EAAuB,SAACW,UAAeC,gBAAC/C,mBAAmB8C,MAyCpD,CACLE,eAxC2CC,WAAQ,kBAAOf,GAAoBlB,EAAUF,EACvFoC,KAAI,WAAoCC,OAAlCC,IAAAA,SAAUC,IAAAA,MAAOC,IAAAA,OAChBC,EAAiB,CACrBC,KAAMrB,EACNsB,kBAAmBN,EACnBzB,YAAY,EACZgC,UAAU,UAERN,IACFG,EAAOH,SAAWA,GAEhBC,IACFE,EAAOH,SAAWC,GAEhBC,IACFC,EAAOD,OAASA,GAGXC,KACJ,KAAK,CAACpB,EAAsBrB,EAASE,EAASkB,IAsBnDyB,YApBkBV,WAAQ,cACtBf,GAAoBlB,GAAWF,GAAWA,EAAQ8C,OAAS,EAAG,SAC1DC,EAAkB,GAClBC,EAAmB,GAEhBC,EAAI,EAAGA,EAAIjD,EAAQ8C,OAAQG,GAAK,EACvCF,WAAoBE,GAAO,OAExB,IAAIA,EAAI,EAAGA,EAAIlB,EAAUkB,GAAK,EACjCD,EAAUE,KAAKH,UAGVC,QAGF,KACN,CAAChD,EAASE,EAAS6B,EAAUX,KDbM+B,CACpC/B,EAAkBlB,EAASD,EAAiBD,EAASqB,GAEjD+B,EAAchC,GAAoBlB,SAEtC+B,gCACEA,gBAACoB,iBACCtD,KAAMqD,IAPWP,YAOiB9C,EAClCC,QAASoD,IARRlB,eAQuClC,EACxCC,gBAAiBA,EACjBW,WAAYA,EACZT,cAAeA,EACfU,gBAAiBuC,GAAevC,EAChCC,oBAAqBA,EACrBC,aAAcA,EACdb,SAAUkB,GAAoBlB,EAC9BiB,UAAWA,EACXmC,QAAS,EACTlD,SAAUA,EACVC,OAAQA,EACRC,aAAcA,EACdC,SAAUA,EACVC,YAAaA,EACbC,WAAYA,EACZa,oBAAqBA,EACrBZ,WAAYA,EACZC,OAAQA,EACRK,MAAOA,EACPC,kBAAmBA,EACnBC,aAAcA,GACVY,IAENG,gBAACzC,UAKPM,EAAMyD,aAAe,CACnBlC,0BAAsBmC"}
1
+ {"version":3,"file":"table.cjs.production.min.js","sources":["../src/types.tsx","../src/useTableShadow.tsx","../src/propsGetter.tsx","../src/style.tsx","../src/index.tsx","../src/useLoadingState.tsx"],"sourcesContent":["import React, {FunctionComponent, ReactElement, ReactNode} from 'react';\nimport {\n Cell,\n CellPropGetter,\n Column,\n FooterGroupPropGetter,\n FooterPropGetter,\n HeaderGroup,\n HeaderGroupPropGetter,\n Hooks,\n Meta,\n Row,\n RowPropGetter,\n TableBodyPropGetter,\n TablePropGetter, TableState,\n UsePaginationInstanceProps, UsePaginationOptions,\n UsePaginationState,\n UseRowSelectInstanceProps,\n UseRowSelectState, UseSortByColumnProps, UseRowSelectRowProps,\n UseSortByInstanceProps, UseSortByOptions,\n UseTableOptions, HeaderPropGetter,\n} from 'react-table';\n\nexport type DefaultObject = Record<string, string | number | unknown>;\n\nexport type LoadingState = {\n loadingColumns?: Column[],\n loadingData: any[],\n}\n\nexport enum FOOTER_PLACEMENT {\n TOP = 'top',\n BOTTOM = 'bottom'\n}\n\nexport type PaginationProps = {\n paginationAmount?: string | ReactNode | ReactElement,\n parentElementId: string,\n labelPerPage?: string,\n pageSizes?: Array<string | number>,\n pageIndex: number,\n perPage: number,\n totalPages: number,\n totalItems: number,\n canNextPage: boolean,\n canPreviousPage: boolean,\n nextPageHandler: () => void,\n previousPageHandler: () => void,\n setPageSize: (size: number) => void,\n gotoPage: (page: number) => void,\n}\n\nexport type ControlledPagination = {\n paginationAmount?: string | ReactNode | ReactElement,\n pageSize: number,\n pageIndex: number,\n pageCount: number,\n}\n\nexport type TableProps = {\n columns: Array<Column<DefaultObject>>,\n data: [],\n totalItems?: number,\n PaginationComponent: React.FunctionComponent<PaginationProps>,\n initialState: Partial<TableState<DefaultObject>>,\n fetchData?: (params: { pageIndex: number, pageSize: number }) => void,\n onSortedChange?: (id: string, isDesc: boolean) => void,\n isLoading?: boolean,\n footerPlacement?: Array<FOOTER_PLACEMENT>,\n hasDefaultPagination?: boolean,\n onSelectRowsChange?: (rows: Array<DefaultObject>) => void,\n controlledPagination?: ControlledPagination,\n loadingMessage?: string,\n labelPerPage?: string,\n parentElementId?: string,\n tableContentId?: string,\n getRowPreProps?: (row: Row) => DefaultObject,\n getTableProps?: TableGetter,\n getHeaderGroupProps?: ElementGetter,\n getHeaderProps?: ElementGetter,\n getRowProps?: ElementGetter,\n getCellProps?: ElementGetter,\n getFooterProps?: ElementGetter,\n getFooterGroupProps?: ElementGetter,\n showLoadingState?: boolean,\n LoadingCellComponent?: FunctionComponent<DefaultObject>,\n noDataMessage?: string | ReactElement\n}\n\nexport type TableOptions = {\n columns: Array<Column<DefaultObject>>,\n data: Array<DefaultObject>,\n initialState: {\n pageIndex?: number,\n pageSize?: number,\n },\n disableSortRemove: boolean,\n disableMultiSort: boolean,\n disableMultiRemove: boolean,\n manualSortBy?: boolean,\n autoResetPage?: boolean,\n manualPagination?: boolean,\n pageCount?: number,\n}\n\nexport type MetaProps = {\n column?: HeaderGroup<DefaultObject>,\n cell?: Cell,\n}\n\nexport type BaseMeta = Meta<DefaultObject, MetaProps>\n\nexport type TableGetter = (props: DefaultObject) => DefaultObject;\n\nexport type ElementGetter = (props: DefaultObject, meta: BaseMeta) => DefaultObject;\n\nexport type ElementCellPropGetter = CellPropGetter<DefaultObject>\n\nexport type ElementRowPropGetter = RowPropGetter<DefaultObject>\n\nexport type ElementHeaderFooterPropGetter = FooterGroupPropGetter<DefaultObject> |\n HeaderGroupPropGetter<DefaultObject> |\n FooterPropGetter<DefaultObject>\n\nexport type GetTableContainerPropsGetter = (userGetter?: TableGetter, getter?: TableGetter) =>\n TablePropGetter<DefaultObject> | TableBodyPropGetter<DefaultObject>\n\nexport type GetTableElementPropsGetter<T> = (userGetter?: ElementGetter, getter?: ElementGetter) => T\n\nexport type GetTableElementInternalPropsGetter =\n (internalProps: DefaultObject, userGetter?: ElementGetter, getter?: ElementGetter) =>\n HeaderPropGetter<DefaultObject>\n\nexport type ColumnWithSort = HeaderGroup<DefaultObject> & Partial<UseSortByColumnProps<DefaultObject>>\n\nexport type StandardColumn = Column<DefaultObject>\n\nexport type StandardRow = Row<DefaultObject>\n\nexport type SelectableRow = Row<{ id: string }> & UseRowSelectRowProps<DefaultObject>\n\nexport type StandardCell = Cell<DefaultObject>\n\nexport type SelectableRowInstanceProps = UseRowSelectInstanceProps<DefaultObject>\n\nexport type StandardHooks = Hooks<DefaultObject>\n\nexport type TableHooksInstanceProps =\n UseSortByInstanceProps<DefaultObject> &\n UsePaginationInstanceProps<DefaultObject> &\n UseRowSelectInstanceProps<DefaultObject> &\n { state: UseRowSelectState<DefaultObject> & UsePaginationState<DefaultObject>};\n\nexport type TableOptionsProps =\n UseTableOptions<DefaultObject> & UseSortByOptions<DefaultObject> & UsePaginationOptions<DefaultObject> &\n { initialState: Partial<TableState<DefaultObject>> & Partial<UsePaginationState<DefaultObject>> }\n\nexport class Table extends React.Component<Partial<TableProps>> {}\n","// 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 {\n ElementGetter,\n BaseMeta,\n TableGetter,\n ElementCellPropGetter,\n ElementRowPropGetter,\n DefaultObject,\n ElementHeaderFooterPropGetter,\n GetTableElementPropsGetter,\n GetTableContainerPropsGetter,\n GetTableElementInternalPropsGetter,\n} from './types';\n\nexport const defaultGetter: ElementGetter = (props) => props;\n\nexport const cellGetter: ElementGetter = (props, {cell}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: cell?.column?.align,\n});\nexport const mainCellGetter: ElementGetter = (props, {column}) => ({\n ...props,\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n align: column?.align,\n});\n\nexport const getTableProps: GetTableContainerPropsGetter = (userGetter, getter = defaultGetter as TableGetter) => {\n if (userGetter) {\n return (props) => ({\n ...getter(props),\n ...userGetter(props),\n });\n }\n\n return getter;\n};\n\nexport const getTableElementProps:\n GetTableElementPropsGetter<ElementHeaderFooterPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableRowProps:\n GetTableElementPropsGetter<ElementRowPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableCellProps:\n GetTableElementPropsGetter<ElementCellPropGetter> = (userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter(props, meta),\n ...userGetter(props, meta),\n });\n }\n\n return getter;\n };\n\nexport const getTableElementInternalProps:\n GetTableElementInternalPropsGetter = (internalProps, userGetter, getter = defaultGetter) => {\n if (userGetter) {\n return (props, meta) => ({\n ...getter({...props, ...internalProps}, meta),\n ...userGetter(props, meta),\n });\n }\n\n return (props: DefaultObject, meta: BaseMeta) => getter({...props, ...internalProps}, meta);\n };\n","/* eslint max-len: off */\nimport styled, {\n keyframes, css, CSSObject,\n} from 'styled-components';\nimport {\n fontNormal,\n white,\n black,\n spacing,\n gray80,\n gray95,\n} from '@propellerads/stylevariables';\n\nconst loadingAnimation = keyframes`\n from {\n background-position-x: 0;\n }\n 50% {\n background-position-x: 100%;\n }\n 100% {\n background-position-x: 0;\n }\n`;\n\nexport const TableLoading = styled.div`\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n background: rgba(255, 255, 255, 0.8);\n transition: all 0.3s ease;\n z-index: -1;\n opacity: 0;\n pointer-events: none;\n \n ${(props: { isLoading: boolean }) => props.isLoading && css`\n opacity: 1;\n z-index: 2;\n pointer-events: all;\n `}\n`;\n\nexport const TableLoadingInner = styled.div`\n position: absolute;\n display: block;\n text-align: center;\n width: 100%;\n top: 50%;\n left: 0;\n color: rgba(0, 0, 0, 0.6);\n transform: translateY(-52%);\n transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n`;\n\nexport const TableWrapper = styled.div`\n position: relative;\n overflow: hidden;\n \n &::before {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n position: absolute;\n width: 10px;\n height: 100%;\n top: 0;\n left: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n\n &::after {\n bottom: 10px;\n content: '';\n opacity: 0;\n pointer-events: none;\n width: 10px;\n height: 100%;\n position: absolute;\n top: 0;\n right: -10px;\n box-shadow: 0 3px 6px 0 rgba(0,0,0,0.2);\n transition: 0.3s opacity;\n }\n \n &.shadow_left {\n &::before {\n opacity: 1 !important;\n }\n }\n \n &.shadow_right {\n &::after {\n opacity: 1 !important;\n }\n }\n`;\n\nexport const TableRoot = styled.div`\n font-size: ${fontNormal}px;\n position: relative;\n display: flex;\n flex-direction: column;\n border: 0;\n`;\n\nexport const TableContent = styled.div`\n display: block;\n max-width: 100%;\n overflow-x: scroll;\n overflow-y: hidden;\n`;\n\nexport const TableCore = styled.div`\n flex: auto 1;\n display: flex;\n flex-direction: column;\n align-items: stretch; \n border-collapse: collapse;\n`;\n\nexport const HeadCell = styled.div`\n display: inline-flex;\n`;\n\nexport const TD = styled.div`\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 1.3rem;\n padding: 7px 4px;\n overflow: hidden;\n transition: width 0.3s ease 0s, min-width, padding, opacity;\n \n ${({align}: { align?: CSSObject, colSpan?: number }) => align && css`\n text-align: ${align}`\n}\n`;\n\nexport const EmptyStateCell = styled.div`\n width: 100%;\n height: ${spacing * 4}px;\n background: linear-gradient(to left, ${gray95}, ${white}, ${gray95});\n background-size: 200% 200%;\n animation: ${loadingAnimation} 1.6s linear infinite;\n`;\n\nexport const TH = styled.div`\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0s;\n color: rgb(0, 0, 0);\n font-weight: 500;\n outline: none;\n`;\n\nexport const THead = styled.div`\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n user-select: none;\n \n ${TH}, ${TD} {\n padding: 0 4px;\n line-height: normal;\n position: relative;\n transition: box-shadow 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);\n color: ${black};\n font-weight: 500;\n outline: none;\n }\n`;\n\nexport const TRGroup = styled.div`\n display: flex;\n flex: 1 0 auto;\n box-shadow: inset 0 -1px 0 0 ${gray95};\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TR = styled.div`\n padding: 0;\n -webkit-box-align: center;\n align-items: center;\n`;\n\nexport const TBody = styled.div`\n border-top: 1px solid ${gray80};\n margin-top: ${spacing * 2}px;\n min-width: 100%;\n width: max-content;\n`;\n\nexport const TFoot = styled.div`\n background: ${gray95};\n flex: 1 0 auto;\n display: flex;\n flex-direction: column;\n`;\n","import React, {\n FunctionComponent,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n useSortBy,\n useTable,\n useRowSelect,\n usePagination,\n useFlexLayout,\n Column,\n} from 'react-table';\n\nimport {\n ArrowDownFull, ArrowUp, COLOR, SIZE,\n} from '@propellerads/icon';\nimport Checkbox from '@propellerads/input-checkbox';\n\nimport useLoadingState from './useLoadingState';\nimport useTableShadow from './useTableShadow';\n\nimport {\n FOOTER_PLACEMENT,\n TableProps,\n PaginationProps,\n StandardHooks,\n StandardColumn,\n StandardRow,\n StandardCell,\n ColumnWithSort,\n TableHooksInstanceProps,\n SelectableRowInstanceProps,\n TableOptionsProps,\n SelectableRow,\n DefaultObject,\n} from './types';\n\nimport {\n getTableProps as getTableBodyProps,\n getTableElementProps,\n getTableElementInternalProps,\n cellGetter,\n mainCellGetter,\n getTableCellProps,\n getTableRowProps,\n} from './propsGetter';\n\nimport {\n TableRoot,\n TableWrapper,\n TableContent,\n HeadCell,\n TableLoading,\n TableLoadingInner,\n TD,\n TableCore,\n THead,\n TR,\n TH,\n TBody,\n TRGroup,\n TFoot,\n EmptyStateCell,\n} from './style';\n\nexport const defaultProps = {\n hasDefaultPagination: false,\n isLoading: false,\n footerPlacement: [],\n loadingMessage: 'loading...',\n labelPerPage: 'Show rows',\n parentElementId: 'parent-element',\n tableContentId: '',\n showLoadingState: false,\n LoadingCellComponent: EmptyStateCell,\n getRowPreProps: () => ({}),\n noDataMessage: '',\n};\n\ntype DefaultProps = Readonly<typeof defaultProps>;\n\nconst disableSortRemove = true;\nconst disableMultiSort = true;\nconst disabledMultiRemove = true;\n\nconst DEFAULT_PAGE_INDEX = 0;\nconst DEFAULT_PAGE_SIZE = 10;\n\nfunction isFunction(reference?: (arg1?: any, arg2?: any) => void) {\n return typeof reference === 'function';\n}\n\nfunction getHeadContent(column: ColumnWithSort) {\n if (column.isSorted && column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowDownFull\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\n </HeadCell>\n );\n }\n\n if (column.isSorted && !column.isSortedDesc) {\n return (\n <HeadCell>\n {column.render('Header')}\n <ArrowUp\n size={SIZE.SMALL}\n color={COLOR.GRAY_DARK}\n />\n </HeadCell>\n );\n }\n\n return column.render('Header');\n}\n\nconst Table: FunctionComponent<TableProps & DefaultProps> = (props) => {\n const {\n columns,\n data,\n totalItems,\n fetchData,\n controlledPagination,\n initialState,\n isLoading,\n loadingMessage,\n labelPerPage,\n footerPlacement,\n onSortedChange,\n hasDefaultPagination,\n onSelectRowsChange,\n parentElementId,\n tableContentId,\n LoadingCellComponent,\n PaginationComponent,\n getRowPreProps,\n getTableProps,\n getHeaderGroupProps,\n getHeaderProps,\n getRowProps,\n getCellProps,\n getFooterProps,\n getFooterGroupProps,\n showLoadingState,\n noDataMessage,\n } = props;\n\n const memoColumns = useMemo(() => columns, [columns]);\n\n const {loadingColumns, loadingData} = useLoadingState(\n showLoadingState, isLoading, controlledPagination?.pageSize ?? DEFAULT_PAGE_SIZE, memoColumns, LoadingCellComponent,\n );\n\n const showLoading = showLoadingState && isLoading;\n const hasSelectedRowsAbility = onSelectRowsChange && isFunction(onSelectRowsChange);\n const hasManualSortBy = onSortedChange && isFunction(onSortedChange);\n const hasControlledPagination = fetchData && controlledPagination && Object.keys(controlledPagination).length > 0;\n\n const options: TableOptionsProps = {\n columns: showLoading ? (loadingColumns as Column<DefaultObject>[]) : memoColumns,\n data: showLoading ? loadingData : data,\n initialState,\n disableSortRemove,\n disableMultiSort,\n disabledMultiRemove,\n };\n\n if (hasManualSortBy) {\n options.manualSortBy = true;\n }\n\n if (hasControlledPagination) {\n if (typeof controlledPagination?.pageCount === 'undefined') {\n throw new Error('You have to pass pageCount in controlledPagination data');\n }\n\n options.initialState = {\n ...options.initialState,\n pageIndex: controlledPagination.pageIndex ?? DEFAULT_PAGE_INDEX,\n pageSize: controlledPagination.pageSize ?? DEFAULT_PAGE_SIZE,\n };\n\n options.autoResetPage = true;\n options.manualPagination = true;\n options.pageCount = controlledPagination.pageCount;\n }\n\n const useSelect = (hooks: StandardHooks) => {\n if (!hasSelectedRowsAbility) {\n return;\n }\n\n const newColumn = {\n id: 'selection',\n disableSortBy: true,\n Header: (instance: SelectableRowInstanceProps) => {\n const {getToggleAllRowsSelectedProps, toggleAllRowsSelected} = instance;\n\n return (\n <Checkbox\n elementId=\"all\"\n onChange={toggleAllRowsSelected}\n isChecked={getToggleAllRowsSelectedProps().checked}\n />\n );\n },\n Cell: ({row}: { row: SelectableRow }) => {\n const {\n id,\n original,\n toggleRowSelected,\n getToggleRowSelectedProps,\n } = row;\n\n const elementId = Number.isInteger(original.id) ? original.id : id;\n\n return (\n <Checkbox\n elementId={elementId}\n onChange={toggleRowSelected}\n isChecked={getToggleRowSelectedProps().checked}\n />\n );\n },\n };\n\n hooks.visibleColumns.push((tableColumns: Array<StandardColumn>) => ([\n newColumn,\n ...tableColumns,\n ]));\n };\n\n const {\n getTableProps: _getTableProps,\n headerGroups,\n footerGroups,\n setHiddenColumns,\n rows,\n prepareRow,\n visibleColumns,\n ...rest\n } = useTable(\n options,\n useFlexLayout,\n useSortBy,\n usePagination,\n useRowSelect,\n useSelect,\n );\n\n const {\n selectedFlatRows,\n setSortBy,\n page,\n canPreviousPage,\n canNextPage,\n pageCount,\n gotoPage,\n nextPage,\n previousPage,\n setPageSize,\n state: {selectedRowIds, pageIndex, pageSize},\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n } = rest as TableHooksInstanceProps;\n\n const tableRef = useRef(null);\n const tableWrapperRef = useRef(null);\n\n useTableShadow(tableRef, tableWrapperRef);\n\n useEffect(() => {\n if (!initialState?.hiddenColumns) {\n return;\n }\n\n setHiddenColumns(initialState.hiddenColumns);\n }, [initialState?.hiddenColumns]);\n\n useEffect(() => {\n if (hasSelectedRowsAbility) {\n onSelectRowsChange?.(selectedFlatRows?.map((row: StandardRow) => row.original));\n }\n }, [selectedRowIds]);\n\n let pagination: JSX.Element | null = null;\n\n if (hasDefaultPagination && hasControlledPagination) {\n // eslint-disable-next-line max-len\n throw new Error('You have to pass either hasDefaultPagination true boolean prop or pass fetchData callback and controlledPagination data');\n }\n\n if (hasControlledPagination || hasDefaultPagination) {\n const paginationData: PaginationProps = {\n setPageSize,\n gotoPage,\n canNextPage,\n canPreviousPage,\n parentElementId,\n labelPerPage,\n pageIndex,\n previousPageHandler: previousPage,\n nextPageHandler: nextPage,\n totalPages: pageCount,\n perPage: pageSize,\n totalItems: totalItems ?? data.length,\n };\n\n if (hasControlledPagination && controlledPagination) {\n paginationData.canNextPage = controlledPagination.pageIndex + 1 !== paginationData.totalPages;\n paginationData.canPreviousPage = controlledPagination.pageIndex !== 0;\n paginationData.pageIndex = controlledPagination.pageIndex;\n paginationData.perPage = controlledPagination.pageSize;\n\n paginationData.setPageSize = (newPageSize: number) => {\n fetchData?.({\n pageIndex: paginationData.pageIndex,\n pageSize: newPageSize,\n });\n };\n\n paginationData.gotoPage = (newPageIndex: number) => {\n fetchData?.({\n pageIndex: newPageIndex,\n pageSize: paginationData.perPage,\n });\n };\n\n paginationData.nextPageHandler = () => {\n const newPageIndex = paginationData.pageIndex + 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n paginationData.previousPageHandler = () => {\n const newPageIndex = paginationData.pageIndex - 1;\n paginationData.gotoPage(newPageIndex);\n };\n\n if (controlledPagination?.paginationAmount) {\n paginationData.paginationAmount = controlledPagination.paginationAmount;\n }\n }\n\n pagination = (\n <PaginationComponent {...paginationData} />\n );\n }\n\n function extendSortByProps(column: ColumnWithSort) {\n const headerProps = column.getSortByToggleProps && column.getSortByToggleProps();\n\n delete headerProps?.style;\n\n if (hasManualSortBy && !column.canSort && headerProps) {\n headerProps.onClick = () => {\n onSortedChange?.(column.id, Boolean(column.isSortedDesc));\n setSortBy([{\n id: column.id,\n desc: !column.isSortedDesc,\n }]);\n };\n }\n\n return headerProps;\n }\n\n const tBodyTr = (hasControlledPagination || hasDefaultPagination) ? page : rows;\n\n return (\n <TableRoot className=\"table-root\">\n <TableLoading isLoading={!showLoadingState && isLoading} className=\"table-loading\">\n <TableLoadingInner>\n {loadingMessage}\n </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\">\n {headerGroups.map((headerGroup) => (\n <TR {...headerGroup.getHeaderGroupProps(getTableElementProps(getHeaderGroupProps))}>\n {headerGroup.headers.map((column) => {\n const headerProps = extendSortByProps(column) as DefaultObject;\n\n return (\n <TH\n {...column.getHeaderProps(getTableElementInternalProps(\n headerProps, getHeaderProps, mainCellGetter,\n ))}\n >\n {getHeadContent(column)}\n </TH>\n );\n })}\n </TR>\n ))}\n </THead>\n {footerPlacement.includes(FOOTER_PLACEMENT.TOP) && (\n <TFoot className=\"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\">\n {tBodyTr.map((row: StandardRow) => {\n prepareRow(row);\n const {isDelimiterTd} = getRowPreProps(row);\n\n if (isDelimiterTd) {\n return (\n <TRGroup key={`group_${row.index}`}>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n <TD\n colSpan={visibleColumns.length}\n {...row.cells[0].getCellProps(getTableCellProps(getCellProps, cellGetter))}\n >\n <strong>{row.cells[0].render('Cell')}</strong>\n </TD>\n </TR>\n </TRGroup>\n );\n }\n\n return (\n <TRGroup key={`group_${row.index}`}>\n <TR {...row.getRowProps(getTableRowProps(getRowProps))}>\n {row.cells.map((cell: StandardCell) => (\n <TD {...cell.getCellProps(getTableCellProps(getCellProps, cellGetter))}>\n {cell.render('Cell')}\n </TD>\n ))}\n </TR>\n </TRGroup>\n );\n })}\n </TBody>\n {footerPlacement.includes(FOOTER_PLACEMENT.BOTTOM) && (\n <TFoot className=\"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","import React, {FunctionComponent, useMemo} from 'react';\nimport {Column} from 'react-table';\nimport {DefaultObject, LoadingState} from './types';\n\nconst useLoadingState = (\n showLoadingState: boolean,\n loading: boolean,\n pageSize: number,\n columns: Column<DefaultObject>[],\n LoadingCellComponent: FunctionComponent<DefaultObject>,\n): LoadingState => {\n const loadingColumns: Column<DefaultObject>[] | undefined = useMemo(() => (showLoadingState && loading ? columns\n .map(({maxWidth, width, Header}: Column, key: number) => {\n const column: Column<DefaultObject> = {\n Cell: () => <LoadingCellComponent />,\n accessor: `empty_${key}`,\n };\n if (maxWidth) {\n column.maxWidth = maxWidth;\n }\n if (width) {\n column.width = width;\n }\n if (Header) {\n column.Header = Header;\n }\n\n return column;\n }) : []), [columns, loading, showLoadingState]);\n\n const loadingData = useMemo(() => {\n if (showLoadingState && loading && columns && columns.length > 0) {\n const dataObject: DefaultObject = {};\n const dataArray: DefaultObject[] = [];\n\n for (let i = 0; i < columns.length; i += 1) {\n dataObject[`empty_${i}`] = '';\n }\n for (let i = 0; i < pageSize; i += 1) {\n dataArray.push(dataObject);\n }\n\n return dataArray;\n }\n\n return [];\n }, [columns, loading, pageSize, showLoadingState]);\n\n return {\n loadingColumns,\n loadingData,\n };\n};\n\nexport default useLoadingState;\n"],"names":["FOOTER_PLACEMENT","calculateNewClassNames","tableNode","tableWrapperNode","tableRect","getBoundingClientRect","tableWrapperRect","newClassName","tableRectLeft","Math","floor","left","tableRectRight","right","tableWrapperRectLeft","tableWrapperRectRight","push","newClassNameList","classList","remove","add","changeClassName","defaultGetter","props","cellGetter","cell","align","column","_cell$column","mainCellGetter","getTableElementProps","userGetter","getter","meta","getTableCellProps","loadingAnimation","keyframes","TableLoading","styled","div","isLoading","css","TableLoadingInner","TableWrapper","TableRoot","fontNormal","TableContent","TableCore","HeadCell","TD","EmptyStateCell","spacing","gray95","white","TH","THead","black","TRGroup","TR","TBody","gray80","TFoot","defaultProps","hasDefaultPagination","footerPlacement","loadingMessage","labelPerPage","parentElementId","tableContentId","showLoadingState","LoadingCellComponent","getRowPreProps","noDataMessage","isFunction","reference","Table","columns","data","totalItems","fetchData","controlledPagination","initialState","onSortedChange","onSelectRowsChange","PaginationComponent","getTableProps","getHeaderGroupProps","getHeaderProps","getRowProps","getCellProps","getFooterProps","getFooterGroupProps","memoColumns","useMemo","loading","pageSize","loadingColumns","map","key","maxWidth","width","Header","Cell","React","accessor","loadingData","length","dataObject","dataArray","i","useLoadingState","showLoading","hasSelectedRowsAbility","hasManualSortBy","hasControlledPagination","Object","keys","options","disableSortRemove","disableMultiSort","disabledMultiRemove","manualSortBy","pageCount","Error","pageIndex","autoResetPage","manualPagination","useTable","useFlexLayout","useSortBy","usePagination","useRowSelect","hooks","newColumn","id","disableSortBy","instance","Checkbox","elementId","onChange","toggleAllRowsSelected","isChecked","getToggleAllRowsSelectedProps","checked","row","original","toggleRowSelected","getToggleRowSelectedProps","Number","isInteger","visibleColumns","tableColumns","_getTableProps","headerGroups","footerGroups","setHiddenColumns","rows","prepareRow","rest","selectedFlatRows","setSortBy","page","canPreviousPage","canNextPage","gotoPage","nextPage","previousPage","setPageSize","state","selectedRowIds","tableRef","useRef","tableWrapperRef","useEffect","ticking","onMousewheel","window","requestAnimationFrame","current","addEventListener","removeEventListener","useTableShadow","hiddenColumns","pagination","paginationData","previousPageHandler","nextPageHandler","totalPages","perPage","newPageSize","newPageIndex","paginationAmount","tBodyTr","className","ref","headerGroup","headers","headerProps","getSortByToggleProps","style","canSort","onClick","Boolean","isSortedDesc","desc","extendSortByProps","internalProps","getTableElementInternalProps","isSorted","render","ArrowDownFull","size","SIZE","SMALL","color","COLOR","GRAY_DARK","ArrowUp","getHeadContent","includes","TOP","group","index","getTableRowProps","isDelimiterTd","colSpan","cells","BOTTOM"],"mappings":"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"}