UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

2 lines (1 loc) 34.4 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=require("../../../node_modules/moment/dist/moment.js");require("./jquery-3.6.0.min.js");var e=require("./xntimepicker.js"),a={week:"YYYY-MM-DD",date:"YYYY-MM-DD",daterange:"YYYY-MM-DD",datetime:"YYYY-MM-DD HH:mm:ss",datetimerange:"YYYY-MM-DD HH:mm:ss",month:"YYYY-MM",monthrange:"YYYY-MM",year:"YYYY",yearrange:"YYYY",multiple:"YYYY-MM-DD"},i={multiple:[],week:[{name:"最近一周",value:{startTime:t.default().startOf("week"),endTime:t.default().endOf("week")}},{name:"本月第一周",value:{startTime:t.default().startOf("month").startOf("week"),endTime:t.default().startOf("month").endOf("week")}},{name:"本年第一周",value:{startTime:t.default().startOf("year").startOf("week"),endTime:t.default().startOf("year").endOf("week")}}],date:[{name:"今天",value:{startTime:t.default().startOf("day")}},{name:"昨天",value:{startTime:t.default().subtract(1,"days").startOf("day")}},{name:"本周第一天",value:{startTime:t.default().startOf("week").startOf("day")}},{name:"本月第一天",value:{startTime:t.default().startOf("month").startOf("day")}},{name:"本年第一天",value:{startTime:t.default().startOf("year").startOf("day")}}],datetime:[{name:"现在",value:{startTime:t.default()}},{name:"今天",value:{startTime:t.default().startOf("day")}},{name:"昨天",value:{startTime:t.default().subtract(1,"days").startOf("day")}},{name:"本周第一天",value:{startTime:t.default().startOf("week").startOf("day")}},{name:"本月第一天",value:{startTime:t.default().startOf("month").startOf("day")}},{name:"本年第一天",value:{startTime:t.default().startOf("year").startOf("day")}}],daterange:[{name:"最近一天",value:{startTime:t.default().subtract(1,"days"),endTime:t.default()}},{name:"最近三天",value:{startTime:t.default().subtract(3,"days").startOf("day"),endTime:t.default()}},{name:"最近一周",value:{startTime:t.default().subtract(7,"days").startOf("day"),endTime:t.default()}},{name:"最近一月",value:{startTime:t.default().subtract(1,"months").startOf("day"),endTime:t.default()}},{name:"最近一年",value:{startTime:t.default().subtract(1,"years").startOf("day"),endTime:t.default()}},{name:"本月",value:{startTime:t.default().startOf("month").startOf("day"),endTime:t.default()}},{name:"本年",value:{startTime:t.default().startOf("year").startOf("day"),endTime:t.default()}}],datetimerange:[{name:"今天",value:{startTime:t.default().startOf("day"),endTime:t.default()}},{name:"最近一天",value:{startTime:t.default().subtract(1,"days"),endTime:t.default()}},{name:"最近三天",value:{startTime:t.default().subtract(3,"days"),endTime:t.default()}},{name:"最近一周",value:{startTime:t.default().subtract(7,"days"),endTime:t.default()}},{name:"最近一月",value:{startTime:t.default().subtract(1,"months"),endTime:t.default()}},{name:"最近一年",value:{startTime:t.default().subtract(1,"years"),endTime:t.default()}},{name:"本月",value:{startTime:t.default().startOf("month"),endTime:t.default()}},{name:"本年",value:{startTime:t.default().startOf("year"),endTime:t.default()}}],month:[],monthrange:[{name:"最近一月",value:{startTime:t.default().subtract(1,"months").startOf("month"),endTime:t.default()}},{name:"最近两月",value:{startTime:t.default().subtract(2,"months").startOf("month"),endTime:t.default()}},{name:"最近三月",value:{startTime:t.default().subtract(3,"months").startOf("month"),endTime:t.default()}},{name:"最近一年",value:{startTime:t.default().subtract(1,"years").startOf("month"),endTime:t.default()}},{name:"本年",value:{startTime:t.default().startOf("year").startOf("month"),endTime:t.default()}}],year:[{name:"本年",value:{startTime:t.default().startOf("year")}}],yearrange:[{name:"最近一年",value:{startTime:t.default().startOf("year"),endTime:t.default()}},{name:"最近两年",value:{startTime:t.default().subtract(2,"years").startOf("year"),endTime:t.default()}},{name:"最近三年",value:{startTime:t.default().subtract(3,"years").startOf("year"),endTime:t.default()}},{name:"最近五年",value:{startTime:t.default().subtract(5,"years").startOf("year"),endTime:t.default()}},{name:"最近十年",value:{startTime:t.default().subtract(10,"years").startOf("year"),endTime:t.default()}}]},s={showWeek:!0,placeholder:"请选择",shortList:[],locale:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthHead:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],week:["日","一","二","三","四","五","六"],clear:"清空",confirm:"确定",yearHeadSuffix:"年"},confirmFirst:!0,separator:" 到 ",showType:"modal",linkPanels:!1,showClear:!0,autoConfirm:!0,showShortKeys:!0,autoFillDate:!0,firstDayOfWeek:7,theme:"default",multipleDates:[],startTime:"",endTime:"",minDate:"",maxDate:""};function n(e,n,d,r,o){var h=this;h.$targetDom=$(e),h.$targetValDom=$(n),h.option=$.extend(!1,s,d),h.type=h.option.type,h.format=h.type.indexOf("year")>-1?"YYYY":h.type.indexOf("month")>-1?"YYYY-MM":(h.type.indexOf("time"),"YYYY-MM-DD"),h.option.startTime=t.default(h.option.startTime||t.default()),h.option.endTime=t.default(h.option.endTime||t.default()),h.option.minDate&&(h.option.minDate=t.default(h.option.minDate)),h.option.maxDate&&(h.option.maxDate=t.default(h.option.maxDate)),h.onConfirm=r,h.initFn=o,h.selectedDate={},h.date1=h.option.startTime.clone(),h.date2=h.option.endTime.clone(),h.tempdate1,h.tempdate2,h.multipleDates=$.extend(!0,[],h.option.multipleDates||[]),d.shortList||(h.option.shortList=i[h.type]),d.format||(h.option.format=a[h.type]),h.id=h.getRandomString(),h.show=!1,h.eventList={},h.init(),h.addPosEvent(),h.addTargetEvent()}n.prototype={init(){this.setCurrentTime({startTime:this.option.startTime,endTime:this.option.endTime}),this.rendDatePicker(),this.addEvent(),this.initCallback(),this.initTimePicker(),this.rendHoverStyle(),this.setDate(),this.confirm(!1,!0)},resetCurrentTime(e,a){"multiple"==this.type&&(this.multipleDates=$.extend(!0,[],this.selectedMultiple||[])),this.selectedDate[0]||(this.selectedDate[0]=t.default()),!this.selectedDate[1]&&("week"==this.type||this.type.indexOf("range")>-1)&&(this.selectedDate[1]=t.default()),e&&(this.selectedDate[0]=t.default(e)),a&&(this.selectedDate[1]=t.default(a)),this.setCurrentTime({startTime:this.selectedDate[0],endTime:this.selectedDate[1]}),this.setCurrentDay(),this.updateCurrentTime(1),this.updateCurrentTime(2)},getCurrentTargetTime(){"INPUT"==this.$targetDom[0].nodeName?this.$targetValDom[0].value:this.$$targetValDom[0].innerHTML},updateCurrentTime(e){if(this["timepicker"+e]){var a=t.default(this.selectedDate[e-1]).format("YYYY-MM-DD HH:mm:ss");this["timepicker"+e].updateCurrentTime(a)}},initTimePicker(){var a=this;"datetime"!=this.type&&"datetimerange"!=this.type||(this.timepicker1=new e.XNTimepicker(this.$container.find(".time1 .timecont"),{time:a.selectedDate[0],onConfirm(e){var i=t.default(a.selectedDate[0]);i=(i=(i=i.hours(e.value.hour)).minutes(e.value.minute)).seconds(e.value.second),a.date1=i,a.$container.find(".time1 .timecont>span").html(e.str)}})),"datetimerange"==this.type&&(this.timepicker2=new e.XNTimepicker(this.$container.find(".time2 .timecont"),{time:a.selectedDate[1],onConfirm(e){var i=t.default(a.selectedDate[1]);i=(i=(i=i.hours(e.value.hour)).minutes(e.value.minute)).seconds(e.value.second),a.date2=i,a.$container.find(".time2 .timecont>span").html(e.str)}}))},initCallback(){""===this.option.startTime?this.on("confirm",this.initFn,!0):this.on("confirm",this.onConfirm,!0)},addTargetEvent(){var t=t=>{t.target==this.$targetDom[0]?this.changeShowStatus():$(t.target).parents(".xndatepicker")[0]&&$(t.target).parents(".xndatepicker")[0].id==this.id||this.changeShowStatus(!0)};this.removeClickEvent=()=>{document.removeEventListener("click",t,!0)},document.addEventListener("click",t,!0)},changeShowStatus(t){this.show||t?(this.show=!0,this.$container.slideUp(100)):(this.$container.css({display:"block",opacity:"0"}),this.resetCurrentTime(),this.$container.animate({opacity:1},200)),this.show=!this.show},addPosEvent:function(){window.addEventListener("scroll",(function(){})),window.addEventListener("resize",(function(){}))},setPosition:function(){if(this.$container[0]){var t=document.documentElement.clientWidth,e=document.documentElement.clientHeight,a=this.$targetDom[0],i=a.getBoundingClientRect().top,s=a.getBoundingClientRect().top,n=a.getBoundingClientRect().left,d=a.getBoundingClientRect().left,r=this.$targetDom.outerWidth(),o=this.$targetDom.outerHeight(),h=this.$container.outerWidth(),m=this.$container.outerHeight(),l=-6,f=n+20,c="1px 0 0 1px";(i=i+o+10)+m>e&&(i=s-m-10,l=m-7,c="0 1px 1px 0"),i<0&&(i=0),n+h>t&&(n=d+r-h,f=h-60),n<0&&(n=0),this.$container[0].style.top=i+"px",this.$container[0].style.left=n+"px",this.$container.find(".xntriangle")[0].style.left=f+"px",this.$container.find(".xntriangle")[0].style.top=l+"px",this.$container.find(".xntriangle")[0].style.borderWidth=c}},rendHoverStyle(e){if(!e||!(this.type.indexOf("year")<0&&e.hasClass("year-item")||this.type.indexOf("date")>=0&&!e.hasClass("day-item"))){var a="YYYY-MM";if(this.type.indexOf("month"),this.type.indexOf("month"),(this.type.indexOf("month")>-1||this.type.indexOf("year")>-1)&&(a="YYYY"),this.type.indexOf("week")>-1){if(e){var i=e.attr("data-date"),s=t.default(i).subtract(parseInt(this.option.firstDayOfWeek)%7,"days").startOf("week").add(parseInt(this.option.firstDayOfWeek)%7,"days").format("YYYY-MM-DD"),n=t.default(i).subtract(parseInt(this.option.firstDayOfWeek)%7,"days").endOf("week").add(parseInt(this.option.firstDayOfWeek)%7,"days").format("YYYY-MM-DD");if(this.option.minDate&&t.default(n).isBefore(this.option.minDate))return;if(this.option.maxDate&&t.default(s).isAfter(this.option.maxDate))return;this.option.minDate&&t.default(s).isBefore(this.option.minDate)&&(s=t.default(this.option.minDate).format("YYYY-MM-DD")),this.option.maxDate&&t.default(n).isAfter(this.option.maxDate)&&(n=t.default(this.option.maxDate).format("YYYY-MM-DD")),this.$container.find(".hover").removeClass("hover"),this.$container.find("[data-date='"+s+"']").addClass("hover"),this.$container.find("[data-date='"+n+"']").addClass("hover"),this.$container.find("[data-date='"+s+"']").nextUntil(this.$container.find("[data-date='"+n+"']")).addClass("hover")}else this.$container.find(".hover").removeClass("hover");return this.$container.find(".cur-date").eq(0).nextUntil(this.$container.find(".cur-date").eq(1)).addClass("hover"),void this.$container.find(".cur-date").eq(1).addClass("right-date")}if(!e||e.hasClass("active-day"))if(this.type.indexOf("range")<0)this.$container.find(".cur-date").addClass("circle-date");else{if(this.$container.find(".hover").removeClass("hover"),!e||this.$container.find(".cur-date")[1]||this.date2){s=this.$container.find(".cur-date").eq(0).attr("data-date"),n=this.$container.find(".cur-date").eq(1).attr("data-date"),this.$container.find(".cur-date").eq(0).hasClass("circle-date")&&(n=s),$(".circle-date").removeClass("circle-date"),$(".right-date").removeClass("right-date");var d=t.default(s,"YYYY-MM-DD").isBefore(t.default(n,"YYYY-MM-DD"));if(this.type.indexOf("year")>-1)r=Number(s)-Number(s)%12==Number(n)-Number(n)%12;else r=t.default(s).format(a)==t.default(n).format(a);s!=n&&(r?d?this.$container.find(".cur-date").eq(0).nextUntil(this.$container.find(".cur-date").eq(1)).addClass("hover"):this.$container.find(".cur-date").eq(1).nextUntil(this.$container.find(".cur-date").eq(0)).addClass("hover"):(this.$container.find(".cur-date").eq(0).nextAll("span").addClass("hover"),this.$container.find(".cur-date").eq(1).prevAll("span").addClass("hover")))}else{s=this.$container.find(".cur-date").eq(0).attr("data-date"),n=e.attr("data-date"),$(".circle-date").removeClass("circle-date"),$(".right-date").removeClass("right-date");let i=t.default(s).isBefore(n);if(this.type.indexOf("year")>-1)var r=Number(s)-Number(s)%12==Number(n)-Number(n)%12;else var r=t.default(s).format(a)==t.default(n).format(a);s!=n&&(r?i?this.$container.find(".cur-date").eq(0).nextUntil(e).addClass("hover"):(this.$container.find(".cur-date").eq(0).addClass("right-date"),e.nextUntil(this.$container.find(".cur-date").eq(0)).addClass("hover")):i?(this.$container.find(".cur-date").eq(0).nextAll("span").addClass("hover"),e.prevAll("span").addClass("hover")):(this.$container.find(".cur-date").eq(0).addClass("right-date"),this.$container.find(".cur-date").eq(0).prevAll("span").addClass("hover"),e.nextAll("span").addClass("hover")))}s==n?this.$container.find(".cur-date").eq(0).addClass("circle-date"):this.$container.find(".cur-date").eq(1).addClass("right-date")}}},setDate(){var e={};this.$container.find(".cur-date").each(((a,i)=>{$(i).parents(".date-item").attr("data-id");var s=t.default($(i).attr("data-date"),"YYYY-MM-DD").format("YYYY-MM-DD"),n="";if(this.type.indexOf("time")&&(n=" "+this.$container.find(".time"+(a+1)+" .timecont>span").html()),e[a]=t.default(s),this.$container.find(".time"+(a+1)+">input").val(s),this.$container.find(".circle-date")[0]==i){e[1]=t.default(s+n),this.$container.find(".time2>input").val(s)}})),this.date1=e[0],this.date2=e[1]},rendOtherDateList(e){if(!(this.type.indexOf("range")<0)){var a,i,s=1==e?2:1;if(e<s){if((this.type.indexOf("date")>-1||this.type.indexOf("week")>-1)&&(t.default(this["tempdate"+e].format("YYYY-MM")).isSameOrAfter(this["tempdate"+s].format("YYYY-MM"))||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().add(1,"months"),this.geneDateList(this["tempdate"+s],this.$container.find(".dater"+s))),this.type.indexOf("month")>-1&&((this["tempdate"+e].isSameOrAfter(this["tempdate"+s],"year")||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().add(1,"years")),this.rendMonth(s)),this.type.indexOf("year")>-1)((a=this["tempdate"+e].format("YYYY"))-a%12>=(i=this["tempdate"+s].format("YYYY"))-i%12||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().add(12,"years")),this.rendYears(s)}else if((this.type.indexOf("date")>-1||this.type.indexOf("week")>-1)&&(t.default(this["tempdate"+e].format("YYYY-MM")).isSameOrBefore(this["tempdate"+s].format("YYYY-MM"))||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().subtract(1,"months"),this.geneDateList(this["tempdate"+s],this.$container.find(".dater"+s))),this.type.indexOf("month")>-1&&((this["tempdate"+e].isSameOrBefore(this["tempdate"+s],"year")||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().subtract(1,"years")),this.rendMonth(s)),this.type.indexOf("year")>-1)((a=this["tempdate"+e].format("YYYY"))-a%12<=(i=this["tempdate"+s].format("YYYY"))-i%12||this.option.linkPanels)&&(this["tempdate"+s]=this["tempdate"+e].clone().subtract(12,"years")),this.rendYears(s)}},addEvent(){var e=t=>{var e=$(t.target);e.parents(".xndatepicker")[0]==this.$container[0]&&(e.hasClass("day-item")||e.hasClass("month-item")||e.hasClass("year-item"))&&this.rendHoverStyle(e)};this.removeMoveEvent=()=>{document.removeEventListener("mousemove",e)},document.addEventListener("mousemove",e),this.$container[0].addEventListener("click",(e=>{this.on("confirm",this.onConfirm,!0);var a=$(e.target),i=a.parents(".dater1")[0]?1:2;if(a.hasClass("skip-date")){var s=a.attr("data-func"),n=a.attr("data-unit");if(d=(d=$.extend(!0,{},t.default(this["tempdate"+i])))[s](1,n+"s").startOf(n),this.checkDisable(d,n,this.type,n))return;this["tempdate"+i][s](1,n+"s"),"year"==n&&(this.option.minDate&&this["tempdate"+i].isBefore(this.option.minDate)&&(this["tempdate"+i]=t.default(this.option.minDate)),this.option.maxDate&&this["tempdate"+i].isAfter(this.option.maxDate)&&(this["tempdate"+i]=t.default(this.option.maxDate))),this.geneDateList(this["tempdate"+i],this.$container.find(".dater"+i)),this.rendOtherDateList(i)}if(a.hasClass("month-prev-year")&&this.rendMonth(i),a.hasClass("month-next-year")&&this.rendMonth(i),a.hasClass("year-next-year")){if(d=(d=$.extend(!0,{},t.default(this["tempdate"+i]))).add(12,"years").startOf("year"),this.checkDisable(d,1,"year"))return;this["tempdate"+i]=this["tempdate"+i].add(12,"years"),this.rendYears(i),this.rendOtherDateList(i)}if(a.hasClass("year-prev-year")){var d;if(d=(d=$.extend(!0,{},t.default(this["tempdate"+i]))).startOf("year"),this.checkDisable(d,-1,"year"))return;this["tempdate"+i]=this["tempdate"+i].subtract(12,"years"),this.rendYears(i),this.rendOtherDateList(i)}if((this.type.indexOf("date")>-1&&a.hasClass("active-day")||a.hasClass("day-item")&&this.type.indexOf("week")>-1)&&(this["date"+i]=this["tempdate"+i].date(a.html()).clone(),this.setCurClass(a),this.setDate(),(this.type.indexOf("date")>-1||this.type.indexOf("week")>-1)&&a.hasClass("day-item")&&this.autoConfirm(a)),this.type.indexOf("multiple")>-1&&a.hasClass("day-item")&&!a.hasClass("disable-day")){var r=a.attr("data-date"),o=this.multipleDates.indexOf(r);o>-1?(this.multipleDates.splice(o,1),a.removeClass("cur-date")):(this.multipleDates.push(r),a.addClass("cur-date"))}if(a.hasClass("confirm-date")&&this.confirm(),a.hasClass("current-date")&&this.currentdate(),a.hasClass("clear-date")&&this.cleardate(),(a.hasClass("year")||a.hasClass("month-info"))&&this.rendYears(i),a.hasClass("month")&&this.rendMonth(i),a.hasClass("year-item")&&!a.hasClass("disable-year")&&(this.type.indexOf("year")>-1?(this["date"+i]=t.default(a.html()),this.setCurClass(a),this.setDate(),this.autoConfirm(a)):(this["tempdate"+i]=this["tempdate"+i].year(a.html()),this.rendMonth(i),this.rendOtherDateList(i))),a.hasClass("month-item")&&!a.hasClass("disable-month")&&(this.type.indexOf("month")>-1?(this["date"+i]=t.default(a.attr("data-date")),this.setCurClass(a),this.setDate(),this.autoConfirm(a)):(this["tempdate"+i]=t.default(a.attr("data-date")),this.geneDateList(this["tempdate"+i],this.$container.find(".dater"+i)),this.rendOtherDateList(i))),"LI"==a[0].nodeName&&a.parents(".shortcut")[0]){var h=a.parent().find("LI").index(a);this.setCurrentTime(this.option.shortList[h].value),this.setCurrentDay(),this.updateCurrentTime(1),this.updateCurrentTime(2),this.autoConfirm()}this.rendHoverStyle()}))},autoConfirm(){this.option.autoConfirm&&(this.type.indexOf("range")<0&&this.type.indexOf("time")<0||this.type.indexOf("week")>-1||this.type.indexOf("range")>-1&&this.date2&&this.date1&&this.type.indexOf("time")<0)&&this.confirm()},setCurClass(e){if(this.type.indexOf("week")>-1){var a=e.attr("data-date"),i=t.default(a).clone().subtract(parseInt(this.option.firstDayOfWeek)%7,"days").startOf("week").add(parseInt(this.option.firstDayOfWeek)%7,"days").format("YYYY-MM-DD"),s=t.default(a).clone().subtract(parseInt(this.option.firstDayOfWeek)%7,"days").endOf("week").add(parseInt(this.option.firstDayOfWeek)%7,"days").format("YYYY-MM-DD");this.option.minDate&&t.default(i).isBefore(this.option.minDate)&&(i=t.default(this.option.minDate).format("YYYY-MM-DD")),this.option.maxDate&&t.default(s).isAfter(this.option.maxDate)&&(s=t.default(this.option.maxDate).format("YYYY-MM-DD")),$(".cur-date").removeClass("cur-date"),this.date1=t.default(i),this.date2=t.default(s),this.$container.find('[data-date="'+this.date1.format("YYYY-MM-DD")+'"]').addClass("cur-date"),this.$container.find('[data-date="'+this.date2.format("YYYY-MM-DD")+'"]').addClass("cur-date")}else this.type.indexOf("range")>-1?this.$container.find(".cur-date").length>1||this.$container.find(".circle-date")[0]?this.$container.find(".cur-date").removeClass("cur-date"):this.$container.find(".cur-date").eq(0).attr("data-date")==e.attr("data-date")&&e.addClass("circle-date"):$(".cur-date").removeClass("cur-date"),e.addClass("cur-date")},setCurrentTime(e){this.option.maxDate&&t.default(e.startTime).isAfter(this.option.maxDate)&&(e.startTime=t.default(this.option.maxDate).clone()),this.option.minDate&&t.default(e.endTime).isBefore(this.option.minDate)&&(e.endTime=t.default(this.option.minDate).clone()),this.option.minDate&&t.default(e.startTime).isBefore(this.option.minDate)&&(e.startTime=t.default(this.option.minDate).clone()),this.option.maxDate&&t.default(e.endTime).isAfter(this.option.maxDate)&&(e.endTime=t.default(this.option.maxDate).clone());var a=$.extend(!0,{},e);e.startTime&&(a.startTime=e.startTime.clone()),e.endTime&&(a.endTime=e.endTime.clone()),this.selectedDate[0]=e.startTime,this.selectedDate[1]=e.endTime;var i=a.startTime;if(this.type.indexOf("range")>-1){if(this.type.indexOf("year")>-1){var s=(d=a.endTime).format("YYYY"),n=i.format("YYYY");n-n%12+12>=s-s%12?(this.tempdate2=d,this.tempdate1=d.clone().subtract("12","years")):(this.tempdate1=i,this.tempdate2=d)}else if(this.type.indexOf("date")>-1){var d=a.endTime;i.format("YYYY-MM")==d.format("YYYY-MM")?(this.tempdate1=t.default(d).subtract("1","months"),this.tempdate2=d):(this.tempdate1=i,this.tempdate2=d)}else if(this.type.indexOf("month")>-1){d=a.endTime;i.format("YYYY")==d.format("YYYY")?(this.tempdate2=d,this.tempdate1=t.default(d).clone().subtract("1","years")):(this.tempdate1=i,this.tempdate2=d)}}else if("week"!=this.type)this.date1=i,this.date2=a.endTime,this.tempdate1=this.date1.clone(),delete this.selectedDate[1];else{var r=(e=t.default(i).clone().subtract(parseInt(this.option.firstDayOfWeek)%7,"days").startOf("week").add(parseInt(this.option.firstDayOfWeek)%7,"days")).clone().add(6,"days");this.option.minDate&&t.default(e).isBefore(this.option.minDate)&&(e=t.default(this.option.minDate.clone())),this.option.maxDate&&t.default(r).isAfter(this.option.maxDate)&&(r=t.default(this.option.maxDate.clone())),this.tempdate1=e,this.tempdate2=r,this.selectedDate[0]=e.clone(),this.selectedDate[1]=r.clone()}this.date1=this.selectedDate[0].clone(),this.selectedDate[1]&&(this.date2=this.selectedDate[1].clone())},setCurrentDay(){if(this.type.indexOf("range")<0&&(this.$container.find(".dater2").remove(),this.$container.find(".time2").remove()),this.type.indexOf("time")<0&&this.$container.find(".timepicker").remove(),this.type.indexOf("year")>-1?(this.rendYears(1),this.rendYears(2)):this.type.indexOf("month")>-1?(this.rendMonth(1),this.rendMonth(2)):(this.geneDateList(this.tempdate1,this.$container.find(".dater1")),this.geneDateList(this.tempdate2,this.$container.find(".dater2"))),"multiple"!=this.type){for(let t in this.selectedDate){let e=this.selectedDate[t].format("YYYY-MM"),a=this.selectedDate[t].format("DD");this.selectedDate[t].format("HH:mm:ss"),this.$container.find(".active-day[data-date='"+e+"-"+a+"']").addClass("cur-date")}this.setCurrentClass()}},setCurrentClass(){if(this.selectedDate[0]){var t=this.selectedDate[0].format(this.format);this.$container.find('.active-day[data-date="'+t+'"]').addClass("cur-date")}if(this.selectedDate[1]){var e=this.selectedDate[1].format(this.format);this.$container.find('.active-day[data-date="'+e+'"]').addClass("cur-date"),"week"==this.type&&this.$container.find('.day-item[data-date="'+e+'"]').addClass("cur-date"),this.selectedDate[0].format(this.format)==this.selectedDate[1].format(this.format)&&this.$container.find('.active-day[data-date="'+e+'"]').addClass("circle-date")}this.rendHoverStyle()},cleardate(){this.date1="",this.date2="",this.selectedDate[0]="",this.selectedDate[1]="",this.selectedMultiple=[],this.confirm(!0)},currentdate(){this.date1=t.default(),this.date2=t.default(),this.confirm()},confirm(t,e){var a,i=!1;if("multiple"==this.type)t?((e&&this.option.confirmFirst||!e)&&this.trigger("confirm",{startTime:this.selectedMultiple}),a="",i=!0):(this.selectedMultiple=this.multipleDates,(e&&this.option.confirmFirst||!e)&&this.trigger("confirm",{startTime:this.selectedMultiple}),a=this.multipleDates.join(","),i=!0);else if(this.date1&&(this.selectedDate[0]=this.date1.clone()),this.date2&&(this.selectedDate[1]=this.date2.clone()),t&&((e&&this.option.confirmFirst||!e)&&this.trigger("confirm",{startTime:this.selectedDate[0],endTime:this.selectedDate[1]}),a="",i=!0),this.type.indexOf("range")>-1&&this.date2||this.type.indexOf("week")>-1){(e&&this.option.confirmFirst||!e)&&this.trigger("confirm",{startTime:this.selectedDate[0],endTime:this.selectedDate[1]});try{a=this.selectedDate[0].format(this.option.format)+this.option.separator+this.selectedDate[1].format(this.option.format)}catch(s){a=""}i=!0}else if(this.type.indexOf("range")<0&&this.date1){(e&&this.option.confirmFirst||!e)&&this.trigger("confirm",{startTime:this.selectedDate[0]});try{a=this.selectedDate[0].format(this.option.format)}catch(s){a=""}i=!0}i&&(this.changeShowStatus(!0),this.option.autoFillDate&&("INPUT"==this.$targetDom[0].nodeName?this.$targetValDom[0].value=a:this.$targetValDom[0].innerHTML=a,""==a&&(this.$targetValDom[0].innerHTML=this.option.placeholder),this.$targetDom.addClass("iconfont-xndatepicker icon-xndatepickerrili xndatepicker-input"),this.$targetDom.attr("data-placeholder",this.option.placeholder)))},rendMonth(t){if(this.$container.find(".dater"+t)[0]){var e=$('\n <div class="year-picker">\n <div class="prev">\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 month-prev-year skip-date" data-unit="year" data-func="subtract">&lt;</span>\n </div>\n <div class="month-info"></div>\n <div class="next">\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 month-next-year skip-date" data-unit="year" data-func="add">&gt;</span>\n </div>\n </div>\n <div class="month-list"> \n </div>\n ');this.$container.find(".dater"+t).empty().append(e);var a=this.getMonthList(t);this.$container.find(".dater"+t).find(".month-list").append(a),this.setTodayDot("month")}},getMonthList(e){var a=t.default(this["tempdate"+e]).format("YYYY");this.$container.find(".dater"+e+" .month-info")[0].innerHTML=a;var i="";for(let s=0;s<12;s++){i+=`<span class="month-item ${!((this.option.minDate&&t.default(this.option.minDate).startOf("month").isSameOrBefore(a+"/"+(s+1)+"/01")||!this.option.minDate)&&(this.option.maxDate&&t.default(this.option.maxDate).startOf("month").isSameOrAfter(a+"/"+(s+1)+"/01")||!this.option.maxDate))?"disable-month":"active-day"}" data-date="${t.default(a+"/"+(s+1),"YYYY/MM").format("YYYY-MM")}">`+this.option.locale.month[s]+"</span>"}return i},rendYears(t){if(this.$container.find(".dater"+t)[0]){var e=$('\n <div class="year-picker">\n <div class="prev">\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 year-prev-year">&lt;</span>\n </div>\n <div class="year-info"></div>\n <div class="next">\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 year-next-year">&gt;</span>\n </div>\n </div> \n <div class="year-list"> \n </div>\n ');this.$container.find(".dater"+t).empty().append(e);var a=this.getYearList(t);this.$container.find(".dater"+t).find(".year-list").append(a),this.setTodayDot("year")}},getYearList(e){var a=t.default(this["tempdate"+e]).format("YYYY"),i=a-a%12;this.$container.find(".dater"+e+" .year-info")[0].innerHTML=i+"-"+(parseInt(i)+11);var s="";for(let n=0;n<12;n++){s+=`<span class="year-item ${!((this.option.minDate&&t.default(this.option.minDate).startOf("year").isSameOrBefore(parseInt(i)+n+"/01/01")||!this.option.minDate)&&(this.option.maxDate&&t.default(this.option.maxDate).startOf("year").isSameOrAfter(parseInt(i)+n+"/01/01")||!this.option.maxDate))?"disable-year":"active-day"}" data-date="${parseInt(i)+n}">`+(parseInt(i)+n)+"</span>"}return s},getDateCont(){var t='<div class="year-picker">\n <div class="prev">\n <span class="iconfont-xndatepicker icon-xndatepickerprev prev-year skip-date" data-unit="year" data-func="subtract"></span>\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 prev-month skip-date" data-unit="month" data-func="subtract"></span>\n</div>\n <div class="year-info"></div>\n <div class="next">\n <span class="iconfont-xndatepicker icon-xndatepickerprev1 next-month skip-date" data-unit="month" data-func="add"></span>\n <span class="iconfont-xndatepicker icon-xndatepickerprev next-year skip-date" data-unit="year" data-func="add"></span>\n</div>\n </div>';if(this.option.showWeek){t+='<div class="week">';for(let e=parseInt(this.option.firstDayOfWeek);e<parseInt(this.option.firstDayOfWeek)+7;e++)t+=`<span>${this.option.locale.week[e%7]}</span>`;t+="</div>"}return t+='<div class="dater">\n </div>'},rendDatePicker(){let t=document.body.offsetWidth,e=this.$targetDom.offset(),a=this.$targetDom.width(),i=this.$targetDom.height(),s=e.top+i+20,n=e.left+a/2-112,d=106;e.left<112?(n=20,d=e.left+i/2+10):t-e.left<224&&(n=t-224-20,d=224-(t-e.left-a/2)+20),this.$container=$(`<div class="xndatepicker ${this.type}" id="${this.id}" style="width:224px;top:${s}px;left:${n}px">\n <div class="xn-top">\n <div class="shortcut">\n \n </div>\n <div class="date-main">\n <div class="timepicker">\n <div class="timeitem time1">\n <input>\n <div class="timecont">\n <span></span>\n </div>\n </div>\n <div class="timeitem time2">\n <input>\n <div class="timecont">\n <span></span>\n </div>\n </div>\n </div>\n <div class="datepicker">\n <div class="date-item dater1" data-id="1">\n `+this.getDateCont()+'\n </div>\n <div class="date-item dater2" data-id="2">\n '+this.getDateCont()+`\n </div>\n </div>\n </div>\n </div>\n <div class="xn-bottom">\n\x3c!-- <a class="xn-btn current-date">现在</a>--\x3e\n <a class="xn-btn clear-date">${this.option.locale.clear}</a>\n <a class="xn-btn confirm-date">${this.option.locale.confirm}</a>\n </div>\n <div class="xntriangle" style="top: -5px;left: ${d}px;"></div>\n </div>`),$(document.body).append(this.$container),this.changeShowStatus(!0),this.setCurrentDay(),this.geneShortList(),this.type.indexOf("range")<0&&this.type.indexOf("time")<0&&"multiple"!=this.type?this.$container.find(".confirm-date").remove():!this.option.showClear&&this.option.autoConfirm&&"multiple"!=this.type&&this.$container.find(".xn-bottom").remove(),this.option.showClear||this.$container.find(".clear-date").remove(),(!this.option.showShortKeys||this.option.shortList.length<1)&&this.$container.find(".shortcut").remove()},geneShortList(){var t="<ul>";for(let e=0;e<this.option.shortList.length;e++)t+="<li>"+this.option.shortList[e].name+"</li>";t+="</ul>",this.$container.find(".shortcut").empty().append(t)},_getDaysNum(t){var e=t.year(),a=t.month();return new Array(31,28+this.is_leap(e),31,30,31,30,31,31,30,31,30,31)[a]},geneDateList(e,a){if(a&&e&&!(this.type.indexOf("date")<0&&"week"!=this.type&&"multiple"!=this.type)){var i=e.clone();a.empty().append(this.getDateCont());var s=i.year(),n=i.month()+1,d=t.default(i).startOf("month").day()-parseInt(this.option.firstDayOfWeek);d<0&&(d+=7);var r=this._getDaysNum(i),o=this._getDaysNum(t.default(i).subtract(1,"months")),h=[];for(let t=d-1;t>=0;t--)h.push({day:o-t});for(let e=0;e<r;e++)h.push({iscur:!0,disable:this.checkDisable(t.default(s+"/"+n+"/"+(e+1),"YYYY/MM/DD"),0,this.type,"date"),day:e+1});var m=h.length;for(let t=0;t<42-m;t++)h.push({day:t+1,isnext:!0});if(this._rendDayHtml(h,a,s+"/"+n),this._rendYearHtml(i,a),"multiple"==this.type)for(let t=0;t<this.multipleDates.length;t++)this.$container.find("span[data-date="+this.multipleDates[t]+"]").addClass("cur-date")}},checkDisable(e,a,i,s){var n=!0;if(!this.option.minDate&&!this.option.maxDate)return!1;if(this.type.indexOf("year")>-1||"year"==i){var d=e.format("YYYY"),r=this.option.minDate?t.default(this.option.minDate).format("YYYY"):0,o=this.option.maxDate?t.default(this.option.maxDate).format("YYYY"):d,h=d-d%12-12;(a>0||r-r%12<=h)&&(a<0||o-o%12>=h+12)&&(n=!1)}else{var m="YYYY-MM";"year"==s&&(m="YYYY"),"date"==s&&(m="YYYY-MM-DD"),(!this.option.minDate||this.option.minDate&&this.option.minDate.format(m)<=e.format(m))&&(!this.option.maxDate||this.option.maxDate&&this.option.maxDate.format(m)>=e.format(m))&&(n=!1)}return n},_rendYearHtml(t,e){var a=t.year(),i=t.month()+1;e.find(".year-info").html("<span class='year'>"+a+this.option.locale.yearHeadSuffix+"</span><span class='month'>"+this.option.locale.monthHead[i-1]+"</span>")},_rendDayHtml(e,a,i){var s=a.find(".dater");s.length<1&&a.append('<div class="dater"></div>'),s.empty();for(let n=0;n<6;n++)for(let a=7*n;a<7*n+7;a++){let n=document.createElement("span");n.classList.add("day-item"),e[a].iscur?(e[a].disable||n.classList.add("active-day"),n.setAttribute("data-date",t.default(i+"/"+e[a].day,"YYYY/MM/DD").format("YYYY-MM-DD"))):e[a].isnext?n.setAttribute("data-date",t.default(i+"/"+e[a].day,"YYYY/MM/DD").add(1,"months").format("YYYY-MM-DD")):n.setAttribute("data-date",t.default(i,"YYYY/MM").subtract(1,"months").date(e[a].day).format("YYYY-MM-DD")),e[a].disable&&n.classList.add("disable-day"),n.append(e[a].day),s.append(n)}this.setTodayDot("day")},is_leap:t=>res=t%100==0?t%400==0?1:0:t%4==0?1:0,trigger(t,e){if(this.eventList[t])for(let a=0;a<this.eventList[t].func.length;a++)this.eventList[t].func[a](e)},on(t,e,a){a&&(this.eventList={}),this.eventList[t]?this.eventList[t].func.push(e):this.eventList[t]={func:[e]}},getRandomString(t){t=t||8;var e="ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz",a=e.length,i="";for(let s=0;s<t;s++)i+=e.charAt(Math.floor(Math.random()*a));return i},_setData(t,e){Object.defineProperty(this,t,{get:()=>this[t],set:a=>{const i=this[t];return this[t]=a,e(a,i),a}})},_getBaseType:t=>Object.prototype.toString.apply(t).slice(8,-1),watch(t,e){this._setData(t,e)},setTodayDot(e){var a=t.default().format("YYYY-MM-DD");"year"==e&&(a=t.default().format("YYYY")),"month"==e&&(a=t.default().format("YYYY-MM")),this.$container.find("."+e+"-item[data-date="+a+"]").addClass("is-today")},destroy:function(){this.$container.remove(),this.removeMoveEvent(),this.removeClickEvent()}},exports.XNDatepicker=n;