UNPKG

@progress/kendo-react-grid

Version:

React Data Grid (Table) provides 100+ ready-to-use data grid features. KendoReact Grid package

10 lines (9 loc) 2.47 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use client"; "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),v=require("@progress/kendo-react-common"),q=require("@progress/kendo-react-popup"),B=require("@progress/kendo-react-intl"),r=require("@progress/kendo-svg-icons"),o=require("../../messages/index.js"),x=require("../../utils/GridContext.js"),y=require("@progress/kendo-react-layout");function C(i){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(c,e,a.get?a:{enumerable:!0,get:()=>i[e]})}}return c.default=i,Object.freeze(c)}const n=C(w),D=i=>{const{dataItem:c}=i,e=n.useContext(x.GridContext),a=B.useLocalization(),b="#",u=e!=null&&e.getRowPinPosition?e.getRowPinPosition(c):"none",s=u!=="none",[I,l]=n.useState(!1),g=n.useRef(null),k=n.useCallback(t=>{t.preventDefault(),l(d=>!d)},[]),O=n.useCallback(t=>{!t.isAnchorClicked&&l(!1)},[]),p=a.toLanguageString(o.gridPinToTop,o.messages[o.gridPinToTop]),f=a.toLanguageString(o.gridPinToBottom,o.messages[o.gridPinToBottom]),m=a.toLanguageString(o.gridUnpin,o.messages[o.gridUnpin]),S=n.useMemo(()=>{const t=[];return s&&t.push({text:m,svgIcon:r.unpinOutlineIcon,data:{action:"unpin"}}),u!=="top"&&t.push({text:p,svgIcon:r.pinOutlineTopIcon,data:{action:"pinTop"}}),u!=="bottom"&&t.push({text:f,svgIcon:r.pinOutlineBottomIcon,data:{action:"pinBottom"}}),t},[s,m,u,p,f]),R=n.useCallback(t=>{var P,h,T;const d=(h=(P=t.item)==null?void 0:P.data)==null?void 0:h.action;(T=e==null?void 0:e.onRowPin)==null||T.call(e,d,c),l(!1)},[e,c]);return n.createElement(n.Fragment,null,n.createElement("a",{className:"k-pin-cell",ref:g,href:b,tabIndex:-1,onClick:k,"aria-label":s?m:p},n.createElement(v.IconWrap,{name:s?"unpin":"pin",icon:s?r.unpinOutlineIcon:r.pinOutlineIcon})),n.createElement(q.Popup,{anchor:g.current,show:I,anchorAlign:{vertical:"bottom",horizontal:"right"},popupClass:"k-menu-popup",onMouseDownOutside:O},n.createElement(y.Menu,{vertical:!0,items:S,onSelect:R})))};exports.GridPinDropdownButton=D;