koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
1 lines • 3.11 kB
Source Map (JSON)
{"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,CACpD,MAAAC,EAAaD,EAAY,OAAO,cAAc,EAC9CE,EAAW,EAAQF,EAAY,OAAO,cACtCG,EAAW,EAAQH,EAAY,OAAO,cAEtCI,EAAoBC,EAAAA,YAAY,IAAM,CAC5BL,EAAA,OAAO,eAAe,EAAE,CAAA,EACrC,CAACA,CAAW,CAAC,EAEVM,EAAqBD,EAAAA,YAAY,IAAM,CACzCL,EAAY,OAAO,aAAa,CAAA,EACjC,CAACA,CAAW,CAAC,EAEVO,EAAcF,EAAAA,YAAY,IAAM,CACtBL,EAAA,OAAO,IAAI,EAAK,CAAA,EAC7B,CAACA,CAAW,CAAC,EAEhB,OACKQ,EAAAA,KAAA,MAAA,CAAI,UAAWC,EAAA,QAAQ,WACnB,SAAA,CACGR,GAAAS,EAAA,IAAC,SAAA,CACG,UAAWD,EAAQ,QAAA,aACnB,MAAM,eACN,QAASL,EACT,SAACM,EAAA,IAAAC,EAAA,cAAA,CAAc,UAAWF,EAAAA,QAAQ,UAAY,CAAA,CAAA,CAClD,EAEHP,GACGQ,EAAA,IAAC,SAAA,CACG,UAAWD,EAAQ,QAAA,aACnB,MAAM,gBACN,QAASH,EACT,SAACI,EAAA,IAAAE,EAAA,YAAA,CAAY,UAAWH,EAAAA,QAAQ,UAAY,CAAA,CAAA,CAChD,EAEHN,GACGO,EAAA,IAAC,SAAO,CAAA,UAAWD,UAAQ,aAAc,MAAM,eAAe,QAASF,EACnE,SAACG,EAAAA,IAAAG,EAAA,UAAA,CAAU,UAAWJ,EAAA,QAAQ,WAAY,CAC9C,CAAA,CAAA,EAER,CAER"}