/pack-rat/003_pack_rat/pack-rat/bower_components/moment/src/lib/units/hour.js |
@@ -0,0 +1,144 @@ |
import { makeGetSet } from '../moment/get-set'; |
import { addFormatToken } from '../format/format'; |
import { addUnitAlias } from './aliases'; |
import { addUnitPriority } from './priorities'; |
import { addRegexToken, match1to2, match2, match3to4, match5to6 } from '../parse/regex'; |
import { addParseToken } from '../parse/token'; |
import { HOUR, MINUTE, SECOND } from './constants'; |
import toInt from '../utils/to-int'; |
import zeroFill from '../utils/zero-fill'; |
import getParsingFlags from '../create/parsing-flags'; |
|
// FORMATTING |
|
function hFormat() { |
return this.hours() % 12 || 12; |
} |
|
function kFormat() { |
return this.hours() || 24; |
} |
|
addFormatToken('H', ['HH', 2], 0, 'hour'); |
addFormatToken('h', ['hh', 2], 0, hFormat); |
addFormatToken('k', ['kk', 2], 0, kFormat); |
|
addFormatToken('hmm', 0, 0, function () { |
return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); |
}); |
|
addFormatToken('hmmss', 0, 0, function () { |
return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + |
zeroFill(this.seconds(), 2); |
}); |
|
addFormatToken('Hmm', 0, 0, function () { |
return '' + this.hours() + zeroFill(this.minutes(), 2); |
}); |
|
addFormatToken('Hmmss', 0, 0, function () { |
return '' + this.hours() + zeroFill(this.minutes(), 2) + |
zeroFill(this.seconds(), 2); |
}); |
|
function meridiem (token, lowercase) { |
addFormatToken(token, 0, 0, function () { |
return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); |
}); |
} |
|
meridiem('a', true); |
meridiem('A', false); |
|
// ALIASES |
|
addUnitAlias('hour', 'h'); |
|
// PRIORITY |
addUnitPriority('hour', 13); |
|
// PARSING |
|
function matchMeridiem (isStrict, locale) { |
return locale._meridiemParse; |
} |
|
addRegexToken('a', matchMeridiem); |
addRegexToken('A', matchMeridiem); |
addRegexToken('H', match1to2); |
addRegexToken('h', match1to2); |
addRegexToken('k', match1to2); |
addRegexToken('HH', match1to2, match2); |
addRegexToken('hh', match1to2, match2); |
addRegexToken('kk', match1to2, match2); |
|
addRegexToken('hmm', match3to4); |
addRegexToken('hmmss', match5to6); |
addRegexToken('Hmm', match3to4); |
addRegexToken('Hmmss', match5to6); |
|
addParseToken(['H', 'HH'], HOUR); |
addParseToken(['k', 'kk'], function (input, array, config) { |
var kInput = toInt(input); |
array[HOUR] = kInput === 24 ? 0 : kInput; |
}); |
addParseToken(['a', 'A'], function (input, array, config) { |
config._isPm = config._locale.isPM(input); |
config._meridiem = input; |
}); |
addParseToken(['h', 'hh'], function (input, array, config) { |
array[HOUR] = toInt(input); |
getParsingFlags(config).bigHour = true; |
}); |
addParseToken('hmm', function (input, array, config) { |
var pos = input.length - 2; |
array[HOUR] = toInt(input.substr(0, pos)); |
array[MINUTE] = toInt(input.substr(pos)); |
getParsingFlags(config).bigHour = true; |
}); |
addParseToken('hmmss', function (input, array, config) { |
var pos1 = input.length - 4; |
var pos2 = input.length - 2; |
array[HOUR] = toInt(input.substr(0, pos1)); |
array[MINUTE] = toInt(input.substr(pos1, 2)); |
array[SECOND] = toInt(input.substr(pos2)); |
getParsingFlags(config).bigHour = true; |
}); |
addParseToken('Hmm', function (input, array, config) { |
var pos = input.length - 2; |
array[HOUR] = toInt(input.substr(0, pos)); |
array[MINUTE] = toInt(input.substr(pos)); |
}); |
addParseToken('Hmmss', function (input, array, config) { |
var pos1 = input.length - 4; |
var pos2 = input.length - 2; |
array[HOUR] = toInt(input.substr(0, pos1)); |
array[MINUTE] = toInt(input.substr(pos1, 2)); |
array[SECOND] = toInt(input.substr(pos2)); |
}); |
|
// LOCALES |
|
export function localeIsPM (input) { |
// IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays |
// Using charAt should be more compatible. |
return ((input + '').toLowerCase().charAt(0) === 'p'); |
} |
|
export var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; |
export function localeMeridiem (hours, minutes, isLower) { |
if (hours > 11) { |
return isLower ? 'pm' : 'PM'; |
} else { |
return isLower ? 'am' : 'AM'; |
} |
} |
|
|
// MOMENTS |
|
// Setting the hour should keep the time, because the user explicitly |
// specified which hour he wants. So trying to maintain the same hour (in |
// a new timezone) makes sense. Adding/subtracting hours does not follow |
// this rule. |
export var getSetHour = makeGetSet('Hours', true); |