UNPKG

@aplus-frontend/ui

Version:

2 lines (1 loc) 1.96 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),d=require("@aplus-frontend/antdv"),o=require("lodash-unified");require("../../hooks/index.js");const k=require("../hooks/use-options.js"),b=require("../../hooks/useControllableValue.js"),B=e.defineComponent({name:"ApFieldSegmented",__name:"index",props:{mode:{default:"edit"},class:{},style:{},prefixCls:{},options:{},block:{type:Boolean,default:void 0},disabled:{type:Boolean,default:void 0},size:{},value:{},motionName:{},onChange:{},"onUpdate:value":{},vertical:{type:Boolean},shape:{},name:{},emptyText:{default:"--"},defaultValue:{},request:{}},emits:["update:value"],setup(c,{emit:p}){const n=c,{options:r,updateOptions:f}=k.default(n),m=p,{value:s,updateValue:v}=b.useControllableValue(n,m),u=e.ref(!1),g=e.useSlots();e.onMounted(()=>{o.isFunction(n.request)&&(u.value=!0,n.request().then(t=>f(t)).finally(()=>{u.value=!1}))});const y=e.computed(()=>{const t=e.unref(s);if(o.isUndefined(t))return e.createVNode(e.Fragment,null,[n.emptyText]);const l=e.unref(r)?.find(i=>i===t||i?.value===t);if(o.isString(l)||o.isNumber(l))return e.createVNode(e.Fragment,null,[l]);const a=l?.label||g.label;return o.isFunction(a)?e.createVNode(e.Fragment,null,[a?.({...l})]):e.createVNode(e.Fragment,null,[a||n.emptyText])});return(t,l)=>u.value?(e.openBlock(),e.createBlock(e.unref(d.Spin),{key:0,size:"small"})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[t.mode==="read"?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.value),{key:0})):(e.openBlock(),e.createBlock(e.unref(d.Segmented),e.mergeProps({key:1},e.unref(o.omit)(n,["onUpdate:value","value","defaultValue","options"]),{value:e.unref(s),options:e.unref(r),"onUpdate:value":e.unref(v)}),{label:e.withCtx(a=>[e.renderSlot(t.$slots,"label",e.normalizeProps(e.guardReactiveProps(a)))]),_:3},16,["value","options","onUpdate:value"]))],64))}});exports.default=B;