mirror of
https://github.com/vale981/Vulcan
synced 2025-03-06 10:01:40 -05:00
88 lines
2.2 KiB
JavaScript
88 lines
2.2 KiB
JavaScript
/*
|
|
* Copyright 2015, Yahoo Inc.
|
|
* Copyrights licensed under the New BSD License.
|
|
* See the accompanying LICENSE file for terms.
|
|
*/
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
const {bool, number, string, func, object, oneOf, shape, any} = PropTypes;
|
|
const localeMatcher = oneOf(['best fit', 'lookup']);
|
|
const narrowShortLong = oneOf(['narrow', 'short', 'long']);
|
|
const numeric2digit = oneOf(['numeric', '2-digit']);
|
|
const funcReq = func.isRequired;
|
|
|
|
export const intlConfigPropTypes = {
|
|
locale : string,
|
|
formats : object,
|
|
messages : object,
|
|
textComponent: any,
|
|
|
|
defaultLocale : string,
|
|
defaultFormats: object,
|
|
};
|
|
|
|
export const intlFormatPropTypes = {
|
|
formatDate : funcReq,
|
|
formatTime : funcReq,
|
|
formatRelative : funcReq,
|
|
formatNumber : funcReq,
|
|
formatPlural : funcReq,
|
|
formatMessage : funcReq,
|
|
formatHTMLMessage: funcReq,
|
|
};
|
|
|
|
export const intlShape = shape({
|
|
...intlConfigPropTypes,
|
|
...intlFormatPropTypes,
|
|
formatters: object,
|
|
now: funcReq,
|
|
});
|
|
|
|
export const messageDescriptorPropTypes = {
|
|
id : string.isRequired,
|
|
description : string,
|
|
defaultMessage: string,
|
|
};
|
|
|
|
export const dateTimeFormatPropTypes = {
|
|
localeMatcher,
|
|
formatMatcher: oneOf(['basic', 'best fit']),
|
|
|
|
timeZone: string,
|
|
hour12 : bool,
|
|
|
|
weekday : narrowShortLong,
|
|
era : narrowShortLong,
|
|
year : numeric2digit,
|
|
month : oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),
|
|
day : numeric2digit,
|
|
hour : numeric2digit,
|
|
minute : numeric2digit,
|
|
second : numeric2digit,
|
|
timeZoneName: oneOf(['short', 'long']),
|
|
};
|
|
|
|
export const numberFormatPropTypes = {
|
|
localeMatcher,
|
|
|
|
style : oneOf(['decimal', 'currency', 'percent']),
|
|
currency : string,
|
|
currencyDisplay: oneOf(['symbol', 'code', 'name']),
|
|
useGrouping : bool,
|
|
|
|
minimumIntegerDigits : number,
|
|
minimumFractionDigits : number,
|
|
maximumFractionDigits : number,
|
|
minimumSignificantDigits: number,
|
|
maximumSignificantDigits: number,
|
|
};
|
|
|
|
export const relativeFormatPropTypes = {
|
|
style: oneOf(['best fit', 'numeric']),
|
|
units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year']),
|
|
};
|
|
|
|
export const pluralFormatPropTypes = {
|
|
style: oneOf(['cardinal', 'ordinal']),
|
|
};
|