/**
* Provides various methods needed for formatting dates and times. This
- * implementation implments the proleptic Gregorian calendar over years
+ * implementation implements the proleptic Gregorian calendar over years
* 0000–9999.
*
* @class
* @cfg {number} [weekStartsOn=0] What day the week starts on: 0 is Sunday, 1 is Monday, 6 is Saturday.
*/
mw.widgets.datetime.ProlepticGregorianDateTimeFormatter = function MwWidgetsDatetimeProlepticGregorianDateTimeFormatter( config ) {
- var statick = this.constructor[ 'static' ];
-
- statick.setupDefaults();
+ this.constructor.static.setupDefaults();
config = $.extend( {
weekStartsOn: 0,
- hour12Periods: statick.hour12Periods
+ hour12Periods: this.constructor.static.hour12Periods
}, config );
if ( config.fullMonthNames && !config.shortMonthNames ) {
}.bind( this ) );
}
config = $.extend( {
- fullMonthNames: statick.fullMonthNames,
- shortMonthNames: statick.shortMonthNames,
- fullDayNames: statick.fullDayNames,
- shortDayNames: statick.shortDayNames,
- dayLetters: statick.dayLetters
+ fullMonthNames: this.constructor.static.fullMonthNames,
+ shortMonthNames: this.constructor.static.shortMonthNames,
+ fullDayNames: this.constructor.static.fullDayNames,
+ shortDayNames: this.constructor.static.shortDayNames,
+ dayLetters: this.constructor.static.dayLetters
}, config );
// Parent constructor
/**
* @inheritdoc
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].formats = {
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.formats = {
'@time': '${hour|0}:${minute|0}:${second|0}',
'@date': '$!{dow|short} ${day|#} ${month|short} ${year|#}',
'@datetime': '$!{dow|short} ${day|#} ${month|short} ${year|#} ${hour|0}:${minute|0}:${second|0} $!{zone|short}',
* @inheritable
* @property {Object}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].fullMonthNames = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.fullMonthNames = null;
/**
* Default abbreviated month names.
* @inheritable
* @property {Object}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].shortMonthNames = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.shortMonthNames = null;
/**
* Default full day of week names.
* @inheritable
* @property {Object}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].fullDayNames = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.fullDayNames = null;
/**
* Default abbreviated day of week names.
* @inheritable
* @property {Object}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].shortDayNames = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.shortDayNames = null;
/**
* Default day letters.
* @inheritable
* @property {string[]}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].dayLetters = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.dayLetters = null;
/**
* Default AM/PM indicators
* @inheritable
* @property {string[]}
*/
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].hour12Periods = null;
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.hour12Periods = null;
- mw.widgets.datetime.ProlepticGregorianDateTimeFormatter[ 'static' ].setupDefaults = function () {
- mw.widgets.datetime.DateTimeFormatter[ 'static' ].setupDefaults.call( this );
+ mw.widgets.datetime.ProlepticGregorianDateTimeFormatter.static.setupDefaults = function () {
+ mw.widgets.datetime.DateTimeFormatter.static.setupDefaults.call( this );
if ( this.fullMonthNames && !this.shortMonthNames ) {
this.shortMonthNames = {};
case 'year|0':
spec = {
component: 'year',
+ calendarComponent: true,
type: 'number',
size: 4,
zeropad: params[ 0 ] === '0'
case 'month|full':
spec = {
component: 'month',
+ calendarComponent: true,
type: 'string',
values: params[ 0 ] === 'short' ? this.shortMonthNames : this.fullMonthNames
};
case 'dow|full':
spec = {
component: 'dow',
+ calendarComponent: true,
editable: false,
type: 'string',
values: params[ 0 ] === 'short' ? this.shortDayNames : this.fullDayNames
case 'month|0':
case 'day|#':
case 'day|0':
+ spec = {
+ component: tag,
+ calendarComponent: true,
+ type: 'number',
+ size: 2,
+ zeropad: params[ 0 ] === '0'
+ };
+ break;
+
case 'hour|#':
case 'hour|0':
case 'minute|#':
case 'second|0':
spec = {
component: tag,
+ calendarComponent: false,
type: 'number',
size: 2,
zeropad: params[ 0 ] === '0'
case 'hour|012':
spec = {
component: 'hour12',
+ calendarComponent: false,
type: 'number',
size: 2,
zeropad: params[ 0 ] === '012'
case 'hour|period':
spec = {
component: 'hour12period',
+ calendarComponent: false,
type: 'boolean',
values: this.hour12Periods
};
case 'millisecond|0':
spec = {
component: 'millisecond',
+ calendarComponent: false,
type: 'number',
size: 3,
zeropad: params[ 0 ] === '0'