Nav apraksta

jquery-ui-timepicker-addon.min.js 65KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331
  1. ! ( function ( e ) {
  2. 'function' == typeof define && define.amd
  3. ? define( [ 'jquery', 'jquery-ui' ], e )
  4. : e( jQuery );
  5. } )( function ( $ ) {
  6. if (
  7. ( ( $.ui.timepicker = $.ui.timepicker || {} ),
  8. ! $.ui.timepicker.version )
  9. ) {
  10. $.extend( $.ui, { timepicker: { version: '1.6.3' } } );
  11. var Timepicker = function () {
  12. ( this.regional = [] ),
  13. ( this.regional[ '' ] = {
  14. currentText: 'Now',
  15. closeText: 'Done',
  16. amNames: [ 'AM', 'A' ],
  17. pmNames: [ 'PM', 'P' ],
  18. timeFormat: 'HH:mm',
  19. timeSuffix: '',
  20. timeOnlyTitle: 'Choose Time',
  21. timeText: 'Time',
  22. hourText: 'Hour',
  23. minuteText: 'Minute',
  24. secondText: 'Second',
  25. millisecText: 'Millisecond',
  26. microsecText: 'Microsecond',
  27. timezoneText: 'Time Zone',
  28. isRTL: ! 1,
  29. } ),
  30. ( this._defaults = {
  31. showButtonPanel: ! 0,
  32. timeOnly: ! 1,
  33. timeOnlyShowDate: ! 1,
  34. showHour: null,
  35. showMinute: null,
  36. showSecond: null,
  37. showMillisec: null,
  38. showMicrosec: null,
  39. showTimezone: null,
  40. showTime: ! 0,
  41. stepHour: 1,
  42. stepMinute: 1,
  43. stepSecond: 1,
  44. stepMillisec: 1,
  45. stepMicrosec: 1,
  46. hour: 0,
  47. minute: 0,
  48. second: 0,
  49. millisec: 0,
  50. microsec: 0,
  51. timezone: null,
  52. hourMin: 0,
  53. minuteMin: 0,
  54. secondMin: 0,
  55. millisecMin: 0,
  56. microsecMin: 0,
  57. hourMax: 23,
  58. minuteMax: 59,
  59. secondMax: 59,
  60. millisecMax: 999,
  61. microsecMax: 999,
  62. minDateTime: null,
  63. maxDateTime: null,
  64. maxTime: null,
  65. minTime: null,
  66. onSelect: null,
  67. hourGrid: 0,
  68. minuteGrid: 0,
  69. secondGrid: 0,
  70. millisecGrid: 0,
  71. microsecGrid: 0,
  72. alwaysSetTime: ! 0,
  73. separator: ' ',
  74. altFieldTimeOnly: ! 0,
  75. altTimeFormat: null,
  76. altSeparator: null,
  77. altTimeSuffix: null,
  78. altRedirectFocus: ! 0,
  79. pickerTimeFormat: null,
  80. pickerTimeSuffix: null,
  81. showTimepicker: ! 0,
  82. timezoneList: null,
  83. addSliderAccess: ! 1,
  84. sliderAccessArgs: null,
  85. controlType: 'slider',
  86. oneLine: ! 1,
  87. defaultValue: null,
  88. parse: 'strict',
  89. afterInject: null,
  90. } ),
  91. $.extend( this._defaults, this.regional[ '' ] );
  92. };
  93. $.extend( Timepicker.prototype, {
  94. $input: null,
  95. $altInput: null,
  96. $timeObj: null,
  97. inst: null,
  98. hour_slider: null,
  99. minute_slider: null,
  100. second_slider: null,
  101. millisec_slider: null,
  102. microsec_slider: null,
  103. timezone_select: null,
  104. maxTime: null,
  105. minTime: null,
  106. hour: 0,
  107. minute: 0,
  108. second: 0,
  109. millisec: 0,
  110. microsec: 0,
  111. timezone: null,
  112. hourMinOriginal: null,
  113. minuteMinOriginal: null,
  114. secondMinOriginal: null,
  115. millisecMinOriginal: null,
  116. microsecMinOriginal: null,
  117. hourMaxOriginal: null,
  118. minuteMaxOriginal: null,
  119. secondMaxOriginal: null,
  120. millisecMaxOriginal: null,
  121. microsecMaxOriginal: null,
  122. ampm: '',
  123. formattedDate: '',
  124. formattedTime: '',
  125. formattedDateTime: '',
  126. timezoneList: null,
  127. units: [ 'hour', 'minute', 'second', 'millisec', 'microsec' ],
  128. support: {},
  129. control: null,
  130. setDefaults: function ( e ) {
  131. return extendRemove( this._defaults, e || {} ), this;
  132. },
  133. _newInst: function ( $input, opts ) {
  134. var tp_inst = new Timepicker(),
  135. inlineSettings = {},
  136. fns = {},
  137. overrides,
  138. i;
  139. for ( var attrName in this._defaults )
  140. if ( this._defaults.hasOwnProperty( attrName ) ) {
  141. var attrValue = $input.attr( 'time:' + attrName );
  142. if ( attrValue )
  143. try {
  144. inlineSettings[ attrName ] = eval( attrValue );
  145. } catch ( e ) {
  146. inlineSettings[ attrName ] = attrValue;
  147. }
  148. }
  149. overrides = {
  150. beforeShow: function ( e, t ) {
  151. if (
  152. $.isFunction( tp_inst._defaults.evnts.beforeShow )
  153. )
  154. return tp_inst._defaults.evnts.beforeShow.call(
  155. $input[ 0 ],
  156. e,
  157. t,
  158. tp_inst
  159. );
  160. },
  161. onChangeMonthYear: function ( e, t, i ) {
  162. $.isFunction(
  163. tp_inst._defaults.evnts.onChangeMonthYear
  164. ) &&
  165. tp_inst._defaults.evnts.onChangeMonthYear.call(
  166. $input[ 0 ],
  167. e,
  168. t,
  169. i,
  170. tp_inst
  171. );
  172. },
  173. onClose: function ( e, t ) {
  174. tp_inst.timeDefined === ! 0 &&
  175. '' !== $input.val() &&
  176. tp_inst._updateDateTime( t ),
  177. $.isFunction( tp_inst._defaults.evnts.onClose ) &&
  178. tp_inst._defaults.evnts.onClose.call(
  179. $input[ 0 ],
  180. e,
  181. t,
  182. tp_inst
  183. );
  184. },
  185. };
  186. for ( i in overrides )
  187. overrides.hasOwnProperty( i ) &&
  188. ( fns[ i ] = opts[ i ] || this._defaults[ i ] || null );
  189. ( tp_inst._defaults = $.extend(
  190. {},
  191. this._defaults,
  192. inlineSettings,
  193. opts,
  194. overrides,
  195. { evnts: fns, timepicker: tp_inst }
  196. ) ),
  197. ( tp_inst.amNames = $.map(
  198. tp_inst._defaults.amNames,
  199. function ( e ) {
  200. return e.toUpperCase();
  201. }
  202. ) ),
  203. ( tp_inst.pmNames = $.map(
  204. tp_inst._defaults.pmNames,
  205. function ( e ) {
  206. return e.toUpperCase();
  207. }
  208. ) ),
  209. ( tp_inst.support = detectSupport(
  210. tp_inst._defaults.timeFormat +
  211. ( tp_inst._defaults.pickerTimeFormat
  212. ? tp_inst._defaults.pickerTimeFormat
  213. : '' ) +
  214. ( tp_inst._defaults.altTimeFormat
  215. ? tp_inst._defaults.altTimeFormat
  216. : '' )
  217. ) ),
  218. 'string' == typeof tp_inst._defaults.controlType
  219. ? ( 'slider' === tp_inst._defaults.controlType &&
  220. 'undefined' == typeof $.ui.slider &&
  221. ( tp_inst._defaults.controlType = 'select' ),
  222. ( tp_inst.control =
  223. tp_inst._controls[
  224. tp_inst._defaults.controlType
  225. ] ) )
  226. : ( tp_inst.control = tp_inst._defaults.controlType );
  227. var timezoneList = [
  228. -720,
  229. -660,
  230. -600,
  231. -570,
  232. -540,
  233. -480,
  234. -420,
  235. -360,
  236. -300,
  237. -270,
  238. -240,
  239. -210,
  240. -180,
  241. -120,
  242. -60,
  243. 0,
  244. 60,
  245. 120,
  246. 180,
  247. 210,
  248. 240,
  249. 270,
  250. 300,
  251. 330,
  252. 345,
  253. 360,
  254. 390,
  255. 420,
  256. 480,
  257. 525,
  258. 540,
  259. 570,
  260. 600,
  261. 630,
  262. 660,
  263. 690,
  264. 720,
  265. 765,
  266. 780,
  267. 840,
  268. ];
  269. null !== tp_inst._defaults.timezoneList &&
  270. ( timezoneList = tp_inst._defaults.timezoneList );
  271. var tzl = timezoneList.length,
  272. tzi = 0,
  273. tzv = null;
  274. if ( tzl > 0 && 'object' != typeof timezoneList[ 0 ] )
  275. for ( ; tzi < tzl; tzi++ )
  276. ( tzv = timezoneList[ tzi ] ),
  277. ( timezoneList[ tzi ] = {
  278. value: tzv,
  279. label: $.timepicker.timezoneOffsetString(
  280. tzv,
  281. tp_inst.support.iso8601
  282. ),
  283. } );
  284. return (
  285. ( tp_inst._defaults.timezoneList = timezoneList ),
  286. ( tp_inst.timezone =
  287. null !== tp_inst._defaults.timezone
  288. ? $.timepicker.timezoneOffsetNumber(
  289. tp_inst._defaults.timezone
  290. )
  291. : new Date().getTimezoneOffset() * -1 ),
  292. ( tp_inst.hour =
  293. tp_inst._defaults.hour < tp_inst._defaults.hourMin
  294. ? tp_inst._defaults.hourMin
  295. : tp_inst._defaults.hour > tp_inst._defaults.hourMax
  296. ? tp_inst._defaults.hourMax
  297. : tp_inst._defaults.hour ),
  298. ( tp_inst.minute =
  299. tp_inst._defaults.minute < tp_inst._defaults.minuteMin
  300. ? tp_inst._defaults.minuteMin
  301. : tp_inst._defaults.minute >
  302. tp_inst._defaults.minuteMax
  303. ? tp_inst._defaults.minuteMax
  304. : tp_inst._defaults.minute ),
  305. ( tp_inst.second =
  306. tp_inst._defaults.second < tp_inst._defaults.secondMin
  307. ? tp_inst._defaults.secondMin
  308. : tp_inst._defaults.second >
  309. tp_inst._defaults.secondMax
  310. ? tp_inst._defaults.secondMax
  311. : tp_inst._defaults.second ),
  312. ( tp_inst.millisec =
  313. tp_inst._defaults.millisec <
  314. tp_inst._defaults.millisecMin
  315. ? tp_inst._defaults.millisecMin
  316. : tp_inst._defaults.millisec >
  317. tp_inst._defaults.millisecMax
  318. ? tp_inst._defaults.millisecMax
  319. : tp_inst._defaults.millisec ),
  320. ( tp_inst.microsec =
  321. tp_inst._defaults.microsec <
  322. tp_inst._defaults.microsecMin
  323. ? tp_inst._defaults.microsecMin
  324. : tp_inst._defaults.microsec >
  325. tp_inst._defaults.microsecMax
  326. ? tp_inst._defaults.microsecMax
  327. : tp_inst._defaults.microsec ),
  328. ( tp_inst.ampm = '' ),
  329. ( tp_inst.$input = $input ),
  330. tp_inst._defaults.altField &&
  331. ( ( tp_inst.$altInput = $(
  332. tp_inst._defaults.altField
  333. ) ),
  334. tp_inst._defaults.altRedirectFocus === ! 0 &&
  335. tp_inst.$altInput
  336. .css( { cursor: 'pointer' } )
  337. .focus( function () {
  338. $input.trigger( 'focus' );
  339. } ) ),
  340. ( 0 !== tp_inst._defaults.minDate &&
  341. 0 !== tp_inst._defaults.minDateTime ) ||
  342. ( tp_inst._defaults.minDate = new Date() ),
  343. ( 0 !== tp_inst._defaults.maxDate &&
  344. 0 !== tp_inst._defaults.maxDateTime ) ||
  345. ( tp_inst._defaults.maxDate = new Date() ),
  346. void 0 !== tp_inst._defaults.minDate &&
  347. tp_inst._defaults.minDate instanceof Date &&
  348. ( tp_inst._defaults.minDateTime = new Date(
  349. tp_inst._defaults.minDate.getTime()
  350. ) ),
  351. void 0 !== tp_inst._defaults.minDateTime &&
  352. tp_inst._defaults.minDateTime instanceof Date &&
  353. ( tp_inst._defaults.minDate = new Date(
  354. tp_inst._defaults.minDateTime.getTime()
  355. ) ),
  356. void 0 !== tp_inst._defaults.maxDate &&
  357. tp_inst._defaults.maxDate instanceof Date &&
  358. ( tp_inst._defaults.maxDateTime = new Date(
  359. tp_inst._defaults.maxDate.getTime()
  360. ) ),
  361. void 0 !== tp_inst._defaults.maxDateTime &&
  362. tp_inst._defaults.maxDateTime instanceof Date &&
  363. ( tp_inst._defaults.maxDate = new Date(
  364. tp_inst._defaults.maxDateTime.getTime()
  365. ) ),
  366. tp_inst.$input.bind( 'focus', function () {
  367. tp_inst._onFocus();
  368. } ),
  369. tp_inst
  370. );
  371. },
  372. _addTimePicker: function ( e ) {
  373. var t = $.trim(
  374. this.$altInput && this._defaults.altFieldTimeOnly
  375. ? this.$input.val() + ' ' + this.$altInput.val()
  376. : this.$input.val()
  377. );
  378. ( this.timeDefined = this._parseTime( t ) ),
  379. this._limitMinMaxDateTime( e, ! 1 ),
  380. this._injectTimePicker(),
  381. this._afterInject();
  382. },
  383. _parseTime: function ( e, t ) {
  384. if (
  385. ( this.inst ||
  386. ( this.inst = $.datepicker._getInst(
  387. this.$input[ 0 ]
  388. ) ),
  389. t || ! this._defaults.timeOnly )
  390. ) {
  391. var i = $.datepicker._get( this.inst, 'dateFormat' );
  392. try {
  393. var s = parseDateTimeInternal(
  394. i,
  395. this._defaults.timeFormat,
  396. e,
  397. $.datepicker._getFormatConfig( this.inst ),
  398. this._defaults
  399. );
  400. if ( ! s.timeObj ) return ! 1;
  401. $.extend( this, s.timeObj );
  402. } catch ( t ) {
  403. return (
  404. $.timepicker.log(
  405. 'Error parsing the date/time string: ' +
  406. t +
  407. '\ndate/time string = ' +
  408. e +
  409. '\ntimeFormat = ' +
  410. this._defaults.timeFormat +
  411. '\ndateFormat = ' +
  412. i
  413. ),
  414. ! 1
  415. );
  416. }
  417. return ! 0;
  418. }
  419. var n = $.datepicker.parseTime(
  420. this._defaults.timeFormat,
  421. e,
  422. this._defaults
  423. );
  424. return !! n && ( $.extend( this, n ), ! 0 );
  425. },
  426. _afterInject: function () {
  427. var e = this.inst.settings;
  428. $.isFunction( e.afterInject ) && e.afterInject.call( this );
  429. },
  430. _injectTimePicker: function () {
  431. var e = this.inst.dpDiv,
  432. t = this.inst.settings,
  433. i = this,
  434. s = '',
  435. n = '',
  436. a = null,
  437. r = {},
  438. l = {},
  439. o = null,
  440. u = 0,
  441. c = 0;
  442. if (
  443. 0 === e.find( 'div.ui-timepicker-div' ).length &&
  444. t.showTimepicker
  445. ) {
  446. var m = ' ui_tpicker_unit_hide',
  447. d =
  448. '<div class="ui-timepicker-div' +
  449. ( t.isRTL ? ' ui-timepicker-rtl' : '' ) +
  450. ( t.oneLine && 'select' === t.controlType
  451. ? ' ui-timepicker-oneLine'
  452. : '' ) +
  453. '"><dl><dt class="ui_tpicker_time_label' +
  454. ( t.showTime ? '' : m ) +
  455. '">' +
  456. t.timeText +
  457. '</dt><dd class="ui_tpicker_time ' +
  458. ( t.showTime ? '' : m ) +
  459. '"><input class="ui_tpicker_time_input" ' +
  460. ( t.timeInput ? '' : 'disabled' ) +
  461. '/></dd>';
  462. for ( u = 0, c = this.units.length; u < c; u++ ) {
  463. if (
  464. ( ( s = this.units[ u ] ),
  465. ( n =
  466. s.substr( 0, 1 ).toUpperCase() +
  467. s.substr( 1 ) ),
  468. ( a =
  469. null !== t[ 'show' + n ]
  470. ? t[ 'show' + n ]
  471. : this.support[ s ] ),
  472. ( r[ s ] = parseInt(
  473. t[ s + 'Max' ] -
  474. ( ( t[ s + 'Max' ] - t[ s + 'Min' ] ) %
  475. t[ 'step' + n ] ),
  476. 10
  477. ) ),
  478. ( l[ s ] = 0 ),
  479. ( d +=
  480. '<dt class="ui_tpicker_' +
  481. s +
  482. '_label' +
  483. ( a ? '' : m ) +
  484. '">' +
  485. t[ s + 'Text' ] +
  486. '</dt><dd class="ui_tpicker_' +
  487. s +
  488. ( a ? '' : m ) +
  489. '"><div class="ui_tpicker_' +
  490. s +
  491. '_slider' +
  492. ( a ? '' : m ) +
  493. '"></div>' ),
  494. a && t[ s + 'Grid' ] > 0 )
  495. ) {
  496. if (
  497. ( ( d +=
  498. '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>' ),
  499. 'hour' === s )
  500. )
  501. for (
  502. var p = t[ s + 'Min' ];
  503. p <= r[ s ];
  504. p += parseInt( t[ s + 'Grid' ], 10 )
  505. ) {
  506. l[ s ]++;
  507. var h = $.datepicker.formatTime(
  508. this.support.ampm ? 'hht' : 'HH',
  509. { hour: p },
  510. t
  511. );
  512. d +=
  513. '<td data-for="' +
  514. s +
  515. '">' +
  516. h +
  517. '</td>';
  518. }
  519. else
  520. for (
  521. var f = t[ s + 'Min' ];
  522. f <= r[ s ];
  523. f += parseInt( t[ s + 'Grid' ], 10 )
  524. )
  525. l[ s ]++,
  526. ( d +=
  527. '<td data-for="' +
  528. s +
  529. '">' +
  530. ( f < 10 ? '0' : '' ) +
  531. f +
  532. '</td>' );
  533. d += '</tr></table></div>';
  534. }
  535. d += '</dd>';
  536. }
  537. var _ =
  538. null !== t.showTimezone
  539. ? t.showTimezone
  540. : this.support.timezone;
  541. ( d +=
  542. '<dt class="ui_tpicker_timezone_label' +
  543. ( _ ? '' : m ) +
  544. '">' +
  545. t.timezoneText +
  546. '</dt>' ),
  547. ( d +=
  548. '<dd class="ui_tpicker_timezone' +
  549. ( _ ? '' : m ) +
  550. '"></dd>' ),
  551. ( d += '</dl></div>' );
  552. var g = $( d );
  553. for (
  554. t.timeOnly === ! 0 &&
  555. ( g.prepend(
  556. '<div class="ui-widget-header ui-helper-clearfix ui-corner-all"><div class="ui-datepicker-title">' +
  557. t.timeOnlyTitle +
  558. '</div></div>'
  559. ),
  560. e
  561. .find(
  562. '.ui-datepicker-header, .ui-datepicker-calendar'
  563. )
  564. .hide() ),
  565. u = 0,
  566. c = i.units.length;
  567. u < c;
  568. u++
  569. )
  570. ( s = i.units[ u ] ),
  571. ( n =
  572. s.substr( 0, 1 ).toUpperCase() +
  573. s.substr( 1 ) ),
  574. ( a =
  575. null !== t[ 'show' + n ]
  576. ? t[ 'show' + n ]
  577. : this.support[ s ] ),
  578. ( i[ s + '_slider' ] = i.control.create(
  579. i,
  580. g.find( '.ui_tpicker_' + s + '_slider' ),
  581. s,
  582. i[ s ],
  583. t[ s + 'Min' ],
  584. r[ s ],
  585. t[ 'step' + n ]
  586. ) ),
  587. a &&
  588. t[ s + 'Grid' ] > 0 &&
  589. ( ( o =
  590. ( 100 * l[ s ] * t[ s + 'Grid' ] ) /
  591. ( r[ s ] - t[ s + 'Min' ] ) ),
  592. g
  593. .find( '.ui_tpicker_' + s + ' table' )
  594. .css( {
  595. width: o + '%',
  596. marginLeft: t.isRTL
  597. ? '0'
  598. : o / ( -2 * l[ s ] ) + '%',
  599. marginRight: t.isRTL
  600. ? o / ( -2 * l[ s ] ) + '%'
  601. : '0',
  602. borderCollapse: 'collapse',
  603. } )
  604. .find( 'td' )
  605. .click( function ( e ) {
  606. var t = $( this ),
  607. n = t.html(),
  608. a = parseInt(
  609. n.replace( /[^0-9]/g ),
  610. 10
  611. ),
  612. r = n.replace( /[^apm]/gi ),
  613. l = t.data( 'for' );
  614. 'hour' === l &&
  615. ( r.indexOf( 'p' ) !== -1 && a < 12
  616. ? ( a += 12 )
  617. : r.indexOf( 'a' ) !== -1 &&
  618. 12 === a &&
  619. ( a = 0 ) ),
  620. i.control.value(
  621. i,
  622. i[ l + '_slider' ],
  623. s,
  624. a
  625. ),
  626. i._onTimeChange(),
  627. i._onSelectHandler();
  628. } )
  629. .css( {
  630. cursor: 'pointer',
  631. width: 100 / l[ s ] + '%',
  632. textAlign: 'center',
  633. overflow: 'hidden',
  634. } ) );
  635. if (
  636. ( ( this.timezone_select = g
  637. .find( '.ui_tpicker_timezone' )
  638. .append( '<select></select>' )
  639. .find( 'select' ) ),
  640. $.fn.append.apply(
  641. this.timezone_select,
  642. $.map( t.timezoneList, function ( e, t ) {
  643. return $( '<option />' )
  644. .val( 'object' == typeof e ? e.value : e )
  645. .text( 'object' == typeof e ? e.label : e );
  646. } )
  647. ),
  648. 'undefined' != typeof this.timezone &&
  649. null !== this.timezone &&
  650. '' !== this.timezone )
  651. ) {
  652. var M =
  653. new Date(
  654. this.inst.selectedYear,
  655. this.inst.selectedMonth,
  656. this.inst.selectedDay,
  657. 12
  658. ).getTimezoneOffset() * -1;
  659. M === this.timezone
  660. ? selectLocalTimezone( i )
  661. : this.timezone_select.val( this.timezone );
  662. } else
  663. 'undefined' != typeof this.hour &&
  664. null !== this.hour &&
  665. '' !== this.hour
  666. ? this.timezone_select.val( t.timezone )
  667. : selectLocalTimezone( i );
  668. this.timezone_select.change( function () {
  669. i._onTimeChange(),
  670. i._onSelectHandler(),
  671. i._afterInject();
  672. } );
  673. var v = e.find( '.ui-datepicker-buttonpane' );
  674. if (
  675. ( v.length ? v.before( g ) : e.append( g ),
  676. ( this.$timeObj = g.find( '.ui_tpicker_time_input' ) ),
  677. this.$timeObj.change( function () {
  678. var e = i.inst.settings.timeFormat,
  679. t = $.datepicker.parseTime( e, this.value ),
  680. s = new Date();
  681. t
  682. ? ( s.setHours( t.hour ),
  683. s.setMinutes( t.minute ),
  684. s.setSeconds( t.second ),
  685. $.datepicker._setTime( i.inst, s ) )
  686. : ( ( this.value = i.formattedTime ),
  687. this.blur() );
  688. } ),
  689. null !== this.inst )
  690. ) {
  691. var k = this.timeDefined;
  692. this._onTimeChange(), ( this.timeDefined = k );
  693. }
  694. if ( this._defaults.addSliderAccess ) {
  695. var T = this._defaults.sliderAccessArgs,
  696. D = this._defaults.isRTL;
  697. ( T.isRTL = D ),
  698. setTimeout( function () {
  699. if (
  700. 0 === g.find( '.ui-slider-access' ).length
  701. ) {
  702. g.find( '.ui-slider:visible' ).sliderAccess(
  703. T
  704. );
  705. var e = g
  706. .find( '.ui-slider-access:eq(0)' )
  707. .outerWidth( ! 0 );
  708. e &&
  709. g
  710. .find( 'table:visible' )
  711. .each( function () {
  712. var t = $( this ),
  713. i = t.outerWidth(),
  714. s = t
  715. .css(
  716. D
  717. ? 'marginRight'
  718. : 'marginLeft'
  719. )
  720. .toString()
  721. .replace( '%', '' ),
  722. n = i - e,
  723. a = ( s * n ) / i + '%',
  724. r = {
  725. width: n,
  726. marginRight: 0,
  727. marginLeft: 0,
  728. };
  729. ( r[
  730. D
  731. ? 'marginRight'
  732. : 'marginLeft'
  733. ] = a ),
  734. t.css( r );
  735. } );
  736. }
  737. }, 10 );
  738. }
  739. i._limitMinMaxDateTime( this.inst, ! 0 );
  740. }
  741. },
  742. _limitMinMaxDateTime: function ( e, t ) {
  743. var i = this._defaults,
  744. s = new Date(
  745. e.selectedYear,
  746. e.selectedMonth,
  747. e.selectedDay
  748. );
  749. if ( this._defaults.showTimepicker ) {
  750. if (
  751. null !== $.datepicker._get( e, 'minDateTime' ) &&
  752. void 0 !== $.datepicker._get( e, 'minDateTime' ) &&
  753. s
  754. ) {
  755. var n = $.datepicker._get( e, 'minDateTime' ),
  756. a = new Date(
  757. n.getFullYear(),
  758. n.getMonth(),
  759. n.getDate(),
  760. 0,
  761. 0,
  762. 0,
  763. 0
  764. );
  765. ( null !== this.hourMinOriginal &&
  766. null !== this.minuteMinOriginal &&
  767. null !== this.secondMinOriginal &&
  768. null !== this.millisecMinOriginal &&
  769. null !== this.microsecMinOriginal ) ||
  770. ( ( this.hourMinOriginal = i.hourMin ),
  771. ( this.minuteMinOriginal = i.minuteMin ),
  772. ( this.secondMinOriginal = i.secondMin ),
  773. ( this.millisecMinOriginal = i.millisecMin ),
  774. ( this.microsecMinOriginal = i.microsecMin ) ),
  775. e.settings.timeOnly || a.getTime() === s.getTime()
  776. ? ( ( this._defaults.hourMin = n.getHours() ),
  777. this.hour <= this._defaults.hourMin
  778. ? ( ( this.hour = this._defaults.hourMin ),
  779. ( this._defaults.minuteMin = n.getMinutes() ),
  780. this.minute <=
  781. this._defaults.minuteMin
  782. ? ( ( this.minute = this._defaults.minuteMin ),
  783. ( this._defaults.secondMin = n.getSeconds() ),
  784. this.second <=
  785. this._defaults.secondMin
  786. ? ( ( this.second = this._defaults.secondMin ),
  787. ( this._defaults.millisecMin = n.getMilliseconds() ),
  788. this.millisec <=
  789. this._defaults
  790. .millisecMin
  791. ? ( ( this.millisec = this._defaults.millisecMin ),
  792. ( this._defaults.microsecMin = n.getMicroseconds() ) )
  793. : ( this
  794. .microsec <
  795. this
  796. ._defaults
  797. .microsecMin &&
  798. ( this.microsec = this._defaults.microsecMin ),
  799. ( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
  800. : ( ( this._defaults.millisecMin = this.millisecMinOriginal ),
  801. ( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
  802. : ( ( this._defaults.secondMin = this.secondMinOriginal ),
  803. ( this._defaults.millisecMin = this.millisecMinOriginal ),
  804. ( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
  805. : ( ( this._defaults.minuteMin = this.minuteMinOriginal ),
  806. ( this._defaults.secondMin = this.secondMinOriginal ),
  807. ( this._defaults.millisecMin = this.millisecMinOriginal ),
  808. ( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
  809. : ( ( this._defaults.hourMin = this.hourMinOriginal ),
  810. ( this._defaults.minuteMin = this.minuteMinOriginal ),
  811. ( this._defaults.secondMin = this.secondMinOriginal ),
  812. ( this._defaults.millisecMin = this.millisecMinOriginal ),
  813. ( this._defaults.microsecMin = this.microsecMinOriginal ) );
  814. }
  815. if (
  816. null !== $.datepicker._get( e, 'maxDateTime' ) &&
  817. void 0 !== $.datepicker._get( e, 'maxDateTime' ) &&
  818. s
  819. ) {
  820. var r = $.datepicker._get( e, 'maxDateTime' ),
  821. l = new Date(
  822. r.getFullYear(),
  823. r.getMonth(),
  824. r.getDate(),
  825. 0,
  826. 0,
  827. 0,
  828. 0
  829. );
  830. ( null !== this.hourMaxOriginal &&
  831. null !== this.minuteMaxOriginal &&
  832. null !== this.secondMaxOriginal &&
  833. null !== this.millisecMaxOriginal ) ||
  834. ( ( this.hourMaxOriginal = i.hourMax ),
  835. ( this.minuteMaxOriginal = i.minuteMax ),
  836. ( this.secondMaxOriginal = i.secondMax ),
  837. ( this.millisecMaxOriginal = i.millisecMax ),
  838. ( this.microsecMaxOriginal = i.microsecMax ) ),
  839. e.settings.timeOnly || l.getTime() === s.getTime()
  840. ? ( ( this._defaults.hourMax = r.getHours() ),
  841. this.hour >= this._defaults.hourMax
  842. ? ( ( this.hour = this._defaults.hourMax ),
  843. ( this._defaults.minuteMax = r.getMinutes() ),
  844. this.minute >=
  845. this._defaults.minuteMax
  846. ? ( ( this.minute = this._defaults.minuteMax ),
  847. ( this._defaults.secondMax = r.getSeconds() ),
  848. this.second >=
  849. this._defaults.secondMax
  850. ? ( ( this.second = this._defaults.secondMax ),
  851. ( this._defaults.millisecMax = r.getMilliseconds() ),
  852. this.millisec >=
  853. this._defaults
  854. .millisecMax
  855. ? ( ( this.millisec = this._defaults.millisecMax ),
  856. ( this._defaults.microsecMax = r.getMicroseconds() ) )
  857. : ( this
  858. .microsec >
  859. this
  860. ._defaults
  861. .microsecMax &&
  862. ( this.microsec = this._defaults.microsecMax ),
  863. ( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
  864. : ( ( this._defaults.millisecMax = this.millisecMaxOriginal ),
  865. ( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
  866. : ( ( this._defaults.secondMax = this.secondMaxOriginal ),
  867. ( this._defaults.millisecMax = this.millisecMaxOriginal ),
  868. ( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
  869. : ( ( this._defaults.minuteMax = this.minuteMaxOriginal ),
  870. ( this._defaults.secondMax = this.secondMaxOriginal ),
  871. ( this._defaults.millisecMax = this.millisecMaxOriginal ),
  872. ( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
  873. : ( ( this._defaults.hourMax = this.hourMaxOriginal ),
  874. ( this._defaults.minuteMax = this.minuteMaxOriginal ),
  875. ( this._defaults.secondMax = this.secondMaxOriginal ),
  876. ( this._defaults.millisecMax = this.millisecMaxOriginal ),
  877. ( this._defaults.microsecMax = this.microsecMaxOriginal ) );
  878. }
  879. if ( null !== e.settings.minTime ) {
  880. var o = new Date( '01/01/1970 ' + e.settings.minTime );
  881. this.hour < o.getHours()
  882. ? ( ( this.hour = this._defaults.hourMin = o.getHours() ),
  883. ( this.minute = this._defaults.minuteMin = o.getMinutes() ) )
  884. : this.hour === o.getHours() &&
  885. this.minute < o.getMinutes()
  886. ? ( this.minute = this._defaults.minuteMin = o.getMinutes() )
  887. : this._defaults.hourMin < o.getHours()
  888. ? ( ( this._defaults.hourMin = o.getHours() ),
  889. ( this._defaults.minuteMin = o.getMinutes() ) )
  890. : ( this._defaults.hourMin === o.getHours() ) ===
  891. this.hour &&
  892. this._defaults.minuteMin < o.getMinutes()
  893. ? ( this._defaults.minuteMin = o.getMinutes() )
  894. : ( this._defaults.minuteMin = 0 );
  895. }
  896. if ( null !== e.settings.maxTime ) {
  897. var u = new Date( '01/01/1970 ' + e.settings.maxTime );
  898. this.hour > u.getHours()
  899. ? ( ( this.hour = this._defaults.hourMax = u.getHours() ),
  900. ( this.minute = this._defaults.minuteMax = u.getMinutes() ) )
  901. : this.hour === u.getHours() &&
  902. this.minute > u.getMinutes()
  903. ? ( this.minute = this._defaults.minuteMax = u.getMinutes() )
  904. : this._defaults.hourMax > u.getHours()
  905. ? ( ( this._defaults.hourMax = u.getHours() ),
  906. ( this._defaults.minuteMax = u.getMinutes() ) )
  907. : ( this._defaults.hourMax === u.getHours() ) ===
  908. this.hour &&
  909. this._defaults.minuteMax > u.getMinutes()
  910. ? ( this._defaults.minuteMax = u.getMinutes() )
  911. : ( this._defaults.minuteMax = 59 );
  912. }
  913. if ( void 0 !== t && t === ! 0 ) {
  914. var c = parseInt(
  915. this._defaults.hourMax -
  916. ( ( this._defaults.hourMax -
  917. this._defaults.hourMin ) %
  918. this._defaults.stepHour ),
  919. 10
  920. ),
  921. m = parseInt(
  922. this._defaults.minuteMax -
  923. ( ( this._defaults.minuteMax -
  924. this._defaults.minuteMin ) %
  925. this._defaults.stepMinute ),
  926. 10
  927. ),
  928. d = parseInt(
  929. this._defaults.secondMax -
  930. ( ( this._defaults.secondMax -
  931. this._defaults.secondMin ) %
  932. this._defaults.stepSecond ),
  933. 10
  934. ),
  935. p = parseInt(
  936. this._defaults.millisecMax -
  937. ( ( this._defaults.millisecMax -
  938. this._defaults.millisecMin ) %
  939. this._defaults.stepMillisec ),
  940. 10
  941. ),
  942. h = parseInt(
  943. this._defaults.microsecMax -
  944. ( ( this._defaults.microsecMax -
  945. this._defaults.microsecMin ) %
  946. this._defaults.stepMicrosec ),
  947. 10
  948. );
  949. this.hour_slider &&
  950. ( this.control.options(
  951. this,
  952. this.hour_slider,
  953. 'hour',
  954. {
  955. min: this._defaults.hourMin,
  956. max: c,
  957. step: this._defaults.stepHour,
  958. }
  959. ),
  960. this.control.value(
  961. this,
  962. this.hour_slider,
  963. 'hour',
  964. this.hour -
  965. ( this.hour % this._defaults.stepHour )
  966. ) ),
  967. this.minute_slider &&
  968. ( this.control.options(
  969. this,
  970. this.minute_slider,
  971. 'minute',
  972. {
  973. min: this._defaults.minuteMin,
  974. max: m,
  975. step: this._defaults.stepMinute,
  976. }
  977. ),
  978. this.control.value(
  979. this,
  980. this.minute_slider,
  981. 'minute',
  982. this.minute -
  983. ( this.minute %
  984. this._defaults.stepMinute )
  985. ) ),
  986. this.second_slider &&
  987. ( this.control.options(
  988. this,
  989. this.second_slider,
  990. 'second',
  991. {
  992. min: this._defaults.secondMin,
  993. max: d,
  994. step: this._defaults.stepSecond,
  995. }
  996. ),
  997. this.control.value(
  998. this,
  999. this.second_slider,
  1000. 'second',
  1001. this.second -
  1002. ( this.second %
  1003. this._defaults.stepSecond )
  1004. ) ),
  1005. this.millisec_slider &&
  1006. ( this.control.options(
  1007. this,
  1008. this.millisec_slider,
  1009. 'millisec',
  1010. {
  1011. min: this._defaults.millisecMin,
  1012. max: p,
  1013. step: this._defaults.stepMillisec,
  1014. }
  1015. ),
  1016. this.control.value(
  1017. this,
  1018. this.millisec_slider,
  1019. 'millisec',
  1020. this.millisec -
  1021. ( this.millisec %
  1022. this._defaults.stepMillisec )
  1023. ) ),
  1024. this.microsec_slider &&
  1025. ( this.control.options(
  1026. this,
  1027. this.microsec_slider,
  1028. 'microsec',
  1029. {
  1030. min: this._defaults.microsecMin,
  1031. max: h,
  1032. step: this._defaults.stepMicrosec,
  1033. }
  1034. ),
  1035. this.control.value(
  1036. this,
  1037. this.microsec_slider,
  1038. 'microsec',
  1039. this.microsec -
  1040. ( this.microsec %
  1041. this._defaults.stepMicrosec )
  1042. ) );
  1043. }
  1044. }
  1045. },
  1046. _onTimeChange: function () {
  1047. if ( this._defaults.showTimepicker ) {
  1048. var e =
  1049. !! this.hour_slider &&
  1050. this.control.value(
  1051. this,
  1052. this.hour_slider,
  1053. 'hour'
  1054. ),
  1055. t =
  1056. !! this.minute_slider &&
  1057. this.control.value(
  1058. this,
  1059. this.minute_slider,
  1060. 'minute'
  1061. ),
  1062. i =
  1063. !! this.second_slider &&
  1064. this.control.value(
  1065. this,
  1066. this.second_slider,
  1067. 'second'
  1068. ),
  1069. s =
  1070. !! this.millisec_slider &&
  1071. this.control.value(
  1072. this,
  1073. this.millisec_slider,
  1074. 'millisec'
  1075. ),
  1076. n =
  1077. !! this.microsec_slider &&
  1078. this.control.value(
  1079. this,
  1080. this.microsec_slider,
  1081. 'microsec'
  1082. ),
  1083. a =
  1084. !! this.timezone_select &&
  1085. this.timezone_select.val(),
  1086. r = this._defaults,
  1087. l = r.pickerTimeFormat || r.timeFormat,
  1088. o = r.pickerTimeSuffix || r.timeSuffix;
  1089. 'object' == typeof e && ( e = ! 1 ),
  1090. 'object' == typeof t && ( t = ! 1 ),
  1091. 'object' == typeof i && ( i = ! 1 ),
  1092. 'object' == typeof s && ( s = ! 1 ),
  1093. 'object' == typeof n && ( n = ! 1 ),
  1094. 'object' == typeof a && ( a = ! 1 ),
  1095. e !== ! 1 && ( e = parseInt( e, 10 ) ),
  1096. t !== ! 1 && ( t = parseInt( t, 10 ) ),
  1097. i !== ! 1 && ( i = parseInt( i, 10 ) ),
  1098. s !== ! 1 && ( s = parseInt( s, 10 ) ),
  1099. n !== ! 1 && ( n = parseInt( n, 10 ) ),
  1100. a !== ! 1 && ( a = a.toString() );
  1101. var u = r[ e < 12 ? 'amNames' : 'pmNames' ][ 0 ],
  1102. c =
  1103. e !== parseInt( this.hour, 10 ) ||
  1104. t !== parseInt( this.minute, 10 ) ||
  1105. i !== parseInt( this.second, 10 ) ||
  1106. s !== parseInt( this.millisec, 10 ) ||
  1107. n !== parseInt( this.microsec, 10 ) ||
  1108. ( this.ampm.length > 0 &&
  1109. e < 12 !=
  1110. ( $.inArray(
  1111. this.ampm.toUpperCase(),
  1112. this.amNames
  1113. ) !==
  1114. -1 ) ) ||
  1115. ( null !== this.timezone &&
  1116. a !== this.timezone.toString() );
  1117. c &&
  1118. ( e !== ! 1 && ( this.hour = e ),
  1119. t !== ! 1 && ( this.minute = t ),
  1120. i !== ! 1 && ( this.second = i ),
  1121. s !== ! 1 && ( this.millisec = s ),
  1122. n !== ! 1 && ( this.microsec = n ),
  1123. a !== ! 1 && ( this.timezone = a ),
  1124. this.inst ||
  1125. ( this.inst = $.datepicker._getInst(
  1126. this.$input[ 0 ]
  1127. ) ),
  1128. this._limitMinMaxDateTime( this.inst, ! 0 ) ),
  1129. this.support.ampm && ( this.ampm = u ),
  1130. ( this.formattedTime = $.datepicker.formatTime(
  1131. r.timeFormat,
  1132. this,
  1133. r
  1134. ) ),
  1135. this.$timeObj &&
  1136. ( l === r.timeFormat
  1137. ? this.$timeObj.val( this.formattedTime + o )
  1138. : this.$timeObj.val(
  1139. $.datepicker.formatTime( l, this, r ) +
  1140. o
  1141. ) ),
  1142. ( this.timeDefined = ! 0 ),
  1143. c && this._updateDateTime();
  1144. }
  1145. },
  1146. _onSelectHandler: function () {
  1147. var e = this._defaults.onSelect || this.inst.settings.onSelect,
  1148. t = this.$input ? this.$input[ 0 ] : null;
  1149. e && t && e.apply( t, [ this.formattedDateTime, this ] );
  1150. },
  1151. _updateDateTime: function ( e ) {
  1152. e = this.inst || e;
  1153. var t =
  1154. e.currentYear > 0
  1155. ? new Date(
  1156. e.currentYear,
  1157. e.currentMonth,
  1158. e.currentDay
  1159. )
  1160. : new Date(
  1161. e.selectedYear,
  1162. e.selectedMonth,
  1163. e.selectedDay
  1164. ),
  1165. i = $.datepicker._daylightSavingAdjust( t ),
  1166. s = $.datepicker._get( e, 'dateFormat' ),
  1167. n = $.datepicker._getFormatConfig( e ),
  1168. a = null !== i && this.timeDefined;
  1169. this.formattedDate = $.datepicker.formatDate(
  1170. s,
  1171. null === i ? new Date() : i,
  1172. n
  1173. );
  1174. var r = this.formattedDate;
  1175. if (
  1176. ( '' === e.lastVal &&
  1177. ( ( e.currentYear = e.selectedYear ),
  1178. ( e.currentMonth = e.selectedMonth ),
  1179. ( e.currentDay = e.selectedDay ) ),
  1180. this._defaults.timeOnly === ! 0 &&
  1181. this._defaults.timeOnlyShowDate === ! 1
  1182. ? ( r = this.formattedTime )
  1183. : ( ( this._defaults.timeOnly !== ! 0 &&
  1184. ( this._defaults.alwaysSetTime || a ) ) ||
  1185. ( this._defaults.timeOnly === ! 0 &&
  1186. this._defaults.timeOnlyShowDate ===
  1187. ! 0 ) ) &&
  1188. ( r +=
  1189. this._defaults.separator +
  1190. this.formattedTime +
  1191. this._defaults.timeSuffix ),
  1192. ( this.formattedDateTime = r ),
  1193. this._defaults.showTimepicker )
  1194. )
  1195. if (
  1196. this.$altInput &&
  1197. this._defaults.timeOnly === ! 1 &&
  1198. this._defaults.altFieldTimeOnly === ! 0
  1199. )
  1200. this.$altInput.val( this.formattedTime ),
  1201. this.$input.val( this.formattedDate );
  1202. else if ( this.$altInput ) {
  1203. this.$input.val( r );
  1204. var l = '',
  1205. o =
  1206. null !== this._defaults.altSeparator
  1207. ? this._defaults.altSeparator
  1208. : this._defaults.separator,
  1209. u =
  1210. null !== this._defaults.altTimeSuffix
  1211. ? this._defaults.altTimeSuffix
  1212. : this._defaults.timeSuffix;
  1213. this._defaults.timeOnly ||
  1214. ( ( l = this._defaults.altFormat
  1215. ? $.datepicker.formatDate(
  1216. this._defaults.altFormat,
  1217. null === i ? new Date() : i,
  1218. n
  1219. )
  1220. : this.formattedDate ),
  1221. l && ( l += o ) ),
  1222. ( l +=
  1223. null !== this._defaults.altTimeFormat
  1224. ? $.datepicker.formatTime(
  1225. this._defaults.altTimeFormat,
  1226. this,
  1227. this._defaults
  1228. ) + u
  1229. : this.formattedTime + u ),
  1230. this.$altInput.val( l );
  1231. } else this.$input.val( r );
  1232. else this.$input.val( this.formattedDate );
  1233. this.$input.trigger( 'change' );
  1234. },
  1235. _onFocus: function () {
  1236. if ( ! this.$input.val() && this._defaults.defaultValue ) {
  1237. this.$input.val( this._defaults.defaultValue );
  1238. var e = $.datepicker._getInst( this.$input.get( 0 ) ),
  1239. t = $.datepicker._get( e, 'timepicker' );
  1240. if (
  1241. t &&
  1242. t._defaults.timeOnly &&
  1243. e.input.val() !== e.lastVal
  1244. )
  1245. try {
  1246. $.datepicker._updateDatepicker( e );
  1247. } catch ( e ) {
  1248. $.timepicker.log( e );
  1249. }
  1250. }
  1251. },
  1252. _controls: {
  1253. slider: {
  1254. create: function ( e, t, i, s, n, a, r ) {
  1255. var l = e._defaults.isRTL;
  1256. return t.prop( 'slide', null ).slider( {
  1257. orientation: 'horizontal',
  1258. value: l ? s * -1 : s,
  1259. min: l ? a * -1 : n,
  1260. max: l ? n * -1 : a,
  1261. step: r,
  1262. slide: function ( t, s ) {
  1263. e.control.value(
  1264. e,
  1265. $( this ),
  1266. i,
  1267. l ? s.value * -1 : s.value
  1268. ),
  1269. e._onTimeChange();
  1270. },
  1271. stop: function ( t, i ) {
  1272. e._onSelectHandler();
  1273. },
  1274. } );
  1275. },
  1276. options: function ( e, t, i, s, n ) {
  1277. if ( e._defaults.isRTL ) {
  1278. if ( 'string' == typeof s )
  1279. return 'min' === s || 'max' === s
  1280. ? void 0 !== n
  1281. ? t.slider( s, n * -1 )
  1282. : Math.abs( t.slider( s ) )
  1283. : t.slider( s );
  1284. var a = s.min,
  1285. r = s.max;
  1286. return (
  1287. ( s.min = s.max = null ),
  1288. void 0 !== a && ( s.max = a * -1 ),
  1289. void 0 !== r && ( s.min = r * -1 ),
  1290. t.slider( s )
  1291. );
  1292. }
  1293. return 'string' == typeof s && void 0 !== n
  1294. ? t.slider( s, n )
  1295. : t.slider( s );
  1296. },
  1297. value: function ( e, t, i, s ) {
  1298. return e._defaults.isRTL
  1299. ? void 0 !== s
  1300. ? t.slider( 'value', s * -1 )
  1301. : Math.abs( t.slider( 'value' ) )
  1302. : void 0 !== s
  1303. ? t.slider( 'value', s )
  1304. : t.slider( 'value' );
  1305. },
  1306. },
  1307. select: {
  1308. create: function ( e, t, i, s, n, a, r ) {
  1309. for (
  1310. var l =
  1311. '<select class="ui-timepicker-select ui-state-default ui-corner-all" data-unit="' +
  1312. i +
  1313. '" data-min="' +
  1314. n +
  1315. '" data-max="' +
  1316. a +
  1317. '" data-step="' +
  1318. r +
  1319. '">',
  1320. o =
  1321. e._defaults.pickerTimeFormat ||
  1322. e._defaults.timeFormat,
  1323. u = n;
  1324. u <= a;
  1325. u += r
  1326. )
  1327. ( l +=
  1328. '<option value="' +
  1329. u +
  1330. '"' +
  1331. ( u === s ? ' selected' : '' ) +
  1332. '>' ),
  1333. ( l +=
  1334. 'hour' === i
  1335. ? $.datepicker.formatTime(
  1336. $.trim(
  1337. o.replace( /[^ht ]/gi, '' )
  1338. ),
  1339. { hour: u },
  1340. e._defaults
  1341. )
  1342. : 'millisec' === i ||
  1343. 'microsec' === i ||
  1344. u >= 10
  1345. ? u
  1346. : '0' + u.toString() ),
  1347. ( l += '</option>' );
  1348. return (
  1349. ( l += '</select>' ),
  1350. t.children( 'select' ).remove(),
  1351. $( l )
  1352. .appendTo( t )
  1353. .change( function ( t ) {
  1354. e._onTimeChange(),
  1355. e._onSelectHandler(),
  1356. e._afterInject();
  1357. } ),
  1358. t
  1359. );
  1360. },
  1361. options: function ( e, t, i, s, n ) {
  1362. var a = {},
  1363. r = t.children( 'select' );
  1364. if ( 'string' == typeof s ) {
  1365. if ( void 0 === n ) return r.data( s );
  1366. a[ s ] = n;
  1367. } else a = s;
  1368. return e.control.create(
  1369. e,
  1370. t,
  1371. r.data( 'unit' ),
  1372. r.val(),
  1373. a.min >= 0 ? a.min : r.data( 'min' ),
  1374. a.max || r.data( 'max' ),
  1375. a.step || r.data( 'step' )
  1376. );
  1377. },
  1378. value: function ( e, t, i, s ) {
  1379. var n = t.children( 'select' );
  1380. return void 0 !== s ? n.val( s ) : n.val();
  1381. },
  1382. },
  1383. },
  1384. } ),
  1385. $.fn.extend( {
  1386. timepicker: function ( e ) {
  1387. e = e || {};
  1388. var t = Array.prototype.slice.call( arguments );
  1389. return (
  1390. 'object' == typeof e &&
  1391. ( t[ 0 ] = $.extend( e, { timeOnly: ! 0 } ) ),
  1392. $( this ).each( function () {
  1393. $.fn.datetimepicker.apply( $( this ), t );
  1394. } )
  1395. );
  1396. },
  1397. datetimepicker: function ( e ) {
  1398. e = e || {};
  1399. var t = arguments;
  1400. return 'string' == typeof e
  1401. ? 'getDate' === e ||
  1402. ( 'option' === e &&
  1403. 2 === t.length &&
  1404. 'string' == typeof t[ 1 ] )
  1405. ? $.fn.datepicker.apply( $( this[ 0 ] ), t )
  1406. : this.each( function () {
  1407. var e = $( this );
  1408. e.datepicker.apply( e, t );
  1409. } )
  1410. : this.each( function () {
  1411. var t = $( this );
  1412. t.datepicker(
  1413. $.timepicker._newInst( t, e )._defaults
  1414. );
  1415. } );
  1416. },
  1417. } ),
  1418. ( $.datepicker.parseDateTime = function ( e, t, i, s, n ) {
  1419. var a = parseDateTimeInternal( e, t, i, s, n );
  1420. if ( a.timeObj ) {
  1421. var r = a.timeObj;
  1422. a.date.setHours( r.hour, r.minute, r.second, r.millisec ),
  1423. a.date.setMicroseconds( r.microsec );
  1424. }
  1425. return a.date;
  1426. } ),
  1427. ( $.datepicker.parseTime = function ( e, t, i ) {
  1428. var s = extendRemove(
  1429. extendRemove( {}, $.timepicker._defaults ),
  1430. i || {}
  1431. ),
  1432. n = e.replace( /\'.*?\'/g, '' ).indexOf( 'Z' ) !== -1,
  1433. a = function ( e, t, i ) {
  1434. var s = function ( e, t ) {
  1435. var i = [];
  1436. return (
  1437. e && $.merge( i, e ),
  1438. t && $.merge( i, t ),
  1439. ( i = $.map( i, function ( e ) {
  1440. return e.replace(
  1441. /[.*+?|()\[\]{}\\]/g,
  1442. '\\$&'
  1443. );
  1444. } ) ),
  1445. '(' + i.join( '|' ) + ')?'
  1446. );
  1447. },
  1448. n = function ( e ) {
  1449. var t = e
  1450. .toLowerCase()
  1451. .match(
  1452. /(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g
  1453. ),
  1454. i = {
  1455. h: -1,
  1456. m: -1,
  1457. s: -1,
  1458. l: -1,
  1459. c: -1,
  1460. t: -1,
  1461. z: -1,
  1462. };
  1463. if ( t )
  1464. for ( var s = 0; s < t.length; s++ )
  1465. i[ t[ s ].toString().charAt( 0 ) ] ===
  1466. -1 &&
  1467. ( i[
  1468. t[ s ].toString().charAt( 0 )
  1469. ] = s + 1 );
  1470. return i;
  1471. },
  1472. a =
  1473. '^' +
  1474. e
  1475. .toString()
  1476. .replace(
  1477. /([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
  1478. function ( e ) {
  1479. var t = e.length;
  1480. switch (
  1481. e.charAt( 0 ).toLowerCase()
  1482. ) {
  1483. case 'h':
  1484. return 1 === t
  1485. ? '(\\d?\\d)'
  1486. : '(\\d{' + t + '})';
  1487. case 'm':
  1488. return 1 === t
  1489. ? '(\\d?\\d)'
  1490. : '(\\d{' + t + '})';
  1491. case 's':
  1492. return 1 === t
  1493. ? '(\\d?\\d)'
  1494. : '(\\d{' + t + '})';
  1495. case 'l':
  1496. return '(\\d?\\d?\\d)';
  1497. case 'c':
  1498. return '(\\d?\\d?\\d)';
  1499. case 'z':
  1500. return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
  1501. case 't':
  1502. return s(
  1503. i.amNames,
  1504. i.pmNames
  1505. );
  1506. default:
  1507. return (
  1508. '(' +
  1509. e
  1510. .replace(
  1511. /\'/g,
  1512. ''
  1513. )
  1514. .replace(
  1515. /(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g,
  1516. function ( e ) {
  1517. return (
  1518. '\\' + e
  1519. );
  1520. }
  1521. ) +
  1522. ')?'
  1523. );
  1524. }
  1525. }
  1526. )
  1527. .replace( /\s/g, '\\s?' ) +
  1528. i.timeSuffix +
  1529. '$',
  1530. r = n( e ),
  1531. l = '',
  1532. o;
  1533. o = t.match( new RegExp( a, 'i' ) );
  1534. var u = {
  1535. hour: 0,
  1536. minute: 0,
  1537. second: 0,
  1538. millisec: 0,
  1539. microsec: 0,
  1540. };
  1541. return (
  1542. !! o &&
  1543. ( r.t !== -1 &&
  1544. ( void 0 === o[ r.t ] || 0 === o[ r.t ].length
  1545. ? ( ( l = '' ), ( u.ampm = '' ) )
  1546. : ( ( l =
  1547. $.inArray(
  1548. o[ r.t ].toUpperCase(),
  1549. $.map(
  1550. i.amNames,
  1551. function ( e, t ) {
  1552. return e.toUpperCase();
  1553. }
  1554. )
  1555. ) !== -1
  1556. ? 'AM'
  1557. : 'PM' ),
  1558. ( u.ampm =
  1559. i[
  1560. 'AM' === l
  1561. ? 'amNames'
  1562. : 'pmNames'
  1563. ][ 0 ] ) ) ),
  1564. r.h !== -1 &&
  1565. ( 'AM' === l && '12' === o[ r.h ]
  1566. ? ( u.hour = 0 )
  1567. : 'PM' === l && '12' !== o[ r.h ]
  1568. ? ( u.hour = parseInt( o[ r.h ], 10 ) + 12 )
  1569. : ( u.hour = Number( o[ r.h ] ) ) ),
  1570. r.m !== -1 && ( u.minute = Number( o[ r.m ] ) ),
  1571. r.s !== -1 && ( u.second = Number( o[ r.s ] ) ),
  1572. r.l !== -1 && ( u.millisec = Number( o[ r.l ] ) ),
  1573. r.c !== -1 && ( u.microsec = Number( o[ r.c ] ) ),
  1574. r.z !== -1 &&
  1575. void 0 !== o[ r.z ] &&
  1576. ( u.timezone = $.timepicker.timezoneOffsetNumber(
  1577. o[ r.z ]
  1578. ) ),
  1579. u )
  1580. );
  1581. },
  1582. r = function ( e, t, i ) {
  1583. try {
  1584. var s = new Date( '2012-01-01 ' + t );
  1585. if (
  1586. isNaN( s.getTime() ) &&
  1587. ( ( s = new Date( '2012-01-01T' + t ) ),
  1588. isNaN( s.getTime() ) &&
  1589. ( ( s = new Date( '01/01/2012 ' + t ) ),
  1590. isNaN( s.getTime() ) ) )
  1591. )
  1592. throw (
  1593. 'Unable to parse time with native Date: ' +
  1594. t
  1595. );
  1596. return {
  1597. hour: s.getHours(),
  1598. minute: s.getMinutes(),
  1599. second: s.getSeconds(),
  1600. millisec: s.getMilliseconds(),
  1601. microsec: s.getMicroseconds(),
  1602. timezone: s.getTimezoneOffset() * -1,
  1603. };
  1604. } catch ( s ) {
  1605. try {
  1606. return a( e, t, i );
  1607. } catch ( i ) {
  1608. $.timepicker.log(
  1609. 'Unable to parse \ntimeString: ' +
  1610. t +
  1611. '\ntimeFormat: ' +
  1612. e
  1613. );
  1614. }
  1615. }
  1616. return ! 1;
  1617. };
  1618. return 'function' == typeof s.parse
  1619. ? s.parse( e, t, s )
  1620. : 'loose' === s.parse
  1621. ? r( e, t, s )
  1622. : a( e, t, s );
  1623. } ),
  1624. ( $.datepicker.formatTime = function ( e, t, i ) {
  1625. ( i = i || {} ),
  1626. ( i = $.extend( {}, $.timepicker._defaults, i ) ),
  1627. ( t = $.extend(
  1628. {
  1629. hour: 0,
  1630. minute: 0,
  1631. second: 0,
  1632. millisec: 0,
  1633. microsec: 0,
  1634. timezone: null,
  1635. },
  1636. t
  1637. ) );
  1638. var s = e,
  1639. n = i.amNames[ 0 ],
  1640. a = parseInt( t.hour, 10 );
  1641. return (
  1642. a > 11 && ( n = i.pmNames[ 0 ] ),
  1643. ( s = s.replace(
  1644. /(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
  1645. function ( e ) {
  1646. switch ( e ) {
  1647. case 'HH':
  1648. return ( '0' + a ).slice( -2 );
  1649. case 'H':
  1650. return a;
  1651. case 'hh':
  1652. return ( '0' + convert24to12( a ) ).slice(
  1653. -2
  1654. );
  1655. case 'h':
  1656. return convert24to12( a );
  1657. case 'mm':
  1658. return ( '0' + t.minute ).slice( -2 );
  1659. case 'm':
  1660. return t.minute;
  1661. case 'ss':
  1662. return ( '0' + t.second ).slice( -2 );
  1663. case 's':
  1664. return t.second;
  1665. case 'l':
  1666. return ( '00' + t.millisec ).slice( -3 );
  1667. case 'c':
  1668. return ( '00' + t.microsec ).slice( -3 );
  1669. case 'z':
  1670. return $.timepicker.timezoneOffsetString(
  1671. null === t.timezone
  1672. ? i.timezone
  1673. : t.timezone,
  1674. ! 1
  1675. );
  1676. case 'Z':
  1677. return $.timepicker.timezoneOffsetString(
  1678. null === t.timezone
  1679. ? i.timezone
  1680. : t.timezone,
  1681. ! 0
  1682. );
  1683. case 'T':
  1684. return n.charAt( 0 ).toUpperCase();
  1685. case 'TT':
  1686. return n.toUpperCase();
  1687. case 't':
  1688. return n.charAt( 0 ).toLowerCase();
  1689. case 'tt':
  1690. return n.toLowerCase();
  1691. default:
  1692. return e.replace( /'/g, '' );
  1693. }
  1694. }
  1695. ) )
  1696. );
  1697. } ),
  1698. ( $.datepicker._base_selectDate = $.datepicker._selectDate ),
  1699. ( $.datepicker._selectDate = function ( e, t ) {
  1700. var i = this._getInst( $( e )[ 0 ] ),
  1701. s = this._get( i, 'timepicker' ),
  1702. n;
  1703. s && i.settings.showTimepicker
  1704. ? ( s._limitMinMaxDateTime( i, ! 0 ),
  1705. ( n = i.inline ),
  1706. ( i.inline = i.stay_open = ! 0 ),
  1707. this._base_selectDate( e, t ),
  1708. ( i.inline = n ),
  1709. ( i.stay_open = ! 1 ),
  1710. this._notifyChange( i ),
  1711. this._updateDatepicker( i ) )
  1712. : this._base_selectDate( e, t );
  1713. } ),
  1714. ( $.datepicker._base_updateDatepicker =
  1715. $.datepicker._updateDatepicker ),
  1716. ( $.datepicker._updateDatepicker = function ( e ) {
  1717. var t = e.input[ 0 ];
  1718. if (
  1719. ! (
  1720. ( $.datepicker._curInst &&
  1721. $.datepicker._curInst !== e &&
  1722. $.datepicker._datepickerShowing &&
  1723. $.datepicker._lastInput !== t ) ||
  1724. ( 'boolean' == typeof e.stay_open &&
  1725. e.stay_open !== ! 1 )
  1726. )
  1727. ) {
  1728. this._base_updateDatepicker( e );
  1729. var i = this._get( e, 'timepicker' );
  1730. i && i._addTimePicker( e );
  1731. }
  1732. } ),
  1733. ( $.datepicker._base_doKeyPress = $.datepicker._doKeyPress ),
  1734. ( $.datepicker._doKeyPress = function ( e ) {
  1735. var t = $.datepicker._getInst( e.target ),
  1736. i = $.datepicker._get( t, 'timepicker' );
  1737. if ( i && $.datepicker._get( t, 'constrainInput' ) ) {
  1738. var s = i.support.ampm,
  1739. n =
  1740. null !== i._defaults.showTimezone
  1741. ? i._defaults.showTimezone
  1742. : i.support.timezone,
  1743. a = $.datepicker._possibleChars(
  1744. $.datepicker._get( t, 'dateFormat' )
  1745. ),
  1746. r =
  1747. i._defaults.timeFormat
  1748. .toString()
  1749. .replace( /[hms]/g, '' )
  1750. .replace( /TT/g, s ? 'APM' : '' )
  1751. .replace( /Tt/g, s ? 'AaPpMm' : '' )
  1752. .replace( /tT/g, s ? 'AaPpMm' : '' )
  1753. .replace( /T/g, s ? 'AP' : '' )
  1754. .replace( /tt/g, s ? 'apm' : '' )
  1755. .replace( /t/g, s ? 'ap' : '' ) +
  1756. ' ' +
  1757. i._defaults.separator +
  1758. i._defaults.timeSuffix +
  1759. ( n ? i._defaults.timezoneList.join( '' ) : '' ) +
  1760. i._defaults.amNames.join( '' ) +
  1761. i._defaults.pmNames.join( '' ) +
  1762. a,
  1763. l = String.fromCharCode(
  1764. void 0 === e.charCode ? e.keyCode : e.charCode
  1765. );
  1766. return e.ctrlKey || l < ' ' || ! a || r.indexOf( l ) > -1;
  1767. }
  1768. return $.datepicker._base_doKeyPress( e );
  1769. } ),
  1770. ( $.datepicker._base_updateAlternate =
  1771. $.datepicker._updateAlternate ),
  1772. ( $.datepicker._updateAlternate = function ( e ) {
  1773. var t = this._get( e, 'timepicker' );
  1774. if ( t ) {
  1775. var i = t._defaults.altField;
  1776. if ( i ) {
  1777. var s = t._defaults.altFormat || t._defaults.dateFormat,
  1778. n = this._getDate( e ),
  1779. a = $.datepicker._getFormatConfig( e ),
  1780. r = '',
  1781. l = t._defaults.altSeparator
  1782. ? t._defaults.altSeparator
  1783. : t._defaults.separator,
  1784. o = t._defaults.altTimeSuffix
  1785. ? t._defaults.altTimeSuffix
  1786. : t._defaults.timeSuffix,
  1787. u =
  1788. null !== t._defaults.altTimeFormat
  1789. ? t._defaults.altTimeFormat
  1790. : t._defaults.timeFormat;
  1791. ( r +=
  1792. $.datepicker.formatTime( u, t, t._defaults ) + o ),
  1793. t._defaults.timeOnly ||
  1794. t._defaults.altFieldTimeOnly ||
  1795. null === n ||
  1796. ( r = t._defaults.altFormat
  1797. ? $.datepicker.formatDate(
  1798. t._defaults.altFormat,
  1799. n,
  1800. a
  1801. ) +
  1802. l +
  1803. r
  1804. : t.formattedDate + l + r ),
  1805. $( i ).val( e.input.val() ? r : '' );
  1806. }
  1807. } else $.datepicker._base_updateAlternate( e );
  1808. } ),
  1809. ( $.datepicker._base_doKeyUp = $.datepicker._doKeyUp ),
  1810. ( $.datepicker._doKeyUp = function ( e ) {
  1811. var t = $.datepicker._getInst( e.target ),
  1812. i = $.datepicker._get( t, 'timepicker' );
  1813. if ( i && i._defaults.timeOnly && t.input.val() !== t.lastVal )
  1814. try {
  1815. $.datepicker._updateDatepicker( t );
  1816. } catch ( e ) {
  1817. $.timepicker.log( e );
  1818. }
  1819. return $.datepicker._base_doKeyUp( e );
  1820. } ),
  1821. ( $.datepicker._base_gotoToday = $.datepicker._gotoToday ),
  1822. ( $.datepicker._gotoToday = function ( e ) {
  1823. var t = this._getInst( $( e )[ 0 ] );
  1824. this._base_gotoToday( e );
  1825. var i = this._get( t, 'timepicker' );
  1826. if ( i ) {
  1827. var s = $.timepicker.timezoneOffsetNumber( i.timezone ),
  1828. n = new Date();
  1829. n.setMinutes(
  1830. n.getMinutes() +
  1831. n.getTimezoneOffset() +
  1832. parseInt( s, 10 )
  1833. ),
  1834. this._setTime( t, n ),
  1835. this._setDate( t, n ),
  1836. i._onSelectHandler();
  1837. }
  1838. } ),
  1839. ( $.datepicker._disableTimepickerDatepicker = function ( e ) {
  1840. var t = this._getInst( e );
  1841. if ( t ) {
  1842. var i = this._get( t, 'timepicker' );
  1843. $( e ).datepicker( 'getDate' ),
  1844. i &&
  1845. ( ( t.settings.showTimepicker = ! 1 ),
  1846. ( i._defaults.showTimepicker = ! 1 ),
  1847. i._updateDateTime( t ) );
  1848. }
  1849. } ),
  1850. ( $.datepicker._enableTimepickerDatepicker = function ( e ) {
  1851. var t = this._getInst( e );
  1852. if ( t ) {
  1853. var i = this._get( t, 'timepicker' );
  1854. $( e ).datepicker( 'getDate' ),
  1855. i &&
  1856. ( ( t.settings.showTimepicker = ! 0 ),
  1857. ( i._defaults.showTimepicker = ! 0 ),
  1858. i._addTimePicker( t ),
  1859. i._updateDateTime( t ) );
  1860. }
  1861. } ),
  1862. ( $.datepicker._setTime = function ( e, t ) {
  1863. var i = this._get( e, 'timepicker' );
  1864. if ( i ) {
  1865. var s = i._defaults;
  1866. ( i.hour = t ? t.getHours() : s.hour ),
  1867. ( i.minute = t ? t.getMinutes() : s.minute ),
  1868. ( i.second = t ? t.getSeconds() : s.second ),
  1869. ( i.millisec = t ? t.getMilliseconds() : s.millisec ),
  1870. ( i.microsec = t ? t.getMicroseconds() : s.microsec ),
  1871. i._limitMinMaxDateTime( e, ! 0 ),
  1872. i._onTimeChange(),
  1873. i._updateDateTime( e );
  1874. }
  1875. } ),
  1876. ( $.datepicker._setTimeDatepicker = function ( e, t, i ) {
  1877. var s = this._getInst( e );
  1878. if ( s ) {
  1879. var n = this._get( s, 'timepicker' );
  1880. if ( n ) {
  1881. this._setDateFromField( s );
  1882. var a;
  1883. t &&
  1884. ( 'string' == typeof t
  1885. ? ( n._parseTime( t, i ),
  1886. ( a = new Date() ),
  1887. a.setHours(
  1888. n.hour,
  1889. n.minute,
  1890. n.second,
  1891. n.millisec
  1892. ),
  1893. a.setMicroseconds( n.microsec ) )
  1894. : ( ( a = new Date( t.getTime() ) ),
  1895. a.setMicroseconds( t.getMicroseconds() ) ),
  1896. 'Invalid Date' === a.toString() && ( a = void 0 ),
  1897. this._setTime( s, a ) );
  1898. }
  1899. }
  1900. } ),
  1901. ( $.datepicker._base_setDateDatepicker =
  1902. $.datepicker._setDateDatepicker ),
  1903. ( $.datepicker._setDateDatepicker = function ( e, t ) {
  1904. var i = this._getInst( e ),
  1905. s = t;
  1906. if ( i ) {
  1907. 'string' == typeof t &&
  1908. ( ( s = new Date( t ) ),
  1909. s.getTime() ||
  1910. ( this._base_setDateDatepicker.apply(
  1911. this,
  1912. arguments
  1913. ),
  1914. ( s = $( e ).datepicker( 'getDate' ) ) ) );
  1915. var n = this._get( i, 'timepicker' ),
  1916. a;
  1917. s instanceof Date
  1918. ? ( ( a = new Date( s.getTime() ) ),
  1919. a.setMicroseconds( s.getMicroseconds() ) )
  1920. : ( a = s ),
  1921. n &&
  1922. a &&
  1923. ( n.support.timezone ||
  1924. null !== n._defaults.timezone ||
  1925. ( n.timezone = a.getTimezoneOffset() * -1 ),
  1926. ( s = $.timepicker.timezoneAdjust(
  1927. s,
  1928. $.timepicker.timezoneOffsetString(
  1929. -s.getTimezoneOffset()
  1930. ),
  1931. n.timezone
  1932. ) ),
  1933. ( a = $.timepicker.timezoneAdjust(
  1934. a,
  1935. $.timepicker.timezoneOffsetString(
  1936. -a.getTimezoneOffset()
  1937. ),
  1938. n.timezone
  1939. ) ) ),
  1940. this._updateDatepicker( i ),
  1941. this._base_setDateDatepicker.apply( this, arguments ),
  1942. this._setTimeDatepicker( e, a, ! 0 );
  1943. }
  1944. } ),
  1945. ( $.datepicker._base_getDateDatepicker =
  1946. $.datepicker._getDateDatepicker ),
  1947. ( $.datepicker._getDateDatepicker = function ( e, t ) {
  1948. var i = this._getInst( e );
  1949. if ( i ) {
  1950. var s = this._get( i, 'timepicker' );
  1951. if ( s ) {
  1952. void 0 === i.lastVal && this._setDateFromField( i, t );
  1953. var n = this._getDate( i ),
  1954. a = null;
  1955. return (
  1956. ( a =
  1957. s.$altInput && s._defaults.altFieldTimeOnly
  1958. ? s.$input.val() + ' ' + s.$altInput.val()
  1959. : 'INPUT' !== s.$input.get( 0 ).tagName &&
  1960. s.$altInput
  1961. ? s.$altInput.val()
  1962. : s.$input.val() ),
  1963. n &&
  1964. s._parseTime( a, ! i.settings.timeOnly ) &&
  1965. ( n.setHours(
  1966. s.hour,
  1967. s.minute,
  1968. s.second,
  1969. s.millisec
  1970. ),
  1971. n.setMicroseconds( s.microsec ),
  1972. null != s.timezone &&
  1973. ( s.support.timezone ||
  1974. null !== s._defaults.timezone ||
  1975. ( s.timezone =
  1976. n.getTimezoneOffset() * -1 ),
  1977. ( n = $.timepicker.timezoneAdjust(
  1978. n,
  1979. s.timezone,
  1980. $.timepicker.timezoneOffsetString(
  1981. -n.getTimezoneOffset()
  1982. )
  1983. ) ) ) ),
  1984. n
  1985. );
  1986. }
  1987. return this._base_getDateDatepicker( e, t );
  1988. }
  1989. } ),
  1990. ( $.datepicker._base_parseDate = $.datepicker.parseDate ),
  1991. ( $.datepicker.parseDate = function ( e, t, i ) {
  1992. var s;
  1993. try {
  1994. s = this._base_parseDate( e, t, i );
  1995. } catch ( n ) {
  1996. if ( ! ( n.indexOf( ':' ) >= 0 ) ) throw n;
  1997. ( s = this._base_parseDate(
  1998. e,
  1999. t.substring(
  2000. 0,
  2001. t.length - ( n.length - n.indexOf( ':' ) - 2 )
  2002. ),
  2003. i
  2004. ) ),
  2005. $.timepicker.log(
  2006. 'Error parsing the date string: ' +
  2007. n +
  2008. '\ndate string = ' +
  2009. t +
  2010. '\ndate format = ' +
  2011. e
  2012. );
  2013. }
  2014. return s;
  2015. } ),
  2016. ( $.datepicker._base_formatDate = $.datepicker._formatDate ),
  2017. ( $.datepicker._formatDate = function ( e, t, i, s ) {
  2018. var n = this._get( e, 'timepicker' );
  2019. return n
  2020. ? ( n._updateDateTime( e ), n.$input.val() )
  2021. : this._base_formatDate( e );
  2022. } ),
  2023. ( $.datepicker._base_optionDatepicker =
  2024. $.datepicker._optionDatepicker ),
  2025. ( $.datepicker._optionDatepicker = function ( e, t, i ) {
  2026. var s = this._getInst( e ),
  2027. n;
  2028. if ( ! s ) return null;
  2029. var a = this._get( s, 'timepicker' );
  2030. if ( a ) {
  2031. var r = null,
  2032. l = null,
  2033. o = null,
  2034. u = a._defaults.evnts,
  2035. c = {},
  2036. m,
  2037. d,
  2038. p,
  2039. h;
  2040. if ( 'string' == typeof t ) {
  2041. if ( 'minDate' === t || 'minDateTime' === t ) r = i;
  2042. else if ( 'maxDate' === t || 'maxDateTime' === t )
  2043. l = i;
  2044. else if ( 'onSelect' === t ) o = i;
  2045. else if ( u.hasOwnProperty( t ) ) {
  2046. if ( 'undefined' == typeof i ) return u[ t ];
  2047. ( c[ t ] = i ), ( n = {} );
  2048. }
  2049. } else if ( 'object' == typeof t ) {
  2050. t.minDate
  2051. ? ( r = t.minDate )
  2052. : t.minDateTime
  2053. ? ( r = t.minDateTime )
  2054. : t.maxDate
  2055. ? ( l = t.maxDate )
  2056. : t.maxDateTime && ( l = t.maxDateTime );
  2057. for ( m in u )
  2058. u.hasOwnProperty( m ) &&
  2059. t[ m ] &&
  2060. ( c[ m ] = t[ m ] );
  2061. }
  2062. for ( m in c )
  2063. c.hasOwnProperty( m ) &&
  2064. ( ( u[ m ] = c[ m ] ),
  2065. n || ( n = $.extend( {}, t ) ),
  2066. delete n[ m ] );
  2067. if ( n && isEmptyObject( n ) ) return;
  2068. if (
  2069. ( r
  2070. ? ( ( r = 0 === r ? new Date() : new Date( r ) ),
  2071. ( a._defaults.minDate = r ),
  2072. ( a._defaults.minDateTime = r ) )
  2073. : l
  2074. ? ( ( l = 0 === l ? new Date() : new Date( l ) ),
  2075. ( a._defaults.maxDate = l ),
  2076. ( a._defaults.maxDateTime = l ) )
  2077. : o && ( a._defaults.onSelect = o ),
  2078. r || l )
  2079. )
  2080. return (
  2081. ( h = $( e ) ),
  2082. ( p = h.datetimepicker( 'getDate' ) ),
  2083. ( d = this._base_optionDatepicker.call(
  2084. $.datepicker,
  2085. e,
  2086. n || t,
  2087. i
  2088. ) ),
  2089. h.datetimepicker( 'setDate', p ),
  2090. d
  2091. );
  2092. }
  2093. return void 0 === i
  2094. ? this._base_optionDatepicker.call( $.datepicker, e, t )
  2095. : this._base_optionDatepicker.call(
  2096. $.datepicker,
  2097. e,
  2098. n || t,
  2099. i
  2100. );
  2101. } );
  2102. var isEmptyObject = function ( e ) {
  2103. var t;
  2104. for ( t in e ) if ( e.hasOwnProperty( t ) ) return ! 1;
  2105. return ! 0;
  2106. },
  2107. extendRemove = function ( e, t ) {
  2108. $.extend( e, t );
  2109. for ( var i in t )
  2110. ( null !== t[ i ] && void 0 !== t[ i ] ) ||
  2111. ( e[ i ] = t[ i ] );
  2112. return e;
  2113. },
  2114. detectSupport = function ( e ) {
  2115. var t = e.replace( /'.*?'/g, '' ).toLowerCase(),
  2116. i = function ( e, t ) {
  2117. return e.indexOf( t ) !== -1;
  2118. };
  2119. return {
  2120. hour: i( t, 'h' ),
  2121. minute: i( t, 'm' ),
  2122. second: i( t, 's' ),
  2123. millisec: i( t, 'l' ),
  2124. microsec: i( t, 'c' ),
  2125. timezone: i( t, 'z' ),
  2126. ampm: i( t, 't' ) && i( e, 'h' ),
  2127. iso8601: i( e, 'Z' ),
  2128. };
  2129. },
  2130. convert24to12 = function ( e ) {
  2131. return ( e %= 12 ), 0 === e && ( e = 12 ), String( e );
  2132. },
  2133. computeEffectiveSetting = function ( e, t ) {
  2134. return e && e[ t ] ? e[ t ] : $.timepicker._defaults[ t ];
  2135. },
  2136. splitDateTime = function ( e, t ) {
  2137. var i = computeEffectiveSetting( t, 'separator' ),
  2138. s = computeEffectiveSetting( t, 'timeFormat' ),
  2139. n = s.split( i ),
  2140. a = n.length,
  2141. r = e.split( i ),
  2142. l = r.length;
  2143. return l > 1
  2144. ? {
  2145. dateString: r.splice( 0, l - a ).join( i ),
  2146. timeString: r.splice( 0, a ).join( i ),
  2147. }
  2148. : { dateString: e, timeString: '' };
  2149. },
  2150. parseDateTimeInternal = function ( e, t, i, s, n ) {
  2151. var a, r, l;
  2152. if (
  2153. ( ( r = splitDateTime( i, n ) ),
  2154. ( a = $.datepicker._base_parseDate( e, r.dateString, s ) ),
  2155. '' === r.timeString )
  2156. )
  2157. return { date: a };
  2158. if (
  2159. ( ( l = $.datepicker.parseTime( t, r.timeString, n ) ),
  2160. ! l )
  2161. )
  2162. throw 'Wrong time format';
  2163. return { date: a, timeObj: l };
  2164. },
  2165. selectLocalTimezone = function ( e, t ) {
  2166. if ( e && e.timezone_select ) {
  2167. var i = t || new Date();
  2168. e.timezone_select.val( -i.getTimezoneOffset() );
  2169. }
  2170. };
  2171. ( $.timepicker = new Timepicker() ),
  2172. ( $.timepicker.timezoneOffsetString = function ( e, t ) {
  2173. if ( isNaN( e ) || e > 840 || e < -720 ) return e;
  2174. var i = e,
  2175. s = i % 60,
  2176. n = ( i - s ) / 60,
  2177. a = t ? ':' : '',
  2178. r =
  2179. ( i >= 0 ? '+' : '-' ) +
  2180. ( '0' + Math.abs( n ) ).slice( -2 ) +
  2181. a +
  2182. ( '0' + Math.abs( s ) ).slice( -2 );
  2183. return '+00:00' === r ? 'Z' : r;
  2184. } ),
  2185. ( $.timepicker.timezoneOffsetNumber = function ( e ) {
  2186. var t = e.toString().replace( ':', '' );
  2187. return 'Z' === t.toUpperCase()
  2188. ? 0
  2189. : /^(\-|\+)\d{4}$/.test( t )
  2190. ? ( '-' === t.substr( 0, 1 ) ? -1 : 1 ) *
  2191. ( 60 * parseInt( t.substr( 1, 2 ), 10 ) +
  2192. parseInt( t.substr( 3, 2 ), 10 ) )
  2193. : parseInt( e, 10 );
  2194. } ),
  2195. ( $.timepicker.timezoneAdjust = function ( e, t, i ) {
  2196. var s = $.timepicker.timezoneOffsetNumber( t ),
  2197. n = $.timepicker.timezoneOffsetNumber( i );
  2198. return (
  2199. isNaN( n ) || e.setMinutes( e.getMinutes() + -s - -n ), e
  2200. );
  2201. } ),
  2202. ( $.timepicker.timeRange = function ( e, t, i ) {
  2203. return $.timepicker.handleRange( 'timepicker', e, t, i );
  2204. } ),
  2205. ( $.timepicker.datetimeRange = function ( e, t, i ) {
  2206. $.timepicker.handleRange( 'datetimepicker', e, t, i );
  2207. } ),
  2208. ( $.timepicker.dateRange = function ( e, t, i ) {
  2209. $.timepicker.handleRange( 'datepicker', e, t, i );
  2210. } ),
  2211. ( $.timepicker.handleRange = function ( e, t, i, s ) {
  2212. function n( n, a ) {
  2213. var r = t[ e ]( 'getDate' ),
  2214. l = i[ e ]( 'getDate' ),
  2215. o = n[ e ]( 'getDate' );
  2216. if ( null !== r ) {
  2217. var u = new Date( r.getTime() ),
  2218. c = new Date( r.getTime() );
  2219. u.setMilliseconds(
  2220. u.getMilliseconds() + s.minInterval
  2221. ),
  2222. c.setMilliseconds(
  2223. c.getMilliseconds() + s.maxInterval
  2224. ),
  2225. s.minInterval > 0 && u > l
  2226. ? i[ e ]( 'setDate', u )
  2227. : s.maxInterval > 0 && c < l
  2228. ? i[ e ]( 'setDate', c )
  2229. : r > l && a[ e ]( 'setDate', o );
  2230. }
  2231. }
  2232. function a( t, i, n ) {
  2233. if ( t.val() ) {
  2234. var a = t[ e ].call( t, 'getDate' );
  2235. null !== a &&
  2236. s.minInterval > 0 &&
  2237. ( 'minDate' === n &&
  2238. a.setMilliseconds(
  2239. a.getMilliseconds() + s.minInterval
  2240. ),
  2241. 'maxDate' === n &&
  2242. a.setMilliseconds(
  2243. a.getMilliseconds() - s.minInterval
  2244. ) ),
  2245. a.getTime && i[ e ].call( i, 'option', n, a );
  2246. }
  2247. }
  2248. s = $.extend(
  2249. {},
  2250. { minInterval: 0, maxInterval: 0, start: {}, end: {} },
  2251. s
  2252. );
  2253. var r = ! 1;
  2254. return (
  2255. 'timepicker' === e &&
  2256. ( ( r = ! 0 ), ( e = 'datetimepicker' ) ),
  2257. $.fn[ e ].call(
  2258. t,
  2259. $.extend(
  2260. {
  2261. timeOnly: r,
  2262. onClose: function ( e, t ) {
  2263. n( $( this ), i );
  2264. },
  2265. onSelect: function ( e ) {
  2266. a( $( this ), i, 'minDate' );
  2267. },
  2268. },
  2269. s,
  2270. s.start
  2271. )
  2272. ),
  2273. $.fn[ e ].call(
  2274. i,
  2275. $.extend(
  2276. {
  2277. timeOnly: r,
  2278. onClose: function ( e, i ) {
  2279. n( $( this ), t );
  2280. },
  2281. onSelect: function ( e ) {
  2282. a( $( this ), t, 'maxDate' );
  2283. },
  2284. },
  2285. s,
  2286. s.end
  2287. )
  2288. ),
  2289. n( t, i ),
  2290. a( t, i, 'minDate' ),
  2291. a( i, t, 'maxDate' ),
  2292. $( [ t.get( 0 ), i.get( 0 ) ] )
  2293. );
  2294. } ),
  2295. ( $.timepicker.log = function () {
  2296. window.console &&
  2297. window.console.log &&
  2298. window.console.log.apply &&
  2299. window.console.log.apply(
  2300. window.console,
  2301. Array.prototype.slice.call( arguments )
  2302. );
  2303. } ),
  2304. ( $.timepicker._util = {
  2305. _extendRemove: extendRemove,
  2306. _isEmptyObject: isEmptyObject,
  2307. _convert24to12: convert24to12,
  2308. _detectSupport: detectSupport,
  2309. _selectLocalTimezone: selectLocalTimezone,
  2310. _computeEffectiveSetting: computeEffectiveSetting,
  2311. _splitDateTime: splitDateTime,
  2312. _parseDateTimeInternal: parseDateTimeInternal,
  2313. } ),
  2314. Date.prototype.getMicroseconds ||
  2315. ( ( Date.prototype.microseconds = 0 ),
  2316. ( Date.prototype.getMicroseconds = function () {
  2317. return this.microseconds;
  2318. } ),
  2319. ( Date.prototype.setMicroseconds = function ( e ) {
  2320. return (
  2321. this.setMilliseconds(
  2322. this.getMilliseconds() + Math.floor( e / 1e3 )
  2323. ),
  2324. ( this.microseconds = e % 1e3 ),
  2325. this
  2326. );
  2327. } ) ),
  2328. ( $.timepicker.version = '1.6.3' );
  2329. }
  2330. } );