UNPKG

jiku-ui

Version:

A Component Library for Vue.js.

1 lines 7.07 kB
module.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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 r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},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=129)}({0:function(e,t,n){"use strict";function r(e,t,n,r,i,o,s,a){var u,l="function"==typeof e?e.options:e;if(t&&(l.render=t,l.staticRenderFns=n,l._compiled=!0),r&&(l.functional=!0),o&&(l._scopeId="data-v-"+o),s?(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__),i&&i.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},l._ssrRegister=u):i&&(u=a?function(){i.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:i),u)if(l.functional){l._injectStyles=u;var c=l.render;l.render=function(e,t){return u.call(t),c(e,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,u):[u]}return{exports:e,options:l}}n.d(t,"a",(function(){return r}))},129:function(e,t,n){"use strict";n.r(t);var r=n(63),i=n.n(r),o=n(64),s=n.n(o),a=n(29),u=n.n(a),l=n(46),c=n.n(l),d=n(48),f=n.n(d),h=n(65),p=n.n(h),m=n(66),v=n.n(m),y=n(67),_=n.n(y),g=n(49),b=n.n(g),D=function(e,t,n){var r=[];if(null==t)e&&(r=[e]);else if(e){var i=_()(u()(t),u()(e)),o=e.getHours()>t.getHours();r=n.reduce((function(n,r){return n.concat(r.filter((function(n){return e&&t&&(r=i?t:e,s=n,a=i?e:t,l=u()(s),c=u()(r),d=u()(a),(l.getTime()===c.getTime()||b()(l,c))&&(l.getTime()===d.getTime()||b()(d,l)))&&function(e,t,n){var r=30===t.getMinutes()?.5:0,i=30===e.getMinutes()?.5:0,o=30===n.getMinutes()?.5:0,s=e.getHours()+i,a=n.getHours()+o,u=t.getHours()+r;return u>=s&&u<=a}(o?t:e,n,o?e:t);var r,s,a,l,c,d})))}),[])}return r};var S={name:"HnScheduleSelector",model:{prop:"selection"},props:{startTime:{type:Number,default:0},endTime:{type:Number,default:23},numDays:{type:Number,default:7},startDate:{type:Date,default:function(){return v()(new Date)}},selection:{type:Array,default:function(){return[]}},halfHour:Boolean,autoComplete:Boolean,dateFormat:{type:String,default:"M/d"},formatDate:Function,border:Boolean,height:{type:String,default:"360px"}},data:function(){return{dates:[],selectionDraft:[].concat(this.selection),selectionType:null,selectionStart:null}},created:function(){var e=u()(this.startDate);this.dates=[];for(var t=this.halfHour,n=this.startTime,r=this.endTime,i=0;i<this.numDays;i+=1){var o=t?n+.5:n,a=t?r+1:r;this.dates.push(this.generateRangeDate(s()(e,i),o,a))}},mounted:function(){document.addEventListener("mouseup",this.endSelection)},beforeDestroy:function(){document.removeEventListener("mouseup",this.endSelection)},methods:{generateRangeDate:function(e,t,n){for(var r=[],o=this.halfHour?.5:1,s=t;s<=n;)r.push(i()(e,60*s)),s+=o;return r},groupByDay:function(e){for(var t={},n=0;n<e.length;n++){var r=f()(e[n],"yyyy/MM/dd");t[r]||(t[r]=[]);var i=p()(e[n]);30===new Date(e[n]).getMinutes()?t[r].push(i+.5):t[r].push(i)}return t},autoCompleteDate:function(e){var t=this,n=[],r=this.groupByDay(e);Object.keys(r).forEach((function(e){var i=Math.min.apply(null,r[e]),o=Math.max.apply(null,r[e]);n=n.concat(t.generateRangeDate(new Date(e),i,o))})),this.selectionDraft=n},endSelection:function(){this.autoComplete&&this.autoCompleteDate(this.selectionDraft),this.$emit("input",this.selectionDraft),this.$emit("change",this.selectionDraft),this.selectionType=null,this.selectionStart=null},updateAvailabilityDraft:function(e){var t=this.selectionType,n=this.selectionStart;if(null!==t&&null!==n){var r=[];n&&e&&t&&(r=D(n,e,this.dates));var i=[].concat(this.selection);"add"===t?i=[].concat(i,r).filter((function(e,t,n){return n.indexOf(e,0)===t})):"remove"===t&&(i=i.filter((function(e){return!r.find((function(t){return c()(e,t)}))}))),this.selectionDraft=i}},handleSelectionStartEvent:function(e){var t=this.selection.find((function(t){return c()(t,e)}));this.selectionType=t?"remove":"add",this.selectionStart=e},handleMouseEnterEvent:function(e){this.updateAvailabilityDraft(e)},handleMouseUpEvent:function(e){this.updateAvailabilityDraft(e)},genTitle:function(){var e=this,t=this.$createElement;return t("div",{class:"hn-schedule-selector__title-wrap"},[this.dates.map((function(n,r){var i=e.formatDate||f.a;return t("div",{class:"hn-schedule-selector__date-day"},[i(n[0],e.dateFormat)])}))])},genTimeLabels:function(){for(var e,t=this.$createElement,n=[],r=this.startTime,i=this.endTime,o=this.halfHour,s=r;s<=i;s+=1)n.push(t("div",{class:{"hn-schedule-selector__time-label":!0,"hn-schedule-selector__time-label--halfHour":o},key:s},[(e=s,(0===e?"24":e)+":00")]));return t("div",{class:"hn-schedule-selector__time-wrap"},[n])},genDateCell:function(e){var t=this.$createElement,n=Boolean(this.selectionDraft.find((function(t){return c()(t,e)})));return t("div",{class:{"hn-schedule-selector__date-cell":!0,"hn-schedule-selector__date-cell--selected":n,"hn-schedule-selector__date-cell--unselected":!n,"hn-schedule-selector__date-cell--halfHour":this.halfHour},on:{mousedown:this.handleSelectionStartEvent.bind(this,e),mouseenter:this.handleMouseEnterEvent.bind(this,e),mouseup:this.handleMouseUpEvent.bind(this,e)}})},genDateColumn:function(e,t){var n=this;return(0,this.$createElement)("div",{class:"hn-schedule-selector__date-wrap"},[e.map((function(e){return n.genDateCell(e)}))])}},render:function(){var e=arguments[0];return e("div",{class:{"hn-schedule-selector":!0,"hn-schedule-selector--border":this.border}},[this.genTitle(),e("div",{class:"hn-schedule-selector__content",style:{height:this.height}},[this.genTimeLabels(),this.dates.map(this.genDateColumn)])])}},T=n(0),x=Object(T.a)(S,void 0,void 0,!1,null,null,null);x.options.__file="packages/schedule-selector/src/main.vue";var E=x.exports;E.install=function(e){e.component(E.name,E)};t.default=E},29:function(e,t){e.exports=require("date-fns/startOfDay")},46:function(e,t){e.exports=require("date-fns/isSameMinute")},48:function(e,t){e.exports=require("date-fns/format")},49:function(e,t){e.exports=require("date-fns/isAfter")},63:function(e,t){e.exports=require("date-fns/addMinutes")},64:function(e,t){e.exports=require("date-fns/addDays")},65:function(e,t){e.exports=require("date-fns/getHours")},66:function(e,t){e.exports=require("date-fns/startOfWeek")},67:function(e,t){e.exports=require("date-fns/isBefore")}}).default;