Brought in another asset for Ray's eye form: moment
[openemr.git] / public / assets / moment-2-13-0 / src / lib / create / from-anything.js
blob022c6eb172183b1eab2e974050efa6f3cf76de09
1 import isArray from '../utils/is-array';
2 import isDate from '../utils/is-date';
3 import map from '../utils/map';
4 import { createInvalid } from './valid';
5 import { Moment, isMoment } from '../moment/constructor';
6 import { getLocale } from '../locale/locales';
7 import { hooks } from '../utils/hooks';
8 import checkOverflow from './check-overflow';
9 import { isValid } from './valid';
11 import { configFromStringAndArray }  from './from-string-and-array';
12 import { configFromStringAndFormat } from './from-string-and-format';
13 import { configFromString }          from './from-string';
14 import { configFromArray }           from './from-array';
15 import { configFromObject }          from './from-object';
17 function createFromConfig (config) {
18     var res = new Moment(checkOverflow(prepareConfig(config)));
19     if (res._nextDay) {
20         // Adding is smart enough around DST
21         res.add(1, 'd');
22         res._nextDay = undefined;
23     }
25     return res;
28 export function prepareConfig (config) {
29     var input = config._i,
30         format = config._f;
32     config._locale = config._locale || getLocale(config._l);
34     if (input === null || (format === undefined && input === '')) {
35         return createInvalid({nullInput: true});
36     }
38     if (typeof input === 'string') {
39         config._i = input = config._locale.preparse(input);
40     }
42     if (isMoment(input)) {
43         return new Moment(checkOverflow(input));
44     } else if (isArray(format)) {
45         configFromStringAndArray(config);
46     } else if (format) {
47         configFromStringAndFormat(config);
48     } else if (isDate(input)) {
49         config._d = input;
50     } else {
51         configFromInput(config);
52     }
54     if (!isValid(config)) {
55         config._d = null;
56     }
58     return config;
61 function configFromInput(config) {
62     var input = config._i;
63     if (input === undefined) {
64         config._d = new Date(hooks.now());
65     } else if (isDate(input)) {
66         config._d = new Date(input.valueOf());
67     } else if (typeof input === 'string') {
68         configFromString(config);
69     } else if (isArray(input)) {
70         config._a = map(input.slice(0), function (obj) {
71             return parseInt(obj, 10);
72         });
73         configFromArray(config);
74     } else if (typeof(input) === 'object') {
75         configFromObject(config);
76     } else if (typeof(input) === 'number') {
77         // from milliseconds
78         config._d = new Date(input);
79     } else {
80         hooks.createFromInputFallback(config);
81     }
84 export function createLocalOrUTC (input, format, locale, strict, isUTC) {
85     var c = {};
87     if (typeof(locale) === 'boolean') {
88         strict = locale;
89         locale = undefined;
90     }
91     // object construction must be done this way.
92     // https://github.com/moment/moment/issues/1423
93     c._isAMomentObject = true;
94     c._useUTC = c._isUTC = isUTC;
95     c._l = locale;
96     c._i = input;
97     c._f = format;
98     c._strict = strict;
100     return createFromConfig(c);