UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 4.31 kB
"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 n in r=arguments[o])Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n]);return e}).apply(this,arguments)},__rest=this&&this.__rest||function(e,r){var o={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.indexOf(t)<0&&(o[t]=e[t]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(t=Object.getOwnPropertySymbols(e);n<t.length;n++)r.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(o[t[n]]=e[t[n]])}return o},__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 util_1=require("@co-hooks/util"),animation_1=require("@rc-hooks/animation"),dom_1=require("@rc-hooks/dom"),portal_1=require("@rc-hooks/portal"),popper_1=require("@rc-hooks/popper"),react_1=__importStar(require("react")),usePrefixCls_1=require("../../hooks/usePrefixCls");function PopoverWrapper(e){var r,o=e.afterClose,t=e.className,n=e.getArrow,a=e.getPopper,s=e.hideToDestroy,i=e.lazyInit,l=e.zIndex,p=e.show,u=void 0!==p&&p,c=e.placement,f=void 0===c?"bottom-start":c,_=e.scaleAnimation,d=void 0===_?"xy":_,v=e.popoverId,h=e.singleGroupId,w=e.offset,m=e.preventOverflow,g=e.overflowBoundaries,y=e.arrow,P=e.arrowOffset,b=e.onShow,I=e.onHide,O=e.captureOptions,S=void 0===O?{}:O,C=e.refType,x=e.refId,k=e.triggerIds,E=e.unionPopoverIds,R=e.onVisibleChange,j=e.wrapperClassName,M=e.disableAnimation,T=__rest(e,["afterClose","className","getArrow","getPopper","hideToDestroy","lazyInit","zIndex","show","placement","scaleAnimation","popoverId","singleGroupId","offset","preventOverflow","overflowBoundaries","arrow","arrowOffset","onShow","onHide","captureOptions","refType","refId","triggerIds","unionPopoverIds","onVisibleChange","wrapperClassName","disableAnimation"]),q=react_1.useRef(null!=l?l:1),A=react_1.useRef(u||!i),N=react_1.useState(!1),z=N[0],B=N[1],L=react_1.useRef(null),D=react_1.useRef(null),G=react_1.useRef(null),H=react_1.useRef(null),V=popper_1.usePopover({popoverId:v,singleGroupId:h,offset:w,preventOverflow:m,overflowBoundaries:g,arrow:y,arrowOffset:P,onShow:b,onHide:I,captureOptions:S,refType:C,refId:x,triggerIds:k,unionPopoverIds:E,onVisibleChange:R,arrowRef:L,show:u,popoverRef:G,placement:f}),W=V.popover,F=V.touch,X=react_1.useCallback((function(){W.onPopperMouseEnter()}),[]),Y=react_1.useCallback((function(){W.onPopperMouseLeave()}),[]),Z=react_1.useCallback((function(){W.onPopperFocus()}),[]),J=react_1.useCallback((function(){W.onPopperBlur()}),[]),K=W.getPopoverStyle();!W.isShow()&&"0px"===K.left&&"0px"===K.top&&H.current||(H.current=K);var Q=react_1.useMemo((function(){var e=f.split("-"),r=["top","bottom"].includes(e[0])?F.touchY:F.touchX;return e[0]=r?popper_1.touchReverse[e[0]]:e[0],e.join("-")}),[f,F]),U=usePrefixCls_1.usePrefixCls("popover-inner"),$=usePrefixCls_1.usePrefixCls("popover-wrapper"),ee=usePrefixCls_1.usePrefixCls("popover",((r={scale:d})[Q]=!0,r.show=W.isShow()&&z,r["disable-animation"]=!0===M,r));if(animation_1.useCSSEnterLeave(G,{type:"transition",show:W.isShow(),validTarget:D,validProperty:"transform",enter:{onStart:function(){W.isShow()&&!z&&B(!0)}},leave:{onEnd:function(){!W.isShow()&&z&&(A.current=!s&&A.current,B(!1),null==o||o())}}}),react_1.useMemo((function(){W.isShow()&&(A.current=!0,q.current=null!=l?l:dom_1.getZIndex())}),[W.isShow(),l]),!A.current)return null;var re=z&&!M||W.isShow()?void 0:"none";return react_1.default.createElement(portal_1.RcPortal,null,react_1.default.createElement("div",{ref:G,className:util_1.classnames($,j),onBlurCapture:J,onMouseLeave:Y,onMouseEnter:X,onFocusCapture:Z,"data-rc-id":"popover___"+W.getId(),style:__assign({display:re,position:"absolute",zIndex:q.current},W.getPopoverStyle())},react_1.default.createElement("div",__assign({},T,{className:util_1.classnames(ee,t),ref:D}),W.arrow&&n&&react_1.default.createElement("span",{style:W.getArrowStyle(),ref:L},n(W.arrowInfo,F)),react_1.default.createElement("div",{className:U},"function"==typeof a?a(W.getLastTrigger()?W.getTriggerData():null):a))))}exports.PopoverWrapper=PopoverWrapper;