@sheng/date-week-range
Version:
This is a week range selector.
3 lines (2 loc) • 36.7 kB
JavaScript
import"core-js/modules/es.function.name.js";import"core-js/modules/es.symbol.js";import"core-js/modules/es.symbol.description.js";import"core-js/modules/es.object.to-string.js";import"core-js/modules/es.symbol.iterator.js";import"core-js/modules/es.string.iterator.js";import"core-js/modules/web.dom-collections.iterator.js";import"core-js/modules/es.array.from.js";import"core-js/modules/es.array.slice.js";import"core-js/modules/es.regexp.exec.js";import"core-js/modules/es.regexp.test.js";import"core-js/modules/es.error.cause.js";import"core-js/modules/es.number.constructor.js";import"core-js/modules/es.string.replace.js";import"core-js/modules/es.regexp.constructor.js";import"core-js/modules/es.regexp.dot-all.js";import"core-js/modules/es.regexp.sticky.js";import"core-js/modules/es.regexp.to-string.js";import"core-js/modules/web.dom-collections.for-each.js";import"core-js/modules/es.array.map.js";import"core-js/modules/es.array.includes.js";import Vue from"vue";import Clickoutside from"element-ui/src/utils/clickoutside";import{isDateObject,getWeekNumber,formatDate,parseDate,getFirstDayOfMonth,getDayCountOfMonth,nextDate,isDate,prevDate,clearTime,nextMonth,modifyWithTimeString,prevYear,prevMonth,nextYear}from"element-ui/src/utils/date-util";import Popper from"element-ui/src/utils/vue-popper";import Emitter from"element-ui/src/mixins/emitter";import merge from"element-ui/src/utils/merge";import dayjs from"dayjs";import"core-js/modules/es.array.concat.js";import Locale from"element-ui/src/mixins/locale";import"core-js/modules/es.array.join.js";import"core-js/modules/es.array.find-index.js";import DateTable from"element-ui/packages/date-picker/src/basic/date-table.vue";import{arrayFind}from"element-ui/src/utils/util";import locale from"element-ui/src/locale";export{default as locale}from"element-ui/src/locale";function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _unsupportedIterableToArray(o,minLen){if(o){if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);return"Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n?Array.from(o):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(o,minLen):void 0}}function _toConsumableArray(arr){return function(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr)}(arr)||function(iter){if("undefined"!=typeof Symbol&&null!=iter[Symbol.iterator]||null!=iter["@@iterator"])return Array.from(iter)}(arr)||_unsupportedIterableToArray(arr)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var DEFAULT_FORMATS={weekrange:"yyyy年WW周"},DATE_PARSER=function(text,format){return"timestamp"===format?new Date(Number(text)):parseDate(text,format)},TYPE_VALUE_RESOLVER_MAP={default:{formatter:function(value){return value?""+value:""},parser:function(text){return void 0===text||""===text?null:text}},weekrange:{formatter:function(value,format){function getDate(value){if(value){var y=value.getFullYear(),yearOneDateSun=new Date(y+"-01-01").getDay()||7,days=function(date){for(var year=date.getFullYear(),month=date.getMonth()+1,days=date.getDate(),monthDays=[31,28,31,30,31,30,31,31,30,31,30,31],i=0;i<month-1;i++)days+=monthDays[i];return function(year){return year%4==0&&year%100!=0||year%400==0}(year)&&month>2&&days++,days++}(value),week=getWeekNumber(value),month=value.getMonth(),trueDate=new Date(value);1===week&&11===month&&(trueDate.setHours(0,0,0,0),trueDate.setDate(trueDate.getDate()+3-(trueDate.getDay()+6)%7));var date=formatDate(trueDate,format);return 7-yearOneDateSun<4&&7-yearOneDateSun>=days&&(date=date.replace(new RegExp(y,"ig"),y-1)),date=/WW/.test(date)?date.replace(/WW/,week<10?"0"+week:week):date.replace(/W/,week)}}if(!Array.isArray(value))return getDate(value);var _step,dateList=[],_iterator=function(o,allowArrayLike){var it="undefined"!=typeof Symbol&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&"number"==typeof o.length){it&&(o=it);var i=0,F=function(){};return{s:F,n:function(){return i>=o.length?{done:!0}:{done:!1,value:o[i++]}},e:function(_e){throw _e},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var err,normalCompletion=!0,didErr=!1;return{s:function(){it=it.call(o)},n:function(){var step=it.next();return normalCompletion=step.done,step},e:function(_e2){didErr=!0,err=_e2},f:function(){try{normalCompletion||null==it.return||it.return()}finally{if(didErr)throw err}}}}(value);try{for(_iterator.s();!(_step=_iterator.n()).done;){dateList.push(getDate(_step.value))}}catch(err){_iterator.e(err)}finally{_iterator.f()}return dateList},parser:function(array,format){if(2===array.length){var range2=array[1];return[DATE_PARSER(array[0],format),DATE_PARSER(range2,format)]}return[]}}},PLACEMENT_MAP={left:"bottom-start",center:"bottom",right:"bottom-end"},parseAsFormatAndType=function(value,customFormat,type){return value?(0,(TYPE_VALUE_RESOLVER_MAP[type]||TYPE_VALUE_RESOLVER_MAP.default).parser)(value,customFormat||DEFAULT_FORMATS[type]):null},formatAsFormatAndType=function(value,customFormat){var type=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"weekrange";if(!value)return null;var formatter=(TYPE_VALUE_RESOLVER_MAP[type]||TYPE_VALUE_RESOLVER_MAP.default).formatter,format=customFormat||DEFAULT_FORMATS[type];return formatter(value,format)},valueEquals=function(a,b){var dateEquals=function(a,b){var aIsDate=a instanceof Date,bIsDate=b instanceof Date;return aIsDate&&bIsDate?a.getTime()===b.getTime():!aIsDate&&!bIsDate&&a===b},aIsArray=a instanceof Array,bIsArray=b instanceof Array;return aIsArray&&bIsArray?a.length===b.length&&a.every((function(item,index){return dateEquals(item,b[index])})):!aIsArray&&!bIsArray&&dateEquals(a,b)},isString=function(val){return"string"==typeof val||val instanceof String},validator=function(val){return null==val||isString(val)||Array.isArray(val)&&2===val.length&&val.every(isString)};function normalizeComponent(template,style,script,scopeId,isFunctionalTemplate,moduleIdentifier,shadowMode,createInjector,createInjectorSSR,createInjectorShadow){"boolean"!=typeof shadowMode&&(createInjectorSSR=createInjector,createInjector=shadowMode,shadowMode=!1);var hook,options="function"==typeof script?script.options:script;if(template&&template.render&&(options.render=template.render,options.staticRenderFns=template.staticRenderFns,options._compiled=!0,isFunctionalTemplate&&(options.functional=!0)),scopeId&&(options._scopeId=scopeId),moduleIdentifier?options._ssrRegister=hook=function(context){(context=context||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(context=__VUE_SSR_CONTEXT__),style&&style.call(this,createInjectorSSR(context)),context&&context._registeredComponents&&context._registeredComponents.add(moduleIdentifier)}:style&&(hook=shadowMode?function(context){style.call(this,createInjectorShadow(context,this.$root.$options.shadowRoot))}:function(context){style.call(this,createInjector(context))}),hook)if(options.functional){var originalRender=options.render;options.render=function(h,context){return hook.call(context),originalRender(h,context)}}else{var existing=options.beforeCreate;options.beforeCreate=existing?[].concat(existing,hook):[hook]}return script}var __vue_script__$1={mixins:[Emitter,{props:{appendToBody:Popper.props.appendToBody,offset:Popper.props.offset,boundariesPadding:Popper.props.boundariesPadding,arrowOffset:Popper.props.arrowOffset},methods:Popper.methods,data:function(){return merge({visibleArrow:!0,type:"weekrange"},Popper.data)},beforeDestroy:Popper.beforeDestroy}],inject:{elForm:{default:""},elFormItem:{default:""}},props:{size:String,format:String,valueFormat:String,readonly:Boolean,startPlaceholder:String,endPlaceholder:String,prefixIcon:String,clearIcon:{type:String,default:"el-icon-circle-close"},name:{default:"",validator},disabled:Boolean,clearable:{type:Boolean,default:!0},id:{default:"",validator},popperClass:String,editable:{type:Boolean,default:!0},align:{type:String,default:"left"},value:{},defaultValue:{},defaultTime:{},rangeSeparator:{default:"-"},pickerOptions:{},unlinkPanels:Boolean,validateEvent:{type:Boolean,default:!0}},directives:{Clickoutside},data:function(){return{pickerVisible:!1,showClose:!1,userInput:null,valueOnOpen:null,unwatchPickerOptions:null,dateList:[]}},watch:{pickerVisible:function(val){this.readonly||this.pickerDisabled||(val?(this.showPicker(),this.valueOnOpen=Array.isArray(this.value)?_toConsumableArray(this.value):this.value):(this.hidePicker(),this.emitChange(this.value),this.userInput=null,this.validateEvent&&this.dispatch("ElFormItem","el.form.blur"),this.$emit("blur",this),this.blur()))},parsedValue:{immediate:!0,handler:function(val){this.picker&&(this.picker.value=val)}},defaultValue:function(val){this.picker&&(this.picker.defaultValue=val)},value:function(val,oldVal){valueEquals(val,oldVal)||this.pickerVisible||!this.validateEvent||this.dispatch("ElFormItem","el.form.change",val)}},computed:{reference:function(){var reference=this.$refs.reference;return reference.$el||reference},refInput:function(){return this.reference?[].slice.call(this.reference.querySelectorAll("input")):[]},valueIsEmpty:function(){var val=this.value;if(Array.isArray(val)){for(var i=0,len=val.length;i<len;i++)if(val[i])return!1}else if(val)return!1;return!0},triggerClass:function(){return this.prefixIcon||"el-icon-date"},haveTrigger:function(){return void 0===this.showTrigger||this.showTrigger},displayValue:function(){var formattedValue=formatAsFormatAndType(this.parsedValue,this.format);return Array.isArray(this.userInput)?[this.userInput[0]||formattedValue&&formattedValue[0]||"",this.userInput[1]||formattedValue&&formattedValue[1]||""]:null!==this.userInput?this.userInput:formattedValue&&!Array.isArray(formattedValue)||Array.isArray(formattedValue)&&formattedValue.length>=2?formattedValue:""},parsedValue:function(){var _this$dateList,_this=this;return this.value?(console.log("parsedValue"),isDateObject(this.value)||Array.isArray(this.value)&&this.value.every(isDateObject)?this.value:this.valueFormat?(null!==(_this$dateList=this.dateList)&&void 0!==_this$dateList&&_this$dateList.length||(Array.isArray(this.value)?this.value.forEach((function(v){_this.dateList.push(new Date(v))})):this.dateList=this.value||[]),this.dateList):Array.isArray(this.value)?this.value.map((function(val){return new Date(val)})):new Date(this.value)):this.value},_elFormItemSize:function(){return(this.elFormItem||{}).elFormItemSize},pickerSize:function(){return this.size||this._elFormItemSize||(this.$ELEMENT||{}).size},pickerDisabled:function(){return this.disabled||(this.elForm||{}).disabled},firstInputId:function(){var obj={},id=this.id&&this.id[0];return id&&(obj.id=id),obj},secondInputId:function(){var obj={},id=this.id&&this.id[1];return id&&(obj.id=id),obj}},created:function(){this.popperOptions={boundariesPadding:0,gpuAcceleration:!1},this.placement=PLACEMENT_MAP[this.align]||PLACEMENT_MAP.left,this.$on("fieldReset",this.handleFieldReset)},methods:{focus:function(){this.handleFocus()},blur:function(){this.refInput.forEach((function(input){return input.blur()}))},parseValue:function(value){var isParsed=isDateObject(value)||Array.isArray(value)&&value.every(isDateObject);return this.valueFormat&&!isParsed&&parseAsFormatAndType(value,this.valueFormat,this.type)||value},formatToValue:function(date){var isFormattable=isDateObject(date)||Array.isArray(date)&&date.every(isDateObject);return this.valueFormat&&isFormattable?formatAsFormatAndType(date,this.valueFormat):date},parseString:function(value){return parseAsFormatAndType(value,this.format,this.type)},formatToString:function(value){return formatAsFormatAndType(value,this.format)},handleMouseEnter:function(){this.readonly||this.pickerDisabled||!this.valueIsEmpty&&this.clearable&&(this.showClose=!0)},handleChange:function(){if(this.userInput){var value=this.parseString(this.displayValue);value&&(this.picker.value=value,console.log(1),this.isValidValue(value)&&(this.emitInput(value),this.userInput=null))}""===this.userInput&&(this.emitInput(null),this.emitChange(null),this.userInput=null)},handleClickIcon:function(event){this.readonly||this.pickerDisabled||(this.showClose?(this.valueOnOpen=this.value,event.stopPropagation(),this.emitInput(null),this.emitChange(null),this.showClose=!1,this.picker&&"function"==typeof this.picker.handleClear&&this.picker.handleClear()):this.pickerVisible=!this.pickerVisible)},handleClose:function(){this.pickerVisible&&(this.pickerVisible=!1)},handleFieldReset:function(initialValue){this.userInput=""===initialValue?null:initialValue},handleFocus:function(){this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},handleKeydown:function(event){var _this2=this,keyCode=event.keyCode;return 27===keyCode?(this.pickerVisible=!1,void event.stopPropagation()):9!==keyCode?13===keyCode?((""===this.userInput||this.isValidValue(this.parseString(this.displayValue)))&&(this.handleChange(),this.pickerVisible=this.picker.visible=!1,this.blur()),void event.stopPropagation()):void(this.userInput?event.stopPropagation():this.picker&&this.picker.handleKeydown&&this.picker.handleKeydown(event)):void setTimeout((function(){-1===_this2.refInput.indexOf(document.activeElement)&&(_this2.pickerVisible=!1,_this2.blur(),event.stopPropagation())}),0)},handleRangeClick:function(){this.pickerVisible||(this.pickerVisible=!0),this.$emit("focus",this)},hidePicker:function(){var _this3=this;this.picker&&(setTimeout((function(){_this3.picker.resetView&&_this3.picker.resetView()}),100),this.pickerVisible=this.picker.visible=!1,this.destroyPopper())},showPicker:function(){var _this4=this;this.$isServer||(this.picker||this.mountPicker(),this.pickerVisible=this.picker.visible=!0,this.updatePopper(),this.picker.value=this.parsedValue,this.picker.resetView&&this.picker.resetView(),this.$nextTick((function(){_this4.picker.adjustSpinners&&_this4.picker.adjustSpinners()})))},mountPicker:function(){var _this5=this;this.picker=new Vue(this.panel).$mount(),this.picker.defaultValue=this.defaultValue,this.picker.defaultTime=this.defaultTime,this.picker.popperClass=this.popperClass,this.popperElm=this.picker.$el,this.picker.width=this.reference.getBoundingClientRect().width,this.picker.showTime=!1,this.picker.unlinkPanels=this.unlinkPanels,this.picker.arrowControl=this.arrowControl||this.timeArrowControl||!1,this.$watch("format",(function(format){_this5.picker.format=format}));var updateOptions=function(){var options=_this5.pickerOptions;if(options&&options.selectableRange){var ranges=options.selectableRange,parser=TYPE_VALUE_RESOLVER_MAP.datetimerange.parser,format=DEFAULT_FORMATS.timerange;ranges=Array.isArray(ranges)?ranges:[ranges],_this5.picker.selectableRange=ranges.map((function(range){return parser(range,format,_this5.rangeSeparator)}))}for(var option in options)Object.hasOwnProperty.call(options,option)&&"selectableRange"!==option&&(_this5.picker[option]=options[option]);_this5.format&&(_this5.picker.format=_this5.format)};updateOptions(),this.unwatchPickerOptions=this.$watch("pickerOptions",(function(){return updateOptions()}),{deep:!0}),this.$el.appendChild(this.picker.$el),this.picker.resetView&&this.picker.resetView(),this.picker.$on("dodestroy",this.doDestroy),this.picker.$on("pick",(function(){var date=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",visible=arguments.length>1&&void 0!==arguments[1]&&arguments[1];_this5.userInput=null,_this5.pickerVisible=_this5.picker.visible=visible,_this5.emitInput(date),_this5.picker.resetView&&_this5.picker.resetView()})),this.picker.$on("select-range",(function(start,end,pos){0!==_this5.refInput.length&&(pos&&"min"!==pos?"max"===pos&&(_this5.refInput[1].setSelectionRange(start,end),_this5.refInput[1].focus()):(_this5.refInput[0].setSelectionRange(start,end),_this5.refInput[0].focus()))}))},unmountPicker:function(){this.picker&&(this.picker.$destroy(),this.picker.$off(),"function"==typeof this.unwatchPickerOptions&&this.unwatchPickerOptions(),this.picker.$el.parentNode.removeChild(this.picker.$el))},emitChange:function(val){valueEquals(val,this.valueOnOpen)||(this.$emit("change",val),this.valueOnOpen=val,this.validateEvent&&this.dispatch("ElFormItem","el.form.change",val))},emitInput:function(val){var _this6=this;this.dateList=val;var formatted=this.formatToValue(val);if(!valueEquals(this.value,formatted)){this.$emit("input",formatted),this.$emit("input-true-value",formatted.map((function(dateStr){var _ref$firstDayOfWeek=(_this6.pickerOptions||{}).firstDayOfWeek,firstDayOfWeek=void 0===_ref$firstDayOfWeek?0:_ref$firstDayOfWeek,firstDay=dayjs(dateStr).date(1).day();if(2===firstDayOfWeek&&1===firstDay||3===firstDayOfWeek&&[1,2].includes(firstDay)){var substract7Day=dayjs(dateStr).subtract(7,"day");return _this6.valueFormat?substract7Day.format(_this6.valueFormat):substract7Day.toDate()}return dateStr})))}},isValidValue:function(value){return this.picker||this.mountPicker(),!this.picker.isValidValue||value&&this.picker.isValidValue(value)}}},__vue_render__$1=function(){var _vm=this,_c=_vm._self._c||_vm.$createElement;return _c("div",{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:_vm.handleClose,expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor el-range-editor el-input__inner",class:["el-date-editor--daterange",_vm.pickerSize?"el-range-editor--"+_vm.pickerSize:"",_vm.pickerDisabled?"is-disabled":"",_vm.pickerVisible?"is-active":""],on:{click:_vm.handleRangeClick,mouseenter:_vm.handleMouseEnter,mouseleave:function($event){_vm.showClose=!1},keydown:_vm.handleKeydown}},[_c("i",{class:["el-input__icon","el-range__icon",_vm.triggerClass]}),_vm._v(" "),_c("input",_vm._b({staticClass:"el-range-input",attrs:{autocomplete:"off",placeholder:_vm.startPlaceholder,disabled:_vm.pickerDisabled,name:_vm.name&&_vm.name[0],readonly:""},domProps:{value:_vm.displayValue&&_vm.displayValue[0]}},"input",_vm.firstInputId,!1)),_vm._v(" "),_vm._t("range-separator",(function(){return[_c("span",{staticClass:"el-range-separator"},[_vm._v(_vm._s(_vm.rangeSeparator))])]})),_vm._v(" "),_c("input",_vm._b({staticClass:"el-range-input",attrs:{autocomplete:"off",placeholder:_vm.endPlaceholder,disabled:_vm.pickerDisabled,name:_vm.name&&_vm.name[1],readonly:""},domProps:{value:_vm.displayValue&&_vm.displayValue[1]}},"input",_vm.secondInputId,!1)),_vm._v(" "),_vm.haveTrigger?_c("i",{staticClass:"el-input__icon el-range__close-icon",class:[_vm.showClose?""+_vm.clearIcon:""],on:{click:_vm.handleClickIcon}}):_vm._e()],2)};__vue_render__$1._withStripped=!0;var __vue_component__$1=normalizeComponent({render:__vue_render__$1,staticRenderFns:[]},undefined,__vue_script__$1,undefined,false,undefined,!1,void 0,void 0,void 0);function _slicedToArray(arr,i){return function(arr){if(Array.isArray(arr))return arr}(arr)||function(arr,i){var _i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _s,_e,_arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}(arr,i)||_unsupportedIterableToArray(arr,i)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var getDateTimestamp=function(time){return"number"==typeof time||"string"==typeof time?clearTime(new Date(time)).getTime():time instanceof Date?clearTime(time).getTime():NaN},calcDefaultValue=function(defaultValue){return Array.isArray(defaultValue)?[new Date(defaultValue[0]),new Date(defaultValue[1])]:defaultValue?[new Date(defaultValue),nextDate(new Date(defaultValue),1)]:[new Date,nextDate(new Date,1)]},__vue_script__={mixins:[Locale],directives:{Clickoutside},computed:{leftLabel:function(){return this.leftDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month".concat(this.leftDate.getMonth()+1))},rightLabel:function(){return this.rightDate.getFullYear()+" "+this.t("el.datepicker.year")+" "+this.t("el.datepicker.month".concat(this.rightDate.getMonth()+1))},leftYear:function(){return this.leftDate.getFullYear()},leftMonth:function(){return this.leftDate.getMonth()},rightYear:function(){return this.rightDate.getFullYear()},rightMonth:function(){return this.rightDate.getMonth()},enableMonthArrow:function(){return this.unlinkPanels&&new Date(this.leftYear+(this.leftMonth+1>=12?1:0),(this.leftMonth+1)%12)<new Date(this.rightYear,this.rightMonth)},enableYearArrow:function(){return this.unlinkPanels&&12*this.rightYear+this.rightMonth-(12*this.leftYear+this.leftMonth+1)>=12}},data:function(){return{popperClass:"",value:[],defaultValue:null,defaultTime:null,minDate:"",maxDate:"",leftDate:new Date,rightDate:nextMonth(new Date),rangeState:{endDate:null,selecting:!1,row:null,column:null},shortcuts:"",visible:"",disabledDate:"",cellClassName:"",firstDayOfWeek:7,format:"",arrowControl:!1,unlinkPanels:!1,dateUserInput:{min:null,max:null},timeUserInput:{min:null,max:null}}},watch:{minDate:function(){var _this=this;this.dateUserInput.min=null,this.timeUserInput.min=null,this.$nextTick((function(){if(_this.$refs.maxTimePicker&&_this.maxDate&&_this.maxDate<_this.minDate){_this.$refs.maxTimePicker.selectableRange=[[parseDate(formatDate(_this.minDate,"HH:mm:ss"),"HH:mm:ss"),parseDate("23:59:59","HH:mm:ss")]]}}))},maxDate:function(val){this.dateUserInput.max=null,this.timeUserInput.max=null,val&&this.$refs.maxTimePicker&&(this.$refs.maxTimePicker.date=val,this.$refs.maxTimePicker.value=val)},value:function(newVal){if(newVal){if(Array.isArray(newVal)){if((null==newVal?void 0:newVal.length)<2)return;if(this.minDate=isDate(newVal[0])?new Date(newVal[0]):null,this.maxDate=isDate(newVal[1])?new Date(newVal[1]):null,this.minDate&&this.maxDate){if(this.minDate.getTime()>this.maxDate.getTime()){var maxDate=this.minDate;this.minDate=this.maxDate,this.maxDate=maxDate}var prevWeekDay=Math.abs(7-this.firstDayOfWeek+this.minDate.getDay())%7;this.minDate=new Date(this.minDate.getTime()-60*prevWeekDay*60*24*1e3);var nextWeekDay=Math.abs(this.firstDayOfWeek-1-this.maxDate.getDay())%7;this.maxDate=new Date(this.maxDate.getTime()+60*nextWeekDay*60*24*1e3)}if(this.handleMinMaxDateWeek(),this.minDate)if(this.leftDate=this.minDate,this.unlinkPanels&&this.maxDate){var minDateYear=this.minDate.getFullYear(),minDateMonth=this.minDate.getMonth(),maxDateYear=this.maxDate.getFullYear(),maxDateMonth=this.maxDate.getMonth();this.rightDate=minDateYear===maxDateYear&&minDateMonth===maxDateMonth?nextMonth(this.maxDate):this.maxDate}else this.rightDate=nextMonth(this.leftDate);else this.leftDate=calcDefaultValue(this.defaultValue)[0],this.rightDate=nextMonth(this.leftDate)}}else this.minDate=null,this.maxDate=null},defaultValue:function(val){if(!Array.isArray(this.value)){var _calcDefaultValue2=_slicedToArray(calcDefaultValue(val),2),right=_calcDefaultValue2[1];this.leftDate=_calcDefaultValue2[0],this.rightDate=val&&val[1]&&this.unlinkPanels?right:nextMonth(this.leftDate)}}},methods:{handleMinMaxDateWeek:function(){if(this.minDate&&this.maxDate){if(this.minDate.getTime()>this.maxDate.getTime()){var maxDate=this.minDate;this.minDate=this.maxDate,this.maxDate=maxDate}var prevWeekDay=Math.abs(7-this.firstDayOfWeek+this.minDate.getDay())%7;this.minDate=new Date(this.minDate.getTime()-60*prevWeekDay*60*24*1e3);var nextWeekDay=Math.abs(this.firstDayOfWeek-1-this.maxDate.getDay())%7;this.maxDate=new Date(this.maxDate.getTime()+60*nextWeekDay*60*24*1e3)}},handleChangeRange:function(val){this.minDate=val.minDate,this.maxDate=val.maxDate,this.rangeState=val.rangeState},handleRangePick:function(val){var _this2=this,close=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],defaultTime=this.defaultTime||[],minDate=modifyWithTimeString(val.minDate,defaultTime[0]),maxDate=modifyWithTimeString(val.maxDate,defaultTime[1]);this.maxDate===maxDate&&this.minDate===minDate||(this.onPick&&this.onPick(val),this.maxDate=maxDate,this.minDate=minDate,setTimeout((function(){_this2.maxDate=maxDate,_this2.minDate=minDate}),10),close&&this.handleConfirm())},handleShortcutClick:function(shortcut){shortcut.onClick&&shortcut.onClick(this)},leftPrevYear:function(){this.leftDate=prevYear(this.leftDate),this.unlinkPanels||(this.rightDate=nextMonth(this.leftDate))},leftPrevMonth:function(){this.leftDate=prevMonth(this.leftDate),this.unlinkPanels||(this.rightDate=nextMonth(this.leftDate))},rightNextYear:function(){this.unlinkPanels?this.rightDate=nextYear(this.rightDate):(this.leftDate=nextYear(this.leftDate),this.rightDate=nextMonth(this.leftDate))},rightNextMonth:function(){this.unlinkPanels?this.rightDate=nextMonth(this.rightDate):(this.leftDate=nextMonth(this.leftDate),this.rightDate=nextMonth(this.leftDate))},leftNextYear:function(){this.leftDate=nextYear(this.leftDate)},leftNextMonth:function(){this.leftDate=nextMonth(this.leftDate)},rightPrevYear:function(){this.rightDate=prevYear(this.rightDate)},rightPrevMonth:function(){this.rightDate=prevMonth(this.rightDate)},handleConfirm:function(){var visible=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.isValidValue([this.minDate,this.maxDate])&&this.$emit("pick",[this.minDate,this.maxDate],visible)},isValidValue:function(value){return Array.isArray(value)&&value&&value[0]&&value[1]&&isDate(value[0])&&isDate(value[1])&&value[0].getTime()<=value[1].getTime()&&("function"!=typeof this.disabledDate||!this.disabledDate(value[0])&&!this.disabledDate(value[1]))},resetView:function(){this.minDate&&null==this.maxDate&&(this.rangeState.selecting=!1),this.minDate=this.value&&isDate(this.value[0])?new Date(this.value[0]):null,this.maxDate=this.value&&isDate(this.value[0])?new Date(this.value[1]):null,this.handleMinMaxDateWeek()}},components:{WeekTable:{mixins:[DateTable],computed:{minDateTimestamp:function(){return getDateTimestamp(this.minDate)},maxDateTimestamp:function(){return getDateTimestamp(this.maxDate)},rows:function(){var _this=this,date=new Date(this.year,this.month,1),day=getFirstDayOfMonth(date),dateCountOfMonth=getDayCountOfMonth(date.getFullYear(),date.getMonth()),dateCountOfLastMonth=getDayCountOfMonth(date.getFullYear(),0===date.getMonth()?11:date.getMonth()-1);day=0===day?7:day;for(var offset=this.offsetDay,rows=this.tableRows,count=1,startDate=this.startDate,disabledDate=this.disabledDate,cellClassName=this.cellClassName,selectedDate=[],now=getDateTimestamp(new Date),i=0;i<6;i++){var row=rows[i];this.showWeekNumber&&(row[0]||(row[0]={type:"week",text:getWeekNumber(nextDate(startDate,7*i+1))}));for(var _loop=function(j){var cell=row[_this.showWeekNumber?j+1:j];cell||(cell={row:i,column:j,type:"normal",inRange:!1,start:!1,end:!1}),cell.type="normal";var time=nextDate(startDate,7*i+j-offset).getTime();if(cell.inRange=time>=_this.minDateTimestamp&&time<=_this.maxDateTimestamp,cell.start=_this.minDate&&time===_this.minDateTimestamp,cell.end=_this.maxDate&&time===_this.maxDateTimestamp,time===now&&(cell.type="today"),i>=0&&i<=1){var numberOfDaysFromPreviousMonth=day+offset<0?7+day+offset:day+offset;j+7*i>=numberOfDaysFromPreviousMonth?cell.text=count++:(cell.text=dateCountOfLastMonth-(numberOfDaysFromPreviousMonth-j%7)+1+7*i,cell.type="prev-month")}else count<=dateCountOfMonth?cell.text=count++:(cell.text=count++-dateCountOfMonth,cell.type="next-month");var cellDate=new Date(time);cell.disabled="function"==typeof disabledDate&&disabledDate(cellDate),cell.selected=arrayFind(selectedDate,(function(date){return date.getTime()===cellDate.getTime()})),cell.customClass="function"==typeof cellClassName&&cellClassName(cellDate),_this.$set(row,_this.showWeekNumber?j+1:j,cell)},j=0;j<7;j++)_loop(j)}return rows}},methods:{getCellClasses:function(cell){var _this2=this,defaultValue=this.defaultValue?Array.isArray(this.defaultValue)?this.defaultValue:[this.defaultValue]:[],classes=[];return"normal"!==cell.type&&"today"!==cell.type||cell.disabled?classes.push(cell.type):(classes.push("available"),"today"===cell.type&&classes.push("today")),"normal"===cell.type&&defaultValue.some((function(date){return _this2.cellMatchesDate(cell,date)}))&&classes.push("default"),!cell.inRange||"normal"!==cell.type&&"today"!==cell.type||((isDate(this.minDate)&&isDate(this.maxDate)||this.rangeState.selecting)&&classes.push("in-range"),cell.start?classes.push("start-date"):cell.end&&classes.push("end-date")),cell.disabled&&classes.push("disabled"),cell.selected&&classes.push("selected"),cell.customClass&&classes.push(cell.customClass),classes.join(" ")},isWeekActive:function(cell){var newDate=new Date(this.year,this.month,1),year=newDate.getFullYear(),month=newDate.getMonth();if("prev-month"===cell.type&&(newDate.setMonth(0===month?11:month-1),newDate.setFullYear(0===month?year-1:year)),"next-month"===cell.type&&(newDate.setMonth(11===month?0:month+1),newDate.setFullYear(11===month?year+1:year)),newDate.setDate(parseInt(cell.text,10)),isDate(this.value)){var dayOffset=(this.value.getDay()-this.firstDayOfWeek+7)%7-1;return prevDate(this.value,dayOffset).getTime()===newDate.getTime()}return!1},handleMouseMove:function(event,isManual){var _this3=this;if(this.rangeState.selecting){var target=event.target;if("SPAN"===target.tagName&&(target=target.parentNode.parentNode),"DIV"===target.tagName&&(target=target.parentNode),"TD"===target.tagName){var row=target.parentNode.rowIndex-1,isMinGreatMax=+new Date(this.rangeState.startDate)>=+new Date(this.getDateOfCell(row,6)),column=isMinGreatMax?0:6,findIndex=this.rows[row].findIndex((function(item){return!item.disabled}));if(this.rows[row].some((function(item){return item.disabled}))&&findIndex>=0&&(column=findIndex),!this.rows[row][column].disabled&&(row!==this.lastRow||column!==this.lastColumn)){var minDateList=this.rangeState.minDateList,endDate=this.getDateOfCell(row,column);isManual||(isMinGreatMax&&!this.isMinGreatMax&&2===minDateList.length||this.minDate.getTime()>endDate.getTime()?(this.$emit("pick",{minDate:minDateList[1],maxDate:null}),this.isMinGreatMax=!0):(this.isMinGreatMax&&!isMinGreatMax||this.minDate.getTime()<endDate.getTime())&&(this.$emit("pick",{minDate:minDateList[0],maxDate:null}),this.isMinGreatMax=!1)),this.$nextTick((function(){_this3.$emit("changerange",{minDate:_this3.minDate,maxDate:_this3.maxDate,rangeState:{selecting:!0,endDate,startDate:_this3.rangeState.startDate,minDateList:_this3.rangeState.minDateList}}),_this3.lastRow=row,_this3.lastColumn=target.cellIndex}))}}}},handleClick:function(event){var _this4=this,target=event.target;if("SPAN"===target.tagName&&(target=target.parentNode.parentNode),"DIV"===target.tagName&&(target=target.parentNode),"TD"===target.tagName){var row=target.parentNode.rowIndex-1,column=this.rangeState.selecting?6:0,findIndex=this.rows[row].findIndex((function(item){return!item.disabled})),isExistDis=this.rows[row].some((function(item){return item.disabled}));this.rangeState.startDate&&this.rangeState.selecting&&(column=+new Date(this.rangeState.startDate)>=+new Date(this.getDateOfCell(row,6))?0:6),isExistDis&&findIndex>=0&&(column=findIndex);var cell=this.rows[row][column];if(!cell.disabled&&"week"!==cell.type){var newDate=this.getDateOfCell(row,column);this.rangeState.selecting?(this.$emit("pick",newDate>=this.minDate?{minDate:this.minDate,maxDate:newDate}:{minDate:newDate,maxDate:this.minDate}),this.rangeState.selecting=!1):(this.rangeState.startDate=newDate,this.rangeState.minDateList=[this.getDateOfCell(row,0),this.getDateOfCell(row,6)],this.$emit("pick",{minDate:newDate,maxDate:null}),this.rangeState.selecting=!0,this.$nextTick((function(){_this4.handleMouseMove({target:{tagName:"TD",parentNode:{rowIndex:row+1,cellIndex:column}}},!0)})))}}}}}}},__vue_render__=function(){var _vm=this,_c=_vm._self._c||_vm.$createElement;return _c("transition",{attrs:{name:"el-zoom-in-top"},on:{"after-leave":function($event){return _vm.$emit("dodestroy")}}},[_c("div",{directives:[{name:"show",rawName:"v-show",value:_vm.visible,expression:"visible"}],staticClass:"el-picker-panel el-date-range-picker el-popper",class:[{"has-sidebar":_vm.$slots.sidebar||_vm.shortcuts},_vm.popperClass]},[_c("div",{staticClass:"el-picker-panel__body-wrapper"},[_vm._t("sidebar"),_vm._v(" "),_vm.shortcuts?_c("div",{staticClass:"el-picker-panel__sidebar"},_vm._l(_vm.shortcuts,(function(shortcut,key){return _c("button",{key,staticClass:"el-picker-panel__shortcut",attrs:{type:"button"},on:{click:function($event){return _vm.handleShortcutClick(shortcut)}}},[_vm._v(_vm._s(shortcut.text))])})),0):_vm._e(),_vm._v(" "),_c("div",{staticClass:"el-picker-panel__body"},[_c("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-left"},[_c("div",{staticClass:"el-date-range-picker__header"},[_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",attrs:{type:"button"},on:{click:_vm.leftPrevYear}}),_vm._v(" "),_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",attrs:{type:"button"},on:{click:_vm.leftPrevMonth}}),_vm._v(" "),_vm.unlinkPanels?_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",class:{"is-disabled":!_vm.enableYearArrow},attrs:{type:"button",disabled:!_vm.enableYearArrow},on:{click:_vm.leftNextYear}}):_vm._e(),_vm._v(" "),_vm.unlinkPanels?_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",class:{"is-disabled":!_vm.enableMonthArrow},attrs:{type:"button",disabled:!_vm.enableMonthArrow},on:{click:_vm.leftNextMonth}}):_vm._e(),_vm._v(" "),_c("div",[_vm._v(_vm._s(_vm.leftLabel))])]),_vm._v(" "),_c("week-table",{attrs:{"selection-mode":"weekrange",date:_vm.leftDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{changerange:_vm.handleChangeRange,pick:_vm.handleRangePick}})],1),_vm._v(" "),_c("div",{staticClass:"el-picker-panel__content el-date-range-picker__content is-right"},[_c("div",{staticClass:"el-date-range-picker__header"},[_vm.unlinkPanels?_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-left",class:{"is-disabled":!_vm.enableYearArrow},attrs:{type:"button",disabled:!_vm.enableYearArrow},on:{click:_vm.rightPrevYear}}):_vm._e(),_vm._v(" "),_vm.unlinkPanels?_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-left",class:{"is-disabled":!_vm.enableMonthArrow},attrs:{type:"button",disabled:!_vm.enableMonthArrow},on:{click:_vm.rightPrevMonth}}):_vm._e(),_vm._v(" "),_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-d-arrow-right",attrs:{type:"button"},on:{click:_vm.rightNextYear}}),_vm._v(" "),_c("button",{staticClass:"el-picker-panel__icon-btn el-icon-arrow-right",attrs:{type:"button"},on:{click:_vm.rightNextMonth}}),_vm._v(" "),_c("div",[_vm._v(_vm._s(_vm.rightLabel))])]),_vm._v(" "),_c("week-table",{attrs:{"selection-mode":"weekrange",date:_vm.rightDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{changerange:_vm.handleChangeRange,pick:_vm.handleRangePick}})],1)])],2)])])};__vue_render__._withStripped=!0;var __vue_component__=normalizeComponent({render:__vue_render__,staticRenderFns:[]},undefined,__vue_script__,undefined,false,undefined,!1,void 0,void 0,void 0),getPanel=function(){return __vue_component__},DatePicker={mixins:[__vue_component__$1],name:"DateWeekRange",props:{timeArrowControl:Boolean},watch:{type:function(_type){this.picker?(this.unmountPicker(),this.panel=getPanel(),this.mountPicker()):this.panel=getPanel()}},created:function(){this.panel=getPanel()}},pkg_version="0.0.3";function install(Vue){var opts=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};locale.use(opts.locale),locale.i18n(opts.i18n),Vue.component(DatePicker.name,DatePicker)}DatePicker.install=install;var version=DatePicker.version=pkg_version;"undefined"!=typeof window&&window.Vue&&install(window.Vue);var DateWeekRange=DatePicker;export{DateWeekRange,DatePicker as default,install,version};
//# sourceMappingURL=index.esm.js.map