物管理前端
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.

158 lines
16 KiB

  1. import{a4 as We,d as Ge,s as k,c as w,O as Qe,t as de,S as qe,G as f,T as Je,Q as G}from"./index-bVOhw2NF.js";import{b as D,c as n,d as v,a as N,A as Ze,B as eo,u as oo,f as ve,h as ce}from"./light-Cua7cqmF.js";import{f as ue}from"./fade-in-scale-up.cssr-CTZmXn_X.js";import{s as to}from"./light-CnxA-8p4.js";import{u as ao}from"./use-form-item-CNgNT5jP.js";import{u as no}from"./use-merged-state-CzrzZJbg.js";import{i as ro}from"./use-is-mounted-wlrzLfZo.js";import{u as Q,B as io,V as lo,a as so}from"./Follower-DJGS5Fnl.js";import{a as co}from"./resolve-slot-Dzko3qih.js";import{c as P}from"./call-f2ri57Kd.js";import{o as _,a as U}from"./delegate-CI_DDEu_.js";function he(a){return window.TouchEvent&&a instanceof window.TouchEvent}function fe(){const a=new Map,l=T=>p=>{a.set(T,p)};return We(()=>{a.clear()}),[a,l]}const uo=D([n("slider",`
  2. display: block;
  3. padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0;
  4. position: relative;
  5. z-index: 0;
  6. width: 100%;
  7. cursor: pointer;
  8. user-select: none;
  9. -webkit-user-select: none;
  10. `,[v("reverse",[n("slider-handles",[n("slider-handle-wrapper",`
  11. transform: translate(50%, -50%);
  12. `)]),n("slider-dots",[n("slider-dot",`
  13. transform: translateX(50%, -50%);
  14. `)]),v("vertical",[n("slider-handles",[n("slider-handle-wrapper",`
  15. transform: translate(-50%, -50%);
  16. `)]),n("slider-marks",[n("slider-mark",`
  17. transform: translateY(calc(-50% + var(--n-dot-height) / 2));
  18. `)]),n("slider-dots",[n("slider-dot",`
  19. transform: translateX(-50%) translateY(0);
  20. `)])])]),v("vertical",`
  21. padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2);
  22. width: var(--n-rail-width-vertical);
  23. height: 100%;
  24. `,[n("slider-handles",`
  25. top: calc(var(--n-handle-size) / 2);
  26. right: 0;
  27. bottom: calc(var(--n-handle-size) / 2);
  28. left: 0;
  29. `,[n("slider-handle-wrapper",`
  30. top: unset;
  31. left: 50%;
  32. transform: translate(-50%, 50%);
  33. `)]),n("slider-rail",`
  34. height: 100%;
  35. `,[N("fill",`
  36. top: unset;
  37. right: 0;
  38. bottom: unset;
  39. left: 0;
  40. `)]),v("with-mark",`
  41. width: var(--n-rail-width-vertical);
  42. margin: 0 32px 0 8px;
  43. `),n("slider-marks",`
  44. top: calc(var(--n-handle-size) / 2);
  45. right: unset;
  46. bottom: calc(var(--n-handle-size) / 2);
  47. left: 22px;
  48. font-size: var(--n-mark-font-size);
  49. `,[n("slider-mark",`
  50. transform: translateY(50%);
  51. white-space: nowrap;
  52. `)]),n("slider-dots",`
  53. top: calc(var(--n-handle-size) / 2);
  54. right: unset;
  55. bottom: calc(var(--n-handle-size) / 2);
  56. left: 50%;
  57. `,[n("slider-dot",`
  58. transform: translateX(-50%) translateY(50%);
  59. `)])]),v("disabled",`
  60. cursor: not-allowed;
  61. opacity: var(--n-opacity-disabled);
  62. `,[n("slider-handle",`
  63. cursor: not-allowed;
  64. `)]),v("with-mark",`
  65. width: 100%;
  66. margin: 8px 0 32px 0;
  67. `),D("&:hover",[n("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[N("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),n("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),v("active",[n("slider-rail",{backgroundColor:"var(--n-rail-color-hover)"},[N("fill",{backgroundColor:"var(--n-fill-color-hover)"})]),n("slider-handle",{boxShadow:"var(--n-handle-box-shadow-hover)"})]),n("slider-marks",`
  68. position: absolute;
  69. top: 18px;
  70. left: calc(var(--n-handle-size) / 2);
  71. right: calc(var(--n-handle-size) / 2);
  72. `,[n("slider-mark",`
  73. position: absolute;
  74. transform: translateX(-50%);
  75. white-space: nowrap;
  76. `)]),n("slider-rail",`
  77. width: 100%;
  78. position: relative;
  79. height: var(--n-rail-height);
  80. background-color: var(--n-rail-color);
  81. transition: background-color .3s var(--n-bezier);
  82. border-radius: calc(var(--n-rail-height) / 2);
  83. `,[N("fill",`
  84. position: absolute;
  85. top: 0;
  86. bottom: 0;
  87. border-radius: calc(var(--n-rail-height) / 2);
  88. transition: background-color .3s var(--n-bezier);
  89. background-color: var(--n-fill-color);
  90. `)]),n("slider-handles",`
  91. position: absolute;
  92. top: 0;
  93. right: calc(var(--n-handle-size) / 2);
  94. bottom: 0;
  95. left: calc(var(--n-handle-size) / 2);
  96. `,[n("slider-handle-wrapper",`
  97. outline: none;
  98. position: absolute;
  99. top: 50%;
  100. transform: translate(-50%, -50%);
  101. cursor: pointer;
  102. display: flex;
  103. `,[n("slider-handle",`
  104. height: var(--n-handle-size);
  105. width: var(--n-handle-size);
  106. border-radius: 50%;
  107. overflow: hidden;
  108. transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier);
  109. background-color: var(--n-handle-color);
  110. box-shadow: var(--n-handle-box-shadow);
  111. `,[D("&:hover",`
  112. box-shadow: var(--n-handle-box-shadow-hover);
  113. `)]),D("&:focus",[n("slider-handle",`
  114. box-shadow: var(--n-handle-box-shadow-focus);
  115. `,[D("&:hover",`
  116. box-shadow: var(--n-handle-box-shadow-active);
  117. `)])])])]),n("slider-dots",`
  118. position: absolute;
  119. top: 50%;
  120. left: calc(var(--n-handle-size) / 2);
  121. right: calc(var(--n-handle-size) / 2);
  122. `,[v("transition-disabled",[n("slider-dot","transition: none;")]),n("slider-dot",`
  123. transition:
  124. border-color .3s var(--n-bezier),
  125. box-shadow .3s var(--n-bezier),
  126. background-color .3s var(--n-bezier);
  127. position: absolute;
  128. transform: translate(-50%, -50%);
  129. height: var(--n-dot-height);
  130. width: var(--n-dot-width);
  131. border-radius: var(--n-dot-border-radius);
  132. overflow: hidden;
  133. box-sizing: border-box;
  134. border: var(--n-dot-border);
  135. background-color: var(--n-dot-color);
  136. `,[v("active","border: var(--n-dot-border-active);")])])]),n("slider-handle-indicator",`
  137. font-size: var(--n-font-size);
  138. padding: 6px 10px;
  139. border-radius: var(--n-indicator-border-radius);
  140. color: var(--n-indicator-text-color);
  141. background-color: var(--n-indicator-color);
  142. box-shadow: var(--n-indicator-box-shadow);
  143. `,[ue()]),n("slider-handle-indicator",`
  144. font-size: var(--n-font-size);
  145. padding: 6px 10px;
  146. border-radius: var(--n-indicator-border-radius);
  147. color: var(--n-indicator-text-color);
  148. background-color: var(--n-indicator-color);
  149. box-shadow: var(--n-indicator-box-shadow);
  150. `,[v("top",`
  151. margin-bottom: 12px;
  152. `),v("right",`
  153. margin-left: 12px;
  154. `),v("bottom",`
  155. margin-top: 12px;
  156. `),v("left",`
  157. margin-right: 12px;
  158. `),ue()]),Ze(n("slider",[n("slider-dot","background-color: var(--n-dot-color-modal);")])),eo(n("slider",[n("slider-dot","background-color: var(--n-dot-color-popover);")]))]),ho=0,fo=Object.assign(Object.assign({},ve.props),{to:Q.propTo,defaultValue:{type:[Number,Array],default:0},marks:Object,disabled:{type:Boolean,default:void 0},formatTooltip:Function,keyboard:{type:Boolean,default:!0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:[Number,String],default:1},range:Boolean,value:[Number,Array],placement:String,showTooltip:{type:Boolean,default:void 0},tooltip:{type:Boolean,default:!0},vertical:Boolean,reverse:Boolean,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onDragstart:[Function],onDragend:[Function]}),So=Ge({name:"Slider",props:fo,setup(a){const{mergedClsPrefixRef:l,namespaceRef:T,inlineThemeDisabled:p}=oo(a),d=ve("Slider","-slider",uo,to,a,l),c=k(null),[V,C]=fe(),[me,be]=fe(),ge=k(new Set),q=ao(a),{mergedDisabledRef:M}=q,J=w(()=>{const{step:e}=a;if(Number(e)<=0||e==="mark")return 0;const o=e.toString();let t=0;return o.includes(".")&&(t=o.length-o.indexOf(".")-1),t}),j=k(a.defaultValue),we=Qe(a,"value"),O=no(we,j),m=w(()=>{const{value:e}=O;return(a.range?e:[e]).map(re)}),Z=w(()=>m.value.length>2),pe=w(()=>a.placement===void 0?a.vertical?"right":"top":a.placement),ee=w(()=>{const{marks:e}=a;return e?Object.keys(e).map(Number.parseFloat):null}),b=k(-1),oe=k(-1),y=k(-1),R=k(!1),$=k(!1),L=w(()=>{const{vertical:e,reverse:o}=a;return e?o?"top":"bottom":o?"right":"left"}),xe=w(()=>{if(Z.value)return;const e=m.value,o=B(a.range?Math.min(...e):a.min),t=B(a.range?Math.max(...e):e[0]),{value:r}=L;return a.vertical?{[r]:`${o}%`,height:`${t-o}%`}:{[r]:`${o}%`,width:`${t-o}%`}}),ke=w(()=>{const e=[],{marks:o}=a;if(o){const t=m.value.slice();t.sort((u,h)=>u-h);const{value:r}=L,{value:i}=Z,{range:s}=a,g=i?()=>!1:u=>s?u>=t[0]&&u<=t[t.length-1]:u<=t[0];for(const u of Object.keys(o)){const h=Number(u);e.push({active:g(h),label:o[u],style:{[r]:`${B(h)}%`}})}}return e});function ye(e,o){const t=B(e),{value:r}=L;return{[r]:`${t}%`,zIndex:o===b.value?1:0}}function te(e){return a.showTooltip||y.value===e||b.value===e&&R.value}function Re(e){return R.value?!(b.value===e&&oe.value===e):!0}function ze(e){var o;~e&&(b.value=e,(o=V.get(e))===null||o===void 0||o.focus())}function Se(){me.forEach((e,o)=>{te(o)&&e.syncPosition()})}function ae(e){const{"onUpdate:value":o,onUpdateValue:t}=a,{nTriggerFormInput:r,nTriggerFormChange:i}=q;t&&P(t,e),o&&P(o,e),j.value=e,r(),i()}function ne(e){const{range:o}=a;if(o){if(Array.isArray(e)){const{value:t}=m;e.join()!==t.join()&&ae(e)}}else Array.isArray(e)||m.value[0]!==e&&ae(e)}function K(e,o){if(a.range){const t=m.value.slice();t.splice(o,1,e),ne(t)}else ne(e)}function X(e,o,t){const r=t!==void 0;t||(t=e-o>0?1:-1);const i=ee.value||[],{step:s}=a;if(s==="mark"){const h=I(e,i.concat(o),r?t:void 0);return h?h.value:o}if(s<=0)return o;const{value:g}=J;let u;if(r){const h=Number((o/s).toFixed(g)),x=Math.floor(h),Y=h>x?x:x-1,W=h<x?x:x+1;u=I(o,[Number((Y*s).toFixed(g)),Number((W*s).toFixed(g)),...i],t)}else{const h=Ce(e);u=I(e,[...i,h])}return u?re(u.value):o}function re(e){return Math.min(a.max,Math.max(a.min,e))}function B(e){const{max:o,min:t}=a;return(e-t)/(o-t)*100}function Te(e){const{max:o,min:t}=a;return t+(o-t)*e}function Ce(e){const{step:o,min:t}=a;if(Number(o)<=0||o==="mark")return e;const r=Math.round((e-t)/o)*o+t;return Number(r.toFixed(J.value))}function I(e,o=ee.value,t){if(!(o!=null&&o.length))return null;let r=null,i=-1;for(;++i<o.length;){const s=o[i]-e,g=Math.abs(s);(t===void 0||s*t>0)&&(r===null||g<r.distance)&&(r={index:i,distance:g,value:o[i]})}return r}function ie(e){const o=c.value;if(!o)return;const t=he(e)?e.touches[0]:e,r=o.getBoundingClientRect();let i;return a.vertical?i=(r.bottom-t.clientY)/r.height:i=(t.clientX-r.left)/r.width,a.reverse&&(i=1-i),Te(i)}function De(e){if(M.value||!a.keyboard)return;const{vertical:o,reverse:t}=a;switch(e.key){case"ArrowUp":e.preventDefault(),F(o&&t?-1:1);break;case"ArrowRight":e.preventDefault(),F(!o&&t?-1:1)