UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 3.12 kB
{"version":3,"file":"ColumnFooterCell.cjs","sources":["../../../../../src/lib/DataTable/cells/ColumnFooterCell.tsx"],"sourcesContent":["import type {ComponentProps, FC} from 'react';\nimport {useCallback} from 'react';\n\nimport {IconFilterOff, IconUnPin, IconSortOff} from '@/internal/Icons';\n\nimport type {FooterCell} from './../types.ts';\nimport classes from './Cells.module.css';\n\nexport type Props = ComponentProps<FooterCell>;\n\nexport const ColumnFooterCell: FC<Props> = ({cellContext}) => {\n const isFiltered = cellContext.column.getIsFiltered();\n const isSorted = Boolean(cellContext.column.getIsSorted());\n const isPinned = Boolean(cellContext.column.getIsPinned());\n\n const handleResetFilter = useCallback(() => {\n cellContext.column.setFilterValue('');\n }, [cellContext]);\n\n const handleResetSorting = useCallback(() => {\n cellContext.column.clearSorting();\n }, [cellContext]);\n\n const handleUnPin = useCallback(() => {\n cellContext.column.pin(false);\n }, [cellContext]);\n\n return (\n <div className={classes.footerCell}>\n {isFiltered && (\n <button\n className={classes.footerButton}\n title=\"Reset filter\"\n onClick={handleResetFilter}>\n <IconFilterOff className={classes.footerIcon} />\n </button>\n )}\n {isSorted && (\n <button\n className={classes.footerButton}\n title=\"Reset sorting\"\n onClick={handleResetSorting}>\n <IconSortOff className={classes.footerIcon} />\n </button>\n )}\n {isPinned && (\n <button className={classes.footerButton} title=\"Unpin column\" onClick={handleUnPin}>\n <IconUnPin className={classes.footerIcon} />\n </button>\n )}\n </div>\n );\n};\n"],"names":["ColumnFooterCell","cellContext","isFiltered","isSorted","isPinned","handleResetFilter","useCallback","handleResetSorting","handleUnPin","jsxs","classes","jsx","IconFilterOff","IconSortOff","IconUnPin"],"mappings":"wVAUaA,EAA8B,CAAC,CAAC,YAAAC,KAAiB,CAC1D,MAAMC,EAAaD,EAAY,OAAO,cAAA,EAChCE,EAAW,EAAQF,EAAY,OAAO,cACtCG,EAAW,EAAQH,EAAY,OAAO,cAEtCI,EAAoBC,EAAAA,YAAY,IAAM,CACxCL,EAAY,OAAO,eAAe,EAAE,CACxC,EAAG,CAACA,CAAW,CAAC,EAEVM,EAAqBD,EAAAA,YAAY,IAAM,CACzCL,EAAY,OAAO,aAAA,CACvB,EAAG,CAACA,CAAW,CAAC,EAEVO,EAAcF,EAAAA,YAAY,IAAM,CAClCL,EAAY,OAAO,IAAI,EAAK,CAChC,EAAG,CAACA,CAAW,CAAC,EAEhB,OACIQ,EAAAA,KAAC,MAAA,CAAI,UAAWC,EAAAA,QAAQ,WACnB,SAAA,CAAAR,GACGS,EAAAA,IAAC,SAAA,CACG,UAAWD,EAAAA,QAAQ,aACnB,MAAM,eACN,QAASL,EACT,SAAAM,EAAAA,IAACC,EAAAA,cAAA,CAAc,UAAWF,EAAAA,QAAQ,UAAA,CAAY,CAAA,CAAA,EAGrDP,GACGQ,EAAAA,IAAC,SAAA,CACG,UAAWD,EAAAA,QAAQ,aACnB,MAAM,gBACN,QAASH,EACT,SAAAI,EAAAA,IAACE,EAAAA,YAAA,CAAY,UAAWH,EAAAA,QAAQ,UAAA,CAAY,CAAA,CAAA,EAGnDN,GACGO,EAAAA,IAAC,SAAA,CAAO,UAAWD,UAAQ,aAAc,MAAM,eAAe,QAASF,EACnE,SAAAG,EAAAA,IAACG,EAAAA,UAAA,CAAU,UAAWJ,EAAAA,QAAQ,WAAY,CAAA,CAC9C,CAAA,EAER,CAER"}