@chief-editor/ui
Version:
UI Component for chief editor
1 lines • 1.9 kB
JavaScript
"use strict";var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(e){for(var r,o=1,t=arguments.length;o<t;o++)for(var s in r=arguments[o])Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s]);return e}).apply(this,arguments)},__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var o in e)Object.hasOwnProperty.call(e,o)&&(r[o]=e[o]);return r.default=e,r};Object.defineProperty(exports,"__esModule",{value:!0});var dom_1=require("@rc-hooks/dom"),use_1=require("@rc-hooks/use"),util_1=require("@co-hooks/util"),react_1=__importStar(require("react")),hooks_1=require("../../hooks"),popover_1=require("../popover");function useDropdown(e,r){var o=use_1.useToggle(!1),t=o[0],s=o[1],a=o[2],i=react_1.useRef(null),l=util_1.classnames(e.className,hooks_1.usePrefixCls("dropdown-trigger"),hooks_1.usePrefixCls("can-input-grouped")),n=e.trigger,u=void 0===n?"click":n,p=e.disabled,d=e.offset,_=void 0===d?{x:0,y:-25}:d,c=e.placement,f=void 0===c?"bottom-start":c,h=e.popoverStyle,v=void 0===h?{}:h,w=e.popoverClassName,m=e.showDelay,g=e.hideDelay,y=e.menu,k=e.arrow,O=e.arrowOffset,P=e.preventOverflow,x=void 0!==P&&P,b=e.overflowBoundaries,C=hooks_1.usePrefixCls("dropdown",{list:!0}),D=use_1.useUpdate(),S=dom_1.useElementSize(i,(function(){return null==v.width}),D).width,q=util_1.classnames(hooks_1.usePrefixCls("dropdown",{popover:!0}),w),N=react_1.default.createElement("div",{className:C,onClick:a},y);return react_1.default.createElement(popover_1.Popover,{className:l,show:t,preventOverflow:x,overflowBoundaries:b,placement:f,trigger:u,disabled:p,popoverClassName:q,getPopper:N,showDelay:m,hideDelay:g,onShow:s,onHide:a,offset:_,popoverStyle:__assign(__assign({},v),{width:null!=v.width?v.width:Math.max(100,S)}),arrow:k,arrowOffset:O},react_1.default.createElement("span",{ref:i},r))}exports.useDropdown=useDropdown;