物管理前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
17 KiB

  1. import{d as ue,s as z,i as me,E as fe,c as H,z as ge,S as we,t as be,O as K,P as U,G as p,T as ye,m as Se,y as he,F as $e,X as Ce,a3 as Be}from"./index-bVOhw2NF.js";import{p as xe,d as Me,a as Te,z as ke}from"./fade-in-scale-up.cssr-CTZmXn_X.js";import{b as k,c as B,e as q,a as Q,d as X,J as ze,u as Re,f as ae,h as Ee}from"./light-Cua7cqmF.js";import{a as Oe}from"./toString-eibgRg41.js";import{b as Ae,a as Ie}from"./_baseEach-BwxcRWC6.js";import{a as _e,n as Pe}from"./_initCloneObject-K-Y0ueWp.js";import{p as Fe}from"./light-B00G814I.js";import{c as ie}from"./clickoutside-CCtiUDaG.js";import{o as Z,a as ee}from"./delegate-CI_DDEu_.js";import{f as te}from"./format-length-B-p6aW7q.js";import{g as se}from"./get-precise-event-target-DhO46Lpt.js";import{u as J,a as je,V as De,B as We}from"./Follower-DJGS5Fnl.js";import{i as le,r as oe}from"./resolve-slot-Dzko3qih.js";import{F as Ne,g as de}from"./index-C9vhMoZJ.js";import{X as He}from"./Scrollbar-DVK2lT9w.js";import{i as Le}from"./use-is-mounted-wlrzLfZo.js";import{u as Ve}from"./use-merged-state-CzrzZJbg.js";import{u as ce}from"./use-memo-BgHp9YyU.js";import{u as Ke}from"./use-compitable-DMmt6sIs.js";import{k as Ue}from"./keep-B1eBS8j0.js";import{c as V}from"./call-f2ri57Kd.js";let re;function Xe(){return re===void 0&&(re=navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),re}const _="@@mmoContext",Je={mounted(e,{value:o}){e[_]={handler:void 0},typeof o=="function"&&(e[_].handler=o,Z("mousemoveoutside",e,o))},updated(e,{value:o}){const n=e[_];typeof o=="function"?n.handler?n.handler!==o&&(ee("mousemoveoutside",e,n.handler),n.handler=o,Z("mousemoveoutside",e,o)):(e[_].handler=o,Z("mousemoveoutside",e,o)):n.handler&&(ee("mousemoveoutside",e,n.handler),n.handler=void 0)},unmounted(e){const{handler:o}=e[_];o&&ee("mousemoveoutside",e,o),e[_].handler=void 0}};function Ye(e,o){var n=-1,r=_e(e)?Array(e.length):[];return Ae(e,function(d,c,u){r[++n]=o(d,c,u)}),r}function Ge(e,o){var n=Pe(e)?Oe:Ye;return n(e,Ie(o))}const ne={top:"bottom",bottom:"top",left:"right",right:"left"},f="var(--n-arrow-height) * 1.414",qe=k([B("popover",`
  2. transition:
  3. box-shadow .3s var(--n-bezier),
  4. background-color .3s var(--n-bezier),
  5. color .3s var(--n-bezier);
  6. position: relative;
  7. font-size: var(--n-font-size);
  8. color: var(--n-text-color);
  9. box-shadow: var(--n-box-shadow);
  10. word-break: break-word;
  11. `,[k(">",[B("scrollbar",`
  12. height: inherit;
  13. max-height: inherit;
  14. `)]),q("raw",`
  15. background-color: var(--n-color);
  16. border-radius: var(--n-border-radius);
  17. `,[q("scrollable",[q("show-header-or-footer","padding: var(--n-padding);")])]),Q("header",`
  18. padding: var(--n-padding);
  19. border-bottom: 1px solid var(--n-divider-color);
  20. transition: border-color .3s var(--n-bezier);
  21. `),Q("footer",`
  22. padding: var(--n-padding);
  23. border-top: 1px solid var(--n-divider-color);
  24. transition: border-color .3s var(--n-bezier);
  25. `),X("scrollable, show-header-or-footer",[Q("content",`
  26. padding: var(--n-padding);
  27. `)])]),B("popover-shared",`
  28. transform-origin: inherit;
  29. `,[B("popover-arrow-wrapper",`
  30. position: absolute;
  31. overflow: hidden;
  32. pointer-events: none;
  33. `,[B("popover-arrow",`
  34. transition: background-color .3s var(--n-bezier);
  35. position: absolute;
  36. display: block;
  37. width: calc(${f});
  38. height: calc(${f});
  39. box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);
  40. transform: rotate(45deg);
  41. background-color: var(--n-color);
  42. pointer-events: all;
  43. `)]),k("&.popover-transition-enter-from, &.popover-transition-leave-to",`
  44. opacity: 0;
  45. transform: scale(.85);
  46. `),k("&.popover-transition-enter-to, &.popover-transition-leave-from",`
  47. transform: scale(1);
  48. opacity: 1;
  49. `),k("&.popover-transition-enter-active",`
  50. transition:
  51. box-shadow .3s var(--n-bezier),
  52. background-color .3s var(--n-bezier),
  53. color .3s var(--n-bezier),
  54. opacity .15s var(--n-bezier-ease-out),
  55. transform .15s var(--n-bezier-ease-out);
  56. `),k("&.popover-transition-leave-active",`
  57. transition:
  58. box-shadow .3s var(--n-bezier),
  59. background-color .3s var(--n-bezier),
  60. color .3s var(--n-bezier),
  61. opacity .15s var(--n-bezier-ease-in),
  62. transform .15s var(--n-bezier-ease-in);
  63. `)]),S("top-start",`
  64. top: calc(${f} / -2);
  65. left: calc(${C("top-start")} - var(--v-offset-left));
  66. `),S("top",`
  67. top: calc(${f} / -2);
  68. transform: translateX(calc(${f} / -2)) rotate(45deg);
  69. left: 50%;
  70. `),S("top-end",`
  71. top: calc(${f} / -2);
  72. right: calc(${C("top-end")} + var(--v-offset-left));
  73. `),S("bottom-start",`
  74. bottom: calc(${f} / -2);
  75. left: calc(${C("bottom-start")} - var(--v-offset-left));
  76. `),S("bottom",`
  77. bottom: calc(${f} / -2);
  78. transform: translateX(calc(${f} / -2)) rotate(45deg);
  79. left: 50%;
  80. `),S("bottom-end",`
  81. bottom: calc(${f} / -2);
  82. right: calc(${C("bottom-end")} + var(--v-offset-left));
  83. `),S("left-start",`
  84. left: calc(${f} / -2);
  85. top: calc(${C("left-start")} - var(--v-offset-top));
  86. `),S("left",`
  87. left: calc(${f} / -2);
  88. transform: translateY(calc(${f} / -2)) rotate(45deg);
  89. top: 50%;
  90. `),S("left-end",`
  91. left: calc(${f} / -2);
  92. bottom: calc(${C("left-end")} + var(--v-offset-top));
  93. `),S("right-start",`
  94. right: calc(${f} / -2);
  95. top: calc(${C("right-start")} - var(--v-offset-top));
  96. `),S("right",`
  97. right: calc(${f} / -2);
  98. transform: translateY(calc(${f} / -2)) rotate(45deg);
  99. top: 50%;
  100. `),S("right-end",`
  101. right: calc(${f} / -2);
  102. bottom: calc(${C("right-end")} + var(--v-offset-top));
  103. `),...Ge({top:["right-start","left-start"],right:["top-end","bottom-end"],bottom:["right-end","left-end"],left:["top-start","bottom-start"]},(e,o)=>{const n=["right","left"].includes(o),r=n?"width":"height";return e.map(d=>{const c=d.split("-")[1]==="end",a=`calc((${`var(--v-target-${r}, 0px)`} - ${f}) / 2)`,l=C(d);return k(`[v-placement="${d}"] >`,[B("popover-shared",[X("center-arrow",[B("popover-arrow",`${o}: calc(max(${a}, ${l}) ${c?"+":"-"} var(--v-offset-${n?"left":"top"}));`)])])])})})]);function C(e){return["top","bottom"].includes(e.split("-")[0])?"var(--n-arrow-offset)":"var(--n-arrow-offset-vertical)"}function S(e,o){const n=e.split("-")[0],r=["top","bottom"].includes(n)?"height: var(--n-space-arrow);":"width: var(--n-space-arrow);";return k(`[v-placement="${e}"] >`,[B("popover-shared",`
  104. margin-${ne[n]}: var(--n-space);
  105. `,[X("show-arrow",`
  106. margin-${ne[n]}: var(--n-space-arrow);
  107. `),X("overlap",`
  108. margin: 0;
  109. `),ze("popover-arrow-wrapper",`
  110. right: 0;
  111. left: 0;
  112. top: 0;
  113. bottom: 0;
  114. ${n}: 100%;
  115. ${ne[n]}: auto;
  116. ${r}
  117. `,[B("popover-arrow",o)])])])}const ve=Object.assign(Object.assign({},ae.props),{to:J.propTo,show:Boolean,trigger:String,showArrow:Boolean,delay:Number,duration:Number,raw:Boolean,arrowPointToCenter:Boolean,arrowClass:String,arrowStyle:[String,Object],arrowWrapperClass:String,arrowWrapperStyle:[String,Object],displayDirective:String,x:Number,y:Number,flip:Boolean,overlap:Boolean,placement:String,width:[Number,String],keepAliveOnHover:Boolean,scrollable:Boolean,contentClass:String,contentStyle:[Object,String],headerClass:String,headerStyle:[Object,String],footerClass:String,footerStyle:[Object,String],internalDeactivateImmediately:Boolean,animated:Boolean,onClickoutside:Function,internalTrapFocus:Boolean,internalOnAfterLeave:Function,minWidth:Number,maxWidth:Number});function Qe({arrowClass:e,arrowStyle:o,arrowWrapperClass:n,arrowWrapperStyle:r,clsPrefix:d}){return p("div",{key:"__popover-arrow__",style:r,class:[`${d}-popover-arrow-wrapper`,n]},p("div",{class:[`${d}-popover-arrow`,e],style:o}))}const Ze=ue({name:"PopoverBody",inheritAttrs:!1,props:ve,setup(e,{slots:o,attrs:n}){const{namespaceRef:r,mergedClsPrefixRef:d,inlineThemeDisabled:c}=Re(e),u=ae("Popover","-popover",qe,Fe,e,d),a=z(null),l=me("NPopover"),g=z(null),w=z(e.show),x=z(!1);fe(()=>{const{show:i}=e;i&&!Xe()&&!e.internalDeactivateImmediately&&(x.value=!0)});const R=H(()=>{const{trigger:i,onClickoutside:m}=e,b=[],{positionManuallyRef:{value:s}}=l;return s||(i==="click"&&!m&&b.push([ie,L,void 0,{capture:!0}]),i==="hover"&&b.push([Je,G])),m&&b.push([ie,L,void 0,{capture:!0}]),(e.displayDirective==="show"||e.animated&&x.value)&&b.push([ge,e.show]),b}),M=H(()=>{const{common:{cubicBezierEaseInOut:i,cubicBezierEaseIn:m,cubicBezierEaseOut:b},self:{space:s,spaceArrow:D,padding:W,fontSize:T,textColor:N,dividerColor:t,color:v,boxShadow:y,borderRadius:A,arrowHeight:I,arrowOffset:$,arrowOffsetVertical:pe}}=u.value;return{"--n-box-shadow":y,"--n-bezier":i,"--n-bezier-ease-in":m,"--n-bezier-ease-out":b,"--n-font-size":T,"--n-text-color":N,"--n-color":v,"--n-divider-color":t,"--n-border-radius":A,"--n-arrow-height":I,"--n-arrow-offset":$,"--n-arrow-offset-vertical":pe,"--n-padding":W,"--n-space":s,"--n-space-arrow":D}}),P=H(()=>{const i=e.width==="trigger"?void 0:te(e.width),m=[];i&&m.push({width:i});const{maxWidth:b,minWidth:s}=e;return b&&m.push({maxWidth:te(b)}),s&&m.push({maxWidth:te(s)}),c||m.push(M.value),m}),h=c?Ee("popover",void 0,M,e):void 0;l.setBodyInstance({syncPosition:Y}),we(()=>{l.setBodyInstance(null)}),be(K(e,"show"),i=>{e.animated||(i?w.value=!0:w.value=!1)});function Y(){var i;(i=a.value)===null||i===void 0||i.syncPosition()}function E(i){e.trigger==="hover"&&e.keepAliveOnHover&&e.show&&l.handleMouseEnter(i)}function O(i){e.trigger==="hover"&&e.keepAliveOnHover&&l.handleMouseLeave(i)}function G(i){e.trigger==="hover"&&!F().contains(se(i))&&l.handleMouseMoveOutside(i)}function L(i){(e.trigger==="click"&&!F().contains(se(i))||e.onClickoutside)&&l.handleClickOutside(i)}function F(){return l.getTriggerElement()}U(xe,g),U(Me,null),U(Te,null);function j(){if(h==null||h.onRender(),!(e.displayDirective==="show"||e.show||e.animated&&x.value))return null;let m;const b=l.internalRenderBodyRef.value,{value:s}=d;if(b)m=b([`${s}-popover-shared`,h==null?void 0:h.themeClass.value,e.overlap&&`${s}-popover-shared--overlap`,e.showArrow&&`${s}-popover-shared--show-arrow`,e.arrowPointToCenter&&`${s}-popover-shared--center-arrow`],g,P.value,E,O);else{const{value:D}=l.extraClassRef,{internalTrapFocus:W}=e,T=!le(o.header)||!le(o.footer),N=()=>{var t,v;const y=T?p($e,null,oe(o.header,$=>$?p("div",{class:[`${s}-popover__header`,e.headerClass],style:e.headerStyle},$):null),oe(o.default,$=>$?p("div",{class:[`${s}-popover__content`,e.contentClass],style:e.contentStyle},o):null),oe(o.footer,$=>$?p("div",{class:[`${s}-popover__footer`,e.footerClass],style:e.footerStyle},$):null)):e.scrollable?(t=o.default)===null||t===void 0?void 0:t.call(o):p("div",{class:[`${s}-popover__content`,e.contentClass],style:e.contentStyle},o),A=e.scrollable?p(He,{contentClass:T?void 0:`${s}-popover__conten