UNPKG

uikit

Version:

UIkit is a lightweight and modular front-end framework for developing fast and powerful web interfaces.

2 lines (1 loc) 1.56 kB
/*! UIkit 3.14.1 | https://www.getuikit.com | (c) 2014 - 2022 YOOtheme | MIT License */(function(e,i){typeof exports=="object"&&typeof module<"u"?module.exports=i(require("uikit-util")):typeof define=="function"&&define.amd?define("uikitcountdown",["uikit-util"],i):(e=typeof globalThis<"u"?globalThis:e||self,e.UIkitCountdown=i(e.UIkit.util))})(this,function(e){"use strict";var i={connected(){!e.hasClass(this.$el,this.$name)&&e.addClass(this.$el,this.$name)}};const a=["days","hours","minutes","seconds"];var d={mixins:[i],props:{date:String,clsWrapper:String},data:{date:"",clsWrapper:".uk-countdown-%unit%"},connected(){this.date=Date.parse(this.$props.date),this.start()},disconnected(){this.stop()},events:[{name:"visibilitychange",el(){return document},handler(){document.hidden?this.stop():this.start()}}],methods:{start(){this.stop(),this.update(),this.timer=setInterval(this.update,1e3)},stop(){clearInterval(this.timer)},update(){const n=r(this.date);(!this.date||n.total<=0)&&(this.stop(),n.days=n.hours=n.minutes=n.seconds=0);for(const s of a){const o=e.$(this.clsWrapper.replace("%unit%",s),this.$el);if(!o)continue;let t=String(Math.trunc(n[s]));t=t.length<2?"0"+t:t,o.textContent!==t&&(t=t.split(""),t.length!==o.children.length&&e.html(o,t.map(()=>"<span></span>").join("")),t.forEach((h,u)=>o.children[u].textContent=h))}}}};function r(n){const s=n-Date.now();return{total:s,seconds:s/1e3%60,minutes:s/1e3/60%60,hours:s/1e3/60/60%24,days:s/1e3/60/60/24}}return typeof window<"u"&&window.UIkit&&window.UIkit.component("countdown",d),d});