mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-06-08 09:27:19 +08:00
2 lines
2.5 KiB
JavaScript
2 lines
2.5 KiB
JavaScript
var p=Object.defineProperty;var y=Object.getOwnPropertySymbols;var C=Object.prototype.hasOwnProperty,S=Object.prototype.propertyIsEnumerable;var o=(l,s,u)=>s in l?p(l,s,{enumerable:!0,configurable:!0,writable:!0,value:u}):l[s]=u,k=(l,s)=>{for(var u in s||(s={}))C.call(s,u)&&o(l,u,s[u]);if(y)for(var u of y(s))S.call(s,u)&&o(l,u,s[u]);return l};import{u as X}from"./hooks-5jBQ35N_.js";import{d as A,r as c,au as L,a1 as q,c_ as R,W as z,cT as B,w as N,m as r,q as f,z as T,v as W,ag as M,M as V,a0 as _}from"./index-Ck9U78hm.js";const j={options:{type:Array,default:()=>[]},modelValue:{type:void 0,require:!1,default:"0"},block:{type:Boolean,default:!1}},E=A({name:"ReSegmented",props:j,emits:["change","update:modelValue"],setup(l,{emit:s}){const u=c(0),b=c(0),{isDark:g}=L(),i=c(!1),d=c(-1),m=c(""),v=q(),n=R(l.modelValue)?z(l,"modelValue"):c(0);function D({option:e,index:a},t){e.disabled||(t.preventDefault(),R(l.modelValue)?s("update:modelValue",a):n.value=a,m.value="",s("change",{index:a,option:e}))}function I({option:e,index:a},t){t.preventDefault(),d.value=a,e.disabled||n.value===a?m.value="":m.value=g.value?"#1f1f1f":"rgba(0, 0, 0, 0.06)"}function w(e,a){a.preventDefault(),d.value=-1}function h(e=n.value){f(()=>{var t;const a=(t=v==null?void 0:v.proxy)==null?void 0:t.$refs[`labelRef${e}`];u.value=a.clientWidth,b.value=a.offsetLeft,i.value=!0})}l.block&&B(".pure-segmented",()=>{f(()=>{h(n.value)})}),N(()=>n.value,e=>{f(()=>{h(e)})},{deep:!0,immediate:!0});const $=()=>l.options.map((e,a)=>r("label",{ref:`labelRef${a}`,class:["pure-segmented-item",(e==null?void 0:e.disabled)&&"pure-segmented-item-disabled"],style:{background:d.value===a?m.value:"",color:!e.disabled&&(n.value===a||d.value===a)?g.value?"rgba(255, 255, 255, 0.85)":"rgba(0,0,0,.88)":""},onMouseenter:t=>I({option:e,index:a},t),onMouseleave:t=>w({option:e,index:a},t),onClick:t=>D({option:e,index:a},t)},[r("input",{type:"radio",name:"segmented"},null),T(r("div",{class:"pure-segmented-item-label"},[e.icon&&!M(e.label)?r("span",{class:"pure-segmented-item-icon",style:{marginRight:e.label?"6px":0}},[V(X(e.icon,k({},e==null?void 0:e.iconAttrs)))]):null,e.label?M(e.label)?V(e.label):r("span",null,[e.label]):null]),[[W("tippy"),{content:e==null?void 0:e.tip,zIndex:41e3}]])]));return()=>r("div",{class:["pure-segmented",l.block?"pure-segmented-block":""]},[r("div",{class:"pure-segmented-group"},[r("div",{class:"pure-segmented-item-selected",style:{width:`${u.value}px`,transform:`translateX(${b.value}px)`,display:i.value?"block":"none"}},null),$()])])}}),J=_(E);export{J as R};
|