jiku-ui
Version:
A Component Library for Vue.js.
2 lines (1 loc) • 9.91 kB
JavaScript
module.exports=function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(a,r,function(t){return e[t]}.bind(null,r));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=86)}({0:function(e,t,n){"use strict";function a(e,t,n,a,r,i,o,s){var u,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),a&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),o?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(o)},c._ssrRegister=u):r&&(u=s?function(){r.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:r),u)if(c.functional){c._injectStyles=u;var l=c.render;c.render=function(e,t){return u.call(t),l(e,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,u):[u]}return{exports:e,options:c}}n.d(t,"a",(function(){return a}))},1:function(e,t){e.exports=require("jiku-ui/lib/utils/date-util")},26:function(e,t){e.exports=require("jiku-ui/lib/utils/date")},6:function(e,t){e.exports=require("jiku-ui/lib/mixins/locale")},86:function(e,t,n){"use strict";n.r(t);var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"hn-calendar"},[n("div",{staticClass:"hn-calendar__header"},[n("div",{staticClass:"hn-calendar__title"},[e._v("\n "+e._s(e.i18nDate)+"\n ")]),0===e.validatedRange.length?n("div",{staticClass:"hn-calendar__button-group"},[n("hn-button-group",[n("hn-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){return e.selectDate("prev-month")}}},[e._v("\n "+e._s(e.t("hn.datepicker.prevMonth"))+"\n ")]),n("hn-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){return e.selectDate("today")}}},[e._v("\n "+e._s(e.t("hn.datepicker.today"))+"\n ")]),n("hn-button",{attrs:{type:"plain",size:"mini"},on:{click:function(t){return e.selectDate("next-month")}}},[e._v("\n "+e._s(e.t("hn.datepicker.nextMonth"))+"\n ")])],1)],1):e._e()]),0===e.validatedRange.length?n("div",{key:"no-range",staticClass:"hn-calendar__body"},[n("date-table",{attrs:{date:e.date,"selected-day":e.realSelectedDay,"first-day-of-week":e.realFirstDayOfWeek},on:{pick:e.pickDay}})],1):n("div",{key:"has-range",staticClass:"hn-calendar__body"},e._l(e.validatedRange,(function(t,a){return n("date-table",{key:a,attrs:{date:t[0],"selected-day":e.realSelectedDay,range:t,"hide-header":0!==a,"first-day-of-week":e.realFirstDayOfWeek},on:{pick:e.pickDay}})})),1)])};a._withStripped=!0;var r=n(6),i=n.n(r),o=n(26),s=n.n(o),u=n(1),c={props:{selectedDay:String,range:{type:Array,validator:function(e){if(!e||!e.length)return!0;var t=e[0],n=e[1];return Object(u.validateRangeInOneMonth)(t,n)}},date:Date,hideHeader:Boolean,firstDayOfWeek:Number},inject:["hnCalendar"],data:function(){return{WEEK_DAYS:Object(u.getI18nSettings)().dayNames}},methods:{toNestedArr:function(e){return Object(u.range)(e.length/7).map((function(t,n){var a=7*n;return e.slice(a,a+7)}))},getFormateDate:function(e,t){if(!e||-1===["prev","current","next"].indexOf(t))throw new Error("invalid day or type");var n=this.curMonthDatePrefix;return"prev"===t?n=this.prevMonthDatePrefix:"next"===t&&(n=this.nextMonthDatePrefix),n+"-"+(e=("00"+e).slice(-2))},getCellClass:function(e){var t=e.text,n=e.type,a=[n];if("current"===n){var r=this.getFormateDate(t,n);r===this.selectedDay&&a.push("is-selected"),r===this.formatedToday&&a.push("is-today")}return a},pickDay:function(e){var t=e.text,n=e.type,a=this.getFormateDate(t,n);this.$emit("pick",a)},cellRenderProxy:function(e){var t=e.text,n=e.type,a=this.$createElement,r=this.hnCalendar.$scopedSlots.dateCell;if(!r)return a("span",[t]);var i=this.getFormateDate(t,n);return r({date:new Date(i),data:{isSelected:this.selectedDay===i,type:n+"-month",day:i}})}},computed:{prevMonthDatePrefix:function(){var e=new Date(this.date.getTime());return e.setDate(0),s.a.format(e,"yyyy-MM")},curMonthDatePrefix:function(){return s.a.format(this.date,"yyyy-MM")},nextMonthDatePrefix:function(){var e=new Date(this.date.getFullYear(),this.date.getMonth()+1,1);return s.a.format(e,"yyyy-MM")},formatedToday:function(){return this.hnCalendar.formatedToday},isInRange:function(){return this.range&&this.range.length},rows:function(){var e=[];if(this.isInRange){var t=this.range,n=t[0],a=t[1],r=Object(u.range)(a.getDate()-n.getDate()+1).map((function(e,t){return{text:n.getDate()+t,type:"current"}})),i=r.length%7;i=0===i?0:7-i;var o=Object(u.range)(i).map((function(e,t){return{text:t+1,type:"next"}}));e=r.concat(o)}else{var s=this.date,c=Object(u.getFirstDayOfMonth)(s);c=0===c?7:c;var l="number"==typeof this.firstDayOfWeek?this.firstDayOfWeek:1,d=Object(u.getPrevMonthLastDays)(s,c-l).map((function(e){return{text:e,type:"prev"}})),f=Object(u.getMonthDays)(s).map((function(e){return{text:e,type:"current"}}));e=[].concat(d,f);var h=Object(u.range)(42-e.length).map((function(e,t){return{text:t+1,type:"next"}}));e=e.concat(h)}return this.toNestedArr(e)},weekDays:function(){var e=this.firstDayOfWeek,t=this.WEEK_DAYS;return"number"!=typeof e||0===e?t.slice():t.slice(e).concat(t.slice(0,e))}},render:function(){var e=this,t=arguments[0],n=this.hideHeader?null:t("thead",[this.weekDays.map((function(e){return t("th",{key:e},[e])}))]);return t("table",{class:{"hn-calendar-table":!0,"is-range":this.isInRange},attrs:{cellspacing:"0",cellpadding:"0"}},[n,t("tbody",[this.rows.map((function(n,a){return t("tr",{class:{"hn-calendar-table__row":!0,"hn-calendar-table__row--hide-border":0===a&&e.hideHeader},key:a},[n.map((function(n,a){return t("td",{key:a,class:e.getCellClass(n),on:{click:e.pickDay.bind(e,n)}},[t("div",{class:"hn-calendar-day"},[e.cellRenderProxy(n)])])}))])}))])])}},l=n(0),d=Object(l.a)(c,void 0,void 0,!1,null,null,null);d.options.__file="packages/calendar/src/date-table.vue";var f=d.exports,h=["prev-month","today","next-month"],y=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],p={name:"HnCalendar",mixins:[i.a],components:{DateTable:f},props:{value:[Date,String,Number],range:{type:Array,validator:function(e){return!Array.isArray(e)||2===e.length&&e.every((function(e){return"string"==typeof e||"number"==typeof e||e instanceof Date}))}},firstDayOfWeek:{type:Number,default:1}},provide:function(){return{hnCalendar:this}},methods:{pickDay:function(e){this.realSelectedDay=e},selectDate:function(e){if(-1===h.indexOf(e))throw new Error("invalid type "+e);var t="";(t="prev-month"===e?this.prevMonthDatePrefix+"-01":"next-month"===e?this.nextMonthDatePrefix+"-01":this.formatedToday)!==this.formatedDate&&this.pickDay(t)},toDate:function(e){if(!e)throw new Error("invalid val");return e instanceof Date?e:new Date(e)},rangeValidator:function(e,t){var n=this.realFirstDayOfWeek,a=t?n:0===n?6:n-1,r=(t?"start":"end")+" of range should be "+y[a]+".";return e.getDay()===a||(console.warn("[HeinerCalendar]",r,"Invalid range will be ignored."),!1)}},computed:{prevMonthDatePrefix:function(){var e=new Date(this.date.getTime());return e.setDate(0),s.a.format(e,"yyyy-MM")},curMonthDatePrefix:function(){return s.a.format(this.date,"yyyy-MM")},nextMonthDatePrefix:function(){var e=new Date(this.date.getFullYear(),this.date.getMonth()+1,1);return s.a.format(e,"yyyy-MM")},formatedDate:function(){return s.a.format(this.date,"yyyy-MM-dd")},i18nDate:function(){var e=this.date.getFullYear(),t=this.date.getMonth()+1;return e+" "+this.t("hn.datepicker.year")+" "+this.t("hn.datepicker.month"+t)},formatedToday:function(){return s.a.format(this.now,"yyyy-MM-dd")},realSelectedDay:{get:function(){return this.value?this.formatedDate:this.selectedDay},set:function(e){this.selectedDay=e;var t=new Date(e);this.$emit("input",t)}},date:function(){if(this.value)return this.toDate(this.value);if(this.realSelectedDay){var e=this.selectedDay.split("-");return new Date(e[0],e[1]-1,e[2])}return this.validatedRange.length?this.validatedRange[0][0]:this.now},validatedRange:function(){var e=this,t=this.range;if(!t)return[];if(2===(t=t.reduce((function(t,n,a){var r=e.toDate(n);return e.rangeValidator(r,0===a)&&(t=t.concat(r)),t}),[])).length){var n=t,a=n[0],r=n[1];if(a>r)return console.warn("[HeinerCalendar]end time should be greater than start time"),[];if(Object(u.validateRangeInOneMonth)(a,r))return[[a,r]];var i=[],o=new Date(a.getFullYear(),a.getMonth()+1,1),s=this.toDate(o.getTime()-864e5);if(!Object(u.validateRangeInOneMonth)(o,r))return console.warn("[HeinerCalendar]start time and end time interval must not exceed two months"),[];i.push([a,s]);var c=this.realFirstDayOfWeek,l=o.getDay(),d=0;return l!==c&&(d=0===c?7-l:(d=c-l)>0?d:7+d),(o=this.toDate(o.getTime()+864e5*d)).getDate()<r.getDate()&&i.push([o,r]),i}return[]},realFirstDayOfWeek:function(){return this.firstDayOfWeek<1||this.firstDayOfWeek>6?0:Math.floor(this.firstDayOfWeek)}},data:function(){return{selectedDay:"",now:new Date}}},v=Object(l.a)(p,a,[],!1,null,null,null);v.options.__file="packages/calendar/src/main.vue";var g=v.exports;g.install=function(e){e.component(g.name,g)};t.default=g}}).default;