2331 lines
65 KiB
JavaScript
2331 lines
65 KiB
JavaScript
! ( function ( e ) {
|
|
'function' == typeof define && define.amd
|
|
? define( [ 'jquery', 'jquery-ui' ], e )
|
|
: e( jQuery );
|
|
} )( function ( $ ) {
|
|
if (
|
|
( ( $.ui.timepicker = $.ui.timepicker || {} ),
|
|
! $.ui.timepicker.version )
|
|
) {
|
|
$.extend( $.ui, { timepicker: { version: '1.6.3' } } );
|
|
var Timepicker = function () {
|
|
( this.regional = [] ),
|
|
( this.regional[ '' ] = {
|
|
currentText: 'Now',
|
|
closeText: 'Done',
|
|
amNames: [ 'AM', 'A' ],
|
|
pmNames: [ 'PM', 'P' ],
|
|
timeFormat: 'HH:mm',
|
|
timeSuffix: '',
|
|
timeOnlyTitle: 'Choose Time',
|
|
timeText: 'Time',
|
|
hourText: 'Hour',
|
|
minuteText: 'Minute',
|
|
secondText: 'Second',
|
|
millisecText: 'Millisecond',
|
|
microsecText: 'Microsecond',
|
|
timezoneText: 'Time Zone',
|
|
isRTL: ! 1,
|
|
} ),
|
|
( this._defaults = {
|
|
showButtonPanel: ! 0,
|
|
timeOnly: ! 1,
|
|
timeOnlyShowDate: ! 1,
|
|
showHour: null,
|
|
showMinute: null,
|
|
showSecond: null,
|
|
showMillisec: null,
|
|
showMicrosec: null,
|
|
showTimezone: null,
|
|
showTime: ! 0,
|
|
stepHour: 1,
|
|
stepMinute: 1,
|
|
stepSecond: 1,
|
|
stepMillisec: 1,
|
|
stepMicrosec: 1,
|
|
hour: 0,
|
|
minute: 0,
|
|
second: 0,
|
|
millisec: 0,
|
|
microsec: 0,
|
|
timezone: null,
|
|
hourMin: 0,
|
|
minuteMin: 0,
|
|
secondMin: 0,
|
|
millisecMin: 0,
|
|
microsecMin: 0,
|
|
hourMax: 23,
|
|
minuteMax: 59,
|
|
secondMax: 59,
|
|
millisecMax: 999,
|
|
microsecMax: 999,
|
|
minDateTime: null,
|
|
maxDateTime: null,
|
|
maxTime: null,
|
|
minTime: null,
|
|
onSelect: null,
|
|
hourGrid: 0,
|
|
minuteGrid: 0,
|
|
secondGrid: 0,
|
|
millisecGrid: 0,
|
|
microsecGrid: 0,
|
|
alwaysSetTime: ! 0,
|
|
separator: ' ',
|
|
altFieldTimeOnly: ! 0,
|
|
altTimeFormat: null,
|
|
altSeparator: null,
|
|
altTimeSuffix: null,
|
|
altRedirectFocus: ! 0,
|
|
pickerTimeFormat: null,
|
|
pickerTimeSuffix: null,
|
|
showTimepicker: ! 0,
|
|
timezoneList: null,
|
|
addSliderAccess: ! 1,
|
|
sliderAccessArgs: null,
|
|
controlType: 'slider',
|
|
oneLine: ! 1,
|
|
defaultValue: null,
|
|
parse: 'strict',
|
|
afterInject: null,
|
|
} ),
|
|
$.extend( this._defaults, this.regional[ '' ] );
|
|
};
|
|
$.extend( Timepicker.prototype, {
|
|
$input: null,
|
|
$altInput: null,
|
|
$timeObj: null,
|
|
inst: null,
|
|
hour_slider: null,
|
|
minute_slider: null,
|
|
second_slider: null,
|
|
millisec_slider: null,
|
|
microsec_slider: null,
|
|
timezone_select: null,
|
|
maxTime: null,
|
|
minTime: null,
|
|
hour: 0,
|
|
minute: 0,
|
|
second: 0,
|
|
millisec: 0,
|
|
microsec: 0,
|
|
timezone: null,
|
|
hourMinOriginal: null,
|
|
minuteMinOriginal: null,
|
|
secondMinOriginal: null,
|
|
millisecMinOriginal: null,
|
|
microsecMinOriginal: null,
|
|
hourMaxOriginal: null,
|
|
minuteMaxOriginal: null,
|
|
secondMaxOriginal: null,
|
|
millisecMaxOriginal: null,
|
|
microsecMaxOriginal: null,
|
|
ampm: '',
|
|
formattedDate: '',
|
|
formattedTime: '',
|
|
formattedDateTime: '',
|
|
timezoneList: null,
|
|
units: [ 'hour', 'minute', 'second', 'millisec', 'microsec' ],
|
|
support: {},
|
|
control: null,
|
|
setDefaults: function ( e ) {
|
|
return extendRemove( this._defaults, e || {} ), this;
|
|
},
|
|
_newInst: function ( $input, opts ) {
|
|
var tp_inst = new Timepicker(),
|
|
inlineSettings = {},
|
|
fns = {},
|
|
overrides,
|
|
i;
|
|
for ( var attrName in this._defaults )
|
|
if ( this._defaults.hasOwnProperty( attrName ) ) {
|
|
var attrValue = $input.attr( 'time:' + attrName );
|
|
if ( attrValue )
|
|
try {
|
|
inlineSettings[ attrName ] = eval( attrValue );
|
|
} catch ( e ) {
|
|
inlineSettings[ attrName ] = attrValue;
|
|
}
|
|
}
|
|
overrides = {
|
|
beforeShow: function ( e, t ) {
|
|
if (
|
|
$.isFunction( tp_inst._defaults.evnts.beforeShow )
|
|
)
|
|
return tp_inst._defaults.evnts.beforeShow.call(
|
|
$input[ 0 ],
|
|
e,
|
|
t,
|
|
tp_inst
|
|
);
|
|
},
|
|
onChangeMonthYear: function ( e, t, i ) {
|
|
$.isFunction(
|
|
tp_inst._defaults.evnts.onChangeMonthYear
|
|
) &&
|
|
tp_inst._defaults.evnts.onChangeMonthYear.call(
|
|
$input[ 0 ],
|
|
e,
|
|
t,
|
|
i,
|
|
tp_inst
|
|
);
|
|
},
|
|
onClose: function ( e, t ) {
|
|
tp_inst.timeDefined === ! 0 &&
|
|
'' !== $input.val() &&
|
|
tp_inst._updateDateTime( t ),
|
|
$.isFunction( tp_inst._defaults.evnts.onClose ) &&
|
|
tp_inst._defaults.evnts.onClose.call(
|
|
$input[ 0 ],
|
|
e,
|
|
t,
|
|
tp_inst
|
|
);
|
|
},
|
|
};
|
|
for ( i in overrides )
|
|
overrides.hasOwnProperty( i ) &&
|
|
( fns[ i ] = opts[ i ] || this._defaults[ i ] || null );
|
|
( tp_inst._defaults = $.extend(
|
|
{},
|
|
this._defaults,
|
|
inlineSettings,
|
|
opts,
|
|
overrides,
|
|
{ evnts: fns, timepicker: tp_inst }
|
|
) ),
|
|
( tp_inst.amNames = $.map(
|
|
tp_inst._defaults.amNames,
|
|
function ( e ) {
|
|
return e.toUpperCase();
|
|
}
|
|
) ),
|
|
( tp_inst.pmNames = $.map(
|
|
tp_inst._defaults.pmNames,
|
|
function ( e ) {
|
|
return e.toUpperCase();
|
|
}
|
|
) ),
|
|
( tp_inst.support = detectSupport(
|
|
tp_inst._defaults.timeFormat +
|
|
( tp_inst._defaults.pickerTimeFormat
|
|
? tp_inst._defaults.pickerTimeFormat
|
|
: '' ) +
|
|
( tp_inst._defaults.altTimeFormat
|
|
? tp_inst._defaults.altTimeFormat
|
|
: '' )
|
|
) ),
|
|
'string' == typeof tp_inst._defaults.controlType
|
|
? ( 'slider' === tp_inst._defaults.controlType &&
|
|
'undefined' == typeof $.ui.slider &&
|
|
( tp_inst._defaults.controlType = 'select' ),
|
|
( tp_inst.control =
|
|
tp_inst._controls[
|
|
tp_inst._defaults.controlType
|
|
] ) )
|
|
: ( tp_inst.control = tp_inst._defaults.controlType );
|
|
var timezoneList = [
|
|
-720,
|
|
-660,
|
|
-600,
|
|
-570,
|
|
-540,
|
|
-480,
|
|
-420,
|
|
-360,
|
|
-300,
|
|
-270,
|
|
-240,
|
|
-210,
|
|
-180,
|
|
-120,
|
|
-60,
|
|
0,
|
|
60,
|
|
120,
|
|
180,
|
|
210,
|
|
240,
|
|
270,
|
|
300,
|
|
330,
|
|
345,
|
|
360,
|
|
390,
|
|
420,
|
|
480,
|
|
525,
|
|
540,
|
|
570,
|
|
600,
|
|
630,
|
|
660,
|
|
690,
|
|
720,
|
|
765,
|
|
780,
|
|
840,
|
|
];
|
|
null !== tp_inst._defaults.timezoneList &&
|
|
( timezoneList = tp_inst._defaults.timezoneList );
|
|
var tzl = timezoneList.length,
|
|
tzi = 0,
|
|
tzv = null;
|
|
if ( tzl > 0 && 'object' != typeof timezoneList[ 0 ] )
|
|
for ( ; tzi < tzl; tzi++ )
|
|
( tzv = timezoneList[ tzi ] ),
|
|
( timezoneList[ tzi ] = {
|
|
value: tzv,
|
|
label: $.timepicker.timezoneOffsetString(
|
|
tzv,
|
|
tp_inst.support.iso8601
|
|
),
|
|
} );
|
|
return (
|
|
( tp_inst._defaults.timezoneList = timezoneList ),
|
|
( tp_inst.timezone =
|
|
null !== tp_inst._defaults.timezone
|
|
? $.timepicker.timezoneOffsetNumber(
|
|
tp_inst._defaults.timezone
|
|
)
|
|
: new Date().getTimezoneOffset() * -1 ),
|
|
( tp_inst.hour =
|
|
tp_inst._defaults.hour < tp_inst._defaults.hourMin
|
|
? tp_inst._defaults.hourMin
|
|
: tp_inst._defaults.hour > tp_inst._defaults.hourMax
|
|
? tp_inst._defaults.hourMax
|
|
: tp_inst._defaults.hour ),
|
|
( tp_inst.minute =
|
|
tp_inst._defaults.minute < tp_inst._defaults.minuteMin
|
|
? tp_inst._defaults.minuteMin
|
|
: tp_inst._defaults.minute >
|
|
tp_inst._defaults.minuteMax
|
|
? tp_inst._defaults.minuteMax
|
|
: tp_inst._defaults.minute ),
|
|
( tp_inst.second =
|
|
tp_inst._defaults.second < tp_inst._defaults.secondMin
|
|
? tp_inst._defaults.secondMin
|
|
: tp_inst._defaults.second >
|
|
tp_inst._defaults.secondMax
|
|
? tp_inst._defaults.secondMax
|
|
: tp_inst._defaults.second ),
|
|
( tp_inst.millisec =
|
|
tp_inst._defaults.millisec <
|
|
tp_inst._defaults.millisecMin
|
|
? tp_inst._defaults.millisecMin
|
|
: tp_inst._defaults.millisec >
|
|
tp_inst._defaults.millisecMax
|
|
? tp_inst._defaults.millisecMax
|
|
: tp_inst._defaults.millisec ),
|
|
( tp_inst.microsec =
|
|
tp_inst._defaults.microsec <
|
|
tp_inst._defaults.microsecMin
|
|
? tp_inst._defaults.microsecMin
|
|
: tp_inst._defaults.microsec >
|
|
tp_inst._defaults.microsecMax
|
|
? tp_inst._defaults.microsecMax
|
|
: tp_inst._defaults.microsec ),
|
|
( tp_inst.ampm = '' ),
|
|
( tp_inst.$input = $input ),
|
|
tp_inst._defaults.altField &&
|
|
( ( tp_inst.$altInput = $(
|
|
tp_inst._defaults.altField
|
|
) ),
|
|
tp_inst._defaults.altRedirectFocus === ! 0 &&
|
|
tp_inst.$altInput
|
|
.css( { cursor: 'pointer' } )
|
|
.focus( function () {
|
|
$input.trigger( 'focus' );
|
|
} ) ),
|
|
( 0 !== tp_inst._defaults.minDate &&
|
|
0 !== tp_inst._defaults.minDateTime ) ||
|
|
( tp_inst._defaults.minDate = new Date() ),
|
|
( 0 !== tp_inst._defaults.maxDate &&
|
|
0 !== tp_inst._defaults.maxDateTime ) ||
|
|
( tp_inst._defaults.maxDate = new Date() ),
|
|
void 0 !== tp_inst._defaults.minDate &&
|
|
tp_inst._defaults.minDate instanceof Date &&
|
|
( tp_inst._defaults.minDateTime = new Date(
|
|
tp_inst._defaults.minDate.getTime()
|
|
) ),
|
|
void 0 !== tp_inst._defaults.minDateTime &&
|
|
tp_inst._defaults.minDateTime instanceof Date &&
|
|
( tp_inst._defaults.minDate = new Date(
|
|
tp_inst._defaults.minDateTime.getTime()
|
|
) ),
|
|
void 0 !== tp_inst._defaults.maxDate &&
|
|
tp_inst._defaults.maxDate instanceof Date &&
|
|
( tp_inst._defaults.maxDateTime = new Date(
|
|
tp_inst._defaults.maxDate.getTime()
|
|
) ),
|
|
void 0 !== tp_inst._defaults.maxDateTime &&
|
|
tp_inst._defaults.maxDateTime instanceof Date &&
|
|
( tp_inst._defaults.maxDate = new Date(
|
|
tp_inst._defaults.maxDateTime.getTime()
|
|
) ),
|
|
tp_inst.$input.bind( 'focus', function () {
|
|
tp_inst._onFocus();
|
|
} ),
|
|
tp_inst
|
|
);
|
|
},
|
|
_addTimePicker: function ( e ) {
|
|
var t = $.trim(
|
|
this.$altInput && this._defaults.altFieldTimeOnly
|
|
? this.$input.val() + ' ' + this.$altInput.val()
|
|
: this.$input.val()
|
|
);
|
|
( this.timeDefined = this._parseTime( t ) ),
|
|
this._limitMinMaxDateTime( e, ! 1 ),
|
|
this._injectTimePicker(),
|
|
this._afterInject();
|
|
},
|
|
_parseTime: function ( e, t ) {
|
|
if (
|
|
( this.inst ||
|
|
( this.inst = $.datepicker._getInst(
|
|
this.$input[ 0 ]
|
|
) ),
|
|
t || ! this._defaults.timeOnly )
|
|
) {
|
|
var i = $.datepicker._get( this.inst, 'dateFormat' );
|
|
try {
|
|
var s = parseDateTimeInternal(
|
|
i,
|
|
this._defaults.timeFormat,
|
|
e,
|
|
$.datepicker._getFormatConfig( this.inst ),
|
|
this._defaults
|
|
);
|
|
if ( ! s.timeObj ) return ! 1;
|
|
$.extend( this, s.timeObj );
|
|
} catch ( t ) {
|
|
return (
|
|
$.timepicker.log(
|
|
'Error parsing the date/time string: ' +
|
|
t +
|
|
'\ndate/time string = ' +
|
|
e +
|
|
'\ntimeFormat = ' +
|
|
this._defaults.timeFormat +
|
|
'\ndateFormat = ' +
|
|
i
|
|
),
|
|
! 1
|
|
);
|
|
}
|
|
return ! 0;
|
|
}
|
|
var n = $.datepicker.parseTime(
|
|
this._defaults.timeFormat,
|
|
e,
|
|
this._defaults
|
|
);
|
|
return !! n && ( $.extend( this, n ), ! 0 );
|
|
},
|
|
_afterInject: function () {
|
|
var e = this.inst.settings;
|
|
$.isFunction( e.afterInject ) && e.afterInject.call( this );
|
|
},
|
|
_injectTimePicker: function () {
|
|
var e = this.inst.dpDiv,
|
|
t = this.inst.settings,
|
|
i = this,
|
|
s = '',
|
|
n = '',
|
|
a = null,
|
|
r = {},
|
|
l = {},
|
|
o = null,
|
|
u = 0,
|
|
c = 0;
|
|
if (
|
|
0 === e.find( 'div.ui-timepicker-div' ).length &&
|
|
t.showTimepicker
|
|
) {
|
|
var m = ' ui_tpicker_unit_hide',
|
|
d =
|
|
'<div class="ui-timepicker-div' +
|
|
( t.isRTL ? ' ui-timepicker-rtl' : '' ) +
|
|
( t.oneLine && 'select' === t.controlType
|
|
? ' ui-timepicker-oneLine'
|
|
: '' ) +
|
|
'"><dl><dt class="ui_tpicker_time_label' +
|
|
( t.showTime ? '' : m ) +
|
|
'">' +
|
|
t.timeText +
|
|
'</dt><dd class="ui_tpicker_time ' +
|
|
( t.showTime ? '' : m ) +
|
|
'"><input class="ui_tpicker_time_input" ' +
|
|
( t.timeInput ? '' : 'disabled' ) +
|
|
'/></dd>';
|
|
for ( u = 0, c = this.units.length; u < c; u++ ) {
|
|
if (
|
|
( ( s = this.units[ u ] ),
|
|
( n =
|
|
s.substr( 0, 1 ).toUpperCase() +
|
|
s.substr( 1 ) ),
|
|
( a =
|
|
null !== t[ 'show' + n ]
|
|
? t[ 'show' + n ]
|
|
: this.support[ s ] ),
|
|
( r[ s ] = parseInt(
|
|
t[ s + 'Max' ] -
|
|
( ( t[ s + 'Max' ] - t[ s + 'Min' ] ) %
|
|
t[ 'step' + n ] ),
|
|
10
|
|
) ),
|
|
( l[ s ] = 0 ),
|
|
( d +=
|
|
'<dt class="ui_tpicker_' +
|
|
s +
|
|
'_label' +
|
|
( a ? '' : m ) +
|
|
'">' +
|
|
t[ s + 'Text' ] +
|
|
'</dt><dd class="ui_tpicker_' +
|
|
s +
|
|
( a ? '' : m ) +
|
|
'"><div class="ui_tpicker_' +
|
|
s +
|
|
'_slider' +
|
|
( a ? '' : m ) +
|
|
'"></div>' ),
|
|
a && t[ s + 'Grid' ] > 0 )
|
|
) {
|
|
if (
|
|
( ( d +=
|
|
'<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>' ),
|
|
'hour' === s )
|
|
)
|
|
for (
|
|
var p = t[ s + 'Min' ];
|
|
p <= r[ s ];
|
|
p += parseInt( t[ s + 'Grid' ], 10 )
|
|
) {
|
|
l[ s ]++;
|
|
var h = $.datepicker.formatTime(
|
|
this.support.ampm ? 'hht' : 'HH',
|
|
{ hour: p },
|
|
t
|
|
);
|
|
d +=
|
|
'<td data-for="' +
|
|
s +
|
|
'">' +
|
|
h +
|
|
'</td>';
|
|
}
|
|
else
|
|
for (
|
|
var f = t[ s + 'Min' ];
|
|
f <= r[ s ];
|
|
f += parseInt( t[ s + 'Grid' ], 10 )
|
|
)
|
|
l[ s ]++,
|
|
( d +=
|
|
'<td data-for="' +
|
|
s +
|
|
'">' +
|
|
( f < 10 ? '0' : '' ) +
|
|
f +
|
|
'</td>' );
|
|
d += '</tr></table></div>';
|
|
}
|
|
d += '</dd>';
|
|
}
|
|
var _ =
|
|
null !== t.showTimezone
|
|
? t.showTimezone
|
|
: this.support.timezone;
|
|
( d +=
|
|
'<dt class="ui_tpicker_timezone_label' +
|
|
( _ ? '' : m ) +
|
|
'">' +
|
|
t.timezoneText +
|
|
'</dt>' ),
|
|
( d +=
|
|
'<dd class="ui_tpicker_timezone' +
|
|
( _ ? '' : m ) +
|
|
'"></dd>' ),
|
|
( d += '</dl></div>' );
|
|
var g = $( d );
|
|
for (
|
|
t.timeOnly === ! 0 &&
|
|
( g.prepend(
|
|
'<div class="ui-widget-header ui-helper-clearfix ui-corner-all"><div class="ui-datepicker-title">' +
|
|
t.timeOnlyTitle +
|
|
'</div></div>'
|
|
),
|
|
e
|
|
.find(
|
|
'.ui-datepicker-header, .ui-datepicker-calendar'
|
|
)
|
|
.hide() ),
|
|
u = 0,
|
|
c = i.units.length;
|
|
u < c;
|
|
u++
|
|
)
|
|
( s = i.units[ u ] ),
|
|
( n =
|
|
s.substr( 0, 1 ).toUpperCase() +
|
|
s.substr( 1 ) ),
|
|
( a =
|
|
null !== t[ 'show' + n ]
|
|
? t[ 'show' + n ]
|
|
: this.support[ s ] ),
|
|
( i[ s + '_slider' ] = i.control.create(
|
|
i,
|
|
g.find( '.ui_tpicker_' + s + '_slider' ),
|
|
s,
|
|
i[ s ],
|
|
t[ s + 'Min' ],
|
|
r[ s ],
|
|
t[ 'step' + n ]
|
|
) ),
|
|
a &&
|
|
t[ s + 'Grid' ] > 0 &&
|
|
( ( o =
|
|
( 100 * l[ s ] * t[ s + 'Grid' ] ) /
|
|
( r[ s ] - t[ s + 'Min' ] ) ),
|
|
g
|
|
.find( '.ui_tpicker_' + s + ' table' )
|
|
.css( {
|
|
width: o + '%',
|
|
marginLeft: t.isRTL
|
|
? '0'
|
|
: o / ( -2 * l[ s ] ) + '%',
|
|
marginRight: t.isRTL
|
|
? o / ( -2 * l[ s ] ) + '%'
|
|
: '0',
|
|
borderCollapse: 'collapse',
|
|
} )
|
|
.find( 'td' )
|
|
.click( function ( e ) {
|
|
var t = $( this ),
|
|
n = t.html(),
|
|
a = parseInt(
|
|
n.replace( /[^0-9]/g ),
|
|
10
|
|
),
|
|
r = n.replace( /[^apm]/gi ),
|
|
l = t.data( 'for' );
|
|
'hour' === l &&
|
|
( r.indexOf( 'p' ) !== -1 && a < 12
|
|
? ( a += 12 )
|
|
: r.indexOf( 'a' ) !== -1 &&
|
|
12 === a &&
|
|
( a = 0 ) ),
|
|
i.control.value(
|
|
i,
|
|
i[ l + '_slider' ],
|
|
s,
|
|
a
|
|
),
|
|
i._onTimeChange(),
|
|
i._onSelectHandler();
|
|
} )
|
|
.css( {
|
|
cursor: 'pointer',
|
|
width: 100 / l[ s ] + '%',
|
|
textAlign: 'center',
|
|
overflow: 'hidden',
|
|
} ) );
|
|
if (
|
|
( ( this.timezone_select = g
|
|
.find( '.ui_tpicker_timezone' )
|
|
.append( '<select></select>' )
|
|
.find( 'select' ) ),
|
|
$.fn.append.apply(
|
|
this.timezone_select,
|
|
$.map( t.timezoneList, function ( e, t ) {
|
|
return $( '<option />' )
|
|
.val( 'object' == typeof e ? e.value : e )
|
|
.text( 'object' == typeof e ? e.label : e );
|
|
} )
|
|
),
|
|
'undefined' != typeof this.timezone &&
|
|
null !== this.timezone &&
|
|
'' !== this.timezone )
|
|
) {
|
|
var M =
|
|
new Date(
|
|
this.inst.selectedYear,
|
|
this.inst.selectedMonth,
|
|
this.inst.selectedDay,
|
|
12
|
|
).getTimezoneOffset() * -1;
|
|
M === this.timezone
|
|
? selectLocalTimezone( i )
|
|
: this.timezone_select.val( this.timezone );
|
|
} else
|
|
'undefined' != typeof this.hour &&
|
|
null !== this.hour &&
|
|
'' !== this.hour
|
|
? this.timezone_select.val( t.timezone )
|
|
: selectLocalTimezone( i );
|
|
this.timezone_select.change( function () {
|
|
i._onTimeChange(),
|
|
i._onSelectHandler(),
|
|
i._afterInject();
|
|
} );
|
|
var v = e.find( '.ui-datepicker-buttonpane' );
|
|
if (
|
|
( v.length ? v.before( g ) : e.append( g ),
|
|
( this.$timeObj = g.find( '.ui_tpicker_time_input' ) ),
|
|
this.$timeObj.change( function () {
|
|
var e = i.inst.settings.timeFormat,
|
|
t = $.datepicker.parseTime( e, this.value ),
|
|
s = new Date();
|
|
t
|
|
? ( s.setHours( t.hour ),
|
|
s.setMinutes( t.minute ),
|
|
s.setSeconds( t.second ),
|
|
$.datepicker._setTime( i.inst, s ) )
|
|
: ( ( this.value = i.formattedTime ),
|
|
this.blur() );
|
|
} ),
|
|
null !== this.inst )
|
|
) {
|
|
var k = this.timeDefined;
|
|
this._onTimeChange(), ( this.timeDefined = k );
|
|
}
|
|
if ( this._defaults.addSliderAccess ) {
|
|
var T = this._defaults.sliderAccessArgs,
|
|
D = this._defaults.isRTL;
|
|
( T.isRTL = D ),
|
|
setTimeout( function () {
|
|
if (
|
|
0 === g.find( '.ui-slider-access' ).length
|
|
) {
|
|
g.find( '.ui-slider:visible' ).sliderAccess(
|
|
T
|
|
);
|
|
var e = g
|
|
.find( '.ui-slider-access:eq(0)' )
|
|
.outerWidth( ! 0 );
|
|
e &&
|
|
g
|
|
.find( 'table:visible' )
|
|
.each( function () {
|
|
var t = $( this ),
|
|
i = t.outerWidth(),
|
|
s = t
|
|
.css(
|
|
D
|
|
? 'marginRight'
|
|
: 'marginLeft'
|
|
)
|
|
.toString()
|
|
.replace( '%', '' ),
|
|
n = i - e,
|
|
a = ( s * n ) / i + '%',
|
|
r = {
|
|
width: n,
|
|
marginRight: 0,
|
|
marginLeft: 0,
|
|
};
|
|
( r[
|
|
D
|
|
? 'marginRight'
|
|
: 'marginLeft'
|
|
] = a ),
|
|
t.css( r );
|
|
} );
|
|
}
|
|
}, 10 );
|
|
}
|
|
i._limitMinMaxDateTime( this.inst, ! 0 );
|
|
}
|
|
},
|
|
_limitMinMaxDateTime: function ( e, t ) {
|
|
var i = this._defaults,
|
|
s = new Date(
|
|
e.selectedYear,
|
|
e.selectedMonth,
|
|
e.selectedDay
|
|
);
|
|
if ( this._defaults.showTimepicker ) {
|
|
if (
|
|
null !== $.datepicker._get( e, 'minDateTime' ) &&
|
|
void 0 !== $.datepicker._get( e, 'minDateTime' ) &&
|
|
s
|
|
) {
|
|
var n = $.datepicker._get( e, 'minDateTime' ),
|
|
a = new Date(
|
|
n.getFullYear(),
|
|
n.getMonth(),
|
|
n.getDate(),
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
);
|
|
( null !== this.hourMinOriginal &&
|
|
null !== this.minuteMinOriginal &&
|
|
null !== this.secondMinOriginal &&
|
|
null !== this.millisecMinOriginal &&
|
|
null !== this.microsecMinOriginal ) ||
|
|
( ( this.hourMinOriginal = i.hourMin ),
|
|
( this.minuteMinOriginal = i.minuteMin ),
|
|
( this.secondMinOriginal = i.secondMin ),
|
|
( this.millisecMinOriginal = i.millisecMin ),
|
|
( this.microsecMinOriginal = i.microsecMin ) ),
|
|
e.settings.timeOnly || a.getTime() === s.getTime()
|
|
? ( ( this._defaults.hourMin = n.getHours() ),
|
|
this.hour <= this._defaults.hourMin
|
|
? ( ( this.hour = this._defaults.hourMin ),
|
|
( this._defaults.minuteMin = n.getMinutes() ),
|
|
this.minute <=
|
|
this._defaults.minuteMin
|
|
? ( ( this.minute = this._defaults.minuteMin ),
|
|
( this._defaults.secondMin = n.getSeconds() ),
|
|
this.second <=
|
|
this._defaults.secondMin
|
|
? ( ( this.second = this._defaults.secondMin ),
|
|
( this._defaults.millisecMin = n.getMilliseconds() ),
|
|
this.millisec <=
|
|
this._defaults
|
|
.millisecMin
|
|
? ( ( this.millisec = this._defaults.millisecMin ),
|
|
( this._defaults.microsecMin = n.getMicroseconds() ) )
|
|
: ( this
|
|
.microsec <
|
|
this
|
|
._defaults
|
|
.microsecMin &&
|
|
( this.microsec = this._defaults.microsecMin ),
|
|
( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
|
|
: ( ( this._defaults.millisecMin = this.millisecMinOriginal ),
|
|
( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
|
|
: ( ( this._defaults.secondMin = this.secondMinOriginal ),
|
|
( this._defaults.millisecMin = this.millisecMinOriginal ),
|
|
( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
|
|
: ( ( this._defaults.minuteMin = this.minuteMinOriginal ),
|
|
( this._defaults.secondMin = this.secondMinOriginal ),
|
|
( this._defaults.millisecMin = this.millisecMinOriginal ),
|
|
( this._defaults.microsecMin = this.microsecMinOriginal ) ) )
|
|
: ( ( this._defaults.hourMin = this.hourMinOriginal ),
|
|
( this._defaults.minuteMin = this.minuteMinOriginal ),
|
|
( this._defaults.secondMin = this.secondMinOriginal ),
|
|
( this._defaults.millisecMin = this.millisecMinOriginal ),
|
|
( this._defaults.microsecMin = this.microsecMinOriginal ) );
|
|
}
|
|
if (
|
|
null !== $.datepicker._get( e, 'maxDateTime' ) &&
|
|
void 0 !== $.datepicker._get( e, 'maxDateTime' ) &&
|
|
s
|
|
) {
|
|
var r = $.datepicker._get( e, 'maxDateTime' ),
|
|
l = new Date(
|
|
r.getFullYear(),
|
|
r.getMonth(),
|
|
r.getDate(),
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
);
|
|
( null !== this.hourMaxOriginal &&
|
|
null !== this.minuteMaxOriginal &&
|
|
null !== this.secondMaxOriginal &&
|
|
null !== this.millisecMaxOriginal ) ||
|
|
( ( this.hourMaxOriginal = i.hourMax ),
|
|
( this.minuteMaxOriginal = i.minuteMax ),
|
|
( this.secondMaxOriginal = i.secondMax ),
|
|
( this.millisecMaxOriginal = i.millisecMax ),
|
|
( this.microsecMaxOriginal = i.microsecMax ) ),
|
|
e.settings.timeOnly || l.getTime() === s.getTime()
|
|
? ( ( this._defaults.hourMax = r.getHours() ),
|
|
this.hour >= this._defaults.hourMax
|
|
? ( ( this.hour = this._defaults.hourMax ),
|
|
( this._defaults.minuteMax = r.getMinutes() ),
|
|
this.minute >=
|
|
this._defaults.minuteMax
|
|
? ( ( this.minute = this._defaults.minuteMax ),
|
|
( this._defaults.secondMax = r.getSeconds() ),
|
|
this.second >=
|
|
this._defaults.secondMax
|
|
? ( ( this.second = this._defaults.secondMax ),
|
|
( this._defaults.millisecMax = r.getMilliseconds() ),
|
|
this.millisec >=
|
|
this._defaults
|
|
.millisecMax
|
|
? ( ( this.millisec = this._defaults.millisecMax ),
|
|
( this._defaults.microsecMax = r.getMicroseconds() ) )
|
|
: ( this
|
|
.microsec >
|
|
this
|
|
._defaults
|
|
.microsecMax &&
|
|
( this.microsec = this._defaults.microsecMax ),
|
|
( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
|
|
: ( ( this._defaults.millisecMax = this.millisecMaxOriginal ),
|
|
( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
|
|
: ( ( this._defaults.secondMax = this.secondMaxOriginal ),
|
|
( this._defaults.millisecMax = this.millisecMaxOriginal ),
|
|
( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
|
|
: ( ( this._defaults.minuteMax = this.minuteMaxOriginal ),
|
|
( this._defaults.secondMax = this.secondMaxOriginal ),
|
|
( this._defaults.millisecMax = this.millisecMaxOriginal ),
|
|
( this._defaults.microsecMax = this.microsecMaxOriginal ) ) )
|
|
: ( ( this._defaults.hourMax = this.hourMaxOriginal ),
|
|
( this._defaults.minuteMax = this.minuteMaxOriginal ),
|
|
( this._defaults.secondMax = this.secondMaxOriginal ),
|
|
( this._defaults.millisecMax = this.millisecMaxOriginal ),
|
|
( this._defaults.microsecMax = this.microsecMaxOriginal ) );
|
|
}
|
|
if ( null !== e.settings.minTime ) {
|
|
var o = new Date( '01/01/1970 ' + e.settings.minTime );
|
|
this.hour < o.getHours()
|
|
? ( ( this.hour = this._defaults.hourMin = o.getHours() ),
|
|
( this.minute = this._defaults.minuteMin = o.getMinutes() ) )
|
|
: this.hour === o.getHours() &&
|
|
this.minute < o.getMinutes()
|
|
? ( this.minute = this._defaults.minuteMin = o.getMinutes() )
|
|
: this._defaults.hourMin < o.getHours()
|
|
? ( ( this._defaults.hourMin = o.getHours() ),
|
|
( this._defaults.minuteMin = o.getMinutes() ) )
|
|
: ( this._defaults.hourMin === o.getHours() ) ===
|
|
this.hour &&
|
|
this._defaults.minuteMin < o.getMinutes()
|
|
? ( this._defaults.minuteMin = o.getMinutes() )
|
|
: ( this._defaults.minuteMin = 0 );
|
|
}
|
|
if ( null !== e.settings.maxTime ) {
|
|
var u = new Date( '01/01/1970 ' + e.settings.maxTime );
|
|
this.hour > u.getHours()
|
|
? ( ( this.hour = this._defaults.hourMax = u.getHours() ),
|
|
( this.minute = this._defaults.minuteMax = u.getMinutes() ) )
|
|
: this.hour === u.getHours() &&
|
|
this.minute > u.getMinutes()
|
|
? ( this.minute = this._defaults.minuteMax = u.getMinutes() )
|
|
: this._defaults.hourMax > u.getHours()
|
|
? ( ( this._defaults.hourMax = u.getHours() ),
|
|
( this._defaults.minuteMax = u.getMinutes() ) )
|
|
: ( this._defaults.hourMax === u.getHours() ) ===
|
|
this.hour &&
|
|
this._defaults.minuteMax > u.getMinutes()
|
|
? ( this._defaults.minuteMax = u.getMinutes() )
|
|
: ( this._defaults.minuteMax = 59 );
|
|
}
|
|
if ( void 0 !== t && t === ! 0 ) {
|
|
var c = parseInt(
|
|
this._defaults.hourMax -
|
|
( ( this._defaults.hourMax -
|
|
this._defaults.hourMin ) %
|
|
this._defaults.stepHour ),
|
|
10
|
|
),
|
|
m = parseInt(
|
|
this._defaults.minuteMax -
|
|
( ( this._defaults.minuteMax -
|
|
this._defaults.minuteMin ) %
|
|
this._defaults.stepMinute ),
|
|
10
|
|
),
|
|
d = parseInt(
|
|
this._defaults.secondMax -
|
|
( ( this._defaults.secondMax -
|
|
this._defaults.secondMin ) %
|
|
this._defaults.stepSecond ),
|
|
10
|
|
),
|
|
p = parseInt(
|
|
this._defaults.millisecMax -
|
|
( ( this._defaults.millisecMax -
|
|
this._defaults.millisecMin ) %
|
|
this._defaults.stepMillisec ),
|
|
10
|
|
),
|
|
h = parseInt(
|
|
this._defaults.microsecMax -
|
|
( ( this._defaults.microsecMax -
|
|
this._defaults.microsecMin ) %
|
|
this._defaults.stepMicrosec ),
|
|
10
|
|
);
|
|
this.hour_slider &&
|
|
( this.control.options(
|
|
this,
|
|
this.hour_slider,
|
|
'hour',
|
|
{
|
|
min: this._defaults.hourMin,
|
|
max: c,
|
|
step: this._defaults.stepHour,
|
|
}
|
|
),
|
|
this.control.value(
|
|
this,
|
|
this.hour_slider,
|
|
'hour',
|
|
this.hour -
|
|
( this.hour % this._defaults.stepHour )
|
|
) ),
|
|
this.minute_slider &&
|
|
( this.control.options(
|
|
this,
|
|
this.minute_slider,
|
|
'minute',
|
|
{
|
|
min: this._defaults.minuteMin,
|
|
max: m,
|
|
step: this._defaults.stepMinute,
|
|
}
|
|
),
|
|
this.control.value(
|
|
this,
|
|
this.minute_slider,
|
|
'minute',
|
|
this.minute -
|
|
( this.minute %
|
|
this._defaults.stepMinute )
|
|
) ),
|
|
this.second_slider &&
|
|
( this.control.options(
|
|
this,
|
|
this.second_slider,
|
|
'second',
|
|
{
|
|
min: this._defaults.secondMin,
|
|
max: d,
|
|
step: this._defaults.stepSecond,
|
|
}
|
|
),
|
|
this.control.value(
|
|
this,
|
|
this.second_slider,
|
|
'second',
|
|
this.second -
|
|
( this.second %
|
|
this._defaults.stepSecond )
|
|
) ),
|
|
this.millisec_slider &&
|
|
( this.control.options(
|
|
this,
|
|
this.millisec_slider,
|
|
'millisec',
|
|
{
|
|
min: this._defaults.millisecMin,
|
|
max: p,
|
|
step: this._defaults.stepMillisec,
|
|
}
|
|
),
|
|
this.control.value(
|
|
this,
|
|
this.millisec_slider,
|
|
'millisec',
|
|
this.millisec -
|
|
( this.millisec %
|
|
this._defaults.stepMillisec )
|
|
) ),
|
|
this.microsec_slider &&
|
|
( this.control.options(
|
|
this,
|
|
this.microsec_slider,
|
|
'microsec',
|
|
{
|
|
min: this._defaults.microsecMin,
|
|
max: h,
|
|
step: this._defaults.stepMicrosec,
|
|
}
|
|
),
|
|
this.control.value(
|
|
this,
|
|
this.microsec_slider,
|
|
'microsec',
|
|
this.microsec -
|
|
( this.microsec %
|
|
this._defaults.stepMicrosec )
|
|
) );
|
|
}
|
|
}
|
|
},
|
|
_onTimeChange: function () {
|
|
if ( this._defaults.showTimepicker ) {
|
|
var e =
|
|
!! this.hour_slider &&
|
|
this.control.value(
|
|
this,
|
|
this.hour_slider,
|
|
'hour'
|
|
),
|
|
t =
|
|
!! this.minute_slider &&
|
|
this.control.value(
|
|
this,
|
|
this.minute_slider,
|
|
'minute'
|
|
),
|
|
i =
|
|
!! this.second_slider &&
|
|
this.control.value(
|
|
this,
|
|
this.second_slider,
|
|
'second'
|
|
),
|
|
s =
|
|
!! this.millisec_slider &&
|
|
this.control.value(
|
|
this,
|
|
this.millisec_slider,
|
|
'millisec'
|
|
),
|
|
n =
|
|
!! this.microsec_slider &&
|
|
this.control.value(
|
|
this,
|
|
this.microsec_slider,
|
|
'microsec'
|
|
),
|
|
a =
|
|
!! this.timezone_select &&
|
|
this.timezone_select.val(),
|
|
r = this._defaults,
|
|
l = r.pickerTimeFormat || r.timeFormat,
|
|
o = r.pickerTimeSuffix || r.timeSuffix;
|
|
'object' == typeof e && ( e = ! 1 ),
|
|
'object' == typeof t && ( t = ! 1 ),
|
|
'object' == typeof i && ( i = ! 1 ),
|
|
'object' == typeof s && ( s = ! 1 ),
|
|
'object' == typeof n && ( n = ! 1 ),
|
|
'object' == typeof a && ( a = ! 1 ),
|
|
e !== ! 1 && ( e = parseInt( e, 10 ) ),
|
|
t !== ! 1 && ( t = parseInt( t, 10 ) ),
|
|
i !== ! 1 && ( i = parseInt( i, 10 ) ),
|
|
s !== ! 1 && ( s = parseInt( s, 10 ) ),
|
|
n !== ! 1 && ( n = parseInt( n, 10 ) ),
|
|
a !== ! 1 && ( a = a.toString() );
|
|
var u = r[ e < 12 ? 'amNames' : 'pmNames' ][ 0 ],
|
|
c =
|
|
e !== parseInt( this.hour, 10 ) ||
|
|
t !== parseInt( this.minute, 10 ) ||
|
|
i !== parseInt( this.second, 10 ) ||
|
|
s !== parseInt( this.millisec, 10 ) ||
|
|
n !== parseInt( this.microsec, 10 ) ||
|
|
( this.ampm.length > 0 &&
|
|
e < 12 !=
|
|
( $.inArray(
|
|
this.ampm.toUpperCase(),
|
|
this.amNames
|
|
) !==
|
|
-1 ) ) ||
|
|
( null !== this.timezone &&
|
|
a !== this.timezone.toString() );
|
|
c &&
|
|
( e !== ! 1 && ( this.hour = e ),
|
|
t !== ! 1 && ( this.minute = t ),
|
|
i !== ! 1 && ( this.second = i ),
|
|
s !== ! 1 && ( this.millisec = s ),
|
|
n !== ! 1 && ( this.microsec = n ),
|
|
a !== ! 1 && ( this.timezone = a ),
|
|
this.inst ||
|
|
( this.inst = $.datepicker._getInst(
|
|
this.$input[ 0 ]
|
|
) ),
|
|
this._limitMinMaxDateTime( this.inst, ! 0 ) ),
|
|
this.support.ampm && ( this.ampm = u ),
|
|
( this.formattedTime = $.datepicker.formatTime(
|
|
r.timeFormat,
|
|
this,
|
|
r
|
|
) ),
|
|
this.$timeObj &&
|
|
( l === r.timeFormat
|
|
? this.$timeObj.val( this.formattedTime + o )
|
|
: this.$timeObj.val(
|
|
$.datepicker.formatTime( l, this, r ) +
|
|
o
|
|
) ),
|
|
( this.timeDefined = ! 0 ),
|
|
c && this._updateDateTime();
|
|
}
|
|
},
|
|
_onSelectHandler: function () {
|
|
var e = this._defaults.onSelect || this.inst.settings.onSelect,
|
|
t = this.$input ? this.$input[ 0 ] : null;
|
|
e && t && e.apply( t, [ this.formattedDateTime, this ] );
|
|
},
|
|
_updateDateTime: function ( e ) {
|
|
e = this.inst || e;
|
|
var t =
|
|
e.currentYear > 0
|
|
? new Date(
|
|
e.currentYear,
|
|
e.currentMonth,
|
|
e.currentDay
|
|
)
|
|
: new Date(
|
|
e.selectedYear,
|
|
e.selectedMonth,
|
|
e.selectedDay
|
|
),
|
|
i = $.datepicker._daylightSavingAdjust( t ),
|
|
s = $.datepicker._get( e, 'dateFormat' ),
|
|
n = $.datepicker._getFormatConfig( e ),
|
|
a = null !== i && this.timeDefined;
|
|
this.formattedDate = $.datepicker.formatDate(
|
|
s,
|
|
null === i ? new Date() : i,
|
|
n
|
|
);
|
|
var r = this.formattedDate;
|
|
if (
|
|
( '' === e.lastVal &&
|
|
( ( e.currentYear = e.selectedYear ),
|
|
( e.currentMonth = e.selectedMonth ),
|
|
( e.currentDay = e.selectedDay ) ),
|
|
this._defaults.timeOnly === ! 0 &&
|
|
this._defaults.timeOnlyShowDate === ! 1
|
|
? ( r = this.formattedTime )
|
|
: ( ( this._defaults.timeOnly !== ! 0 &&
|
|
( this._defaults.alwaysSetTime || a ) ) ||
|
|
( this._defaults.timeOnly === ! 0 &&
|
|
this._defaults.timeOnlyShowDate ===
|
|
! 0 ) ) &&
|
|
( r +=
|
|
this._defaults.separator +
|
|
this.formattedTime +
|
|
this._defaults.timeSuffix ),
|
|
( this.formattedDateTime = r ),
|
|
this._defaults.showTimepicker )
|
|
)
|
|
if (
|
|
this.$altInput &&
|
|
this._defaults.timeOnly === ! 1 &&
|
|
this._defaults.altFieldTimeOnly === ! 0
|
|
)
|
|
this.$altInput.val( this.formattedTime ),
|
|
this.$input.val( this.formattedDate );
|
|
else if ( this.$altInput ) {
|
|
this.$input.val( r );
|
|
var l = '',
|
|
o =
|
|
null !== this._defaults.altSeparator
|
|
? this._defaults.altSeparator
|
|
: this._defaults.separator,
|
|
u =
|
|
null !== this._defaults.altTimeSuffix
|
|
? this._defaults.altTimeSuffix
|
|
: this._defaults.timeSuffix;
|
|
this._defaults.timeOnly ||
|
|
( ( l = this._defaults.altFormat
|
|
? $.datepicker.formatDate(
|
|
this._defaults.altFormat,
|
|
null === i ? new Date() : i,
|
|
n
|
|
)
|
|
: this.formattedDate ),
|
|
l && ( l += o ) ),
|
|
( l +=
|
|
null !== this._defaults.altTimeFormat
|
|
? $.datepicker.formatTime(
|
|
this._defaults.altTimeFormat,
|
|
this,
|
|
this._defaults
|
|
) + u
|
|
: this.formattedTime + u ),
|
|
this.$altInput.val( l );
|
|
} else this.$input.val( r );
|
|
else this.$input.val( this.formattedDate );
|
|
this.$input.trigger( 'change' );
|
|
},
|
|
_onFocus: function () {
|
|
if ( ! this.$input.val() && this._defaults.defaultValue ) {
|
|
this.$input.val( this._defaults.defaultValue );
|
|
var e = $.datepicker._getInst( this.$input.get( 0 ) ),
|
|
t = $.datepicker._get( e, 'timepicker' );
|
|
if (
|
|
t &&
|
|
t._defaults.timeOnly &&
|
|
e.input.val() !== e.lastVal
|
|
)
|
|
try {
|
|
$.datepicker._updateDatepicker( e );
|
|
} catch ( e ) {
|
|
$.timepicker.log( e );
|
|
}
|
|
}
|
|
},
|
|
_controls: {
|
|
slider: {
|
|
create: function ( e, t, i, s, n, a, r ) {
|
|
var l = e._defaults.isRTL;
|
|
return t.prop( 'slide', null ).slider( {
|
|
orientation: 'horizontal',
|
|
value: l ? s * -1 : s,
|
|
min: l ? a * -1 : n,
|
|
max: l ? n * -1 : a,
|
|
step: r,
|
|
slide: function ( t, s ) {
|
|
e.control.value(
|
|
e,
|
|
$( this ),
|
|
i,
|
|
l ? s.value * -1 : s.value
|
|
),
|
|
e._onTimeChange();
|
|
},
|
|
stop: function ( t, i ) {
|
|
e._onSelectHandler();
|
|
},
|
|
} );
|
|
},
|
|
options: function ( e, t, i, s, n ) {
|
|
if ( e._defaults.isRTL ) {
|
|
if ( 'string' == typeof s )
|
|
return 'min' === s || 'max' === s
|
|
? void 0 !== n
|
|
? t.slider( s, n * -1 )
|
|
: Math.abs( t.slider( s ) )
|
|
: t.slider( s );
|
|
var a = s.min,
|
|
r = s.max;
|
|
return (
|
|
( s.min = s.max = null ),
|
|
void 0 !== a && ( s.max = a * -1 ),
|
|
void 0 !== r && ( s.min = r * -1 ),
|
|
t.slider( s )
|
|
);
|
|
}
|
|
return 'string' == typeof s && void 0 !== n
|
|
? t.slider( s, n )
|
|
: t.slider( s );
|
|
},
|
|
value: function ( e, t, i, s ) {
|
|
return e._defaults.isRTL
|
|
? void 0 !== s
|
|
? t.slider( 'value', s * -1 )
|
|
: Math.abs( t.slider( 'value' ) )
|
|
: void 0 !== s
|
|
? t.slider( 'value', s )
|
|
: t.slider( 'value' );
|
|
},
|
|
},
|
|
select: {
|
|
create: function ( e, t, i, s, n, a, r ) {
|
|
for (
|
|
var l =
|
|
'<select class="ui-timepicker-select ui-state-default ui-corner-all" data-unit="' +
|
|
i +
|
|
'" data-min="' +
|
|
n +
|
|
'" data-max="' +
|
|
a +
|
|
'" data-step="' +
|
|
r +
|
|
'">',
|
|
o =
|
|
e._defaults.pickerTimeFormat ||
|
|
e._defaults.timeFormat,
|
|
u = n;
|
|
u <= a;
|
|
u += r
|
|
)
|
|
( l +=
|
|
'<option value="' +
|
|
u +
|
|
'"' +
|
|
( u === s ? ' selected' : '' ) +
|
|
'>' ),
|
|
( l +=
|
|
'hour' === i
|
|
? $.datepicker.formatTime(
|
|
$.trim(
|
|
o.replace( /[^ht ]/gi, '' )
|
|
),
|
|
{ hour: u },
|
|
e._defaults
|
|
)
|
|
: 'millisec' === i ||
|
|
'microsec' === i ||
|
|
u >= 10
|
|
? u
|
|
: '0' + u.toString() ),
|
|
( l += '</option>' );
|
|
return (
|
|
( l += '</select>' ),
|
|
t.children( 'select' ).remove(),
|
|
$( l )
|
|
.appendTo( t )
|
|
.change( function ( t ) {
|
|
e._onTimeChange(),
|
|
e._onSelectHandler(),
|
|
e._afterInject();
|
|
} ),
|
|
t
|
|
);
|
|
},
|
|
options: function ( e, t, i, s, n ) {
|
|
var a = {},
|
|
r = t.children( 'select' );
|
|
if ( 'string' == typeof s ) {
|
|
if ( void 0 === n ) return r.data( s );
|
|
a[ s ] = n;
|
|
} else a = s;
|
|
return e.control.create(
|
|
e,
|
|
t,
|
|
r.data( 'unit' ),
|
|
r.val(),
|
|
a.min >= 0 ? a.min : r.data( 'min' ),
|
|
a.max || r.data( 'max' ),
|
|
a.step || r.data( 'step' )
|
|
);
|
|
},
|
|
value: function ( e, t, i, s ) {
|
|
var n = t.children( 'select' );
|
|
return void 0 !== s ? n.val( s ) : n.val();
|
|
},
|
|
},
|
|
},
|
|
} ),
|
|
$.fn.extend( {
|
|
timepicker: function ( e ) {
|
|
e = e || {};
|
|
var t = Array.prototype.slice.call( arguments );
|
|
return (
|
|
'object' == typeof e &&
|
|
( t[ 0 ] = $.extend( e, { timeOnly: ! 0 } ) ),
|
|
$( this ).each( function () {
|
|
$.fn.datetimepicker.apply( $( this ), t );
|
|
} )
|
|
);
|
|
},
|
|
datetimepicker: function ( e ) {
|
|
e = e || {};
|
|
var t = arguments;
|
|
return 'string' == typeof e
|
|
? 'getDate' === e ||
|
|
( 'option' === e &&
|
|
2 === t.length &&
|
|
'string' == typeof t[ 1 ] )
|
|
? $.fn.datepicker.apply( $( this[ 0 ] ), t )
|
|
: this.each( function () {
|
|
var e = $( this );
|
|
e.datepicker.apply( e, t );
|
|
} )
|
|
: this.each( function () {
|
|
var t = $( this );
|
|
t.datepicker(
|
|
$.timepicker._newInst( t, e )._defaults
|
|
);
|
|
} );
|
|
},
|
|
} ),
|
|
( $.datepicker.parseDateTime = function ( e, t, i, s, n ) {
|
|
var a = parseDateTimeInternal( e, t, i, s, n );
|
|
if ( a.timeObj ) {
|
|
var r = a.timeObj;
|
|
a.date.setHours( r.hour, r.minute, r.second, r.millisec ),
|
|
a.date.setMicroseconds( r.microsec );
|
|
}
|
|
return a.date;
|
|
} ),
|
|
( $.datepicker.parseTime = function ( e, t, i ) {
|
|
var s = extendRemove(
|
|
extendRemove( {}, $.timepicker._defaults ),
|
|
i || {}
|
|
),
|
|
n = e.replace( /\'.*?\'/g, '' ).indexOf( 'Z' ) !== -1,
|
|
a = function ( e, t, i ) {
|
|
var s = function ( e, t ) {
|
|
var i = [];
|
|
return (
|
|
e && $.merge( i, e ),
|
|
t && $.merge( i, t ),
|
|
( i = $.map( i, function ( e ) {
|
|
return e.replace(
|
|
/[.*+?|()\[\]{}\\]/g,
|
|
'\\$&'
|
|
);
|
|
} ) ),
|
|
'(' + i.join( '|' ) + ')?'
|
|
);
|
|
},
|
|
n = function ( e ) {
|
|
var t = e
|
|
.toLowerCase()
|
|
.match(
|
|
/(h{1,2}|m{1,2}|s{1,2}|l{1}|c{1}|t{1,2}|z|'.*?')/g
|
|
),
|
|
i = {
|
|
h: -1,
|
|
m: -1,
|
|
s: -1,
|
|
l: -1,
|
|
c: -1,
|
|
t: -1,
|
|
z: -1,
|
|
};
|
|
if ( t )
|
|
for ( var s = 0; s < t.length; s++ )
|
|
i[ t[ s ].toString().charAt( 0 ) ] ===
|
|
-1 &&
|
|
( i[
|
|
t[ s ].toString().charAt( 0 )
|
|
] = s + 1 );
|
|
return i;
|
|
},
|
|
a =
|
|
'^' +
|
|
e
|
|
.toString()
|
|
.replace(
|
|
/([hH]{1,2}|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
|
|
function ( e ) {
|
|
var t = e.length;
|
|
switch (
|
|
e.charAt( 0 ).toLowerCase()
|
|
) {
|
|
case 'h':
|
|
return 1 === t
|
|
? '(\\d?\\d)'
|
|
: '(\\d{' + t + '})';
|
|
case 'm':
|
|
return 1 === t
|
|
? '(\\d?\\d)'
|
|
: '(\\d{' + t + '})';
|
|
case 's':
|
|
return 1 === t
|
|
? '(\\d?\\d)'
|
|
: '(\\d{' + t + '})';
|
|
case 'l':
|
|
return '(\\d?\\d?\\d)';
|
|
case 'c':
|
|
return '(\\d?\\d?\\d)';
|
|
case 'z':
|
|
return '(z|[-+]\\d\\d:?\\d\\d|\\S+)?';
|
|
case 't':
|
|
return s(
|
|
i.amNames,
|
|
i.pmNames
|
|
);
|
|
default:
|
|
return (
|
|
'(' +
|
|
e
|
|
.replace(
|
|
/\'/g,
|
|
''
|
|
)
|
|
.replace(
|
|
/(\.|\$|\^|\\|\/|\(|\)|\[|\]|\?|\+|\*)/g,
|
|
function ( e ) {
|
|
return (
|
|
'\\' + e
|
|
);
|
|
}
|
|
) +
|
|
')?'
|
|
);
|
|
}
|
|
}
|
|
)
|
|
.replace( /\s/g, '\\s?' ) +
|
|
i.timeSuffix +
|
|
'$',
|
|
r = n( e ),
|
|
l = '',
|
|
o;
|
|
o = t.match( new RegExp( a, 'i' ) );
|
|
var u = {
|
|
hour: 0,
|
|
minute: 0,
|
|
second: 0,
|
|
millisec: 0,
|
|
microsec: 0,
|
|
};
|
|
return (
|
|
!! o &&
|
|
( r.t !== -1 &&
|
|
( void 0 === o[ r.t ] || 0 === o[ r.t ].length
|
|
? ( ( l = '' ), ( u.ampm = '' ) )
|
|
: ( ( l =
|
|
$.inArray(
|
|
o[ r.t ].toUpperCase(),
|
|
$.map(
|
|
i.amNames,
|
|
function ( e, t ) {
|
|
return e.toUpperCase();
|
|
}
|
|
)
|
|
) !== -1
|
|
? 'AM'
|
|
: 'PM' ),
|
|
( u.ampm =
|
|
i[
|
|
'AM' === l
|
|
? 'amNames'
|
|
: 'pmNames'
|
|
][ 0 ] ) ) ),
|
|
r.h !== -1 &&
|
|
( 'AM' === l && '12' === o[ r.h ]
|
|
? ( u.hour = 0 )
|
|
: 'PM' === l && '12' !== o[ r.h ]
|
|
? ( u.hour = parseInt( o[ r.h ], 10 ) + 12 )
|
|
: ( u.hour = Number( o[ r.h ] ) ) ),
|
|
r.m !== -1 && ( u.minute = Number( o[ r.m ] ) ),
|
|
r.s !== -1 && ( u.second = Number( o[ r.s ] ) ),
|
|
r.l !== -1 && ( u.millisec = Number( o[ r.l ] ) ),
|
|
r.c !== -1 && ( u.microsec = Number( o[ r.c ] ) ),
|
|
r.z !== -1 &&
|
|
void 0 !== o[ r.z ] &&
|
|
( u.timezone = $.timepicker.timezoneOffsetNumber(
|
|
o[ r.z ]
|
|
) ),
|
|
u )
|
|
);
|
|
},
|
|
r = function ( e, t, i ) {
|
|
try {
|
|
var s = new Date( '2012-01-01 ' + t );
|
|
if (
|
|
isNaN( s.getTime() ) &&
|
|
( ( s = new Date( '2012-01-01T' + t ) ),
|
|
isNaN( s.getTime() ) &&
|
|
( ( s = new Date( '01/01/2012 ' + t ) ),
|
|
isNaN( s.getTime() ) ) )
|
|
)
|
|
throw (
|
|
'Unable to parse time with native Date: ' +
|
|
t
|
|
);
|
|
return {
|
|
hour: s.getHours(),
|
|
minute: s.getMinutes(),
|
|
second: s.getSeconds(),
|
|
millisec: s.getMilliseconds(),
|
|
microsec: s.getMicroseconds(),
|
|
timezone: s.getTimezoneOffset() * -1,
|
|
};
|
|
} catch ( s ) {
|
|
try {
|
|
return a( e, t, i );
|
|
} catch ( i ) {
|
|
$.timepicker.log(
|
|
'Unable to parse \ntimeString: ' +
|
|
t +
|
|
'\ntimeFormat: ' +
|
|
e
|
|
);
|
|
}
|
|
}
|
|
return ! 1;
|
|
};
|
|
return 'function' == typeof s.parse
|
|
? s.parse( e, t, s )
|
|
: 'loose' === s.parse
|
|
? r( e, t, s )
|
|
: a( e, t, s );
|
|
} ),
|
|
( $.datepicker.formatTime = function ( e, t, i ) {
|
|
( i = i || {} ),
|
|
( i = $.extend( {}, $.timepicker._defaults, i ) ),
|
|
( t = $.extend(
|
|
{
|
|
hour: 0,
|
|
minute: 0,
|
|
second: 0,
|
|
millisec: 0,
|
|
microsec: 0,
|
|
timezone: null,
|
|
},
|
|
t
|
|
) );
|
|
var s = e,
|
|
n = i.amNames[ 0 ],
|
|
a = parseInt( t.hour, 10 );
|
|
return (
|
|
a > 11 && ( n = i.pmNames[ 0 ] ),
|
|
( s = s.replace(
|
|
/(?:HH?|hh?|mm?|ss?|[tT]{1,2}|[zZ]|[lc]|'.*?')/g,
|
|
function ( e ) {
|
|
switch ( e ) {
|
|
case 'HH':
|
|
return ( '0' + a ).slice( -2 );
|
|
case 'H':
|
|
return a;
|
|
case 'hh':
|
|
return ( '0' + convert24to12( a ) ).slice(
|
|
-2
|
|
);
|
|
case 'h':
|
|
return convert24to12( a );
|
|
case 'mm':
|
|
return ( '0' + t.minute ).slice( -2 );
|
|
case 'm':
|
|
return t.minute;
|
|
case 'ss':
|
|
return ( '0' + t.second ).slice( -2 );
|
|
case 's':
|
|
return t.second;
|
|
case 'l':
|
|
return ( '00' + t.millisec ).slice( -3 );
|
|
case 'c':
|
|
return ( '00' + t.microsec ).slice( -3 );
|
|
case 'z':
|
|
return $.timepicker.timezoneOffsetString(
|
|
null === t.timezone
|
|
? i.timezone
|
|
: t.timezone,
|
|
! 1
|
|
);
|
|
case 'Z':
|
|
return $.timepicker.timezoneOffsetString(
|
|
null === t.timezone
|
|
? i.timezone
|
|
: t.timezone,
|
|
! 0
|
|
);
|
|
case 'T':
|
|
return n.charAt( 0 ).toUpperCase();
|
|
case 'TT':
|
|
return n.toUpperCase();
|
|
case 't':
|
|
return n.charAt( 0 ).toLowerCase();
|
|
case 'tt':
|
|
return n.toLowerCase();
|
|
default:
|
|
return e.replace( /'/g, '' );
|
|
}
|
|
}
|
|
) )
|
|
);
|
|
} ),
|
|
( $.datepicker._base_selectDate = $.datepicker._selectDate ),
|
|
( $.datepicker._selectDate = function ( e, t ) {
|
|
var i = this._getInst( $( e )[ 0 ] ),
|
|
s = this._get( i, 'timepicker' ),
|
|
n;
|
|
s && i.settings.showTimepicker
|
|
? ( s._limitMinMaxDateTime( i, ! 0 ),
|
|
( n = i.inline ),
|
|
( i.inline = i.stay_open = ! 0 ),
|
|
this._base_selectDate( e, t ),
|
|
( i.inline = n ),
|
|
( i.stay_open = ! 1 ),
|
|
this._notifyChange( i ),
|
|
this._updateDatepicker( i ) )
|
|
: this._base_selectDate( e, t );
|
|
} ),
|
|
( $.datepicker._base_updateDatepicker =
|
|
$.datepicker._updateDatepicker ),
|
|
( $.datepicker._updateDatepicker = function ( e ) {
|
|
var t = e.input[ 0 ];
|
|
if (
|
|
! (
|
|
( $.datepicker._curInst &&
|
|
$.datepicker._curInst !== e &&
|
|
$.datepicker._datepickerShowing &&
|
|
$.datepicker._lastInput !== t ) ||
|
|
( 'boolean' == typeof e.stay_open &&
|
|
e.stay_open !== ! 1 )
|
|
)
|
|
) {
|
|
this._base_updateDatepicker( e );
|
|
var i = this._get( e, 'timepicker' );
|
|
i && i._addTimePicker( e );
|
|
}
|
|
} ),
|
|
( $.datepicker._base_doKeyPress = $.datepicker._doKeyPress ),
|
|
( $.datepicker._doKeyPress = function ( e ) {
|
|
var t = $.datepicker._getInst( e.target ),
|
|
i = $.datepicker._get( t, 'timepicker' );
|
|
if ( i && $.datepicker._get( t, 'constrainInput' ) ) {
|
|
var s = i.support.ampm,
|
|
n =
|
|
null !== i._defaults.showTimezone
|
|
? i._defaults.showTimezone
|
|
: i.support.timezone,
|
|
a = $.datepicker._possibleChars(
|
|
$.datepicker._get( t, 'dateFormat' )
|
|
),
|
|
r =
|
|
i._defaults.timeFormat
|
|
.toString()
|
|
.replace( /[hms]/g, '' )
|
|
.replace( /TT/g, s ? 'APM' : '' )
|
|
.replace( /Tt/g, s ? 'AaPpMm' : '' )
|
|
.replace( /tT/g, s ? 'AaPpMm' : '' )
|
|
.replace( /T/g, s ? 'AP' : '' )
|
|
.replace( /tt/g, s ? 'apm' : '' )
|
|
.replace( /t/g, s ? 'ap' : '' ) +
|
|
' ' +
|
|
i._defaults.separator +
|
|
i._defaults.timeSuffix +
|
|
( n ? i._defaults.timezoneList.join( '' ) : '' ) +
|
|
i._defaults.amNames.join( '' ) +
|
|
i._defaults.pmNames.join( '' ) +
|
|
a,
|
|
l = String.fromCharCode(
|
|
void 0 === e.charCode ? e.keyCode : e.charCode
|
|
);
|
|
return e.ctrlKey || l < ' ' || ! a || r.indexOf( l ) > -1;
|
|
}
|
|
return $.datepicker._base_doKeyPress( e );
|
|
} ),
|
|
( $.datepicker._base_updateAlternate =
|
|
$.datepicker._updateAlternate ),
|
|
( $.datepicker._updateAlternate = function ( e ) {
|
|
var t = this._get( e, 'timepicker' );
|
|
if ( t ) {
|
|
var i = t._defaults.altField;
|
|
if ( i ) {
|
|
var s = t._defaults.altFormat || t._defaults.dateFormat,
|
|
n = this._getDate( e ),
|
|
a = $.datepicker._getFormatConfig( e ),
|
|
r = '',
|
|
l = t._defaults.altSeparator
|
|
? t._defaults.altSeparator
|
|
: t._defaults.separator,
|
|
o = t._defaults.altTimeSuffix
|
|
? t._defaults.altTimeSuffix
|
|
: t._defaults.timeSuffix,
|
|
u =
|
|
null !== t._defaults.altTimeFormat
|
|
? t._defaults.altTimeFormat
|
|
: t._defaults.timeFormat;
|
|
( r +=
|
|
$.datepicker.formatTime( u, t, t._defaults ) + o ),
|
|
t._defaults.timeOnly ||
|
|
t._defaults.altFieldTimeOnly ||
|
|
null === n ||
|
|
( r = t._defaults.altFormat
|
|
? $.datepicker.formatDate(
|
|
t._defaults.altFormat,
|
|
n,
|
|
a
|
|
) +
|
|
l +
|
|
r
|
|
: t.formattedDate + l + r ),
|
|
$( i ).val( e.input.val() ? r : '' );
|
|
}
|
|
} else $.datepicker._base_updateAlternate( e );
|
|
} ),
|
|
( $.datepicker._base_doKeyUp = $.datepicker._doKeyUp ),
|
|
( $.datepicker._doKeyUp = function ( e ) {
|
|
var t = $.datepicker._getInst( e.target ),
|
|
i = $.datepicker._get( t, 'timepicker' );
|
|
if ( i && i._defaults.timeOnly && t.input.val() !== t.lastVal )
|
|
try {
|
|
$.datepicker._updateDatepicker( t );
|
|
} catch ( e ) {
|
|
$.timepicker.log( e );
|
|
}
|
|
return $.datepicker._base_doKeyUp( e );
|
|
} ),
|
|
( $.datepicker._base_gotoToday = $.datepicker._gotoToday ),
|
|
( $.datepicker._gotoToday = function ( e ) {
|
|
var t = this._getInst( $( e )[ 0 ] );
|
|
this._base_gotoToday( e );
|
|
var i = this._get( t, 'timepicker' );
|
|
if ( i ) {
|
|
var s = $.timepicker.timezoneOffsetNumber( i.timezone ),
|
|
n = new Date();
|
|
n.setMinutes(
|
|
n.getMinutes() +
|
|
n.getTimezoneOffset() +
|
|
parseInt( s, 10 )
|
|
),
|
|
this._setTime( t, n ),
|
|
this._setDate( t, n ),
|
|
i._onSelectHandler();
|
|
}
|
|
} ),
|
|
( $.datepicker._disableTimepickerDatepicker = function ( e ) {
|
|
var t = this._getInst( e );
|
|
if ( t ) {
|
|
var i = this._get( t, 'timepicker' );
|
|
$( e ).datepicker( 'getDate' ),
|
|
i &&
|
|
( ( t.settings.showTimepicker = ! 1 ),
|
|
( i._defaults.showTimepicker = ! 1 ),
|
|
i._updateDateTime( t ) );
|
|
}
|
|
} ),
|
|
( $.datepicker._enableTimepickerDatepicker = function ( e ) {
|
|
var t = this._getInst( e );
|
|
if ( t ) {
|
|
var i = this._get( t, 'timepicker' );
|
|
$( e ).datepicker( 'getDate' ),
|
|
i &&
|
|
( ( t.settings.showTimepicker = ! 0 ),
|
|
( i._defaults.showTimepicker = ! 0 ),
|
|
i._addTimePicker( t ),
|
|
i._updateDateTime( t ) );
|
|
}
|
|
} ),
|
|
( $.datepicker._setTime = function ( e, t ) {
|
|
var i = this._get( e, 'timepicker' );
|
|
if ( i ) {
|
|
var s = i._defaults;
|
|
( i.hour = t ? t.getHours() : s.hour ),
|
|
( i.minute = t ? t.getMinutes() : s.minute ),
|
|
( i.second = t ? t.getSeconds() : s.second ),
|
|
( i.millisec = t ? t.getMilliseconds() : s.millisec ),
|
|
( i.microsec = t ? t.getMicroseconds() : s.microsec ),
|
|
i._limitMinMaxDateTime( e, ! 0 ),
|
|
i._onTimeChange(),
|
|
i._updateDateTime( e );
|
|
}
|
|
} ),
|
|
( $.datepicker._setTimeDatepicker = function ( e, t, i ) {
|
|
var s = this._getInst( e );
|
|
if ( s ) {
|
|
var n = this._get( s, 'timepicker' );
|
|
if ( n ) {
|
|
this._setDateFromField( s );
|
|
var a;
|
|
t &&
|
|
( 'string' == typeof t
|
|
? ( n._parseTime( t, i ),
|
|
( a = new Date() ),
|
|
a.setHours(
|
|
n.hour,
|
|
n.minute,
|
|
n.second,
|
|
n.millisec
|
|
),
|
|
a.setMicroseconds( n.microsec ) )
|
|
: ( ( a = new Date( t.getTime() ) ),
|
|
a.setMicroseconds( t.getMicroseconds() ) ),
|
|
'Invalid Date' === a.toString() && ( a = void 0 ),
|
|
this._setTime( s, a ) );
|
|
}
|
|
}
|
|
} ),
|
|
( $.datepicker._base_setDateDatepicker =
|
|
$.datepicker._setDateDatepicker ),
|
|
( $.datepicker._setDateDatepicker = function ( e, t ) {
|
|
var i = this._getInst( e ),
|
|
s = t;
|
|
if ( i ) {
|
|
'string' == typeof t &&
|
|
( ( s = new Date( t ) ),
|
|
s.getTime() ||
|
|
( this._base_setDateDatepicker.apply(
|
|
this,
|
|
arguments
|
|
),
|
|
( s = $( e ).datepicker( 'getDate' ) ) ) );
|
|
var n = this._get( i, 'timepicker' ),
|
|
a;
|
|
s instanceof Date
|
|
? ( ( a = new Date( s.getTime() ) ),
|
|
a.setMicroseconds( s.getMicroseconds() ) )
|
|
: ( a = s ),
|
|
n &&
|
|
a &&
|
|
( n.support.timezone ||
|
|
null !== n._defaults.timezone ||
|
|
( n.timezone = a.getTimezoneOffset() * -1 ),
|
|
( s = $.timepicker.timezoneAdjust(
|
|
s,
|
|
$.timepicker.timezoneOffsetString(
|
|
-s.getTimezoneOffset()
|
|
),
|
|
n.timezone
|
|
) ),
|
|
( a = $.timepicker.timezoneAdjust(
|
|
a,
|
|
$.timepicker.timezoneOffsetString(
|
|
-a.getTimezoneOffset()
|
|
),
|
|
n.timezone
|
|
) ) ),
|
|
this._updateDatepicker( i ),
|
|
this._base_setDateDatepicker.apply( this, arguments ),
|
|
this._setTimeDatepicker( e, a, ! 0 );
|
|
}
|
|
} ),
|
|
( $.datepicker._base_getDateDatepicker =
|
|
$.datepicker._getDateDatepicker ),
|
|
( $.datepicker._getDateDatepicker = function ( e, t ) {
|
|
var i = this._getInst( e );
|
|
if ( i ) {
|
|
var s = this._get( i, 'timepicker' );
|
|
if ( s ) {
|
|
void 0 === i.lastVal && this._setDateFromField( i, t );
|
|
var n = this._getDate( i ),
|
|
a = null;
|
|
return (
|
|
( a =
|
|
s.$altInput && s._defaults.altFieldTimeOnly
|
|
? s.$input.val() + ' ' + s.$altInput.val()
|
|
: 'INPUT' !== s.$input.get( 0 ).tagName &&
|
|
s.$altInput
|
|
? s.$altInput.val()
|
|
: s.$input.val() ),
|
|
n &&
|
|
s._parseTime( a, ! i.settings.timeOnly ) &&
|
|
( n.setHours(
|
|
s.hour,
|
|
s.minute,
|
|
s.second,
|
|
s.millisec
|
|
),
|
|
n.setMicroseconds( s.microsec ),
|
|
null != s.timezone &&
|
|
( s.support.timezone ||
|
|
null !== s._defaults.timezone ||
|
|
( s.timezone =
|
|
n.getTimezoneOffset() * -1 ),
|
|
( n = $.timepicker.timezoneAdjust(
|
|
n,
|
|
s.timezone,
|
|
$.timepicker.timezoneOffsetString(
|
|
-n.getTimezoneOffset()
|
|
)
|
|
) ) ) ),
|
|
n
|
|
);
|
|
}
|
|
return this._base_getDateDatepicker( e, t );
|
|
}
|
|
} ),
|
|
( $.datepicker._base_parseDate = $.datepicker.parseDate ),
|
|
( $.datepicker.parseDate = function ( e, t, i ) {
|
|
var s;
|
|
try {
|
|
s = this._base_parseDate( e, t, i );
|
|
} catch ( n ) {
|
|
if ( ! ( n.indexOf( ':' ) >= 0 ) ) throw n;
|
|
( s = this._base_parseDate(
|
|
e,
|
|
t.substring(
|
|
0,
|
|
t.length - ( n.length - n.indexOf( ':' ) - 2 )
|
|
),
|
|
i
|
|
) ),
|
|
$.timepicker.log(
|
|
'Error parsing the date string: ' +
|
|
n +
|
|
'\ndate string = ' +
|
|
t +
|
|
'\ndate format = ' +
|
|
e
|
|
);
|
|
}
|
|
return s;
|
|
} ),
|
|
( $.datepicker._base_formatDate = $.datepicker._formatDate ),
|
|
( $.datepicker._formatDate = function ( e, t, i, s ) {
|
|
var n = this._get( e, 'timepicker' );
|
|
return n
|
|
? ( n._updateDateTime( e ), n.$input.val() )
|
|
: this._base_formatDate( e );
|
|
} ),
|
|
( $.datepicker._base_optionDatepicker =
|
|
$.datepicker._optionDatepicker ),
|
|
( $.datepicker._optionDatepicker = function ( e, t, i ) {
|
|
var s = this._getInst( e ),
|
|
n;
|
|
if ( ! s ) return null;
|
|
var a = this._get( s, 'timepicker' );
|
|
if ( a ) {
|
|
var r = null,
|
|
l = null,
|
|
o = null,
|
|
u = a._defaults.evnts,
|
|
c = {},
|
|
m,
|
|
d,
|
|
p,
|
|
h;
|
|
if ( 'string' == typeof t ) {
|
|
if ( 'minDate' === t || 'minDateTime' === t ) r = i;
|
|
else if ( 'maxDate' === t || 'maxDateTime' === t )
|
|
l = i;
|
|
else if ( 'onSelect' === t ) o = i;
|
|
else if ( u.hasOwnProperty( t ) ) {
|
|
if ( 'undefined' == typeof i ) return u[ t ];
|
|
( c[ t ] = i ), ( n = {} );
|
|
}
|
|
} else if ( 'object' == typeof t ) {
|
|
t.minDate
|
|
? ( r = t.minDate )
|
|
: t.minDateTime
|
|
? ( r = t.minDateTime )
|
|
: t.maxDate
|
|
? ( l = t.maxDate )
|
|
: t.maxDateTime && ( l = t.maxDateTime );
|
|
for ( m in u )
|
|
u.hasOwnProperty( m ) &&
|
|
t[ m ] &&
|
|
( c[ m ] = t[ m ] );
|
|
}
|
|
for ( m in c )
|
|
c.hasOwnProperty( m ) &&
|
|
( ( u[ m ] = c[ m ] ),
|
|
n || ( n = $.extend( {}, t ) ),
|
|
delete n[ m ] );
|
|
if ( n && isEmptyObject( n ) ) return;
|
|
if (
|
|
( r
|
|
? ( ( r = 0 === r ? new Date() : new Date( r ) ),
|
|
( a._defaults.minDate = r ),
|
|
( a._defaults.minDateTime = r ) )
|
|
: l
|
|
? ( ( l = 0 === l ? new Date() : new Date( l ) ),
|
|
( a._defaults.maxDate = l ),
|
|
( a._defaults.maxDateTime = l ) )
|
|
: o && ( a._defaults.onSelect = o ),
|
|
r || l )
|
|
)
|
|
return (
|
|
( h = $( e ) ),
|
|
( p = h.datetimepicker( 'getDate' ) ),
|
|
( d = this._base_optionDatepicker.call(
|
|
$.datepicker,
|
|
e,
|
|
n || t,
|
|
i
|
|
) ),
|
|
h.datetimepicker( 'setDate', p ),
|
|
d
|
|
);
|
|
}
|
|
return void 0 === i
|
|
? this._base_optionDatepicker.call( $.datepicker, e, t )
|
|
: this._base_optionDatepicker.call(
|
|
$.datepicker,
|
|
e,
|
|
n || t,
|
|
i
|
|
);
|
|
} );
|
|
var isEmptyObject = function ( e ) {
|
|
var t;
|
|
for ( t in e ) if ( e.hasOwnProperty( t ) ) return ! 1;
|
|
return ! 0;
|
|
},
|
|
extendRemove = function ( e, t ) {
|
|
$.extend( e, t );
|
|
for ( var i in t )
|
|
( null !== t[ i ] && void 0 !== t[ i ] ) ||
|
|
( e[ i ] = t[ i ] );
|
|
return e;
|
|
},
|
|
detectSupport = function ( e ) {
|
|
var t = e.replace( /'.*?'/g, '' ).toLowerCase(),
|
|
i = function ( e, t ) {
|
|
return e.indexOf( t ) !== -1;
|
|
};
|
|
return {
|
|
hour: i( t, 'h' ),
|
|
minute: i( t, 'm' ),
|
|
second: i( t, 's' ),
|
|
millisec: i( t, 'l' ),
|
|
microsec: i( t, 'c' ),
|
|
timezone: i( t, 'z' ),
|
|
ampm: i( t, 't' ) && i( e, 'h' ),
|
|
iso8601: i( e, 'Z' ),
|
|
};
|
|
},
|
|
convert24to12 = function ( e ) {
|
|
return ( e %= 12 ), 0 === e && ( e = 12 ), String( e );
|
|
},
|
|
computeEffectiveSetting = function ( e, t ) {
|
|
return e && e[ t ] ? e[ t ] : $.timepicker._defaults[ t ];
|
|
},
|
|
splitDateTime = function ( e, t ) {
|
|
var i = computeEffectiveSetting( t, 'separator' ),
|
|
s = computeEffectiveSetting( t, 'timeFormat' ),
|
|
n = s.split( i ),
|
|
a = n.length,
|
|
r = e.split( i ),
|
|
l = r.length;
|
|
return l > 1
|
|
? {
|
|
dateString: r.splice( 0, l - a ).join( i ),
|
|
timeString: r.splice( 0, a ).join( i ),
|
|
}
|
|
: { dateString: e, timeString: '' };
|
|
},
|
|
parseDateTimeInternal = function ( e, t, i, s, n ) {
|
|
var a, r, l;
|
|
if (
|
|
( ( r = splitDateTime( i, n ) ),
|
|
( a = $.datepicker._base_parseDate( e, r.dateString, s ) ),
|
|
'' === r.timeString )
|
|
)
|
|
return { date: a };
|
|
if (
|
|
( ( l = $.datepicker.parseTime( t, r.timeString, n ) ),
|
|
! l )
|
|
)
|
|
throw 'Wrong time format';
|
|
return { date: a, timeObj: l };
|
|
},
|
|
selectLocalTimezone = function ( e, t ) {
|
|
if ( e && e.timezone_select ) {
|
|
var i = t || new Date();
|
|
e.timezone_select.val( -i.getTimezoneOffset() );
|
|
}
|
|
};
|
|
( $.timepicker = new Timepicker() ),
|
|
( $.timepicker.timezoneOffsetString = function ( e, t ) {
|
|
if ( isNaN( e ) || e > 840 || e < -720 ) return e;
|
|
var i = e,
|
|
s = i % 60,
|
|
n = ( i - s ) / 60,
|
|
a = t ? ':' : '',
|
|
r =
|
|
( i >= 0 ? '+' : '-' ) +
|
|
( '0' + Math.abs( n ) ).slice( -2 ) +
|
|
a +
|
|
( '0' + Math.abs( s ) ).slice( -2 );
|
|
return '+00:00' === r ? 'Z' : r;
|
|
} ),
|
|
( $.timepicker.timezoneOffsetNumber = function ( e ) {
|
|
var t = e.toString().replace( ':', '' );
|
|
return 'Z' === t.toUpperCase()
|
|
? 0
|
|
: /^(\-|\+)\d{4}$/.test( t )
|
|
? ( '-' === t.substr( 0, 1 ) ? -1 : 1 ) *
|
|
( 60 * parseInt( t.substr( 1, 2 ), 10 ) +
|
|
parseInt( t.substr( 3, 2 ), 10 ) )
|
|
: parseInt( e, 10 );
|
|
} ),
|
|
( $.timepicker.timezoneAdjust = function ( e, t, i ) {
|
|
var s = $.timepicker.timezoneOffsetNumber( t ),
|
|
n = $.timepicker.timezoneOffsetNumber( i );
|
|
return (
|
|
isNaN( n ) || e.setMinutes( e.getMinutes() + -s - -n ), e
|
|
);
|
|
} ),
|
|
( $.timepicker.timeRange = function ( e, t, i ) {
|
|
return $.timepicker.handleRange( 'timepicker', e, t, i );
|
|
} ),
|
|
( $.timepicker.datetimeRange = function ( e, t, i ) {
|
|
$.timepicker.handleRange( 'datetimepicker', e, t, i );
|
|
} ),
|
|
( $.timepicker.dateRange = function ( e, t, i ) {
|
|
$.timepicker.handleRange( 'datepicker', e, t, i );
|
|
} ),
|
|
( $.timepicker.handleRange = function ( e, t, i, s ) {
|
|
function n( n, a ) {
|
|
var r = t[ e ]( 'getDate' ),
|
|
l = i[ e ]( 'getDate' ),
|
|
o = n[ e ]( 'getDate' );
|
|
if ( null !== r ) {
|
|
var u = new Date( r.getTime() ),
|
|
c = new Date( r.getTime() );
|
|
u.setMilliseconds(
|
|
u.getMilliseconds() + s.minInterval
|
|
),
|
|
c.setMilliseconds(
|
|
c.getMilliseconds() + s.maxInterval
|
|
),
|
|
s.minInterval > 0 && u > l
|
|
? i[ e ]( 'setDate', u )
|
|
: s.maxInterval > 0 && c < l
|
|
? i[ e ]( 'setDate', c )
|
|
: r > l && a[ e ]( 'setDate', o );
|
|
}
|
|
}
|
|
function a( t, i, n ) {
|
|
if ( t.val() ) {
|
|
var a = t[ e ].call( t, 'getDate' );
|
|
null !== a &&
|
|
s.minInterval > 0 &&
|
|
( 'minDate' === n &&
|
|
a.setMilliseconds(
|
|
a.getMilliseconds() + s.minInterval
|
|
),
|
|
'maxDate' === n &&
|
|
a.setMilliseconds(
|
|
a.getMilliseconds() - s.minInterval
|
|
) ),
|
|
a.getTime && i[ e ].call( i, 'option', n, a );
|
|
}
|
|
}
|
|
s = $.extend(
|
|
{},
|
|
{ minInterval: 0, maxInterval: 0, start: {}, end: {} },
|
|
s
|
|
);
|
|
var r = ! 1;
|
|
return (
|
|
'timepicker' === e &&
|
|
( ( r = ! 0 ), ( e = 'datetimepicker' ) ),
|
|
$.fn[ e ].call(
|
|
t,
|
|
$.extend(
|
|
{
|
|
timeOnly: r,
|
|
onClose: function ( e, t ) {
|
|
n( $( this ), i );
|
|
},
|
|
onSelect: function ( e ) {
|
|
a( $( this ), i, 'minDate' );
|
|
},
|
|
},
|
|
s,
|
|
s.start
|
|
)
|
|
),
|
|
$.fn[ e ].call(
|
|
i,
|
|
$.extend(
|
|
{
|
|
timeOnly: r,
|
|
onClose: function ( e, i ) {
|
|
n( $( this ), t );
|
|
},
|
|
onSelect: function ( e ) {
|
|
a( $( this ), t, 'maxDate' );
|
|
},
|
|
},
|
|
s,
|
|
s.end
|
|
)
|
|
),
|
|
n( t, i ),
|
|
a( t, i, 'minDate' ),
|
|
a( i, t, 'maxDate' ),
|
|
$( [ t.get( 0 ), i.get( 0 ) ] )
|
|
);
|
|
} ),
|
|
( $.timepicker.log = function () {
|
|
window.console &&
|
|
window.console.log &&
|
|
window.console.log.apply &&
|
|
window.console.log.apply(
|
|
window.console,
|
|
Array.prototype.slice.call( arguments )
|
|
);
|
|
} ),
|
|
( $.timepicker._util = {
|
|
_extendRemove: extendRemove,
|
|
_isEmptyObject: isEmptyObject,
|
|
_convert24to12: convert24to12,
|
|
_detectSupport: detectSupport,
|
|
_selectLocalTimezone: selectLocalTimezone,
|
|
_computeEffectiveSetting: computeEffectiveSetting,
|
|
_splitDateTime: splitDateTime,
|
|
_parseDateTimeInternal: parseDateTimeInternal,
|
|
} ),
|
|
Date.prototype.getMicroseconds ||
|
|
( ( Date.prototype.microseconds = 0 ),
|
|
( Date.prototype.getMicroseconds = function () {
|
|
return this.microseconds;
|
|
} ),
|
|
( Date.prototype.setMicroseconds = function ( e ) {
|
|
return (
|
|
this.setMilliseconds(
|
|
this.getMilliseconds() + Math.floor( e / 1e3 )
|
|
),
|
|
( this.microseconds = e % 1e3 ),
|
|
this
|
|
);
|
|
} ) ),
|
|
( $.timepicker.version = '1.6.3' );
|
|
}
|
|
} );
|