koval-ui
Version:
React components collection with minimalistic design. Supports theming, layout, and input validation.
3 lines (2 loc) • 2.41 kB
JavaScript
"use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),q=require("../../../internal/Icons/IconEllipsisVertical.cjs"),P=require("../../../internal/Icons/IconPinLeft.cjs"),b=require("../../../internal/Icons/IconPinRight.cjs"),d=require("../../../internal/Icons/IconUnPin.cjs"),k=require("../../../internal/Icons/IconFilter.cjs"),j=require("../../../internal/Icons/IconSortAsc.cjs"),O=require("../../../internal/Icons/IconSortDesc.cjs"),f=require("../../../internal/Icons/IconSortOff.cjs"),s=require("./Cells.module.css.cjs"),v=require("../../Dialog/useDialogState.cjs"),A=require("../../Menu/MenuActions.cjs"),D=({title:m,headerContext:n})=>{var a;const[t,l]=o.useState(!1),g=o.useCallback(()=>{l(!t)},[t]),I=o.useCallback(p=>{l(p)},[l]),i=n.column.getIsPinned(),c=n.column.getIsSorted(),r=n.column.getIsFiltered(),{openDialog:u}=v.useDialogState((a=n.table.options.meta)==null?void 0:a.filterModalId),S=o.useMemo(()=>[{title:r?"Edit filter":"Filter column",icon:k.IconFilter,onClick:()=>{u({columnId:n.column.id}),l(!1)}},{title:c!=="asc"?"Sort ascending":"Clear ascending",icon:c!=="asc"?j.IconSortAsc:f.IconSortOff,onClick:()=>{c!=="asc"&&n.table.setSorting([{desc:!1,id:n.column.id}]),c==="asc"&&n.column.clearSorting(),l(!1)}},{title:c!=="desc"?"Sort descending":"Clear descending",icon:c!=="desc"?O.IconSortDesc:f.IconSortOff,onClick:()=>{c!=="desc"&&n.table.setSorting([{desc:!0,id:n.column.id}]),c==="desc"&&n.column.clearSorting(),l(!1)}},{title:i!=="left"?"Pin left":"Unpin left",icon:i!=="left"?P.IconPinLeft:d.IconUnPin,onClick:()=>{l(!1),i!=="left"?n.column.pin("left"):n.column.pin(!1)}},{title:i!=="right"?"Pin right":"Unpin right",icon:i!=="right"?b.IconPinRight:d.IconUnPin,onClick:()=>{l(!1),i!=="right"?n.column.pin("right"):n.column.pin(!1)}}],[r,n.column,n.table,i,c,u]);return e.jsxs("div",{className:s.default.headerCell,children:[e.jsx("div",{className:s.default.columnTitle,children:m}),e.jsx("div",{className:s.default.columnActions,children:e.jsx(A.MenuActions,{allowedPlacements:["bottom","bottom-end","bottom-start"],variant:"plain",actions:S,isOpen:t,onToggle:I,children:e.jsx("button",{className:s.default.actionsButton,onClick:g,children:e.jsx(q.IconEllipsisVertical,{className:s.default.actionsIcon})})})})]})};exports.ColumnHeaderCell=D;
//# sourceMappingURL=ColumnHeaderCell.cjs.map