Skip to content

Instantly share code, notes, and snippets.

@danilopolani
Created May 11, 2016 16:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danilopolani/d6b019784f63812b0d26507315374642 to your computer and use it in GitHub Desktop.
Save danilopolani/d6b019784f63812b0d26507315374642 to your computer and use it in GitHub Desktop.
!function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(o){n.innerText=t}}(document,".padding_zero {\n padding: 0;\n}\n\n.ionic_datepicker_popup .font_bold {\n font-weight: bold;\n}\n.ionic_datepicker_popup .padding_top_zero {\n padding-top: 0;\n}\n.ionic_datepicker_popup .padding_left_5px {\n padding-left: 5px;\n}\n.ionic_datepicker_popup .padding_right_5px {\n padding-right: 5px;\n}\n.ionic_datepicker_popup .calendar_grid {\n height: 215px;\n}\n.ionic_datepicker_popup .today {\n border: 1px solid #009688;\n border-radius: 50%;\n}\n.ionic_datepicker_popup .selected_date {\n background-color: #009688;\n border-radius: 50%;\n color: #fff;\n font-weight: bold;\n}\n.ionic_datepicker_popup .popup-head {\n background-color: #009688;\n display: none;\n}\n.ionic_datepicker_popup .popup-head .popup-title {\n color: #ffffff;\n}\n.ionic_datepicker_popup .popup-head .popup-sub-title {\n color: #ffffff;\n}\n.ionic_datepicker_popup .popup-body {\n background-color: #ffffff;\n}\n.ionic_datepicker_popup .popup-body .selected_date_full {\n background-color: #019688;\n margin: -10px -10px 0 -10px;\n height: 45px;\n text-align: center;\n font-weight: bold;\n color: #fff;\n line-height: 45px;\n font-size: 18px;\n}\n.ionic_datepicker_popup .popup-body .select_section {\n padding: 1px 5px;\n}\n.ionic_datepicker_popup .popup-body .pointer_events_none {\n pointer-events: none;\n color: #aaaaaa !important;\n}\n.ionic_datepicker_popup .popup-body .month_select, .ionic_datepicker_popup .popup-body .year_select {\n border: none;\n border-bottom: 1px solid #009688;\n padding: 0;\n}\n.ionic_datepicker_popup .popup-body .month_select .input-label, .ionic_datepicker_popup .popup-body .year_select .input-label {\n padding: 2px 0;\n width: 0;\n}\n.ionic_datepicker_popup .popup-body .month_select select, .ionic_datepicker_popup .popup-body .year_select select {\n left: 10px;\n border: none;\n padding: 0;\n}\n.ionic_datepicker_popup .popup-body .month_select:after, .ionic_datepicker_popup .popup-body .year_select:after {\n right: 5px;\n color: #009688;\n}\n.ionic_datepicker_popup .popup-body .show_nav {\n padding: 10px 0 0 0;\n}\n.ionic_datepicker_popup .popup-body .show_nav .prev_btn_section {\n padding: 5px 0;\n text-align: left;\n}\n.ionic_datepicker_popup .popup-body .show_nav .prev_btn_section button {\n padding: 0;\n}\n.ionic_datepicker_popup .popup-body .show_nav .next_btn_section {\n padding: 5px 0;\n text-align: right;\n}\n.ionic_datepicker_popup .popup-body .show_nav .next_btn_section button {\n padding: 0;\n}\n.ionic_datepicker_popup .popup-body .button-clear {\n color: #009688;\n}\n.ionic_datepicker_popup .popup-buttons {\n padding: 0;\n min-height: 45px;\n}\n.ionic_datepicker_popup .popup-buttons button {\n background-color: #009688;\n border-radius: 0;\n margin-right: 1px;\n color: #ffffff;\n}\n\n.ionic_datepicker_modal .header, .ionic_datepicker_modal .footer {\n background-color: #009688;\n}\n.ionic_datepicker_modal .header .title, .ionic_datepicker_modal .header .button, .ionic_datepicker_modal .footer .title, .ionic_datepicker_modal .footer .button {\n color: #ffffff;\n}\n.ionic_datepicker_modal .footer .button-block {\n margin: 0;\n}\n.ionic_datepicker_modal .today {\n border: 1px solid #009688;\n}\n.ionic_datepicker_modal .selected_date {\n background-color: #009688;\n color: #fff;\n font-weight: bold;\n}\n.ionic_datepicker_modal .pointer_events_none {\n pointer-events: none;\n color: #aaaaaa !important;\n}\n.ionic_datepicker_modal .select_section {\n padding: 1px 5px;\n}\n.ionic_datepicker_modal .button-clear {\n color: #009688;\n}\n.ionic_datepicker_modal .month_select, .ionic_datepicker_modal .year_select {\n border: none;\n border-bottom: 1px solid #009688;\n padding: 0;\n}\n.ionic_datepicker_modal .month_select .input-label, .ionic_datepicker_modal .year_select .input-label {\n padding: 2px 0;\n width: 0;\n}\n.ionic_datepicker_modal .month_select select, .ionic_datepicker_modal .year_select select {\n left: 10px;\n border: none;\n padding: 0 10px;\n}\n.ionic_datepicker_modal .month_select:after, .ionic_datepicker_modal .year_select:after {\n right: 5px;\n color: #009688;\n}\n.ionic_datepicker_modal .padding_left_5px {\n padding-left: 5px;\n}\n.ionic_datepicker_modal .padding_right_5px {\n padding-right: 5px;\n}\n.ionic_datepicker_modal .date_col {\n height: 50px;\n line-height: 50px;\n}\n.ionic_datepicker_modal .font_bold {\n font-weight: bold;\n}\n.ionic_datepicker_modal .font_22px {\n font-size: 22px;\n}\n.platform-android .ionic_datepicker_modal .bar .title.title-left {\n text-align: center;\n}\n.platform-android .ionic_datepicker_modal select {\n left: 25%;\n}\n.platform-ios .ionic_datepicker_modal select {\n left: 5%;\n}"),function(e){try{e=angular.module("ionic-datepicker.templates")}catch(t){e=angular.module("ionic-datepicker.templates",[])}
e.run(["$templateCache",function(e){e.put("ionic-datepicker-modal.html",'<ion-modal-view class=ionic_datepicker_modal><ion-header-bar class=header><h1 class=title>{{selctedDateEpoch | date : mainObj.dateFormat}}</h1></ion-header-bar><ion-content class=ionic_datepicker_modal_content><div><div class="row text-center"><div class="col col-10 left_arrow"><button class="button-clear font_22px" ng-click=prevMonth() ng-class="{\'pointer_events_none\':((firstDayEpoch - 86400000) < fromDate)}"><i class="icon ion-chevron-left"></i></button></div><div class="col col-80 text-center"><div class="row select_section"><div class="col-50 padding_right_5px"><label class="item item-input item-select month_select"><span class=input-label>&nbsp;</span><select ng-model=currentMonth ng-change=monthChanged(currentMonth) ng-options="month for month in monthsList"></select></label></div><div class="col-50 padding_left_5px"><label class="item item-input item-select year_select"><span class=input-label>&nbsp;</span><select ng-model=currentYear ng-change=yearChanged(currentYear) ng-options="year for year in yearsList"></select></label></div></div></div><div class="col col-10 right_arrow"><button class="button-clear font_22px" ng-click=nextMonth() ng-class="{\'pointer_events_none\':((lastDayEpoch + 86400000)> toDate)}"><i class="icon ion-chevron-right"></i></button></div></div><div class=calendar_grid><div class="row padding-top weeks_row"><div class="col text-center font_bold" ng-repeat="weekName in weeksList track by $index" ng-bind=weekName></div></div><div><div class="row text-center padding_top_zero" ng-repeat="row in rows track by $index"><div class="col padding_zero date_col" ng-repeat="col in cols track by $index" ng-class="{\'selected_date\': (dayList[row + $index].epoch === selctedDateEpoch), \'today\' : (dayList[row + $index].epoch == today), \'pointer_events_none\':((disabledDates.indexOf(dayList[row + $index].epoch) >= 0) || (dayList[row + $index].disabled))}" ng-click="dateSelected(dayList[row + $index])"><div class=date_cell>{{dayList[row + col].date}}</div></div></div></div></div></div></ion-content><ion-footer-bar class=footer><div class="row padding_zero"><button class="button button-clear button-block button_set" ng-if=!mainObj.closeOnSelect ng-click=setIonicDatePickerDate()>{{mainObj.setLabel}}</button> <button class="button button-clear button-block button_today" ng-if=mainObj.showTodayButton ng-click=setIonicDatePickerTodayDate()>{{mainObj.todayLabel}}</button> <button class="button button-clear button-block button_close" ng-click=closeIonicDatePickerModal()>{{mainObj.closeLabel}}</button></div></ion-footer-bar></ion-modal-view>')}])}(),function(e){try{e=angular.module("ionic-datepicker.templates")}catch(t){e=angular.module("ionic-datepicker.templates",[])}
e.run(["$templateCache",function(e){e.put("ionic-datepicker-popup.html",'<div class=selected_date_full>{{selctedDateEpoch | date : mainObj.dateFormat}}</div><div class=date_selection><div class="row show_nav"><div class="col-10 prev_btn_section"><button class=button-clear ng-click=prevMonth() ng-class="{\'pointer_events_none\':((firstDayEpoch - 86400000) < fromDate)}"><i class="icon ion-chevron-left"></i></button></div><div class="col-80 text-center"><div class="row select_section"><div class="col-50 padding_right_5px"><label class="item item-input item-select month_select"><span class=input-label>&nbsp;</span><select ng-model=currentMonth ng-change=monthChanged(currentMonth) ng-options="month for month in monthsList"></select></label></div><div class="col-50 padding_left_5px"><label class="item item-input item-select year_select"><span class=input-label>&nbsp;</span><select ng-model=currentYear ng-change=yearChanged(currentYear) ng-options="year for year in yearsList"></select></label></div></div></div><div class="col-10 next_btn_section"><button class=button-clear ng-click=nextMonth() ng-class="{\'pointer_events_none\':((lastDayEpoch + 86400000)> toDate)}"><i class="icon ion-chevron-right"></i></button></div></div><div class=calendar_grid><div class="row weeks_row"><div class="col text-center font_bold" ng-repeat="weekName in weeksList track by $index" ng-bind=weekName></div></div><div><div class="row text-center padding_top_zero" ng-repeat="row in rows track by $index"><div class="col no_padding date_col" ng-repeat="col in cols track by $index" ng-class="{\'selected_date\': (dayList[row + $index].epoch === selctedDateEpoch), \'today\' : (dayList[row + $index].epoch == today), \'pointer_events_none\':((disabledDates.indexOf(dayList[row + $index].epoch) >= 0) || dayList[row + $index].disabled)}" ng-click="dateSelected(dayList[row + $index])"><div class=date_cell>{{dayList[row + col].date}}</div></div></div></div></div></div>')}])}(),angular.module("ionic-datepicker",["ionic","ionic-datepicker.service","ionic-datepicker.provider","ionic-datepicker.templates"]),angular.module("ionic-datepicker.provider",[]).provider("ionicDatePicker",function(){var e={setLabel:"Set",todayLabel:"Today",closeLabel:"Close",inputDate:new Date(),mondayFirst:!0,weeksList:["S","M","T","W","T","F","S"],monthsList:["Jan","Feb","March","April","May","June","July","Aug","Sept","Oct","Nov","Dec"],templateType:"popup",showTodayButton:!1,closeOnSelect:!1,disableWeekdays:[]};this.configDatePicker=function(t){angular.extend(e,t)},this.$get=["$rootScope","$ionicPopup","$ionicModal","IonicDatepickerService",function(t,n,o,a){function i(e){return e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0),e}
function c(e){e.disabledDates&&0!==e.disabledDates.length?(u.disabledDates=[],angular.forEach(e.disabledDates,function(e,t){e=i(new Date(e)),u.disabledDates.push(e.getTime())})):u.disabledDates=[]}
function d(e){e=i(e),u.currentDate=angular.copy(e);var t=new Date(e.getFullYear(),e.getMonth(),1).getDate(),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();u.monthsList=[],u.monthsList=u.mainObj.monthsList&&12===u.mainObj.monthsList.length?u.mainObj.monthsList:a.monthsList,u.yearsList=a.getYearsList(u.mainObj.from,u.mainObj.to),u.dayList=[];var o,c;u.firstDayEpoch=i(new Date(e.getFullYear(),e.getMonth(),t)).getTime(),u.lastDayEpoch=i(new Date(e.getFullYear(),e.getMonth(),n)).getTime();for(var d=t;n>=d;d++)o=new Date(e.getFullYear(),e.getMonth(),d),c=o.getTime()<u.fromDate||o.getTime()>u.toDate||u.mainObj.disableWeekdays.indexOf(o.getDay())>=0,u.dayList.push({date:o.getDate(),month:o.getMonth(),year:o.getFullYear(),day:o.getDay(),epoch:o.getTime(),disabled:c});var r=u.dayList[0].day-u.mainObj.mondayFirst;r=0>r?6:r;for(var p=0;r>p;p++)u.dayList.unshift({});u.rows=[0,7,14,21,28,35],u.cols=[0,1,2,3,4,5,6],u.currentMonth=u.mainObj.monthsList[e.getMonth()],u.currentYear=e.getFullYear(),u.currentMonthSelected=angular.copy(u.currentMonth),u.currentYearSelected=angular.copy(u.currentYear),u.numColumns=7}
function r(e){u.mainObj=angular.copy(e),u.selctedDateEpoch=i(u.mainObj.inputDate).getTime(),u.weeksList=u.mainObj.weeksList&&7===u.mainObj.weeksList.length?u.mainObj.weeksList:["S","M","T","W","T","F","S"],u.mainObj.mondayFirst&&u.weeksList.push(u.mainObj.weeksList.shift()),u.disableWeekdays=u.mainObj.disableWeekdays,d(u.mainObj.inputDate),c(u.mainObj)}
function p(){u.modal.show()}
function l(){u.modal.hide()}
var s={},u=t.$new();return u.today=i(new Date).getTime(),u.disabledDates=[],u.prevMonth=function(){1===u.currentDate.getMonth()&&u.currentDate.setFullYear(u.currentDate.getFullYear()),u.currentDate.setMonth(u.currentDate.getMonth()-1),u.currentMonth=u.mainObj.monthsList[u.currentDate.getMonth()],u.currentYear=u.currentDate.getFullYear(),d(u.currentDate)},u.nextMonth=function(){11===u.currentDate.getMonth()&&u.currentDate.setFullYear(u.currentDate.getFullYear()),u.currentDate.setDate(1),u.currentDate.setMonth(u.currentDate.getMonth()+1),u.currentMonth=u.mainObj.monthsList[u.currentDate.getMonth()],u.currentYear=u.currentDate.getFullYear(),d(u.currentDate)},u.dateSelected=function(e){e&&0!==Object.keys(e).length&&(u.selctedDateEpoch=e.epoch,u.mainObj.closeOnSelect&&(u.mainObj.callback(u.selctedDateEpoch),"popup"==u.mainObj.templateType.toLowerCase()?u.popup.close():l()))},u.setIonicDatePickerTodayDate=function(){var e=new Date;d(new Date),u.selctedDateEpoch=i(e).getTime(),u.mainObj.closeOnSelect&&(u.mainObj.callback(u.selctedDateEpoch),l())},u.setIonicDatePickerDate=function(){u.mainObj.callback(u.selctedDateEpoch),l()},u.monthChanged=function(e){var t=u.monthsList.indexOf(e);u.currentDate.setMonth(t),d(u.currentDate)},u.yearChanged=function(e){u.currentDate.setFullYear(e),d(u.currentDate)},o.fromTemplateUrl("ionic-datepicker-modal.html",{scope:u,animation:"slide-in-up"}).then(function(e){u.modal=e}),u.$on("$destroy",function(){u.modal.remove()}),u.closeIonicDatePickerModal=function(){l()},s.openDatePicker=function(t){var o=[];u.mainObj=angular.extend({},e,t),u.mainObj.from&&(u.fromDate=i(new Date(u.mainObj.from)).getTime()),u.mainObj.to&&(u.toDate=i(new Date(u.mainObj.to)).getTime()),t.disableWeekdays&&e.disableWeekdays&&(u.mainObj.disableWeekdays=t.disableWeekdays.concat(e.disableWeekdays)),r(u.mainObj),u.mainObj.closeOnSelect||(o=[{text:u.mainObj.setLabel,type:"button_set",onTap:function(e){u.mainObj.callback(u.selctedDateEpoch)}}]),u.mainObj.showTodayButton&&o.push({text:u.mainObj.todayLabel,type:"button_today",onTap:function(e){var t=new Date;d(new Date),u.selctedDateEpoch=i(t).getTime(),u.mainObj.closeOnSelect||e.preventDefault()}}),o.push({text:u.mainObj.closeLabel,type:"button_close",onTap:function(e){console.log("ionic-datepicker popup closed.")}}),"popup"==u.mainObj.templateType.toLowerCase()?u.popup=n.show({templateUrl:"ionic-datepicker-popup.html",scope:u,cssClass:"ionic_datepicker_popup",buttons:o}):p()},s}]}),angular.module("ionic-datepicker.service",[]).service("IonicDatepickerService",function(){this.monthsList=["January","February","March","April","May","June","July","August","September","October","November","December"],this.getYearsList=function(e,t){var n=[],o=1900,a=2100;o=e?new Date(e).getFullYear():o,a=t?new Date(t).getFullYear():a;for(var i=o;a>=i;i++)n.push(i);return n}});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment