/** * @preserve jQuery PeriodPicker plugin v5.4.2 * @homepage http://xdsoft.net/jqplugins/periodpicker/ * @copyright (c) 2016 xdsoft.net Chupurnov Valeriy * @license PRO http://xdsoft.net/jqplugins/periodpicker/license/ */ !function(a,b,c){"use strict";function d(c){var d=new Date,e=0,f=this;return f.onChange=[],f.validate=function(){c.minTime&&(c.minTime instanceof Date||(c.minTime=f.parse(c.minTime)),f.isValid(c.minTime)?(c.minTime=f.cloneTime(c.minTime),dc.maxTime&&(d=f.cloneTime(c.maxTime))):c.maxTime=!1)},f.cloneTime=function(a){var b=new Date;return b.setHours(a.getHours()),b.setMinutes(a.getMinutes()),b.setSeconds(a.getSeconds()),b},f.isValid=function(a){return"[object Date]"!==Object.prototype.toString.call(a)?!1:!isNaN(a.getTime())},f.hours12Format=function(){var a=d.getHours();return 0===a?12:a>0&&13>a?a:a>12&&23>=a?a-12:void 0},f.to12Format=function(a){return 12!==a||e?e&&12>a?a+12:a:0},f.change=function(b){var c;if(f.onChange.length)for(c=0;cg&&b?d.setHours(g+12):g>=12&&!b&&d.setHours(g-12);break;default:d.setHours(c.twelveHoursFormat?f.to12Format(b):b)}e=f.index(3),f.validate(),h!==d.getTime()&&f.change()}switch(a){case 1:return d.getMinutes();case 2:return d.getSeconds();case 3:return e=d.getHours()>=12?1:0;default:return c.twelveHoursFormat?f.hours12Format():d.getHours()}},f.parse=function(a){return void 0!==b.moment?moment(a,c.inputFormat).toDate():Date.parse(a)},f.set=function(a,b){var c=d.getTime(),e=f.isValid(a)?f.cloneTime(a):f.parse(a);f.isValid(e)&&(d=e,c!==d.getTime()&&(f.validate(),f.change(b)))},f.get=function(){return void 0!==b.moment?moment(d).format(c.inputFormat):String(d)},f.getTime=function(){return d.getTime()},f}function e(b,d,e){var f=this;f.box=e||c.body,f.options=d,f.startinput=a(b),f.uniqueid=g,g+=1,f.init()}function f(d,e){var f=this;f.uniqueid=g,g+=1,f.options=e,f.startinput=a(d),f.picker=a('
'),f.startinput.TimePicker(e,f.picker),f.options.inline?(f.picker.addClass("periodpicker_timepicker_inline"),f.startinput.after(f.picker).hide(),f.startinput.TimePicker("regenerate")):(a(c.body).append(f.picker),f.startinput.on("focus.xdsoft"+f.uniqueid,function(){f.show()}),a(b).on("mousedown.xdsoft"+f.uniqueid,function(){f.hide()}))}var g=1;e.prototype.getRealOffset=function(a){var b=this.getIndex(a);return-1!==this.indexes[a].indexOf(b)?this.indexes[a].indexOf(b)*this.itemHeight():0},e.prototype.getIndex=function(a){return Math.floor(this.currentime.index(a)/this.options.steps[a])*this.options.steps[a]},e.prototype.height=function(){return this.timepicker?parseInt(this.timepicker.get(0).offsetHeight,10):0},e.prototype.itemHeight=function(){return this.items[0][0]?parseInt(this.items[0][0].get(0).offsetHeight,10):22},e.prototype.highlight=function(){var a,b;for(void 0===this.last&&(this.last=[]),a=0;a=0;c-=1)this.currentime.index(c,a[c]);for(c=0;c
'+(g.options.hours?'
':"")+(g.options.minutes?'
':"")+(g.options.seconds?'
':"")+(g.options.ampm?'
AM
PM
':"")+'
'),g.currentime=new d(g.options),g.startinput.length&&g.startinput.val()?g.currentime.set(g.startinput.val()):(g.startinput.val(g.options.defaultTime),g.currentime.set(g.options.defaultTime)),g.options.onChange&&g.currentime.onChange.push(g.options.onChange),g.options.saveOnChange&&g.currentime.onChange.push(function(a,b,c){var d=g.startinput.val();g.startinput.val(a),a===d||c||g.startinput.trigger("change")}),g.boxes={},f=0,g.timepicker.find(".periodpicker_timepicker_sliders>div>div").each(function(){f=Math.max(f,parseInt(a(this).parent().data("index"),10)),g.boxes[parseInt(a(this).parent().data("index"),10)]=a(this)}),g.boxes.length=f+1,g.timepicker.find(".periodpicker_timepicker_sliders>div").addClass("periodpicker_col"+g.timepicker.find(".periodpicker_timepicker_sliders>div>div").length),g.timer2=0,g.timepicker.on("mousewheel",function(a){g.options.mouseWheel&&(a.preventDefault(),a.stopPropagation())}),g.timepicker.find(".periodpicker_timepicker_sliders>div").on("mousewheel",function(b){if(g.options.mouseWheel){var c=a(this),d=[null,null,null,null],e=parseInt(a(this).data("index"),10);c.addClass("draggable"),3>e?d[e]=g.currentime.index(e)+-b.deltaY*(g.options.inverseMouseWheel?-1:1)*g.options.steps[e]:d[e]=g.currentime.index(e)-1,g.setTime(d),clearTimeout(g.timer2),g.timer2=setTimeout(function(){c.removeClass("draggable")},300),b.preventDefault(),b.stopPropagation()}}),g.timepicker.find(".periodpicker_timepicker_sliders").on("click",".periodpicker_item",function(){if(g.options.clickAndSelect){var b=parseInt(a(this).data("value"),10),c=[null,null,null,null],d=parseInt(a(this).parent().parent().data("index"),10);g.iwasdragged||isNaN(b)||(c[d]=b,g.setTime(c))}}),g.timer=0,g.timepicker.find(".periodpicker_timepicker_sliders>div input.periodpicker_key_hooker").on("keydown",function(b){if(g.options.listenKeyPress){var c=[null,null,null,null],d=a(this),e=parseInt(d.parent().data("index"),10),f=!1;switch(b.keyCode){case 38:c[e]=g.currentime.index(e)-g.options.steps[e],g.setTime(c),f=!0;break;case 39:a(this).parent().next().length&&a(this).parent().next().find("input.periodpicker_key_hooker").eq(0).focus(),f=!0;break;case 37:a(this).parent().prev().length&&a(this).parent().prev().find("input.periodpicker_key_hooker").eq(0).focus(),f=!0;break;case 40:c[e]=g.currentime.index(e)+g.options.steps[e],g.setTime(c),f=!0;break;default:/[0-9amp]/i.test(String.fromCharCode(b.keyCode))&&(d.val(d.val()+String.fromCharCode(b.keyCode)),f=!0),clearTimeout(g.timer),g.timer=setTimeout(function(){var a=d.val();d.val(""),3===e&&a.length&&(a="p"===a.toLowerCase().substr(0,1)?1:0),a=parseInt(a,10),isNaN(a)||(c[e]=a,g.setTime(c))},300)}f&&(b.preventDefault(),b.stopImmediatePropagation())}}),g.timepicker.find(".periodpicker_timepicker_sliders>div").on("mousedown.xdsoft touchstart.xdsoft",function(b){g.options.dragAndDrop&&(g.drag=!0,c=[g.xy(b).x,g.xy(b).y],c[4]=parseInt(a(this).data("index"),10),c[3]=g.boxes[c[4]],c[2]=parseInt(c[3].css("margin-top"),10),c[3].find("div").removeClass("active"),c[3].parent().addClass("draggable"),g.iwasdragged=!1,b.preventDefault(),b.stopImmediatePropagation()),a(this).find("input.periodpicker_key_hooker").focus()}),g.iwasdragged=!1,a(b).on("mouseup.xdsoft"+g.uniqueid+" touchend.xdsoft"+g.uniqueid,function(a){g.options.dragAndDrop&&g.drag&&(g.drag=!1,g.setTime(),c[3].parent().removeClass("draggable"),a.stopImmediatePropagation())}).on("mousemove.xdsoft"+g.uniqueid+" touchmove.xdsoft"+g.uniqueid,function(a){if(g.drag&&g.options.dragAndDrop){e=[g.xy(a).x-c[0],g.xy(a).y-c[1]],c[3].css({marginTop:c[2]+e[1]}),e[1]>10&&(g.iwasdragged=!0);var b=-Math.round((-(g.height()-g.itemHeight())/2+c[2]+e[1])/g.itemHeight());0>b&&(b=0),b>=g.items[c[4]].length&&(b=g.items[c[4]].length-1),b=parseInt(g.items[c[4]][b].data("value"),10),g.currentime.index(c[4],b),g.highlight(),a.preventDefault()}}),a(g.box).append(g.timepicker),g.generateTimepicker(),g.setTime()},e.prototype.destroy=function(){var c=this;a(b).off("mouseup.xdsoft"+c.uniqueid+" touchend.xdsoft"+c.uniqueid).off("mousemove.xdsoft"+c.uniqueid+" touchmove.xdsoft"+c.uniqueid),c.timepicker.remove(),delete c.timepicker,delete c.boxes,delete c.currentime},e.prototype.generateTimepicker=function(){var b,c,d=this;for(d.items=[[],[],[],[]],d.indexes=[[],[],[],[0,1]],b=0;2>=b;b+=1)if(void 0!==d.options.parts[b]&&void 0!==d.boxes[b]){if(!d.options.twelveHoursFormat||b>0)for(c=d.options.parts[b][0][0];c<=d.options.parts[b][0][1];c+=d.options.steps[b])d.items[b].push(a('
'+(10>c?"0":"")+c+"
")),d.indexes[b].push(c);else for(d.items[b].push(a('
12
')),d.indexes[b].push(12),c=1;11>=c;c+=d.options.steps[b])d.items[b].push(a('
'+(10>c?"0":"")+c+"
")),d.indexes[b].push(c);d.boxes[b].html(d.items[b])}d.boxes[3]&&d.boxes[3].length&&d.boxes[b].find("div").each(function(){d.items[3].push(a(this))})},a.fn.TimePicker=function(b,c,d){var f,g=this;return this.each(function(){var h,i=a(this),j=i.data("timepicker");if(j||"string"!=typeof b)if(j)switch(b){case"stopDrag":j.drag=!1,j.timepicker.find(".draggable").removeClass("draggable"),j.setTime();break;case"regenerate":j.setTime();break;case"destroy":j.destroy();break;case"save":i.val(j.currentime.get());break;case"setValue":j.currentime.set(c,d),j.setTime();break;case"setMin":case"setMax":f=j.currentime.getTime(),j.options["setMin"===b?"minTime":"maxTime"]=c,j.currentime.validate(),j.setTime(),f!==j.currentime.getTime()&&j.currentime.change();break;case"getValue":g=j.currentime.get()}else h=a.extend(!0,{},a.fn.TimePicker.defaultOptions,b),j=new e(this,h,c),i.data("timepicker",j)}),g},a.fn.timepicker=a.fn.TimePicker,a.fn.TimePicker.defaultOptions={clickAndSelect:!0,dragAndDrop:!0,mouseWheel:!0,inverseMouseWheel:!1,listenKeyPress:!0,saveOnChange:!0,onChange:function(){return!0},twelveHoursFormat:!0,inputFormat:"HH:mm:ss",defaultTime:"00:00:00",minTime:!1,maxTime:!1,hours:!0,minutes:!0,seconds:!1,ampm:!0,parts:[[[0,23]],[[0,59]],[[0,59]],[[0,1]]],steps:[1,1,1,1]},f.prototype.destroy=function(){this.startinput.TimePicker("destroy"),this.picker.remove()},f.prototype.hide=function(){if(this.picker.hasClass("visible")){var b=!0;this.options.onHide&&a.isFunction(this.options.onHide)&&(b=!(this.options.onHide.call(this,this.startinput)===!1)),b&&this.picker.removeClass("visible")}},f.prototype.show=function(){if(!this.picker.hasClass("visible")){var c,d,e=this.startinput.offset();c=e.top+this.startinput.outerHeight()-1,d=e.left,c+this.picker.outerHeight()>a(b).height()+a(b).scrollTop()&&(c=e.top-this.picker.outerHeight()-1),0>c&&(c=0),d+this.picker.outerWidth()>a(b).width()&&(d=a(b).width()-this.picker.outerWidth()),this.picker.css({left:d,top:c}),this.picker.addClass("visible"),this.startinput.TimePicker("regenerate")}},a.fn.TimePickerAlone=function(b,c,d){var e=this;return this.each(function(){var e,g=a(this),h=g.data("timepickeralone");if(h)switch(b){case"destroy":h.destroy();break;default:return h.startinput.TimePicker(b,c,d)}else e=a.extend(!0,{},a.fn.TimePicker.defaultOptions,a.fn.TimePickerAlone.defaultOptions,b),h=new f(this,e),g.data("timepickeralone",h)}),e},a.fn.timepickeralone=a.fn.TimePickerAlone,a.fn.TimePickerAlone.defaultOptions={inline:!1,onHide:function(){return!0}}}(jQuery,window,document);