time-picker.js 78 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500
  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, {
  41. /******/ configurable: false,
  42. /******/ enumerable: true,
  43. /******/ get: getter
  44. /******/ });
  45. /******/ }
  46. /******/ };
  47. /******/
  48. /******/ // getDefaultExport function for compatibility with non-harmony modules
  49. /******/ __webpack_require__.n = function(module) {
  50. /******/ var getter = module && module.__esModule ?
  51. /******/ function getDefault() { return module['default']; } :
  52. /******/ function getModuleExports() { return module; };
  53. /******/ __webpack_require__.d(getter, 'a', getter);
  54. /******/ return getter;
  55. /******/ };
  56. /******/
  57. /******/ // Object.prototype.hasOwnProperty.call
  58. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  59. /******/
  60. /******/ // __webpack_public_path__
  61. /******/ __webpack_require__.p = "/dist/";
  62. /******/
  63. /******/ // Load entry module and return exports
  64. /******/ return __webpack_require__(__webpack_require__.s = 226);
  65. /******/ })
  66. /************************************************************************/
  67. /******/ ({
  68. /***/ 0:
  69. /***/ (function(module, exports) {
  70. /* globals __VUE_SSR_CONTEXT__ */
  71. // IMPORTANT: Do NOT use ES2015 features in this file.
  72. // This module is a runtime utility for cleaner component module output and will
  73. // be included in the final webpack user bundle.
  74. module.exports = function normalizeComponent (
  75. rawScriptExports,
  76. compiledTemplate,
  77. functionalTemplate,
  78. injectStyles,
  79. scopeId,
  80. moduleIdentifier /* server only */
  81. ) {
  82. var esModule
  83. var scriptExports = rawScriptExports = rawScriptExports || {}
  84. // ES6 modules interop
  85. var type = typeof rawScriptExports.default
  86. if (type === 'object' || type === 'function') {
  87. esModule = rawScriptExports
  88. scriptExports = rawScriptExports.default
  89. }
  90. // Vue.extend constructor export interop
  91. var options = typeof scriptExports === 'function'
  92. ? scriptExports.options
  93. : scriptExports
  94. // render functions
  95. if (compiledTemplate) {
  96. options.render = compiledTemplate.render
  97. options.staticRenderFns = compiledTemplate.staticRenderFns
  98. options._compiled = true
  99. }
  100. // functional template
  101. if (functionalTemplate) {
  102. options.functional = true
  103. }
  104. // scopedId
  105. if (scopeId) {
  106. options._scopeId = scopeId
  107. }
  108. var hook
  109. if (moduleIdentifier) { // server build
  110. hook = function (context) {
  111. // 2.3 injection
  112. context =
  113. context || // cached call
  114. (this.$vnode && this.$vnode.ssrContext) || // stateful
  115. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  116. // 2.2 with runInNewContext: true
  117. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  118. context = __VUE_SSR_CONTEXT__
  119. }
  120. // inject component styles
  121. if (injectStyles) {
  122. injectStyles.call(this, context)
  123. }
  124. // register component module identifier for async chunk inferrence
  125. if (context && context._registeredComponents) {
  126. context._registeredComponents.add(moduleIdentifier)
  127. }
  128. }
  129. // used by ssr in case component is cached and beforeCreate
  130. // never gets called
  131. options._ssrRegister = hook
  132. } else if (injectStyles) {
  133. hook = injectStyles
  134. }
  135. if (hook) {
  136. var functional = options.functional
  137. var existing = functional
  138. ? options.render
  139. : options.beforeCreate
  140. if (!functional) {
  141. // inject component registration as beforeCreate hook
  142. options.beforeCreate = existing
  143. ? [].concat(existing, hook)
  144. : [hook]
  145. } else {
  146. // for template-only hot-reload because in that case the render fn doesn't
  147. // go through the normalizer
  148. options._injectStyles = hook
  149. // register for functioal component in vue file
  150. options.render = function renderWithStyleInjection (h, context) {
  151. hook.call(context)
  152. return existing(h, context)
  153. }
  154. }
  155. }
  156. return {
  157. esModule: esModule,
  158. exports: scriptExports,
  159. options: options
  160. }
  161. }
  162. /***/ }),
  163. /***/ 1:
  164. /***/ (function(module, exports) {
  165. module.exports = require("element-ui/lib/mixins/emitter");
  166. /***/ }),
  167. /***/ 10:
  168. /***/ (function(module, exports) {
  169. module.exports = require("element-ui/lib/utils/clickoutside");
  170. /***/ }),
  171. /***/ 11:
  172. /***/ (function(module, exports, __webpack_require__) {
  173. "use strict";
  174. exports.__esModule = true;
  175. exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithDefaultTime = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = undefined;
  176. var _date = __webpack_require__(29);
  177. var _date2 = _interopRequireDefault(_date);
  178. var _locale = __webpack_require__(12);
  179. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  180. var weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
  181. var months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
  182. var getI18nSettings = function getI18nSettings() {
  183. return {
  184. dayNamesShort: weeks.map(function (week) {
  185. return (0, _locale.t)('el.datepicker.weeks.' + week);
  186. }),
  187. dayNames: weeks.map(function (week) {
  188. return (0, _locale.t)('el.datepicker.weeks.' + week);
  189. }),
  190. monthNamesShort: months.map(function (month) {
  191. return (0, _locale.t)('el.datepicker.months.' + month);
  192. }),
  193. monthNames: months.map(function (month, index) {
  194. return (0, _locale.t)('el.datepicker.month' + (index + 1));
  195. }),
  196. amPm: ['am', 'pm']
  197. };
  198. };
  199. var newArray = function newArray(start, end) {
  200. var result = [];
  201. for (var i = start; i <= end; i++) {
  202. result.push(i);
  203. }
  204. return result;
  205. };
  206. var toDate = exports.toDate = function toDate(date) {
  207. return isDate(date) ? new Date(date) : null;
  208. };
  209. var isDate = exports.isDate = function isDate(date) {
  210. if (date === null || date === undefined) return false;
  211. if (isNaN(new Date(date).getTime())) return false;
  212. if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
  213. return true;
  214. };
  215. var isDateObject = exports.isDateObject = function isDateObject(val) {
  216. return val instanceof Date;
  217. };
  218. var formatDate = exports.formatDate = function formatDate(date, format) {
  219. date = toDate(date);
  220. if (!date) return '';
  221. return _date2.default.format(date, format || 'yyyy-MM-dd', getI18nSettings());
  222. };
  223. var parseDate = exports.parseDate = function parseDate(string, format) {
  224. return _date2.default.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
  225. };
  226. var getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {
  227. if (month === 3 || month === 5 || month === 8 || month === 10) {
  228. return 30;
  229. }
  230. if (month === 1) {
  231. if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
  232. return 29;
  233. } else {
  234. return 28;
  235. }
  236. }
  237. return 31;
  238. };
  239. var getDayCountOfYear = exports.getDayCountOfYear = function getDayCountOfYear(year) {
  240. var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
  241. return isLeapYear ? 366 : 365;
  242. };
  243. var getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {
  244. var temp = new Date(date.getTime());
  245. temp.setDate(1);
  246. return temp.getDay();
  247. };
  248. // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
  249. // {prev, next} Date should work for Daylight Saving Time
  250. // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
  251. var prevDate = exports.prevDate = function prevDate(date) {
  252. var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  253. return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
  254. };
  255. var nextDate = exports.nextDate = function nextDate(date) {
  256. var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  257. return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
  258. };
  259. var getStartDateOfMonth = exports.getStartDateOfMonth = function getStartDateOfMonth(year, month) {
  260. var result = new Date(year, month, 1);
  261. var day = result.getDay();
  262. if (day === 0) {
  263. return prevDate(result, 7);
  264. } else {
  265. return prevDate(result, day);
  266. }
  267. };
  268. var getWeekNumber = exports.getWeekNumber = function getWeekNumber(src) {
  269. if (!isDate(src)) return null;
  270. var date = new Date(src.getTime());
  271. date.setHours(0, 0, 0, 0);
  272. // Thursday in current week decides the year.
  273. date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
  274. // January 4 is always in week 1.
  275. var week1 = new Date(date.getFullYear(), 0, 4);
  276. // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
  277. // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
  278. return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
  279. };
  280. var getRangeHours = exports.getRangeHours = function getRangeHours(ranges) {
  281. var hours = [];
  282. var disabledHours = [];
  283. (ranges || []).forEach(function (range) {
  284. var value = range.map(function (date) {
  285. return date.getHours();
  286. });
  287. disabledHours = disabledHours.concat(newArray(value[0], value[1]));
  288. });
  289. if (disabledHours.length) {
  290. for (var i = 0; i < 24; i++) {
  291. hours[i] = disabledHours.indexOf(i) === -1;
  292. }
  293. } else {
  294. for (var _i = 0; _i < 24; _i++) {
  295. hours[_i] = false;
  296. }
  297. }
  298. return hours;
  299. };
  300. var range = exports.range = function range(n) {
  301. // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
  302. return Array.apply(null, { length: n }).map(function (_, n) {
  303. return n;
  304. });
  305. };
  306. var modifyDate = exports.modifyDate = function modifyDate(date, y, m, d) {
  307. return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
  308. };
  309. var modifyTime = exports.modifyTime = function modifyTime(date, h, m, s) {
  310. return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
  311. };
  312. var modifyWithDefaultTime = exports.modifyWithDefaultTime = function modifyWithDefaultTime(date, time) {
  313. if (date == null || !time) {
  314. return date;
  315. }
  316. time = parseDate(time, 'HH:mm:ss');
  317. return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
  318. };
  319. var clearTime = exports.clearTime = function clearTime(date) {
  320. return new Date(date.getFullYear(), date.getMonth(), date.getDate());
  321. };
  322. var clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {
  323. return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
  324. };
  325. var limitTimeRange = exports.limitTimeRange = function limitTimeRange(date, ranges) {
  326. var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';
  327. // TODO: refactory a more elegant solution
  328. if (ranges.length === 0) return date;
  329. var normalizeDate = function normalizeDate(date) {
  330. return _date2.default.parse(_date2.default.format(date, format), format);
  331. };
  332. var ndate = normalizeDate(date);
  333. var nranges = ranges.map(function (range) {
  334. return range.map(normalizeDate);
  335. });
  336. if (nranges.some(function (nrange) {
  337. return ndate >= nrange[0] && ndate <= nrange[1];
  338. })) return date;
  339. var minDate = nranges[0][0];
  340. var maxDate = nranges[0][0];
  341. nranges.forEach(function (nrange) {
  342. minDate = new Date(Math.min(nrange[0], minDate));
  343. maxDate = new Date(Math.max(nrange[1], minDate));
  344. });
  345. var ret = ndate < minDate ? minDate : maxDate;
  346. // preserve Year/Month/Date
  347. return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
  348. };
  349. var timeWithinRange = exports.timeWithinRange = function timeWithinRange(date, selectableRange, format) {
  350. var limitedDate = limitTimeRange(date, selectableRange, format);
  351. return limitedDate.getTime() === date.getTime();
  352. };
  353. var changeYearMonthAndClampDate = exports.changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {
  354. // clamp date to the number of days in `year`, `month`
  355. // eg: (2010-1-31, 2010, 2) => 2010-2-28
  356. var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
  357. return modifyDate(date, year, month, monthDate);
  358. };
  359. var prevMonth = exports.prevMonth = function prevMonth(date) {
  360. var year = date.getFullYear();
  361. var month = date.getMonth();
  362. return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);
  363. };
  364. var nextMonth = exports.nextMonth = function nextMonth(date) {
  365. var year = date.getFullYear();
  366. var month = date.getMonth();
  367. return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);
  368. };
  369. var prevYear = exports.prevYear = function prevYear(date) {
  370. var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  371. var year = date.getFullYear();
  372. var month = date.getMonth();
  373. return changeYearMonthAndClampDate(date, year - amount, month);
  374. };
  375. var nextYear = exports.nextYear = function nextYear(date) {
  376. var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
  377. var year = date.getFullYear();
  378. var month = date.getMonth();
  379. return changeYearMonthAndClampDate(date, year + amount, month);
  380. };
  381. var extractDateFormat = exports.extractDateFormat = function extractDateFormat(format) {
  382. return format.replace(/\W?m{1,2}|\W?ZZ/g, '').replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '').trim();
  383. };
  384. var extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(format) {
  385. return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
  386. };
  387. /***/ }),
  388. /***/ 12:
  389. /***/ (function(module, exports) {
  390. module.exports = require("element-ui/lib/locale");
  391. /***/ }),
  392. /***/ 17:
  393. /***/ (function(module, exports) {
  394. module.exports = require("element-ui/lib/scrollbar");
  395. /***/ }),
  396. /***/ 2:
  397. /***/ (function(module, exports) {
  398. module.exports = require("element-ui/lib/utils/dom");
  399. /***/ }),
  400. /***/ 226:
  401. /***/ (function(module, exports, __webpack_require__) {
  402. module.exports = __webpack_require__(227);
  403. /***/ }),
  404. /***/ 227:
  405. /***/ (function(module, exports, __webpack_require__) {
  406. "use strict";
  407. exports.__esModule = true;
  408. var _timePicker = __webpack_require__(228);
  409. var _timePicker2 = _interopRequireDefault(_timePicker);
  410. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  411. /* istanbul ignore next */
  412. _timePicker2.default.install = function (Vue) {
  413. Vue.component(_timePicker2.default.name, _timePicker2.default);
  414. };
  415. exports.default = _timePicker2.default;
  416. /***/ }),
  417. /***/ 228:
  418. /***/ (function(module, exports, __webpack_require__) {
  419. "use strict";
  420. exports.__esModule = true;
  421. var _picker = __webpack_require__(27);
  422. var _picker2 = _interopRequireDefault(_picker);
  423. var _time = __webpack_require__(31);
  424. var _time2 = _interopRequireDefault(_time);
  425. var _timeRange = __webpack_require__(229);
  426. var _timeRange2 = _interopRequireDefault(_timeRange);
  427. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  428. exports.default = {
  429. mixins: [_picker2.default],
  430. name: 'ElTimePicker',
  431. props: {
  432. isRange: Boolean,
  433. arrowControl: Boolean
  434. },
  435. data: function data() {
  436. return {
  437. type: ''
  438. };
  439. },
  440. watch: {
  441. isRange: function isRange(_isRange) {
  442. if (this.picker) {
  443. this.unmountPicker();
  444. this.type = _isRange ? 'timerange' : 'time';
  445. this.panel = _isRange ? _timeRange2.default : _time2.default;
  446. this.mountPicker();
  447. } else {
  448. this.type = _isRange ? 'timerange' : 'time';
  449. this.panel = _isRange ? _timeRange2.default : _time2.default;
  450. }
  451. }
  452. },
  453. created: function created() {
  454. this.type = this.isRange ? 'timerange' : 'time';
  455. this.panel = this.isRange ? _timeRange2.default : _time2.default;
  456. }
  457. };
  458. /***/ }),
  459. /***/ 229:
  460. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  461. "use strict";
  462. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  463. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue__ = __webpack_require__(230);
  464. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue__);
  465. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_38ac964a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_range_vue__ = __webpack_require__(231);
  466. var normalizeComponent = __webpack_require__(0)
  467. /* script */
  468. /* template */
  469. /* template functional */
  470. var __vue_template_functional__ = false
  471. /* styles */
  472. var __vue_styles__ = null
  473. /* scopeId */
  474. var __vue_scopeId__ = null
  475. /* moduleIdentifier (server only) */
  476. var __vue_module_identifier__ = null
  477. var Component = normalizeComponent(
  478. __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_range_vue___default.a,
  479. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_38ac964a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_range_vue__["a" /* default */],
  480. __vue_template_functional__,
  481. __vue_styles__,
  482. __vue_scopeId__,
  483. __vue_module_identifier__
  484. )
  485. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  486. /***/ }),
  487. /***/ 230:
  488. /***/ (function(module, exports, __webpack_require__) {
  489. "use strict";
  490. exports.__esModule = true;
  491. var _util = __webpack_require__(11);
  492. var _locale = __webpack_require__(5);
  493. var _locale2 = _interopRequireDefault(_locale);
  494. var _timeSpinner = __webpack_require__(32);
  495. var _timeSpinner2 = _interopRequireDefault(_timeSpinner);
  496. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  497. var MIN_TIME = (0, _util.parseDate)('00:00:00', 'HH:mm:ss'); //
  498. //
  499. //
  500. //
  501. //
  502. //
  503. //
  504. //
  505. //
  506. //
  507. //
  508. //
  509. //
  510. //
  511. //
  512. //
  513. //
  514. //
  515. //
  516. //
  517. //
  518. //
  519. //
  520. //
  521. //
  522. //
  523. //
  524. //
  525. //
  526. //
  527. //
  528. //
  529. //
  530. //
  531. //
  532. //
  533. //
  534. //
  535. //
  536. //
  537. //
  538. //
  539. //
  540. //
  541. //
  542. //
  543. //
  544. //
  545. //
  546. //
  547. //
  548. //
  549. //
  550. //
  551. //
  552. //
  553. //
  554. var MAX_TIME = (0, _util.parseDate)('23:59:59', 'HH:mm:ss');
  555. var minTimeOfDay = function minTimeOfDay(date) {
  556. return (0, _util.modifyDate)(MIN_TIME, date.getFullYear(), date.getMonth(), date.getDate());
  557. };
  558. var maxTimeOfDay = function maxTimeOfDay(date) {
  559. return (0, _util.modifyDate)(MAX_TIME, date.getFullYear(), date.getMonth(), date.getDate());
  560. };
  561. // increase time by amount of milliseconds, but within the range of day
  562. var advanceTime = function advanceTime(date, amount) {
  563. return new Date(Math.min(date.getTime() + amount, maxTimeOfDay(date).getTime()));
  564. };
  565. exports.default = {
  566. mixins: [_locale2.default],
  567. components: { TimeSpinner: _timeSpinner2.default },
  568. computed: {
  569. showSeconds: function showSeconds() {
  570. return (this.format || '').indexOf('ss') !== -1;
  571. },
  572. offset: function offset() {
  573. return this.showSeconds ? 11 : 8;
  574. },
  575. spinner: function spinner() {
  576. return this.selectionRange[0] < this.offset ? this.$refs.minSpinner : this.$refs.maxSpinner;
  577. },
  578. btnDisabled: function btnDisabled() {
  579. return this.minDate.getTime() > this.maxDate.getTime();
  580. },
  581. amPmMode: function amPmMode() {
  582. if ((this.format || '').indexOf('A') !== -1) return 'A';
  583. if ((this.format || '').indexOf('a') !== -1) return 'a';
  584. return '';
  585. }
  586. },
  587. data: function data() {
  588. return {
  589. popperClass: '',
  590. minDate: new Date(),
  591. maxDate: new Date(),
  592. value: [],
  593. oldValue: [new Date(), new Date()],
  594. defaultValue: null,
  595. format: 'HH:mm:ss',
  596. visible: false,
  597. selectionRange: [0, 2],
  598. arrowControl: false
  599. };
  600. },
  601. watch: {
  602. value: function value(_value) {
  603. if (Array.isArray(_value)) {
  604. this.minDate = new Date(_value[0]);
  605. this.maxDate = new Date(_value[1]);
  606. } else {
  607. if (Array.isArray(this.defaultValue)) {
  608. this.minDate = new Date(this.defaultValue[0]);
  609. this.maxDate = new Date(this.defaultValue[1]);
  610. } else if (this.defaultValue) {
  611. this.minDate = new Date(this.defaultValue);
  612. this.maxDate = advanceTime(new Date(this.defaultValue), 60 * 60 * 1000);
  613. } else {
  614. this.minDate = new Date();
  615. this.maxDate = advanceTime(new Date(), 60 * 60 * 1000);
  616. }
  617. }
  618. },
  619. visible: function visible(val) {
  620. var _this = this;
  621. if (val) {
  622. this.oldValue = this.value;
  623. this.$nextTick(function () {
  624. return _this.$refs.minSpinner.emitSelectRange('hours');
  625. });
  626. }
  627. }
  628. },
  629. methods: {
  630. handleClear: function handleClear() {
  631. this.$emit('pick', null);
  632. },
  633. handleCancel: function handleCancel() {
  634. this.$emit('pick', this.oldValue);
  635. },
  636. handleMinChange: function handleMinChange(date) {
  637. this.minDate = (0, _util.clearMilliseconds)(date);
  638. this.handleChange();
  639. },
  640. handleMaxChange: function handleMaxChange(date) {
  641. this.maxDate = (0, _util.clearMilliseconds)(date);
  642. this.handleChange();
  643. },
  644. handleChange: function handleChange() {
  645. if (this.isValidValue([this.minDate, this.maxDate])) {
  646. this.$refs.minSpinner.selectableRange = [[minTimeOfDay(this.minDate), this.maxDate]];
  647. this.$refs.maxSpinner.selectableRange = [[this.minDate, maxTimeOfDay(this.maxDate)]];
  648. this.$emit('pick', [this.minDate, this.maxDate], true);
  649. }
  650. },
  651. setMinSelectionRange: function setMinSelectionRange(start, end) {
  652. this.$emit('select-range', start, end, 'min');
  653. this.selectionRange = [start, end];
  654. },
  655. setMaxSelectionRange: function setMaxSelectionRange(start, end) {
  656. this.$emit('select-range', start, end, 'max');
  657. this.selectionRange = [start + this.offset, end + this.offset];
  658. },
  659. handleConfirm: function handleConfirm() {
  660. var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  661. var minSelectableRange = this.$refs.minSpinner.selectableRange;
  662. var maxSelectableRange = this.$refs.maxSpinner.selectableRange;
  663. this.minDate = (0, _util.limitTimeRange)(this.minDate, minSelectableRange, this.format);
  664. this.maxDate = (0, _util.limitTimeRange)(this.maxDate, maxSelectableRange, this.format);
  665. this.$emit('pick', [this.minDate, this.maxDate], visible);
  666. },
  667. adjustSpinners: function adjustSpinners() {
  668. this.$refs.minSpinner.adjustSpinners();
  669. this.$refs.maxSpinner.adjustSpinners();
  670. },
  671. changeSelectionRange: function changeSelectionRange(step) {
  672. var list = this.showSeconds ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11];
  673. var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);
  674. var index = list.indexOf(this.selectionRange[0]);
  675. var next = (index + step + list.length) % list.length;
  676. var half = list.length / 2;
  677. if (next < half) {
  678. this.$refs.minSpinner.emitSelectRange(mapping[next]);
  679. } else {
  680. this.$refs.maxSpinner.emitSelectRange(mapping[next - half]);
  681. }
  682. },
  683. isValidValue: function isValidValue(date) {
  684. return Array.isArray(date) && (0, _util.timeWithinRange)(this.minDate, this.$refs.minSpinner.selectableRange) && (0, _util.timeWithinRange)(this.maxDate, this.$refs.maxSpinner.selectableRange);
  685. },
  686. handleKeydown: function handleKeydown(event) {
  687. var keyCode = event.keyCode;
  688. var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };
  689. // Left or Right
  690. if (keyCode === 37 || keyCode === 39) {
  691. var step = mapping[keyCode];
  692. this.changeSelectionRange(step);
  693. event.preventDefault();
  694. return;
  695. }
  696. // Up or Down
  697. if (keyCode === 38 || keyCode === 40) {
  698. var _step = mapping[keyCode];
  699. this.spinner.scrollDown(_step);
  700. event.preventDefault();
  701. return;
  702. }
  703. }
  704. }
  705. };
  706. /***/ }),
  707. /***/ 231:
  708. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  709. "use strict";
  710. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"el-zoom-in-top"},on:{"after-leave":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible),expression:"visible"}],staticClass:"el-time-range-picker el-picker-panel el-popper",class:_vm.popperClass},[_c('div',{staticClass:"el-time-range-picker__content"},[_c('div',{staticClass:"el-time-range-picker__cell"},[_c('div',{staticClass:"el-time-range-picker__header"},[_vm._v(_vm._s(_vm.t('el.datepicker.startTime')))]),_c('div',{staticClass:"el-time-range-picker__body el-time-panel__content",class:{ 'has-seconds': _vm.showSeconds, 'is-arrow': _vm.arrowControl }},[_c('time-spinner',{ref:"minSpinner",attrs:{"show-seconds":_vm.showSeconds,"am-pm-mode":_vm.amPmMode,"arrow-control":_vm.arrowControl,"date":_vm.minDate},on:{"change":_vm.handleMinChange,"select-range":_vm.setMinSelectionRange}})],1)]),_c('div',{staticClass:"el-time-range-picker__cell"},[_c('div',{staticClass:"el-time-range-picker__header"},[_vm._v(_vm._s(_vm.t('el.datepicker.endTime')))]),_c('div',{staticClass:"el-time-range-picker__body el-time-panel__content",class:{ 'has-seconds': _vm.showSeconds, 'is-arrow': _vm.arrowControl }},[_c('time-spinner',{ref:"maxSpinner",attrs:{"show-seconds":_vm.showSeconds,"am-pm-mode":_vm.amPmMode,"arrow-control":_vm.arrowControl,"date":_vm.maxDate},on:{"change":_vm.handleMaxChange,"select-range":_vm.setMaxSelectionRange}})],1)])]),_c('div',{staticClass:"el-time-panel__footer"},[_c('button',{staticClass:"el-time-panel__btn cancel",attrs:{"type":"button"},on:{"click":function($event){_vm.handleCancel()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.cancel')))]),_c('button',{staticClass:"el-time-panel__btn confirm",attrs:{"type":"button","disabled":_vm.btnDisabled},on:{"click":function($event){_vm.handleConfirm()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.confirm')))])])])])}
  711. var staticRenderFns = []
  712. var esExports = { render: render, staticRenderFns: staticRenderFns }
  713. /* harmony default export */ __webpack_exports__["a"] = (esExports);
  714. /***/ }),
  715. /***/ 24:
  716. /***/ (function(module, exports, __webpack_require__) {
  717. "use strict";
  718. exports.__esModule = true;
  719. var _dom = __webpack_require__(2);
  720. exports.default = {
  721. bind: function bind(el, binding, vnode) {
  722. var interval = null;
  723. var startTime = void 0;
  724. var handler = function handler() {
  725. return vnode.context[binding.expression].apply();
  726. };
  727. var clear = function clear() {
  728. if (new Date() - startTime < 100) {
  729. handler();
  730. }
  731. clearInterval(interval);
  732. interval = null;
  733. };
  734. (0, _dom.on)(el, 'mousedown', function (e) {
  735. if (e.button !== 0) return;
  736. startTime = new Date();
  737. (0, _dom.once)(document, 'mouseup', clear);
  738. clearInterval(interval);
  739. interval = setInterval(handler, 100);
  740. });
  741. }
  742. };
  743. /***/ }),
  744. /***/ 27:
  745. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  746. "use strict";
  747. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  748. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue__ = __webpack_require__(28);
  749. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue__);
  750. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b32bdda0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_vue__ = __webpack_require__(30);
  751. var normalizeComponent = __webpack_require__(0)
  752. /* script */
  753. /* template */
  754. /* template functional */
  755. var __vue_template_functional__ = false
  756. /* styles */
  757. var __vue_styles__ = null
  758. /* scopeId */
  759. var __vue_scopeId__ = null
  760. /* moduleIdentifier (server only) */
  761. var __vue_module_identifier__ = null
  762. var Component = normalizeComponent(
  763. __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_picker_vue___default.a,
  764. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b32bdda0_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_picker_vue__["a" /* default */],
  765. __vue_template_functional__,
  766. __vue_styles__,
  767. __vue_scopeId__,
  768. __vue_module_identifier__
  769. )
  770. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  771. /***/ }),
  772. /***/ 28:
  773. /***/ (function(module, exports, __webpack_require__) {
  774. "use strict";
  775. exports.__esModule = true;
  776. var _vue = __webpack_require__(4);
  777. var _vue2 = _interopRequireDefault(_vue);
  778. var _clickoutside = __webpack_require__(10);
  779. var _clickoutside2 = _interopRequireDefault(_clickoutside);
  780. var _util = __webpack_require__(11);
  781. var _vuePopper = __webpack_require__(7);
  782. var _vuePopper2 = _interopRequireDefault(_vuePopper);
  783. var _emitter = __webpack_require__(1);
  784. var _emitter2 = _interopRequireDefault(_emitter);
  785. var _input = __webpack_require__(6);
  786. var _input2 = _interopRequireDefault(_input);
  787. var _merge = __webpack_require__(9);
  788. var _merge2 = _interopRequireDefault(_merge);
  789. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  790. var NewPopper = {
  791. props: {
  792. appendToBody: _vuePopper2.default.props.appendToBody,
  793. offset: _vuePopper2.default.props.offset,
  794. boundariesPadding: _vuePopper2.default.props.boundariesPadding,
  795. arrowOffset: _vuePopper2.default.props.arrowOffset
  796. },
  797. methods: _vuePopper2.default.methods,
  798. data: function data() {
  799. return (0, _merge2.default)({ visibleArrow: true }, _vuePopper2.default.data);
  800. },
  801. beforeDestroy: _vuePopper2.default.beforeDestroy
  802. }; //
  803. //
  804. //
  805. //
  806. //
  807. //
  808. //
  809. //
  810. //
  811. //
  812. //
  813. //
  814. //
  815. //
  816. //
  817. //
  818. //
  819. //
  820. //
  821. //
  822. //
  823. //
  824. //
  825. //
  826. //
  827. //
  828. //
  829. //
  830. //
  831. //
  832. //
  833. //
  834. //
  835. //
  836. //
  837. //
  838. //
  839. //
  840. //
  841. //
  842. //
  843. //
  844. //
  845. //
  846. //
  847. //
  848. //
  849. //
  850. //
  851. //
  852. //
  853. //
  854. //
  855. //
  856. //
  857. //
  858. //
  859. //
  860. //
  861. //
  862. //
  863. //
  864. //
  865. //
  866. //
  867. //
  868. //
  869. //
  870. //
  871. //
  872. //
  873. //
  874. //
  875. //
  876. //
  877. //
  878. //
  879. //
  880. //
  881. //
  882. //
  883. var DEFAULT_FORMATS = {
  884. date: 'yyyy-MM-dd',
  885. month: 'yyyy-MM',
  886. datetime: 'yyyy-MM-dd HH:mm:ss',
  887. time: 'HH:mm:ss',
  888. week: 'yyyywWW',
  889. timerange: 'HH:mm:ss',
  890. daterange: 'yyyy-MM-dd',
  891. datetimerange: 'yyyy-MM-dd HH:mm:ss',
  892. year: 'yyyy'
  893. };
  894. var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'timerange', 'datetimerange', 'dates'];
  895. var DATE_FORMATTER = function DATE_FORMATTER(value, format) {
  896. if (format === 'timestamp') return value.getTime();
  897. return (0, _util.formatDate)(value, format);
  898. };
  899. var DATE_PARSER = function DATE_PARSER(text, format) {
  900. if (format === 'timestamp') return new Date(Number(text));
  901. return (0, _util.parseDate)(text, format);
  902. };
  903. var RANGE_FORMATTER = function RANGE_FORMATTER(value, format) {
  904. if (Array.isArray(value) && value.length === 2) {
  905. var start = value[0];
  906. var end = value[1];
  907. if (start && end) {
  908. return [DATE_FORMATTER(start, format), DATE_FORMATTER(end, format)];
  909. }
  910. }
  911. return '';
  912. };
  913. var RANGE_PARSER = function RANGE_PARSER(array, format, separator) {
  914. if (!Array.isArray(array)) {
  915. array = array.split(separator);
  916. }
  917. if (array.length === 2) {
  918. var range1 = array[0];
  919. var range2 = array[1];
  920. return [DATE_PARSER(range1, format), DATE_PARSER(range2, format)];
  921. }
  922. return [];
  923. };
  924. var TYPE_VALUE_RESOLVER_MAP = {
  925. default: {
  926. formatter: function formatter(value) {
  927. if (!value) return '';
  928. return '' + value;
  929. },
  930. parser: function parser(text) {
  931. if (text === undefined || text === '') return null;
  932. return text;
  933. }
  934. },
  935. week: {
  936. formatter: function formatter(value, format) {
  937. var week = (0, _util.getWeekNumber)(value);
  938. var month = value.getMonth();
  939. var trueDate = new Date(value);
  940. if (week === 1 && month === 11) {
  941. trueDate.setHours(0, 0, 0, 0);
  942. trueDate.setDate(trueDate.getDate() + 3 - (trueDate.getDay() + 6) % 7);
  943. }
  944. var date = (0, _util.formatDate)(trueDate, format);
  945. date = /WW/.test(date) ? date.replace(/WW/, week < 10 ? '0' + week : week) : date.replace(/W/, week);
  946. return date;
  947. },
  948. parser: function parser(text) {
  949. var array = (text || '').split('w');
  950. if (array.length === 2) {
  951. var year = Number(array[0]);
  952. var month = Number(array[1]);
  953. if (!isNaN(year) && !isNaN(month) && month < 54) {
  954. return text;
  955. }
  956. }
  957. return null;
  958. }
  959. },
  960. date: {
  961. formatter: DATE_FORMATTER,
  962. parser: DATE_PARSER
  963. },
  964. datetime: {
  965. formatter: DATE_FORMATTER,
  966. parser: DATE_PARSER
  967. },
  968. daterange: {
  969. formatter: RANGE_FORMATTER,
  970. parser: RANGE_PARSER
  971. },
  972. datetimerange: {
  973. formatter: RANGE_FORMATTER,
  974. parser: RANGE_PARSER
  975. },
  976. timerange: {
  977. formatter: RANGE_FORMATTER,
  978. parser: RANGE_PARSER
  979. },
  980. time: {
  981. formatter: DATE_FORMATTER,
  982. parser: DATE_PARSER
  983. },
  984. month: {
  985. formatter: DATE_FORMATTER,
  986. parser: DATE_PARSER
  987. },
  988. year: {
  989. formatter: DATE_FORMATTER,
  990. parser: DATE_PARSER
  991. },
  992. number: {
  993. formatter: function formatter(value) {
  994. if (!value) return '';
  995. return '' + value;
  996. },
  997. parser: function parser(text) {
  998. var result = Number(text);
  999. if (!isNaN(text)) {
  1000. return result;
  1001. } else {
  1002. return null;
  1003. }
  1004. }
  1005. },
  1006. dates: {
  1007. formatter: function formatter(value, format) {
  1008. return value.map(function (date) {
  1009. return DATE_FORMATTER(date, format);
  1010. });
  1011. },
  1012. parser: function parser(value, format) {
  1013. return (typeof value === 'string' ? value.split(', ') : value).map(function (date) {
  1014. return date instanceof Date ? date : DATE_PARSER(date, format);
  1015. });
  1016. }
  1017. }
  1018. };
  1019. var PLACEMENT_MAP = {
  1020. left: 'bottom-start',
  1021. center: 'bottom',
  1022. right: 'bottom-end'
  1023. };
  1024. var parseAsFormatAndType = function parseAsFormatAndType(value, customFormat, type) {
  1025. var rangeSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';
  1026. if (!value) return null;
  1027. var parser = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).parser;
  1028. var format = customFormat || DEFAULT_FORMATS[type];
  1029. return parser(value, format, rangeSeparator);
  1030. };
  1031. var formatAsFormatAndType = function formatAsFormatAndType(value, customFormat, type) {
  1032. if (!value) return null;
  1033. var formatter = (TYPE_VALUE_RESOLVER_MAP[type] || TYPE_VALUE_RESOLVER_MAP['default']).formatter;
  1034. var format = customFormat || DEFAULT_FORMATS[type];
  1035. return formatter(value, format);
  1036. };
  1037. /*
  1038. * Considers:
  1039. * 1. Date object
  1040. * 2. date string
  1041. * 3. array of 1 or 2
  1042. */
  1043. var valueEquals = function valueEquals(a, b) {
  1044. // considers Date object and string
  1045. var dateEquals = function dateEquals(a, b) {
  1046. var aIsDate = a instanceof Date;
  1047. var bIsDate = b instanceof Date;
  1048. if (aIsDate && bIsDate) {
  1049. return a.getTime() === b.getTime();
  1050. }
  1051. if (!aIsDate && !bIsDate) {
  1052. return a === b;
  1053. }
  1054. return false;
  1055. };
  1056. var aIsArray = a instanceof Array;
  1057. var bIsArray = b instanceof Array;
  1058. if (aIsArray && bIsArray) {
  1059. if (a.length !== b.length) {
  1060. return false;
  1061. }
  1062. return a.every(function (item, index) {
  1063. return dateEquals(item, b[index]);
  1064. });
  1065. }
  1066. if (!aIsArray && !bIsArray) {
  1067. return dateEquals(a, b);
  1068. }
  1069. return false;
  1070. };
  1071. var isString = function isString(val) {
  1072. return typeof val === 'string' || val instanceof String;
  1073. };
  1074. var validator = function validator(val) {
  1075. // either: String, Array of String, null / undefined
  1076. return val === null || val === undefined || isString(val) || Array.isArray(val) && val.length === 2 && val.every(isString);
  1077. };
  1078. exports.default = {
  1079. mixins: [_emitter2.default, NewPopper],
  1080. inject: {
  1081. elForm: {
  1082. default: ''
  1083. },
  1084. elFormItem: {
  1085. default: ''
  1086. }
  1087. },
  1088. props: {
  1089. size: String,
  1090. format: String,
  1091. valueFormat: String,
  1092. readonly: Boolean,
  1093. placeholder: String,
  1094. startPlaceholder: String,
  1095. endPlaceholder: String,
  1096. prefixIcon: String,
  1097. clearIcon: {
  1098. type: String,
  1099. default: 'el-icon-circle-close'
  1100. },
  1101. name: {
  1102. default: '',
  1103. validator: validator
  1104. },
  1105. disabled: Boolean,
  1106. clearable: {
  1107. type: Boolean,
  1108. default: true
  1109. },
  1110. id: {
  1111. default: '',
  1112. validator: validator
  1113. },
  1114. popperClass: String,
  1115. editable: {
  1116. type: Boolean,
  1117. default: true
  1118. },
  1119. align: {
  1120. type: String,
  1121. default: 'left'
  1122. },
  1123. value: {},
  1124. defaultValue: {},
  1125. defaultTime: {},
  1126. rangeSeparator: {
  1127. default: '-'
  1128. },
  1129. pickerOptions: {},
  1130. unlinkPanels: Boolean
  1131. },
  1132. components: { ElInput: _input2.default },
  1133. directives: { Clickoutside: _clickoutside2.default },
  1134. data: function data() {
  1135. return {
  1136. pickerVisible: false,
  1137. showClose: false,
  1138. userInput: null,
  1139. valueOnOpen: null, // value when picker opens, used to determine whether to emit change
  1140. unwatchPickerOptions: null
  1141. };
  1142. },
  1143. watch: {
  1144. pickerVisible: function pickerVisible(val) {
  1145. if (this.readonly || this.pickerDisabled) return;
  1146. if (val) {
  1147. this.showPicker();
  1148. this.valueOnOpen = Array.isArray(this.value) ? [].concat(this.value) : this.value;
  1149. } else {
  1150. this.hidePicker();
  1151. this.emitChange(this.value);
  1152. this.userInput = null;
  1153. this.dispatch('ElFormItem', 'el.form.blur');
  1154. this.$emit('blur', this);
  1155. this.blur();
  1156. }
  1157. },
  1158. parsedValue: {
  1159. immediate: true,
  1160. handler: function handler(val) {
  1161. if (this.picker) {
  1162. this.picker.value = val;
  1163. this.picker.selectedDate = Array.isArray(val) ? val : [];
  1164. }
  1165. }
  1166. },
  1167. defaultValue: function defaultValue(val) {
  1168. // NOTE: should eventually move to jsx style picker + panel ?
  1169. if (this.picker) {
  1170. this.picker.defaultValue = val;
  1171. }
  1172. }
  1173. },
  1174. computed: {
  1175. ranged: function ranged() {
  1176. return this.type.indexOf('range') > -1;
  1177. },
  1178. reference: function reference() {
  1179. var reference = this.$refs.reference;
  1180. return reference.$el || reference;
  1181. },
  1182. refInput: function refInput() {
  1183. if (this.reference) {
  1184. return [].slice.call(this.reference.querySelectorAll('input'));
  1185. }
  1186. return [];
  1187. },
  1188. valueIsEmpty: function valueIsEmpty() {
  1189. var val = this.value;
  1190. if (Array.isArray(val)) {
  1191. for (var i = 0, len = val.length; i < len; i++) {
  1192. if (val[i]) {
  1193. return false;
  1194. }
  1195. }
  1196. } else {
  1197. if (val) {
  1198. return false;
  1199. }
  1200. }
  1201. return true;
  1202. },
  1203. triggerClass: function triggerClass() {
  1204. return this.prefixIcon || (this.type.indexOf('time') !== -1 ? 'el-icon-time' : 'el-icon-date');
  1205. },
  1206. selectionMode: function selectionMode() {
  1207. if (this.type === 'week') {
  1208. return 'week';
  1209. } else if (this.type === 'month') {
  1210. return 'month';
  1211. } else if (this.type === 'year') {
  1212. return 'year';
  1213. } else if (this.type === 'dates') {
  1214. return 'dates';
  1215. }
  1216. return 'day';
  1217. },
  1218. haveTrigger: function haveTrigger() {
  1219. if (typeof this.showTrigger !== 'undefined') {
  1220. return this.showTrigger;
  1221. }
  1222. return HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1;
  1223. },
  1224. displayValue: function displayValue() {
  1225. var formattedValue = formatAsFormatAndType(this.parsedValue, this.format, this.type, this.rangeSeparator);
  1226. if (Array.isArray(this.userInput)) {
  1227. return [this.userInput[0] || formattedValue && formattedValue[0] || '', this.userInput[1] || formattedValue && formattedValue[1] || ''];
  1228. } else if (this.userInput !== null) {
  1229. return this.userInput;
  1230. } else if (formattedValue) {
  1231. return this.type === 'dates' ? formattedValue.join(', ') : formattedValue;
  1232. } else {
  1233. return '';
  1234. }
  1235. },
  1236. parsedValue: function parsedValue() {
  1237. var isParsed = (0, _util.isDateObject)(this.value) || Array.isArray(this.value) && this.value.every(_util.isDateObject);
  1238. if (this.valueFormat && !isParsed) {
  1239. return parseAsFormatAndType(this.value, this.valueFormat, this.type, this.rangeSeparator) || this.value;
  1240. } else {
  1241. return this.value;
  1242. }
  1243. },
  1244. _elFormItemSize: function _elFormItemSize() {
  1245. return (this.elFormItem || {}).elFormItemSize;
  1246. },
  1247. pickerSize: function pickerSize() {
  1248. return this.size || this._elFormItemSize || (this.$ELEMENT || {}).size;
  1249. },
  1250. pickerDisabled: function pickerDisabled() {
  1251. return this.disabled || (this.elForm || {}).disabled;
  1252. },
  1253. firstInputId: function firstInputId() {
  1254. var obj = {};
  1255. var id = void 0;
  1256. if (this.ranged) {
  1257. id = this.id && this.id[0];
  1258. } else {
  1259. id = this.id;
  1260. }
  1261. if (id) obj.id = id;
  1262. return obj;
  1263. },
  1264. secondInputId: function secondInputId() {
  1265. var obj = {};
  1266. var id = void 0;
  1267. if (this.ranged) {
  1268. id = this.id && this.id[1];
  1269. }
  1270. if (id) obj.id = id;
  1271. return obj;
  1272. }
  1273. },
  1274. created: function created() {
  1275. // vue-popper
  1276. this.popperOptions = {
  1277. boundariesPadding: 0,
  1278. gpuAcceleration: false
  1279. };
  1280. this.placement = PLACEMENT_MAP[this.align] || PLACEMENT_MAP.left;
  1281. this.$on('fieldReset', this.handleFieldReset);
  1282. },
  1283. methods: {
  1284. focus: function focus() {
  1285. if (!this.ranged) {
  1286. this.$refs.reference.focus();
  1287. } else {
  1288. this.handleFocus();
  1289. }
  1290. },
  1291. blur: function blur() {
  1292. this.refInput.forEach(function (input) {
  1293. return input.blur();
  1294. });
  1295. },
  1296. // {parse, formatTo} Value deals maps component value with internal Date
  1297. parseValue: function parseValue(value) {
  1298. var isParsed = (0, _util.isDateObject)(value) || Array.isArray(value) && value.every(_util.isDateObject);
  1299. if (this.valueFormat && !isParsed) {
  1300. return parseAsFormatAndType(value, this.valueFormat, this.type, this.rangeSeparator) || value;
  1301. } else {
  1302. return value;
  1303. }
  1304. },
  1305. formatToValue: function formatToValue(date) {
  1306. var isFormattable = (0, _util.isDateObject)(date) || Array.isArray(date) && date.every(_util.isDateObject);
  1307. if (this.valueFormat && isFormattable) {
  1308. return formatAsFormatAndType(date, this.valueFormat, this.type, this.rangeSeparator);
  1309. } else {
  1310. return date;
  1311. }
  1312. },
  1313. // {parse, formatTo} String deals with user input
  1314. parseString: function parseString(value) {
  1315. var type = Array.isArray(value) ? this.type : this.type.replace('range', '');
  1316. return parseAsFormatAndType(value, this.format, type);
  1317. },
  1318. formatToString: function formatToString(value) {
  1319. var type = Array.isArray(value) ? this.type : this.type.replace('range', '');
  1320. return formatAsFormatAndType(value, this.format, type);
  1321. },
  1322. handleMouseEnter: function handleMouseEnter() {
  1323. if (this.readonly || this.pickerDisabled) return;
  1324. if (!this.valueIsEmpty && this.clearable) {
  1325. this.showClose = true;
  1326. }
  1327. },
  1328. handleChange: function handleChange() {
  1329. if (this.userInput) {
  1330. var value = this.parseString(this.displayValue);
  1331. if (value) {
  1332. this.picker.value = value;
  1333. if (this.isValidValue(value)) {
  1334. this.emitInput(value);
  1335. this.userInput = null;
  1336. }
  1337. }
  1338. }
  1339. if (this.userInput === '') {
  1340. this.emitInput(null);
  1341. this.emitChange(null);
  1342. this.userInput = null;
  1343. }
  1344. },
  1345. handleStartInput: function handleStartInput(event) {
  1346. if (this.userInput) {
  1347. this.userInput = [event.target.value, this.userInput[1]];
  1348. } else {
  1349. this.userInput = [event.target.value, null];
  1350. }
  1351. },
  1352. handleEndInput: function handleEndInput(event) {
  1353. if (this.userInput) {
  1354. this.userInput = [this.userInput[0], event.target.value];
  1355. } else {
  1356. this.userInput = [null, event.target.value];
  1357. }
  1358. },
  1359. handleStartChange: function handleStartChange(event) {
  1360. var value = this.parseString(this.userInput && this.userInput[0]);
  1361. if (value) {
  1362. this.userInput = [this.formatToString(value), this.displayValue[1]];
  1363. var newValue = [value, this.picker.value && this.picker.value[1]];
  1364. this.picker.value = newValue;
  1365. if (this.isValidValue(newValue)) {
  1366. this.emitInput(newValue);
  1367. this.userInput = null;
  1368. }
  1369. }
  1370. },
  1371. handleEndChange: function handleEndChange(event) {
  1372. var value = this.parseString(this.userInput && this.userInput[1]);
  1373. if (value) {
  1374. this.userInput = [this.displayValue[0], this.formatToString(value)];
  1375. var newValue = [this.picker.value && this.picker.value[0], value];
  1376. this.picker.value = newValue;
  1377. if (this.isValidValue(newValue)) {
  1378. this.emitInput(newValue);
  1379. this.userInput = null;
  1380. }
  1381. }
  1382. },
  1383. handleClickIcon: function handleClickIcon(event) {
  1384. if (this.readonly || this.pickerDisabled) return;
  1385. if (this.showClose) {
  1386. this.valueOnOpen = this.value;
  1387. event.stopPropagation();
  1388. this.emitInput(null);
  1389. this.emitChange(null);
  1390. this.showClose = false;
  1391. if (this.picker && typeof this.picker.handleClear === 'function') {
  1392. this.picker.handleClear();
  1393. }
  1394. } else {
  1395. this.pickerVisible = !this.pickerVisible;
  1396. }
  1397. },
  1398. handleClose: function handleClose() {
  1399. if (!this.pickerVisible) return;
  1400. this.pickerVisible = false;
  1401. var type = this.type,
  1402. valueOnOpen = this.valueOnOpen,
  1403. valueFormat = this.valueFormat,
  1404. rangeSeparator = this.rangeSeparator;
  1405. if (type === 'dates' && this.picker) {
  1406. this.picker.selectedDate = parseAsFormatAndType(valueOnOpen, valueFormat, type, rangeSeparator) || valueOnOpen;
  1407. this.emitInput(this.picker.selectedDate);
  1408. }
  1409. },
  1410. handleFieldReset: function handleFieldReset(initialValue) {
  1411. this.userInput = initialValue;
  1412. },
  1413. handleFocus: function handleFocus() {
  1414. var type = this.type;
  1415. if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
  1416. this.pickerVisible = true;
  1417. }
  1418. this.$emit('focus', this);
  1419. },
  1420. handleKeydown: function handleKeydown(event) {
  1421. var _this = this;
  1422. var keyCode = event.keyCode;
  1423. // ESC
  1424. if (keyCode === 27) {
  1425. this.pickerVisible = false;
  1426. event.stopPropagation();
  1427. return;
  1428. }
  1429. // Tab
  1430. if (keyCode === 9) {
  1431. if (!this.ranged) {
  1432. this.handleChange();
  1433. this.pickerVisible = this.picker.visible = false;
  1434. this.blur();
  1435. event.stopPropagation();
  1436. } else {
  1437. // user may change focus between two input
  1438. setTimeout(function () {
  1439. if (_this.refInput.indexOf(document.activeElement) === -1) {
  1440. _this.pickerVisible = false;
  1441. _this.blur();
  1442. event.stopPropagation();
  1443. }
  1444. }, 0);
  1445. }
  1446. return;
  1447. }
  1448. // Enter
  1449. if (keyCode === 13) {
  1450. if (this.userInput === '' || this.isValidValue(this.parseString(this.displayValue))) {
  1451. this.handleChange();
  1452. this.pickerVisible = this.picker.visible = false;
  1453. this.blur();
  1454. }
  1455. event.stopPropagation();
  1456. return;
  1457. }
  1458. // if user is typing, do not let picker handle key input
  1459. if (this.userInput) {
  1460. event.stopPropagation();
  1461. return;
  1462. }
  1463. // delegate other keys to panel
  1464. if (this.picker && this.picker.handleKeydown) {
  1465. this.picker.handleKeydown(event);
  1466. }
  1467. },
  1468. handleRangeClick: function handleRangeClick() {
  1469. var type = this.type;
  1470. if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
  1471. this.pickerVisible = true;
  1472. }
  1473. this.$emit('focus', this);
  1474. },
  1475. hidePicker: function hidePicker() {
  1476. if (this.picker) {
  1477. this.picker.resetView && this.picker.resetView();
  1478. this.pickerVisible = this.picker.visible = false;
  1479. this.destroyPopper();
  1480. }
  1481. },
  1482. showPicker: function showPicker() {
  1483. var _this2 = this;
  1484. if (this.$isServer) return;
  1485. if (!this.picker) {
  1486. this.mountPicker();
  1487. }
  1488. this.pickerVisible = this.picker.visible = true;
  1489. this.updatePopper();
  1490. this.picker.value = this.parsedValue;
  1491. this.picker.resetView && this.picker.resetView();
  1492. this.$nextTick(function () {
  1493. _this2.picker.adjustSpinners && _this2.picker.adjustSpinners();
  1494. });
  1495. },
  1496. mountPicker: function mountPicker() {
  1497. var _this3 = this;
  1498. this.picker = new _vue2.default(this.panel).$mount();
  1499. this.picker.defaultValue = this.defaultValue;
  1500. this.picker.defaultTime = this.defaultTime;
  1501. this.picker.popperClass = this.popperClass;
  1502. this.popperElm = this.picker.$el;
  1503. this.picker.width = this.reference.getBoundingClientRect().width;
  1504. this.picker.showTime = this.type === 'datetime' || this.type === 'datetimerange';
  1505. this.picker.selectionMode = this.selectionMode;
  1506. this.picker.unlinkPanels = this.unlinkPanels;
  1507. this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;
  1508. this.picker.selectedDate = Array.isArray(this.value) && this.value || [];
  1509. this.$watch('format', function (format) {
  1510. _this3.picker.format = format;
  1511. });
  1512. var updateOptions = function updateOptions() {
  1513. var options = _this3.pickerOptions;
  1514. if (options && options.selectableRange) {
  1515. (function () {
  1516. var ranges = options.selectableRange;
  1517. var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;
  1518. var format = DEFAULT_FORMATS.timerange;
  1519. ranges = Array.isArray(ranges) ? ranges : [ranges];
  1520. _this3.picker.selectableRange = ranges.map(function (range) {
  1521. return parser(range, format, _this3.rangeSeparator);
  1522. });
  1523. })();
  1524. }
  1525. for (var option in options) {
  1526. if (options.hasOwnProperty(option) &&
  1527. // 忽略 time-picker 的该配置项
  1528. option !== 'selectableRange') {
  1529. _this3.picker[option] = options[option];
  1530. }
  1531. }
  1532. // main format must prevail over undocumented pickerOptions.format
  1533. if (_this3.format) {
  1534. _this3.picker.format = _this3.format;
  1535. }
  1536. };
  1537. updateOptions();
  1538. this.unwatchPickerOptions = this.$watch('pickerOptions', function () {
  1539. return updateOptions();
  1540. }, { deep: true });
  1541. this.$el.appendChild(this.picker.$el);
  1542. this.picker.resetView && this.picker.resetView();
  1543. this.picker.$on('dodestroy', this.doDestroy);
  1544. this.picker.$on('pick', function () {
  1545. var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
  1546. var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
  1547. _this3.userInput = null;
  1548. _this3.pickerVisible = _this3.picker.visible = visible;
  1549. _this3.emitInput(date);
  1550. _this3.picker.resetView && _this3.picker.resetView();
  1551. });
  1552. this.picker.$on('select-range', function (start, end, pos) {
  1553. if (_this3.refInput.length === 0) return;
  1554. if (!pos || pos === 'min') {
  1555. _this3.refInput[0].setSelectionRange(start, end);
  1556. _this3.refInput[0].focus();
  1557. } else if (pos === 'max') {
  1558. _this3.refInput[1].setSelectionRange(start, end);
  1559. _this3.refInput[1].focus();
  1560. }
  1561. });
  1562. },
  1563. unmountPicker: function unmountPicker() {
  1564. if (this.picker) {
  1565. this.picker.$destroy();
  1566. this.picker.$off();
  1567. if (typeof this.unwatchPickerOptions === 'function') {
  1568. this.unwatchPickerOptions();
  1569. }
  1570. this.picker.$el.parentNode.removeChild(this.picker.$el);
  1571. }
  1572. },
  1573. emitChange: function emitChange(val) {
  1574. // determine user real change only
  1575. if (!valueEquals(val, this.valueOnOpen)) {
  1576. this.$emit('change', val);
  1577. this.dispatch('ElFormItem', 'el.form.change', val);
  1578. this.valueOnOpen = val;
  1579. }
  1580. },
  1581. emitInput: function emitInput(val) {
  1582. var formatted = this.formatToValue(val);
  1583. if (!valueEquals(this.value, formatted)) {
  1584. this.$emit('input', formatted);
  1585. }
  1586. },
  1587. isValidValue: function isValidValue(value) {
  1588. if (!this.picker) {
  1589. this.mountPicker();
  1590. }
  1591. if (this.picker.isValidValue) {
  1592. return value && this.picker.isValidValue(value);
  1593. } else {
  1594. return true;
  1595. }
  1596. }
  1597. }
  1598. };
  1599. /***/ }),
  1600. /***/ 29:
  1601. /***/ (function(module, exports) {
  1602. module.exports = require("element-ui/lib/utils/date");
  1603. /***/ }),
  1604. /***/ 30:
  1605. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1606. "use strict";
  1607. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.ranged)?_c('el-input',_vm._b({directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor",class:'el-date-editor--' + _vm.type,attrs:{"readonly":!_vm.editable || _vm.readonly || _vm.type === 'dates',"disabled":_vm.pickerDisabled,"size":_vm.pickerSize,"name":_vm.name,"placeholder":_vm.placeholder,"value":_vm.displayValue,"validateEvent":false},on:{"focus":_vm.handleFocus,"input":function (value) { return _vm.userInput = value; },"change":_vm.handleChange},nativeOn:{"keydown":function($event){_vm.handleKeydown($event)},"mouseenter":function($event){_vm.handleMouseEnter($event)},"mouseleave":function($event){_vm.showClose = false}}},'el-input',_vm.firstInputId,false),[_c('i',{staticClass:"el-input__icon",class:_vm.triggerClass,attrs:{"slot":"prefix"},on:{"click":_vm.handleFocus},slot:"prefix"}),(_vm.haveTrigger)?_c('i',{staticClass:"el-input__icon",class:[_vm.showClose ? '' + _vm.clearIcon : ''],attrs:{"slot":"suffix"},on:{"click":_vm.handleClickIcon},slot:"suffix"}):_vm._e()]):_c('div',{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",staticClass:"el-date-editor el-range-editor el-input__inner",class:[
  1608. 'el-date-editor--' + _vm.type,
  1609. _vm.pickerSize ? ("el-range-editor--" + _vm.pickerSize) : '',
  1610. _vm.pickerDisabled ? 'is-disabled' : '',
  1611. _vm.pickerVisible ? 'is-active' : ''
  1612. ],on:{"click":_vm.handleRangeClick,"mouseenter":_vm.handleMouseEnter,"mouseleave":function($event){_vm.showClose = false},"keydown":_vm.handleKeydown}},[_c('i',{class:['el-input__icon', 'el-range__icon', _vm.triggerClass]}),_c('input',_vm._b({staticClass:"el-range-input",attrs:{"placeholder":_vm.startPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[0]},domProps:{"value":_vm.displayValue && _vm.displayValue[0]},on:{"input":_vm.handleStartInput,"change":_vm.handleStartChange,"focus":_vm.handleFocus}},'input',_vm.firstInputId,false)),_c('span',{staticClass:"el-range-separator"},[_vm._v(_vm._s(_vm.rangeSeparator))]),_c('input',_vm._b({staticClass:"el-range-input",attrs:{"placeholder":_vm.endPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[1]},domProps:{"value":_vm.displayValue && _vm.displayValue[1]},on:{"input":_vm.handleEndInput,"change":_vm.handleEndChange,"focus":_vm.handleFocus}},'input',_vm.secondInputId,false)),(_vm.haveTrigger)?_c('i',{staticClass:"el-input__icon el-range__close-icon",class:[_vm.showClose ? '' + _vm.clearIcon : ''],on:{"click":_vm.handleClickIcon}}):_vm._e()])}
  1613. var staticRenderFns = []
  1614. var esExports = { render: render, staticRenderFns: staticRenderFns }
  1615. /* harmony default export */ __webpack_exports__["a"] = (esExports);
  1616. /***/ }),
  1617. /***/ 31:
  1618. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1619. "use strict";
  1620. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1621. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue__ = __webpack_require__(41);
  1622. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue__);
  1623. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4135ea9a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_vue__ = __webpack_require__(44);
  1624. var normalizeComponent = __webpack_require__(0)
  1625. /* script */
  1626. /* template */
  1627. /* template functional */
  1628. var __vue_template_functional__ = false
  1629. /* styles */
  1630. var __vue_styles__ = null
  1631. /* scopeId */
  1632. var __vue_scopeId__ = null
  1633. /* moduleIdentifier (server only) */
  1634. var __vue_module_identifier__ = null
  1635. var Component = normalizeComponent(
  1636. __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_vue___default.a,
  1637. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4135ea9a_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_vue__["a" /* default */],
  1638. __vue_template_functional__,
  1639. __vue_styles__,
  1640. __vue_scopeId__,
  1641. __vue_module_identifier__
  1642. )
  1643. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  1644. /***/ }),
  1645. /***/ 32:
  1646. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1647. "use strict";
  1648. Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
  1649. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue__ = __webpack_require__(42);
  1650. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue__);
  1651. /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_48e066fc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_spinner_vue__ = __webpack_require__(43);
  1652. var normalizeComponent = __webpack_require__(0)
  1653. /* script */
  1654. /* template */
  1655. /* template functional */
  1656. var __vue_template_functional__ = false
  1657. /* styles */
  1658. var __vue_styles__ = null
  1659. /* scopeId */
  1660. var __vue_scopeId__ = null
  1661. /* moduleIdentifier (server only) */
  1662. var __vue_module_identifier__ = null
  1663. var Component = normalizeComponent(
  1664. __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_time_spinner_vue___default.a,
  1665. __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_48e066fc_hasScoped_false_preserveWhitespace_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_time_spinner_vue__["a" /* default */],
  1666. __vue_template_functional__,
  1667. __vue_styles__,
  1668. __vue_scopeId__,
  1669. __vue_module_identifier__
  1670. )
  1671. /* harmony default export */ __webpack_exports__["default"] = (Component.exports);
  1672. /***/ }),
  1673. /***/ 4:
  1674. /***/ (function(module, exports) {
  1675. module.exports = require("vue");
  1676. /***/ }),
  1677. /***/ 41:
  1678. /***/ (function(module, exports, __webpack_require__) {
  1679. "use strict";
  1680. exports.__esModule = true;
  1681. var _util = __webpack_require__(11);
  1682. var _locale = __webpack_require__(5);
  1683. var _locale2 = _interopRequireDefault(_locale);
  1684. var _timeSpinner = __webpack_require__(32);
  1685. var _timeSpinner2 = _interopRequireDefault(_timeSpinner);
  1686. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1687. exports.default = {
  1688. mixins: [_locale2.default],
  1689. components: {
  1690. TimeSpinner: _timeSpinner2.default
  1691. },
  1692. props: {
  1693. visible: Boolean,
  1694. timeArrowControl: Boolean
  1695. },
  1696. watch: {
  1697. visible: function visible(val) {
  1698. var _this = this;
  1699. if (val) {
  1700. this.oldValue = this.value;
  1701. this.$nextTick(function () {
  1702. return _this.$refs.spinner.emitSelectRange('hours');
  1703. });
  1704. } else {
  1705. this.needInitAdjust = true;
  1706. }
  1707. },
  1708. value: function value(newVal) {
  1709. var _this2 = this;
  1710. var date = void 0;
  1711. if (newVal instanceof Date) {
  1712. date = (0, _util.limitTimeRange)(newVal, this.selectableRange, this.format);
  1713. } else if (!newVal) {
  1714. date = this.defaultValue ? new Date(this.defaultValue) : new Date();
  1715. }
  1716. this.date = date;
  1717. if (this.visible && this.needInitAdjust) {
  1718. this.$nextTick(function (_) {
  1719. return _this2.adjustSpinners();
  1720. });
  1721. this.needInitAdjust = false;
  1722. }
  1723. },
  1724. selectableRange: function selectableRange(val) {
  1725. this.$refs.spinner.selectableRange = val;
  1726. },
  1727. defaultValue: function defaultValue(val) {
  1728. if (!(0, _util.isDate)(this.value)) {
  1729. this.date = val ? new Date(val) : new Date();
  1730. }
  1731. }
  1732. },
  1733. data: function data() {
  1734. return {
  1735. popperClass: '',
  1736. format: 'HH:mm:ss',
  1737. value: '',
  1738. defaultValue: null,
  1739. date: new Date(),
  1740. oldValue: new Date(),
  1741. selectableRange: [],
  1742. selectionRange: [0, 2],
  1743. disabled: false,
  1744. arrowControl: false,
  1745. needInitAdjust: true
  1746. };
  1747. },
  1748. computed: {
  1749. showSeconds: function showSeconds() {
  1750. return (this.format || '').indexOf('ss') !== -1;
  1751. },
  1752. useArrow: function useArrow() {
  1753. return this.arrowControl || this.timeArrowControl || false;
  1754. },
  1755. amPmMode: function amPmMode() {
  1756. if ((this.format || '').indexOf('A') !== -1) return 'A';
  1757. if ((this.format || '').indexOf('a') !== -1) return 'a';
  1758. return '';
  1759. }
  1760. },
  1761. methods: {
  1762. handleCancel: function handleCancel() {
  1763. this.$emit('pick', this.oldValue, false);
  1764. },
  1765. handleChange: function handleChange(date) {
  1766. // this.visible avoids edge cases, when use scrolls during panel closing animation
  1767. if (this.visible) {
  1768. this.date = (0, _util.clearMilliseconds)(date);
  1769. // if date is out of range, do not emit
  1770. if (this.isValidValue(this.date)) {
  1771. this.$emit('pick', this.date, true);
  1772. }
  1773. }
  1774. },
  1775. setSelectionRange: function setSelectionRange(start, end) {
  1776. this.$emit('select-range', start, end);
  1777. this.selectionRange = [start, end];
  1778. },
  1779. handleConfirm: function handleConfirm() {
  1780. var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
  1781. var first = arguments[1];
  1782. if (first) return;
  1783. var date = (0, _util.clearMilliseconds)((0, _util.limitTimeRange)(this.date, this.selectableRange, this.format));
  1784. this.$emit('pick', date, visible, first);
  1785. },
  1786. handleKeydown: function handleKeydown(event) {
  1787. var keyCode = event.keyCode;
  1788. var mapping = { 38: -1, 40: 1, 37: -1, 39: 1 };
  1789. // Left or Right
  1790. if (keyCode === 37 || keyCode === 39) {
  1791. var step = mapping[keyCode];
  1792. this.changeSelectionRange(step);
  1793. event.preventDefault();
  1794. return;
  1795. }
  1796. // Up or Down
  1797. if (keyCode === 38 || keyCode === 40) {
  1798. var _step = mapping[keyCode];
  1799. this.$refs.spinner.scrollDown(_step);
  1800. event.preventDefault();
  1801. return;
  1802. }
  1803. },
  1804. isValidValue: function isValidValue(date) {
  1805. return (0, _util.timeWithinRange)(date, this.selectableRange, this.format);
  1806. },
  1807. adjustSpinners: function adjustSpinners() {
  1808. return this.$refs.spinner.adjustSpinners();
  1809. },
  1810. changeSelectionRange: function changeSelectionRange(step) {
  1811. var list = [0, 3].concat(this.showSeconds ? [6] : []);
  1812. var mapping = ['hours', 'minutes'].concat(this.showSeconds ? ['seconds'] : []);
  1813. var index = list.indexOf(this.selectionRange[0]);
  1814. var next = (index + step + list.length) % list.length;
  1815. this.$refs.spinner.emitSelectRange(mapping[next]);
  1816. }
  1817. },
  1818. mounted: function mounted() {
  1819. var _this3 = this;
  1820. this.$nextTick(function () {
  1821. return _this3.handleConfirm(true, true);
  1822. });
  1823. this.$emit('mounted');
  1824. }
  1825. }; //
  1826. //
  1827. //
  1828. //
  1829. //
  1830. //
  1831. //
  1832. //
  1833. //
  1834. //
  1835. //
  1836. //
  1837. //
  1838. //
  1839. //
  1840. //
  1841. //
  1842. //
  1843. //
  1844. //
  1845. //
  1846. //
  1847. //
  1848. //
  1849. //
  1850. //
  1851. //
  1852. //
  1853. //
  1854. //
  1855. //
  1856. //
  1857. /***/ }),
  1858. /***/ 42:
  1859. /***/ (function(module, exports, __webpack_require__) {
  1860. "use strict";
  1861. exports.__esModule = true;
  1862. var _util = __webpack_require__(11);
  1863. var _scrollbar = __webpack_require__(17);
  1864. var _scrollbar2 = _interopRequireDefault(_scrollbar);
  1865. var _repeatClick = __webpack_require__(24);
  1866. var _repeatClick2 = _interopRequireDefault(_repeatClick);
  1867. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  1868. exports.default = {
  1869. components: { ElScrollbar: _scrollbar2.default },
  1870. directives: {
  1871. repeatClick: _repeatClick2.default
  1872. },
  1873. props: {
  1874. date: {},
  1875. defaultValue: {}, // reserved for future use
  1876. showSeconds: {
  1877. type: Boolean,
  1878. default: true
  1879. },
  1880. arrowControl: Boolean,
  1881. amPmMode: {
  1882. type: String,
  1883. default: '' // 'a': am/pm; 'A': AM/PM
  1884. }
  1885. },
  1886. computed: {
  1887. hours: function hours() {
  1888. return this.date.getHours();
  1889. },
  1890. minutes: function minutes() {
  1891. return this.date.getMinutes();
  1892. },
  1893. seconds: function seconds() {
  1894. return this.date.getSeconds();
  1895. },
  1896. hoursList: function hoursList() {
  1897. return (0, _util.getRangeHours)(this.selectableRange);
  1898. },
  1899. arrowHourList: function arrowHourList() {
  1900. var hours = this.hours;
  1901. return [hours > 0 ? hours - 1 : undefined, hours, hours < 23 ? hours + 1 : undefined];
  1902. },
  1903. arrowMinuteList: function arrowMinuteList() {
  1904. var minutes = this.minutes;
  1905. return [minutes > 0 ? minutes - 1 : undefined, minutes, minutes < 59 ? minutes + 1 : undefined];
  1906. },
  1907. arrowSecondList: function arrowSecondList() {
  1908. var seconds = this.seconds;
  1909. return [seconds > 0 ? seconds - 1 : undefined, seconds, seconds < 59 ? seconds + 1 : undefined];
  1910. }
  1911. },
  1912. data: function data() {
  1913. return {
  1914. selectableRange: [],
  1915. currentScrollbar: null
  1916. };
  1917. },
  1918. mounted: function mounted() {
  1919. var _this = this;
  1920. this.$nextTick(function () {
  1921. !_this.arrowControl && _this.bindScrollEvent();
  1922. });
  1923. },
  1924. methods: {
  1925. increase: function increase() {
  1926. this.scrollDown(1);
  1927. },
  1928. decrease: function decrease() {
  1929. this.scrollDown(-1);
  1930. },
  1931. modifyDateField: function modifyDateField(type, value) {
  1932. switch (type) {
  1933. case 'hours':
  1934. this.$emit('change', (0, _util.modifyTime)(this.date, value, this.minutes, this.seconds));break;
  1935. case 'minutes':
  1936. this.$emit('change', (0, _util.modifyTime)(this.date, this.hours, value, this.seconds));break;
  1937. case 'seconds':
  1938. this.$emit('change', (0, _util.modifyTime)(this.date, this.hours, this.minutes, value));break;
  1939. }
  1940. },
  1941. handleClick: function handleClick(type, _ref) {
  1942. var value = _ref.value,
  1943. disabled = _ref.disabled;
  1944. if (!disabled) {
  1945. this.modifyDateField(type, value);
  1946. this.emitSelectRange(type);
  1947. this.adjustSpinner(type, value);
  1948. }
  1949. },
  1950. emitSelectRange: function emitSelectRange(type) {
  1951. if (type === 'hours') {
  1952. this.$emit('select-range', 0, 2);
  1953. } else if (type === 'minutes') {
  1954. this.$emit('select-range', 3, 5);
  1955. } else if (type === 'seconds') {
  1956. this.$emit('select-range', 6, 8);
  1957. }
  1958. this.currentScrollbar = type;
  1959. },
  1960. bindScrollEvent: function bindScrollEvent() {
  1961. var _this2 = this;
  1962. var bindFuntion = function bindFuntion(type) {
  1963. _this2.$refs[type].wrap.onscroll = function (e) {
  1964. // TODO: scroll is emitted when set scrollTop programatically
  1965. // should find better solutions in the future!
  1966. _this2.handleScroll(type, e);
  1967. };
  1968. };
  1969. bindFuntion('hours');
  1970. bindFuntion('minutes');
  1971. bindFuntion('seconds');
  1972. },
  1973. handleScroll: function handleScroll(type) {
  1974. var value = Math.min(Math.floor((this.$refs[type].wrap.scrollTop - 80) / 32 + 3), type === 'hours' ? 23 : 59);
  1975. this.modifyDateField(type, value);
  1976. },
  1977. // NOTE: used by datetime / date-range panel
  1978. // renamed from adjustScrollTop
  1979. // should try to refactory it
  1980. adjustSpinners: function adjustSpinners() {
  1981. this.adjustSpinner('hours', this.hours);
  1982. this.adjustSpinner('minutes', this.minutes);
  1983. this.adjustSpinner('seconds', this.seconds);
  1984. },
  1985. adjustCurrentSpinner: function adjustCurrentSpinner(type) {
  1986. this.adjustSpinner(type, this[type]);
  1987. },
  1988. adjustSpinner: function adjustSpinner(type, value) {
  1989. if (this.arrowControl) return;
  1990. var el = this.$refs[type].wrap;
  1991. if (el) {
  1992. el.scrollTop = Math.max(0, (value - 2.5) * 32 + 80);
  1993. }
  1994. },
  1995. scrollDown: function scrollDown(step) {
  1996. if (!this.currentScrollbar) {
  1997. this.emitSelectRange('hours');
  1998. }
  1999. var label = this.currentScrollbar;
  2000. var hoursList = this.hoursList;
  2001. var now = this[label];
  2002. if (this.currentScrollbar === 'hours') {
  2003. var total = Math.abs(step);
  2004. step = step > 0 ? 1 : -1;
  2005. var length = hoursList.length;
  2006. while (length-- && total) {
  2007. now = (now + step + hoursList.length) % hoursList.length;
  2008. if (hoursList[now]) {
  2009. continue;
  2010. }
  2011. total--;
  2012. }
  2013. if (hoursList[now]) return;
  2014. } else {
  2015. now = (now + step + 60) % 60;
  2016. }
  2017. this.modifyDateField(label, now);
  2018. this.adjustSpinner(label, now);
  2019. },
  2020. amPm: function amPm(hour) {
  2021. var shouldShowAmPm = this.amPmMode.toLowerCase() === 'a';
  2022. if (!shouldShowAmPm) return '';
  2023. var isCapital = this.amPmMode === 'A';
  2024. var content = hour < 12 ? ' am' : ' pm';
  2025. if (isCapital) content = content.toUpperCase();
  2026. return content;
  2027. }
  2028. }
  2029. }; //
  2030. //
  2031. //
  2032. //
  2033. //
  2034. //
  2035. //
  2036. //
  2037. //
  2038. //
  2039. //
  2040. //
  2041. //
  2042. //
  2043. //
  2044. //
  2045. //
  2046. //
  2047. //
  2048. //
  2049. //
  2050. //
  2051. //
  2052. //
  2053. //
  2054. //
  2055. //
  2056. //
  2057. //
  2058. //
  2059. //
  2060. //
  2061. //
  2062. //
  2063. //
  2064. //
  2065. //
  2066. //
  2067. //
  2068. //
  2069. //
  2070. //
  2071. //
  2072. //
  2073. //
  2074. //
  2075. //
  2076. //
  2077. //
  2078. //
  2079. //
  2080. //
  2081. //
  2082. //
  2083. //
  2084. //
  2085. //
  2086. //
  2087. //
  2088. //
  2089. //
  2090. //
  2091. //
  2092. //
  2093. //
  2094. //
  2095. //
  2096. //
  2097. //
  2098. //
  2099. //
  2100. //
  2101. //
  2102. //
  2103. //
  2104. //
  2105. //
  2106. //
  2107. //
  2108. //
  2109. //
  2110. //
  2111. //
  2112. //
  2113. //
  2114. //
  2115. //
  2116. //
  2117. //
  2118. //
  2119. //
  2120. //
  2121. //
  2122. //
  2123. //
  2124. //
  2125. /***/ }),
  2126. /***/ 43:
  2127. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2128. "use strict";
  2129. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"el-time-spinner",class:{ 'has-seconds': _vm.showSeconds }},[(!_vm.arrowControl)?[_c('el-scrollbar',{ref:"hours",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list","noresize":"","tag":"ul"},nativeOn:{"mouseenter":function($event){_vm.emitSelectRange('hours')},"mousemove":function($event){_vm.adjustCurrentSpinner('hours')}}},_vm._l((_vm.hoursList),function(disabled,hour){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': hour === _vm.hours, 'disabled': disabled },on:{"click":function($event){_vm.handleClick('hours', { value: hour, disabled: disabled })}}},[_vm._v(_vm._s(('0' + (_vm.amPmMode ? (hour % 12 || 12) : hour )).slice(-2))+_vm._s(_vm.amPm(hour)))])})),_c('el-scrollbar',{ref:"minutes",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list","noresize":"","tag":"ul"},nativeOn:{"mouseenter":function($event){_vm.emitSelectRange('minutes')},"mousemove":function($event){_vm.adjustCurrentSpinner('minutes')}}},_vm._l((60),function(minute,key){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': key === _vm.minutes },on:{"click":function($event){_vm.handleClick('minutes', { value: key, disabled: false })}}},[_vm._v(_vm._s(('0' + key).slice(-2)))])})),_c('el-scrollbar',{directives:[{name:"show",rawName:"v-show",value:(_vm.showSeconds),expression:"showSeconds"}],ref:"seconds",staticClass:"el-time-spinner__wrapper",attrs:{"wrap-style":"max-height: inherit;","view-class":"el-time-spinner__list","noresize":"","tag":"ul"},nativeOn:{"mouseenter":function($event){_vm.emitSelectRange('seconds')},"mousemove":function($event){_vm.adjustCurrentSpinner('seconds')}}},_vm._l((60),function(second,key){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': key === _vm.seconds },on:{"click":function($event){_vm.handleClick('seconds', { value: key, disabled: false })}}},[_vm._v(_vm._s(('0' + key).slice(-2)))])}))]:_vm._e(),(_vm.arrowControl)?[_c('div',{staticClass:"el-time-spinner__wrapper is-arrow",on:{"mouseenter":function($event){_vm.emitSelectRange('hours')}}},[_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.decrease),expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.increase),expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),_c('ul',{ref:"hours",staticClass:"el-time-spinner__list"},_vm._l((_vm.arrowHourList),function(hour){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': hour === _vm.hours, 'disabled': _vm.hoursList[hour] }},[_vm._v(_vm._s(hour === undefined ? '' : ('0' + (_vm.amPmMode ? (hour % 12 || 12) : hour )).slice(-2) + _vm.amPm(hour)))])}))]),_c('div',{staticClass:"el-time-spinner__wrapper is-arrow",on:{"mouseenter":function($event){_vm.emitSelectRange('minutes')}}},[_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.decrease),expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.increase),expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),_c('ul',{ref:"minutes",staticClass:"el-time-spinner__list"},_vm._l((_vm.arrowMinuteList),function(minute){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': minute === _vm.minutes }},[_vm._v("\n "+_vm._s(minute === undefined ? '' : ('0' + minute).slice(-2))+"\n ")])}))]),(_vm.showSeconds)?_c('div',{staticClass:"el-time-spinner__wrapper is-arrow",on:{"mouseenter":function($event){_vm.emitSelectRange('seconds')}}},[_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.decrease),expression:"decrease"}],staticClass:"el-time-spinner__arrow el-icon-arrow-up"}),_c('i',{directives:[{name:"repeat-click",rawName:"v-repeat-click",value:(_vm.increase),expression:"increase"}],staticClass:"el-time-spinner__arrow el-icon-arrow-down"}),_c('ul',{ref:"seconds",staticClass:"el-time-spinner__list"},_vm._l((_vm.arrowSecondList),function(second){return _c('li',{staticClass:"el-time-spinner__item",class:{ 'active': second === _vm.seconds }},[_vm._v("\n "+_vm._s(second === undefined ? '' : ('0' + second).slice(-2))+"\n ")])}))]):_vm._e()]:_vm._e()],2)}
  2130. var staticRenderFns = []
  2131. var esExports = { render: render, staticRenderFns: staticRenderFns }
  2132. /* harmony default export */ __webpack_exports__["a"] = (esExports);
  2133. /***/ }),
  2134. /***/ 44:
  2135. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2136. "use strict";
  2137. var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"el-zoom-in-top"},on:{"after-leave":function($event){_vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible),expression:"visible"}],staticClass:"el-time-panel el-popper",class:_vm.popperClass},[_c('div',{staticClass:"el-time-panel__content",class:{ 'has-seconds': _vm.showSeconds }},[_c('time-spinner',{ref:"spinner",attrs:{"arrow-control":_vm.useArrow,"show-seconds":_vm.showSeconds,"am-pm-mode":_vm.amPmMode,"date":_vm.date},on:{"change":_vm.handleChange,"select-range":_vm.setSelectionRange}})],1),_c('div',{staticClass:"el-time-panel__footer"},[_c('button',{staticClass:"el-time-panel__btn cancel",attrs:{"type":"button"},on:{"click":_vm.handleCancel}},[_vm._v(_vm._s(_vm.t('el.datepicker.cancel')))]),_c('button',{staticClass:"el-time-panel__btn",class:{confirm: !_vm.disabled},attrs:{"type":"button"},on:{"click":function($event){_vm.handleConfirm()}}},[_vm._v(_vm._s(_vm.t('el.datepicker.confirm')))])])])])}
  2138. var staticRenderFns = []
  2139. var esExports = { render: render, staticRenderFns: staticRenderFns }
  2140. /* harmony default export */ __webpack_exports__["a"] = (esExports);
  2141. /***/ }),
  2142. /***/ 5:
  2143. /***/ (function(module, exports) {
  2144. module.exports = require("element-ui/lib/mixins/locale");
  2145. /***/ }),
  2146. /***/ 6:
  2147. /***/ (function(module, exports) {
  2148. module.exports = require("element-ui/lib/input");
  2149. /***/ }),
  2150. /***/ 7:
  2151. /***/ (function(module, exports) {
  2152. module.exports = require("element-ui/lib/utils/vue-popper");
  2153. /***/ }),
  2154. /***/ 9:
  2155. /***/ (function(module, exports) {
  2156. module.exports = require("element-ui/lib/utils/merge");
  2157. /***/ })
  2158. /******/ });