Skip to content

Instantly share code, notes, and snippets.

@mikermcneil
Created August 20, 2018 21:23
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mikermcneil/b3764b4e306a99214e61d742dec42edb to your computer and use it in GitHub Desktop.
Save mikermcneil/b3764b4e306a99214e61d742dec42edb to your computer and use it in GitHub Desktop.
A datepicker component for Vue/parasails, assuming you're using the "Web App" template (aka parasails). _Note: this code was pasted here as of Mon Aug 20, 2018 -- note that this may have been updated or changed in the mean time._
// This goes in `assets/js/components/datepicker.component.js`
// ^^Remove this comment
/**
* <datepicker>
* -----------------------------------------------------------------------------
* A wrapper for the jQuery UI datepicker, which falls back to a date input on mobile.
*
* @type {Component}
*
* @event input [emitted when the value is changed privately]
* -----------------------------------------------------------------------------
*/
// WARNING:
// Normally, by convention, in a component's `.component.js` file, all logic
// should be encapsulated inside a single registerComponent() call.
// But this component is a special exception because it leverages a 3rd party
// library called jQuery UI, which it bundles as part of its implementation.
//
// Because of this, this `.component.js` file actually consists of two parts:
// 1. A custom build of jQuery UI that includes only the logic necessary for
// the datepicker component: (FUTURE: insulate+namespace this library)
/* eslint-disable */ /*! jQuery UI - v1.12.1 - 2017-12-09. Custom build, includes: keycode.js, widgets/datepicker.js - Copyright jQuery Foundation and other contributors; Licensed MIT. */ (function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}})(function($){$.ui=$.ui||{};var version=$.ui.version="1.12.1";var keycode=$.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38};$.extend($.ui,{datepicker:{version:"1.12.1"}});var datepicker_instActive;function datepicker_getZindex(elem){var position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}return 0}function Datepicker(){this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};$.extend(this._defaults,this.regional[""]);this.regional.en=$.extend(true,{},this.regional[""]);this.regional["en-US"]=$.extend(true,{},this.regional.en);this.dpDiv=datepicker_bindHover($("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(settings){datepicker_extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var nodeName,inline,inst;nodeName=target.nodeName.toLowerCase();inline=nodeName==="div"||nodeName==="span";if(!target.id){this.uuid+=1;target.id="dp"+this.uuid}inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{});if(nodeName==="input"){this._connectDatepicker(target,inst)}else if(inline){this._inlineDatepicker(target,inst)}},_newInst:function(target,inline){var id=target[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:!inline?this.dpDiv:datepicker_bindHover($("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}this._attachments(input,inst);input.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp);this._autoSize(inst);$.data(target,"datepicker",inst);if(inst.settings.disabled){this._disableDatepicker(target)}},_attachments:function(input,inst){var showOn,buttonText,buttonImage,appendText=this._get(inst,"appendText"),isRTL=this._get(inst,"isRTL");if(inst.append){inst.append.remove()}if(appendText){inst.append=$("<span class='"+this._appendClass+"'>"+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}input.off("focus",this._showDatepicker);if(inst.trigger){inst.trigger.remove()}showOn=this._get(inst,"showOn");if(showOn==="focus"||showOn==="both"){input.on("focus",this._showDatepicker)}if(showOn==="button"||showOn==="both"){buttonText=this._get(inst,"buttonText");buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$("<button type='button'></button>").addClass(this._triggerClass).html(!buttonImage?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.on("click",function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput===input[0]){$.datepicker._hideDatepicker()}else if($.datepicker._datepickerShowing&&$.datepicker._lastInput!==input[0]){$.datepicker._hideDatepicker();$.datepicker._showDatepicker(input[0])}else{$.datepicker._showDatepicker(input[0])}return false})}},_autoSize:function(inst){if(this._get(inst,"autoSize")&&!inst.inline){var findMax,max,maxI,i,date=new Date(2009,12-1,20),dateFormat=this._get(inst,"dateFormat");if(dateFormat.match(/[DM]/)){findMax=function(names){max=0;maxI=0;for(i=0;i<names.length;i++){if(names[i].length>max){max=names[i].length;maxI=i}}return maxI};date.setMonth(findMax(this._get(inst,dateFormat.match(/MM/)?"monthNames":"monthNamesShort")));date.setDate(findMax(this._get(inst,dateFormat.match(/DD/)?"dayNames":"dayNamesShort"))+20-date.getDay())}inst.input.attr("size",this._formatDate(inst,date).length)}},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv);$.data(target,"datepicker",inst);this._setDate(inst,this._getDefaultDate(inst),true);this._updateDatepicker(inst);this._updateAlternate(inst);if(inst.settings.disabled){this._disableDatepicker(target)}inst.dpDiv.css("display","block")},_dialogDatepicker:function(input,date,onSelect,settings,pos){var id,browserWidth,browserHeight,scrollX,scrollY,inst=this._dialogInst;if(!inst){this.uuid+=1;id="dp"+this.uuid;this._dialogInput=$("<input type='text' id='"+id+"' style='position: absolute; top: -100px; width: 0px;'/>");this._dialogInput.on("keydown",this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],"datepicker",inst)}datepicker_extendRemove(inst.settings,settings||{});date=date&&date.constructor===Date?this._formatDate(inst,date):date;this._dialogInput.val(date);this._pos=pos?pos.length?pos:[pos.pageX,pos.pageY]:null;if(!this._pos){browserWidth=document.documentElement.clientWidth;browserHeight=document.documentElement.clientHeight;scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[browserWidth/2-100+scrollX,browserHeight/2-150+scrollY]}this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],"datepicker",inst);return this},_destroyDatepicker:function(target){var nodeName,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();$.removeData(target,"datepicker");if(nodeName==="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)}else if(nodeName==="div"||nodeName==="span"){$target.removeClass(this.markerClassName).empty()}if(datepicker_instActive===inst){datepicker_instActive=null}},_enableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=$.map(this._disabledInputs,function(value){return value===target?null:value})},_disableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=$.map(this._disabledInputs,function(value){return value===target?null:value});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]===target){return true}}return false},_getInst:function(target){try{return $.data(target,"datepicker")}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings,date,minDate,maxDate,inst=this._getInst(target);if(arguments.length===2&&typeof name==="string"){return name==="defaults"?$.extend({},$.datepicker._defaults):inst?name==="all"?$.extend({},inst.settings):this._get(inst,name):null}settings=name||{};if(typeof name==="string"){settings={};settings[name]=value}if(inst){if(this._curInst===inst){this._hideDatepicker()}date=this._getDateDatepicker(target,true);minDate=this._getMinMaxDate(inst,"min");maxDate=this._getMinMaxDate(inst,"max");datepicker_extendRemove(inst.settings,settings);if(minDate!==null&&settings.dateFormat!==undefined&&settings.minDate===undefined){inst.settings.minDate=this._formatDate(inst,minDate)}if(maxDate!==null&&settings.dateFormat!==undefined&&settings.maxDate===undefined){inst.settings.maxDate=this._formatDate(inst,maxDate)}if("disabled"in settings){if(settings.disabled){this._disableDatepicker(target)}else{this._enableDatepicker(target)}}this._attachments($(target),inst);this._autoSize(inst);this._setDate(inst,date);this._updateAlternate(inst);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date){var inst=this._getInst(target);if(inst){this._setDate(inst,date);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target,noDefault){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst,noDefault)}return inst?this._getDate(inst):null},_doKeyDown:function(event){var onSelect,dateStr,sel,inst=$.datepicker._getInst(event.target),handled=true,isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker();handled=false;break;case 13:sel=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}onSelect=$.datepicker._get(inst,"onSelect");if(onSelect){dateStr=$.datepicker._formatDate(inst);onSelect.apply(inst.input?inst.input[0]:null,[dateStr,inst])}else{$.datepicker._hideDatepicker()}return false;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(event.target,event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(event.target,event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths"),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,isRTL?+1:-1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths"),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,isRTL?-1:+1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths"),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else if(event.keyCode===36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var chars,chr,inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));chr=String.fromCharCode(event.charCode==null?event.keyCode:event.charCode);return event.ctrlKey||event.metaKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_doKeyUp:function(event){var date,inst=$.datepicker._getInst(event.target);if(inst.input.val()!==inst.lastVal){try{date=$.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),inst.input?inst.input.val():null,$.datepicker._getFormatConfig(inst));if(date){$.datepicker._setDateFromField(inst);$.datepicker._updateAlternate(inst);$.datepicker._updateDatepicker(inst)}}catch(err){}}return true},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!=="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput===input){return}var inst,beforeShow,beforeShowSettings,isFixed,offset,showAnim,duration;inst=$.datepicker._getInst(input);if($.datepicker._curInst&&$.datepicker._curInst!==inst){$.datepicker._curInst.dpDiv.stop(true,true);if(inst&&$.datepicker._datepickerShowing){$.datepicker._hideDatepicker($.datepicker._curInst.input[0])}}beforeShow=$.datepicker._get(inst,"beforeShow");beforeShowSettings=beforeShow?beforeShow.apply(input,[input,inst]):{};if(beforeShowSettings===false){return}datepicker_extendRemove(inst.settings,beforeShowSettings);inst.lastVal=null;$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")==="fixed";return!isFixed});offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.dpDiv.empty();inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":isFixed?"fixed":"absolute",display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){showAnim=$.datepicker._get(inst,"showAnim");duration=$.datepicker._get(inst,"duration");inst.dpDiv.css("z-index",datepicker_getZindex($(input))+1);$.datepicker._datepickerShowing=true;if($.effects&&$.effects.effect[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration)}else{inst.dpDiv[showAnim||"show"](showAnim?duration:null)}if($.datepicker._shouldFocusInput(inst)){inst.input.trigger("focus")}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){this.maxRows=4;datepicker_instActive=inst;inst.dpDiv.empty().append(this._generateHTML(inst));this._attachHandlers(inst);var origyearshtml,numMonths=this._getNumberOfMonths(inst),cols=numMonths[1],width=17,activeCell=inst.dpDiv.find("."+this._dayOverClass+" a");if(activeCell.length>0){datepicker_handleMouseover.apply(activeCell.get(0))}inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",width*cols+"em")}inst.dpDiv[(numMonths[0]!==1||numMonths[1]!==1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst===$.datepicker._curInst&&$.datepicker._datepickerShowing&&$.datepicker._shouldFocusInput(inst)){inst.input.trigger("focus")}if(inst.yearshtml){origyearshtml=inst.yearshtml;setTimeout(function(){if(origyearshtml===inst.yearshtml&&inst.yearshtml){inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml)}origyearshtml=inst.yearshtml=null},0)}},_shouldFocusInput:function(inst){return inst.input&&inst.input.is(":visible")&&!inst.input.is(":disabled")&&!inst.input.is(":focus")},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth(),dpHeight=inst.dpDiv.outerHeight(),inputWidth=inst.input?inst.input.outerWidth():0,inputHeight=inst.input?inst.input.outerHeight():0,viewWidth=document.documentElement.clientWidth+(isFixed?0:$(document).scrollLeft()),viewHeight=document.documentElement.clientHeight+(isFixed?0:$(document).scrollTop());offset.left-=this._get(inst,"isRTL")?dpWidth-inputWidth:0;offset.left-=isFixed&&offset.left===inst.input.offset().left?$(document).scrollLeft():0;offset.top-=isFixed&&offset.top===inst.input.offset().top+inputHeight?$(document).scrollTop():0;offset.left-=Math.min(offset.left,offset.left+dpWidth>viewWidth&&viewWidth>dpWidth?Math.abs(offset.left+dpWidth-viewWidth):0);offset.top-=Math.min(offset.top,offset.top+dpHeight>viewHeight&&viewHeight>dpHeight?Math.abs(dpHeight+inputHeight):0);return offset},_findPos:function(obj){var position,inst=this._getInst(obj),isRTL=this._get(inst,"isRTL");while(obj&&(obj.type==="hidden"||obj.nodeType!==1||$.expr.filters.hidden(obj))){obj=obj[isRTL?"previousSibling":"nextSibling"]}position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input){var showAnim,duration,postProcess,onClose,inst=this._curInst;if(!inst||input&&inst!==$.data(input,"datepicker")){return}if(this._datepickerShowing){showAnim=this._get(inst,"showAnim");duration=this._get(inst,"duration");postProcess=function(){$.datepicker._tidyDialog(inst)};if($.effects&&($.effects.effect[showAnim]||$.effects[showAnim])){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim==="slideDown"?"slideUp":showAnim==="fadeIn"?"fadeOut":"hide"](showAnim?duration:null,postProcess)}if(!showAnim){postProcess()}this._datepickerShowing=false;onClose=this._get(inst,"onClose");if(onClose){onClose.apply(inst.input?inst.input[0]:null,[inst.input?inst.input.val():"",inst])}this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target),inst=$.datepicker._getInst($target[0]);if($target[0].id!==$.datepicker._mainDivId&&$target.parents("#"+$.datepicker._mainDivId).length===0&&!$target.hasClass($.datepicker.markerClassName)&&!$target.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)||$target.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!==inst){$.datepicker._hideDatepicker()}},_adjustDate:function(id,offset,period){var target=$(id),inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period==="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var date,target=$(id),inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{date=new Date;inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id),inst=this._getInst(target[0]);inst["selected"+(period==="M"?"Month":"Year")]=inst["draw"+(period==="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_selectDay:function(id,month,year,td){var inst,target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))},_clearDate:function(id){var target=$(id);this._selectDate(target,"")},_selectDate:function(id,dateStr){var onSelect,target=$(id),inst=this._getInst(target[0]);dateStr=dateStr!=null?dateStr:this._formatDate(inst);if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply(inst.input?inst.input[0]:null,[dateStr,inst])}else if(inst.input){inst.input.trigger("change")}if(inst.inline){this._updateDatepicker(inst)}else{this._hideDatepicker();this._lastInput=inst.input[0];if(typeof inst.input[0]!=="object"){inst.input.trigger("focus")}this._lastInput=null}},_updateAlternate:function(inst){var altFormat,date,dateStr,altField=this._get(inst,"altField");if(altField){altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).val(dateStr)}},noWeekends:function(date){var day=date.getDay();return[day>0&&day<6,""]},iso8601Week:function(date){var time,checkDate=new Date(date.getTime());checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));time=checkDate.getTime();checkDate.setMonth(0);checkDate.setDate(1);return Math.floor(Math.round((time-checkDate)/864e5)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=typeof value==="object"?value.toString():value+"";if(value===""){return null}var iFormat,dim,extra,iValue=0,shortYearCutoffTemp=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff,shortYearCutoff=typeof shortYearCutoffTemp!=="string"?shortYearCutoffTemp:(new Date).getFullYear()%100+parseInt(shortYearCutoffTemp,10),dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,year=-1,month=-1,day=-1,doy=-1,literal=false,date,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches},getNumber=function(match){var isDoubled=lookAhead(match),size=match==="@"?14:match==="!"?20:match==="y"&&isDoubled?4:match==="o"?3:2,minSize=match==="y"?size:1,digits=new RegExp("^\\d{"+minSize+","+size+"}"),num=value.substring(iValue).match(digits);if(!num){throw"Missing number at position "+iValue}iValue+=num[0].length;return parseInt(num[0],10)},getName=function(match,shortNames,longNames){var index=-1,names=$.map(lookAhead(match)?longNames:shortNames,function(v,k){return[[k,v]]}).sort(function(a,b){return-(a[1].length-b[1].length)});$.each(names,function(i,pair){var name=pair[1];if(value.substr(iValue,name.length).toLowerCase()===name.toLowerCase()){index=pair[0];iValue+=name.length;return false}});if(index!==-1){return index+1}else{throw"Unknown name at position "+iValue}},checkLiteral=function(){if(value.charAt(iValue)!==format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"!":date=new Date((getNumber("!")-this._ticksTo1970)/1e4);year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(iValue<value.length){extra=value.substr(iValue);if(!/^\s+/.test(extra)){throw"Extra/unparsed characters found in date: "+extra}}if(year===-1){year=(new Date).getFullYear()}else if(year<100){year+=(new Date).getFullYear()-(new Date).getFullYear()%100+(year<=shortYearCutoff?0:-100)}if(doy>-1){month=1;day=doy;do{dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!==year||date.getMonth()+1!==month||date.getDate()!==day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:((1970-1)*365+Math.floor(1970/4)-Math.floor(1970/100)+Math.floor(1970/400))*24*60*60*1e7,formatDate:function(format,date,settings){if(!date){return""}var iFormat,dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches},formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num},formatName=function(match,value,shortNames,longNames){return lookAhead(match)?longNames[value]:shortNames[value]},output="",literal=false;if(date){for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":output+=formatNumber("o",Math.round((new Date(date.getFullYear(),date.getMonth(),date.getDate()).getTime()-new Date(date.getFullYear(),0,0).getTime())/864e5),3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=lookAhead("y")?date.getFullYear():(date.getFullYear()%100<10?"0":"")+date.getFullYear()%100;break;case"@":output+=date.getTime();break;case"!":output+=date.getTime()*1e4+this._ticksTo1970;break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var iFormat,chars="",literal=false,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst,noDefault){if(inst.input.val()===inst.lastVal){return}var dateFormat=this._get(inst,"dateFormat"),dates=inst.lastVal=inst.input?inst.input.val():null,defaultDate=this._getDefaultDate(inst),date=defaultDate,settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){dates=noDefault?"":dates}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=dates?date.getDate():0;inst.currentMonth=dates?date.getMonth():0;inst.currentYear=dates?date.getFullYear():0;this._adjustInstDate(inst)},_getDefaultDate:function(inst){return this._restrictMinMax(inst,this._determineDate(inst,this._get(inst,"defaultDate"),new Date))},_determineDate:function(inst,date,defaultDate){var offsetNumeric=function(offset){var date=new Date;date.setDate(date.getDate()+offset);return date},offsetString=function(offset){try{return $.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),offset,$.datepicker._getFormatConfig(inst))}catch(e){}var date=(offset.toLowerCase().match(/^c/)?$.datepicker._getDate(inst):null)||new Date,year=date.getFullYear(),month=date.getMonth(),day=date.getDate(),pattern=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)},newDate=date==null||date===""?defaultDate:typeof date==="string"?offsetString(date):typeof date==="number"?isNaN(date)?defaultDate:offsetNumeric(date):new Date(date.getTime());newDate=newDate&&newDate.toString()==="Invalid Date"?defaultDate:newDate;if(newDate){newDate.setHours(0);newDate.setMinutes(0);newDate.setSeconds(0);newDate.setMilliseconds(0)}return this._daylightSavingAdjust(newDate)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,noChange){var clear=!date,origMonth=inst.selectedMonth,origYear=inst.selectedYear,newDate=this._restrictMinMax(inst,this._determineDate(inst,date,new Date));inst.selectedDay=inst.currentDay=newDate.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=newDate.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=newDate.getFullYear();if((origMonth!==inst.selectedMonth||origYear!==inst.selectedYear)&&!noChange){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=!inst.currentYear||inst.input&&inst.input.val()===""?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return startDate},_attachHandlers:function(inst){var stepMonths=this._get(inst,"stepMonths"),id="#"+inst.id.replace(/\\\\/g,"\\");inst.dpDiv.find("[data-handler]").map(function(){var handler={prev:function(){$.datepicker._adjustDate(id,-stepMonths,"M")},next:function(){$.datepicker._adjustDate(id,+stepMonths,"M")},hide:function(){$.datepicker._hideDatepicker()},today:function(){$.datepicker._gotoToday(id)},selectDay:function(){$.datepicker._selectDay(id,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this);return false},selectMonth:function(){$.datepicker._selectMonthYear(id,this,"M");return false},selectYear:function(){$.datepicker._selectMonthYear(id,this,"Y");return false}};$(this).on(this.getAttribute("data-event"),handler[this.getAttribute("data-handler")])})},_generateHTML:function(inst){var maxDraw,prevText,prev,nextText,next,currentText,gotoDate,controls,buttonPanel,firstDay,showWeek,dayNames,dayNamesMin,monthNames,monthNamesShort,beforeShowDay,showOtherMonths,selectOtherMonths,defaultDate,html,dow,row,group,col,selectedDate,cornerClass,calender,thead,day,daysInMonth,leadDays,curRows,numRows,printDate,dRow,tbody,daySettings,otherMonth,unselectable,tempDate=new Date,today=this._daylightSavingAdjust(new Date(tempDate.getFullYear(),tempDate.getMonth(),tempDate.getDate())),isRTL=this._get(inst,"isRTL"),showButtonPanel=this._get(inst,"showButtonPanel"),hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext"),navigationAsDateFormat=this._get(inst,"navigationAsDateFormat"),numMonths=this._getNumberOfMonths(inst),showCurrentAtPos=this._get(inst,"showCurrentAtPos"),stepMonths=this._get(inst,"stepMonths"),isMultiMonth=numMonths[0]!==1||numMonths[1]!==1,currentDate=this._daylightSavingAdjust(!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)),minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),drawMonth=inst.drawMonth-showCurrentAtPos,drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[0]*numMonths[1]+1,maxDate.getDate()));maxDraw=minDate&&maxDraw<minDate?minDate:maxDraw;while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;prevText=this._get(inst,"prevText");prevText=!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst));prev=this._canAdjustMonth(inst,-1,drawYear,drawMonth)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'"+" title='"+prevText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"e":"w")+"'>"+prevText+"</span></a>":hideIfNoPrevNext?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+prevText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"e":"w")+"'>"+prevText+"</span></a>";nextText=this._get(inst,"nextText");nextText=!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst));next=this._canAdjustMonth(inst,+1,drawYear,drawMonth)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'"+" title='"+nextText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"w":"e")+"'>"+nextText+"</span></a>":hideIfNoPrevNext?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+nextText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"w":"e")+"'>"+nextText+"</span></a>";currentText=this._get(inst,"currentText");gotoDate=this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today;currentText=!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst));controls=!inst.inline?"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(inst,"closeText")+"</button>":"";buttonPanel=showButtonPanel?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'"+">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=isNaN(firstDay)?0:firstDay;showWeek=this._get(inst,"showWeek");dayNames=this._get(inst,"dayNames");dayNamesMin=this._get(inst,"dayNamesMin");monthNames=this._get(inst,"monthNames");monthNamesShort=this._get(inst,"monthNamesShort");beforeShowDay=this._get(inst,"beforeShowDay");showOtherMonths=this._get(inst,"showOtherMonths");selectOtherMonths=this._get(inst,"selectOtherMonths");defaultDate=this._getDefaultDate(inst);html="";for(row=0;row<numMonths[0];row++){group="";this.maxRows=4;for(col=0;col<numMonths[1];col++){selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));cornerClass=" ui-corner-all";calender="";if(isMultiMonth){calender+="<div class='ui-datepicker-group";if(numMonths[1]>1){switch(col){case 0:calender+=" ui-datepicker-group-first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+=" ui-datepicker-group-last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+=" ui-datepicker-group-middle";cornerClass="";break}}calender+="'>"}calender+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+cornerClass+"'>"+(/all|left/.test(cornerClass)&&row===0?isRTL?next:prev:"")+(/all|right/.test(cornerClass)&&row===0?isRTL?prev:next:"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,row>0||col>0,monthNames,monthNamesShort)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>";thead=showWeek?"<th class='ui-datepicker-week-col'>"+this._get(inst,"weekHeader")+"</th>":"";for(dow=0;dow<7;dow++){day=(dow+firstDay)%7;thead+="<th scope='col'"+((dow+firstDay+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+dayNames[day]+"'>"+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear===inst.selectedYear&&drawMonth===inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;curRows=Math.ceil((leadDays+daysInMonth)/7);numRows=isMultiMonth?this.maxRows>curRows?this.maxRows:curRows:curRows;this.maxRows=numRows;printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(dRow=0;dRow<numRows;dRow++){calender+="<tr>";tbody=!showWeek?"":"<td class='ui-datepicker-week-col'>"+this._get(inst,"calculateWeek")(printDate)+"</td>";for(dow=0;dow<7;dow++){daySettings=beforeShowDay?beforeShowDay.apply(inst.input?inst.input[0]:null,[printDate]):[true,""];otherMonth=printDate.getMonth()!==drawMonth;unselectable=otherMonth&&!selectOtherMonths||!daySettings[0]||minDate&&printDate<minDate||maxDate&&printDate>maxDate;tbody+="<td class='"+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+(printDate.getTime()===selectedDate.getTime()&&drawMonth===inst.selectedMonth&&inst._keyEvent||defaultDate.getTime()===printDate.getTime()&&defaultDate.getTime()===selectedDate.getTime()?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()===currentDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()===today.getTime()?" ui-datepicker-today":""))+"'"+((!otherMonth||showOtherMonths)&&daySettings[2]?" title='"+daySettings[2].replace(/'/g,"&#39;")+"'":"")+(unselectable?"":" data-handler='selectDay' data-event='click' data-month='"+printDate.getMonth()+"' data-year='"+printDate.getFullYear()+"'")+">"+(otherMonth&&!showOtherMonths?"&#xa0;":unselectable?"<span class='ui-state-default'>"+printDate.getDate()+"</span>":"<a class='ui-state-default"+(printDate.getTime()===today.getTime()?" ui-state-highlight":"")+(printDate.getTime()===currentDate.getTime()?" ui-state-active":"")+(otherMonth?" ui-priority-secondary":"")+"' href='#'>"+printDate.getDate()+"</a>")+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+(numMonths[0]>0&&col===numMonths[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"");group+=calender}html+=group}html+=buttonPanel;inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var inMinYear,inMaxYear,month,years,thisYear,determineYear,year,endYear,changeMonth=this._get(inst,"changeMonth"),changeYear=this._get(inst,"changeYear"),showMonthAfterYear=this._get(inst,"showMonthAfterYear"),html="<div class='ui-datepicker-title'>",monthHtml="";if(secondary||!changeMonth){monthHtml+="<span class='ui-datepicker-month'>"+monthNames[drawMonth]+"</span>"}else{inMinYear=minDate&&minDate.getFullYear()===drawYear;inMaxYear=maxDate&&maxDate.getFullYear()===drawYear;monthHtml+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";for(month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+="<option value='"+month+"'"+(month===drawMonth?" selected='selected'":"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")}if(!inst.yearshtml){inst.yearshtml="";if(secondary||!changeYear){html+="<span class='ui-datepicker-year'>"+drawYear+"</span>"}else{years=this._get(inst,"yearRange").split(":");thisYear=(new Date).getFullYear();determineYear=function(value){var year=value.match(/c[+\-].*/)?drawYear+parseInt(value.substring(1),10):value.match(/[+\-].*/)?thisYear+parseInt(value,10):parseInt(value,10);return isNaN(year)?thisYear:year};year=determineYear(years[0]);endYear=Math.max(year,determineYear(years[1]||""));year=minDate?Math.max(year,minDate.getFullYear()):year;endYear=maxDate?Math.min(endYear,maxDate.getFullYear()):endYear;inst.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";for(;year<=endYear;year++){inst.yearshtml+="<option value='"+year+"'"+(year===drawYear?" selected='selected'":"")+">"+year+"</option>"}inst.yearshtml+="</select>";html+=inst.yearshtml;inst.yearshtml=null}}html+=this._get(inst,"yearSuffix");if(showMonthAfterYear){html+=(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.selectedYear+(period==="Y"?offset:0),month=inst.selectedMonth+(period==="M"?offset:0),day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period==="D"?offset:0),date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period==="M"||period==="Y"){this._notifyChange(inst)}},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),newDate=minDate&&date<minDate?minDate:date;return maxDate&&newDate>maxDate?maxDate:newDate},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply(inst.input?inst.input[0]:null,[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return numMonths==null?[1,1]:typeof numMonths==="number"?[1,numMonths]:numMonths},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null)},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst),date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var yearSplit,currentYear,minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),minYear=null,maxYear=null,years=this._get(inst,"yearRange");if(years){yearSplit=years.split(":");currentYear=(new Date).getFullYear();minYear=parseInt(yearSplit[0],10);maxYear=parseInt(yearSplit[1],10);if(yearSplit[0].match(/[+\-].*/)){minYear+=currentYear}if(yearSplit[1].match(/[+\-].*/)){maxYear+=currentYear}}return(!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime())&&(!minYear||date.getFullYear()>=minYear)&&(!maxYear||date.getFullYear()<=maxYear)},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=typeof shortYearCutoff!=="string"?shortYearCutoff:(new Date).getFullYear()%100+parseInt(shortYearCutoff,10);return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=day?typeof day==="object"?day:this._daylightSavingAdjust(new Date(year,month,day)):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function datepicker_bindHover(dpDiv){var selector="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return dpDiv.on("mouseout",selector,function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).removeClass("ui-datepicker-next-hover")}}).on("mouseover",selector,datepicker_handleMouseover)}function datepicker_handleMouseover(){if(!$.datepicker._isDisabledDatepicker(datepicker_instActive.inline?datepicker_instActive.dpDiv.parent()[0]:datepicker_instActive.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).addClass("ui-datepicker-next-hover")}}}function datepicker_extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null){target[name]=props[name]}}return target}$.fn.datepicker=function(options){if(!this.length){return this}if(!$.datepicker.initialized){$(document).on("mousedown",$.datepicker._checkExternalClick);$.datepicker.initialized=true}if($("#"+$.datepicker._mainDivId).length===0){$("body").append($.datepicker.dpDiv)}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options==="string"&&(options==="isDisabled"||options==="getDate"||options==="widget")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options==="option"&&arguments.length===2&&typeof arguments[1]==="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options==="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker;$.datepicker.initialized=false;$.datepicker.uuid=(new Date).getTime();$.datepicker.version="1.12.1";var widgetsDatepicker=$.datepicker}); /* eslint-enable */
// 2. And our standard component definition:
parasails.registerComponent('datepicker', {
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔═╗╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠╣ ╠═╣║ ║╣
// ╩╝╚╝ ╩ ╚═╝╩╚═╚ ╩ ╩╚═╝╚═╝
props: [
'value',// The selected date, as an ISO calendar date string (YYYY-MM-DD), e.g. `'2018-08-13/2018'` or ''
'earliestDate',// Earliest allowable date, as an ISO calendar date string (YYYY-MM-DD), e.g. `'2018-08-13'` string (Defaults to current date)
'mode',// Tells us us whether this component should be mounted in default "field" mode (native date input on mobile w/ a pop-out datepicker on desktop) or mounted as always visible in "inline-picker" mode
'syncing',// set truthy to enable disabled state (watched automatically)
'errorMessage',// set to truthy string to enable error state
'placeholder',// customizable placeholder text
'displayInInternationalFormat',// when enabled, date text is displayed as "YYYY-MM-DD". Otherwise by default, it is displayed in US-style format (MM/DD/YYYY). Note that all data still flows as international ISO 6801 calendar date strings, no matter what.
],
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
data: function (){
return {
// The underlying Stripe element instance this component creates as it mounts.
isMobile: undefined,
hardCodedValueForJQueryUIDatepicker: undefined,
RX_ISO_CALENDAR_DATE: /^([0-9][0-9][0-9][0-9])\-([0-9][0-9])\-([0-9][0-9])$/,
RX_US_STYLE_CALENDAR_DATE: /^([0-9][0-9])\/([0-9][0-9])\/([0-9][0-9][0-9][0-9])$/,
};
},
// ╔╦╗╔═╗╦═╗╦╔═╦ ╦╔═╗
// ║║║╠═╣╠╦╝╠╩╗║ ║╠═╝
// ╩ ╩╩ ╩╩╚═╩ ╩╚═╝╩
template: `
<div class="datepicker-field" @input="inputDateField()">
<!-- Basic date input (no datepicker) for mobile. -->
<input v-if="isMobile" class="form-control mobile-date-field"
:class="[errorMessage ? 'is-invalid' : '']"
:value="value"
type="date"
:placeholder="placeholder || (displayInInternationalFormat ? 'YYYY-MM-DD' : 'MM/DD/YYYY')"
mobile-date-field>
<!-- Pop-out (appears when input is focused on desktop) -->
<!-- (Inline styles because the datepicker calendar pop-out uses this z-index + 1 to determine its own) -->
<!-- (See https://stackoverflow.com/a/8704775) -->
<input v-else-if="mode !== 'inline-picker'" class="form-control"
:class="[errorMessage ? 'is-invalid' : '']"
type="text"
:value="hardCodedValueForJQueryUIDatepicker"
:placeholder="placeholder || (displayInInternationalFormat ? 'YYYY-MM-DD' : 'MM/DD/YYYY')"
datepicker-el>
<i v-if="mode !== 'inline-picker'" class="datepicker-icon fa fa-calendar text-muted"></i>
<!-- Not a pop-out (always visible) -->
<div datepicker-el v-else></div>
<!-- Error message for form fields -->
<div class="invalid-feedback" v-if="errorMessage">{{ errorMessage || 'Please choose a date.'}}</div>
</div>
`,
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
beforeMount: function() {
if (typeof bowser !== 'undefined') {
this.isMobile = bowser.mobile;
}
if (!this.value && !_.isString(this.value)) {
throw new Error('<datepicker> received '+this.value+' as its initial value -- did you forget to include `v-model`? This field should always be initially set with either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string).');
} else if (_.isDate(this.value)) {
throw new Error('<datepicker> received a Date instance as its value, which is potentially imprecise (consider dates in different timezones at certain times of day). Instead, please pass in either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string).');
} else if (!_.isString(this.value)) {
throw new Error('<datepicker> received an invalid initial value: '+this.value+'. This field should always be initially set with either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string).');
} else if (this.value !== '' && !this.value.match(this.RX_ISO_CALENDAR_DATE)) {
throw new Error('<datepicker> received an invalid ISO calendar date string for its initial value: '+this.value+'. Please make sure this datum is formatted as "YYYY-MM-DD".');
}
if (this.earliestDate !== undefined) {
if (!this.earliestDate && !_.isString(this.earliestDate)) {
throw new Error('<datepicker> received '+this.earliestDate+' as its `earliest-date`. But if provided, this property should be set with either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string).');
} else if (_.isDate(this.earliestDate)) {
throw new Error('<datepicker> received a Date instance as its `earliest-date`, which is potentially imprecise (consider dates in different timezones at certain times of day). Instead, please pass in either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string) for this property.');
} else if (!_.isString(this.earliestDate)) {
throw new Error('<datepicker> received invalid `earliest-date`: '+this.earliestDate+'. If provided, this property should always be provided as either an ISO calendar date string (YYYY-MM-DD) or \'\' (empty string).');
} else if (this.earliestDate !== '' && !this.earliestDate.match(this.RX_ISO_CALENDAR_DATE)) {
throw new Error('<datepicker> received an invalid ISO calendar date string for `earliest-date`: '+this.earliestDate+'. Please make sure this datum is formatted as "YYYY-MM-DD".');
}
}//fi
if (this.mode !== undefined && this.mode !== 'inline-picker' && this.mode !== 'field') {
throw new Error('<datepicker> received invalid `mode`: '+this.mode+'. Unless set otherwise, the <datepicker> is in "field" mode. If specified, the other supported mode should be specified (`mode="inline-picker"`).');
}//•
if (this.errorMessage !== undefined && !_.isString(this.errorMessage)) {
throw new Error('<datepicker> received invalid `error-message`: '+this.errorMessage+'. This property is used as verbatim text, and thus, if provided, it should always be provided as a string.');
}//•
if (this.placeholder !== undefined && !_.isString(this.placeholder)) {
throw new Error('<datepicker> received invalid `placeholder`: '+this.placeholder+'. This property is used for placeholder text, and thus, if provided, it should always be provided as a string.');
}//•
if(!this.isMobile) {
// Compute value for the jQuery UI datepicker, which might expect a
// US-style formatted calendar date string. Note that WE DO NOT
// CONSTRUCT A DATE INSTANCE FROM THE configured `v-model`-- if we did so,
// it would be potentially represented differently in different time zones!!!
// Instead, we use the special string format expected by jQuery UI.
// If no `v-model` was configured, this ends up being treated as empty string.
if (this.value) {
if (this.displayInInternationalFormat) {
this.hardCodedValueForJQueryUIDatepicker = this.value;
} else {
this.hardCodedValueForJQueryUIDatepicker = this.value.replace(this.RX_ISO_CALENDAR_DATE, '$2/$3/$1');
}
} else {
this.hardCodedValueForJQueryUIDatepicker = '';
}
}
},
mounted: function (){
if(!this.isMobile) {
// Compute minDate for the jQuery UI datepicker, which might expect a
// US-style formatted calendar date string or a JavaScript Date
// instance. Note that WE DO NOT CONSTRUCT A DATE INSTANCE FROM THE
// configured `earliestDate` prop-- if we did so, it would be potentially
// represented differently in different time zones!!! Instead, we use the
// special string format expected by jQuery UI. If no `earliestDate` prop
// was configured, we default to the current date.
// (https://api.jqueryui.com/datepicker/#option-minDate)
let jQueryUIDatePickerMinDate;
if (this.earliestDate) {
if (this.displayInInternationalFormat) {
jQueryUIDatePickerMinDate = this.earliestDate;
} else {
jQueryUIDatePickerMinDate = this.earliestDate.replace(this.RX_ISO_CALENDAR_DATE, '$2/$3/$1');
}
} else {
jQueryUIDatePickerMinDate = new Date();
}
this.$find('[datepicker-el]').datepicker({
minDate: jQueryUIDatePickerMinDate,
dateFormat: (
this.displayInInternationalFormat?
'yy-mm-dd'//« this actually means YYYY-MM-DD (see jQUI docs)
: 'mm/dd/yy'// « this actually means MM/DD/YYYY (see jQUI docs)
),
onSelect: (dateText, unusedDatepickerInstance)=> {
// jQuery UI might report the selected date in US-style calendar format.
// But we always want a standard ISO calendar date:
let isoCalendarDate;
if (dateText) {
if (this.displayInInternationalFormat) {
isoCalendarDate = dateText;
} else {
isoCalendarDate = dateText.replace(this.RX_US_STYLE_CALENDAR_DATE, '$3-$1-$2');
}
} else {
isoCalendarDate = '';
}
this.$emit('input', isoCalendarDate);
}
});
}
},
beforeDestroy: function (){
if(!this.isMobile) {
this.$find('[datepicker-el]').datepicker('destroy');
}
},
watch: {
// TODO: rename this prop to "disabled" to be a bit more flexible
syncing: function(newVal, unusedOldVal) {
// If syncing is true, disable the datepicker.
if(newVal) {
this.$find('[datepicker-el]').datepicker('option', 'disabled', true);
}
// Otherwise, enable it.
else {
this.$find('[datepicker-el]').datepicker('option', 'disabled', false);
}
},
// FUTURE: respond to external errorMessage changes
// FUTURE: respond to external value changes
// FUTURE: respond to external earliestDate changes
// FUTURE: respond to external placeholder changes
},
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
methods: {
inputDateField: function() {
// If this is mobile (aka just a normal input and not the jQuery UI datepicker),
// emit an input event so the v-model will update.
if(this.isMobile) {
let newValue = $(this.$el).find('[mobile-date-field]').val();// « this is a new ISO calendar date string like "YYYY-MM-DD"
this.$emit('input', newValue);
}
else {
// Otherwise, we don't know exactly what was typed (this is just a text field),
// but the jQuery UI datepicker prevents typing letters and such, so it will
// have to be somewhat correct. (We can validate further as needed in userland.)
let rawValue = $(this.$el).find('[datepicker-el]').val();
// Interpret text as either a US-style calendar date or ISO calendar date
// (being kind to end users who try to use dashes instead of slashes in a
// US-style calendar date), then if necessary, compute the final, formatted
// ISO calendar date and emit it.
// > Note: The date field has appropriate masking for each format, but we
// > still always tolerate both formats here to future-proof against any
// > weird tricks that might circumvent the masking.
if (rawValue.match(this.RX_US_STYLE_CALENDAR_DATE) || rawValue.replace(/\-/g,'/').match(this.RX_US_STYLE_CALENDAR_DATE)) {
let isoCalendarDate = rawValue.replace(/\-/g,'/').replace(this.RX_US_STYLE_CALENDAR_DATE, '$3-$1-$2');
this.$emit('input', isoCalendarDate);
} else if (rawValue.match(this.RX_ISO_CALENDAR_DATE)) {
this.$emit('input', rawValue);
} else {
// FUTURE: Do some basic error checking here and instead of emitting
// the input event, auto-set the error message.
// (This would mean carving out a separate var in the vm state separate
// from the prop, but that's easy)
// This would be a nice thing to add because then userland code wouldn't
// have to do its own validation!
this.$emit('input', rawValue);
}//fi
}
}
}
});
// This goes in `assets/styles/components/datepicker.component.less`
// Also don't forget to include a reference to it in `importer.less`!
// ^^Remove this comment
/**
* <datepicker>
*/
// WARNING:
// Normally, by convention, in a component's `.less` file, all styles should be
// encapsulated inside a single selector (like `[parasails-component='foo']`).
// But this component is a special exception, namely because it leverages a
// 3rd party library called jQuery UI, which it bundles as part of its
// implementation.
//
// Because of this, this `.less` file actually consists of three parts:
// ┌─┐┌┐┌┌─┐
// │ ││││├┤
// └─┘┘└┘└─┘
// 1. A custom build of jQuery UI that includes only the styles necessary for
// the datepicker component, plus a lightweight default theme.
// (FUTURE: insulate+namespace these styles)
/* lesshint-disable */ /*! jQuery UI - v1.12.1 - 2017-12-09* http://jqueryui.com* Includes: core.css, datepicker.css* Copyright jQuery Foundation and other contributors; Licensed MIT */.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default !important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em} /* jquery ui theme: jQuery UI CSS Framework 1.12.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/theming/ * * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=&bgImgOpacityHighlight=&bgImgOpacityActive=&bgImgOpacityHover=&bgImgOpacityDefault=&bgImgOpacityContent=&bgImgOpacityHeader=&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23fff&fcError=%23fff&borderColorError=%23F05D5E&bgTextureError=flat&bgColorError=%23F05D5E&iconColorHighlight=%232da1c1&fcHighlight=%232da1c1&borderColorHighlight=%23ccc&bgTextureHighlight=flat&bgColorHighlight=%23fff&iconColorActive=%23fff&fcActive=%23fff&borderColorActive=%232da1c1&bgTextureActive=flat&bgColorActive=%232da1c1&iconColorHover=%232da1c1&fcHover=%232da1c1&borderColorHover=%23fff&bgTextureHover=flat&bgColorHover=%23fff&iconColorDefault=%23333&fcDefault=%23333&borderColorDefault=%23ccc&bgTextureDefault=flat&bgColorDefault=%23fff&iconColorContent=%23999&fcContent=%23999&borderColorContent=%23ddd&bgTextureContent=flat&bgColorContent=%23fff&iconColorHeader=%23999&fcHeader=%232da1c1&borderColorHeader=%23fff&bgTextureHeader=flat&bgColorHeader=%23fff&cornerRadius=3px&fwDefault=bold&fsDefault=1em&ffDefault=%22Lato%22%2CHelvetica%2Csans-serif */.ui-widget,.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget.ui-widget-content{border:1px solid #ccc}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#999}.ui-widget-content a{color:#999}.ui-widget-header{border:1px solid #fff;background:#fff;color:#14acc2;font-weight:bold;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;text-transform:uppercase}.ui-widget-header a{color:#14acc2}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #ccc;background:#fff;font-weight:bold;color:#333}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#333;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#fff;font-weight:bold;color:#14acc2}.ui-datepicker-prev.ui-datepicker-prev-hover.ui-state-hover{top:2px;left:2px;border:0}.ui-datepicker-next.ui-datepicker-next-hover.ui-state-hover{top:2px;right:2px;border:0}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#14acc2;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px #5e9ed6}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #14acc2;background:#14acc2;font-weight:bold;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#14acc2;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #ccc;background:#fff;color:#14acc2}.ui-state-checked{border:1px solid #ccc;background:#fff}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#14acc2}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #b53a03;background:#b53a03;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon,.ui-widget-header .ui-icon{background-image:url(data:image/png;base64,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)}.ui-state-active .ui-icon,.ui-button:active .ui-icon,.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(data:image/png;base64,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)}.ui-button .ui-icon,.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon,.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url(data:image/png;base64,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)}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:3px 3px 0 0 rgba(0,0,0,0.04);box-shadow:3px 3px 0 0 rgba(0,0,0,0.04)} /* lesshint-enable */
// ┌┬┐┬ ┬┌─┐
// │ ││││ │
// ┴ └┴┘└─┘
// 2. This app's custom overrides for the jQuery UI datepicker theme above.
// This is stuff like colors, custom icons, etc that needs to exist at the
// top level, outside of the realm of the component selector. (We also apply
// some other shared styles up here, just to prevent duplication.)
//
// > This has to be outside of the main component selector because, when in
// > "field" mode, the datepicker has to "pop out" on top of other content so
// > it appears to be on top. jQuery UI's implementation (like most) manages
// > to accomplish this by appending the pop-out datpicker directly to the
// > `body`. But that means the styles for the actual jQuery UI datepicker
// > element need to be included outside globally rather than within the
// > component selector.
// (FUTURE: insulate+namespace these styles too)
#ui-datepicker-div, [parasails-component='datepicker'] {
.ui-state-hover, .ui-state-focus, .ui-button:hover, .ui-button:focus {
.ui-icon {
// Use our customized icons w/ this app's brand color:
/* lesshint-disable */ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAYAAADvl7rLAAAACXBIWXMAAAsTAAALEwEAmpwYAAA59GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxOC0wOC0wM1QxMTowMDoxMy0wNTowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE4LTA4LTAzVDExOjIxOjU1LTA1OjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wOC0wM1QxMToyMTo1NS0wNTowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo2N2QxMjYxMi0yOGJkLTRlOTMtYTgyNS1jNTMyZjk1NDFkMzc8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmNWQ2ZjAxZC1kN2M1LTExN2ItOTM3MS1kNWFiYzlmZWYxM2E8L3htcE1NOkRvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo0NzRlNjQ4Zi04OTFjLTQzM2ItYWQzZS05YjFhOWMxM2MzZDE8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jcmVhdGVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NDc0ZTY0OGYtODkxYy00MzNiLWFkM2UtOWIxYTljMTNjM2QxPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTA4LTAzVDExOjAwOjEzLTA1OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NjdkMTI2MTItMjhiZC00ZTkzLWE4MjUtYzUzMmY5NTQxZDM3PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTA4LTAzVDExOjIxOjU1LTA1OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNSAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjU2PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjI0MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+VskasAAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAWIUlEQVR42uydz4skyXXHQ5YwjaEhYWAgG7HbGhkGgaBo1Rx0MGxhGHYZXdqYvehUeKAwhsXM3aBhYfFlQRjmstA0icAgbMyAQaCDUB8GjA8N8w8U+E+Yv8CED87UxkZHZsaPFxFZVZ/Dl+rpnlf5K94nX0S8F6G01gohdJriJiAEABBCACDmC7o9Ol61qtvr/pP7sUABAJTb+TUQAAC1AEDD+9YRazl/GwEB+5x5jocGADP8iwCAdigWAKmNJ+b49nHbiO/RAo7bJnxPyjNIuX7X/yWKOCQAuMK/SgBoBRpPzPFT34ASAEi9dqlnIHHOLRA4EABMNf7ILoCkI5QCgEQfOPW6a4BPoss2ds5tpXMCAIEA+I7Dmw+uAgBS375SEUiNN7BUBCDhyL7OSwTAIGDWhrjk8DfHOUiMAZQeBGQMAAAwC3DgswCpXSBmAQAAIhEIAQCEEABACAEAhBAA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);/*lesshint-enable*/
}
}
.ui-widget-header {
color: @text-normal;
}
.ui-button {
&.ui-state-active:hover {
border: 1px solid @brand;
background: @brand;
}
&:focus {
color: @brand;
}
}
.ui-state-highlight, .ui-widget-header .ui-state-highlight a {
color: @accent-md-green;
}
.ui-state-active {
border-color: @accent-dk-blue;
background: @accent-lt-blue;
&.ui-state-highlight, &.ui-widget-header .ui-state-highlight a {
color: @accent-white;
}
}
.ui-widget-header .ui-state-error {
border-color: @error;
background: @error;
}
}
// ┌┬┐┬ ┬┬─┐┌─┐┌─┐
// │ ├─┤├┬┘├┤ ├┤
// ┴ ┴ ┴┴└─└─┘└─┘
// 3. Finally, our standard component selector with some styles:
[parasails-component='datepicker'] {
position: relative;
input {
padding-right: 50px;
}
.datepicker-icon {
position: absolute;
right: 10px;
top: 10px;
font-size: 16px;
pointer-events: none;
}
}
@amassis
Copy link

amassis commented Aug 20, 2018

@mikermcneil I am getting errors from importer regarding some colors - can you please check if there is anything else I need to add/change in the app?
Thanks

sails> error: ** Grunt :: An error occurred. **
error: 
------------------------------------------------------------------------
>> NameError: variable @accent-md-green is undefined in assets/styles/components/datepicker.component.less on line 58, column 12:
>> 57   .ui-state-highlight, .ui-widget-header .ui-state-highlight a {
>> 58     color: @accent-md-green;
>> 59   }
Warning: Error compiling assets/styles/importer.less 

Aborted due to warnings.
Running "less:dev" (less) task
------------------------------------------------------------------------

@dev2games
Copy link

How can this be used with formData?

@joyceHong
Copy link

How to use CtkDatetimePicker in parasials.js ?

example:
var VueCtkDateTimePicker = import("assets/dependencies/vue-ctk-date-time-picker/vue-ctk-date-time-picker.js");

parasails.registerComponent('DateTimePicker2',
{
components: {
'VueCtkDateTimePicker' : VueCtkDateTimePicker
},
template:""
}
);

htmlCode:

Is it possible ? or how to do?

@itsMagondu
Copy link

Did anyone get answers for the questions above?

@itsMagondu
Copy link

itsMagondu commented Aug 12, 2019

@amassis not sure if you found your answer but I will attempt to answer this should anyone else come looking for an answer.

In my sailsjs project, I found the file colors.less and defined my colours there. I used Material design Bootstrap colour picker to select the color codes https://mdbootstrap.com/legacy/4.3.2/?page=css/colors.

@itsMagondu
Copy link

@mikermcneil I have been able to add the datepicker to my form. I am using the mode "field". The datepicker however does not popup. Any idea why?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment