/* #__PURE__ */ /* falls through */ /* harmony default export */ /* module decorator */ /* noop */ /* webpack/runtime/compat get default export */ /* webpack/runtime/define property getters */ /* webpack/runtime/hasOwnProperty shorthand */ /* webpack/runtime/node module decorator */ /*! * chartjs-adapter-moment v1.0.1 * https://www.chartjs.org * (c) 2022 chartjs-adapter-moment Contributors * Released under the MIT license */ /*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela * Released under the MIT License */ /*! * Chart.js v4.4.2 * https://www.chartjs.org * (c) 2024 Chart.js Contributors * Released under the MIT License */ /*#__PURE__*/ /** * A trap for Object.getOwnPropertyDescriptor. * Also used by Object.hasOwnProperty. */ /** * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols. */ /** * A trap for Object.getPrototypeOf. */ /** * A trap for getting property values. */ /** * A trap for setting property values. */ /** * A trap for the delete operator. */ /** * A trap for the in operator. */ /** * Now that IE11 support has been dropped, we can use more * of the TextMetrics object. The actual bounding boxes * are unflagged in Chrome, Firefox, Edge, and Safari so they * can be safely used. * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility */ /** * Return a human readable representation of a moment that can * also be evaluated to get a new moment which is the same * * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects */ /** * @type {any} */ /** * Override default date adapter methods. * Accepts type parameter to define options type. * @example * Chart._adapters._date.override<{myAdapterOption: string}>({ * init() { * console.log(this.options.myAdapterOption); * } * }) */ /** * @alias Chart.helpers.math * @namespace */ /** * @alias Chart.helpers.options * @namespace */ /** * @namespace Chart._adapters * @since 2.8.0 * @private */ /** * @namespace Chart.helpers */ /** * @param chart * @param forceRatio * @param forceStyle * @returns True if the canvas context size or transformation has changed. */ /** * @param e * @param canvas * @returns Canvas position */ /** * @param e - The event * @private */ /** * @param items */ /** * @param minmax * @param grace * @param beginAtZero * @private */ /** * @param value * @param start * @param end * @param [epsilon] * @private */ /** * @param {number} value * @private */ /** * @private */ /** * Add a path of a rectangle with rounded corners to the current sub-path * @param ctx - Context * @param rect - Bounding rect */ /** * Adjust tangents to ensure monotonic properties */ /** * An empty function that can be used, for example, for optional callback. */ /** * Binary search * @param table - the table search. must be sorted! * @param key - property name for the value in each entry * @param value - value to find * @param last - lookup last index * @private */ /** * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the * value returned by `fn`. If `fn` is not a function, this method returns undefined. * @param fn - The function to call. * @param args - The arguments with which `fn` should be called. * @param [thisArg] - The value of `this` provided for the call to `fn`. */ /** * Checks if the scale ranges have changed. * @param {object} meta - dataset meta. * @returns {boolean} * @private */ /** * Clears the entire canvas. */ /** * Convert (r, 𝜃) to (x, y) */ /** * Converts 'start' to 'left', 'end' to 'right' and others to 'center' * @private */ /** * Converts the given font object into a CSS font string. * @param font - A font object. * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font * @private */ /** * Converts the given line height `value` in pixels for a specific font `size`. * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em'). * @param size - The font size (in pixels) used to resolve relative `value`. * @returns The effective line height in pixels (size * 1.2 if value is invalid). * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height * @since 2.7.0 */ /** * Converts the given value into a TRBL corners object (similar with css border-radius). * @param value - If a number, set the value to all TRBL corner components, * else, if an object, use defined properties and sets undefined ones to 0. * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight) * @since 3.0.0 */ /** * Converts the given value into a TRBL object. * @param value - If a number, set the value to all TRBL component, * else, if an object, use defined properties and sets undefined ones to 0. * x / y are shorthands for same value for left/right and top/bottom. * @returns The padding values (top, right, bottom, left) * @since 3.0.0 */ /** * Converts the given value into a padding object with pre-computed width/height. * @param value - If a number, set the value to all TRBL component, * else, if an object, use defined properties and sets undefined ones to 0. * x / y are shorthands for same value for left/right and top/bottom. * @returns The padding values (top, right, bottom, left, width, height) * @since 2.7.0 */ /** * Creates a Proxy for resolving raw values for options. * @param scopes - The option scopes to look for values, in resolution order * @param prefixes - The prefixes for values, in resolution order. * @param rootScopes - The root option scopes * @param fallback - Parent scopes fallback * @param getTarget - callback for getting the target for changed values * @returns Proxy * @private */ /** * Date adapter (current used by the time scale) * @namespace Chart._adapters._date * @memberof Chart._adapters * @private */ /** * Debounces calling `fn` for `delay` ms */ /** * Detects support for options object argument in addEventListener. * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support * @private */ /** * Evaluates the given `inputs` sequentially and returns the first defined value. * @param inputs - An array of values, falling back to the last value. * @param context - If defined and the current value is a function, the value * is called with `context` as first argument and the result becomes the new input. * @param index - If defined and the current value is an array, the value * at `index` become the new input. * @param info - object to return information about resolution in * @param info.cacheable - Will be set to `false` if option is not cacheable. * @since 2.7.0 */ /** * Gets an event's x, y coordinates, relative to the chart area * @param event * @param chart * @returns x and y coordinates of the event */ /** * Implementation of the nice number algorithm used in determining where axis labels will go */ /** * Limit `value` between `min` and `max` * @param value * @param min * @param max * @private */ /** * Merges source[key] in target[key] only if target[key] is undefined. * @private */ /** * Normalize angle to be between 0 and 2*PI * @private */ /** * Note: typedefs are auto-exported, so use a made-up `dom` namespace where * necessary to avoid duplicates with `export * from './helpers`; see * https://github.com/microsoft/TypeScript/issues/46011 * @typedef { import('../core/core.controller.js').default } dom.Chart * @typedef { import('../../types').ChartEvent } ChartEvent */ /** * Parse border radius from the provided options */ /** * Parses font options and returns the font object. * @param options - A object that contains font options to be parsed. * @param fallback - A object that contains fallback font options. * @return The font object. * @private */ /** * Path the arc, respecting border radius by separating into left and right halves. * * Start End * * 1--->a--->2 Outer * / \ * 8 3 * | | * | | * 7 4 * \ / * 6<---b<---5 Inner */ /** * Render text onto the canvas */ /** * Return start and count of visible points. * @private */ /** * Return subset of `values` between `min` and `max` inclusive. * Values are assumed to be in sorted order. * @param values - sorted array of values * @param min - min value * @param max - max value */ /** * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center` * @private */ /** * Returns `value` if defined, else returns `defaultValue`. * @param value - The value to return if defined. * @param defaultValue - The value to return if `value` is undefined. */ /** * Returns `value` if finite, else returns `defaultValue`. * @param value - The value to return if defined. * @param defaultValue - The value to return if `value` is not finite. */ /** * Returns a deep copy of `source` without keeping references on objects and arrays. * @param source - The value to clone. */ /** * Returns a unique id, sequentially generated from a global variable. */ /** * Returns an Proxy for resolving option values with context. * @param proxy - The Proxy returned by `_createResolver` * @param context - Context object for scriptable/indexable options * @param subProxy - The proxy provided for scriptable options * @param descriptorDefaults - Defaults for descriptors * @private */ /** * Returns an array of factors sorted from 1 to sqrt(value) * @private */ /** * Returns the aligned pixel value to avoid anti-aliasing blur * @param chart - The chart instance. * @param pixel - A pixel value. * @param width - The width of the element. * @returns The aligned pixel value. * @private */ /** * Returns the number of decimal places * i.e. the number of digits after the decimal point, of the value of this Number. * @param x - A number. * @returns The number of decimal places. * @private */ /** * Returns true if `value` is a finite number, else returns false * @param value - The value to test. */ /** * Returns true if `value` is an array (including typed arrays), else returns false. * @param value - The value to test. * @function */ /** * Returns true if `value` is an object (excluding null), else returns false. * @param value - The value to test. * @since 2.7.0 */ /** * Returns true if `value` is neither null nor undefined, else returns false. * @param value - The value to test. * @since 2.7.0 */ /** * Returns true if the `a0` and `a1` arrays have the same content, else returns false. * @param a0 - The array to compare * @param a1 - The array to compare * @private */ /** * Returns true if the point is inside the rectangle * @param point - The point to test * @param area - The rectangle * @param margin - allowed margin * @private */ /** * Reverse binary search * @param table - the table search. must be sorted! * @param key - property name for the value in each entry * @param value - value to find * @private */ /** * Shortest distance between angles, in either direction. * @private */ /** * The "used" size is the final value of a dimension property after all calculations have * been performed. This method uses the computed style of `element` but returns undefined * if the computed style is not expressed in pixels. That can happen in some cases where * `element` has a size relative to its parent and this last one is not yet displayed, * for example because of `display: none` on a parent node. * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value * @returns Size in pixels or undefined if unknown. */ /** * The default merger when Chart.helpers.merge is called without merger option. * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback. * @private */ /** * This function calculates Bézier control points in a similar way than |splineCurve|, * but preserves monotonicity of the provided data and ensures no local extremums are added * between the dataset discrete points due to the interpolation. * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation */ /** * Throttles calling `fn` once per animation frame * Latest arguments are used on the actual call */ /** * convert max-width/max-height values that may be percentages into a number * @private */ /** * Request animation polyfill */ /************************************************************************/ /******/ /***/ // // 0-99 // 1-99 // 0 - 9 // 0 - 99 // 0 - 999 // 0 - 9999 // 0 - inf // 00 - 99 // 000 - 999 // 999 - 9999 // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value)); // -inf - inf // 0000 - 9999 // return void (isUTC ? d.setUTCDay(value) : d.setDay(value)); // 99999 - 999999 // * days do not bubble at all // * milliseconds bubble up until they become hours // * months bubble up until they become years // '+10:00' > ['10', '00'] // '-1530' > ['-15', '30'] // () // (5) // (fmt) // (fmt, 5) // (think of clock changes) // (true) // (true, 5) // (true, fmt) // (true, fmt, 5) // * if day of month is given, default month and year // * if month is given, default only year // * if no year, month, day of month are given, default to today // * if year is given, don't default anything // +00 -00 +00:00 -00:00 +0000 -0000 or Z // +00:00 -00:00 +0000 -0000 or Z // +0200, so we adjust the time as needed, to be valid. // -999999 - 999999 // ./node_modules/@kurkle/color/dist/color.esm.js // ./node_modules/chart.js/auto/auto.js // ./node_modules/chart.js/dist/chart.js // ./node_modules/chart.js/dist/chunks/helpers.segment.js // ./node_modules/chartjs-adapter-moment/dist/chartjs-adapter-moment.esm.js // ./src/export/lib/chartjs/chart.js // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) // 1000 // 1000 * 60 // 1000 * 60 * 60 // 1000 * 60 * 60 * 24 * 7, negate dst // 1000 * 60 * 60 * 24, negate dst // 12 months -> 1 year // 123456789 123456789.123 // 3600 seconds -> 60 minutes -> 1 hour // 400 years have 12 months === 4800 // 400 years have 146097 days (taking into account leap year rules) // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset // // // // // // // // // @ts-expect-error Fallbacks should never be hit in practice // @ts-expect-error Need to fix types on _lookupByKey // @ts-expect-error Need to type _parsed // ALIASES // ASP.NET json date format regex // Adding is smart enough around DST // Apply timezone offset from input. The actual utcOffset can be changed // Array of objects, return array or resolvers // Because of dateAddRemove treats 24 hours as different from a // Border colors with 50% transparency // Calculate slopes (deltaK) and initialize tangents (mK) // Chart.helpers.core resolveObjectKey should resolve empty key to root object // Check for 24:00:00.000 // Check if module is in cache // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript // Create a new module (and put it into the cache) // DEBUG ONLY // Date.UTC remaps years 0-99 to 1900-1999 // Default includes circle // Default to current date. // Default to current week. // Draw an inner border by clipping the arc and drawing a double-width border // EXTERNAL MODULE: ./node_modules/moment/moment.js // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders // Ensure name is available and function returns boolean // Execute the module function // FORMATTING // Fallback // Fallback to `false` results to `false`, when falling back to different key. // Final attempt, use Input Fallback // Flag the module as loaded // For array of objects, the object is used to store updated values // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations` // Gets the angle from vertical upright to the point about a centre. // Getting start-of-today depends on whether we're local/utc/offset or not. // HELPERS // HOOKS // I know // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays // IE8 will treat undefined and null as object if it wasn't for // If all points are the same, s01 & s02 will be inf // If no style has been set on the canvas, the render size is used as display size, // If passed a locale key, it will set the locale for this // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default) // In the case of two points that appear at the same x pixel, slopeDeltaX is 0 // It is impossible to translate months into days without knowing // It is intended to keep the offset in sync with the timezone. // Just in case // Keeping the time actually adds/subtracts (one hour) // LOCALES // Lenient ordinal parsing accepts just a number in addition to // MERGE // MOMENTS // Math.floor prevents floating point math errors here // Moment prototype object // Moment.js // Monday is the first day of the week. // NOTE: the rounded rect implementation changed to use `arc` instead of // No op // On Firefox.24 Date#getTimezoneOffset returns a floating point. // Only consider points that are drawn in case the spanGaps option is used // PARSING // Pick a moment m from moments so that m[fn](other) is true for all // Pick the first defined of two or three arguments. // Plugins that add properties should also add the key here (null value), // Prevent infinite loop in case updateOffset creates new moment // Prevent names that look like filesystem paths, i.e contain '/' or '\' // Props to Rob Spencer at scaled innovation for his post on splining between points // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 // Remove comments and folding whitespace and replace multiple-spaces with a single space // Return a moment from input, that is local/utc/zone equivalent to model. // Return the exports of the module // Save the args for use later // See below ... // See https://github.com/chartjs/Chart.js/issues/3575 // Set abbr so it will have a name (getters return // Setting the hour should keep the time, because the user explicitly // Side effect imports // So we adjust the start and end angle of the arc such that // Sorting makes sure if one month (or abbr) is a prefix of another // Sorting makes sure if one month (or abbr) is a prefix of another it // Sorting makes sure if one weekday (or abbr) is a prefix of another it // Sunday is the first day of the week. // Support for single parameter, formats only overload to the calendar function // TODO: Another silent failure? // TODO: Find a better way to register and load all the locales in Node // TODO: Move this to another part of the creation flow to prevent circular deps // TODO: Remove "ordinalParse" fallback in next major release. // TODO: Use [].sort instead? // TODO: We need to take the current isoWeekYear, but that depends on // TODO: add sorting // TODO: remove 'name' arg after deprecation is removed // The corner segment from point 2 to point 3 // The corner segment from point 4 to point 5 // The corner segment from point 6 to point 7 // The corner segment from point 8 to point 1 // The fallback will resume to that new scope. // The first arc segments from point 1 to point a to point 2 // The following code bubbles up values, see the tests for // The inner arc from point 5 to point b to point 6 // The line from point 3 to point 4 // The line from point 7 to point 8 // The module cache // The require function // This array is used to make a Date, either with `new Date` or `Date.UTC` // This entry needs to be wrapped in an IIFE because it needs to be in strict mode. // This function allows you to set a threshold for relative time strings // This function allows you to set the rounding function for relative time strings // This function must also respect "skipped" points // This function will be called whenever a moment is mutated. // This function will load locale and then set the global locale. If // This is because there is no context-free conversion between hours and days // This is done to register the method called with moment() // Undefined strings and arrays should not be measured // Update existing child locale in-place to avoid memory-leaks // Use low-level api, because this fn is low-level api. // Using charAt should be more compatible. // We need to deep clone this object. // We want to compare the start of today, vs this. // We'd normally use ~~inp for this, but unfortunately it also // When scriptable option returns an object, create a resolver on that. // When spacing is present, it is the same for all items // When we reach the descriptor that defines a new _fallback, return that. // Zero out whatever was not defaulted, including time // [year, month, day , hour, minute, second, millisecond] // _changeInProgress == true case, then we have to adjust, because // `quadraticCurveTo` since it generates better results when rect is // a few seconds to seconds // a new timezone) makes sense. Adding/subtracting hours does not follow // a now version of current config (take local/utc/offset flags, and // a second time. In case it wants us to change the offset again // actual modulo - handles negative numbers (for dates before 1970): // add remaining unparsed input length to the string // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> // almost a circle. 0.516 (instead of 0.5) produces results with visually // and also not between days and months (28-31 days per month) // and further modified to allow for strings containing both week and day // any word (or two) characters or numbers including two/three word month in arabic. // apply sign while we're at it // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) // as a setter, sunday should belong to the previous week. // b is in (anchor - 1 month, anchor + 1 month) // backwards compat for now: also set the locale // behaves the same as moment#day except // bottom left arc // bottom right arc // cache the resolved value // callback: function () { this.month() + 1 } // can't just apply() to create a date: // canvas.width and canvas.height do not consider the canvas transform, // case 'Day': // Not real // case 'Month': // Not used because we need to pass two variables // check for mismatching day of week // check: https://github.com/moment/moment/issues/2166 // checks for null or undefined // circle with `radius`. For more details, see the following PRs: // clear _12h flag if hour is <= 12 // closer proportion to the previous impl and it is inscribed in the // compare two arrays, return the number of differences // constant that refers to the ISO standard // constant that refers to the RFC 2822 form // continue regardless of error // convert an array to a date. // convert days to months // converts floats to ints. // create now). // created, so we won't end up with the child locale set. // currently HTML5 input type only supports 24-hour formats // date and time from ref 2822 format // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict // date from iso format // date from string and array of format strings // date from string and format string // day when working around DST, we need to store them separately // days than the end month. // days to month/week // default resolvers // default to beginning of week // define getter/value functions for harmony exports // difference in months // don't parse if it's not a known token // end-of-month calculations work correct when the start month has more // eslint-disable-next-line @typescript-eslint/no-empty-function // eslint-disable-next-line @typescript-eslint/no-use-before-define // eslint-disable-next-line complexity // examples of what that means. // first element is an array of moment objects. // first-week day -- which january is always in the first week (4 for iso, 1 for other) // for ISO strings we do not use the normal bubbling rules: // format date using native date object // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html // from milliseconds // from the actual represented time. That is why we call updateOffset // getDefaultExport function for compatibility with non-harmony modules // handle era // handle meridiem // handle milliseconds separately because of floating point math errors (issue #1867) // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize // hooks is actually the exported moment object // hours to day // how we interpret now (local, utc, fixed offset). So create // http://scaledinnovation.com/analytics/splines/aboutSplines.html // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday // https://github.com/chartjs/Chart.js/issues/4659 // https://github.com/chartjs/Chart.js/issues/5597 // https://github.com/chartjs/Chart.js/issues/5858 // https://github.com/moment/moment/issues/1423 // https://github.com/moment/moment/pull/1871 // https://stackoverflow.com/q/181348 // if it is an array lets measure each element // if the resolved value is an object, create a sub resolver for it // if there is any input that was not parsed add a penalty for that format // if we didn't find a month name, mark the date as invalid. // if we didn't get a weekday name, mark the date as invalid // if we have a mix of positive and negative values, bubble down first // includes scottish gaelic two word and hyphenated months // inp may be undefined, so careful calling replace on it. // input != null // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js // instance. Otherwise, it will return the locale configuration // internal storage for locale config files // iso 8601 regex // iso time formats and regexes // it separately. // keepLocalTime = true means only change the timezone, without // let's not create an object, if not needed // line from bottom left to bottom right // line from bottom right to top right // line from top left to bottom left // line from top right to top left // local weekday -- counting starts from beginning of week // locale key. // make sure changes to properties don't modify parent config // make sure we set the locale AFTER all child locales have been // make the regex if we don't have it already // making the chart visually bigger, so let's enforce it to the "correct" values. // margin - default is to match rounded decimals // mark as not found to avoid repeating expensive file require call causing high CPU // match[2] should be 'T' or space // matching against regexp is expensive, do it on demand // minutes to hour // moment.duration._locale = moment._locale = data; // moments should either be an array of moment objects or an array, whose // native implementation is ~50x faster, use it when we can // new Date(NaN).toJSON() === null // no arguments are passed in, it will simply return the current global // note: all values past the year are optional and will default to the lowest possible value. // null means not found // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. // object construction must be done this way. // objects. // only allow non-integers for smallest unit // ordinal: 'Mo' // other. This relies on the function fn to be transitive. // padded: ['MM', 2] // pass null for config to unupdate, useful for tests // percentage * size in dimension // pick the locale from the array // preserve leap years using a full 400 year cycle, then reset // remove cached keys // remove from cache // representation for dateAddRemove // resolve from proxy // resolve with context // resolveObjectKey resolver cache // returns locale data // scaling factor for triangle Ta // seconds to minute // see sorting in computeMonthsParse // set to proxy // set to top level scope + cache // so we can properly clone ourselves. // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere // specified which hour they want. So trying to maintain the same hour (in // start-of-first-week - start-of-year // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root // supports only 2.0-style add(1, 's') or add(duration) // supports only 2.0-style subtract(1, 's') or subtract(duration) // test the regex // the Date.UTC function remaps years 0-99 to 1900-1999 // the array should mirror the parameters below // the date constructor remaps years 0-99 to 1900-1999 // the distance is the same as it would be without the spacing // the only allowed military tz is Z // the reverse of daysToMonths // there is no such time in the given timezone. // this is not used // this is the border box of the container // this rule. // timezone chunker // to do maybe simplify this function a bit so we can do this more recursively? // token: 'M' // top left arc // top right arc // truncate time // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined // undefined otherwise). // updateLocale is called for creating a new locale // useful for testing // variables for this instance. // webpackBootstrap // weekday -- low day numbers are considered next week // weeks to month // when trying to find en-US, en_US, en-us for every format call // which months you are are talking about, so we have to store // while clearRect does // will match the longer piece. // with parseZone. // without creating circular dependencies. //! moment.js //! moment.js locale configuration //# sourceMappingURL=chart.js.map //# sourceMappingURL=helpers.segment.js.map //check for negative zero, return zero if negative zero //compute day of the year from weeks and weekdays //if the day of the year is set, figure out what it is //invert the arguments, but complain about it //or tokens //short-circuit everything else //the next array item is better than a shallower substring of this one //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 //warn user if arguments are passed but the locale could not be set