UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 2.1 kB
var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(r){for(var e,t=1,o=arguments.length;t<o;t++)for(var s in e=arguments[t])Object.prototype.hasOwnProperty.call(e,s)&&(r[s]=e[s]);return r}).apply(this,arguments)},__rest=this&&this.__rest||function(r,e){var t={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(null!=r&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(o=Object.getOwnPropertySymbols(r);s<o.length;s++)e.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(r,o[s])&&(t[o[s]]=r[o[s]])}return t};import{getDefaultOffset}from"@rc-hooks/dom";import{classnames}from"@co-hooks/util";import React,{useCallback}from"react";import{usePrefixCls}from"../../hooks";import{PopoverWrapper}from"./PopoverWrapper";var dirPrefix={left:-1,top:-1,right:1,bottom:1},arrowOffsetForPlacement={"left-start":{x:0,y:10},"left-end":{x:0,y:-10},"right-start":{x:0,y:10},"right-end":{x:0,y:-10},"top-start":{x:16,y:0},"top-end":{x:-16,y:0},"bottom-start":{x:16,y:0},"bottom-end":{x:-16,y:0}};export function PopoverContent(r){var e=r.triggerIds,t=r.arrow,o=r.offset,s=void 0===o?getDefaultOffset():o,a=r.placement,i=void 0===a?"bottom-start":a,f=r.className,n=r.arrowOffset,p=__rest(r,["triggerIds","arrow","offset","placement","className","arrowOffset"]),l=classnames(usePrefixCls("popover"),f),c=__assign({},s);if(t){var m=i.split("-")[0],g="top"===m||"bottom"===m;Object.assign(c,{x:s.x+(g?0:10*dirPrefix[m]),y:s.y+(g?10*dirPrefix[m]:0)})}var u={left:usePrefixCls("popover-arrow",{dir:"left"}),right:usePrefixCls("popover-arrow",{dir:"right"}),top:usePrefixCls("popover-arrow",{dir:"top"}),bottom:usePrefixCls("popover-arrow",{dir:"bottom"})},v=usePrefixCls("popover-arrow-inner"),x=useCallback((function(r){var e=u[r.arrowDirection];return React.createElement("span",{className:e},React.createElement("span",{className:v}))}),[]);return React.createElement(PopoverWrapper,__assign({},p,{className:l,getArrow:x,arrow:t,placement:i,offset:c,triggerIds:e,arrowOffset:n||arrowOffsetForPlacement[i]||getDefaultOffset()}))}