1angular.module("ui.timepicker",[]).value("uiTimepickerConfig",{step:15,timeFormat:"H:i"}).directive("uiTimepicker",["uiTimepickerConfig",function(a){return{restrict:"A",require:"ngModel",priority:1,link:function(b,c,d,e){e.$render=function(){var a=e.$modelValue;if(angular.isDefined(a)&&null!==a&&!angular.isDate(a))throw new Error("ng-Model value must be a Date object - currently it is a "+typeof a+".");c.is(":focus")||c.timepicker("setTime",a)},e.$parsers.unshift(function(){var a=c.timepicker("getTime",e.$modelValue);return a}),b.$watch(d.ngModel,function(){e.$render()},!0),c.timepicker(a),c.on("changeTime",function(){b.$evalAsync(function(){var a=c.timepicker("getTime",e.$modelValue);e.$setViewValue(a)})})}}}]); 2 3(function webpackUniversalModuleDefinition(root, factory) { 4 if(typeof exports === 'object' && typeof module === 'object') 5 module.exports = factory(require("jquery"), require("angular"), require("jquery-ui/datepicker")); 6 else if(typeof define === 'function' && define.amd) 7 define(["jquery", "angular", "jquery-ui/datepicker"], factory); 8 else if(typeof exports === 'object') 9 exports["angularUiDate"] = factory(require("jquery"), require("angular"), require("jquery-ui/datepicker")); 10 else 11 root["angularUiDate"] = factory(root["jQuery"], root["angular"], root["jquery-ui/datepicker"]); 12})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_3__) { 13return /******/ (function(modules) { // webpackBootstrap 14/******/ // The module cache 15/******/ var installedModules = {}; 16 17/******/ // The require function 18/******/ function __webpack_require__(moduleId) { 19 20/******/ // Check if module is in cache 21/******/ if(installedModules[moduleId]) 22/******/ return installedModules[moduleId].exports; 23 24/******/ // Create a new module (and put it into the cache) 25/******/ var module = installedModules[moduleId] = { 26/******/ exports: {}, 27/******/ id: moduleId, 28/******/ loaded: false 29/******/ }; 30 31/******/ // Execute the module function 32/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 33 34/******/ // Flag the module as loaded 35/******/ module.loaded = true; 36 37/******/ // Return the exports of the module 38/******/ return module.exports; 39/******/ } 40 41 42/******/ // expose the modules object (__webpack_modules__) 43/******/ __webpack_require__.m = modules; 44 45/******/ // expose the module cache 46/******/ __webpack_require__.c = installedModules; 47 48/******/ // __webpack_public_path__ 49/******/ __webpack_require__.p = "assets"; 50 51/******/ // Load entry module and return exports 52/******/ return __webpack_require__(0); 53/******/ }) 54/************************************************************************/ 55/******/ ([ 56/* 0 */ 57/***/ function(module, exports, __webpack_require__) { 58 59 'use strict'; 60 61 Object.defineProperty(exports, "__esModule", { 62 value: true 63 }); 64 65 var _jquery = __webpack_require__(1); 66 67 var _jquery2 = _interopRequireDefault(_jquery); 68 69 var _angular = __webpack_require__(2); 70 71 var _angular2 = _interopRequireDefault(_angular); 72 73 var _datepicker = __webpack_require__(3); 74 75 var _datepicker2 = _interopRequireDefault(_datepicker); 76 77 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 78 79 // sets up jQuery with the datepicker plugin 80 81 exports.default = _angular2.default.module('ui.date', []).constant('uiDateConfig', {}).constant('uiDateFormatConfig', '').factory('uiDateConverter', ['uiDateFormatConfig', function (uiDateFormatConfig) { 82 return { 83 stringToDate: stringToDate, 84 dateToString: dateToString 85 }; 86 87 function dateToString(uiDateFormat, value) { 88 var dateFormat = uiDateFormat || uiDateFormatConfig; 89 if (value) { 90 if (dateFormat) { 91 try { 92 return _jquery2.default.datepicker.formatDate(dateFormat, value); 93 } catch (formatException) { 94 return undefined; 95 } 96 } 97 98 if (value.toISOString) { 99 return value.toISOString(); 100 } 101 } 102 return null; 103 } 104 105 function stringToDate(dateFormat, valueToParse) { 106 dateFormat = dateFormat || uiDateFormatConfig; 107 108 if (_angular2.default.isDate(valueToParse) && !isNaN(valueToParse)) { 109 return valueToParse; 110 } 111 112 if (_angular2.default.isString(valueToParse)) { 113 if (dateFormat) { 114 return _jquery2.default.datepicker.parseDate(dateFormat, valueToParse); 115 } 116 117 var isoDate = new Date(valueToParse); 118 return isNaN(isoDate.getTime()) ? null : isoDate; 119 } 120 121 if (_angular2.default.isNumber(valueToParse)) { 122 // presumably timestamp to date object 123 return new Date(valueToParse); 124 } 125 126 return null; 127 } 128 }]).directive('uiDate', ['uiDateConfig', 'uiDateConverter', function uiDateDirective(uiDateConfig, uiDateConverter) { 129 130 return { 131 require: '?ngModel', 132 link: function link(scope, element, attrs, controller) { 133 134 var $element = (0, _jquery2.default)(element); 135 136 var getOptions = function getOptions() { 137 return _angular2.default.extend({}, uiDateConfig, scope.$eval(attrs.uiDate)); 138 }; 139 var initDateWidget = function initDateWidget() { 140 var showing = false; 141 var opts = getOptions(); 142 143 function setVal(forcedUpdate) { 144 var keys = ['Hours', 'Minutes', 'Seconds', 'Milliseconds']; 145 var isDate = _angular2.default.isDate(controller.$modelValue); 146 var preserve = {}; 147 148 if (!forcedUpdate && isDate && controller.$modelValue.toDateString() === $element.datepicker('getDate').toDateString()) { 149 return; 150 } 151 152 if (isDate) { 153 _angular2.default.forEach(keys, function (key) { 154 preserve[key] = controller.$modelValue['get' + key](); 155 }); 156 } 157 158 var newViewValue = $element.datepicker('getDate'); 159 160 if (isDate) { 161 _angular2.default.forEach(keys, function (key) { 162 newViewValue['set' + key](preserve[key]); 163 }); 164 } 165 166 controller.$setViewValue(newViewValue); 167 } 168 169 // If we have a controller (i.e. ngModelController) then wire it up 170 if (controller) { 171 // Set the view value in a $apply block when users selects 172 // (calling directive user's function too if provided) 173 var _onSelect = opts.onSelect || _angular2.default.noop; 174 opts.onSelect = function (value, picker) { 175 scope.$apply(function () { 176 showing = true; 177 setVal(); 178 $element.blur(); 179 _onSelect(value, picker, $element); 180 }); 181 }; 182 183 var _beforeShow = opts.beforeShow || _angular2.default.noop; 184 opts.beforeShow = function (input, picker) { 185 showing = true; 186 _beforeShow(input, picker, $element); 187 }; 188 189 var _onClose = opts.onClose || _angular2.default.noop; 190 opts.onClose = function (value, picker) { 191 showing = false; 192 _onClose(value, picker, $element); 193 }; 194 195 element.on('focus', function (focusEvent) { 196 if (attrs.readonly) { 197 focusEvent.stopImmediatePropagation(); 198 } 199 }); 200 201 $element.off('blur.datepicker').on('blur.datepicker', function () { 202 if (!showing) { 203 scope.$apply(function () { 204 $element.datepicker('setDate', $element.datepicker('getDate')); 205 setVal(); 206 }); 207 } 208 }); 209 210 controller.$validators.uiDateValidator = function uiDateValidator(modelValue, viewValue) { 211 return viewValue === null || viewValue === '' || _angular2.default.isDate(uiDateConverter.stringToDate(attrs.uiDateFormat, viewValue)); 212 }; 213 214 controller.$parsers.push(function uiDateParser(valueToParse) { 215 return uiDateConverter.stringToDate(attrs.uiDateFormat, valueToParse); 216 }); 217 218 // Update the date picker when the model changes 219 controller.$render = function () { 220 // Force a render to override whatever is in the input text box 221 if (_angular2.default.isDate(controller.$modelValue) === false && _angular2.default.isString(controller.$modelValue)) { 222 controller.$modelValue = uiDateConverter.stringToDate(attrs.uiDateFormat, controller.$modelValue); 223 } 224 $element.datepicker('setDate', controller.$modelValue); 225 }; 226 } 227 // Check if the $element already has a datepicker. 228 // 229 230 if ($element.data('datepicker')) { 231 // Updates the datepicker options 232 $element.datepicker('option', opts); 233 $element.datepicker('refresh'); 234 } else { 235 // Creates the new datepicker widget 236 $element.datepicker(opts); 237 238 // Cleanup on destroy, prevent memory leaking 239 $element.on('$destroy', function () { 240 $element.datepicker('hide'); 241 $element.datepicker('destroy'); 242 }); 243 } 244 245 if (controller) { 246 controller.$render(); 247 // Update the model with the value from the datepicker after parsed 248 setVal(true); 249 } 250 }; 251 252 // Watch for changes to the directives options 253 scope.$watch(getOptions, initDateWidget, true); 254 } 255 }; 256 }]).directive('uiDateFormat', ['uiDateConverter', function (uiDateConverter) { 257 return { 258 require: 'ngModel', 259 link: function link(scope, element, attrs, modelCtrl) { 260 var dateFormat = attrs.uiDateFormat; 261 262 // Use the datepicker with the attribute value as the dateFormat str
262ing to convert to and from a string 263 modelCtrl.$formatters.unshift(function (value) { 264 return uiDateConverter.stringToDate(dateFormat, value); 265 }); 266 267 modelCtrl.$parsers.push(function (value) { 268 return uiDateConverter.dateToString(dateFormat, value); 269 }); 270 } 271 }; 272 }]); 273 274/***/ }, 275/* 1 */ 276/***/ function(module, exports) { 277 278 module.exports = __WEBPACK_EXTERNAL_MODULE_1__; 279 280/***/ }, 281/* 2 */ 282/***/ function(module, exports) { 283 284 module.exports = __WEBPACK_EXTERNAL_MODULE_2__; 285 286/***/ }, 287/* 3 */ 288/***/ function(module, exports) { 289 290 module.exports = __WEBPACK_EXTERNAL_MODULE_3__; 291 292/***/ } 293/******/ ]) 294}); 295; 296//# sourceMappingURL=date.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.