/* #__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