angular-schema-form-uibdatepicker
Version:
A basic date and time picker for Angular Schema Form
2 lines • 4.78 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("angular-schema-form-uibdatepicker",[],t):"object"==typeof exports?exports["angular-schema-form-uibdatepicker"]=t():e["angular-schema-form-uibdatepicker"]=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function r(o){if(t[o])return t[o].exports;var a=t[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,o){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(r.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(o,a,function(t){return e[t]}.bind(null,a));return o},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){r(1);r(3);angular.module("schemaForm").config(["schemaFormProvider","schemaFormDecoratorsProvider","sfPathProvider",function(e,t,r){e.defaults.string.unshift(function(t,o,a){if("string"===o.type&&("date"===o.format||"date-time"===o.format)){var n=e.stdFormObj(t,o,a);return n.key=a.path,n.type="uibdatepicker",a.lookup[r.stringify(a.path)]=n,n}}),t.addMapping("bootstrapDecorator","uibdatepicker","src/plugin.datepicker.html")}])},function(e,t,r){var o=r(2);angular.module("schemaForm").directive("datepicker",["moment",function(e){return{restrict:"EA",require:"ngModel",scope:{ngModel:"=",form:"="},link:function(t,r,o,a){t.options=angular.extend({},{format:"YYYY-MM-DDTHH:mm:ss[Z]",placeholder:"",datepickerOptions:{showWeeks:!1},showMeridian:!1,showSeconds:!0},t.form.options||{});var n=t.options.format;t.options.placeholder||(t.options.placeholder="e.g.: "+e(new Date).format(n));var i=function(t){return t?e(t,n).toDate():null},s=function(t){return t?e(t).format(n):""},l=function(r){return(!r||e(r,n,!0).isValid())&&(!(o=i(r))&&!t.form.required||angular.isDate(o)&&!isNaN(o));var o};t.date=i(t.ngModel),t.dateTime=i(t.ngModel),t.ctrl=a,t.timepickerChanged=function(e){a.$setDirty(),t.ngModel=s(e),t.date=i(t.ngModel)},t.datepickerChanged=function(e){a.$setDirty(),t.dateTime?(t.dateTime.setFullYear(e.getFullYear()),t.dateTime.setMonth(e.getMonth()),t.dateTime.setDate(e.getDate())):t.dateTime=new Date(e),t.dateTime=new Date(t.dateTime),t.ngModel=s(t.dateTime),t.date=new Date(t.dateTime)},t.inputChanged=function(e){a.$setDirty(),t.date=i(e),t.dateTime=i(e)},a.$validators.date=function(e){return l(e)}},template:o}}])},function(e,t){var r='<div class=datepicker><input type=text class=form-control placeholder={{options.placeholder}} aria-label={{options.placeholder}} ng-model=ngModel ng-change="inputChanged(ngModel)"> <a class=input-group-addon tabindex=0 ng-click="collapse = !collapse;" role=button><span class="glyphicon glyphicon-calendar"></span></a><div class=datepicker-popup ng-show=collapse><div uib-datepicker class="well well-sm" ng-model=date ng-change=datepickerChanged(date) datepicker-options=options.datepickerOptions style=margin-bottom:0></div><div uib-timepicker class="well well-sm" ng-model=dateTime ng-change=timepickerChanged(dateTime) show-meridian=options.showMeridian show-seconds=options.showSeconds></div></div></div>';angular.module("ng").run(["$templateCache",function(e){e.put("src/directive.datepicker.html",r)}]),e.exports=r},function(e,t){var r='<div class="form-group {{form.htmlClass}} schema-form-datepicker" ng-class="{\'has-error\': hasError(), \'has-success\': hasSuccess(), \'has-feedback\': form.feedback !== false}"><label class=control-label ng-show=showTitle()>{{form.title}}</label><datepicker form=form ng-model=$$value$$ schema-validate=form></datepicker><span ng-if="form.feedback !== false" class=form-control-feedback ng-class="evalInScope(form.feedback) || {\'glyphicon\': true, \'glyphicon-ok\': hasSuccess(), \'glyphicon-remove\': hasError() }" aria-hidden=true></span><div class=help-block aria-live=assertive ng-show="((hasError() && errorMessage(schemaError())))" ng-bind-html="(hasError() && errorMessage(schemaError()))"></div><div class="help-block success" aria-live=assertive ng-show=form.description ng-bind-html=form.description></div></div>';angular.module("ng").run(["$templateCache",function(e){e.put("src/plugin.datepicker.html",r)}]),e.exports=r}])});
//# sourceMappingURL=angular-schema-form-uibdatepicker.min.js.map