vxe-pc-ui
Version:
A vue based PC component library
1 lines • 3.48 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_ui=require("../../ui"),_vn=require("../../ui/src/vn"),_text=_interopRequireDefault(require("../../text/src/text")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeCountdown",props:{modelValue:[Number,String],format:String,prefixConfig:Object,suffixConfig:Object,size:{type:String,default:()=>(0,_ui.getConfig)().countdown.size||(0,_ui.getConfig)().size}},emits:["update:modelValue","start","end"],setup(d,e){const{slots:v,emit:n}=e;var t=_xeUtils.default.uniqueId();const f=(0,_vue.ref)(),l=(0,_ui.useSize)(d)["computeSize"],m=(0,_vue.reactive)({currNum:0,secondNum:0}),u={dnTimeout:void 0},o={refElem:f},_=(0,_vue.computed)(()=>{var e=m["secondNum"];return 316224e5<=e?["yyyy","MM","dd","HH","mm","ss"]:26784e5<=e?["MM","dd","HH","mm","ss"]:864e5<=e?["dd","HH","mm","ss"]:36e5<=e?["HH","mm","ss"]:6e4<=e?["mm","ss"]:["ss"]}),p=(0,_vue.computed)(()=>{var e=m["currNum"];return _xeUtils.default.getDateDiff(Date.now(),Date.now()+e)}),x=(0,_vue.computed)(()=>{var e=d["format"],t=p.value;let u="";return e&&(u=""+e,_xeUtils.default.each(t,(e,t)=>{u=u.replace(new RegExp(t,"g"),_xeUtils.default.padStart(e,t.length,"0"))})),u}),g=(0,_vue.computed)(()=>Object.assign({},d.prefixConfig,(0,_ui.getConfig)().countdown.prefixConfig)),C=(0,_vue.computed)(()=>Object.assign({},d.suffixConfig,(0,_ui.getConfig)().countdown.suffixConfig)),r={computeSize:l},w={xID:t,props:d,context:e,reactData:m,internalData:u,getRefMaps:()=>o,getComputeMaps:()=>r},i=(e,t,u)=>{n(e,(0,_ui.createEvent)(u,{$carousel:w},t))},s=()=>{var e=_xeUtils.default.toNumber(d.modelValue||0);m.secondNum=e,m.currNum=e},a=()=>{var e=m["currNum"];1e3<e?(m.currNum-=1e3,u.dnTimeout=setTimeout(()=>{a()},1e3)):(m.currNum=0,N())};t={dispatchEvent:i};const c=()=>{i("start",{},null),a()},N=()=>{var e=u["dnTimeout"];e&&(clearTimeout(e),u.dnTimeout=void 0,i("end",{},null))};Object.assign(w,t,{});return(0,_vue.watch)(()=>d.modelValue,()=>{s(),N(),c()}),(0,_vue.onUnmounted)(()=>{N()}),(0,_vue.onMounted)(()=>{c()}),s(),w.renderVN=()=>{var{prefixConfig:e,suffixConfig:t}=d,u=m["currNum"],n=l.value,o=p.value,r=g.value,i=C.value,s=v.prefix,a=v.suffix,c=v.default;return(0,_vue.h)("div",{ref:f,class:["vxe-countdown",o.done?"is--progress":"is-end",{["size--"+n]:n}]},[s||e?(0,_vue.h)("div",{class:"vxe-countdown--prefix"},s?(0,_vn.getSlotVNs)(s({currentValue:u,diffConf:o})):[(0,_vue.h)(_text.default,{content:r.content,icon:r.icon,status:r.status})]):(0,_ui.renderEmptyElement)(w),(0,_vue.h)("div",{class:"vxe-countdown--content"},c?(0,_vn.getSlotVNs)(c({currentValue:u,diffConf:o})):(()=>{var e=d["format"],t=_.value;const u=p.value;var n=x.value;return e?[(0,_vue.h)("div",{key:"format",class:"vxe-countdown--content-format"},n)]:t.map((e,t)=>(0,_vue.h)("div",{key:t,class:"vxe-countdown--content-item"},[(0,_vue.h)("div",{class:"vxe-countdown--content-num"},""+(u[e]||0)),(0,_vue.h)("div",{class:"vxe-countdown--content-unit"},(0,_ui.getI18n)("vxe.countdown.formats."+e))]))})()),a||t?(0,_vue.h)("div",{class:"vxe-countdown--suffix"},a?(0,_vn.getSlotVNs)(a({currentValue:u,diffConf:o})):[(0,_vue.h)(_text.default,{content:i.content,icon:i.icon,status:i.status})]):(0,_ui.renderEmptyElement)(w)])},w},render(){return this.renderVN()}});