primereact
Version:
A rich set of premium UI Components for React.
4 lines (2 loc) • 1.45 kB
JavaScript
'use client';
import{Component as v,withComponent as b}from"@primereact/core/component";import{usePositioner as y}from"@primereact/headless/positioner";import{mergeProps as w}from"@primeuix/utils";import*as f from"react";import{createOptionalContext as M}from"@primereact/core/utils";var[I,p]=M();import{createOptionalContext as O}from"@primereact/core/utils";var[R,u]=O();import*as m from"@primereact/headless/positioner";var a={...m.defaultProps,as:"div",side:"bottom",align:"start",sideOffset:2};var B=b({name:"ContextMenu.Positioner",defaultProps:a,setup(i){let{props:e,inProps:n}=i,o=p(),t=u(),s=t?.menusub?.popover??o?.popover,r=n?.side!==void 0,c=n?.align!==void 0,d=n?.sideOffset!==void 0,x=n?.alignOffset!==void 0,l=t&&!r?"right":e.side,C=t&&!c?"start":e.align,P=t&&!d?0:e.sideOffset,g=t&&!x?-5:e.alignOffset,h=y({align:C,side:l,sideOffset:P,alignOffset:g,flip:e.flip,shift:e.shift,hideWhenDetached:e.hideWhenDetached,anchor:s?.state.anchorElement,content:s?.state.positionerElement,arrow:s?.state.arrowElement,strategy:t?e.strategy:"absolute"});return{contextmenu:o,subcontextmenu:t,positioner:h}},render(i){let{props:e,ptmi:n,contextmenu:o,subcontextmenu:t}=i,s=t?.menusub?.popover??o?.popover,r=w(s?.positionerProps,{className:o?.cx("positioner")},o?.ptm("positioner"),n("root"));return f.createElement(v,{pIf:!!s?.state.rendered,instance:i,attrs:r,children:e.children})}});export{B as ContextMenuPositioner,a as defaultPositionerProps};