UNPKG

primereact

Version:

A rich set of premium UI Components for React.

4 lines (2 loc) 3.21 kB
'use client'; import{Component as S,withComponent as L}from"@primereact/core/component";import{mergeProps as F}from"@primeuix/utils";import*as n from"react";import{createOptionalContext as R}from"@primereact/core/utils";var[y,D]=R();import*as h from"react";var v=()=>{};function x(o,l){let u=h.useCallback(e=>{if(!e)return;let c=l??"left",p=e.parentElement;if(!p)return;let s=Array.from(p.children),t=s.indexOf(e),f=0;if(c==="left"){for(let i=0;i<t;i++){let a=s[i];a.dataset.frozen===""&&(a.dataset.alignFrozen??"left")==="left"&&(f+=a.offsetWidth)}e.style.insetInlineStart=`${f}px`,e.style.insetInlineEnd=""}else{for(let i=s.length-1;i>t;i--){let a=s[i];a.dataset.frozen===""&&(a.dataset.alignFrozen??"left")==="right"&&(f+=a.offsetWidth)}e.style.insetInlineEnd=`${f}px`,e.style.insetInlineStart=""}c==="left"?s.slice(t+1).find(a=>a.dataset.frozen===""&&(a.dataset.alignFrozen??"left")==="left")?e.removeAttribute("data-frozen-edge"):e.setAttribute("data-frozen-edge","left"):s.slice(0,t).reverse().find(a=>a.dataset.frozen===""&&a.dataset.alignFrozen==="right")?e.removeAttribute("data-frozen-edge"):e.setAttribute("data-frozen-edge","right")},[l]);return o?u:v}import{createOptionalContext as H}from"@primereact/core/utils";var[z,A]=H();var E={as:"th",colSpan:void 0,rowSpan:void 0,frozen:!1,alignFrozen:void 0,scope:"col"};function g(o){let l=o.parentElement;return l?Array.prototype.indexOf.call(l.children,o):-1}var B=L({name:"DataTable.THeadCell",defaultProps:E,setup({props:o}){let l=D(),[u,e]=n.useState(!1),c=n.useMemo(()=>({setSorted:e}),[]),p=n.useMemo(()=>({frozen:o.frozen,alignFrozen:o.alignFrozen,isSorted:u}),[o.frozen,o.alignFrozen,u]),s=!!l?.inProps?.reorderableColumns,t=l?.columnReorder,f=n.useCallback(r=>{let d=g(r.currentTarget);d!==-1&&t?.onDragStart(r,d)},[t]),i=n.useCallback(r=>{let d=g(r.currentTarget);d!==-1&&t?.onDragOver(r,d)},[t]),a=n.useCallback(r=>{let d=g(r.currentTarget);d!==-1&&t?.onDragEnter(r,d)},[t]),m=n.useCallback(r=>{t?.onDragLeave(r)},[t]),b=n.useCallback(r=>{let d=g(r.currentTarget);d!==-1&&t?.onDrop(r,d)},[t]),T=n.useCallback(r=>{t?.onDragEnd(r)},[t]),C=x(o.frozen,o.alignFrozen);return{datatable:l,state:p,reorderable:s,cellRef:C,headCellContext:c,handleDragStart:f,handleDragOver:i,handleDragEnter:a,handleDragLeave:m,handleDrop:b,handleDragEnd:T}},render(o){let{props:l,ptmi:u,state:e,datatable:c,reorderable:p,cellRef:s,headCellContext:t,handleDragStart:f,handleDragOver:i,handleDragEnter:a,handleDragLeave:m,handleDrop:b,handleDragEnd:T}=o,C=F({"data-scope":"datatable","data-part":"thead-cell",role:"columnheader",scope:l.scope,colSpan:l.colSpan,rowSpan:l.rowSpan,className:c?.cx("theadCell",{frozen:e.frozen,alignFrozen:e.alignFrozen??"left",isSorted:e.isSorted}),...e.frozen?{"data-frozen":"","data-align-frozen":e.alignFrozen??"left"}:void 0,...e.isSorted?{"data-sorted":""}:void 0,...p?{draggable:!0,onDragStart:f,onDragOver:i,onDragEnter:a,onDragLeave:m,onDrop:b,onDragEnd:T}:void 0},c?.ptm("theadCell"),u("root"));return n.createElement(z,{value:t},n.createElement(S,{instance:o,attrs:C,ref:s,children:l.children}))}});export{B as DataTableTHeadCell,z as DataTableTHeadCellProvider,E as defaultTHeadCellProps,A as useDataTableTHeadCellContext};