UNPKG

vxe-pc-ui

Version:
1 lines 2.14 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeNoticeBar",props:{duration:[String,Number],direction:{type:String,default:()=>(0,_ui.getConfig)().noticeBar.direction},speed:{type:String,default:()=>(0,_ui.getConfig)().noticeBar.speed},content:String,vertical:Boolean,loop:{type:Boolean},size:{type:String,default:()=>(0,_ui.getConfig)().noticeBar.size||(0,_ui.getConfig)().size}},emits:[],setup(l,e){const{slots:v,emit:r}=e;var t=_xeUtils.default.uniqueId();const c=(0,_ui.useSize)(l)["computeSize"],d=(0,_vue.ref)(),f=(0,_vue.ref)(),_=(0,_vue.reactive)({animationDuration:0}),i={refElem:d},p=(0,_vue.computed)(()=>{var e=l["content"];return""+(e||"")}),n={},m={xID:t,props:l,context:e,reactData:_,getRefMaps:()=>i,getComputeMaps:()=>n};const u=()=>{var t=l["speed"],i=f.value;if(i){let e=46;"fast"===t?e=118:"slow"===t&&(e=18),_.animationDuration=Math.ceil(i.scrollWidth/e)}};Object.assign(m,{dispatchEvent:(e,t,i)=>{r(e,(0,_ui.createEvent)(i,{$noticeBar:m},t))}},{});return m.renderVN=()=>{var{vertical:e,duration:t,direction:i}=l,r=_["animationDuration"],n=c.value,u=p.value,o=v.default,a=v.prefix,s=v.suffix;return(0,_vue.h)("div",{ref:d,class:["vxe-notice-bar","is--"+(e?"vertical":"horizontal"),"dir--"+(i||"left"),{["size--"+n]:n}]},[a?(0,_vue.h)("div",{class:"vxe-notice-bar--prefix"},a({})):(0,_ui.renderEmptyElement)(m),(0,_vue.h)("div",{class:"vxe-notice-bar--content"},[(0,_vue.h)("div",{ref:f,class:"vxe-notice-bar--inner"},[(0,_vue.h)("div",{class:"vxe-notice-bar--wrapper",style:{animationDuration:`${t?(0,_dom.toCssUnit)(t,"s"):r}s`}},o?o({}):u)])]),s?(0,_vue.h)("div",{class:"vxe-notice-bar--suffix"},s({})):(0,_ui.renderEmptyElement)(m)])},(0,_vue.onMounted)(()=>{_ui.globalEvents.on(m,"resize",u),u()}),(0,_vue.onBeforeUnmount)(()=>{_ui.globalEvents.off(m,"resize")}),m},render(){return this.renderVN()}});