{"version":3,"file":"js/421-0b849afa8c7895c120bd.js","mappings":"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AC,MAAM,GAAK,CAAC,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,KAAK,KAAK,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,GAAK,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,KAAK,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IAAM,CAAC,MAAM,IA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","sources":["webpack://hnry-rails/./node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js","webpack://hnry-rails/./node_modules/@dnd-kit/core/dist/core.esm.js","webpack://hnry-rails/./node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js","webpack://hnry-rails/./node_modules/@dnd-kit/sortable/dist/sortable.esm.js","webpack://hnry-rails/./node_modules/@dnd-kit/utilities/dist/utilities.esm.js","webpack://hnry-rails/./node_modules/@react-spring/rafz/dist/esm/index.js","webpack://hnry-rails/./node_modules/@react-spring/shared/dist/esm/index.js","webpack://hnry-rails/./node_modules/@react-spring/animated/dist/esm/index.js","webpack://hnry-rails/./node_modules/@react-spring/core/dist/esm/index.js","webpack://hnry-rails/./node_modules/@react-spring/web/dist/esm/index.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/shapes/Line.js","webpack://hnry-rails/./node_modules/@visx/text/esm/hooks/useText.js","webpack://hnry-rails/./node_modules/@visx/text/esm/Text.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/axis/Ticks.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/axis/AxisRenderer.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/utils/getLabelTransform.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/utils/toString.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/utils/createPoint.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/axis/Axis.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/utils/getTickFormatter.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/utils/getTickPosition.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/axis/AxisBottom.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/axis/AxisLeft.js","webpack://hnry-rails/./node_modules/@visx/axis/esm/constants/orientation.js","webpack://hnry-rails/./node_modules/@visx/gradient/esm/gradients/LinearGradient.js","webpack://hnry-rails/./node_modules/@visx/grid/esm/grids/GridRows.js","webpack://hnry-rails/./node_modules/@visx/grid/esm/utils/getScaleBandwidth.js","webpack://hnry-rails/./node_modules/@visx/group/esm/Group.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/legends/Legend/LegendItem.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/legends/Legend/LegendLabel.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/shapes/Rect.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/shapes/Circle.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/shapes/Line.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/util/renderShape.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/legends/Legend/LegendShape.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/util/valueOrIdentity.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/util/labelTransformFactory.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/legends/Legend/index.js","webpack://hnry-rails/./node_modules/@visx/legend/esm/legends/Ordinal.js","webpack://hnry-rails/./node_modules/@visx/point/esm/Point.js","webpack://hnry-rails/./node_modules/@visx/responsive/esm/hooks/useParentSize.js","webpack://hnry-rails/./node_modules/@visx/responsive/esm/components/ParentSize.js","webpack://hnry-rails/./node_modules/d3-color/src/math.js","webpack://hnry-rails/./node_modules/d3-color/src/lab.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/hcl.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/hsl.js","webpack://hnry-rails/./node_modules/d3-color/src/cubehelix.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/cubehelix.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/utils/createColorInterpolator.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/lab.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/utils/isUtcScale.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/nice.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/scaleOperator.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/domain.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/zero.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/interpolate.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/round.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/align.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/base.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/clamp.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/constant.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/exponent.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/padding.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/range.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/reverse.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/operators/unknown.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/scales/band.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/scales/linear.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/scales/ordinal.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/utils/coerceNumber.js","webpack://hnry-rails/./node_modules/@visx/scale/esm/utils/getTicks.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/shapes/Bar.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/shapes/BarGroup.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/util/getBandwidth.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/shapes/BarRounded.js","webpack://hnry-rails/./node_modules/d3-path/src/path.js","webpack://hnry-rails/./node_modules/d3-shape/src/constant.js","webpack://hnry-rails/./node_modules/d3-shape/src/curve/linear.js","webpack://hnry-rails/./node_modules/d3-shape/src/point.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/util/setNumberOrNumberAccessor.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/util/D3ShapeFactories.js","webpack://hnry-rails/./node_modules/d3-shape/src/line.js","webpack://hnry-rails/./node_modules/@visx/shape/esm/shapes/LinePath.js","webpack://hnry-rails/./node_modules/@visx/shape/lib/shapes/Line.js","webpack://hnry-rails/./node_modules/@visx/text/esm/util/getStringWidth.js","webpack://hnry-rails/./node_modules/@visx/tooltip/esm/hooks/useTooltip.js","webpack://hnry-rails/./node_modules/@visx/tooltip/esm/tooltips/Tooltip.js","webpack://hnry-rails/./node_modules/balanced-match/index.js","webpack://hnry-rails/./node_modules/cleave-zen/dist/cleave-zen.module.js","webpack://hnry-rails/./node_modules/d3-shape/src/curve/monotone.js","webpack://hnry-rails/./node_modules/dropzone/dist/dropzone.js","webpack://hnry-rails/./node_modules/humps/humps.js","webpack://hnry-rails/./node_modules/json-stringify-safe/stringify.js","webpack://hnry-rails/./node_modules/jsonp/index.js","webpack://hnry-rails/./node_modules/jsonp/node_modules/debug/src/browser.js","webpack://hnry-rails/./node_modules/jsonp/node_modules/debug/src/debug.js","webpack://hnry-rails/./node_modules/jsonp/node_modules/ms/index.js","webpack://hnry-rails/./node_modules/lodash/_arrayAggregator.js","webpack://hnry-rails/./node_modules/lodash/_arrayEach.js","webpack://hnry-rails/./node_modules/lodash/_baseAggregator.js","webpack://hnry-rails/./node_modules/lodash/_baseAssign.js","webpack://hnry-rails/./node_modules/lodash/_baseAssignIn.js","webpack://hnry-rails/./node_modules/lodash/_baseClone.js","webpack://hnry-rails/./node_modules/lodash/_baseIsDate.js","webpack://hnry-rails/./node_modules/lodash/_baseIsMap.js","webpack://hnry-rails/./node_modules/lodash/_baseIsSet.js","webpack://hnry-rails/./node_modules/lodash/_basePick.js","webpack://hnry-rails/./node_modules/lodash/_basePickBy.js","webpack://hnry-rails/./node_modules/lodash/_baseSet.js","webpack://hnry-rails/./node_modules/lodash/_baseSortedUniq.js","webpack://hnry-rails/./node_modules/lodash/_cloneDataView.js","webpack://hnry-rails/./node_modules/lodash/_cloneRegExp.js","webpack://hnry-rails/./node_modules/lodash/_cloneSymbol.js","webpack://hnry-rails/./node_modules/lodash/_copySymbols.js","webpack://hnry-rails/./node_modules/lodash/_copySymbolsIn.js","webpack://hnry-rails/./node_modules/lodash/_createAggregator.js","webpack://hnry-rails/./node_modules/lodash/_flatRest.js","webpack://hnry-rails/./node_modules/lodash/_getAllKeysIn.js","webpack://hnry-rails/./node_modules/lodash/_getSymbolsIn.js","webpack://hnry-rails/./node_modules/lodash/_initCloneArray.js","webpack://hnry-rails/./node_modules/lodash/_initCloneByTag.js","webpack://hnry-rails/./node_modules/lodash/clone.js","webpack://hnry-rails/./node_modules/lodash/debounce.js","webpack://hnry-rails/./node_modules/lodash/defaults.js","webpack://hnry-rails/./node_modules/lodash/flatten.js","webpack://hnry-rails/./node_modules/lodash/fromPairs.js","webpack://hnry-rails/./node_modules/lodash/groupBy.js","webpack://hnry-rails/./node_modules/lodash/isDate.js","webpack://hnry-rails/./node_modules/lodash/isEmpty.js","webpack://hnry-rails/./node_modules/lodash/isEqual.js","webpack://hnry-rails/./node_modules/lodash/isMap.js","webpack://hnry-rails/./node_modules/lodash/isSet.js","webpack://hnry-rails/./node_modules/lodash/isUndefined.js","webpack://hnry-rails/./node_modules/lodash/negate.js","webpack://hnry-rails/./node_modules/lodash/now.js","webpack://hnry-rails/./node_modules/lodash/omitBy.js","webpack://hnry-rails/./node_modules/lodash/orderBy.js","webpack://hnry-rails/./node_modules/lodash/pick.js","webpack://hnry-rails/./node_modules/lodash/pickBy.js","webpack://hnry-rails/./node_modules/lodash/sortedUniq.js","webpack://hnry-rails/./node_modules/lodash/throttle.js","webpack://hnry-rails/./node_modules/lodash/uniqBy.js","webpack://hnry-rails/./node_modules/lodash/uniqueId.js","webpack://hnry-rails/./node_modules/math-expression-evaluator/src/formula_evaluator.js","webpack://hnry-rails/./node_modules/math-expression-evaluator/src/lexer.js","webpack://hnry-rails/./node_modules/math-expression-evaluator/src/math_function.js","webpack://hnry-rails/./node_modules/math-expression-evaluator/src/postfix.js","webpack://hnry-rails/./node_modules/math-expression-evaluator/src/postfix_evaluator.js","webpack://hnry-rails/./node_modules/qr.js/lib/8BitByte.js","webpack://hnry-rails/./node_modules/qr.js/lib/BitBuffer.js","webpack://hnry-rails/./node_modules/qr.js/lib/ErrorCorrectLevel.js","webpack://hnry-rails/./node_modules/qr.js/lib/Polynomial.js","webpack://hnry-rails/./node_modules/qr.js/lib/QRCode.js","webpack://hnry-rails/./node_modules/qr.js/lib/RSBlock.js","webpack://hnry-rails/./node_modules/qr.js/lib/math.js","webpack://hnry-rails/./node_modules/qr.js/lib/mode.js","webpack://hnry-rails/./node_modules/qr.js/lib/util.js","webpack://hnry-rails/./node_modules/react-fast-compare/index.js","webpack://hnry-rails/./node_modules/react-otp-input/lib/index.esm.js","webpack://hnry-rails/./node_modules/react-qr-code/lib/QRCodeSvg/index.js","webpack://hnry-rails/./node_modules/react-qr-code/lib/index.js","webpack://hnry-rails/./node_modules/react-rewards/dist/react-rewards.es.js","webpack://hnry-rails/./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack://hnry-rails/./node_modules/use-composed-ref/dist/use-composed-ref.esm.js","webpack://hnry-rails/./node_modules/react-textarea-autosize/dist/react-textarea-autosize.browser.esm.js","webpack://hnry-rails/./node_modules/use-latest/dist/use-latest.esm.js","webpack://hnry-rails/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://hnry-rails/./node_modules/reduce-css-calc/index.js","webpack://hnry-rails/./node_modules/reduce-css-calc/node_modules/balanced-match/index.js","webpack://hnry-rails/./node_modules/reduce-function-call/index.js","webpack://hnry-rails/./node_modules/victory-area/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-area/es/area.js","webpack://hnry-rails/./node_modules/victory-area/es/victory-area.js","webpack://hnry-rails/./node_modules/victory-axis/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-axis/es/victory-axis.js","webpack://hnry-rails/./node_modules/victory-bar/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-bar/es/bar-helper-methods.js","webpack://hnry-rails/./node_modules/victory-bar/es/geometry-helper-methods.js","webpack://hnry-rails/./node_modules/victory-bar/es/path-helper-methods.js","webpack://hnry-rails/./node_modules/victory-bar/es/bar.js","webpack://hnry-rails/./node_modules/victory-bar/es/victory-bar.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/selection.js","webpack://hnry-rails/./node_modules/victory-brush-container/es/brush-helpers.js","webpack://hnry-rails/./node_modules/victory-brush-container/es/victory-brush-container.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/background.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/arc.js","webpack://hnry-rails/./node_modules/victory-polar-axis/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-polar-axis/es/victory-polar-axis.js","webpack://hnry-rails/./node_modules/victory-chart/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-chart/es/victory-chart.js","webpack://hnry-rails/./node_modules/d3-ease/src/linear.js","webpack://hnry-rails/./node_modules/d3-ease/src/quad.js","webpack://hnry-rails/./node_modules/d3-ease/src/cubic.js","webpack://hnry-rails/./node_modules/d3-ease/src/poly.js","webpack://hnry-rails/./node_modules/d3-ease/src/sin.js","webpack://hnry-rails/./node_modules/d3-ease/src/math.js","webpack://hnry-rails/./node_modules/d3-ease/src/exp.js","webpack://hnry-rails/./node_modules/d3-ease/src/circle.js","webpack://hnry-rails/./node_modules/d3-ease/src/bounce.js","webpack://hnry-rails/./node_modules/d3-ease/src/back.js","webpack://hnry-rails/./node_modules/d3-ease/src/elastic.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-animation/util.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-animation/victory-animation.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/clip-path.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-clip-container/victory-clip-container.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-portal/portal.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-portal/portal-outlet.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-container/victory-container.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/merge-refs.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/text.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/tspan.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-label/victory-label.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-portal/portal-context.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-portal/victory-portal.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/circle.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/line.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/line-segment.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/path.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/point-path-helpers.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/point.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/rect.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-theme/grayscale.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-theme/material.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-theme/clean.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-theme/victory-theme.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-transition/victory-transition.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/add-events.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/axis.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/collection.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/immutable.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/data.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/default-transitions.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/domain.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/events.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/helpers.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/hooks/use-animation-state.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/hooks/use-previous-props.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/label-helpers.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/pointRadial.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/bump.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/link.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/asterisk.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/circle.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/cross.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/diamond.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/diamond2.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/plus.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/square.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/square2.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/star.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/triangle.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/triangle2.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/wye.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol/times.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/symbol.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/noop.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/basis.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/basisClosed.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/basisOpen.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/bundle.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/cardinal.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/catmullRom.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/linearClosed.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/monotone.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/natural.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/step.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/offset/none.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/none.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/stack.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/offset/expand.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/offset/diverging.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/offset/silhouette.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/offset/wiggle.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/appearance.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/ascending.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/descending.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/insideOut.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/order/reverse.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/line-helpers.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/log.js","webpack://hnry-rails/./node_modules/d3-scale/src/identity.js","webpack://hnry-rails/./node_modules/d3-scale/src/nice.js","webpack://hnry-rails/./node_modules/d3-scale/src/log.js","webpack://hnry-rails/./node_modules/d3-scale/src/symlog.js","webpack://hnry-rails/./node_modules/d3-scale/src/pow.js","webpack://hnry-rails/./node_modules/d3-scale/src/radial.js","webpack://hnry-rails/./node_modules/d3-array/src/max.js","webpack://hnry-rails/./node_modules/d3-array/src/min.js","webpack://hnry-rails/./node_modules/d3-array/src/sort.js","webpack://hnry-rails/./node_modules/d3-array/src/quickselect.js","webpack://hnry-rails/./node_modules/d3-array/src/quantile.js","webpack://hnry-rails/./node_modules/d3-scale/src/quantile.js","webpack://hnry-rails/./node_modules/d3-scale/src/quantize.js","webpack://hnry-rails/./node_modules/d3-scale/src/threshold.js","webpack://hnry-rails/./node_modules/d3-time/src/millisecond.js","webpack://hnry-rails/./node_modules/d3-time/src/ticks.js","webpack://hnry-rails/./node_modules/d3-time-format/src/locale.js","webpack://hnry-rails/./node_modules/d3-time-format/src/defaultLocale.js","webpack://hnry-rails/./node_modules/d3-scale/src/time.js","webpack://hnry-rails/./node_modules/d3-scale/src/utcTime.js","webpack://hnry-rails/./node_modules/d3-scale/src/sequential.js","webpack://hnry-rails/./node_modules/d3-scale/src/sequentialQuantile.js","webpack://hnry-rails/./node_modules/d3-scale/src/diverging.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/piecewise.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/scale.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/style.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/textsize.js","webpack://hnry-rails/./node_modules/d3-timer/src/timer.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/timer.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/timer-context.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/transitions.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/user-props.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-util/wrapper.js","webpack://hnry-rails/./node_modules/victory-legend/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-core/es/victory-primitives/border.js","webpack://hnry-rails/./node_modules/victory-legend/es/victory-legend.js","webpack://hnry-rails/./node_modules/victory-line/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-line/es/curve.js","webpack://hnry-rails/./node_modules/victory-line/es/victory-line.js","webpack://hnry-rails/./node_modules/victory-pie/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-pie/es/slice.js","webpack://hnry-rails/./node_modules/victory-pie/es/victory-pie.js","webpack://hnry-rails/./node_modules/victory-scatter/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-scatter/es/victory-scatter.js","webpack://hnry-rails/./node_modules/victory-shared-events/es/victory-shared-events.js","webpack://hnry-rails/./node_modules/victory-stack/es/helper-methods.js","webpack://hnry-rails/./node_modules/victory-stack/es/victory-stack.js","webpack://hnry-rails/./node_modules/victory-tooltip/es/flyout.js","webpack://hnry-rails/./node_modules/victory-tooltip/es/victory-tooltip.js","webpack://hnry-rails/./node_modules/@tanstack/virtual-core/dist/esm/utils.js","webpack://hnry-rails/./node_modules/@tanstack/virtual-core/dist/esm/index.js","webpack://hnry-rails/./node_modules/@tanstack/react-virtual/dist/esm/index.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-computed.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-watch.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/active-element-history.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/document-ready.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/components/combobox/combobox.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/get-text-value.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-text-value.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/components/menu/menu.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/components/radio-group/radio-group.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/components/transitions/utils/transition.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/once.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/components/transitions/transition.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-transition.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-flags.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-document-event.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-outside-click.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-window-event.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-owner.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/hooks/use-tree-walker.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/internal/open-closed.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/calculate-active-index.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/focus-management.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/owner.js","webpack://hnry-rails/./node_modules/@headlessui/react/dist/utils/platform.js","webpack://hnry-rails/./node_modules/@heroicons/react/24/solid/esm/ChatBubbleBottomCenterIcon.js","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-context/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/primitive/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-checkbox/node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-collapsible/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-collapsible/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/number/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/primitive/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-context/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-direction/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-collection/dist/index.mjs","webpack://hnry-rails/./node_modules/@radix-ui/react-slider/node_modules/@radix-ui/react-use-previous/dist/index.mjs","webpack://hnry-rails/./node_modules/d3-array/src/ascending.js","webpack://hnry-rails/./node_modules/d3-array/src/bisect.js","webpack://hnry-rails/./node_modules/d3-array/src/descending.js","webpack://hnry-rails/./node_modules/d3-array/src/bisector.js","webpack://hnry-rails/./node_modules/d3-array/src/number.js","webpack://hnry-rails/./node_modules/d3-array/src/ticks.js","webpack://hnry-rails/./node_modules/d3-color/src/color.js","webpack://hnry-rails/./node_modules/d3-color/src/define.js","webpack://hnry-rails/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://hnry-rails/./node_modules/d3-format/src/formatRounded.js","webpack://hnry-rails/./node_modules/d3-format/src/formatTypes.js","webpack://hnry-rails/./node_modules/d3-format/src/identity.js","webpack://hnry-rails/./node_modules/d3-format/src/locale.js","webpack://hnry-rails/./node_modules/d3-format/src/defaultLocale.js","webpack://hnry-rails/./node_modules/d3-format/src/formatGroup.js","webpack://hnry-rails/./node_modules/d3-format/src/formatNumerals.js","webpack://hnry-rails/./node_modules/d3-format/src/formatTrim.js","webpack://hnry-rails/./node_modules/d3-format/src/exponent.js","webpack://hnry-rails/./node_modules/d3-format/src/formatDecimal.js","webpack://hnry-rails/./node_modules/d3-format/src/formatSpecifier.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/color.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/constant.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/number.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/basis.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/rgb.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/basisClosed.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/round.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/array.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/date.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/object.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/string.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/numberArray.js","webpack://hnry-rails/./node_modules/d3-interpolate/src/value.js","webpack://hnry-rails/./node_modules/d3-scale/src/band.js","webpack://hnry-rails/./node_modules/d3-array/src/range.js","webpack://hnry-rails/./node_modules/d3-scale/src/continuous.js","webpack://hnry-rails/./node_modules/d3-scale/src/constant.js","webpack://hnry-rails/./node_modules/d3-scale/src/init.js","webpack://hnry-rails/./node_modules/d3-scale/src/linear.js","webpack://hnry-rails/./node_modules/d3-scale/src/number.js","webpack://hnry-rails/./node_modules/internmap/src/index.js","webpack://hnry-rails/./node_modules/d3-scale/src/ordinal.js","webpack://hnry-rails/./node_modules/d3-scale/src/tickFormat.js","webpack://hnry-rails/./node_modules/d3-format/src/precisionPrefix.js","webpack://hnry-rails/./node_modules/d3-format/src/precisionRound.js","webpack://hnry-rails/./node_modules/d3-format/src/precisionFixed.js","webpack://hnry-rails/./node_modules/d3-time/src/day.js","webpack://hnry-rails/./node_modules/d3-time/src/duration.js","webpack://hnry-rails/./node_modules/d3-time/src/hour.js","webpack://hnry-rails/./node_modules/d3-time/src/interval.js","webpack://hnry-rails/./node_modules/d3-time/src/minute.js","webpack://hnry-rails/./node_modules/d3-time/src/month.js","webpack://hnry-rails/./node_modules/d3-time/src/second.js","webpack://hnry-rails/./node_modules/d3-time/src/week.js","webpack://hnry-rails/./node_modules/d3-time/src/year.js","webpack://hnry-rails/./node_modules/date-fns/add.mjs","webpack://hnry-rails/./node_modules/date-fns/differenceInDays.mjs","webpack://hnry-rails/./node_modules/date-fns/subDays.mjs","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/isObject.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/normalizeArguments.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/constants.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/ParseError.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/tools/semver-compare.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/metadata.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/parseDigits.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/isPossible.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/getNumberType.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/getPossibleCountriesForNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/format.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/RFC3966.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/PhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/isValid.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/getCountryByNationalNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractPhoneContext.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/parse.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/parsePhoneNumberWithError_.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/isPossiblePhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/min/exports/isPossiblePhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/es6/isValidPhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js","webpack://hnry-rails/./node_modules/libphonenumber-js/metadata.min.json.js","webpack://hnry-rails/./node_modules/libphonenumber-js/min/exports/withMetadataArgument.js","webpack://hnry-rails/./node_modules/react-hook-form/dist/index.esm.mjs","webpack://hnry-rails/./node_modules/react-international-phone/dist/index.mjs","webpack://hnry-rails/./node_modules/react-share/dist/index.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/arc.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/area.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/areaRadial.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/array.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/constant.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/linear.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/curve/radial.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/line.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/lineRadial.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/math.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-path/src/path.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/path.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/descending.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/identity.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/pie.js","webpack://hnry-rails/./node_modules/victory-vendor/node_modules/d3-shape/src/point.js"],"sourcesContent":["import React, { useState, useCallback } from 'react';\n\nconst hiddenStyles = {\n display: 'none'\n};\nfunction HiddenText(_ref) {\n let {\n id,\n value\n } = _ref;\n return React.createElement(\"div\", {\n id: id,\n style: hiddenStyles\n }, value);\n}\n\nfunction LiveRegion(_ref) {\n let {\n id,\n announcement,\n ariaLiveType = \"assertive\"\n } = _ref;\n // Hide element visually but keep it readable by screen readers\n const visuallyHidden = {\n position: 'fixed',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n clipPath: 'inset(100%)',\n whiteSpace: 'nowrap'\n };\n return React.createElement(\"div\", {\n id: id,\n style: visuallyHidden,\n role: \"status\",\n \"aria-live\": ariaLiveType,\n \"aria-atomic\": true\n }, announcement);\n}\n\nfunction useAnnouncement() {\n const [announcement, setAnnouncement] = useState('');\n const announce = useCallback(value => {\n if (value != null) {\n setAnnouncement(value);\n }\n }, []);\n return {\n announce,\n announcement\n };\n}\n\nexport { HiddenText, LiveRegion, useAnnouncement };\n//# sourceMappingURL=accessibility.esm.js.map\n","import React, { createContext, useContext, useEffect, useState, useCallback, useMemo, useRef, useReducer, memo, cloneElement, forwardRef } from 'react';\nimport { createPortal, unstable_batchedUpdates } from 'react-dom';\nimport { useUniqueId, getEventCoordinates, getWindow, isDocument, isHTMLElement, isSVGElement, canUseDOM, isWindow, isNode, getOwnerDocument, add, isKeyboardEvent, subtract, useLazyMemo, useInterval, usePrevious, useLatestValue, useEvent, useIsomorphicLayoutEffect, useNodeRef, findFirstFocusableNode, CSS } from '@dnd-kit/utilities';\nimport { useAnnouncement, HiddenText, LiveRegion } from '@dnd-kit/accessibility';\n\nconst DndMonitorContext = /*#__PURE__*/createContext(null);\n\nfunction useDndMonitor(listener) {\n const registerListener = useContext(DndMonitorContext);\n useEffect(() => {\n if (!registerListener) {\n throw new Error('useDndMonitor must be used within a children of ');\n }\n\n const unsubscribe = registerListener(listener);\n return unsubscribe;\n }, [listener, registerListener]);\n}\n\nfunction useDndMonitorProvider() {\n const [listeners] = useState(() => new Set());\n const registerListener = useCallback(listener => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }, [listeners]);\n const dispatch = useCallback(_ref => {\n let {\n type,\n event\n } = _ref;\n listeners.forEach(listener => {\n var _listener$type;\n\n return (_listener$type = listener[type]) == null ? void 0 : _listener$type.call(listener, event);\n });\n }, [listeners]);\n return [dispatch, registerListener];\n}\n\nconst defaultScreenReaderInstructions = {\n draggable: \"\\n To pick up a draggable item, press the space bar.\\n While dragging, use the arrow keys to move the item.\\n Press space again to drop the item in its new position, or press escape to cancel.\\n \"\n};\nconst defaultAnnouncements = {\n onDragStart(_ref) {\n let {\n active\n } = _ref;\n return \"Picked up draggable item \" + active.id + \".\";\n },\n\n onDragOver(_ref2) {\n let {\n active,\n over\n } = _ref2;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was moved over droppable area \" + over.id + \".\";\n }\n\n return \"Draggable item \" + active.id + \" is no longer over a droppable area.\";\n },\n\n onDragEnd(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (over) {\n return \"Draggable item \" + active.id + \" was dropped over droppable area \" + over.id;\n }\n\n return \"Draggable item \" + active.id + \" was dropped.\";\n },\n\n onDragCancel(_ref4) {\n let {\n active\n } = _ref4;\n return \"Dragging was cancelled. Draggable item \" + active.id + \" was dropped.\";\n }\n\n};\n\nfunction Accessibility(_ref) {\n let {\n announcements = defaultAnnouncements,\n container,\n hiddenTextDescribedById,\n screenReaderInstructions = defaultScreenReaderInstructions\n } = _ref;\n const {\n announce,\n announcement\n } = useAnnouncement();\n const liveRegionId = useUniqueId(\"DndLiveRegion\");\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n useDndMonitor(useMemo(() => ({\n onDragStart(_ref2) {\n let {\n active\n } = _ref2;\n announce(announcements.onDragStart({\n active\n }));\n },\n\n onDragMove(_ref3) {\n let {\n active,\n over\n } = _ref3;\n\n if (announcements.onDragMove) {\n announce(announcements.onDragMove({\n active,\n over\n }));\n }\n },\n\n onDragOver(_ref4) {\n let {\n active,\n over\n } = _ref4;\n announce(announcements.onDragOver({\n active,\n over\n }));\n },\n\n onDragEnd(_ref5) {\n let {\n active,\n over\n } = _ref5;\n announce(announcements.onDragEnd({\n active,\n over\n }));\n },\n\n onDragCancel(_ref6) {\n let {\n active,\n over\n } = _ref6;\n announce(announcements.onDragCancel({\n active,\n over\n }));\n }\n\n }), [announce, announcements]));\n\n if (!mounted) {\n return null;\n }\n\n const markup = React.createElement(React.Fragment, null, React.createElement(HiddenText, {\n id: hiddenTextDescribedById,\n value: screenReaderInstructions.draggable\n }), React.createElement(LiveRegion, {\n id: liveRegionId,\n announcement: announcement\n }));\n return container ? createPortal(markup, container) : markup;\n}\n\nvar Action;\n\n(function (Action) {\n Action[\"DragStart\"] = \"dragStart\";\n Action[\"DragMove\"] = \"dragMove\";\n Action[\"DragEnd\"] = \"dragEnd\";\n Action[\"DragCancel\"] = \"dragCancel\";\n Action[\"DragOver\"] = \"dragOver\";\n Action[\"RegisterDroppable\"] = \"registerDroppable\";\n Action[\"SetDroppableDisabled\"] = \"setDroppableDisabled\";\n Action[\"UnregisterDroppable\"] = \"unregisterDroppable\";\n})(Action || (Action = {}));\n\nfunction noop() {}\n\nfunction useSensor(sensor, options) {\n return useMemo(() => ({\n sensor,\n options: options != null ? options : {}\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [sensor, options]);\n}\n\nfunction useSensors() {\n for (var _len = arguments.length, sensors = new Array(_len), _key = 0; _key < _len; _key++) {\n sensors[_key] = arguments[_key];\n }\n\n return useMemo(() => [...sensors].filter(sensor => sensor != null), // eslint-disable-next-line react-hooks/exhaustive-deps\n [...sensors]);\n}\n\nconst defaultCoordinates = /*#__PURE__*/Object.freeze({\n x: 0,\n y: 0\n});\n\n/**\r\n * Returns the distance between two points\r\n */\nfunction distanceBetween(p1, p2) {\n return Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));\n}\n\nfunction getRelativeTransformOrigin(event, rect) {\n const eventCoordinates = getEventCoordinates(event);\n\n if (!eventCoordinates) {\n return '0 0';\n }\n\n const transformOrigin = {\n x: (eventCoordinates.x - rect.left) / rect.width * 100,\n y: (eventCoordinates.y - rect.top) / rect.height * 100\n };\n return transformOrigin.x + \"% \" + transformOrigin.y + \"%\";\n}\n\n/**\r\n * Sort collisions from smallest to greatest value\r\n */\nfunction sortCollisionsAsc(_ref, _ref2) {\n let {\n data: {\n value: a\n }\n } = _ref;\n let {\n data: {\n value: b\n }\n } = _ref2;\n return a - b;\n}\n/**\r\n * Sort collisions from greatest to smallest value\r\n */\n\nfunction sortCollisionsDesc(_ref3, _ref4) {\n let {\n data: {\n value: a\n }\n } = _ref3;\n let {\n data: {\n value: b\n }\n } = _ref4;\n return b - a;\n}\n/**\r\n * Returns the coordinates of the corners of a given rectangle:\r\n * [TopLeft {x, y}, TopRight {x, y}, BottomLeft {x, y}, BottomRight {x, y}]\r\n */\n\nfunction cornersOfRectangle(_ref5) {\n let {\n left,\n top,\n height,\n width\n } = _ref5;\n return [{\n x: left,\n y: top\n }, {\n x: left + width,\n y: top\n }, {\n x: left,\n y: top + height\n }, {\n x: left + width,\n y: top + height\n }];\n}\nfunction getFirstCollision(collisions, property) {\n if (!collisions || collisions.length === 0) {\n return null;\n }\n\n const [firstCollision] = collisions;\n return property ? firstCollision[property] : firstCollision;\n}\n\n/**\r\n * Returns the coordinates of the center of a given ClientRect\r\n */\n\nfunction centerOfRectangle(rect, left, top) {\n if (left === void 0) {\n left = rect.left;\n }\n\n if (top === void 0) {\n top = rect.top;\n }\n\n return {\n x: left + rect.width * 0.5,\n y: top + rect.height * 0.5\n };\n}\n/**\r\n * Returns the closest rectangles from an array of rectangles to the center of a given\r\n * rectangle.\r\n */\n\n\nconst closestCenter = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const centerRect = centerOfRectangle(collisionRect, collisionRect.left, collisionRect.top);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const distBetween = distanceBetween(centerOfRectangle(rect), centerRect);\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: distBetween\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the closest rectangles from an array of rectangles to the corners of\r\n * another rectangle.\r\n */\n\nconst closestCorners = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const corners = cornersOfRectangle(collisionRect);\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const rectCorners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner, index) => {\n return accumulator + distanceBetween(rectCorners[index], corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\n/**\r\n * Returns the intersecting rectangle area between two rectangles\r\n */\n\nfunction getIntersectionRatio(entry, target) {\n const top = Math.max(target.top, entry.top);\n const left = Math.max(target.left, entry.left);\n const right = Math.min(target.left + target.width, entry.left + entry.width);\n const bottom = Math.min(target.top + target.height, entry.top + entry.height);\n const width = right - left;\n const height = bottom - top;\n\n if (left < right && top < bottom) {\n const targetArea = target.width * target.height;\n const entryArea = entry.width * entry.height;\n const intersectionArea = width * height;\n const intersectionRatio = intersectionArea / (targetArea + entryArea - intersectionArea);\n return Number(intersectionRatio.toFixed(4));\n } // Rectangles do not overlap, or overlap has an area of zero (edge/corner overlap)\n\n\n return 0;\n}\n/**\r\n * Returns the rectangles that has the greatest intersection area with a given\r\n * rectangle in an array of rectangles.\r\n */\n\nconst rectIntersection = _ref => {\n let {\n collisionRect,\n droppableRects,\n droppableContainers\n } = _ref;\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect) {\n const intersectionRatio = getIntersectionRatio(rect, collisionRect);\n\n if (intersectionRatio > 0) {\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: intersectionRatio\n }\n });\n }\n }\n }\n\n return collisions.sort(sortCollisionsDesc);\n};\n\n/**\r\n * Check if a given point is contained within a bounding rectangle\r\n */\n\nfunction isPointWithinRect(point, rect) {\n const {\n top,\n left,\n bottom,\n right\n } = rect;\n return top <= point.y && point.y <= bottom && left <= point.x && point.x <= right;\n}\n/**\r\n * Returns the rectangles that the pointer is hovering over\r\n */\n\n\nconst pointerWithin = _ref => {\n let {\n droppableContainers,\n droppableRects,\n pointerCoordinates\n } = _ref;\n\n if (!pointerCoordinates) {\n return [];\n }\n\n const collisions = [];\n\n for (const droppableContainer of droppableContainers) {\n const {\n id\n } = droppableContainer;\n const rect = droppableRects.get(id);\n\n if (rect && isPointWithinRect(pointerCoordinates, rect)) {\n /* There may be more than a single rectangle intersecting\r\n * with the pointer coordinates. In order to sort the\r\n * colliding rectangles, we measure the distance between\r\n * the pointer and the corners of the intersecting rectangle\r\n */\n const corners = cornersOfRectangle(rect);\n const distances = corners.reduce((accumulator, corner) => {\n return accumulator + distanceBetween(pointerCoordinates, corner);\n }, 0);\n const effectiveDistance = Number((distances / 4).toFixed(4));\n collisions.push({\n id,\n data: {\n droppableContainer,\n value: effectiveDistance\n }\n });\n }\n }\n\n return collisions.sort(sortCollisionsAsc);\n};\n\nfunction adjustScale(transform, rect1, rect2) {\n return { ...transform,\n scaleX: rect1 && rect2 ? rect1.width / rect2.width : 1,\n scaleY: rect1 && rect2 ? rect1.height / rect2.height : 1\n };\n}\n\nfunction getRectDelta(rect1, rect2) {\n return rect1 && rect2 ? {\n x: rect1.left - rect2.left,\n y: rect1.top - rect2.top\n } : defaultCoordinates;\n}\n\nfunction createRectAdjustmentFn(modifier) {\n return function adjustClientRect(rect) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((acc, adjustment) => ({ ...acc,\n top: acc.top + modifier * adjustment.y,\n bottom: acc.bottom + modifier * adjustment.y,\n left: acc.left + modifier * adjustment.x,\n right: acc.right + modifier * adjustment.x\n }), { ...rect\n });\n };\n}\nconst getAdjustedRect = /*#__PURE__*/createRectAdjustmentFn(1);\n\nfunction parseTransform(transform) {\n if (transform.startsWith('matrix3d(')) {\n const transformArray = transform.slice(9, -1).split(/, /);\n return {\n x: +transformArray[12],\n y: +transformArray[13],\n scaleX: +transformArray[0],\n scaleY: +transformArray[5]\n };\n } else if (transform.startsWith('matrix(')) {\n const transformArray = transform.slice(7, -1).split(/, /);\n return {\n x: +transformArray[4],\n y: +transformArray[5],\n scaleX: +transformArray[0],\n scaleY: +transformArray[3]\n };\n }\n\n return null;\n}\n\nfunction inverseTransform(rect, transform, transformOrigin) {\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return rect;\n }\n\n const {\n scaleX,\n scaleY,\n x: translateX,\n y: translateY\n } = parsedTransform;\n const x = rect.left - translateX - (1 - scaleX) * parseFloat(transformOrigin);\n const y = rect.top - translateY - (1 - scaleY) * parseFloat(transformOrigin.slice(transformOrigin.indexOf(' ') + 1));\n const w = scaleX ? rect.width / scaleX : rect.width;\n const h = scaleY ? rect.height / scaleY : rect.height;\n return {\n width: w,\n height: h,\n top: y,\n right: x + w,\n bottom: y + h,\n left: x\n };\n}\n\nconst defaultOptions = {\n ignoreTransform: false\n};\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n */\n\nfunction getClientRect(element, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n let rect = element.getBoundingClientRect();\n\n if (options.ignoreTransform) {\n const {\n transform,\n transformOrigin\n } = getWindow(element).getComputedStyle(element);\n\n if (transform) {\n rect = inverseTransform(rect, transform, transformOrigin);\n }\n }\n\n const {\n top,\n left,\n width,\n height,\n bottom,\n right\n } = rect;\n return {\n top,\n left,\n width,\n height,\n bottom,\n right\n };\n}\n/**\r\n * Returns the bounding client rect of an element relative to the viewport.\r\n *\r\n * @remarks\r\n * The ClientRect returned by this method does not take into account transforms\r\n * applied to the element it measures.\r\n *\r\n */\n\nfunction getTransformAgnosticClientRect(element) {\n return getClientRect(element, {\n ignoreTransform: true\n });\n}\n\nfunction getWindowClientRect(element) {\n const width = element.innerWidth;\n const height = element.innerHeight;\n return {\n top: 0,\n left: 0,\n right: width,\n bottom: height,\n width,\n height\n };\n}\n\nfunction isFixed(node, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(node).getComputedStyle(node);\n }\n\n return computedStyle.position === 'fixed';\n}\n\nfunction isScrollable(element, computedStyle) {\n if (computedStyle === void 0) {\n computedStyle = getWindow(element).getComputedStyle(element);\n }\n\n const overflowRegex = /(auto|scroll|overlay)/;\n const properties = ['overflow', 'overflowX', 'overflowY'];\n return properties.some(property => {\n const value = computedStyle[property];\n return typeof value === 'string' ? overflowRegex.test(value) : false;\n });\n}\n\nfunction getScrollableAncestors(element, limit) {\n const scrollParents = [];\n\n function findScrollableAncestors(node) {\n if (limit != null && scrollParents.length >= limit) {\n return scrollParents;\n }\n\n if (!node) {\n return scrollParents;\n }\n\n if (isDocument(node) && node.scrollingElement != null && !scrollParents.includes(node.scrollingElement)) {\n scrollParents.push(node.scrollingElement);\n return scrollParents;\n }\n\n if (!isHTMLElement(node) || isSVGElement(node)) {\n return scrollParents;\n }\n\n if (scrollParents.includes(node)) {\n return scrollParents;\n }\n\n const computedStyle = getWindow(element).getComputedStyle(node);\n\n if (node !== element) {\n if (isScrollable(node, computedStyle)) {\n scrollParents.push(node);\n }\n }\n\n if (isFixed(node, computedStyle)) {\n return scrollParents;\n }\n\n return findScrollableAncestors(node.parentNode);\n }\n\n if (!element) {\n return scrollParents;\n }\n\n return findScrollableAncestors(element);\n}\nfunction getFirstScrollableAncestor(node) {\n const [firstScrollableAncestor] = getScrollableAncestors(node, 1);\n return firstScrollableAncestor != null ? firstScrollableAncestor : null;\n}\n\nfunction getScrollableElement(element) {\n if (!canUseDOM || !element) {\n return null;\n }\n\n if (isWindow(element)) {\n return element;\n }\n\n if (!isNode(element)) {\n return null;\n }\n\n if (isDocument(element) || element === getOwnerDocument(element).scrollingElement) {\n return window;\n }\n\n if (isHTMLElement(element)) {\n return element;\n }\n\n return null;\n}\n\nfunction getScrollXCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollX;\n }\n\n return element.scrollLeft;\n}\nfunction getScrollYCoordinate(element) {\n if (isWindow(element)) {\n return element.scrollY;\n }\n\n return element.scrollTop;\n}\nfunction getScrollCoordinates(element) {\n return {\n x: getScrollXCoordinate(element),\n y: getScrollYCoordinate(element)\n };\n}\n\nvar Direction;\n\n(function (Direction) {\n Direction[Direction[\"Forward\"] = 1] = \"Forward\";\n Direction[Direction[\"Backward\"] = -1] = \"Backward\";\n})(Direction || (Direction = {}));\n\nfunction isDocumentScrollingElement(element) {\n if (!canUseDOM || !element) {\n return false;\n }\n\n return element === document.scrollingElement;\n}\n\nfunction getScrollPosition(scrollingContainer) {\n const minScroll = {\n x: 0,\n y: 0\n };\n const dimensions = isDocumentScrollingElement(scrollingContainer) ? {\n height: window.innerHeight,\n width: window.innerWidth\n } : {\n height: scrollingContainer.clientHeight,\n width: scrollingContainer.clientWidth\n };\n const maxScroll = {\n x: scrollingContainer.scrollWidth - dimensions.width,\n y: scrollingContainer.scrollHeight - dimensions.height\n };\n const isTop = scrollingContainer.scrollTop <= minScroll.y;\n const isLeft = scrollingContainer.scrollLeft <= minScroll.x;\n const isBottom = scrollingContainer.scrollTop >= maxScroll.y;\n const isRight = scrollingContainer.scrollLeft >= maxScroll.x;\n return {\n isTop,\n isLeft,\n isBottom,\n isRight,\n maxScroll,\n minScroll\n };\n}\n\nconst defaultThreshold = {\n x: 0.2,\n y: 0.2\n};\nfunction getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, _ref, acceleration, thresholdPercentage) {\n let {\n top,\n left,\n right,\n bottom\n } = _ref;\n\n if (acceleration === void 0) {\n acceleration = 10;\n }\n\n if (thresholdPercentage === void 0) {\n thresholdPercentage = defaultThreshold;\n }\n\n const {\n isTop,\n isBottom,\n isLeft,\n isRight\n } = getScrollPosition(scrollContainer);\n const direction = {\n x: 0,\n y: 0\n };\n const speed = {\n x: 0,\n y: 0\n };\n const threshold = {\n height: scrollContainerRect.height * thresholdPercentage.y,\n width: scrollContainerRect.width * thresholdPercentage.x\n };\n\n if (!isTop && top <= scrollContainerRect.top + threshold.height) {\n // Scroll Up\n direction.y = Direction.Backward;\n speed.y = acceleration * Math.abs((scrollContainerRect.top + threshold.height - top) / threshold.height);\n } else if (!isBottom && bottom >= scrollContainerRect.bottom - threshold.height) {\n // Scroll Down\n direction.y = Direction.Forward;\n speed.y = acceleration * Math.abs((scrollContainerRect.bottom - threshold.height - bottom) / threshold.height);\n }\n\n if (!isRight && right >= scrollContainerRect.right - threshold.width) {\n // Scroll Right\n direction.x = Direction.Forward;\n speed.x = acceleration * Math.abs((scrollContainerRect.right - threshold.width - right) / threshold.width);\n } else if (!isLeft && left <= scrollContainerRect.left + threshold.width) {\n // Scroll Left\n direction.x = Direction.Backward;\n speed.x = acceleration * Math.abs((scrollContainerRect.left + threshold.width - left) / threshold.width);\n }\n\n return {\n direction,\n speed\n };\n}\n\nfunction getScrollElementRect(element) {\n if (element === document.scrollingElement) {\n const {\n innerWidth,\n innerHeight\n } = window;\n return {\n top: 0,\n left: 0,\n right: innerWidth,\n bottom: innerHeight,\n width: innerWidth,\n height: innerHeight\n };\n }\n\n const {\n top,\n left,\n right,\n bottom\n } = element.getBoundingClientRect();\n return {\n top,\n left,\n right,\n bottom,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getScrollOffsets(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return add(acc, getScrollCoordinates(node));\n }, defaultCoordinates);\n}\nfunction getScrollXOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollXCoordinate(node);\n }, 0);\n}\nfunction getScrollYOffset(scrollableAncestors) {\n return scrollableAncestors.reduce((acc, node) => {\n return acc + getScrollYCoordinate(node);\n }, 0);\n}\n\nfunction scrollIntoViewIfNeeded(element, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n if (!element) {\n return;\n }\n\n const {\n top,\n left,\n bottom,\n right\n } = measure(element);\n const firstScrollableAncestor = getFirstScrollableAncestor(element);\n\n if (!firstScrollableAncestor) {\n return;\n }\n\n if (bottom <= 0 || right <= 0 || top >= window.innerHeight || left >= window.innerWidth) {\n element.scrollIntoView({\n block: 'center',\n inline: 'center'\n });\n }\n}\n\nconst properties = [['x', ['left', 'right'], getScrollXOffset], ['y', ['top', 'bottom'], getScrollYOffset]];\nclass Rect {\n constructor(rect, element) {\n this.rect = void 0;\n this.width = void 0;\n this.height = void 0;\n this.top = void 0;\n this.bottom = void 0;\n this.right = void 0;\n this.left = void 0;\n const scrollableAncestors = getScrollableAncestors(element);\n const scrollOffsets = getScrollOffsets(scrollableAncestors);\n this.rect = { ...rect\n };\n this.width = rect.width;\n this.height = rect.height;\n\n for (const [axis, keys, getScrollOffset] of properties) {\n for (const key of keys) {\n Object.defineProperty(this, key, {\n get: () => {\n const currentOffsets = getScrollOffset(scrollableAncestors);\n const scrollOffsetsDeltla = scrollOffsets[axis] - currentOffsets;\n return this.rect[key] + scrollOffsetsDeltla;\n },\n enumerable: true\n });\n }\n }\n\n Object.defineProperty(this, 'rect', {\n enumerable: false\n });\n }\n\n}\n\nclass Listeners {\n constructor(target) {\n this.target = void 0;\n this.listeners = [];\n\n this.removeAll = () => {\n this.listeners.forEach(listener => {\n var _this$target;\n\n return (_this$target = this.target) == null ? void 0 : _this$target.removeEventListener(...listener);\n });\n };\n\n this.target = target;\n }\n\n add(eventName, handler, options) {\n var _this$target2;\n\n (_this$target2 = this.target) == null ? void 0 : _this$target2.addEventListener(eventName, handler, options);\n this.listeners.push([eventName, handler, options]);\n }\n\n}\n\nfunction getEventListenerTarget(target) {\n // If the `event.target` element is removed from the document events will still be targeted\n // at it, and hence won't always bubble up to the window or document anymore.\n // If there is any risk of an element being removed while it is being dragged,\n // the best practice is to attach the event listeners directly to the target.\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget\n const {\n EventTarget\n } = getWindow(target);\n return target instanceof EventTarget ? target : getOwnerDocument(target);\n}\n\nfunction hasExceededDistance(delta, measurement) {\n const dx = Math.abs(delta.x);\n const dy = Math.abs(delta.y);\n\n if (typeof measurement === 'number') {\n return Math.sqrt(dx ** 2 + dy ** 2) > measurement;\n }\n\n if ('x' in measurement && 'y' in measurement) {\n return dx > measurement.x && dy > measurement.y;\n }\n\n if ('x' in measurement) {\n return dx > measurement.x;\n }\n\n if ('y' in measurement) {\n return dy > measurement.y;\n }\n\n return false;\n}\n\nvar EventName;\n\n(function (EventName) {\n EventName[\"Click\"] = \"click\";\n EventName[\"DragStart\"] = \"dragstart\";\n EventName[\"Keydown\"] = \"keydown\";\n EventName[\"ContextMenu\"] = \"contextmenu\";\n EventName[\"Resize\"] = \"resize\";\n EventName[\"SelectionChange\"] = \"selectionchange\";\n EventName[\"VisibilityChange\"] = \"visibilitychange\";\n})(EventName || (EventName = {}));\n\nfunction preventDefault(event) {\n event.preventDefault();\n}\nfunction stopPropagation(event) {\n event.stopPropagation();\n}\n\nvar KeyboardCode;\n\n(function (KeyboardCode) {\n KeyboardCode[\"Space\"] = \"Space\";\n KeyboardCode[\"Down\"] = \"ArrowDown\";\n KeyboardCode[\"Right\"] = \"ArrowRight\";\n KeyboardCode[\"Left\"] = \"ArrowLeft\";\n KeyboardCode[\"Up\"] = \"ArrowUp\";\n KeyboardCode[\"Esc\"] = \"Escape\";\n KeyboardCode[\"Enter\"] = \"Enter\";\n})(KeyboardCode || (KeyboardCode = {}));\n\nconst defaultKeyboardCodes = {\n start: [KeyboardCode.Space, KeyboardCode.Enter],\n cancel: [KeyboardCode.Esc],\n end: [KeyboardCode.Space, KeyboardCode.Enter]\n};\nconst defaultKeyboardCoordinateGetter = (event, _ref) => {\n let {\n currentCoordinates\n } = _ref;\n\n switch (event.code) {\n case KeyboardCode.Right:\n return { ...currentCoordinates,\n x: currentCoordinates.x + 25\n };\n\n case KeyboardCode.Left:\n return { ...currentCoordinates,\n x: currentCoordinates.x - 25\n };\n\n case KeyboardCode.Down:\n return { ...currentCoordinates,\n y: currentCoordinates.y + 25\n };\n\n case KeyboardCode.Up:\n return { ...currentCoordinates,\n y: currentCoordinates.y - 25\n };\n }\n\n return undefined;\n};\n\nclass KeyboardSensor {\n constructor(props) {\n this.props = void 0;\n this.autoScrollEnabled = false;\n this.referenceCoordinates = void 0;\n this.listeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n const {\n event: {\n target\n }\n } = props;\n this.props = props;\n this.listeners = new Listeners(getOwnerDocument(target));\n this.windowListeners = new Listeners(getWindow(target));\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.attach();\n }\n\n attach() {\n this.handleStart();\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n setTimeout(() => this.listeners.add(EventName.Keydown, this.handleKeyDown));\n }\n\n handleStart() {\n const {\n activeNode,\n onStart\n } = this.props;\n const node = activeNode.node.current;\n\n if (node) {\n scrollIntoViewIfNeeded(node);\n }\n\n onStart(defaultCoordinates);\n }\n\n handleKeyDown(event) {\n if (isKeyboardEvent(event)) {\n const {\n active,\n context,\n options\n } = this.props;\n const {\n keyboardCodes = defaultKeyboardCodes,\n coordinateGetter = defaultKeyboardCoordinateGetter,\n scrollBehavior = 'smooth'\n } = options;\n const {\n code\n } = event;\n\n if (keyboardCodes.end.includes(code)) {\n this.handleEnd(event);\n return;\n }\n\n if (keyboardCodes.cancel.includes(code)) {\n this.handleCancel(event);\n return;\n }\n\n const {\n collisionRect\n } = context.current;\n const currentCoordinates = collisionRect ? {\n x: collisionRect.left,\n y: collisionRect.top\n } : defaultCoordinates;\n\n if (!this.referenceCoordinates) {\n this.referenceCoordinates = currentCoordinates;\n }\n\n const newCoordinates = coordinateGetter(event, {\n active,\n context: context.current,\n currentCoordinates\n });\n\n if (newCoordinates) {\n const coordinatesDelta = subtract(newCoordinates, currentCoordinates);\n const scrollDelta = {\n x: 0,\n y: 0\n };\n const {\n scrollableAncestors\n } = context.current;\n\n for (const scrollContainer of scrollableAncestors) {\n const direction = event.code;\n const {\n isTop,\n isRight,\n isLeft,\n isBottom,\n maxScroll,\n minScroll\n } = getScrollPosition(scrollContainer);\n const scrollElementRect = getScrollElementRect(scrollContainer);\n const clampedCoordinates = {\n x: Math.min(direction === KeyboardCode.Right ? scrollElementRect.right - scrollElementRect.width / 2 : scrollElementRect.right, Math.max(direction === KeyboardCode.Right ? scrollElementRect.left : scrollElementRect.left + scrollElementRect.width / 2, newCoordinates.x)),\n y: Math.min(direction === KeyboardCode.Down ? scrollElementRect.bottom - scrollElementRect.height / 2 : scrollElementRect.bottom, Math.max(direction === KeyboardCode.Down ? scrollElementRect.top : scrollElementRect.top + scrollElementRect.height / 2, newCoordinates.y))\n };\n const canScrollX = direction === KeyboardCode.Right && !isRight || direction === KeyboardCode.Left && !isLeft;\n const canScrollY = direction === KeyboardCode.Down && !isBottom || direction === KeyboardCode.Up && !isTop;\n\n if (canScrollX && clampedCoordinates.x !== newCoordinates.x) {\n const newScrollCoordinates = scrollContainer.scrollLeft + coordinatesDelta.x;\n const canScrollToNewCoordinates = direction === KeyboardCode.Right && newScrollCoordinates <= maxScroll.x || direction === KeyboardCode.Left && newScrollCoordinates >= minScroll.x;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.y) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n left: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.x = scrollContainer.scrollLeft - newScrollCoordinates;\n } else {\n scrollDelta.x = direction === KeyboardCode.Right ? scrollContainer.scrollLeft - maxScroll.x : scrollContainer.scrollLeft - minScroll.x;\n }\n\n if (scrollDelta.x) {\n scrollContainer.scrollBy({\n left: -scrollDelta.x,\n behavior: scrollBehavior\n });\n }\n\n break;\n } else if (canScrollY && clampedCoordinates.y !== newCoordinates.y) {\n const newScrollCoordinates = scrollContainer.scrollTop + coordinatesDelta.y;\n const canScrollToNewCoordinates = direction === KeyboardCode.Down && newScrollCoordinates <= maxScroll.y || direction === KeyboardCode.Up && newScrollCoordinates >= minScroll.y;\n\n if (canScrollToNewCoordinates && !coordinatesDelta.x) {\n // We don't need to update coordinates, the scroll adjustment alone will trigger\n // logic to auto-detect the new container we are over\n scrollContainer.scrollTo({\n top: newScrollCoordinates,\n behavior: scrollBehavior\n });\n return;\n }\n\n if (canScrollToNewCoordinates) {\n scrollDelta.y = scrollContainer.scrollTop - newScrollCoordinates;\n } else {\n scrollDelta.y = direction === KeyboardCode.Down ? scrollContainer.scrollTop - maxScroll.y : scrollContainer.scrollTop - minScroll.y;\n }\n\n if (scrollDelta.y) {\n scrollContainer.scrollBy({\n top: -scrollDelta.y,\n behavior: scrollBehavior\n });\n }\n\n break;\n }\n }\n\n this.handleMove(event, add(subtract(newCoordinates, this.referenceCoordinates), scrollDelta));\n }\n }\n }\n\n handleMove(event, coordinates) {\n const {\n onMove\n } = this.props;\n event.preventDefault();\n onMove(coordinates);\n }\n\n handleEnd(event) {\n const {\n onEnd\n } = this.props;\n event.preventDefault();\n this.detach();\n onEnd();\n }\n\n handleCancel(event) {\n const {\n onCancel\n } = this.props;\n event.preventDefault();\n this.detach();\n onCancel();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll();\n }\n\n}\nKeyboardSensor.activators = [{\n eventName: 'onKeyDown',\n handler: (event, _ref, _ref2) => {\n let {\n keyboardCodes = defaultKeyboardCodes,\n onActivation\n } = _ref;\n let {\n active\n } = _ref2;\n const {\n code\n } = event.nativeEvent;\n\n if (keyboardCodes.start.includes(code)) {\n const activator = active.activatorNode.current;\n\n if (activator && event.target !== activator) {\n return false;\n }\n\n event.preventDefault();\n onActivation == null ? void 0 : onActivation({\n event: event.nativeEvent\n });\n return true;\n }\n\n return false;\n }\n}];\n\nfunction isDistanceConstraint(constraint) {\n return Boolean(constraint && 'distance' in constraint);\n}\n\nfunction isDelayConstraint(constraint) {\n return Boolean(constraint && 'delay' in constraint);\n}\n\nclass AbstractPointerSensor {\n constructor(props, events, listenerTarget) {\n var _getEventCoordinates;\n\n if (listenerTarget === void 0) {\n listenerTarget = getEventListenerTarget(props.event.target);\n }\n\n this.props = void 0;\n this.events = void 0;\n this.autoScrollEnabled = true;\n this.document = void 0;\n this.activated = false;\n this.initialCoordinates = void 0;\n this.timeoutId = null;\n this.listeners = void 0;\n this.documentListeners = void 0;\n this.windowListeners = void 0;\n this.props = props;\n this.events = events;\n const {\n event\n } = props;\n const {\n target\n } = event;\n this.props = props;\n this.events = events;\n this.document = getOwnerDocument(target);\n this.documentListeners = new Listeners(this.document);\n this.listeners = new Listeners(listenerTarget);\n this.windowListeners = new Listeners(getWindow(target));\n this.initialCoordinates = (_getEventCoordinates = getEventCoordinates(event)) != null ? _getEventCoordinates : defaultCoordinates;\n this.handleStart = this.handleStart.bind(this);\n this.handleMove = this.handleMove.bind(this);\n this.handleEnd = this.handleEnd.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.removeTextSelection = this.removeTextSelection.bind(this);\n this.attach();\n }\n\n attach() {\n const {\n events,\n props: {\n options: {\n activationConstraint,\n bypassActivationConstraint\n }\n }\n } = this;\n this.listeners.add(events.move.name, this.handleMove, {\n passive: false\n });\n this.listeners.add(events.end.name, this.handleEnd);\n this.windowListeners.add(EventName.Resize, this.handleCancel);\n this.windowListeners.add(EventName.DragStart, preventDefault);\n this.windowListeners.add(EventName.VisibilityChange, this.handleCancel);\n this.windowListeners.add(EventName.ContextMenu, preventDefault);\n this.documentListeners.add(EventName.Keydown, this.handleKeydown);\n\n if (activationConstraint) {\n if (bypassActivationConstraint != null && bypassActivationConstraint({\n event: this.props.event,\n activeNode: this.props.activeNode,\n options: this.props.options\n })) {\n return this.handleStart();\n }\n\n if (isDelayConstraint(activationConstraint)) {\n this.timeoutId = setTimeout(this.handleStart, activationConstraint.delay);\n return;\n }\n\n if (isDistanceConstraint(activationConstraint)) {\n return;\n }\n }\n\n this.handleStart();\n }\n\n detach() {\n this.listeners.removeAll();\n this.windowListeners.removeAll(); // Wait until the next event loop before removing document listeners\n // This is necessary because we listen for `click` and `selection` events on the document\n\n setTimeout(this.documentListeners.removeAll, 50);\n\n if (this.timeoutId !== null) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n }\n\n handleStart() {\n const {\n initialCoordinates\n } = this;\n const {\n onStart\n } = this.props;\n\n if (initialCoordinates) {\n this.activated = true; // Stop propagation of click events once activation constraints are met\n\n this.documentListeners.add(EventName.Click, stopPropagation, {\n capture: true\n }); // Remove any text selection from the document\n\n this.removeTextSelection(); // Prevent further text selection while dragging\n\n this.documentListeners.add(EventName.SelectionChange, this.removeTextSelection);\n onStart(initialCoordinates);\n }\n }\n\n handleMove(event) {\n var _getEventCoordinates2;\n\n const {\n activated,\n initialCoordinates,\n props\n } = this;\n const {\n onMove,\n options: {\n activationConstraint\n }\n } = props;\n\n if (!initialCoordinates) {\n return;\n }\n\n const coordinates = (_getEventCoordinates2 = getEventCoordinates(event)) != null ? _getEventCoordinates2 : defaultCoordinates;\n const delta = subtract(initialCoordinates, coordinates); // Constraint validation\n\n if (!activated && activationConstraint) {\n if (isDistanceConstraint(activationConstraint)) {\n if (activationConstraint.tolerance != null && hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n\n if (hasExceededDistance(delta, activationConstraint.distance)) {\n return this.handleStart();\n }\n }\n\n if (isDelayConstraint(activationConstraint)) {\n if (hasExceededDistance(delta, activationConstraint.tolerance)) {\n return this.handleCancel();\n }\n }\n\n return;\n }\n\n if (event.cancelable) {\n event.preventDefault();\n }\n\n onMove(coordinates);\n }\n\n handleEnd() {\n const {\n onEnd\n } = this.props;\n this.detach();\n onEnd();\n }\n\n handleCancel() {\n const {\n onCancel\n } = this.props;\n this.detach();\n onCancel();\n }\n\n handleKeydown(event) {\n if (event.code === KeyboardCode.Esc) {\n this.handleCancel();\n }\n }\n\n removeTextSelection() {\n var _this$document$getSel;\n\n (_this$document$getSel = this.document.getSelection()) == null ? void 0 : _this$document$getSel.removeAllRanges();\n }\n\n}\n\nconst events = {\n move: {\n name: 'pointermove'\n },\n end: {\n name: 'pointerup'\n }\n};\nclass PointerSensor extends AbstractPointerSensor {\n constructor(props) {\n const {\n event\n } = props; // Pointer events stop firing if the target is unmounted while dragging\n // Therefore we attach listeners to the owner document instead\n\n const listenerTarget = getOwnerDocument(event.target);\n super(props, events, listenerTarget);\n }\n\n}\nPointerSensor.activators = [{\n eventName: 'onPointerDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (!event.isPrimary || event.button !== 0) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$1 = {\n move: {\n name: 'mousemove'\n },\n end: {\n name: 'mouseup'\n }\n};\nvar MouseButton;\n\n(function (MouseButton) {\n MouseButton[MouseButton[\"RightClick\"] = 2] = \"RightClick\";\n})(MouseButton || (MouseButton = {}));\n\nclass MouseSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$1, getOwnerDocument(props.event.target));\n }\n\n}\nMouseSensor.activators = [{\n eventName: 'onMouseDown',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n\n if (event.button === MouseButton.RightClick) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nconst events$2 = {\n move: {\n name: 'touchmove'\n },\n end: {\n name: 'touchend'\n }\n};\nclass TouchSensor extends AbstractPointerSensor {\n constructor(props) {\n super(props, events$2);\n }\n\n static setup() {\n // Adding a non-capture and non-passive `touchmove` listener in order\n // to force `event.preventDefault()` calls to work in dynamically added\n // touchmove event handlers. This is required for iOS Safari.\n window.addEventListener(events$2.move.name, noop, {\n capture: false,\n passive: false\n });\n return function teardown() {\n window.removeEventListener(events$2.move.name, noop);\n }; // We create a new handler because the teardown function of another sensor\n // could remove our event listener if we use a referentially equal listener.\n\n function noop() {}\n }\n\n}\nTouchSensor.activators = [{\n eventName: 'onTouchStart',\n handler: (_ref, _ref2) => {\n let {\n nativeEvent: event\n } = _ref;\n let {\n onActivation\n } = _ref2;\n const {\n touches\n } = event;\n\n if (touches.length > 1) {\n return false;\n }\n\n onActivation == null ? void 0 : onActivation({\n event\n });\n return true;\n }\n}];\n\nvar AutoScrollActivator;\n\n(function (AutoScrollActivator) {\n AutoScrollActivator[AutoScrollActivator[\"Pointer\"] = 0] = \"Pointer\";\n AutoScrollActivator[AutoScrollActivator[\"DraggableRect\"] = 1] = \"DraggableRect\";\n})(AutoScrollActivator || (AutoScrollActivator = {}));\n\nvar TraversalOrder;\n\n(function (TraversalOrder) {\n TraversalOrder[TraversalOrder[\"TreeOrder\"] = 0] = \"TreeOrder\";\n TraversalOrder[TraversalOrder[\"ReversedTreeOrder\"] = 1] = \"ReversedTreeOrder\";\n})(TraversalOrder || (TraversalOrder = {}));\n\nfunction useAutoScroller(_ref) {\n let {\n acceleration,\n activator = AutoScrollActivator.Pointer,\n canScroll,\n draggingRect,\n enabled,\n interval = 5,\n order = TraversalOrder.TreeOrder,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects,\n delta,\n threshold\n } = _ref;\n const scrollIntent = useScrollIntent({\n delta,\n disabled: !enabled\n });\n const [setAutoScrollInterval, clearAutoScrollInterval] = useInterval();\n const scrollSpeed = useRef({\n x: 0,\n y: 0\n });\n const scrollDirection = useRef({\n x: 0,\n y: 0\n });\n const rect = useMemo(() => {\n switch (activator) {\n case AutoScrollActivator.Pointer:\n return pointerCoordinates ? {\n top: pointerCoordinates.y,\n bottom: pointerCoordinates.y,\n left: pointerCoordinates.x,\n right: pointerCoordinates.x\n } : null;\n\n case AutoScrollActivator.DraggableRect:\n return draggingRect;\n }\n }, [activator, draggingRect, pointerCoordinates]);\n const scrollContainerRef = useRef(null);\n const autoScroll = useCallback(() => {\n const scrollContainer = scrollContainerRef.current;\n\n if (!scrollContainer) {\n return;\n }\n\n const scrollLeft = scrollSpeed.current.x * scrollDirection.current.x;\n const scrollTop = scrollSpeed.current.y * scrollDirection.current.y;\n scrollContainer.scrollBy(scrollLeft, scrollTop);\n }, []);\n const sortedScrollableAncestors = useMemo(() => order === TraversalOrder.TreeOrder ? [...scrollableAncestors].reverse() : scrollableAncestors, [order, scrollableAncestors]);\n useEffect(() => {\n if (!enabled || !scrollableAncestors.length || !rect) {\n clearAutoScrollInterval();\n return;\n }\n\n for (const scrollContainer of sortedScrollableAncestors) {\n if ((canScroll == null ? void 0 : canScroll(scrollContainer)) === false) {\n continue;\n }\n\n const index = scrollableAncestors.indexOf(scrollContainer);\n const scrollContainerRect = scrollableAncestorRects[index];\n\n if (!scrollContainerRect) {\n continue;\n }\n\n const {\n direction,\n speed\n } = getScrollDirectionAndSpeed(scrollContainer, scrollContainerRect, rect, acceleration, threshold);\n\n for (const axis of ['x', 'y']) {\n if (!scrollIntent[axis][direction[axis]]) {\n speed[axis] = 0;\n direction[axis] = 0;\n }\n }\n\n if (speed.x > 0 || speed.y > 0) {\n clearAutoScrollInterval();\n scrollContainerRef.current = scrollContainer;\n setAutoScrollInterval(autoScroll, interval);\n scrollSpeed.current = speed;\n scrollDirection.current = direction;\n return;\n }\n }\n\n scrollSpeed.current = {\n x: 0,\n y: 0\n };\n scrollDirection.current = {\n x: 0,\n y: 0\n };\n clearAutoScrollInterval();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [acceleration, autoScroll, canScroll, clearAutoScrollInterval, enabled, interval, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(rect), // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(scrollIntent), setAutoScrollInterval, scrollableAncestors, sortedScrollableAncestors, scrollableAncestorRects, // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold)]);\n}\nconst defaultScrollIntent = {\n x: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n },\n y: {\n [Direction.Backward]: false,\n [Direction.Forward]: false\n }\n};\n\nfunction useScrollIntent(_ref2) {\n let {\n delta,\n disabled\n } = _ref2;\n const previousDelta = usePrevious(delta);\n return useLazyMemo(previousIntent => {\n if (disabled || !previousDelta || !previousIntent) {\n // Reset scroll intent tracking when auto-scrolling is disabled\n return defaultScrollIntent;\n }\n\n const direction = {\n x: Math.sign(delta.x - previousDelta.x),\n y: Math.sign(delta.y - previousDelta.y)\n }; // Keep track of the user intent to scroll in each direction for both axis\n\n return {\n x: {\n [Direction.Backward]: previousIntent.x[Direction.Backward] || direction.x === -1,\n [Direction.Forward]: previousIntent.x[Direction.Forward] || direction.x === 1\n },\n y: {\n [Direction.Backward]: previousIntent.y[Direction.Backward] || direction.y === -1,\n [Direction.Forward]: previousIntent.y[Direction.Forward] || direction.y === 1\n }\n };\n }, [disabled, delta, previousDelta]);\n}\n\nfunction useCachedNode(draggableNodes, id) {\n const draggableNode = id !== null ? draggableNodes.get(id) : undefined;\n const node = draggableNode ? draggableNode.node.current : null;\n return useLazyMemo(cachedNode => {\n var _ref;\n\n if (id === null) {\n return null;\n } // In some cases, the draggable node can unmount while dragging\n // This is the case for virtualized lists. In those situations,\n // we fall back to the last known value for that node.\n\n\n return (_ref = node != null ? node : cachedNode) != null ? _ref : null;\n }, [node, id]);\n}\n\nfunction useCombineActivators(sensors, getSyntheticHandler) {\n return useMemo(() => sensors.reduce((accumulator, sensor) => {\n const {\n sensor: Sensor\n } = sensor;\n const sensorActivators = Sensor.activators.map(activator => ({\n eventName: activator.eventName,\n handler: getSyntheticHandler(activator.handler, sensor)\n }));\n return [...accumulator, ...sensorActivators];\n }, []), [sensors, getSyntheticHandler]);\n}\n\nvar MeasuringStrategy;\n\n(function (MeasuringStrategy) {\n MeasuringStrategy[MeasuringStrategy[\"Always\"] = 0] = \"Always\";\n MeasuringStrategy[MeasuringStrategy[\"BeforeDragging\"] = 1] = \"BeforeDragging\";\n MeasuringStrategy[MeasuringStrategy[\"WhileDragging\"] = 2] = \"WhileDragging\";\n})(MeasuringStrategy || (MeasuringStrategy = {}));\n\nvar MeasuringFrequency;\n\n(function (MeasuringFrequency) {\n MeasuringFrequency[\"Optimized\"] = \"optimized\";\n})(MeasuringFrequency || (MeasuringFrequency = {}));\n\nconst defaultValue = /*#__PURE__*/new Map();\nfunction useDroppableMeasuring(containers, _ref) {\n let {\n dragging,\n dependencies,\n config\n } = _ref;\n const [queue, setQueue] = useState(null);\n const {\n frequency,\n measure,\n strategy\n } = config;\n const containersRef = useRef(containers);\n const disabled = isDisabled();\n const disabledRef = useLatestValue(disabled);\n const measureDroppableContainers = useCallback(function (ids) {\n if (ids === void 0) {\n ids = [];\n }\n\n if (disabledRef.current) {\n return;\n }\n\n setQueue(value => {\n if (value === null) {\n return ids;\n }\n\n return value.concat(ids.filter(id => !value.includes(id)));\n });\n }, [disabledRef]);\n const timeoutId = useRef(null);\n const droppableRects = useLazyMemo(previousValue => {\n if (disabled && !dragging) {\n return defaultValue;\n }\n\n if (!previousValue || previousValue === defaultValue || containersRef.current !== containers || queue != null) {\n const map = new Map();\n\n for (let container of containers) {\n if (!container) {\n continue;\n }\n\n if (queue && queue.length > 0 && !queue.includes(container.id) && container.rect.current) {\n // This container does not need to be re-measured\n map.set(container.id, container.rect.current);\n continue;\n }\n\n const node = container.node.current;\n const rect = node ? new Rect(measure(node), node) : null;\n container.rect.current = rect;\n\n if (rect) {\n map.set(container.id, rect);\n }\n }\n\n return map;\n }\n\n return previousValue;\n }, [containers, queue, dragging, disabled, measure]);\n useEffect(() => {\n containersRef.current = containers;\n }, [containers]);\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n measureDroppableContainers();\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [dragging, disabled]);\n useEffect(() => {\n if (queue && queue.length > 0) {\n setQueue(null);\n }\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [JSON.stringify(queue)]);\n useEffect(() => {\n if (disabled || typeof frequency !== 'number' || timeoutId.current !== null) {\n return;\n }\n\n timeoutId.current = setTimeout(() => {\n measureDroppableContainers();\n timeoutId.current = null;\n }, frequency);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [frequency, disabled, measureDroppableContainers, ...dependencies]);\n return {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled: queue != null\n };\n\n function isDisabled() {\n switch (strategy) {\n case MeasuringStrategy.Always:\n return false;\n\n case MeasuringStrategy.BeforeDragging:\n return dragging;\n\n default:\n return !dragging;\n }\n }\n}\n\nfunction useInitialValue(value, computeFn) {\n return useLazyMemo(previousValue => {\n if (!value) {\n return null;\n }\n\n if (previousValue) {\n return previousValue;\n }\n\n return typeof computeFn === 'function' ? computeFn(value) : value;\n }, [computeFn, value]);\n}\n\nfunction useInitialRect(node, measure) {\n return useInitialValue(node, measure);\n}\n\n/**\r\n * Returns a new MutationObserver instance.\r\n * If `MutationObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useMutationObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleMutations = useEvent(callback);\n const mutationObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.MutationObserver === 'undefined') {\n return undefined;\n }\n\n const {\n MutationObserver\n } = window;\n return new MutationObserver(handleMutations);\n }, [handleMutations, disabled]);\n useEffect(() => {\n return () => mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }, [mutationObserver]);\n return mutationObserver;\n}\n\n/**\r\n * Returns a new ResizeObserver instance bound to the `onResize` callback.\r\n * If `ResizeObserver` is undefined in the execution environment, returns `undefined`.\r\n */\n\nfunction useResizeObserver(_ref) {\n let {\n callback,\n disabled\n } = _ref;\n const handleResize = useEvent(callback);\n const resizeObserver = useMemo(() => {\n if (disabled || typeof window === 'undefined' || typeof window.ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const {\n ResizeObserver\n } = window;\n return new ResizeObserver(handleResize);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [disabled]);\n useEffect(() => {\n return () => resizeObserver == null ? void 0 : resizeObserver.disconnect();\n }, [resizeObserver]);\n return resizeObserver;\n}\n\nfunction defaultMeasure(element) {\n return new Rect(getClientRect(element), element);\n}\n\nfunction useRect(element, measure, fallbackRect) {\n if (measure === void 0) {\n measure = defaultMeasure;\n }\n\n const [rect, measureRect] = useReducer(reducer, null);\n const mutationObserver = useMutationObserver({\n callback(records) {\n if (!element) {\n return;\n }\n\n for (const record of records) {\n const {\n type,\n target\n } = record;\n\n if (type === 'childList' && target instanceof HTMLElement && target.contains(element)) {\n measureRect();\n break;\n }\n }\n }\n\n });\n const resizeObserver = useResizeObserver({\n callback: measureRect\n });\n useIsomorphicLayoutEffect(() => {\n measureRect();\n\n if (element) {\n resizeObserver == null ? void 0 : resizeObserver.observe(element);\n mutationObserver == null ? void 0 : mutationObserver.observe(document.body, {\n childList: true,\n subtree: true\n });\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n mutationObserver == null ? void 0 : mutationObserver.disconnect();\n }\n }, [element]);\n return rect;\n\n function reducer(currentRect) {\n if (!element) {\n return null;\n }\n\n if (element.isConnected === false) {\n var _ref;\n\n // Fall back to last rect we measured if the element is\n // no longer connected to the DOM.\n return (_ref = currentRect != null ? currentRect : fallbackRect) != null ? _ref : null;\n }\n\n const newRect = measure(element);\n\n if (JSON.stringify(currentRect) === JSON.stringify(newRect)) {\n return currentRect;\n }\n\n return newRect;\n }\n}\n\nfunction useRectDelta(rect) {\n const initialRect = useInitialValue(rect);\n return getRectDelta(rect, initialRect);\n}\n\nconst defaultValue$1 = [];\nfunction useScrollableAncestors(node) {\n const previousNode = useRef(node);\n const ancestors = useLazyMemo(previousValue => {\n if (!node) {\n return defaultValue$1;\n }\n\n if (previousValue && previousValue !== defaultValue$1 && node && previousNode.current && node.parentNode === previousNode.current.parentNode) {\n return previousValue;\n }\n\n return getScrollableAncestors(node);\n }, [node]);\n useEffect(() => {\n previousNode.current = node;\n }, [node]);\n return ancestors;\n}\n\nfunction useScrollOffsets(elements) {\n const [scrollCoordinates, setScrollCoordinates] = useState(null);\n const prevElements = useRef(elements); // To-do: Throttle the handleScroll callback\n\n const handleScroll = useCallback(event => {\n const scrollingElement = getScrollableElement(event.target);\n\n if (!scrollingElement) {\n return;\n }\n\n setScrollCoordinates(scrollCoordinates => {\n if (!scrollCoordinates) {\n return null;\n }\n\n scrollCoordinates.set(scrollingElement, getScrollCoordinates(scrollingElement));\n return new Map(scrollCoordinates);\n });\n }, []);\n useEffect(() => {\n const previousElements = prevElements.current;\n\n if (elements !== previousElements) {\n cleanup(previousElements);\n const entries = elements.map(element => {\n const scrollableElement = getScrollableElement(element);\n\n if (scrollableElement) {\n scrollableElement.addEventListener('scroll', handleScroll, {\n passive: true\n });\n return [scrollableElement, getScrollCoordinates(scrollableElement)];\n }\n\n return null;\n }).filter(entry => entry != null);\n setScrollCoordinates(entries.length ? new Map(entries) : null);\n prevElements.current = elements;\n }\n\n return () => {\n cleanup(elements);\n cleanup(previousElements);\n };\n\n function cleanup(elements) {\n elements.forEach(element => {\n const scrollableElement = getScrollableElement(element);\n scrollableElement == null ? void 0 : scrollableElement.removeEventListener('scroll', handleScroll);\n });\n }\n }, [handleScroll, elements]);\n return useMemo(() => {\n if (elements.length) {\n return scrollCoordinates ? Array.from(scrollCoordinates.values()).reduce((acc, coordinates) => add(acc, coordinates), defaultCoordinates) : getScrollOffsets(elements);\n }\n\n return defaultCoordinates;\n }, [elements, scrollCoordinates]);\n}\n\nfunction useScrollOffsetsDelta(scrollOffsets, dependencies) {\n if (dependencies === void 0) {\n dependencies = [];\n }\n\n const initialScrollOffsets = useRef(null);\n useEffect(() => {\n initialScrollOffsets.current = null;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n dependencies);\n useEffect(() => {\n const hasScrollOffsets = scrollOffsets !== defaultCoordinates;\n\n if (hasScrollOffsets && !initialScrollOffsets.current) {\n initialScrollOffsets.current = scrollOffsets;\n }\n\n if (!hasScrollOffsets && initialScrollOffsets.current) {\n initialScrollOffsets.current = null;\n }\n }, [scrollOffsets]);\n return initialScrollOffsets.current ? subtract(scrollOffsets, initialScrollOffsets.current) : defaultCoordinates;\n}\n\nfunction useSensorSetup(sensors) {\n useEffect(() => {\n if (!canUseDOM) {\n return;\n }\n\n const teardownFns = sensors.map(_ref => {\n let {\n sensor\n } = _ref;\n return sensor.setup == null ? void 0 : sensor.setup();\n });\n return () => {\n for (const teardown of teardownFns) {\n teardown == null ? void 0 : teardown();\n }\n };\n }, // TO-DO: Sensors length could theoretically change which would not be a valid dependency\n // eslint-disable-next-line react-hooks/exhaustive-deps\n sensors.map(_ref2 => {\n let {\n sensor\n } = _ref2;\n return sensor;\n }));\n}\n\nfunction useSyntheticListeners(listeners, id) {\n return useMemo(() => {\n return listeners.reduce((acc, _ref) => {\n let {\n eventName,\n handler\n } = _ref;\n\n acc[eventName] = event => {\n handler(event, id);\n };\n\n return acc;\n }, {});\n }, [listeners, id]);\n}\n\nfunction useWindowRect(element) {\n return useMemo(() => element ? getWindowClientRect(element) : null, [element]);\n}\n\nconst defaultValue$2 = [];\nfunction useRects(elements, measure) {\n if (measure === void 0) {\n measure = getClientRect;\n }\n\n const [firstElement] = elements;\n const windowRect = useWindowRect(firstElement ? getWindow(firstElement) : null);\n const [rects, measureRects] = useReducer(reducer, defaultValue$2);\n const resizeObserver = useResizeObserver({\n callback: measureRects\n });\n\n if (elements.length > 0 && rects === defaultValue$2) {\n measureRects();\n }\n\n useIsomorphicLayoutEffect(() => {\n if (elements.length) {\n elements.forEach(element => resizeObserver == null ? void 0 : resizeObserver.observe(element));\n } else {\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n measureRects();\n }\n }, [elements]);\n return rects;\n\n function reducer() {\n if (!elements.length) {\n return defaultValue$2;\n }\n\n return elements.map(element => isDocumentScrollingElement(element) ? windowRect : new Rect(measure(element), element));\n }\n}\n\nfunction getMeasurableNode(node) {\n if (!node) {\n return null;\n }\n\n if (node.children.length > 1) {\n return node;\n }\n\n const firstChild = node.children[0];\n return isHTMLElement(firstChild) ? firstChild : node;\n}\n\nfunction useDragOverlayMeasuring(_ref) {\n let {\n measure\n } = _ref;\n const [rect, setRect] = useState(null);\n const handleResize = useCallback(entries => {\n for (const {\n target\n } of entries) {\n if (isHTMLElement(target)) {\n setRect(rect => {\n const newRect = measure(target);\n return rect ? { ...rect,\n width: newRect.width,\n height: newRect.height\n } : newRect;\n });\n break;\n }\n }\n }, [measure]);\n const resizeObserver = useResizeObserver({\n callback: handleResize\n });\n const handleNodeChange = useCallback(element => {\n const node = getMeasurableNode(element);\n resizeObserver == null ? void 0 : resizeObserver.disconnect();\n\n if (node) {\n resizeObserver == null ? void 0 : resizeObserver.observe(node);\n }\n\n setRect(node ? measure(node) : null);\n }, [measure, resizeObserver]);\n const [nodeRef, setRef] = useNodeRef(handleNodeChange);\n return useMemo(() => ({\n nodeRef,\n rect,\n setRef\n }), [rect, nodeRef, setRef]);\n}\n\nconst defaultSensors = [{\n sensor: PointerSensor,\n options: {}\n}, {\n sensor: KeyboardSensor,\n options: {}\n}];\nconst defaultData = {\n current: {}\n};\nconst defaultMeasuringConfiguration = {\n draggable: {\n measure: getTransformAgnosticClientRect\n },\n droppable: {\n measure: getTransformAgnosticClientRect,\n strategy: MeasuringStrategy.WhileDragging,\n frequency: MeasuringFrequency.Optimized\n },\n dragOverlay: {\n measure: getClientRect\n }\n};\n\nclass DroppableContainersMap extends Map {\n get(id) {\n var _super$get;\n\n return id != null ? (_super$get = super.get(id)) != null ? _super$get : undefined : undefined;\n }\n\n toArray() {\n return Array.from(this.values());\n }\n\n getEnabled() {\n return this.toArray().filter(_ref => {\n let {\n disabled\n } = _ref;\n return !disabled;\n });\n }\n\n getNodeFor(id) {\n var _this$get$node$curren, _this$get;\n\n return (_this$get$node$curren = (_this$get = this.get(id)) == null ? void 0 : _this$get.node.current) != null ? _this$get$node$curren : undefined;\n }\n\n}\n\nconst defaultPublicContext = {\n activatorEvent: null,\n active: null,\n activeNode: null,\n activeNodeRect: null,\n collisions: null,\n containerNodeRect: null,\n draggableNodes: /*#__PURE__*/new Map(),\n droppableRects: /*#__PURE__*/new Map(),\n droppableContainers: /*#__PURE__*/new DroppableContainersMap(),\n over: null,\n dragOverlay: {\n nodeRef: {\n current: null\n },\n rect: null,\n setRef: noop\n },\n scrollableAncestors: [],\n scrollableAncestorRects: [],\n measuringConfiguration: defaultMeasuringConfiguration,\n measureDroppableContainers: noop,\n windowRect: null,\n measuringScheduled: false\n};\nconst defaultInternalContext = {\n activatorEvent: null,\n activators: [],\n active: null,\n activeNodeRect: null,\n ariaDescribedById: {\n draggable: ''\n },\n dispatch: noop,\n draggableNodes: /*#__PURE__*/new Map(),\n over: null,\n measureDroppableContainers: noop\n};\nconst InternalContext = /*#__PURE__*/createContext(defaultInternalContext);\nconst PublicContext = /*#__PURE__*/createContext(defaultPublicContext);\n\nfunction getInitialState() {\n return {\n draggable: {\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n nodes: new Map(),\n translate: {\n x: 0,\n y: 0\n }\n },\n droppable: {\n containers: new DroppableContainersMap()\n }\n };\n}\nfunction reducer(state, action) {\n switch (action.type) {\n case Action.DragStart:\n return { ...state,\n draggable: { ...state.draggable,\n initialCoordinates: action.initialCoordinates,\n active: action.active\n }\n };\n\n case Action.DragMove:\n if (!state.draggable.active) {\n return state;\n }\n\n return { ...state,\n draggable: { ...state.draggable,\n translate: {\n x: action.coordinates.x - state.draggable.initialCoordinates.x,\n y: action.coordinates.y - state.draggable.initialCoordinates.y\n }\n }\n };\n\n case Action.DragEnd:\n case Action.DragCancel:\n return { ...state,\n draggable: { ...state.draggable,\n active: null,\n initialCoordinates: {\n x: 0,\n y: 0\n },\n translate: {\n x: 0,\n y: 0\n }\n }\n };\n\n case Action.RegisterDroppable:\n {\n const {\n element\n } = action;\n const {\n id\n } = element;\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, element);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.SetDroppableDisabled:\n {\n const {\n id,\n key,\n disabled\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.set(id, { ...element,\n disabled\n });\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n case Action.UnregisterDroppable:\n {\n const {\n id,\n key\n } = action;\n const element = state.droppable.containers.get(id);\n\n if (!element || key !== element.key) {\n return state;\n }\n\n const containers = new DroppableContainersMap(state.droppable.containers);\n containers.delete(id);\n return { ...state,\n droppable: { ...state.droppable,\n containers\n }\n };\n }\n\n default:\n {\n return state;\n }\n }\n}\n\nfunction RestoreFocus(_ref) {\n let {\n disabled\n } = _ref;\n const {\n active,\n activatorEvent,\n draggableNodes\n } = useContext(InternalContext);\n const previousActivatorEvent = usePrevious(activatorEvent);\n const previousActiveId = usePrevious(active == null ? void 0 : active.id); // Restore keyboard focus on the activator node\n\n useEffect(() => {\n if (disabled) {\n return;\n }\n\n if (!activatorEvent && previousActivatorEvent && previousActiveId != null) {\n if (!isKeyboardEvent(previousActivatorEvent)) {\n return;\n }\n\n if (document.activeElement === previousActivatorEvent.target) {\n // No need to restore focus\n return;\n }\n\n const draggableNode = draggableNodes.get(previousActiveId);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n activatorNode,\n node\n } = draggableNode;\n\n if (!activatorNode.current && !node.current) {\n return;\n }\n\n requestAnimationFrame(() => {\n for (const element of [activatorNode.current, node.current]) {\n if (!element) {\n continue;\n }\n\n const focusableNode = findFirstFocusableNode(element);\n\n if (focusableNode) {\n focusableNode.focus();\n break;\n }\n }\n });\n }\n }, [activatorEvent, disabled, draggableNodes, previousActiveId, previousActivatorEvent]);\n return null;\n}\n\nfunction applyModifiers(modifiers, _ref) {\n let {\n transform,\n ...args\n } = _ref;\n return modifiers != null && modifiers.length ? modifiers.reduce((accumulator, modifier) => {\n return modifier({\n transform: accumulator,\n ...args\n });\n }, transform) : transform;\n}\n\nfunction useMeasuringConfiguration(config) {\n return useMemo(() => ({\n draggable: { ...defaultMeasuringConfiguration.draggable,\n ...(config == null ? void 0 : config.draggable)\n },\n droppable: { ...defaultMeasuringConfiguration.droppable,\n ...(config == null ? void 0 : config.droppable)\n },\n dragOverlay: { ...defaultMeasuringConfiguration.dragOverlay,\n ...(config == null ? void 0 : config.dragOverlay)\n }\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [config == null ? void 0 : config.draggable, config == null ? void 0 : config.droppable, config == null ? void 0 : config.dragOverlay]);\n}\n\nfunction useLayoutShiftScrollCompensation(_ref) {\n let {\n activeNode,\n measure,\n initialRect,\n config = true\n } = _ref;\n const initialized = useRef(false);\n const {\n x,\n y\n } = typeof config === 'boolean' ? {\n x: config,\n y: config\n } : config;\n useIsomorphicLayoutEffect(() => {\n const disabled = !x && !y;\n\n if (disabled || !activeNode) {\n initialized.current = false;\n return;\n }\n\n if (initialized.current || !initialRect) {\n // Return early if layout shift scroll compensation was already attempted\n // or if there is no initialRect to compare to.\n return;\n } // Get the most up to date node ref for the active draggable\n\n\n const node = activeNode == null ? void 0 : activeNode.node.current;\n\n if (!node || node.isConnected === false) {\n // Return early if there is no attached node ref or if the node is\n // disconnected from the document.\n return;\n }\n\n const rect = measure(node);\n const rectDelta = getRectDelta(rect, initialRect);\n\n if (!x) {\n rectDelta.x = 0;\n }\n\n if (!y) {\n rectDelta.y = 0;\n } // Only perform layout shift scroll compensation once\n\n\n initialized.current = true;\n\n if (Math.abs(rectDelta.x) > 0 || Math.abs(rectDelta.y) > 0) {\n const firstScrollableAncestor = getFirstScrollableAncestor(node);\n\n if (firstScrollableAncestor) {\n firstScrollableAncestor.scrollBy({\n top: rectDelta.y,\n left: rectDelta.x\n });\n }\n }\n }, [activeNode, x, y, initialRect, measure]);\n}\n\nconst ActiveDraggableContext = /*#__PURE__*/createContext({ ...defaultCoordinates,\n scaleX: 1,\n scaleY: 1\n});\nvar Status;\n\n(function (Status) {\n Status[Status[\"Uninitialized\"] = 0] = \"Uninitialized\";\n Status[Status[\"Initializing\"] = 1] = \"Initializing\";\n Status[Status[\"Initialized\"] = 2] = \"Initialized\";\n})(Status || (Status = {}));\n\nconst DndContext = /*#__PURE__*/memo(function DndContext(_ref) {\n var _sensorContext$curren, _dragOverlay$nodeRef$, _dragOverlay$rect, _over$rect;\n\n let {\n id,\n accessibility,\n autoScroll = true,\n children,\n sensors = defaultSensors,\n collisionDetection = rectIntersection,\n measuring,\n modifiers,\n ...props\n } = _ref;\n const store = useReducer(reducer, undefined, getInitialState);\n const [state, dispatch] = store;\n const [dispatchMonitorEvent, registerMonitorListener] = useDndMonitorProvider();\n const [status, setStatus] = useState(Status.Uninitialized);\n const isInitialized = status === Status.Initialized;\n const {\n draggable: {\n active: activeId,\n nodes: draggableNodes,\n translate\n },\n droppable: {\n containers: droppableContainers\n }\n } = state;\n const node = activeId ? draggableNodes.get(activeId) : null;\n const activeRects = useRef({\n initial: null,\n translated: null\n });\n const active = useMemo(() => {\n var _node$data;\n\n return activeId != null ? {\n id: activeId,\n // It's possible for the active node to unmount while dragging\n data: (_node$data = node == null ? void 0 : node.data) != null ? _node$data : defaultData,\n rect: activeRects\n } : null;\n }, [activeId, node]);\n const activeRef = useRef(null);\n const [activeSensor, setActiveSensor] = useState(null);\n const [activatorEvent, setActivatorEvent] = useState(null);\n const latestProps = useLatestValue(props, Object.values(props));\n const draggableDescribedById = useUniqueId(\"DndDescribedBy\", id);\n const enabledDroppableContainers = useMemo(() => droppableContainers.getEnabled(), [droppableContainers]);\n const measuringConfiguration = useMeasuringConfiguration(measuring);\n const {\n droppableRects,\n measureDroppableContainers,\n measuringScheduled\n } = useDroppableMeasuring(enabledDroppableContainers, {\n dragging: isInitialized,\n dependencies: [translate.x, translate.y],\n config: measuringConfiguration.droppable\n });\n const activeNode = useCachedNode(draggableNodes, activeId);\n const activationCoordinates = useMemo(() => activatorEvent ? getEventCoordinates(activatorEvent) : null, [activatorEvent]);\n const autoScrollOptions = getAutoScrollerOptions();\n const initialActiveNodeRect = useInitialRect(activeNode, measuringConfiguration.draggable.measure);\n useLayoutShiftScrollCompensation({\n activeNode: activeId ? draggableNodes.get(activeId) : null,\n config: autoScrollOptions.layoutShiftCompensation,\n initialRect: initialActiveNodeRect,\n measure: measuringConfiguration.draggable.measure\n });\n const activeNodeRect = useRect(activeNode, measuringConfiguration.draggable.measure, initialActiveNodeRect);\n const containerNodeRect = useRect(activeNode ? activeNode.parentElement : null);\n const sensorContext = useRef({\n activatorEvent: null,\n active: null,\n activeNode,\n collisionRect: null,\n collisions: null,\n droppableRects,\n draggableNodes,\n draggingNode: null,\n draggingNodeRect: null,\n droppableContainers,\n over: null,\n scrollableAncestors: [],\n scrollAdjustedTranslate: null\n });\n const overNode = droppableContainers.getNodeFor((_sensorContext$curren = sensorContext.current.over) == null ? void 0 : _sensorContext$curren.id);\n const dragOverlay = useDragOverlayMeasuring({\n measure: measuringConfiguration.dragOverlay.measure\n }); // Use the rect of the drag overlay if it is mounted\n\n const draggingNode = (_dragOverlay$nodeRef$ = dragOverlay.nodeRef.current) != null ? _dragOverlay$nodeRef$ : activeNode;\n const draggingNodeRect = isInitialized ? (_dragOverlay$rect = dragOverlay.rect) != null ? _dragOverlay$rect : activeNodeRect : null;\n const usesDragOverlay = Boolean(dragOverlay.nodeRef.current && dragOverlay.rect); // The delta between the previous and new position of the draggable node\n // is only relevant when there is no drag overlay\n\n const nodeRectDelta = useRectDelta(usesDragOverlay ? null : activeNodeRect); // Get the window rect of the dragging node\n\n const windowRect = useWindowRect(draggingNode ? getWindow(draggingNode) : null); // Get scrollable ancestors of the dragging node\n\n const scrollableAncestors = useScrollableAncestors(isInitialized ? overNode != null ? overNode : activeNode : null);\n const scrollableAncestorRects = useRects(scrollableAncestors); // Apply modifiers\n\n const modifiedTranslate = applyModifiers(modifiers, {\n transform: {\n x: translate.x - nodeRectDelta.x,\n y: translate.y - nodeRectDelta.y,\n scaleX: 1,\n scaleY: 1\n },\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect,\n over: sensorContext.current.over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n });\n const pointerCoordinates = activationCoordinates ? add(activationCoordinates, translate) : null;\n const scrollOffsets = useScrollOffsets(scrollableAncestors); // Represents the scroll delta since dragging was initiated\n\n const scrollAdjustment = useScrollOffsetsDelta(scrollOffsets); // Represents the scroll delta since the last time the active node rect was measured\n\n const activeNodeScrollDelta = useScrollOffsetsDelta(scrollOffsets, [activeNodeRect]);\n const scrollAdjustedTranslate = add(modifiedTranslate, scrollAdjustment);\n const collisionRect = draggingNodeRect ? getAdjustedRect(draggingNodeRect, modifiedTranslate) : null;\n const collisions = active && collisionRect ? collisionDetection({\n active,\n collisionRect,\n droppableRects,\n droppableContainers: enabledDroppableContainers,\n pointerCoordinates\n }) : null;\n const overId = getFirstCollision(collisions, 'id');\n const [over, setOver] = useState(null); // When there is no drag overlay used, we need to account for the\n // window scroll delta\n\n const appliedTranslate = usesDragOverlay ? modifiedTranslate : add(modifiedTranslate, activeNodeScrollDelta);\n const transform = adjustScale(appliedTranslate, (_over$rect = over == null ? void 0 : over.rect) != null ? _over$rect : null, activeNodeRect);\n const instantiateSensor = useCallback((event, _ref2) => {\n let {\n sensor: Sensor,\n options\n } = _ref2;\n\n if (activeRef.current == null) {\n return;\n }\n\n const activeNode = draggableNodes.get(activeRef.current);\n\n if (!activeNode) {\n return;\n }\n\n const activatorEvent = event.nativeEvent;\n const sensorInstance = new Sensor({\n active: activeRef.current,\n activeNode,\n event: activatorEvent,\n options,\n // Sensors need to be instantiated with refs for arguments that change over time\n // otherwise they are frozen in time with the stale arguments\n context: sensorContext,\n\n onStart(initialCoordinates) {\n const id = activeRef.current;\n\n if (id == null) {\n return;\n }\n\n const draggableNode = draggableNodes.get(id);\n\n if (!draggableNode) {\n return;\n }\n\n const {\n onDragStart\n } = latestProps.current;\n const event = {\n active: {\n id,\n data: draggableNode.data,\n rect: activeRects\n }\n };\n unstable_batchedUpdates(() => {\n onDragStart == null ? void 0 : onDragStart(event);\n setStatus(Status.Initializing);\n dispatch({\n type: Action.DragStart,\n initialCoordinates,\n active: id\n });\n dispatchMonitorEvent({\n type: 'onDragStart',\n event\n });\n });\n },\n\n onMove(coordinates) {\n dispatch({\n type: Action.DragMove,\n coordinates\n });\n },\n\n onEnd: createHandler(Action.DragEnd),\n onCancel: createHandler(Action.DragCancel)\n });\n unstable_batchedUpdates(() => {\n setActiveSensor(sensorInstance);\n setActivatorEvent(event.nativeEvent);\n });\n\n function createHandler(type) {\n return async function handler() {\n const {\n active,\n collisions,\n over,\n scrollAdjustedTranslate\n } = sensorContext.current;\n let event = null;\n\n if (active && scrollAdjustedTranslate) {\n const {\n cancelDrop\n } = latestProps.current;\n event = {\n activatorEvent,\n active: active,\n collisions,\n delta: scrollAdjustedTranslate,\n over\n };\n\n if (type === Action.DragEnd && typeof cancelDrop === 'function') {\n const shouldCancel = await Promise.resolve(cancelDrop(event));\n\n if (shouldCancel) {\n type = Action.DragCancel;\n }\n }\n }\n\n activeRef.current = null;\n unstable_batchedUpdates(() => {\n dispatch({\n type\n });\n setStatus(Status.Uninitialized);\n setOver(null);\n setActiveSensor(null);\n setActivatorEvent(null);\n const eventName = type === Action.DragEnd ? 'onDragEnd' : 'onDragCancel';\n\n if (event) {\n const handler = latestProps.current[eventName];\n handler == null ? void 0 : handler(event);\n dispatchMonitorEvent({\n type: eventName,\n event\n });\n }\n });\n };\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes]);\n const bindActivatorToSensorInstantiator = useCallback((handler, sensor) => {\n return (event, active) => {\n const nativeEvent = event.nativeEvent;\n const activeDraggableNode = draggableNodes.get(active);\n\n if ( // Another sensor is already instantiating\n activeRef.current !== null || // No active draggable\n !activeDraggableNode || // Event has already been captured\n nativeEvent.dndKit || nativeEvent.defaultPrevented) {\n return;\n }\n\n const activationContext = {\n active: activeDraggableNode\n };\n const shouldActivate = handler(event, sensor.options, activationContext);\n\n if (shouldActivate === true) {\n nativeEvent.dndKit = {\n capturedBy: sensor.sensor\n };\n activeRef.current = active;\n instantiateSensor(event, sensor);\n }\n };\n }, [draggableNodes, instantiateSensor]);\n const activators = useCombineActivators(sensors, bindActivatorToSensorInstantiator);\n useSensorSetup(sensors);\n useIsomorphicLayoutEffect(() => {\n if (activeNodeRect && status === Status.Initializing) {\n setStatus(Status.Initialized);\n }\n }, [activeNodeRect, status]);\n useEffect(() => {\n const {\n onDragMove\n } = latestProps.current;\n const {\n active,\n activatorEvent,\n collisions,\n over\n } = sensorContext.current;\n\n if (!active || !activatorEvent) {\n return;\n }\n\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n onDragMove == null ? void 0 : onDragMove(event);\n dispatchMonitorEvent({\n type: 'onDragMove',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [scrollAdjustedTranslate.x, scrollAdjustedTranslate.y]);\n useEffect(() => {\n const {\n active,\n activatorEvent,\n collisions,\n droppableContainers,\n scrollAdjustedTranslate\n } = sensorContext.current;\n\n if (!active || activeRef.current == null || !activatorEvent || !scrollAdjustedTranslate) {\n return;\n }\n\n const {\n onDragOver\n } = latestProps.current;\n const overContainer = droppableContainers.get(overId);\n const over = overContainer && overContainer.rect.current ? {\n id: overContainer.id,\n rect: overContainer.rect.current,\n data: overContainer.data,\n disabled: overContainer.disabled\n } : null;\n const event = {\n active,\n activatorEvent,\n collisions,\n delta: {\n x: scrollAdjustedTranslate.x,\n y: scrollAdjustedTranslate.y\n },\n over\n };\n unstable_batchedUpdates(() => {\n setOver(over);\n onDragOver == null ? void 0 : onDragOver(event);\n dispatchMonitorEvent({\n type: 'onDragOver',\n event\n });\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [overId]);\n useIsomorphicLayoutEffect(() => {\n sensorContext.current = {\n activatorEvent,\n active,\n activeNode,\n collisionRect,\n collisions,\n droppableRects,\n draggableNodes,\n draggingNode,\n draggingNodeRect,\n droppableContainers,\n over,\n scrollableAncestors,\n scrollAdjustedTranslate\n };\n activeRects.current = {\n initial: draggingNodeRect,\n translated: collisionRect\n };\n }, [active, activeNode, collisions, collisionRect, draggableNodes, draggingNode, draggingNodeRect, droppableRects, droppableContainers, over, scrollableAncestors, scrollAdjustedTranslate]);\n useAutoScroller({ ...autoScrollOptions,\n delta: translate,\n draggingRect: collisionRect,\n pointerCoordinates,\n scrollableAncestors,\n scrollableAncestorRects\n });\n const publicContext = useMemo(() => {\n const context = {\n active,\n activeNode,\n activeNodeRect,\n activatorEvent,\n collisions,\n containerNodeRect,\n dragOverlay,\n draggableNodes,\n droppableContainers,\n droppableRects,\n over,\n measureDroppableContainers,\n scrollableAncestors,\n scrollableAncestorRects,\n measuringConfiguration,\n measuringScheduled,\n windowRect\n };\n return context;\n }, [active, activeNode, activeNodeRect, activatorEvent, collisions, containerNodeRect, dragOverlay, draggableNodes, droppableContainers, droppableRects, over, measureDroppableContainers, scrollableAncestors, scrollableAncestorRects, measuringConfiguration, measuringScheduled, windowRect]);\n const internalContext = useMemo(() => {\n const context = {\n activatorEvent,\n activators,\n active,\n activeNodeRect,\n ariaDescribedById: {\n draggable: draggableDescribedById\n },\n dispatch,\n draggableNodes,\n over,\n measureDroppableContainers\n };\n return context;\n }, [activatorEvent, activators, active, activeNodeRect, dispatch, draggableDescribedById, draggableNodes, over, measureDroppableContainers]);\n return React.createElement(DndMonitorContext.Provider, {\n value: registerMonitorListener\n }, React.createElement(InternalContext.Provider, {\n value: internalContext\n }, React.createElement(PublicContext.Provider, {\n value: publicContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: transform\n }, children)), React.createElement(RestoreFocus, {\n disabled: (accessibility == null ? void 0 : accessibility.restoreFocus) === false\n })), React.createElement(Accessibility, { ...accessibility,\n hiddenTextDescribedById: draggableDescribedById\n }));\n\n function getAutoScrollerOptions() {\n const activeSensorDisablesAutoscroll = (activeSensor == null ? void 0 : activeSensor.autoScrollEnabled) === false;\n const autoScrollGloballyDisabled = typeof autoScroll === 'object' ? autoScroll.enabled === false : autoScroll === false;\n const enabled = isInitialized && !activeSensorDisablesAutoscroll && !autoScrollGloballyDisabled;\n\n if (typeof autoScroll === 'object') {\n return { ...autoScroll,\n enabled\n };\n }\n\n return {\n enabled\n };\n }\n});\n\nconst NullContext = /*#__PURE__*/createContext(null);\nconst defaultRole = 'button';\nconst ID_PREFIX = 'Droppable';\nfunction useDraggable(_ref) {\n let {\n id,\n data,\n disabled = false,\n attributes\n } = _ref;\n const key = useUniqueId(ID_PREFIX);\n const {\n activators,\n activatorEvent,\n active,\n activeNodeRect,\n ariaDescribedById,\n draggableNodes,\n over\n } = useContext(InternalContext);\n const {\n role = defaultRole,\n roleDescription = 'draggable',\n tabIndex = 0\n } = attributes != null ? attributes : {};\n const isDragging = (active == null ? void 0 : active.id) === id;\n const transform = useContext(isDragging ? ActiveDraggableContext : NullContext);\n const [node, setNodeRef] = useNodeRef();\n const [activatorNode, setActivatorNodeRef] = useNodeRef();\n const listeners = useSyntheticListeners(activators, id);\n const dataRef = useLatestValue(data);\n useIsomorphicLayoutEffect(() => {\n draggableNodes.set(id, {\n id,\n key,\n node,\n activatorNode,\n data: dataRef\n });\n return () => {\n const node = draggableNodes.get(id);\n\n if (node && node.key === key) {\n draggableNodes.delete(id);\n }\n };\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [draggableNodes, id]);\n const memoizedAttributes = useMemo(() => ({\n role,\n tabIndex,\n 'aria-disabled': disabled,\n 'aria-pressed': isDragging && role === defaultRole ? true : undefined,\n 'aria-roledescription': roleDescription,\n 'aria-describedby': ariaDescribedById.draggable\n }), [disabled, role, tabIndex, isDragging, roleDescription, ariaDescribedById.draggable]);\n return {\n active,\n activatorEvent,\n activeNodeRect,\n attributes: memoizedAttributes,\n isDragging,\n listeners: disabled ? undefined : listeners,\n node,\n over,\n setNodeRef,\n setActivatorNodeRef,\n transform\n };\n}\n\nfunction useDndContext() {\n return useContext(PublicContext);\n}\n\nconst ID_PREFIX$1 = 'Droppable';\nconst defaultResizeObserverConfig = {\n timeout: 25\n};\nfunction useDroppable(_ref) {\n let {\n data,\n disabled = false,\n id,\n resizeObserverConfig\n } = _ref;\n const key = useUniqueId(ID_PREFIX$1);\n const {\n active,\n dispatch,\n over,\n measureDroppableContainers\n } = useContext(InternalContext);\n const previous = useRef({\n disabled\n });\n const resizeObserverConnected = useRef(false);\n const rect = useRef(null);\n const callbackId = useRef(null);\n const {\n disabled: resizeObserverDisabled,\n updateMeasurementsFor,\n timeout: resizeObserverTimeout\n } = { ...defaultResizeObserverConfig,\n ...resizeObserverConfig\n };\n const ids = useLatestValue(updateMeasurementsFor != null ? updateMeasurementsFor : id);\n const handleResize = useCallback(() => {\n if (!resizeObserverConnected.current) {\n // ResizeObserver invokes the `handleResize` callback as soon as `observe` is called,\n // assuming the element is rendered and displayed.\n resizeObserverConnected.current = true;\n return;\n }\n\n if (callbackId.current != null) {\n clearTimeout(callbackId.current);\n }\n\n callbackId.current = setTimeout(() => {\n measureDroppableContainers(Array.isArray(ids.current) ? ids.current : [ids.current]);\n callbackId.current = null;\n }, resizeObserverTimeout);\n }, //eslint-disable-next-line react-hooks/exhaustive-deps\n [resizeObserverTimeout]);\n const resizeObserver = useResizeObserver({\n callback: handleResize,\n disabled: resizeObserverDisabled || !active\n });\n const handleNodeChange = useCallback((newElement, previousElement) => {\n if (!resizeObserver) {\n return;\n }\n\n if (previousElement) {\n resizeObserver.unobserve(previousElement);\n resizeObserverConnected.current = false;\n }\n\n if (newElement) {\n resizeObserver.observe(newElement);\n }\n }, [resizeObserver]);\n const [nodeRef, setNodeRef] = useNodeRef(handleNodeChange);\n const dataRef = useLatestValue(data);\n useEffect(() => {\n if (!resizeObserver || !nodeRef.current) {\n return;\n }\n\n resizeObserver.disconnect();\n resizeObserverConnected.current = false;\n resizeObserver.observe(nodeRef.current);\n }, [nodeRef, resizeObserver]);\n useIsomorphicLayoutEffect(() => {\n dispatch({\n type: Action.RegisterDroppable,\n element: {\n id,\n key,\n disabled,\n node: nodeRef,\n rect,\n data: dataRef\n }\n });\n return () => dispatch({\n type: Action.UnregisterDroppable,\n key,\n id\n });\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [id]);\n useEffect(() => {\n if (disabled !== previous.current.disabled) {\n dispatch({\n type: Action.SetDroppableDisabled,\n id,\n key,\n disabled\n });\n previous.current.disabled = disabled;\n }\n }, [id, key, disabled, dispatch]);\n return {\n active,\n rect,\n isOver: (over == null ? void 0 : over.id) === id,\n node: nodeRef,\n over,\n setNodeRef\n };\n}\n\nfunction AnimationManager(_ref) {\n let {\n animation,\n children\n } = _ref;\n const [clonedChildren, setClonedChildren] = useState(null);\n const [element, setElement] = useState(null);\n const previousChildren = usePrevious(children);\n\n if (!children && !clonedChildren && previousChildren) {\n setClonedChildren(previousChildren);\n }\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n return;\n }\n\n const key = clonedChildren == null ? void 0 : clonedChildren.key;\n const id = clonedChildren == null ? void 0 : clonedChildren.props.id;\n\n if (key == null || id == null) {\n setClonedChildren(null);\n return;\n }\n\n Promise.resolve(animation(id, element)).then(() => {\n setClonedChildren(null);\n });\n }, [animation, clonedChildren, element]);\n return React.createElement(React.Fragment, null, children, clonedChildren ? cloneElement(clonedChildren, {\n ref: setElement\n }) : null);\n}\n\nconst defaultTransform = {\n x: 0,\n y: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction NullifiedContextProvider(_ref) {\n let {\n children\n } = _ref;\n return React.createElement(InternalContext.Provider, {\n value: defaultInternalContext\n }, React.createElement(ActiveDraggableContext.Provider, {\n value: defaultTransform\n }, children));\n}\n\nconst baseStyles = {\n position: 'fixed',\n touchAction: 'none'\n};\n\nconst defaultTransition = activatorEvent => {\n const isKeyboardActivator = isKeyboardEvent(activatorEvent);\n return isKeyboardActivator ? 'transform 250ms ease' : undefined;\n};\n\nconst PositionedOverlay = /*#__PURE__*/forwardRef((_ref, ref) => {\n let {\n as,\n activatorEvent,\n adjustScale,\n children,\n className,\n rect,\n style,\n transform,\n transition = defaultTransition\n } = _ref;\n\n if (!rect) {\n return null;\n }\n\n const scaleAdjustedTransform = adjustScale ? transform : { ...transform,\n scaleX: 1,\n scaleY: 1\n };\n const styles = { ...baseStyles,\n width: rect.width,\n height: rect.height,\n top: rect.top,\n left: rect.left,\n transform: CSS.Transform.toString(scaleAdjustedTransform),\n transformOrigin: adjustScale && activatorEvent ? getRelativeTransformOrigin(activatorEvent, rect) : undefined,\n transition: typeof transition === 'function' ? transition(activatorEvent) : transition,\n ...style\n };\n return React.createElement(as, {\n className,\n style: styles,\n ref\n }, children);\n});\n\nconst defaultDropAnimationSideEffects = options => _ref => {\n let {\n active,\n dragOverlay\n } = _ref;\n const originalStyles = {};\n const {\n styles,\n className\n } = options;\n\n if (styles != null && styles.active) {\n for (const [key, value] of Object.entries(styles.active)) {\n if (value === undefined) {\n continue;\n }\n\n originalStyles[key] = active.node.style.getPropertyValue(key);\n active.node.style.setProperty(key, value);\n }\n }\n\n if (styles != null && styles.dragOverlay) {\n for (const [key, value] of Object.entries(styles.dragOverlay)) {\n if (value === undefined) {\n continue;\n }\n\n dragOverlay.node.style.setProperty(key, value);\n }\n }\n\n if (className != null && className.active) {\n active.node.classList.add(className.active);\n }\n\n if (className != null && className.dragOverlay) {\n dragOverlay.node.classList.add(className.dragOverlay);\n }\n\n return function cleanup() {\n for (const [key, value] of Object.entries(originalStyles)) {\n active.node.style.setProperty(key, value);\n }\n\n if (className != null && className.active) {\n active.node.classList.remove(className.active);\n }\n };\n};\n\nconst defaultKeyframeResolver = _ref2 => {\n let {\n transform: {\n initial,\n final\n }\n } = _ref2;\n return [{\n transform: CSS.Transform.toString(initial)\n }, {\n transform: CSS.Transform.toString(final)\n }];\n};\n\nconst defaultDropAnimationConfiguration = {\n duration: 250,\n easing: 'ease',\n keyframes: defaultKeyframeResolver,\n sideEffects: /*#__PURE__*/defaultDropAnimationSideEffects({\n styles: {\n active: {\n opacity: '0'\n }\n }\n })\n};\nfunction useDropAnimation(_ref3) {\n let {\n config,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n } = _ref3;\n return useEvent((id, node) => {\n if (config === null) {\n return;\n }\n\n const activeDraggable = draggableNodes.get(id);\n\n if (!activeDraggable) {\n return;\n }\n\n const activeNode = activeDraggable.node.current;\n\n if (!activeNode) {\n return;\n }\n\n const measurableNode = getMeasurableNode(node);\n\n if (!measurableNode) {\n return;\n }\n\n const {\n transform\n } = getWindow(node).getComputedStyle(node);\n const parsedTransform = parseTransform(transform);\n\n if (!parsedTransform) {\n return;\n }\n\n const animation = typeof config === 'function' ? config : createDefaultDropAnimation(config);\n scrollIntoViewIfNeeded(activeNode, measuringConfiguration.draggable.measure);\n return animation({\n active: {\n id,\n data: activeDraggable.data,\n node: activeNode,\n rect: measuringConfiguration.draggable.measure(activeNode)\n },\n draggableNodes,\n dragOverlay: {\n node,\n rect: measuringConfiguration.dragOverlay.measure(measurableNode)\n },\n droppableContainers,\n measuringConfiguration,\n transform: parsedTransform\n });\n });\n}\n\nfunction createDefaultDropAnimation(options) {\n const {\n duration,\n easing,\n sideEffects,\n keyframes\n } = { ...defaultDropAnimationConfiguration,\n ...options\n };\n return _ref4 => {\n let {\n active,\n dragOverlay,\n transform,\n ...rest\n } = _ref4;\n\n if (!duration) {\n // Do not animate if animation duration is zero.\n return;\n }\n\n const delta = {\n x: dragOverlay.rect.left - active.rect.left,\n y: dragOverlay.rect.top - active.rect.top\n };\n const scale = {\n scaleX: transform.scaleX !== 1 ? active.rect.width * transform.scaleX / dragOverlay.rect.width : 1,\n scaleY: transform.scaleY !== 1 ? active.rect.height * transform.scaleY / dragOverlay.rect.height : 1\n };\n const finalTransform = {\n x: transform.x - delta.x,\n y: transform.y - delta.y,\n ...scale\n };\n const animationKeyframes = keyframes({ ...rest,\n active,\n dragOverlay,\n transform: {\n initial: transform,\n final: finalTransform\n }\n });\n const [firstKeyframe] = animationKeyframes;\n const lastKeyframe = animationKeyframes[animationKeyframes.length - 1];\n\n if (JSON.stringify(firstKeyframe) === JSON.stringify(lastKeyframe)) {\n // The start and end keyframes are the same, infer that there is no animation needed.\n return;\n }\n\n const cleanup = sideEffects == null ? void 0 : sideEffects({\n active,\n dragOverlay,\n ...rest\n });\n const animation = dragOverlay.node.animate(animationKeyframes, {\n duration,\n easing,\n fill: 'forwards'\n });\n return new Promise(resolve => {\n animation.onfinish = () => {\n cleanup == null ? void 0 : cleanup();\n resolve();\n };\n });\n };\n}\n\nlet key = 0;\nfunction useKey(id) {\n return useMemo(() => {\n if (id == null) {\n return;\n }\n\n key++;\n return key;\n }, [id]);\n}\n\nconst DragOverlay = /*#__PURE__*/React.memo(_ref => {\n let {\n adjustScale = false,\n children,\n dropAnimation: dropAnimationConfig,\n style,\n transition,\n modifiers,\n wrapperElement = 'div',\n className,\n zIndex = 999\n } = _ref;\n const {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggableNodes,\n droppableContainers,\n dragOverlay,\n over,\n measuringConfiguration,\n scrollableAncestors,\n scrollableAncestorRects,\n windowRect\n } = useDndContext();\n const transform = useContext(ActiveDraggableContext);\n const key = useKey(active == null ? void 0 : active.id);\n const modifiedTransform = applyModifiers(modifiers, {\n activatorEvent,\n active,\n activeNodeRect,\n containerNodeRect,\n draggingNodeRect: dragOverlay.rect,\n over,\n overlayNodeRect: dragOverlay.rect,\n scrollableAncestors,\n scrollableAncestorRects,\n transform,\n windowRect\n });\n const initialRect = useInitialValue(activeNodeRect);\n const dropAnimation = useDropAnimation({\n config: dropAnimationConfig,\n draggableNodes,\n droppableContainers,\n measuringConfiguration\n }); // We need to wait for the active node to be measured before connecting the drag overlay ref\n // otherwise collisions can be computed against a mispositioned drag overlay\n\n const ref = initialRect ? dragOverlay.setRef : undefined;\n return React.createElement(NullifiedContextProvider, null, React.createElement(AnimationManager, {\n animation: dropAnimation\n }, active && key ? React.createElement(PositionedOverlay, {\n key: key,\n id: active.id,\n ref: ref,\n as: wrapperElement,\n activatorEvent: activatorEvent,\n adjustScale: adjustScale,\n className: className,\n transition: transition,\n rect: initialRect,\n style: {\n zIndex,\n ...style\n },\n transform: modifiedTransform\n }, children) : null));\n});\n\nexport { AutoScrollActivator, DndContext, DragOverlay, KeyboardCode, KeyboardSensor, MeasuringFrequency, MeasuringStrategy, MouseSensor, PointerSensor, TouchSensor, TraversalOrder, applyModifiers, closestCenter, closestCorners, defaultAnnouncements, defaultCoordinates, defaultDropAnimationConfiguration as defaultDropAnimation, defaultDropAnimationSideEffects, defaultScreenReaderInstructions, getClientRect, getFirstCollision, getScrollableAncestors, pointerWithin, rectIntersection, useDndContext, useDndMonitor, useDraggable, useDroppable, useSensor, useSensors };\n//# sourceMappingURL=core.esm.js.map\n","import { getEventCoordinates } from '@dnd-kit/utilities';\n\nfunction createSnapModifier(gridSize) {\n return _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: Math.ceil(transform.x / gridSize) * gridSize,\n y: Math.ceil(transform.y / gridSize) * gridSize\n };\n };\n}\n\nconst restrictToHorizontalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n y: 0\n };\n};\n\nfunction restrictToBoundingRect(transform, rect, boundingRect) {\n const value = { ...transform\n };\n\n if (rect.top + transform.y <= boundingRect.top) {\n value.y = boundingRect.top - rect.top;\n } else if (rect.bottom + transform.y >= boundingRect.top + boundingRect.height) {\n value.y = boundingRect.top + boundingRect.height - rect.bottom;\n }\n\n if (rect.left + transform.x <= boundingRect.left) {\n value.x = boundingRect.left - rect.left;\n } else if (rect.right + transform.x >= boundingRect.left + boundingRect.width) {\n value.x = boundingRect.left + boundingRect.width - rect.right;\n }\n\n return value;\n}\n\nconst restrictToParentElement = _ref => {\n let {\n containerNodeRect,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (!draggingNodeRect || !containerNodeRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, containerNodeRect);\n};\n\nconst restrictToFirstScrollableAncestor = _ref => {\n let {\n draggingNodeRect,\n transform,\n scrollableAncestorRects\n } = _ref;\n const firstScrollableAncestorRect = scrollableAncestorRects[0];\n\n if (!draggingNodeRect || !firstScrollableAncestorRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, firstScrollableAncestorRect);\n};\n\nconst restrictToVerticalAxis = _ref => {\n let {\n transform\n } = _ref;\n return { ...transform,\n x: 0\n };\n};\n\nconst restrictToWindowEdges = _ref => {\n let {\n transform,\n draggingNodeRect,\n windowRect\n } = _ref;\n\n if (!draggingNodeRect || !windowRect) {\n return transform;\n }\n\n return restrictToBoundingRect(transform, draggingNodeRect, windowRect);\n};\n\nconst snapCenterToCursor = _ref => {\n let {\n activatorEvent,\n draggingNodeRect,\n transform\n } = _ref;\n\n if (draggingNodeRect && activatorEvent) {\n const activatorCoordinates = getEventCoordinates(activatorEvent);\n\n if (!activatorCoordinates) {\n return transform;\n }\n\n const offsetX = activatorCoordinates.x - draggingNodeRect.left;\n const offsetY = activatorCoordinates.y - draggingNodeRect.top;\n return { ...transform,\n x: transform.x + offsetX - draggingNodeRect.width / 2,\n y: transform.y + offsetY - draggingNodeRect.height / 2\n };\n }\n\n return transform;\n};\n\nexport { createSnapModifier, restrictToFirstScrollableAncestor, restrictToHorizontalAxis, restrictToParentElement, restrictToVerticalAxis, restrictToWindowEdges, snapCenterToCursor };\n//# sourceMappingURL=modifiers.esm.js.map\n","import React, { useMemo, useRef, useEffect, useState, useContext } from 'react';\nimport { useDndContext, getClientRect, useDroppable, useDraggable, closestCorners, getFirstCollision, getScrollableAncestors, KeyboardCode } from '@dnd-kit/core';\nimport { useUniqueId, useIsomorphicLayoutEffect, CSS, useCombinedRefs, isKeyboardEvent, subtract } from '@dnd-kit/utilities';\n\n/**\r\n * Move an array item to a different position. Returns a new array with the item moved to the new position.\r\n */\nfunction arrayMove(array, from, to) {\n const newArray = array.slice();\n newArray.splice(to < 0 ? newArray.length + to : to, 0, newArray.splice(from, 1)[0]);\n return newArray;\n}\n\n/**\r\n * Swap an array item to a different position. Returns a new array with the item swapped to the new position.\r\n */\nfunction arraySwap(array, from, to) {\n const newArray = array.slice();\n newArray[from] = array[to];\n newArray[to] = array[from];\n return newArray;\n}\n\nfunction getSortedRects(items, rects) {\n return items.reduce((accumulator, id, index) => {\n const rect = rects.get(id);\n\n if (rect) {\n accumulator[index] = rect;\n }\n\n return accumulator;\n }, Array(items.length));\n}\n\nfunction isValidIndex(index) {\n return index !== null && index >= 0;\n}\n\nfunction itemsEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction normalizeDisabled(disabled) {\n if (typeof disabled === 'boolean') {\n return {\n draggable: disabled,\n droppable: disabled\n };\n }\n\n return disabled;\n}\n\n// To-do: We should be calculating scale transformation\nconst defaultScale = {\n scaleX: 1,\n scaleY: 1\n};\nconst horizontalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n rects,\n activeNodeRect: fallbackActiveRect,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n const itemGap = getItemGap(rects, index, activeIndex);\n\n if (index === activeIndex) {\n const newIndexRect = rects[overIndex];\n\n if (!newIndexRect) {\n return null;\n }\n\n return {\n x: activeIndex < overIndex ? newIndexRect.left + newIndexRect.width - (activeNodeRect.left + activeNodeRect.width) : newIndexRect.left - activeNodeRect.left,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: -activeNodeRect.width - itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: activeNodeRect.width + itemGap,\n y: 0,\n ...defaultScale\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale\n };\n};\n\nfunction getItemGap(rects, index, activeIndex) {\n const currentRect = rects[index];\n const previousRect = rects[index - 1];\n const nextRect = rects[index + 1];\n\n if (!currentRect || !previousRect && !nextRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.left - (previousRect.left + previousRect.width) : nextRect.left - (currentRect.left + currentRect.width);\n }\n\n return nextRect ? nextRect.left - (currentRect.left + currentRect.width) : currentRect.left - (previousRect.left + previousRect.width);\n}\n\nconst rectSortingStrategy = _ref => {\n let {\n rects,\n activeIndex,\n overIndex,\n index\n } = _ref;\n const newRects = arrayMove(rects, overIndex, activeIndex);\n const oldRect = rects[index];\n const newRect = newRects[index];\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\nconst rectSwappingStrategy = _ref => {\n let {\n activeIndex,\n index,\n rects,\n overIndex\n } = _ref;\n let oldRect;\n let newRect;\n\n if (index === activeIndex) {\n oldRect = rects[index];\n newRect = rects[overIndex];\n }\n\n if (index === overIndex) {\n oldRect = rects[index];\n newRect = rects[activeIndex];\n }\n\n if (!newRect || !oldRect) {\n return null;\n }\n\n return {\n x: newRect.left - oldRect.left,\n y: newRect.top - oldRect.top,\n scaleX: newRect.width / oldRect.width,\n scaleY: newRect.height / oldRect.height\n };\n};\n\n// To-do: We should be calculating scale transformation\nconst defaultScale$1 = {\n scaleX: 1,\n scaleY: 1\n};\nconst verticalListSortingStrategy = _ref => {\n var _rects$activeIndex;\n\n let {\n activeIndex,\n activeNodeRect: fallbackActiveRect,\n index,\n rects,\n overIndex\n } = _ref;\n const activeNodeRect = (_rects$activeIndex = rects[activeIndex]) != null ? _rects$activeIndex : fallbackActiveRect;\n\n if (!activeNodeRect) {\n return null;\n }\n\n if (index === activeIndex) {\n const overIndexRect = rects[overIndex];\n\n if (!overIndexRect) {\n return null;\n }\n\n return {\n x: 0,\n y: activeIndex < overIndex ? overIndexRect.top + overIndexRect.height - (activeNodeRect.top + activeNodeRect.height) : overIndexRect.top - activeNodeRect.top,\n ...defaultScale$1\n };\n }\n\n const itemGap = getItemGap$1(rects, index, activeIndex);\n\n if (index > activeIndex && index <= overIndex) {\n return {\n x: 0,\n y: -activeNodeRect.height - itemGap,\n ...defaultScale$1\n };\n }\n\n if (index < activeIndex && index >= overIndex) {\n return {\n x: 0,\n y: activeNodeRect.height + itemGap,\n ...defaultScale$1\n };\n }\n\n return {\n x: 0,\n y: 0,\n ...defaultScale$1\n };\n};\n\nfunction getItemGap$1(clientRects, index, activeIndex) {\n const currentRect = clientRects[index];\n const previousRect = clientRects[index - 1];\n const nextRect = clientRects[index + 1];\n\n if (!currentRect) {\n return 0;\n }\n\n if (activeIndex < index) {\n return previousRect ? currentRect.top - (previousRect.top + previousRect.height) : nextRect ? nextRect.top - (currentRect.top + currentRect.height) : 0;\n }\n\n return nextRect ? nextRect.top - (currentRect.top + currentRect.height) : previousRect ? currentRect.top - (previousRect.top + previousRect.height) : 0;\n}\n\nconst ID_PREFIX = 'Sortable';\nconst Context = /*#__PURE__*/React.createContext({\n activeIndex: -1,\n containerId: ID_PREFIX,\n disableTransforms: false,\n items: [],\n overIndex: -1,\n useDragOverlay: false,\n sortedRects: [],\n strategy: rectSortingStrategy,\n disabled: {\n draggable: false,\n droppable: false\n }\n});\nfunction SortableContext(_ref) {\n let {\n children,\n id,\n items: userDefinedItems,\n strategy = rectSortingStrategy,\n disabled: disabledProp = false\n } = _ref;\n const {\n active,\n dragOverlay,\n droppableRects,\n over,\n measureDroppableContainers\n } = useDndContext();\n const containerId = useUniqueId(ID_PREFIX, id);\n const useDragOverlay = Boolean(dragOverlay.rect !== null);\n const items = useMemo(() => userDefinedItems.map(item => typeof item === 'object' && 'id' in item ? item.id : item), [userDefinedItems]);\n const isDragging = active != null;\n const activeIndex = active ? items.indexOf(active.id) : -1;\n const overIndex = over ? items.indexOf(over.id) : -1;\n const previousItemsRef = useRef(items);\n const itemsHaveChanged = !itemsEqual(items, previousItemsRef.current);\n const disableTransforms = overIndex !== -1 && activeIndex === -1 || itemsHaveChanged;\n const disabled = normalizeDisabled(disabledProp);\n useIsomorphicLayoutEffect(() => {\n if (itemsHaveChanged && isDragging) {\n measureDroppableContainers(items);\n }\n }, [itemsHaveChanged, items, isDragging, measureDroppableContainers]);\n useEffect(() => {\n previousItemsRef.current = items;\n }, [items]);\n const contextValue = useMemo(() => ({\n activeIndex,\n containerId,\n disabled,\n disableTransforms,\n items,\n overIndex,\n useDragOverlay,\n sortedRects: getSortedRects(items, droppableRects),\n strategy\n }), // eslint-disable-next-line react-hooks/exhaustive-deps\n [activeIndex, containerId, disabled.draggable, disabled.droppable, disableTransforms, items, overIndex, droppableRects, useDragOverlay, strategy]);\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nconst defaultNewIndexGetter = _ref => {\n let {\n id,\n items,\n activeIndex,\n overIndex\n } = _ref;\n return arrayMove(items, activeIndex, overIndex).indexOf(id);\n};\nconst defaultAnimateLayoutChanges = _ref2 => {\n let {\n containerId,\n isSorting,\n wasDragging,\n index,\n items,\n newIndex,\n previousItems,\n previousContainerId,\n transition\n } = _ref2;\n\n if (!transition || !wasDragging) {\n return false;\n }\n\n if (previousItems !== items && index === newIndex) {\n return false;\n }\n\n if (isSorting) {\n return true;\n }\n\n return newIndex !== index && containerId === previousContainerId;\n};\nconst defaultTransition = {\n duration: 200,\n easing: 'ease'\n};\nconst transitionProperty = 'transform';\nconst disabledTransition = /*#__PURE__*/CSS.Transition.toString({\n property: transitionProperty,\n duration: 0,\n easing: 'linear'\n});\nconst defaultAttributes = {\n roleDescription: 'sortable'\n};\n\n/*\r\n * When the index of an item changes while sorting,\r\n * we need to temporarily disable the transforms\r\n */\n\nfunction useDerivedTransform(_ref) {\n let {\n disabled,\n index,\n node,\n rect\n } = _ref;\n const [derivedTransform, setDerivedtransform] = useState(null);\n const previousIndex = useRef(index);\n useIsomorphicLayoutEffect(() => {\n if (!disabled && index !== previousIndex.current && node.current) {\n const initial = rect.current;\n\n if (initial) {\n const current = getClientRect(node.current, {\n ignoreTransform: true\n });\n const delta = {\n x: initial.left - current.left,\n y: initial.top - current.top,\n scaleX: initial.width / current.width,\n scaleY: initial.height / current.height\n };\n\n if (delta.x || delta.y) {\n setDerivedtransform(delta);\n }\n }\n }\n\n if (index !== previousIndex.current) {\n previousIndex.current = index;\n }\n }, [disabled, index, node, rect]);\n useEffect(() => {\n if (derivedTransform) {\n setDerivedtransform(null);\n }\n }, [derivedTransform]);\n return derivedTransform;\n}\n\nfunction useSortable(_ref) {\n let {\n animateLayoutChanges = defaultAnimateLayoutChanges,\n attributes: userDefinedAttributes,\n disabled: localDisabled,\n data: customData,\n getNewIndex = defaultNewIndexGetter,\n id,\n strategy: localStrategy,\n resizeObserverConfig,\n transition = defaultTransition\n } = _ref;\n const {\n items,\n containerId,\n activeIndex,\n disabled: globalDisabled,\n disableTransforms,\n sortedRects,\n overIndex,\n useDragOverlay,\n strategy: globalStrategy\n } = useContext(Context);\n const disabled = normalizeLocalDisabled(localDisabled, globalDisabled);\n const index = items.indexOf(id);\n const data = useMemo(() => ({\n sortable: {\n containerId,\n index,\n items\n },\n ...customData\n }), [containerId, customData, index, items]);\n const itemsAfterCurrentSortable = useMemo(() => items.slice(items.indexOf(id)), [items, id]);\n const {\n rect,\n node,\n isOver,\n setNodeRef: setDroppableNodeRef\n } = useDroppable({\n id,\n data,\n disabled: disabled.droppable,\n resizeObserverConfig: {\n updateMeasurementsFor: itemsAfterCurrentSortable,\n ...resizeObserverConfig\n }\n });\n const {\n active,\n activatorEvent,\n activeNodeRect,\n attributes,\n setNodeRef: setDraggableNodeRef,\n listeners,\n isDragging,\n over,\n setActivatorNodeRef,\n transform\n } = useDraggable({\n id,\n data,\n attributes: { ...defaultAttributes,\n ...userDefinedAttributes\n },\n disabled: disabled.draggable\n });\n const setNodeRef = useCombinedRefs(setDroppableNodeRef, setDraggableNodeRef);\n const isSorting = Boolean(active);\n const displaceItem = isSorting && !disableTransforms && isValidIndex(activeIndex) && isValidIndex(overIndex);\n const shouldDisplaceDragSource = !useDragOverlay && isDragging;\n const dragSourceDisplacement = shouldDisplaceDragSource && displaceItem ? transform : null;\n const strategy = localStrategy != null ? localStrategy : globalStrategy;\n const finalTransform = displaceItem ? dragSourceDisplacement != null ? dragSourceDisplacement : strategy({\n rects: sortedRects,\n activeNodeRect,\n activeIndex,\n overIndex,\n index\n }) : null;\n const newIndex = isValidIndex(activeIndex) && isValidIndex(overIndex) ? getNewIndex({\n id,\n items,\n activeIndex,\n overIndex\n }) : index;\n const activeId = active == null ? void 0 : active.id;\n const previous = useRef({\n activeId,\n items,\n newIndex,\n containerId\n });\n const itemsHaveChanged = items !== previous.current.items;\n const shouldAnimateLayoutChanges = animateLayoutChanges({\n active,\n containerId,\n isDragging,\n isSorting,\n id,\n index,\n items,\n newIndex: previous.current.newIndex,\n previousItems: previous.current.items,\n previousContainerId: previous.current.containerId,\n transition,\n wasDragging: previous.current.activeId != null\n });\n const derivedTransform = useDerivedTransform({\n disabled: !shouldAnimateLayoutChanges,\n index,\n node,\n rect\n });\n useEffect(() => {\n if (isSorting && previous.current.newIndex !== newIndex) {\n previous.current.newIndex = newIndex;\n }\n\n if (containerId !== previous.current.containerId) {\n previous.current.containerId = containerId;\n }\n\n if (items !== previous.current.items) {\n previous.current.items = items;\n }\n }, [isSorting, newIndex, containerId, items]);\n useEffect(() => {\n if (activeId === previous.current.activeId) {\n return;\n }\n\n if (activeId && !previous.current.activeId) {\n previous.current.activeId = activeId;\n return;\n }\n\n const timeoutId = setTimeout(() => {\n previous.current.activeId = activeId;\n }, 50);\n return () => clearTimeout(timeoutId);\n }, [activeId]);\n return {\n active,\n activeIndex,\n attributes,\n data,\n rect,\n index,\n newIndex,\n items,\n isOver,\n isSorting,\n isDragging,\n listeners,\n node,\n overIndex,\n over,\n setNodeRef,\n setActivatorNodeRef,\n setDroppableNodeRef,\n setDraggableNodeRef,\n transform: derivedTransform != null ? derivedTransform : finalTransform,\n transition: getTransition()\n };\n\n function getTransition() {\n if ( // Temporarily disable transitions for a single frame to set up derived transforms\n derivedTransform || // Or to prevent items jumping to back to their \"new\" position when items change\n itemsHaveChanged && previous.current.newIndex === index) {\n return disabledTransition;\n }\n\n if (shouldDisplaceDragSource && !isKeyboardEvent(activatorEvent) || !transition) {\n return undefined;\n }\n\n if (isSorting || shouldAnimateLayoutChanges) {\n return CSS.Transition.toString({ ...transition,\n property: transitionProperty\n });\n }\n\n return undefined;\n }\n}\n\nfunction normalizeLocalDisabled(localDisabled, globalDisabled) {\n var _localDisabled$dragga, _localDisabled$droppa;\n\n if (typeof localDisabled === 'boolean') {\n return {\n draggable: localDisabled,\n // Backwards compatibility\n droppable: false\n };\n }\n\n return {\n draggable: (_localDisabled$dragga = localDisabled == null ? void 0 : localDisabled.draggable) != null ? _localDisabled$dragga : globalDisabled.draggable,\n droppable: (_localDisabled$droppa = localDisabled == null ? void 0 : localDisabled.droppable) != null ? _localDisabled$droppa : globalDisabled.droppable\n };\n}\n\nfunction hasSortableData(entry) {\n if (!entry) {\n return false;\n }\n\n const data = entry.data.current;\n\n if (data && 'sortable' in data && typeof data.sortable === 'object' && 'containerId' in data.sortable && 'items' in data.sortable && 'index' in data.sortable) {\n return true;\n }\n\n return false;\n}\n\nconst directions = [KeyboardCode.Down, KeyboardCode.Right, KeyboardCode.Up, KeyboardCode.Left];\nconst sortableKeyboardCoordinates = (event, _ref) => {\n let {\n context: {\n active,\n collisionRect,\n droppableRects,\n droppableContainers,\n over,\n scrollableAncestors\n }\n } = _ref;\n\n if (directions.includes(event.code)) {\n event.preventDefault();\n\n if (!active || !collisionRect) {\n return;\n }\n\n const filteredContainers = [];\n droppableContainers.getEnabled().forEach(entry => {\n if (!entry || entry != null && entry.disabled) {\n return;\n }\n\n const rect = droppableRects.get(entry.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Left:\n if (collisionRect.left > rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n\n case KeyboardCode.Right:\n if (collisionRect.left < rect.left) {\n filteredContainers.push(entry);\n }\n\n break;\n }\n });\n const collisions = closestCorners({\n active,\n collisionRect: collisionRect,\n droppableRects,\n droppableContainers: filteredContainers,\n pointerCoordinates: null\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === (over == null ? void 0 : over.id) && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null) {\n const activeDroppable = droppableContainers.get(active.id);\n const newDroppable = droppableContainers.get(closestId);\n const newRect = newDroppable ? droppableRects.get(newDroppable.id) : null;\n const newNode = newDroppable == null ? void 0 : newDroppable.node.current;\n\n if (newNode && newRect && activeDroppable && newDroppable) {\n const newScrollAncestors = getScrollableAncestors(newNode);\n const hasDifferentScrollAncestors = newScrollAncestors.some((element, index) => scrollableAncestors[index] !== element);\n const hasSameContainer = isSameContainer(activeDroppable, newDroppable);\n const isAfterActive = isAfter(activeDroppable, newDroppable);\n const offset = hasDifferentScrollAncestors || !hasSameContainer ? {\n x: 0,\n y: 0\n } : {\n x: isAfterActive ? collisionRect.width - newRect.width : 0,\n y: isAfterActive ? collisionRect.height - newRect.height : 0\n };\n const rectCoordinates = {\n x: newRect.left,\n y: newRect.top\n };\n const newCoordinates = offset.x && offset.y ? rectCoordinates : subtract(rectCoordinates, offset);\n return newCoordinates;\n }\n }\n }\n\n return undefined;\n};\n\nfunction isSameContainer(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n return a.data.current.sortable.containerId === b.data.current.sortable.containerId;\n}\n\nfunction isAfter(a, b) {\n if (!hasSortableData(a) || !hasSortableData(b)) {\n return false;\n }\n\n if (!isSameContainer(a, b)) {\n return false;\n }\n\n return a.data.current.sortable.index < b.data.current.sortable.index;\n}\n\nexport { SortableContext, arrayMove, arraySwap, defaultAnimateLayoutChanges, defaultNewIndexGetter, hasSortableData, horizontalListSortingStrategy, rectSortingStrategy, rectSwappingStrategy, sortableKeyboardCoordinates, useSortable, verticalListSortingStrategy };\n//# sourceMappingURL=sortable.esm.js.map\n","import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","var f=r(),n=e=>c(e,f),m=r();n.write=e=>c(e,m);var d=r();n.onStart=e=>c(e,d);var h=r();n.onFrame=e=>c(e,h);var p=r();n.onFinish=e=>c(e,p);var i=[];n.setTimeout=(e,t)=>{let a=n.now()+t,o=()=>{let F=i.findIndex(z=>z.cancel==o);~F&&i.splice(F,1),u-=~F?1:0},s={time:a,handler:e,cancel:o};return i.splice(w(a),0,s),u+=1,v(),s};var w=e=>~(~i.findIndex(t=>t.time>e)||~i.length);n.cancel=e=>{d.delete(e),h.delete(e),p.delete(e),f.delete(e),m.delete(e)};n.sync=e=>{T=!0,n.batchedUpdates(e),T=!1};n.throttle=e=>{let t;function a(){try{e(...t)}finally{t=null}}function o(...s){t=s,n.onStart(a)}return o.handler=e,o.cancel=()=>{d.delete(a),t=null},o};var y=typeof window<\"u\"?window.requestAnimationFrame:()=>{};n.use=e=>y=e;n.now=typeof performance<\"u\"?()=>performance.now():Date.now;n.batchedUpdates=e=>e();n.catch=console.error;n.frameLoop=\"always\";n.advance=()=>{n.frameLoop!==\"demand\"?console.warn(\"Cannot call the manual advancement of rafz whilst frameLoop is not set as demand\"):x()};var l=-1,u=0,T=!1;function c(e,t){T?(t.delete(e),e(0)):(t.add(e),v())}function v(){l<0&&(l=0,n.frameLoop!==\"demand\"&&y(b))}function R(){l=-1}function b(){~l&&(y(b),n.batchedUpdates(x))}function x(){let e=l;l=n.now();let t=w(l);if(t&&(Q(i.splice(0,t),a=>a.handler()),u-=t),!u){R();return}d.flush(),f.flush(e?Math.min(64,l-e):16.667),h.flush(),m.flush(),p.flush()}function r(){let e=new Set,t=e;return{add(a){u+=t==e&&!e.has(a)?1:0,e.add(a)},delete(a){return u-=t==e&&e.has(a)?1:0,e.delete(a)},flush(a){t.size&&(e=new Set,u-=t.size,Q(t,o=>o(a)&&e.add(o)),u+=e.size,t=e)}}}function Q(e,t){e.forEach(a=>{try{t(a)}catch(o){n.catch(o)}})}var S={count(){return u},isRunning(){return l>=0},clear(){l=-1,i=[],d=r(),f=r(),h=r(),m=r(),p=r(),u=0}};export{S as __raf,n as raf};\n","var ze=Object.defineProperty;var Le=(e,t)=>{for(var r in t)ze(e,r,{get:t[r],enumerable:!0})};var p={};Le(p,{assign:()=>U,colors:()=>c,createStringInterpolator:()=>k,skipAnimation:()=>ee,to:()=>J,willAdvance:()=>S});import{raf as I}from\"@react-spring/rafz\";function Y(){}var mt=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0}),l={arr:Array.isArray,obj:e=>!!e&&e.constructor.name===\"Object\",fun:e=>typeof e==\"function\",str:e=>typeof e==\"string\",num:e=>typeof e==\"number\",und:e=>e===void 0};function bt(e,t){if(l.arr(e)){if(!l.arr(t)||e.length!==t.length)return!1;for(let r=0;re.forEach(t);function xt(e,t,r){if(l.arr(e)){for(let n=0;nl.und(e)?[]:l.arr(e)?e:[e];function Pe(e,t){if(e.size){let r=Array.from(e);e.clear(),Ve(r,t)}}var yt=(e,...t)=>Pe(e,r=>r(...t)),h=()=>typeof window>\"u\"||!window.navigator||/ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);var k,J,c=null,ee=!1,S=Y,U=e=>{e.to&&(J=e.to),e.now&&(I.now=e.now),e.colors!==void 0&&(c=e.colors),e.skipAnimation!=null&&(ee=e.skipAnimation),e.createStringInterpolator&&(k=e.createStringInterpolator),e.requestAnimationFrame&&I.use(e.requestAnimationFrame),e.batchedUpdates&&(I.batchedUpdates=e.batchedUpdates),e.willAdvance&&(S=e.willAdvance),e.frameLoop&&(I.frameLoop=e.frameLoop)};import{raf as R}from\"@react-spring/rafz\";var E=new Set,u=[],H=[],A=0,qe={get idle(){return!E.size&&!u.length},start(e){A>e.priority?(E.add(e),R.onStart($e)):(te(e),R(B))},advance:B,sort(e){if(A)R.onFrame(()=>qe.sort(e));else{let t=u.indexOf(e);~t&&(u.splice(t,1),re(e))}},clear(){u=[],E.clear()}};function $e(){E.forEach(te),E.clear(),R(B)}function te(e){u.includes(e)||re(e)}function re(e){u.splice(Ge(u,t=>t.priority>e.priority),0,e)}function B(e){let t=H;for(let r=0;r0}function Ge(e,t){let r=e.findIndex(t);return r<0?e.length:r}var ne=(e,t,r)=>Math.min(Math.max(r,e),t);var It={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199};var d=\"[-+]?\\\\d*\\\\.?\\\\d+\",M=d+\"%\";function C(...e){return\"\\\\(\\\\s*(\"+e.join(\")\\\\s*,\\\\s*(\")+\")\\\\s*\\\\)\"}var oe=new RegExp(\"rgb\"+C(d,d,d)),fe=new RegExp(\"rgba\"+C(d,d,d,d)),ae=new RegExp(\"hsl\"+C(d,M,M)),ie=new RegExp(\"hsla\"+C(d,M,M,d)),se=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ue=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,le=/^#([0-9a-fA-F]{6})$/,ce=/^#([0-9a-fA-F]{8})$/;function be(e){let t;return typeof e==\"number\"?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=le.exec(e))?parseInt(t[1]+\"ff\",16)>>>0:c&&c[e]!==void 0?c[e]:(t=oe.exec(e))?(y(t[1])<<24|y(t[2])<<16|y(t[3])<<8|255)>>>0:(t=fe.exec(e))?(y(t[1])<<24|y(t[2])<<16|y(t[3])<<8|me(t[4]))>>>0:(t=se.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+\"ff\",16)>>>0:(t=ce.exec(e))?parseInt(t[1],16)>>>0:(t=ue.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=ae.exec(e))?(de(pe(t[1]),z(t[2]),z(t[3]))|255)>>>0:(t=ie.exec(e))?(de(pe(t[1]),z(t[2]),z(t[3]))|me(t[4]))>>>0:null}function j(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function de(e,t,r){let n=r<.5?r*(1+t):r+t-r*t,f=2*r-n,o=j(f,n,e+1/3),i=j(f,n,e),s=j(f,n,e-1/3);return Math.round(o*255)<<24|Math.round(i*255)<<16|Math.round(s*255)<<8}function y(e){let t=parseInt(e,10);return t<0?0:t>255?255:t}function pe(e){return(parseFloat(e)%360+360)%360/360}function me(e){let t=parseFloat(e);return t<0?0:t>1?255:Math.round(t*255)}function z(e){let t=parseFloat(e);return t<0?0:t>100?1:t/100}function D(e){let t=be(e);if(t===null)return e;t=t||0;let r=(t&4278190080)>>>24,n=(t&16711680)>>>16,f=(t&65280)>>>8,o=(t&255)/255;return`rgba(${r}, ${n}, ${f}, ${o})`}var W=(e,t,r)=>{if(l.fun(e))return e;if(l.arr(e))return W({range:e,output:t,extrapolate:r});if(l.str(e.output[0]))return k(e);let n=e,f=n.output,o=n.range||[0,1],i=n.extrapolateLeft||n.extrapolate||\"extend\",s=n.extrapolateRight||n.extrapolate||\"extend\",x=n.easing||(a=>a);return a=>{let F=He(a,o);return Ue(a,o[F],o[F+1],f[F],f[F+1],x,i,s,n.map)}};function Ue(e,t,r,n,f,o,i,s,x){let a=x?x(e):e;if(ar){if(s===\"identity\")return a;s===\"clamp\"&&(a=r)}return n===f?n:t===r?e<=t?n:f:(t===-1/0?a=-a:r===1/0?a=a-t:a=(a-t)/(r-t),a=o(a),n===-1/0?a=-a:f===1/0?a=a+n:a=a*(f-n)+n,a)}function He(e,t){for(var r=1;r=e);++r);return r-1}var Be=(e,t=\"end\")=>r=>{r=t===\"end\"?Math.min(r,.999):Math.max(r,.001);let n=r*e,f=t===\"end\"?Math.floor(n):Math.ceil(n);return ne(0,1,f/e)},P=1.70158,L=P*1.525,xe=P+1,he=2*Math.PI/3,ye=2*Math.PI/4.5,V=e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,Lt={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>1-(1-e)*(1-e),easeInOutQuad:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2,easeInCubic:e=>e*e*e,easeOutCubic:e=>1-Math.pow(1-e,3),easeInOutCubic:e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1-Math.pow(1-e,4),easeInOutQuart:e=>e<.5?8*e*e*e*e:1-Math.pow(-2*e+2,4)/2,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1-Math.pow(1-e,5),easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1-Math.pow(-2*e+2,5)/2,easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInExpo:e=>e===0?0:Math.pow(2,10*e-10),easeOutExpo:e=>e===1?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>e===0?0:e===1?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2,easeInCirc:e=>1-Math.sqrt(1-Math.pow(e,2)),easeOutCirc:e=>Math.sqrt(1-Math.pow(e-1,2)),easeInOutCirc:e=>e<.5?(1-Math.sqrt(1-Math.pow(2*e,2)))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2,easeInBack:e=>xe*e*e*e-P*e*e,easeOutBack:e=>1+xe*Math.pow(e-1,3)+P*Math.pow(e-1,2),easeInOutBack:e=>e<.5?Math.pow(2*e,2)*((L+1)*2*e-L)/2:(Math.pow(2*e-2,2)*((L+1)*(e*2-2)+L)+2)/2,easeInElastic:e=>e===0?0:e===1?1:-Math.pow(2,10*e-10)*Math.sin((e*10-10.75)*he),easeOutElastic:e=>e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e*10-.75)*he)+1,easeInOutElastic:e=>e===0?0:e===1?1:e<.5?-(Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*ye))/2:Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*ye)/2+1,easeInBounce:e=>1-V(1-e),easeOutBounce:V,easeInOutBounce:e=>e<.5?(1-V(1-2*e))/2:(1+V(2*e-1))/2,steps:Be};var g=Symbol.for(\"FluidValue.get\"),m=Symbol.for(\"FluidValue.observers\");var Pt=e=>!!(e&&e[g]),ve=e=>e&&e[g]?e[g]():e,qt=e=>e[m]||null;function je(e,t){e.eventObserved?e.eventObserved(t):e(t)}function $t(e,t){let r=e[m];r&&r.forEach(n=>{je(n,t)})}var ge=class{[g];[m];constructor(t){if(!t&&!(t=this.get))throw Error(\"Unknown getter\");De(this,t)}},De=(e,t)=>Ee(e,g,t);function Gt(e,t){if(e[g]){let r=e[m];r||Ee(e,m,r=new Set),r.has(t)||(r.add(t),e.observerAdded&&e.observerAdded(r.size,t))}return t}function Qt(e,t){let r=e[m];if(r&&r.has(t)){let n=r.size-1;n?r.delete(t):e[m]=null,e.observerRemoved&&e.observerRemoved(n,t)}}var Ee=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0});var O=/[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,Oe=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi,K=new RegExp(`(${O.source})(%|[a-z]+)`,\"i\"),we=/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi,b=/var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;var N=e=>{let[t,r]=We(e);if(!t||h())return e;let n=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(n)return n.trim();if(r&&r.startsWith(\"--\")){let f=window.getComputedStyle(document.documentElement).getPropertyValue(r);return f||e}else{if(r&&b.test(r))return N(r);if(r)return r}return e},We=e=>{let t=b.exec(e);if(!t)return[,];let[,r,n]=t;return[r,n]};var _,Ke=(e,t,r,n,f)=>`rgba(${Math.round(t)}, ${Math.round(r)}, ${Math.round(n)}, ${f})`,Xt=e=>{_||(_=c?new RegExp(`(${Object.keys(c).join(\"|\")})(?!\\\\w)`,\"g\"):/^\\b$/);let t=e.output.map(o=>ve(o).replace(b,N).replace(Oe,D).replace(_,D)),r=t.map(o=>o.match(O).map(Number)),f=r[0].map((o,i)=>r.map(s=>{if(!(i in s))throw Error('The arity of each \"output\" value must be equal');return s[i]})).map(o=>W({...e,output:o}));return o=>{let i=!K.test(t[0])&&t.find(x=>K.test(x))?.replace(O,\"\"),s=0;return t[0].replace(O,()=>`${f[s++](o)}${i||\"\"}`).replace(we,Ke)}};var Z=\"react-spring: \",Te=e=>{let t=e,r=!1;if(typeof t!=\"function\")throw new TypeError(`${Z}once requires a function parameter`);return(...n)=>{r||(t(...n),r=!0)}},Ne=Te(console.warn);function Jt(){Ne(`${Z}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`)}var _e=Te(console.warn);function er(){_e(`${Z}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`)}function or(e){return l.str(e)&&(e[0]==\"#\"||/\\d/.test(e)||!h()&&b.test(e)||e in(c||{}))}import{raf as Re}from\"@react-spring/rafz\";var v,q=new WeakMap,Ze=e=>e.forEach(({target:t,contentRect:r})=>q.get(t)?.forEach(n=>n(r)));function Fe(e,t){v||typeof ResizeObserver<\"u\"&&(v=new ResizeObserver(Ze));let r=q.get(t);return r||(r=new Set,q.set(t,r)),r.add(e),v&&v.observe(t),()=>{let n=q.get(t);n&&(n.delete(e),!n.size&&v&&v.unobserve(t))}}var $=new Set,w,Xe=()=>{let e=()=>{$.forEach(t=>t({width:window.innerWidth,height:window.innerHeight}))};return window.addEventListener(\"resize\",e),()=>{window.removeEventListener(\"resize\",e)}},Ie=e=>($.add(e),w||(w=Xe()),()=>{$.delete(e),!$.size&&w&&(w(),w=void 0)});var ke=(e,{container:t=document.documentElement}={})=>t===document.documentElement?Ie(e):Fe(e,t);var Se=(e,t,r)=>t-e===0?1:(r-e)/(t-e);var Ye={x:{length:\"Width\",position:\"Left\"},y:{length:\"Height\",position:\"Top\"}},G=class{callback;container;info;constructor(t,r){this.callback=t,this.container=r,this.info={time:0,x:this.createAxis(),y:this.createAxis()}}createAxis=()=>({current:0,progress:0,scrollLength:0});updateAxis=t=>{let r=this.info[t],{length:n,position:f}=Ye[t];r.current=this.container[`scroll${f}`],r.scrollLength=this.container[\"scroll\"+n]-this.container[\"client\"+n],r.progress=Se(0,r.scrollLength,r.current)};update=()=>{this.updateAxis(\"x\"),this.updateAxis(\"y\")};sendEvent=()=>{this.callback(this.info)};advance=()=>{this.update(),this.sendEvent()}};var T=new WeakMap,Ae=new WeakMap,X=new WeakMap,Me=e=>e===document.documentElement?window:e,yr=(e,{container:t=document.documentElement}={})=>{let r=X.get(t);r||(r=new Set,X.set(t,r));let n=new G(e,t);if(r.add(n),!T.has(t)){let o=()=>(r?.forEach(s=>s.advance()),!0);T.set(t,o);let i=Me(t);window.addEventListener(\"resize\",o,{passive:!0}),t!==document.documentElement&&Ae.set(t,ke(o,{container:t})),i.addEventListener(\"scroll\",o,{passive:!0})}let f=T.get(t);return Re(f),()=>{Re.cancel(f);let o=X.get(t);if(!o||(o.delete(n),o.size))return;let i=T.get(t);T.delete(t),i&&(Me(t).removeEventListener(\"scroll\",i),window.removeEventListener(\"resize\",i),Ae.get(t)?.())}};import{useRef as Je}from\"react\";function Er(e){let t=Je(null);return t.current===null&&(t.current=e()),t.current}import{useState as nt}from\"react\";import{useRef as rt}from\"react\";import{useEffect as et,useLayoutEffect as tt}from\"react\";var Q=h()?et:tt;var Ce=()=>{let e=rt(!1);return Q(()=>(e.current=!0,()=>{e.current=!1}),[]),e};function Mr(){let e=nt()[1],t=Ce();return()=>{t.current&&e(Math.random())}}import{useEffect as ot,useRef as ft,useState as at}from\"react\";function Lr(e,t){let[r]=at(()=>({inputs:t,result:e()})),n=ft(),f=n.current,o=f;return o?t&&o.inputs&&it(t,o.inputs)||(o={inputs:t,result:e()}):o=r,ot(()=>{n.current=o,f==r&&(r.inputs=r.result=void 0)},[o]),o.result}function it(e,t){if(e.length!==t.length)return!1;for(let r=0;rst(e,ut),ut=[];import{useEffect as lt,useRef as ct}from\"react\";function Ur(e){let t=ct();return lt(()=>{t.current=e}),t.current}import{useState as dt}from\"react\";var Wr=()=>{let[e,t]=dt(null);return Q(()=>{let r=window.matchMedia(\"(prefers-reduced-motion)\"),n=f=>{t(f.matches),U({skipAnimation:f.matches})};return n(r),r.addEventListener(\"change\",n),()=>{r.removeEventListener(\"change\",n)}},[]),e};import{raf as yn}from\"@react-spring/rafz\";export{ge as FluidValue,p as Globals,Gt as addFluidObserver,je as callFluidObserver,$t as callFluidObservers,ne as clamp,D as colorToRgba,It as colors,W as createInterpolator,Xt as createStringInterpolator,mt as defineHidden,er as deprecateDirectCall,Jt as deprecateInterpolate,Ve as each,xt as eachProp,Lt as easings,Pe as flush,yt as flushCalls,qe as frameLoop,qt as getFluidObservers,ve as getFluidValue,Pt as hasFluidValue,se as hex3,ue as hex4,le as hex6,ce as hex8,ae as hsl,ie as hsla,l as is,or as isAnimatedString,bt as isEqual,h as isSSR,Y as noop,ke as onResize,yr as onScroll,Te as once,Z as prefix,yn as raf,Qt as removeFluidObserver,oe as rgb,fe as rgba,De as setFluidGetter,ht as toArray,Er as useConstant,Mr as useForceUpdate,Q as useIsomorphicLayoutEffect,Lr as useMemoOne,$r as useOnce,Ur as usePrev,Wr as useReducedMotion};\n","import{defineHidden as B}from\"@react-spring/shared\";var h=Symbol.for(\"Animated:node\"),v=e=>!!e&&e[h]===e,k=e=>e&&e[h],D=(e,t)=>B(e,h,t),F=e=>e&&e[h]&&e[h].getPayload(),c=class{payload;constructor(){D(this,this)}getPayload(){return this.payload||[]}};import{is as A}from\"@react-spring/shared\";var l=class extends c{constructor(r){super();this._value=r;A.num(this._value)&&(this.lastPosition=this._value)}done=!0;elapsedTime;lastPosition;lastVelocity;v0;durationProgress=0;static create(r){return new l(r)}getPayload(){return[this]}getValue(){return this._value}setValue(r,n){return A.num(r)&&(this.lastPosition=r,n&&(r=Math.round(r/n)*n,this.done&&(this.lastPosition=r))),this._value===r?!1:(this._value=r,!0)}reset(){let{done:r}=this;this.done=!1,A.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,r&&(this.lastVelocity=null),this.v0=null)}};import{is as K,createInterpolator as R}from\"@react-spring/shared\";var d=class extends l{_string=null;_toString;constructor(t){super(0),this._toString=R({output:[t,t]})}static create(t){return new d(t)}getValue(){let t=this._string;return t??(this._string=this._toString(this._value))}setValue(t){if(K.str(t)){if(t==this._string)return!1;this._string=t,this._value=1}else if(super.setValue(t))this._string=null;else return!1;return!0}reset(t){t&&(this._toString=R({output:[this.getValue(),t]})),this._value=0,super.reset()}};import{isAnimatedString as q}from\"@react-spring/shared\";import{each as L,eachProp as w,getFluidValue as M,hasFluidValue as C}from\"@react-spring/shared\";var f={dependencies:null};var u=class extends c{constructor(r){super();this.source=r;this.setValue(r)}getValue(r){let n={};return w(this.source,(a,i)=>{v(a)?n[i]=a.getValue(r):C(a)?n[i]=M(a):r||(n[i]=a)}),n}setValue(r){this.source=r,this.payload=this._makePayload(r)}reset(){this.payload&&L(this.payload,r=>r.reset())}_makePayload(r){if(r){let n=new Set;return w(r,this._addToPayload,n),Array.from(n)}}_addToPayload(r){f.dependencies&&C(r)&&f.dependencies.add(r);let n=F(r);n&&L(n,a=>this.add(a))}};var y=class extends u{constructor(t){super(t)}static create(t){return new y(t)}getValue(){return this.source.map(t=>t.getValue())}setValue(t){let r=this.getPayload();return t.length==r.length?r.map((n,a)=>n.setValue(t[a])).some(Boolean):(super.setValue(t.map(z)),!0)}};function z(e){return(q(e)?d:l).create(e)}import{is as G,isAnimatedString as J}from\"@react-spring/shared\";function Le(e){let t=k(e);return t?t.constructor:G.arr(e)?y:J(e)?d:l}import{is as g,eachProp as oe}from\"@react-spring/shared\";import*as O from\"react\";import{forwardRef as Q,useRef as H,useCallback as X,useEffect as Y}from\"react\";import{is as N,each as V,raf as U,useForceUpdate as Z,useOnce as ee,addFluidObserver as te,removeFluidObserver as E,useIsomorphicLayoutEffect as re}from\"@react-spring/shared\";var x=(e,t)=>{let r=!N.fun(e)||e.prototype&&e.prototype.isReactComponent;return Q((n,a)=>{let i=H(null),o=r&&X(s=>{i.current=ae(a,s)},[a]),[m,T]=ne(n,t),W=Z(),P=()=>{let s=i.current;if(r&&!s)return;(s?t.applyAnimatedValues(s,m.getValue(!0)):!1)===!1&&W()},_=new b(P,T),p=H();re(()=>(p.current=_,V(T,s=>te(s,_)),()=>{p.current&&(V(p.current.deps,s=>E(s,p.current)),U.cancel(p.current.update))})),Y(P,[]),ee(()=>()=>{let s=p.current;V(s.deps,S=>E(S,s))});let $=t.getComponentProps(m.getValue());return O.createElement(e,{...$,ref:o})})},b=class{constructor(t,r){this.update=t;this.deps=r}eventObserved(t){t.type==\"change\"&&U.write(this.update)}};function ne(e,t){let r=new Set;return f.dependencies=r,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)}),e=new u(e),f.dependencies=null,[e,r]}function ae(e,t){return e&&(N.fun(e)?e(t):e.current=t),t}var j=Symbol.for(\"AnimatedComponent\"),Ke=(e,{applyAnimatedValues:t=()=>!1,createAnimatedStyle:r=a=>new u(a),getComponentProps:n=a=>a}={})=>{let a={applyAnimatedValues:t,createAnimatedStyle:r,getComponentProps:n},i=o=>{let m=I(o)||\"Anonymous\";return g.str(o)?o=i[o]||(i[o]=x(o,a)):o=o[j]||(o[j]=x(o,a)),o.displayName=`Animated(${m})`,o};return oe(e,(o,m)=>{g.arr(e)&&(m=I(o)),i[m]=i(o)}),{animated:i}},I=e=>g.str(e)?e:e&&g.str(e.displayName)?e.displayName:g.fun(e)&&e.name||null;export{c as Animated,y as AnimatedArray,u as AnimatedObject,d as AnimatedString,l as AnimatedValue,Ke as createHost,k as getAnimated,Le as getAnimatedType,F as getPayload,v as isAnimated,D as setAnimated};\n","import{each as ge,useIsomorphicLayoutEffect as an}from\"@react-spring/shared\";import{is as K,toArray as $t,eachProp as dt,getFluidValue as Zt,isAnimatedString as en,Globals as tn}from\"@react-spring/shared\";function I(t,...e){return K.fun(t)?t(...e):t}var te=(t,e)=>t===!0||!!(e&&t&&(K.fun(t)?t(e):$t(t).includes(e))),et=(t,e)=>K.obj(t)?e&&t[e]:t;var ke=(t,e)=>t.default===!0?t[e]:t.default?t.default[e]:void 0,nn=t=>t,ne=(t,e=nn)=>{let n=rn;t.default&&t.default!==!0&&(t=t.default,n=Object.keys(t));let r={};for(let o of n){let s=e(t[o],o);K.und(s)||(r[o]=s)}return r},rn=[\"config\",\"onProps\",\"onStart\",\"onChange\",\"onPause\",\"onResume\",\"onRest\"],on={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function sn(t){let e={},n=0;if(dt(t,(r,o)=>{on[o]||(e[o]=r,n++)}),n)return e}function de(t){let e=sn(t);if(e){let n={to:e};return dt(t,(r,o)=>o in e||(n[o]=r)),n}return{...t}}function me(t){return t=Zt(t),K.arr(t)?t.map(me):en(t)?tn.createStringInterpolator({range:[0,1],output:[t,t]})(1):t}function Ue(t){for(let e in t)return!0;return!1}function Ee(t){return K.fun(t)||K.arr(t)&&K.obj(t[0])}function xe(t,e){t.ref?.delete(t),e?.delete(t)}function he(t,e){e&&t.ref!==e&&(t.ref?.delete(t),e.add(t),t.ref=e)}function wr(t,e,n=1e3){an(()=>{if(e){let r=0;ge(t,(o,s)=>{let i=o.current;if(i.length){let a=n*e[s];isNaN(a)?a=r:r=a,ge(i,u=>{ge(u.queue,p=>{let f=p.delay;p.delay=d=>a+I(f||0,d)})}),o.start()}})}else{let r=Promise.resolve();ge(t,o=>{let s=o.current;if(s.length){let i=s.map(a=>{let u=a.queue;return a.queue=[],u});r=r.then(()=>(ge(s,(a,u)=>ge(i[u]||[],p=>a.queue.push(p))),Promise.all(o.start())))}})}})}import{is as Qn}from\"@react-spring/shared\";import{useContext as Mn,useMemo as Xe,useRef as Nt}from\"react\";import{is as jn,each as Ye,usePrev as Dt,useOnce as Nn,useForceUpdate as Dn,useIsomorphicLayoutEffect as qn}from\"@react-spring/shared\";import{is as R,raf as ve,each as At,isEqual as Y,toArray as Rt,eachProp as Pn,frameLoop as Tn,flushCalls as Qe,getFluidValue as ie,isAnimatedString as xn,Globals as bn,callFluidObservers as An,hasFluidValue as Se,addFluidObserver as Rn,removeFluidObserver as vn,getFluidObservers as vt}from\"@react-spring/shared\";import{AnimatedValue as Cn,AnimatedString as Ct,getPayload as In,getAnimated as ae,setAnimated as Vn,getAnimatedType as It}from\"@react-spring/animated\";import{is as re,easings as un}from\"@react-spring/shared\";var mt={default:{tension:170,friction:26},gentle:{tension:120,friction:14},wobbly:{tension:180,friction:12},stiff:{tension:210,friction:20},slow:{tension:280,friction:60},molasses:{tension:280,friction:120}};var tt={...mt.default,mass:1,damping:1,easing:un.linear,clamp:!1},we=class{tension;friction;frequency;damping;mass;velocity=0;restVelocity;precision;progress;duration;easing;clamp;bounce;decay;round;constructor(){Object.assign(this,tt)}};function gt(t,e,n){n&&(n={...n},ht(n,e),e={...n,...e}),ht(t,e),Object.assign(t,e);for(let i in tt)t[i]==null&&(t[i]=tt[i]);let{frequency:r,damping:o}=t,{mass:s}=t;return re.und(r)||(r<.01&&(r=.01),o<0&&(o=0),t.tension=Math.pow(2*Math.PI/r,2)*s,t.friction=4*Math.PI*o*s/r),t}function ht(t,e){if(!re.und(e.decay))t.duration=void 0;else{let n=!re.und(e.tension)||!re.und(e.friction);(n||!re.und(e.frequency)||!re.und(e.damping)||!re.und(e.mass))&&(t.duration=void 0,t.decay=void 0),n&&(t.frequency=void 0)}}var yt=[],Le=class{changed=!1;values=yt;toValues=null;fromValues=yt;to;from;config=new we;immediate=!1};import{is as pn,raf as St,Globals as ln}from\"@react-spring/shared\";function Me(t,{key:e,props:n,defaultProps:r,state:o,actions:s}){return new Promise((i,a)=>{let u,p,f=te(n.cancel??r?.cancel,e);if(f)b();else{pn.und(n.pause)||(o.paused=te(n.pause,e));let c=r?.pause;c!==!0&&(c=o.paused||te(c,e)),u=I(n.delay||0,e),c?(o.resumeQueue.add(m),s.pause()):(s.resume(),m())}function d(){o.resumeQueue.add(m),o.timeouts.delete(p),p.cancel(),u=p.time-St.now()}function m(){u>0&&!ln.skipAnimation?(o.delayed=!0,p=St.setTimeout(b,u),o.pauseQueue.add(d),o.timeouts.add(p)):b()}function b(){o.delayed&&(o.delayed=!1),o.pauseQueue.delete(d),o.timeouts.delete(p),t<=(o.cancelId||0)&&(f=!0);try{s.start({...n,callId:t,cancel:f},i)}catch(c){a(c)}}})}import{is as je,raf as cn,flush as fn,eachProp as dn,Globals as Pt}from\"@react-spring/shared\";var be=(t,e)=>e.length==1?e[0]:e.some(n=>n.cancelled)?q(t.get()):e.every(n=>n.noop)?nt(t.get()):E(t.get(),e.every(n=>n.finished)),nt=t=>({value:t,noop:!0,finished:!0,cancelled:!1}),E=(t,e,n=!1)=>({value:t,finished:e,cancelled:n}),q=t=>({value:t,cancelled:!0,finished:!1});function De(t,e,n,r){let{callId:o,parentId:s,onRest:i}=e,{asyncTo:a,promise:u}=n;return!s&&t===a&&!e.reset?u:n.promise=(async()=>{n.asyncId=o,n.asyncTo=t;let p=ne(e,(l,h)=>h===\"onRest\"?void 0:l),f,d,m=new Promise((l,h)=>(f=l,d=h)),b=l=>{let h=o<=(n.cancelId||0)&&q(r)||o!==n.asyncId&&E(r,!1);if(h)throw l.result=h,d(l),l},c=(l,h)=>{let g=new Ae,x=new Ne;return(async()=>{if(Pt.skipAnimation)throw oe(n),x.result=E(r,!1),d(x),x;b(g);let S=je.obj(l)?{...l}:{...h,to:l};S.parentId=o,dn(p,(V,_)=>{je.und(S[_])&&(S[_]=V)});let A=await r.start(S);return b(g),n.paused&&await new Promise(V=>{n.resumeQueue.add(V)}),A})()},P;if(Pt.skipAnimation)return oe(n),E(r,!1);try{let l;je.arr(t)?l=(async h=>{for(let g of h)await c(g)})(t):l=Promise.resolve(t(c,r.stop.bind(r))),await Promise.all([l.then(f),m]),P=E(r.get(),!0,!1)}catch(l){if(l instanceof Ae)P=l.result;else if(l instanceof Ne)P=l.result;else throw l}finally{o==n.asyncId&&(n.asyncId=s,n.asyncTo=s?a:void 0,n.promise=s?u:void 0)}return je.fun(i)&&cn.batchedUpdates(()=>{i(P,r,r.item)}),P})()}function oe(t,e){fn(t.timeouts,n=>n.cancel()),t.pauseQueue.clear(),t.resumeQueue.clear(),t.asyncId=t.asyncTo=t.promise=void 0,e&&(t.cancelId=e)}var Ae=class extends Error{result;constructor(){super(\"An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.\")}},Ne=class extends Error{result;constructor(){super(\"SkipAnimationSignal\")}};import{deprecateInterpolate as mn,frameLoop as hn,FluidValue as gn,Globals as Tt,callFluidObservers as xt}from\"@react-spring/shared\";import{getAnimated as yn}from\"@react-spring/animated\";var Re=t=>t instanceof X,Sn=1,X=class extends gn{id=Sn++;_priority=0;get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){let e=yn(this);return e&&e.getValue()}to(...e){return Tt.to(this,e)}interpolate(...e){return mn(),Tt.to(this,e)}toJSON(){return this.get()}observerAdded(e){e==1&&this._attach()}observerRemoved(e){e==0&&this._detach()}_attach(){}_detach(){}_onChange(e,n=!1){xt(this,{type:\"change\",parent:this,value:e,idle:n})}_onPriorityChange(e){this.idle||hn.sort(this),xt(this,{type:\"priority\",parent:this,priority:e})}};var se=Symbol.for(\"SpringPhase\"),bt=1,rt=2,ot=4,qe=t=>(t[se]&bt)>0,Q=t=>(t[se]&rt)>0,ye=t=>(t[se]&ot)>0,st=(t,e)=>e?t[se]|=rt|bt:t[se]&=~rt,it=(t,e)=>e?t[se]|=ot:t[se]&=~ot;var ue=class extends X{key;animation=new Le;queue;defaultProps={};_state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set};_pendingCalls=new Set;_lastCallId=0;_lastToId=0;_memoizedDuration=0;constructor(e,n){if(super(),!R.und(e)||!R.und(n)){let r=R.obj(e)?{...e}:{...n,from:e};R.und(r.default)&&(r.default=!0),this.start(r)}}get idle(){return!(Q(this)||this._state.asyncTo)||ye(this)}get goal(){return ie(this.animation.to)}get velocity(){let e=ae(this);return e instanceof Cn?e.lastVelocity||0:e.getPayload().map(n=>n.lastVelocity||0)}get hasAnimated(){return qe(this)}get isAnimating(){return Q(this)}get isPaused(){return ye(this)}get isDelayed(){return this._state.delayed}advance(e){let n=!0,r=!1,o=this.animation,{toValues:s}=o,{config:i}=o,a=In(o.to);!a&&Se(o.to)&&(s=Rt(ie(o.to))),o.values.forEach((f,d)=>{if(f.done)return;let m=f.constructor==Ct?1:a?a[d].lastPosition:s[d],b=o.immediate,c=m;if(!b){if(c=f.lastPosition,i.tension<=0){f.done=!0;return}let P=f.elapsedTime+=e,l=o.fromValues[d],h=f.v0!=null?f.v0:f.v0=R.arr(i.velocity)?i.velocity[d]:i.velocity,g,x=i.precision||(l==m?.005:Math.min(1,Math.abs(m-l)*.001));if(R.und(i.duration))if(i.decay){let S=i.decay===!0?.998:i.decay,A=Math.exp(-(1-S)*P);c=l+h/(1-S)*(1-A),b=Math.abs(f.lastPosition-c)<=x,g=h*A}else{g=f.lastVelocity==null?h:f.lastVelocity;let S=i.restVelocity||x/10,A=i.clamp?0:i.bounce,V=!R.und(A),_=l==m?f.v0>0:lS,!(!v&&(b=Math.abs(m-c)<=x,b)));++L){V&&(w=c==m||c>m==_,w&&(g=-g*A,c=m));let N=-i.tension*1e-6*(c-m),y=-i.friction*.001*g,T=(N+y)/i.mass;g=g+T*C,c=c+g*C}}else{let S=1;i.duration>0&&(this._memoizedDuration!==i.duration&&(this._memoizedDuration=i.duration,f.durationProgress>0&&(f.elapsedTime=i.duration*f.durationProgress,P=f.elapsedTime+=e)),S=(i.progress||0)+P/this._memoizedDuration,S=S>1?1:S<0?0:S,f.durationProgress=S),c=l+i.easing(S)*(m-l),g=(c-f.lastPosition)/e,b=S==1}f.lastVelocity=g,Number.isNaN(c)&&(console.warn(\"Got NaN while animating:\",this),b=!0)}a&&!a[d].done&&(b=!1),b?f.done=!0:n=!1,f.setValue(c,i.round)&&(r=!0)});let u=ae(this),p=u.getValue();if(n){let f=ie(o.to);(p!==f||r)&&!i.decay?(u.setValue(f),this._onChange(f)):r&&i.decay&&this._onChange(p),this._stop()}else r&&this._onChange(p)}set(e){return ve.batchedUpdates(()=>{this._stop(),this._focus(e),this._set(e)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(Q(this)){let{to:e,config:n}=this.animation;ve.batchedUpdates(()=>{this._onStart(),n.decay||this._set(e,!1),this._stop()})}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,n){let r;return R.und(e)?(r=this.queue||[],this.queue=[]):r=[R.obj(e)?e:{...n,to:e}],Promise.all(r.map(o=>this._update(o))).then(o=>be(this,o))}stop(e){let{to:n}=this.animation;return this._focus(this.get()),oe(this._state,e&&this._lastCallId),ve.batchedUpdates(()=>this._stop(n,e)),this}reset(){this._update({reset:!0})}eventObserved(e){e.type==\"change\"?this._start():e.type==\"priority\"&&(this.priority=e.priority+1)}_prepareNode(e){let n=this.key||\"\",{to:r,from:o}=e;r=R.obj(r)?r[n]:r,(r==null||Ee(r))&&(r=void 0),o=R.obj(o)?o[n]:o,o==null&&(o=void 0);let s={to:r,from:o};return qe(this)||(e.reverse&&([r,o]=[o,r]),o=ie(o),R.und(o)?ae(this)||this._set(r):this._set(o)),s}_update({...e},n){let{key:r,defaultProps:o}=this;e.default&&Object.assign(o,ne(e,(a,u)=>/^on/.test(u)?et(a,r):a)),_t(this,e,\"onProps\"),Ie(this,\"onProps\",e,this);let s=this._prepareNode(e);if(Object.isFrozen(this))throw Error(\"Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?\");let i=this._state;return Me(++this._lastCallId,{key:r,props:e,defaultProps:o,state:i,actions:{pause:()=>{ye(this)||(it(this,!0),Qe(i.pauseQueue),Ie(this,\"onPause\",E(this,Ce(this,this.animation.to)),this))},resume:()=>{ye(this)&&(it(this,!1),Q(this)&&this._resume(),Qe(i.resumeQueue),Ie(this,\"onResume\",E(this,Ce(this,this.animation.to)),this))},start:this._merge.bind(this,s)}}).then(a=>{if(e.loop&&a.finished&&!(n&&a.noop)){let u=at(e);if(u)return this._update(u,!0)}return a})}_merge(e,n,r){if(n.cancel)return this.stop(!0),r(q(this));let o=!R.und(e.to),s=!R.und(e.from);if(o||s)if(n.callId>this._lastToId)this._lastToId=n.callId;else return r(q(this));let{key:i,defaultProps:a,animation:u}=this,{to:p,from:f}=u,{to:d=p,from:m=f}=e;s&&!o&&(!n.default||R.und(d))&&(d=m),n.reverse&&([d,m]=[m,d]);let b=!Y(m,f);b&&(u.from=m),m=ie(m);let c=!Y(d,p);c&&this._focus(d);let P=Ee(n.to),{config:l}=u,{decay:h,velocity:g}=l;(o||s)&&(l.velocity=0),n.config&&!P&>(l,I(n.config,i),n.config!==a.config?I(a.config,i):void 0);let x=ae(this);if(!x||R.und(d))return r(E(this,!0));let S=R.und(n.reset)?s&&!n.default:!R.und(m)&&te(n.reset,i),A=S?m:this.get(),V=me(d),_=R.num(V)||R.arr(V)||xn(V),v=!P&&(!_||te(a.immediate||n.immediate,i));if(c){let L=It(d);if(L!==x.constructor)if(v)x=this._set(V);else throw Error(`Cannot animate between ${x.constructor.name} and ${L.name}, as the \"to\" prop suggests`)}let w=x.constructor,C=Se(d),$=!1;if(!C){let L=S||!qe(this)&&b;(c||L)&&($=Y(me(A),V),C=!$),(!Y(u.immediate,v)&&!v||!Y(l.decay,h)||!Y(l.velocity,g))&&(C=!0)}if($&&Q(this)&&(u.changed&&!S?C=!0:C||this._stop(p)),!P&&((C||Se(p))&&(u.values=x.getPayload(),u.toValues=Se(d)?null:w==Ct?[1]:Rt(V)),u.immediate!=v&&(u.immediate=v,!v&&!S&&this._set(p)),C)){let{onRest:L}=u;At(_n,y=>_t(this,n,y));let N=E(this,Ce(this,p));Qe(this._pendingCalls,N),this._pendingCalls.add(r),u.changed&&ve.batchedUpdates(()=>{u.changed=!S,L?.(N,this),S?I(a.onRest,N):u.onStart?.(N,this)})}S&&this._set(A),P?r(De(n.to,n,this._state,this)):C?this._start():Q(this)&&!c?this._pendingCalls.add(r):r(nt(A))}_focus(e){let n=this.animation;e!==n.to&&(vt(this)&&this._detach(),n.to=e,vt(this)&&this._attach())}_attach(){let e=0,{to:n}=this.animation;Se(n)&&(Rn(n,this),Re(n)&&(e=n.priority+1)),this.priority=e}_detach(){let{to:e}=this.animation;Se(e)&&vn(e,this)}_set(e,n=!0){let r=ie(e);if(!R.und(r)){let o=ae(this);if(!o||!Y(r,o.getValue())){let s=It(r);!o||o.constructor!=s?Vn(this,s.create(r)):o.setValue(r),o&&ve.batchedUpdates(()=>{this._onChange(r,n)})}}return ae(this)}_onStart(){let e=this.animation;e.changed||(e.changed=!0,Ie(this,\"onStart\",E(this,Ce(this,e.to)),this))}_onChange(e,n){n||(this._onStart(),I(this.animation.onChange,e,this)),I(this.defaultProps.onChange,e,this),super._onChange(e,n)}_start(){let e=this.animation;ae(this).reset(ie(e.to)),e.immediate||(e.fromValues=e.values.map(n=>n.lastPosition)),Q(this)||(st(this,!0),ye(this)||this._resume())}_resume(){bn.skipAnimation?this.finish():Tn.start(this)}_stop(e,n){if(Q(this)){st(this,!1);let r=this.animation;At(r.values,s=>{s.done=!0}),r.toValues&&(r.onChange=r.onPause=r.onResume=void 0),An(this,{type:\"idle\",parent:this});let o=n?q(this.get()):E(this.get(),Ce(this,e??r.to));Qe(this._pendingCalls,o),r.changed&&(r.changed=!1,Ie(this,\"onRest\",o,this))}}};function Ce(t,e){let n=me(e),r=me(t.get());return Y(r,n)}function at(t,e=t.loop,n=t.to){let r=I(e);if(r){let o=r!==!0&&de(r),s=(o||t).reverse,i=!o||o.reset;return Pe({...t,loop:e,default:!1,pause:void 0,to:!s||Ee(n)?n:void 0,from:i?t.from:void 0,reset:i,...o})}}function Pe(t){let{to:e,from:n}=t=de(t),r=new Set;return R.obj(e)&&Vt(e,r),R.obj(n)&&Vt(n,r),t.keys=r.size?Array.from(r):null,t}function Ot(t){let e=Pe(t);return R.und(e.default)&&(e.default=ne(e)),e}function Vt(t,e){Pn(t,(n,r)=>n!=null&&e.add(r))}var _n=[\"onStart\",\"onRest\",\"onChange\",\"onPause\",\"onResume\"];function _t(t,e,n){t.animation[n]=e[n]!==ke(e,n)?et(e[n],t.key):void 0}function Ie(t,e,...n){t.animation[e]?.(...n),t.defaultProps[e]?.(...n)}import{is as z,raf as kt,each as pe,noop as Ft,flush as ut,toArray as Ve,eachProp as Ut,flushCalls as On,addFluidObserver as Et}from\"@react-spring/shared\";var Fn=[\"onStart\",\"onChange\",\"onRest\"],kn=1,le=class{id=kn++;springs={};queue=[];ref;_flush;_initialProps;_lastAsyncId=0;_active=new Set;_changed=new Set;_started=!1;_item;_state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set};_events={onStart:new Map,onChange:new Map,onRest:new Map};constructor(e,n){this._onFrame=this._onFrame.bind(this),n&&(this._flush=n),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(e=>e.idle&&!e.isDelayed&&!e.isPaused)}get item(){return this._item}set item(e){this._item=e}get(){let e={};return this.each((n,r)=>e[r]=n.get()),e}set(e){for(let n in e){let r=e[n];z.und(r)||this.springs[n].set(r)}}update(e){return e&&this.queue.push(Pe(e)),this}start(e){let{queue:n}=this;return e?n=Ve(e).map(Pe):this.queue=[],this._flush?this._flush(this,n):(jt(this,n),ze(this,n))}stop(e,n){if(e!==!!e&&(n=e),n){let r=this.springs;pe(Ve(n),o=>r[o].stop(!!e))}else oe(this._state,this._lastAsyncId),this.each(r=>r.stop(!!e));return this}pause(e){if(z.und(e))this.start({pause:!0});else{let n=this.springs;pe(Ve(e),r=>n[r].pause())}return this}resume(e){if(z.und(e))this.start({pause:!1});else{let n=this.springs;pe(Ve(e),r=>n[r].resume())}return this}each(e){Ut(this.springs,e)}_onFrame(){let{onStart:e,onChange:n,onRest:r}=this._events,o=this._active.size>0,s=this._changed.size>0;(o&&!this._started||s&&!this._started)&&(this._started=!0,ut(e,([u,p])=>{p.value=this.get(),u(p,this,this._item)}));let i=!o&&this._started,a=s||i&&r.size?this.get():null;s&&n.size&&ut(n,([u,p])=>{p.value=a,u(p,this,this._item)}),i&&(this._started=!1,ut(r,([u,p])=>{p.value=a,u(p,this,this._item)}))}eventObserved(e){if(e.type==\"change\")this._changed.add(e.parent),e.idle||this._active.add(e.parent);else if(e.type==\"idle\")this._active.delete(e.parent);else return;kt.onFrame(this._onFrame)}};function ze(t,e){return Promise.all(e.map(n=>wt(t,n))).then(n=>be(t,n))}async function wt(t,e,n){let{keys:r,to:o,from:s,loop:i,onRest:a,onResolve:u}=e,p=z.obj(e.default)&&e.default;i&&(e.loop=!1),o===!1&&(e.to=null),s===!1&&(e.from=null);let f=z.arr(o)||z.fun(o)?o:void 0;f?(e.to=void 0,e.onRest=void 0,p&&(p.onRest=void 0)):pe(Fn,P=>{let l=e[P];if(z.fun(l)){let h=t._events[P];e[P]=({finished:g,cancelled:x})=>{let S=h.get(l);S?(g||(S.finished=!1),x&&(S.cancelled=!0)):h.set(l,{value:null,finished:g||!1,cancelled:x||!1})},p&&(p[P]=e[P])}});let d=t._state;e.pause===!d.paused?(d.paused=e.pause,On(e.pause?d.pauseQueue:d.resumeQueue)):d.paused&&(e.pause=!0);let m=(r||Object.keys(t.springs)).map(P=>t.springs[P].start(e)),b=e.cancel===!0||ke(e,\"cancel\")===!0;(f||b&&d.asyncId)&&m.push(Me(++t._lastAsyncId,{props:e,state:d,actions:{pause:Ft,resume:Ft,start(P,l){b?(oe(d,t._lastAsyncId),l(q(t))):(P.onRest=a,l(De(f,P,d,t)))}}})),d.paused&&await new Promise(P=>{d.resumeQueue.add(P)});let c=be(t,await Promise.all(m));if(i&&c.finished&&!(n&&c.noop)){let P=at(e,i,o);if(P)return jt(t,[P]),wt(t,P,!0)}return u&&kt.batchedUpdates(()=>u(c,t,t.item)),c}function _e(t,e){let n={...t.springs};return e&&pe(Ve(e),r=>{z.und(r.keys)&&(r=Pe(r)),z.obj(r.to)||(r={...r,to:void 0}),Mt(n,r,o=>Lt(o))}),pt(t,n),n}function pt(t,e){Ut(e,(n,r)=>{t.springs[r]||(t.springs[r]=n,Et(n,t))})}function Lt(t,e){let n=new ue;return n.key=t,e&&Et(n,e),n}function Mt(t,e,n){e.keys&&pe(e.keys,r=>{(t[r]||(t[r]=n(r)))._prepareNode(e)})}function jt(t,e){pe(e,n=>{Mt(t.springs,n,r=>Lt(r,t))})}import*as Be from\"react\";import{useContext as Un}from\"react\";import{useMemoOne as En}from\"@react-spring/shared\";var H=({children:t,...e})=>{let n=Un(Ge),r=e.pause||!!n.pause,o=e.immediate||!!n.immediate;e=En(()=>({pause:r,immediate:o}),[r,o]);let{Provider:s}=Ge;return Be.createElement(s,{value:e},t)},Ge=wn(H,{});H.Provider=Ge.Provider;H.Consumer=Ge.Consumer;function wn(t,e){return Object.assign(t,Be.createContext(e)),t.Provider._context=t,t.Consumer._context=t,t}import{each as ce,is as Ke,deprecateDirectCall as Ln}from\"@react-spring/shared\";var fe=()=>{let t=[],e=function(r){Ln();let o=[];return ce(t,(s,i)=>{if(Ke.und(r))o.push(s.start());else{let a=n(r,s,i);a&&o.push(s.start(a))}}),o};e.current=t,e.add=function(r){t.includes(r)||t.push(r)},e.delete=function(r){let o=t.indexOf(r);~o&&t.splice(o,1)},e.pause=function(){return ce(t,r=>r.pause(...arguments)),this},e.resume=function(){return ce(t,r=>r.resume(...arguments)),this},e.set=function(r){ce(t,(o,s)=>{let i=Ke.fun(r)?r(s,o):r;i&&o.set(i)})},e.start=function(r){let o=[];return ce(t,(s,i)=>{if(Ke.und(r))o.push(s.start());else{let a=this._getProps(r,s,i);a&&o.push(s.start(a))}}),o},e.stop=function(){return ce(t,r=>r.stop(...arguments)),this},e.update=function(r){return ce(t,(o,s)=>o.update(this._getProps(r,o,s))),this};let n=function(r,o,s){return Ke.fun(r)?r(s,o):r};return e._getProps=n,e};function He(t,e,n){let r=jn.fun(e)&&e;r&&!n&&(n=[]);let o=Xe(()=>r||arguments.length==3?fe():void 0,[]),s=Nt(0),i=Dn(),a=Xe(()=>({ctrls:[],queue:[],flush(h,g){let x=_e(h,g);return s.current>0&&!a.queue.length&&!Object.keys(x).some(A=>!h.springs[A])?ze(h,g):new Promise(A=>{pt(h,x),a.queue.push(()=>{A(ze(h,g))}),i()})}}),[]),u=Nt([...a.ctrls]),p=[],f=Dt(t)||0;Xe(()=>{Ye(u.current.slice(t,f),h=>{xe(h,o),h.stop(!0)}),u.current.length=t,d(f,t)},[t]),Xe(()=>{d(0,Math.min(f,t))},n);function d(h,g){for(let x=h;x_e(h,p[g])),b=Mn(H),c=Dt(b),P=b!==c&&Ue(b);qn(()=>{s.current++,a.ctrls=u.current;let{queue:h}=a;h.length&&(a.queue=[],Ye(h,g=>g())),Ye(u.current,(g,x)=>{o?.add(g),P&&g.start({default:b});let S=p[x];S&&(he(g,S.ref),g.ref?g.queue.push(S):g.start(S))})}),Nn(()=>()=>{Ye(a.ctrls,h=>h.stop(!0))});let l=m.map(h=>({...h}));return o?[l,o]:l}function J(t,e){let n=Qn.fun(t),[[r],o]=He(1,n?t:[t],n?e||[]:e);return n||arguments.length==2?[r,o]:r}import{useState as zn}from\"react\";var Gn=()=>fe(),Xo=()=>zn(Gn)[0];import{useConstant as Bn,useOnce as Kn}from\"@react-spring/shared\";var Wo=(t,e)=>{let n=Bn(()=>new ue(t,e));return Kn(()=>()=>{n.stop()}),n};import{each as Xn,is as qt,useIsomorphicLayoutEffect as Yn}from\"@react-spring/shared\";function Qt(t,e,n){let r=qt.fun(e)&&e;r&&!n&&(n=[]);let o=!0,s,i=He(t,(a,u)=>{let p=r?r(a,u):e;return s=p.ref,o=o&&p.reverse,p},n||[{}]);if(Yn(()=>{Xn(i[1].current,(a,u)=>{let p=i[1].current[u+(o?1:-1)];if(he(a,s),a.ref){p&&a.update({to:p.springs});return}p?a.start({to:p.springs}):a.start()})},n),r||arguments.length==3){let a=s??i[1];return a._getProps=(u,p,f)=>{let d=qt.fun(u)?u(f,p):u;if(d){let m=a.current[f+(d.reverse?1:-1)];return m&&(d.to=m.springs),d}},i}return i[0]}import*as Oe from\"react\";import{useContext as Hn,useRef as lt,useMemo as Jn}from\"react\";import{is as G,toArray as zt,useForceUpdate as Wn,useOnce as $n,usePrev as Zn,each as j,useIsomorphicLayoutEffect as Je}from\"@react-spring/shared\";function Gt(t,e,n){let r=G.fun(e)&&e,{reset:o,sort:s,trail:i=0,expires:a=!0,exitBeforeEnter:u=!1,onDestroyed:p,ref:f,config:d}=r?r():e,m=Jn(()=>r||arguments.length==3?fe():void 0,[]),b=zt(t),c=[],P=lt(null),l=o?null:P.current;Je(()=>{P.current=c}),$n(()=>(j(c,y=>{m?.add(y.ctrl),y.ctrl.ref=m}),()=>{j(P.current,y=>{y.expired&&clearTimeout(y.expirationId),xe(y.ctrl,m),y.ctrl.stop(!0)})}));let h=tr(b,r?r():e,l),g=o&&P.current||[];Je(()=>j(g,({ctrl:y,item:T,key:F})=>{xe(y,m),I(p,T,F)}));let x=[];if(l&&j(l,(y,T)=>{y.expired?(clearTimeout(y.expirationId),g.push(y)):(T=x[T]=h.indexOf(y.key),~T&&(c[T]=y))}),j(b,(y,T)=>{c[T]||(c[T]={key:h[T],item:y,phase:\"mount\",ctrl:new le},c[T].ctrl.item=y)}),x.length){let y=-1,{leave:T}=r?r():e;j(x,(F,k)=>{let O=l[k];~F?(y=c.indexOf(O),c[y]={...O,item:b[F]}):T&&c.splice(++y,0,O)})}G.fun(s)&&c.sort((y,T)=>s(y.item,T.item));let S=-i,A=Wn(),V=ne(e),_=new Map,v=lt(new Map),w=lt(!1);j(c,(y,T)=>{let F=y.key,k=y.phase,O=r?r():e,U,D,Jt=I(O.delay||0,F);if(k==\"mount\")U=O.enter,D=\"enter\";else{let M=h.indexOf(F)<0;if(k!=\"leave\")if(M)U=O.leave,D=\"leave\";else if(U=O.update)D=\"update\";else return;else if(!M)U=O.enter,D=\"enter\";else return}if(U=I(U,y.item,T),U=G.obj(U)?de(U):{to:U},!U.config){let M=d||V.config;U.config=I(M,y.item,T,D)}S+=i;let Z={...V,delay:Jt+S,ref:f,immediate:O.immediate,reset:!1,...U};if(D==\"enter\"&&G.und(Z.from)){let M=r?r():e,Te=G.und(M.initial)||l?M.from:M.initial;Z.from=I(Te,y.item,T)}let{onResolve:Wt}=Z;Z.onResolve=M=>{I(Wt,M);let Te=P.current,B=Te.find(Fe=>Fe.key===F);if(B&&!(M.cancelled&&B.phase!=\"update\")&&B.ctrl.idle){let Fe=Te.every(ee=>ee.ctrl.idle);if(B.phase==\"leave\"){let ee=I(a,B.item);if(ee!==!1){let Ze=ee===!0?0:ee;if(B.expired=!0,!Fe&&Ze>0){Ze<=2147483647&&(B.expirationId=setTimeout(A,Ze));return}}}Fe&&Te.some(ee=>ee.expired)&&(v.current.delete(B),u&&(w.current=!0),A())}};let ft=_e(y.ctrl,Z);D===\"leave\"&&u?v.current.set(y,{phase:D,springs:ft,payload:Z}):_.set(y,{phase:D,springs:ft,payload:Z})});let C=Hn(H),$=Zn(C),L=C!==$&&Ue(C);Je(()=>{L&&j(c,y=>{y.ctrl.start({default:C})})},[C]),j(_,(y,T)=>{if(v.current.size){let F=c.findIndex(k=>k.key===T.key);c.splice(F,1)}}),Je(()=>{j(v.current.size?v.current:_,({phase:y,payload:T},F)=>{let{ctrl:k}=F;F.phase=y,m?.add(k),L&&y==\"enter\"&&k.start({default:C}),T&&(he(k,T.ref),(k.ref||m)&&!w.current?k.update(T):(k.start(T),w.current&&(w.current=!1)))})},o?void 0:n);let N=y=>Oe.createElement(Oe.Fragment,null,c.map((T,F)=>{let{springs:k}=_.get(T)||T.ctrl,O=y({...k},T.item,T,F);return O&&O.type?Oe.createElement(O.type,{...O.props,key:G.str(T.key)||G.num(T.key)?T.key:T.ctrl.id,ref:O.ref}):O}));return m?[N,m]:N}var er=1;function tr(t,{key:e,keys:n=e},r){if(n===null){let o=new Set;return t.map(s=>{let i=r&&r.find(a=>a.item===s&&a.phase!==\"leave\"&&!o.has(a));return i?(o.add(i),i.key):er++})}return G.und(n)?t:G.fun(n)?t.map(n):zt(n)}import{each as nr,onScroll as rr,useIsomorphicLayoutEffect as or}from\"@react-spring/shared\";var hs=({container:t,...e}={})=>{let[n,r]=J(()=>({scrollX:0,scrollY:0,scrollXProgress:0,scrollYProgress:0,...e}),[]);return or(()=>{let o=rr(({x:s,y:i})=>{r.start({scrollX:s.current,scrollXProgress:s.progress,scrollY:i.current,scrollYProgress:i.progress})},{container:t?.current||void 0});return()=>{nr(Object.values(n),s=>s.stop()),o()}},[]),n};import{onResize as sr,each as ir,useIsomorphicLayoutEffect as ar}from\"@react-spring/shared\";var Ps=({container:t,...e})=>{let[n,r]=J(()=>({width:0,height:0,...e}),[]);return ar(()=>{let o=sr(({width:s,height:i})=>{r.start({width:s,height:i,immediate:n.width.get()===0||n.height.get()===0})},{container:t?.current||void 0});return()=>{ir(Object.values(n),s=>s.stop()),o()}},[]),n};import{useRef as ur,useState as pr}from\"react\";import{is as Bt,useIsomorphicLayoutEffect as lr}from\"@react-spring/shared\";var cr={any:0,all:1};function Cs(t,e){let[n,r]=pr(!1),o=ur(),s=Bt.fun(t)&&t,i=s?s():{},{to:a={},from:u={},...p}=i,f=s?e:t,[d,m]=J(()=>({from:u,...p}),[]);return lr(()=>{let b=o.current,{root:c,once:P,amount:l=\"any\",...h}=f??{};if(!b||P&&n||typeof IntersectionObserver>\"u\")return;let g=new WeakMap,x=()=>(a&&m.start(a),r(!0),P?void 0:()=>{u&&m.start(u),r(!1)}),S=V=>{V.forEach(_=>{let v=g.get(_.target);if(_.isIntersecting!==!!v)if(_.isIntersecting){let w=x();Bt.fun(w)?g.set(_.target,w):A.unobserve(_.target)}else v&&(v(),g.delete(_.target))})},A=new IntersectionObserver(S,{root:c&&c.current||void 0,threshold:typeof l==\"number\"||Array.isArray(l)?l:cr[l],...h});return A.observe(b),()=>A.unobserve(b)},[f]),s?[o,d]:[o,n]}function qs({children:t,...e}){return t(J(e))}import{is as fr}from\"@react-spring/shared\";function Bs({items:t,children:e,...n}){let r=Qt(t.length,n);return t.map((o,s)=>{let i=e(o,s);return fr.fun(i)?i(r[s]):i})}function Ys({items:t,children:e,...n}){return Gt(t,n)(e)}import{deprecateInterpolate as Cr}from\"@react-spring/shared\";import{is as dr,raf as mr,each as $e,isEqual as hr,toArray as We,frameLoop as gr,getFluidValue as Kt,createInterpolator as yr,Globals as Sr,callFluidObservers as Pr,addFluidObserver as Tr,removeFluidObserver as xr,hasFluidValue as Xt}from\"@react-spring/shared\";import{getAnimated as br,setAnimated as Ar,getAnimatedType as Rr,getPayload as Ht}from\"@react-spring/animated\";var W=class extends X{constructor(n,r){super();this.source=n;this.calc=yr(...r);let o=this._get(),s=Rr(o);Ar(this,s.create(o))}key;idle=!0;calc;_active=new Set;advance(n){let r=this._get(),o=this.get();hr(r,o)||(br(this).setValue(r),this._onChange(r,this.idle)),!this.idle&&Yt(this._active)&&ct(this)}_get(){let n=dr.arr(this.source)?this.source.map(Kt):We(Kt(this.source));return this.calc(...n)}_start(){this.idle&&!Yt(this._active)&&(this.idle=!1,$e(Ht(this),n=>{n.done=!1}),Sr.skipAnimation?(mr.batchedUpdates(()=>this.advance()),ct(this)):gr.start(this))}_attach(){let n=1;$e(We(this.source),r=>{Xt(r)&&Tr(r,this),Re(r)&&(r.idle||this._active.add(r),n=Math.max(n,r.priority+1))}),this.priority=n,this._start()}_detach(){$e(We(this.source),n=>{Xt(n)&&xr(n,this)}),this._active.clear(),ct(this)}eventObserved(n){n.type==\"change\"?n.idle?this.advance():(this._active.add(n.parent),this._start()):n.type==\"idle\"?this._active.delete(n.parent):n.type==\"priority\"&&(this.priority=We(this.source).reduce((r,o)=>Math.max(r,(Re(o)?o.priority:0)+1),0))}};function vr(t){return t.idle!==!1}function Yt(t){return!t.size||Array.from(t).every(vr)}function ct(t){t.idle||(t.idle=!0,$e(Ht(t),e=>{e.done=!0}),Pr(t,{type:\"idle\",parent:t}))}var ui=(t,...e)=>new W(t,e),pi=(t,...e)=>(Cr(),new W(t,e));import{Globals as Ir,frameLoop as Vr,createStringInterpolator as _r}from\"@react-spring/shared\";Ir.assign({createStringInterpolator:_r,to:(t,e)=>new W(t,e)});var di=Vr.advance;import{createInterpolator as Ui,useIsomorphicLayoutEffect as Ei,useReducedMotion as wi,easings as Li}from\"@react-spring/shared\";export*from\"@react-spring/types\";export{Ae as BailSignal,le as Controller,X as FrameValue,Ir as Globals,W as Interpolation,qs as Spring,H as SpringContext,fe as SpringRef,ue as SpringValue,Bs as Trail,Ys as Transition,mt as config,Ui as createInterpolator,Li as easings,de as inferTo,pi as interpolate,ui as to,di as update,wr as useChain,Cs as useInView,Ei as useIsomorphicLayoutEffect,wi as useReducedMotion,Ps as useResize,hs as useScroll,J as useSpring,Xo as useSpringRef,Wo as useSpringValue,He as useSprings,Qt as useTrail,Gt as useTransition};\n","import{Globals as M}from\"@react-spring/core\";import{unstable_batchedUpdates as N}from\"react-dom\";import{createStringInterpolator as U,colors as D}from\"@react-spring/shared\";import{createHost as H}from\"@react-spring/animated\";var k=/^--/;function I(t,e){return e==null||typeof e==\"boolean\"||e===\"\"?\"\":typeof e==\"number\"&&e!==0&&!k.test(t)&&!(c.hasOwnProperty(t)&&c[t])?e+\"px\":(\"\"+e).trim()}var v={};function V(t,e){if(!t.nodeType||!t.setAttribute)return!1;let r=t.nodeName===\"filter\"||t.parentNode&&t.parentNode.nodeName===\"filter\",{style:i,children:s,scrollTop:u,scrollLeft:l,viewBox:a,...n}=e,d=Object.values(n),m=Object.keys(n).map(o=>r||t.hasAttribute(o)?o:v[o]||(v[o]=o.replace(/([A-Z])/g,p=>\"-\"+p.toLowerCase())));s!==void 0&&(t.textContent=s);for(let o in i)if(i.hasOwnProperty(o)){let p=I(o,i[o]);k.test(o)?t.style.setProperty(o,p):t.style[o]=p}m.forEach((o,p)=>{t.setAttribute(o,d[p])}),u!==void 0&&(t.scrollTop=u),l!==void 0&&(t.scrollLeft=l),a!==void 0&&t.setAttribute(\"viewBox\",a)}var c={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},F=(t,e)=>t+e.charAt(0).toUpperCase()+e.substring(1),L=[\"Webkit\",\"Ms\",\"Moz\",\"O\"];c=Object.keys(c).reduce((t,e)=>(L.forEach(r=>t[F(r,e)]=t[e]),t),c);import{AnimatedObject as S}from\"@react-spring/animated\";import{is as b,each as f,toArray as E,eachProp as P,FluidValue as T,getFluidValue as w,callFluidObservers as j,hasFluidValue as A,addFluidObserver as R,removeFluidObserver as W}from\"@react-spring/shared\";var _=/^(matrix|translate|scale|rotate|skew)/,$=/^(translate)/,G=/^(rotate|skew)/,y=(t,e)=>b.num(t)&&t!==0?t+e:t,h=(t,e)=>b.arr(t)?t.every(r=>h(r,e)):b.num(t)?t===e:parseFloat(t)===e,g=class extends S{constructor({x:e,y:r,z:i,...s}){let u=[],l=[];(e||r||i)&&(u.push([e||0,r||0,i||0]),l.push(a=>[`translate3d(${a.map(n=>y(n,\"px\")).join(\",\")})`,h(a,0)])),P(s,(a,n)=>{if(n===\"transform\")u.push([a||\"\"]),l.push(d=>[d,d===\"\"]);else if(_.test(n)){if(delete s[n],b.und(a))return;let d=$.test(n)?\"px\":G.test(n)?\"deg\":\"\";u.push(E(a)),l.push(n===\"rotate3d\"?([m,o,p,O])=>[`rotate3d(${m},${o},${p},${y(O,d)})`,h(O,0)]:m=>[`${n}(${m.map(o=>y(o,d)).join(\",\")})`,h(m,n.startsWith(\"scale\")?1:0)])}}),u.length&&(s.transform=new x(u,l)),super(s)}},x=class extends T{constructor(r,i){super();this.inputs=r;this.transforms=i}_value=null;get(){return this._value||(this._value=this._get())}_get(){let r=\"\",i=!0;return f(this.inputs,(s,u)=>{let l=w(s[0]),[a,n]=this.transforms[u](b.arr(l)?l:s.map(w));r+=\" \"+a,i=i&&n}),i?\"none\":r}observerAdded(r){r==1&&f(this.inputs,i=>f(i,s=>A(s)&&R(s,this)))}observerRemoved(r){r==0&&f(this.inputs,i=>f(i,s=>A(s)&&W(s,this)))}eventObserved(r){r.type==\"change\"&&(this._value=null),j(this,r)}};var C=[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"];export*from\"@react-spring/core\";M.assign({batchedUpdates:N,createStringInterpolator:U,colors:D});var q=H(C,{applyAnimatedValues:V,createAnimatedStyle:t=>new g(t),getComponentProps:({scrollTop:t,scrollLeft:e,...r})=>r}),it=q.animated;export{it as a,it as animated};\n","var _excluded = [\"from\", \"to\", \"fill\", \"className\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Line(_ref) {\n var _ref$from = _ref.from,\n from = _ref$from === void 0 ? {\n x: 0,\n y: 0\n } : _ref$from,\n _ref$to = _ref.to,\n to = _ref$to === void 0 ? {\n x: 1,\n y: 1\n } : _ref$to,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? 'transparent' : _ref$fill,\n className = _ref.className,\n innerRef = _ref.innerRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var isRectilinear = from.x === to.x || from.y === to.y;\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n ref: innerRef,\n className: cx('visx-line', className),\n x1: from.x,\n y1: from.y,\n x2: to.x,\n y2: to.y,\n fill: fill,\n shapeRendering: isRectilinear ? 'crispEdges' : 'auto'\n }, restProps));\n}","var _excluded = [\"verticalAnchor\", \"scaleToFit\", \"angle\", \"width\", \"lineHeight\", \"capHeight\", \"children\", \"style\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport getStringWidth from '../util/getStringWidth';\nfunction isNumber(val) {\n return typeof val === 'number';\n}\nfunction isXOrYInValid(xOrY) {\n return (\n // number that is not NaN or Infinity\n typeof xOrY === 'number' && Number.isFinite(xOrY) ||\n // for percentage\n typeof xOrY === 'string'\n );\n}\nexport default function useText(props) {\n var _props$verticalAnchor = props.verticalAnchor,\n verticalAnchor = _props$verticalAnchor === void 0 ? 'end' : _props$verticalAnchor,\n _props$scaleToFit = props.scaleToFit,\n scaleToFit = _props$scaleToFit === void 0 ? false : _props$scaleToFit,\n angle = props.angle,\n width = props.width,\n _props$lineHeight = props.lineHeight,\n lineHeight = _props$lineHeight === void 0 ? '1em' : _props$lineHeight,\n _props$capHeight = props.capHeight,\n capHeight = _props$capHeight === void 0 ? '0.71em' : _props$capHeight,\n children = props.children,\n style = props.style,\n textProps = _objectWithoutPropertiesLoose(props, _excluded);\n var _textProps$x = textProps.x,\n x = _textProps$x === void 0 ? 0 : _textProps$x,\n _textProps$y = textProps.y,\n y = _textProps$y === void 0 ? 0 : _textProps$y;\n var isXOrYNotValid = !isXOrYInValid(x) || !isXOrYInValid(y);\n var _useMemo = useMemo(function () {\n var words = children == null ? [] : children.toString().split(/(?:(?!\\u00A0+)\\s+)/);\n return {\n wordsWithWidth: words.map(function (word) {\n return {\n word: word,\n wordWidth: getStringWidth(word, style) || 0\n };\n }),\n spaceWidth: getStringWidth(\"\\xA0\", style) || 0\n };\n }, [children, style]),\n wordsWithWidth = _useMemo.wordsWithWidth,\n spaceWidth = _useMemo.spaceWidth;\n var wordsByLines = useMemo(function () {\n if (isXOrYNotValid) {\n return [];\n }\n\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if (width || scaleToFit) {\n return wordsWithWidth.reduce(function (result, _ref) {\n var word = _ref.word,\n wordWidth = _ref.wordWidth;\n var currentLine = result[result.length - 1];\n if (currentLine && (width == null || scaleToFit || (currentLine.width || 0) + wordWidth + spaceWidth < width)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width = currentLine.width || 0;\n currentLine.width += wordWidth + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: wordWidth\n };\n result.push(newLine);\n }\n return result;\n }, []);\n }\n return [{\n words: children == null ? [] : children.toString().split(/(?:(?!\\u00A0+)\\s+)/)\n }];\n }, [isXOrYNotValid, width, scaleToFit, children, wordsWithWidth, spaceWidth]);\n var startDy = useMemo(function () {\n var startDyStr = isXOrYNotValid ? '' : verticalAnchor === 'start' ? reduceCSSCalc(\"calc(\" + capHeight + \")\") : verticalAnchor === 'middle' ? reduceCSSCalc(\"calc(\" + (wordsByLines.length - 1) / 2 + \" * -\" + lineHeight + \" + (\" + capHeight + \" / 2))\") : reduceCSSCalc(\"calc(\" + (wordsByLines.length - 1) + \" * -\" + lineHeight + \")\");\n return startDyStr;\n }, [isXOrYNotValid, verticalAnchor, capHeight, wordsByLines.length, lineHeight]);\n var transform = useMemo(function () {\n var transforms = [];\n if (isXOrYNotValid) {\n return '';\n }\n if (isNumber(x) && isNumber(y) && isNumber(width) && scaleToFit && wordsByLines.length > 0) {\n var lineWidth = wordsByLines[0].width || 1;\n var sx = scaleToFit === 'shrink-only' ? Math.min(width / lineWidth, 1) : width / lineWidth;\n var sy = sx;\n var originX = x - sx * x;\n var originY = y - sy * y;\n transforms.push(\"matrix(\" + sx + \", 0, 0, \" + sy + \", \" + originX + \", \" + originY + \")\");\n }\n if (angle) {\n transforms.push(\"rotate(\" + angle + \", \" + x + \", \" + y + \")\");\n }\n return transforms.length > 0 ? transforms.join(' ') : '';\n }, [isXOrYNotValid, x, y, width, scaleToFit, wordsByLines, angle]);\n return {\n wordsByLines: wordsByLines,\n startDy: startDy,\n transform: transform\n };\n}","var _excluded = [\"dx\", \"dy\", \"textAnchor\", \"innerRef\", \"innerTextRef\", \"verticalAnchor\", \"angle\", \"lineHeight\", \"scaleToFit\", \"capHeight\", \"width\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport useText from './hooks/useText';\nvar SVG_STYLE = {\n overflow: 'visible'\n};\nexport default function Text(props) {\n var _props$dx = props.dx,\n dx = _props$dx === void 0 ? 0 : _props$dx,\n _props$dy = props.dy,\n dy = _props$dy === void 0 ? 0 : _props$dy,\n _props$textAnchor = props.textAnchor,\n textAnchor = _props$textAnchor === void 0 ? 'start' : _props$textAnchor,\n innerRef = props.innerRef,\n innerTextRef = props.innerTextRef,\n verticalAnchor = props.verticalAnchor,\n angle = props.angle,\n _props$lineHeight = props.lineHeight,\n lineHeight = _props$lineHeight === void 0 ? '1em' : _props$lineHeight,\n _props$scaleToFit = props.scaleToFit,\n scaleToFit = _props$scaleToFit === void 0 ? false : _props$scaleToFit,\n capHeight = props.capHeight,\n width = props.width,\n textProps = _objectWithoutPropertiesLoose(props, _excluded);\n var _textProps$x = textProps.x,\n x = _textProps$x === void 0 ? 0 : _textProps$x,\n fontSize = textProps.fontSize;\n var _useText = useText(props),\n wordsByLines = _useText.wordsByLines,\n startDy = _useText.startDy,\n transform = _useText.transform;\n return /*#__PURE__*/React.createElement(\"svg\", {\n ref: innerRef,\n x: dx,\n y: dy,\n fontSize: fontSize,\n style: SVG_STYLE\n }, wordsByLines.length > 0 ? /*#__PURE__*/React.createElement(\"text\", _extends({\n ref: innerTextRef,\n transform: transform\n }, textProps, {\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return /*#__PURE__*/React.createElement(\"tspan\", {\n key: index,\n x: x,\n dy: index === 0 ? startDy : lineHeight\n }, line.words.join(' '));\n })) : null);\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport cx from 'classnames';\nimport { Line } from '@visx/shape';\nimport { Group } from '@visx/group';\nimport { Text } from '@visx/text';\nimport Orientation from '../constants/orientation';\nexport default function Ticks(_ref) {\n var hideTicks = _ref.hideTicks,\n horizontal = _ref.horizontal,\n orientation = _ref.orientation,\n tickClassName = _ref.tickClassName,\n tickComponent = _ref.tickComponent,\n allTickLabelProps = _ref.tickLabelProps,\n _ref$tickStroke = _ref.tickStroke,\n tickStroke = _ref$tickStroke === void 0 ? '#222' : _ref$tickStroke,\n tickTransform = _ref.tickTransform,\n ticks = _ref.ticks,\n strokeWidth = _ref.strokeWidth,\n tickLineProps = _ref.tickLineProps;\n return ticks.map(function (_ref2) {\n var _allTickLabelProps$in;\n var value = _ref2.value,\n index = _ref2.index,\n from = _ref2.from,\n to = _ref2.to,\n formattedValue = _ref2.formattedValue;\n var tickLabelProps = (_allTickLabelProps$in = allTickLabelProps[index]) != null ? _allTickLabelProps$in : {};\n var tickLabelFontSize = Math.max(10, typeof tickLabelProps.fontSize === 'number' && tickLabelProps.fontSize || 0);\n var tickYCoord = to.y + (horizontal && orientation !== Orientation.top ? tickLabelFontSize : 0);\n return /*#__PURE__*/React.createElement(Group, {\n key: \"visx-tick-\" + value + \"-\" + index,\n className: cx('visx-axis-tick', tickClassName),\n transform: tickTransform\n }, !hideTicks && /*#__PURE__*/React.createElement(Line, _extends({\n from: from,\n to: to,\n stroke: tickStroke,\n strokeWidth: strokeWidth,\n strokeLinecap: \"square\"\n }, tickLineProps)), tickComponent ? tickComponent(_extends({}, tickLabelProps, {\n x: to.x,\n y: tickYCoord,\n formattedValue: formattedValue\n })) : /*#__PURE__*/React.createElement(Text, _extends({\n x: to.x,\n y: tickYCoord\n }, tickLabelProps), formattedValue));\n });\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport cx from 'classnames';\nimport { Line } from '@visx/shape';\nimport { Text } from '@visx/text';\nimport getLabelTransform from '../utils/getLabelTransform';\nimport Orientation from '../constants/orientation';\nimport Ticks from './Ticks';\nvar defaultTextProps = {\n textAnchor: 'middle',\n fontFamily: 'Arial',\n fontSize: 10,\n fill: '#222'\n};\nexport default function AxisRenderer(_ref) {\n var axisFromPoint = _ref.axisFromPoint,\n axisLineClassName = _ref.axisLineClassName,\n axisToPoint = _ref.axisToPoint,\n hideAxisLine = _ref.hideAxisLine,\n hideTicks = _ref.hideTicks,\n horizontal = _ref.horizontal,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? '' : _ref$label,\n labelClassName = _ref.labelClassName,\n _ref$labelOffset = _ref.labelOffset,\n labelOffset = _ref$labelOffset === void 0 ? 14 : _ref$labelOffset,\n labelProps = _ref.labelProps,\n _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? Orientation.bottom : _ref$orientation,\n scale = _ref.scale,\n _ref$stroke = _ref.stroke,\n stroke = _ref$stroke === void 0 ? '#222' : _ref$stroke,\n strokeDasharray = _ref.strokeDasharray,\n _ref$strokeWidth = _ref.strokeWidth,\n strokeWidth = _ref$strokeWidth === void 0 ? 1 : _ref$strokeWidth,\n tickClassName = _ref.tickClassName,\n tickComponent = _ref.tickComponent,\n tickLineProps = _ref.tickLineProps,\n tickLabelProps = _ref.tickLabelProps,\n _ref$tickLength = _ref.tickLength,\n tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n _ref$tickStroke = _ref.tickStroke,\n tickStroke = _ref$tickStroke === void 0 ? '#222' : _ref$tickStroke,\n tickTransform = _ref.tickTransform,\n ticks = _ref.ticks,\n _ref$ticksComponent = _ref.ticksComponent,\n ticksComponent = _ref$ticksComponent === void 0 ? Ticks : _ref$ticksComponent;\n var combinedLabelProps = _extends({}, defaultTextProps, labelProps);\n var tickLabelPropsDefault = _extends({}, defaultTextProps, typeof tickLabelProps === 'object' ? tickLabelProps : null);\n // compute the max tick label size to compute label offset\n var allTickLabelProps = ticks.map(function (_ref2) {\n var value = _ref2.value,\n index = _ref2.index;\n return typeof tickLabelProps === 'function' ? tickLabelProps(value, index, ticks) : tickLabelPropsDefault;\n });\n var maxTickLabelFontSize = Math.max.apply(Math, [10].concat(allTickLabelProps.map(function (props) {\n return typeof props.fontSize === 'number' ? props.fontSize : 0;\n })));\n return /*#__PURE__*/React.createElement(React.Fragment, null, ticksComponent({\n hideTicks: hideTicks,\n horizontal: horizontal,\n orientation: orientation,\n scale: scale,\n tickClassName: tickClassName,\n tickComponent: tickComponent,\n tickLabelProps: allTickLabelProps,\n tickStroke: tickStroke,\n tickTransform: tickTransform,\n ticks: ticks,\n strokeWidth: strokeWidth,\n tickLineProps: tickLineProps\n }), !hideAxisLine && /*#__PURE__*/React.createElement(Line, {\n className: cx('visx-axis-line', axisLineClassName),\n from: axisFromPoint,\n to: axisToPoint,\n stroke: stroke,\n strokeWidth: strokeWidth,\n strokeDasharray: strokeDasharray\n }), label && /*#__PURE__*/React.createElement(Text, _extends({\n className: cx('visx-axis-label', labelClassName)\n }, getLabelTransform({\n labelOffset: labelOffset,\n labelProps: combinedLabelProps,\n orientation: orientation,\n range: scale.range(),\n tickLabelFontSize: maxTickLabelFontSize,\n tickLength: tickLength\n }), combinedLabelProps), label));\n}","import Orientation from '../constants/orientation';\nexport default function getLabelTransform(_ref) {\n var labelOffset = _ref.labelOffset,\n labelProps = _ref.labelProps,\n orientation = _ref.orientation,\n range = _ref.range,\n tickLabelFontSize = _ref.tickLabelFontSize,\n tickLength = _ref.tickLength;\n var sign = orientation === Orientation.left || orientation === Orientation.top ? -1 : 1;\n var x;\n var y;\n var transform;\n if (orientation === Orientation.top || orientation === Orientation.bottom) {\n var yBottomOffset = orientation === Orientation.bottom && typeof labelProps.fontSize === 'number' ? labelProps.fontSize : 0;\n x = (Number(range[0]) + Number(range[range.length - 1])) / 2;\n y = sign * (tickLength + labelOffset + tickLabelFontSize + yBottomOffset);\n } else {\n x = sign * ((Number(range[0]) + Number(range[range.length - 1])) / 2);\n y = -(tickLength + labelOffset);\n transform = \"rotate(\" + sign * 90 + \")\";\n }\n return {\n x: x,\n y: y,\n transform: transform\n };\n}","export default function toString(x) {\n return x == null ? void 0 : x.toString();\n}","import { Point } from '@visx/point';\nexport default function createPoint(_ref, horizontal) {\n var x = _ref.x,\n y = _ref.y;\n return new Point(horizontal ? {\n x: x,\n y: y\n } : {\n x: y,\n y: x\n });\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nexport var defaultAxisRangePadding = 0;\nexport default function getAxisRangePaddingConfig(originalRangePadding) {\n if (originalRangePadding === void 0) {\n originalRangePadding = defaultAxisRangePadding;\n }\n return typeof originalRangePadding === 'number' ? {\n start: originalRangePadding,\n end: originalRangePadding\n } : _extends({\n start: defaultAxisRangePadding,\n end: defaultAxisRangePadding\n }, originalRangePadding);\n}","import _pt from \"prop-types\";\nvar _excluded = [\"children\", \"axisClassName\", \"hideAxisLine\", \"hideTicks\", \"hideZero\", \"innerRef\", \"left\", \"numTicks\", \"orientation\", \"rangePadding\", \"scale\", \"tickFormat\", \"tickLength\", \"tickValues\", \"top\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport { Group } from '@visx/group';\nimport { getTicks, coerceNumber } from '@visx/scale';\nimport AxisRenderer from './AxisRenderer';\nimport getTickPosition from '../utils/getTickPosition';\nimport getTickFormatter from '../utils/getTickFormatter';\nimport createPoint from '../utils/createPoint';\nimport Orientation from '../constants/orientation';\nimport getAxisRangePaddingConfig from '../utils/getAxisRangePaddingConfig';\nexport default function Axis(_ref) {\n var _ref$children = _ref.children,\n children = _ref$children === void 0 ? AxisRenderer : _ref$children,\n axisClassName = _ref.axisClassName,\n _ref$hideAxisLine = _ref.hideAxisLine,\n hideAxisLine = _ref$hideAxisLine === void 0 ? false : _ref$hideAxisLine,\n _ref$hideTicks = _ref.hideTicks,\n hideTicks = _ref$hideTicks === void 0 ? false : _ref$hideTicks,\n _ref$hideZero = _ref.hideZero,\n hideZero = _ref$hideZero === void 0 ? false : _ref$hideZero,\n innerRef = _ref.innerRef,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$numTicks = _ref.numTicks,\n numTicks = _ref$numTicks === void 0 ? 10 : _ref$numTicks,\n _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? Orientation.bottom : _ref$orientation,\n _ref$rangePadding = _ref.rangePadding,\n rangePadding = _ref$rangePadding === void 0 ? 0 : _ref$rangePadding,\n scale = _ref.scale,\n tickFormat = _ref.tickFormat,\n _ref$tickLength = _ref.tickLength,\n tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n tickValues = _ref.tickValues,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var format = tickFormat != null ? tickFormat : getTickFormatter(scale);\n var isLeft = orientation === Orientation.left;\n var isTop = orientation === Orientation.top;\n var horizontal = isTop || orientation === Orientation.bottom;\n var tickPosition = getTickPosition(scale);\n var tickSign = isLeft || isTop ? -1 : 1;\n var range = scale.range();\n var rangePaddingConfig = getAxisRangePaddingConfig(rangePadding);\n var axisFromPoint = createPoint({\n x: Number(range[0]) + 0.5 - rangePaddingConfig.start,\n y: 0\n }, horizontal);\n var axisToPoint = createPoint({\n x: Number(range[range.length - 1]) + 0.5 + rangePaddingConfig.end,\n y: 0\n }, horizontal);\n var filteredTickValues = (tickValues != null ? tickValues : getTicks(scale, numTicks)).filter(function (value) {\n return !hideZero || value !== 0 && value !== '0';\n }).map(function (value, index) {\n return {\n value: value,\n index: index\n };\n });\n var ticks = filteredTickValues.map(function (_ref2) {\n var value = _ref2.value,\n index = _ref2.index;\n var scaledValue = coerceNumber(tickPosition(value));\n return {\n value: value,\n index: index,\n from: createPoint({\n x: scaledValue,\n y: 0\n }, horizontal),\n to: createPoint({\n x: scaledValue,\n y: tickLength * tickSign\n }, horizontal),\n formattedValue: format(value, index, filteredTickValues)\n };\n });\n return /*#__PURE__*/React.createElement(Group, {\n className: cx('visx-axis', axisClassName),\n innerRef: innerRef,\n top: top,\n left: left\n }, children(_extends({}, restProps, {\n axisFromPoint: axisFromPoint,\n axisToPoint: axisToPoint,\n hideAxisLine: hideAxisLine,\n hideTicks: hideTicks,\n hideZero: hideZero,\n horizontal: horizontal,\n numTicks: numTicks,\n orientation: orientation,\n rangePadding: rangePadding,\n scale: scale,\n tickFormat: format,\n tickLength: tickLength,\n tickPosition: tickPosition,\n tickSign: tickSign,\n ticks: ticks\n })));\n}","import { toString } from '@visx/scale';\n/**\n * Returns a tick position for the given tick value\n */\nexport default function getTickFormatter(scale) {\n // Broaden type before using 'xxx' in s as typeguard.\n var s = scale;\n\n // For point or band scales,\n // have to add offset to make the tick centered.\n if ('tickFormat' in s) {\n return s.tickFormat();\n }\n return toString;\n}","/**\n * Create a function that returns a tick position for the given tick value\n */\nexport default function getTickPosition(scale, align) {\n if (align === void 0) {\n align = 'center';\n }\n // Broaden type before using 'xxx' in s as typeguard.\n var s = scale;\n\n // For point or band scales,\n // have to add offset to make the tick at center or end.\n if (align !== 'start' && 'bandwidth' in s) {\n var offset = s.bandwidth();\n if (align === 'center') offset /= 2;\n if (s.round()) offset = Math.round(offset);\n return function (d) {\n var scaledValue = s(d);\n return typeof scaledValue === 'number' ? scaledValue + offset : scaledValue;\n };\n }\n return scale;\n}","var _excluded = [\"axisClassName\", \"labelOffset\", \"tickLength\", \"tickLabelProps\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport Axis from './Axis';\nimport Orientation from '../constants/orientation';\nexport var bottomTickLabelProps = {\n dy: '0.25em',\n fill: '#222',\n fontFamily: 'Arial',\n fontSize: 10,\n textAnchor: 'middle'\n};\nexport default function AxisBottom(_ref) {\n var axisClassName = _ref.axisClassName,\n _ref$labelOffset = _ref.labelOffset,\n labelOffset = _ref$labelOffset === void 0 ? 8 : _ref$labelOffset,\n _ref$tickLength = _ref.tickLength,\n tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n tickLabelProps = _ref.tickLabelProps,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var tickLabelPropsFinal = typeof tickLabelProps === 'function' ? tickLabelProps : _extends({}, bottomTickLabelProps, tickLabelProps);\n return /*#__PURE__*/React.createElement(Axis, _extends({\n axisClassName: cx('visx-axis-bottom', axisClassName),\n labelOffset: labelOffset,\n orientation: Orientation.bottom,\n tickLabelProps: tickLabelPropsFinal,\n tickLength: tickLength\n }, restProps));\n}","var _excluded = [\"axisClassName\", \"labelOffset\", \"tickLength\", \"tickLabelProps\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport Axis from './Axis';\nimport Orientation from '../constants/orientation';\nexport var leftTickLabelProps = {\n dx: '-0.25em',\n dy: '0.25em',\n fill: '#222',\n fontFamily: 'Arial',\n fontSize: 10,\n textAnchor: 'end'\n};\nexport default function AxisLeft(_ref) {\n var axisClassName = _ref.axisClassName,\n _ref$labelOffset = _ref.labelOffset,\n labelOffset = _ref$labelOffset === void 0 ? 36 : _ref$labelOffset,\n _ref$tickLength = _ref.tickLength,\n tickLength = _ref$tickLength === void 0 ? 8 : _ref$tickLength,\n tickLabelProps = _ref.tickLabelProps,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var tickLabelPropsFinal = typeof tickLabelProps === 'function' ? tickLabelProps : _extends({}, leftTickLabelProps, tickLabelProps);\n return /*#__PURE__*/React.createElement(Axis, _extends({\n axisClassName: cx('visx-axis-left', axisClassName),\n labelOffset: labelOffset,\n orientation: Orientation.left,\n tickLabelProps: tickLabelPropsFinal,\n tickLength: tickLength\n }, restProps));\n}","var Orientation = {\n top: 'top',\n left: 'left',\n right: 'right',\n bottom: 'bottom'\n};\nexport default Orientation;","import _pt from \"prop-types\";\nvar _excluded = [\"children\", \"id\", \"from\", \"to\", \"x1\", \"y1\", \"x2\", \"y2\", \"fromOffset\", \"fromOpacity\", \"toOffset\", \"toOpacity\", \"rotate\", \"transform\", \"vertical\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nexport default function LinearGradient(_ref) {\n var children = _ref.children,\n id = _ref.id,\n from = _ref.from,\n to = _ref.to,\n _x1 = _ref.x1,\n _y1 = _ref.y1,\n _x2 = _ref.x2,\n _y2 = _ref.y2,\n _ref$fromOffset = _ref.fromOffset,\n fromOffset = _ref$fromOffset === void 0 ? '0%' : _ref$fromOffset,\n _ref$fromOpacity = _ref.fromOpacity,\n fromOpacity = _ref$fromOpacity === void 0 ? 1 : _ref$fromOpacity,\n _ref$toOffset = _ref.toOffset,\n toOffset = _ref$toOffset === void 0 ? '100%' : _ref$toOffset,\n _ref$toOpacity = _ref.toOpacity,\n toOpacity = _ref$toOpacity === void 0 ? 1 : _ref$toOpacity,\n rotate = _ref.rotate,\n transform = _ref.transform,\n _ref$vertical = _ref.vertical,\n vertical = _ref$vertical === void 0 ? true : _ref$vertical,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var x1 = _x1;\n var x2 = _x2;\n var y1 = _y1;\n var y2 = _y2;\n if (vertical && !x1 && !x2 && !y1 && !y2) {\n x1 = '0';\n x2 = '0';\n y1 = '0';\n y2 = '1';\n }\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", _extends({\n id: id,\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n gradientTransform: rotate ? \"rotate(\" + rotate + \")\" : transform\n }, restProps), !!children && children, !children && /*#__PURE__*/React.createElement(\"stop\", {\n offset: fromOffset,\n stopColor: from,\n stopOpacity: fromOpacity\n }), !children && /*#__PURE__*/React.createElement(\"stop\", {\n offset: toOffset,\n stopColor: to,\n stopOpacity: toOpacity\n })));\n}\nLinearGradient.propTypes = {\n id: _pt.string.isRequired,\n from: _pt.string,\n to: _pt.string,\n x1: _pt.oneOfType([_pt.string, _pt.number]),\n x2: _pt.oneOfType([_pt.string, _pt.number]),\n y1: _pt.oneOfType([_pt.string, _pt.number]),\n y2: _pt.oneOfType([_pt.string, _pt.number]),\n fromOffset: _pt.oneOfType([_pt.string, _pt.number]),\n fromOpacity: _pt.oneOfType([_pt.string, _pt.number]),\n toOffset: _pt.oneOfType([_pt.string, _pt.number]),\n toOpacity: _pt.oneOfType([_pt.string, _pt.number]),\n rotate: _pt.oneOfType([_pt.string, _pt.number]),\n transform: _pt.string,\n children: _pt.node,\n vertical: _pt.bool\n};","import _pt from \"prop-types\";\nvar _excluded = [\"top\", \"left\", \"scale\", \"width\", \"stroke\", \"strokeWidth\", \"strokeDasharray\", \"className\", \"children\", \"numTicks\", \"lineStyle\", \"offset\", \"tickValues\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport Line from '@visx/shape/lib/shapes/Line';\nimport { Group } from '@visx/group';\nimport { Point } from '@visx/point';\nimport { getTicks, coerceNumber } from '@visx/scale';\nimport getScaleBandwidth from '../utils/getScaleBandwidth';\nexport default function GridRows(_ref) {\n var _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n scale = _ref.scale,\n width = _ref.width,\n _ref$stroke = _ref.stroke,\n stroke = _ref$stroke === void 0 ? '#eaf0f6' : _ref$stroke,\n _ref$strokeWidth = _ref.strokeWidth,\n strokeWidth = _ref$strokeWidth === void 0 ? 1 : _ref$strokeWidth,\n strokeDasharray = _ref.strokeDasharray,\n className = _ref.className,\n children = _ref.children,\n _ref$numTicks = _ref.numTicks,\n numTicks = _ref$numTicks === void 0 ? 10 : _ref$numTicks,\n lineStyle = _ref.lineStyle,\n offset = _ref.offset,\n tickValues = _ref.tickValues,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var ticks = tickValues != null ? tickValues : getTicks(scale, numTicks);\n var scaleOffset = (offset != null ? offset : 0) + getScaleBandwidth(scale) / 2;\n var tickLines = ticks.map(function (d, index) {\n var _coerceNumber;\n var y = ((_coerceNumber = coerceNumber(scale(d))) != null ? _coerceNumber : 0) + scaleOffset;\n return {\n index: index,\n from: new Point({\n x: 0,\n y: y\n }),\n to: new Point({\n x: width,\n y: y\n })\n };\n });\n return /*#__PURE__*/React.createElement(Group, {\n className: cx('visx-rows', className),\n top: top,\n left: left\n }, children ? children({\n lines: tickLines\n }) : tickLines.map(function (_ref2) {\n var from = _ref2.from,\n to = _ref2.to,\n index = _ref2.index;\n return /*#__PURE__*/React.createElement(Line, _extends({\n key: \"row-line-\" + index,\n from: from,\n to: to,\n stroke: stroke,\n strokeWidth: strokeWidth,\n strokeDasharray: strokeDasharray,\n style: lineStyle\n }, restProps));\n }));\n}\nGridRows.propTypes = {\n tickValues: _pt.array,\n width: _pt.number.isRequired\n};","export default function getScaleBandwidth(scale) {\n return 'bandwidth' in scale ? scale.bandwidth() : 0;\n}","import _pt from \"prop-types\";\nvar _excluded = [\"top\", \"left\", \"transform\", \"className\", \"children\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Group(_ref) {\n var _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n transform = _ref.transform,\n className = _ref.className,\n children = _ref.children,\n innerRef = _ref.innerRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n ref: innerRef,\n className: cx('visx-group', className),\n transform: transform || \"translate(\" + left + \", \" + top + \")\"\n }, restProps), children);\n}\nGroup.propTypes = {\n top: _pt.number,\n left: _pt.number,\n transform: _pt.string,\n className: _pt.string,\n children: _pt.node,\n innerRef: _pt.oneOfType([_pt.string, _pt.func, _pt.object])\n};","import _pt from \"prop-types\";\nvar _excluded = [\"flexDirection\", \"alignItems\", \"margin\", \"display\", \"children\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nexport default function LegendItem(_ref) {\n var _ref$flexDirection = _ref.flexDirection,\n flexDirection = _ref$flexDirection === void 0 ? 'row' : _ref$flexDirection,\n _ref$alignItems = _ref.alignItems,\n alignItems = _ref$alignItems === void 0 ? 'center' : _ref$alignItems,\n _ref$margin = _ref.margin,\n margin = _ref$margin === void 0 ? '0' : _ref$margin,\n _ref$display = _ref.display,\n display = _ref$display === void 0 ? 'flex' : _ref$display,\n children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"visx-legend-item\",\n style: {\n display: display,\n alignItems: alignItems,\n flexDirection: flexDirection,\n margin: margin\n }\n }, restProps), children);\n}\nLegendItem.propTypes = {\n alignItems: _pt.string,\n margin: _pt.oneOfType([_pt.string, _pt.number]),\n children: _pt.node,\n display: _pt.string\n};","import _pt from \"prop-types\";\nvar _excluded = [\"flex\", \"label\", \"margin\", \"align\", \"children\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nexport default function LegendLabel(_ref) {\n var _ref$flex = _ref.flex,\n flex = _ref$flex === void 0 ? '1' : _ref$flex,\n label = _ref.label,\n _ref$margin = _ref.margin,\n margin = _ref$margin === void 0 ? '5px 0' : _ref$margin,\n _ref$align = _ref.align,\n align = _ref$align === void 0 ? 'left' : _ref$align,\n children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: \"visx-legend-label\",\n style: {\n justifyContent: align,\n display: 'flex',\n flex: flex,\n margin: margin\n }\n }, restProps), children || label);\n}\nLegendLabel.propTypes = {\n align: _pt.string,\n label: _pt.node,\n flex: _pt.oneOfType([_pt.string, _pt.number]),\n margin: _pt.oneOfType([_pt.string, _pt.number]),\n children: _pt.node\n};","import _pt from \"prop-types\";\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nexport default function ShapeRect(_ref) {\n var fill = _ref.fill,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style;\n return /*#__PURE__*/React.createElement(\"div\", {\n style: _extends({\n width: width,\n height: height,\n background: fill\n }, style)\n });\n}\nShapeRect.propTypes = {\n fill: _pt.string,\n width: _pt.oneOfType([_pt.string, _pt.number]),\n height: _pt.oneOfType([_pt.string, _pt.number])\n};","import _pt from \"prop-types\";\nimport React from 'react';\nimport { Group } from '@visx/group';\nexport default function ShapeCircle(_ref) {\n var fill = _ref.fill,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style;\n var cleanWidth = typeof width === 'string' || typeof width === 'undefined' ? 0 : width;\n var cleanHeight = typeof height === 'string' || typeof height === 'undefined' ? 0 : height;\n var size = Math.max(cleanWidth, cleanHeight);\n var radius = size / 2;\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: size,\n height: size\n }, /*#__PURE__*/React.createElement(Group, {\n top: radius,\n left: radius\n }, /*#__PURE__*/React.createElement(\"circle\", {\n r: radius,\n fill: fill,\n style: style\n })));\n}\nShapeCircle.propTypes = {\n fill: _pt.string,\n width: _pt.oneOfType([_pt.string, _pt.number]),\n height: _pt.oneOfType([_pt.string, _pt.number])\n};","import _pt from \"prop-types\";\nimport React from 'react';\nimport { Group } from '@visx/group';\nexport default function ShapeLine(_ref) {\n var fill = _ref.fill,\n width = _ref.width,\n height = _ref.height,\n style = _ref.style;\n var cleanHeight = typeof height === 'string' || typeof height === 'undefined' ? 0 : height;\n var lineThickness = typeof (style == null ? void 0 : style.strokeWidth) === 'number' ? style == null ? void 0 : style.strokeWidth : 2;\n return /*#__PURE__*/React.createElement(\"svg\", {\n width: width,\n height: height\n }, /*#__PURE__*/React.createElement(Group, {\n top: cleanHeight / 2 - lineThickness / 2\n }, /*#__PURE__*/React.createElement(\"line\", {\n x1: 0,\n x2: width,\n y1: 0,\n y2: 0,\n stroke: fill,\n strokeWidth: lineThickness,\n style: style\n })));\n}\nShapeLine.propTypes = {\n fill: _pt.string,\n width: _pt.oneOfType([_pt.string, _pt.number]),\n height: _pt.oneOfType([_pt.string, _pt.number])\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport RectShape from '../shapes/Rect';\nimport CircleShape from '../shapes/Circle';\nimport LineShape from '../shapes/Line';\nvar NO_OP = function NO_OP() {\n return undefined;\n};\nexport default function renderShape(_ref) {\n var _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? 'rect' : _ref$shape,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? NO_OP : _ref$fill,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? NO_OP : _ref$size,\n width = _ref.width,\n height = _ref.height,\n label = _ref.label,\n item = _ref.item,\n itemIndex = _ref.itemIndex,\n _ref$shapeStyle = _ref.shapeStyle,\n shapeStyle = _ref$shapeStyle === void 0 ? NO_OP : _ref$shapeStyle;\n var props = {\n width: width,\n height: height,\n item: item,\n itemIndex: itemIndex,\n label: label,\n fill: fill(_extends({}, label)),\n size: size(_extends({}, label)),\n style: shapeStyle(_extends({}, label))\n };\n if (typeof shape === 'string') {\n if (shape === 'circle') {\n return /*#__PURE__*/React.createElement(CircleShape, props);\n }\n if (shape === 'line') {\n return /*#__PURE__*/React.createElement(LineShape, props);\n }\n return /*#__PURE__*/React.createElement(RectShape, props);\n }\n if ( /*#__PURE__*/React.isValidElement(shape)) {\n return /*#__PURE__*/React.cloneElement(shape, props);\n }\n if (shape) {\n return /*#__PURE__*/React.createElement(shape, props);\n }\n return null;\n}","import _pt from \"prop-types\";\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from 'react';\nimport ShapeRect from '../../shapes/Rect';\nimport renderShape from '../../util/renderShape';\nexport default function LegendShape(_ref) {\n var _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? ShapeRect : _ref$shape,\n width = _ref.width,\n height = _ref.height,\n margin = _ref.margin,\n label = _ref.label,\n item = _ref.item,\n itemIndex = _ref.itemIndex,\n fill = _ref.fill,\n size = _ref.size,\n shapeStyle = _ref.shapeStyle;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"visx-legend-shape\",\n style: {\n display: 'flex',\n width: size ? size(_extends({}, label)) : width,\n height: size ? size(_extends({}, label)) : height,\n margin: margin\n }\n }, renderShape({\n shape: shape,\n item: item,\n itemIndex: itemIndex,\n label: label,\n width: width,\n height: height,\n fill: fill,\n shapeStyle: shapeStyle\n }));\n}\nLegendShape.propTypes = {\n itemIndex: _pt.number.isRequired,\n margin: _pt.oneOfType([_pt.string, _pt.number]),\n width: _pt.oneOfType([_pt.string, _pt.number]),\n height: _pt.oneOfType([_pt.string, _pt.number])\n};","/** Returns an object's value if defined, or the object. */\nexport default function valueOrIdentity(_) {\n if (_ && typeof _ === 'object' && 'value' in _ && typeof _.value !== 'undefined') return _.value;\n return _;\n}\n\n/** Returns an object's value if defined, or the object, coerced to a string. */\nexport function valueOrIdentityString(_) {\n return String(valueOrIdentity(_));\n}","/** Returns a function which takes a Datum and index as input, and returns a formatted label object. */\nexport default function labelTransformFactory(_ref) {\n var scale = _ref.scale,\n labelFormat = _ref.labelFormat;\n return function (d, i) {\n return {\n datum: d,\n index: i,\n text: \"\" + labelFormat(d, i),\n value: scale(d)\n };\n };\n}","import _pt from \"prop-types\";\nvar _excluded = [\"className\", \"style\", \"scale\", \"shape\", \"domain\", \"fill\", \"size\", \"labelFormat\", \"labelTransform\", \"shapeWidth\", \"shapeHeight\", \"shapeMargin\", \"shapeStyle\", \"labelAlign\", \"labelFlex\", \"labelMargin\", \"itemMargin\", \"direction\", \"itemDirection\", \"legendLabelProps\", \"children\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport LegendItem from './LegendItem';\nimport LegendLabel from './LegendLabel';\nimport LegendShape from './LegendShape';\nimport valueOrIdentity, { valueOrIdentityString } from '../../util/valueOrIdentity';\nimport labelTransformFactory from '../../util/labelTransformFactory';\nvar defaultStyle = {\n display: 'flex'\n};\nexport default function Legend(_ref) {\n var className = _ref.className,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? defaultStyle : _ref$style,\n scale = _ref.scale,\n shape = _ref.shape,\n inputDomain = _ref.domain,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? valueOrIdentityString : _ref$fill,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? valueOrIdentityString : _ref$size,\n _ref$labelFormat = _ref.labelFormat,\n labelFormat = _ref$labelFormat === void 0 ? valueOrIdentity : _ref$labelFormat,\n _ref$labelTransform = _ref.labelTransform,\n labelTransform = _ref$labelTransform === void 0 ? labelTransformFactory : _ref$labelTransform,\n _ref$shapeWidth = _ref.shapeWidth,\n shapeWidth = _ref$shapeWidth === void 0 ? 15 : _ref$shapeWidth,\n _ref$shapeHeight = _ref.shapeHeight,\n shapeHeight = _ref$shapeHeight === void 0 ? 15 : _ref$shapeHeight,\n _ref$shapeMargin = _ref.shapeMargin,\n shapeMargin = _ref$shapeMargin === void 0 ? '2px 4px 2px 0' : _ref$shapeMargin,\n shapeStyle = _ref.shapeStyle,\n _ref$labelAlign = _ref.labelAlign,\n labelAlign = _ref$labelAlign === void 0 ? 'left' : _ref$labelAlign,\n _ref$labelFlex = _ref.labelFlex,\n labelFlex = _ref$labelFlex === void 0 ? '1' : _ref$labelFlex,\n _ref$labelMargin = _ref.labelMargin,\n labelMargin = _ref$labelMargin === void 0 ? '0 4px' : _ref$labelMargin,\n _ref$itemMargin = _ref.itemMargin,\n itemMargin = _ref$itemMargin === void 0 ? '0' : _ref$itemMargin,\n _ref$direction = _ref.direction,\n direction = _ref$direction === void 0 ? 'column' : _ref$direction,\n _ref$itemDirection = _ref.itemDirection,\n itemDirection = _ref$itemDirection === void 0 ? 'row' : _ref$itemDirection,\n legendLabelProps = _ref.legendLabelProps,\n children = _ref.children,\n legendItemProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n // `Scale extends ScaleType` constraint is tricky\n // could consider removing `scale` altogether in the future and making `domain: Datum[]` required\n var domain = inputDomain || ('domain' in scale ? scale.domain() : []);\n var labelFormatter = labelTransform({\n scale: scale,\n labelFormat: labelFormat\n });\n var labels = domain.map(labelFormatter);\n if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children(labels));\n return /*#__PURE__*/React.createElement(\"div\", {\n className: cx('visx-legend', className),\n style: _extends({}, style, {\n flexDirection: direction\n })\n }, labels.map(function (label, i) {\n return /*#__PURE__*/React.createElement(LegendItem, _extends({\n key: \"legend-\" + label.text + \"-\" + i,\n margin: itemMargin,\n flexDirection: itemDirection\n }, legendItemProps), /*#__PURE__*/React.createElement(LegendShape, {\n shape: shape,\n height: shapeHeight,\n width: shapeWidth,\n margin: shapeMargin,\n item: domain[i],\n itemIndex: i,\n label: label,\n fill: fill,\n size: size,\n shapeStyle: shapeStyle\n }), /*#__PURE__*/React.createElement(LegendLabel, _extends({\n label: label.text,\n flex: labelFlex,\n margin: labelMargin,\n align: labelAlign\n }, legendLabelProps)));\n }));\n}\nLegend.propTypes = {\n children: _pt.func,\n className: _pt.string,\n domain: _pt.array,\n shapeWidth: _pt.oneOfType([_pt.string, _pt.number]),\n shapeHeight: _pt.oneOfType([_pt.string, _pt.number]),\n shapeMargin: _pt.oneOfType([_pt.string, _pt.number]),\n labelAlign: _pt.string,\n labelFlex: _pt.oneOfType([_pt.string, _pt.number]),\n labelMargin: _pt.oneOfType([_pt.string, _pt.number]),\n itemMargin: _pt.oneOfType([_pt.string, _pt.number]),\n fill: _pt.func,\n size: _pt.func,\n shapeStyle: _pt.func\n};","import React from 'react';\nimport Legend from './Legend';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\n/** Ordinal scales map from strings to an Output type. */\nexport default function Ordinal(props) {\n return /*#__PURE__*/React.createElement(Legend, props);\n}","var Point = /*#__PURE__*/function () {\n function Point(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y;\n this.x = 0;\n this.y = 0;\n this.x = x;\n this.y = y;\n }\n var _proto = Point.prototype;\n _proto.value = function value() {\n return {\n x: this.x,\n y: this.y\n };\n };\n _proto.toArray = function toArray() {\n return [this.x, this.y];\n };\n return Point;\n}();\nexport { Point as default };","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport debounce from 'lodash/debounce';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nvar defaultIgnoreDimensions = [];\nvar defaultInitialSize = {\n width: 0,\n height: 0,\n top: 0,\n left: 0\n};\nexport default function useParentSize(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$initialSize = _ref.initialSize,\n initialSize = _ref$initialSize === void 0 ? defaultInitialSize : _ref$initialSize,\n _ref$debounceTime = _ref.debounceTime,\n debounceTime = _ref$debounceTime === void 0 ? 300 : _ref$debounceTime,\n _ref$ignoreDimensions = _ref.ignoreDimensions,\n ignoreDimensions = _ref$ignoreDimensions === void 0 ? defaultIgnoreDimensions : _ref$ignoreDimensions,\n _ref$enableDebounceLe = _ref.enableDebounceLeadingCall,\n enableDebounceLeadingCall = _ref$enableDebounceLe === void 0 ? true : _ref$enableDebounceLe,\n resizeObserverPolyfill = _ref.resizeObserverPolyfill;\n var parentRef = useRef(null);\n var animationFrameID = useRef(0);\n var _useState = useState(_extends({}, defaultInitialSize, initialSize)),\n state = _useState[0],\n setState = _useState[1];\n var resize = useMemo(function () {\n var normalized = Array.isArray(ignoreDimensions) ? ignoreDimensions : [ignoreDimensions];\n return debounce(function (incoming) {\n setState(function (existing) {\n var stateKeys = Object.keys(existing);\n var keysWithChanges = stateKeys.filter(function (key) {\n return existing[key] !== incoming[key];\n });\n var shouldBail = keysWithChanges.every(function (key) {\n return normalized.includes(key);\n });\n return shouldBail ? existing : incoming;\n });\n }, debounceTime, {\n leading: enableDebounceLeadingCall\n });\n }, [debounceTime, enableDebounceLeadingCall, ignoreDimensions]);\n useEffect(function () {\n var LocalResizeObserver = resizeObserverPolyfill || window.ResizeObserver;\n var observer = new LocalResizeObserver(function (entries) {\n entries.forEach(function (entry) {\n var _entry$contentRect;\n var _ref2 = (_entry$contentRect = entry == null ? void 0 : entry.contentRect) != null ? _entry$contentRect : {},\n left = _ref2.left,\n top = _ref2.top,\n width = _ref2.width,\n height = _ref2.height;\n animationFrameID.current = window.requestAnimationFrame(function () {\n resize({\n width: width,\n height: height,\n top: top,\n left: left\n });\n });\n });\n });\n if (parentRef.current) observer.observe(parentRef.current);\n return function () {\n window.cancelAnimationFrame(animationFrameID.current);\n observer.disconnect();\n resize.cancel();\n };\n }, [resize, resizeObserverPolyfill]);\n return _extends({\n parentRef: parentRef,\n resize: resize\n }, state);\n}","import _pt from \"prop-types\";\nvar _excluded = [\"className\", \"children\", \"debounceTime\", \"ignoreDimensions\", \"initialSize\", \"parentSizeStyles\", \"enableDebounceLeadingCall\", \"resizeObserverPolyfill\"],\n _excluded2 = [\"parentRef\", \"resize\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport useParentSize from '../hooks/useParentSize';\nvar defaultParentSizeStyles = {\n width: '100%',\n height: '100%'\n};\nexport default function ParentSize(_ref) {\n var className = _ref.className,\n children = _ref.children,\n debounceTime = _ref.debounceTime,\n ignoreDimensions = _ref.ignoreDimensions,\n initialSize = _ref.initialSize,\n _ref$parentSizeStyles = _ref.parentSizeStyles,\n parentSizeStyles = _ref$parentSizeStyles === void 0 ? defaultParentSizeStyles : _ref$parentSizeStyles,\n _ref$enableDebounceLe = _ref.enableDebounceLeadingCall,\n enableDebounceLeadingCall = _ref$enableDebounceLe === void 0 ? true : _ref$enableDebounceLe,\n resizeObserverPolyfill = _ref.resizeObserverPolyfill,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var _useParentSize = useParentSize({\n initialSize: initialSize,\n debounceTime: debounceTime,\n ignoreDimensions: ignoreDimensions,\n enableDebounceLeadingCall: enableDebounceLeadingCall,\n resizeObserverPolyfill: resizeObserverPolyfill\n }),\n parentRef = _useParentSize.parentRef,\n resize = _useParentSize.resize,\n dimensions = _objectWithoutPropertiesLoose(_useParentSize, _excluded2);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n style: parentSizeStyles,\n ref: parentRef,\n className: className\n }, restProps), children(_extends({}, dimensions, {\n ref: parentRef.current,\n resize: resize\n })));\n}\nParentSize.propTypes = {\n className: _pt.string,\n children: _pt.func.isRequired\n};","export const radians = Math.PI / 180;\nexport const degrees = 180 / Math.PI;\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nconst K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n}));\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {degrees, radians} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","import { interpolateRgb, interpolateLab, interpolateHcl, interpolateHclLong, interpolateHsl, interpolateHslLong, interpolateCubehelix, interpolateCubehelixLong } from '@visx/vendor/d3-interpolate';\nvar interpolatorMap = {\n lab: interpolateLab,\n hcl: interpolateHcl,\n 'hcl-long': interpolateHclLong,\n hsl: interpolateHsl,\n 'hsl-long': interpolateHslLong,\n cubehelix: interpolateCubehelix,\n 'cubehelix-long': interpolateCubehelixLong,\n rgb: interpolateRgb\n};\nexport default function createColorInterpolator(interpolate) {\n switch (interpolate) {\n case 'lab':\n case 'hcl':\n case 'hcl-long':\n case 'hsl':\n case 'hsl-long':\n case 'cubehelix':\n case 'cubehelix-long':\n case 'rgb':\n return interpolatorMap[interpolate];\n default:\n }\n var type = interpolate.type,\n gamma = interpolate.gamma;\n var interpolator = interpolatorMap[type];\n return typeof gamma === 'undefined' ? interpolator : interpolator.gamma(gamma);\n}","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","var TEST_TIME = new Date(Date.UTC(2020, 1, 2, 3, 4, 5));\nvar TEST_FORMAT = '%Y-%m-%d %H:%M';\n\n/**\n * Check if the scale is UTC or Time scale\n * When local time is equal to UTC, always return true\n * @param scale time or utc scale\n */\nexport default function isUtcScale(scale) {\n // The only difference between time and utc scale is\n // whether the tick format function is utcFormat or timeFormat\n var output = scale.tickFormat(1, TEST_FORMAT)(TEST_TIME);\n return output === '2020-02-02 03:04';\n}","import { timeSecond, timeMinute, timeHour, timeDay, timeYear, timeMonth, timeWeek, utcSecond, utcMinute, utcHour, utcDay, utcWeek, utcMonth, utcYear } from '@visx/vendor/d3-time';\nimport isUtcScale from '../utils/isUtcScale';\nvar localTimeIntervals = {\n day: timeDay,\n hour: timeHour,\n minute: timeMinute,\n month: timeMonth,\n second: timeSecond,\n week: timeWeek,\n year: timeYear\n};\nvar utcIntervals = {\n day: utcDay,\n hour: utcHour,\n minute: utcMinute,\n month: utcMonth,\n second: utcSecond,\n week: utcWeek,\n year: utcYear\n};\nexport default function applyNice(scale, config) {\n if ('nice' in config && typeof config.nice !== 'undefined' && 'nice' in scale) {\n var nice = config.nice;\n if (typeof nice === 'boolean') {\n if (nice) {\n scale.nice();\n }\n } else if (typeof nice === 'number') {\n scale.nice(nice);\n } else {\n var timeScale = scale;\n var isUtc = isUtcScale(timeScale);\n if (typeof nice === 'string') {\n timeScale.nice(isUtc ? utcIntervals[nice] : localTimeIntervals[nice]);\n } else {\n var interval = nice.interval,\n step = nice.step;\n var parsedInterval = (isUtc ? utcIntervals[interval] : localTimeIntervals[interval]).every(step);\n if (parsedInterval != null) {\n timeScale.nice(parsedInterval);\n }\n }\n }\n }\n}","import domain from './domain';\nimport range from './range';\nimport align from './align';\nimport base from './base';\nimport clamp from './clamp';\nimport constant from './constant';\nimport exponent from './exponent';\nimport interpolate from './interpolate';\nimport nice from './nice';\nimport padding from './padding';\nimport reverse from './reverse';\nimport round from './round';\nimport unknown from './unknown';\nimport zero from './zero';\n\n/**\n * List of all operators, in order of execution\n */\nexport var ALL_OPERATORS = [\n// domain => nice => zero\n'domain', 'nice', 'zero',\n// interpolate before round\n'interpolate', 'round',\n// set range then reverse\n'range', 'reverse',\n// Order does not matter for these operators\n'align', 'base', 'clamp', 'constant', 'exponent', 'padding', 'unknown'];\n// Use Record to enforce that all keys in OperatorType must exist.\nvar operators = {\n domain: domain,\n nice: nice,\n zero: zero,\n interpolate: interpolate,\n round: round,\n align: align,\n base: base,\n clamp: clamp,\n constant: constant,\n exponent: exponent,\n padding: padding,\n range: range,\n reverse: reverse,\n unknown: unknown\n};\nexport default function scaleOperator() {\n for (var _len = arguments.length, ops = new Array(_len), _key = 0; _key < _len; _key++) {\n ops[_key] = arguments[_key];\n }\n var selection = new Set(ops);\n var selectedOps = ALL_OPERATORS.filter(function (o) {\n return selection.has(o);\n });\n return function applyOperators(scale, config) {\n if (typeof config !== 'undefined') {\n selectedOps.forEach(function (op) {\n operators[op](scale, config);\n });\n }\n return scale;\n };\n}","export default function applyDomain(scale, config) {\n if (config.domain) {\n if ('nice' in scale || 'quantiles' in scale) {\n // continuous input scales\n scale.domain(config.domain);\n } else if ('padding' in scale) {\n // point and band scales\n scale.domain(config.domain);\n } else {\n // ordinal and threshold scale\n scale.domain(config.domain);\n }\n }\n}","export default function applyZero(scale, config) {\n if ('zero' in config && config.zero === true) {\n var domain = scale.domain();\n var a = domain[0],\n b = domain[1];\n var isDescending = b < a;\n var _ref = isDescending ? [b, a] : [a, b],\n min = _ref[0],\n max = _ref[1];\n var domainWithZero = [Math.min(0, min), Math.max(0, max)];\n scale.domain(isDescending ? domainWithZero.reverse() : domainWithZero);\n }\n}","import createColorInterpolator from '../utils/createColorInterpolator';\nexport default function applyInterpolate(scale, config) {\n if ('interpolate' in config && 'interpolate' in scale && typeof config.interpolate !== 'undefined') {\n var interpolator = createColorInterpolator(config.interpolate);\n scale.interpolate(interpolator);\n }\n}","import { interpolateRound } from '@visx/vendor/d3-interpolate';\nexport default function applyRound(scale, config) {\n if ('round' in config && typeof config.round !== 'undefined') {\n if (config.round && 'interpolate' in config && typeof config.interpolate !== 'undefined') {\n console.warn(\"[visx/scale/applyRound] ignoring round: scale config contains round and interpolate. only applying interpolate. config:\", config);\n } else if ('round' in scale) {\n // for point and band scales\n scale.round(config.round);\n } else if ('interpolate' in scale && config.round) {\n // for continuous output scales\n // setting config.round = true\n // is actually setting interpolator to interpolateRound\n // as these scales do not have scale.round() function\n scale.interpolate(interpolateRound);\n }\n }\n}","export default function applyAlign(scale, config) {\n if ('align' in scale && 'align' in config && typeof config.align !== 'undefined') {\n scale.align(config.align);\n }\n}","export default function applyBase(scale, config) {\n if ('base' in scale && 'base' in config && typeof config.base !== 'undefined') {\n scale.base(config.base);\n }\n}","export default function applyClamp(scale, config) {\n if ('clamp' in scale && 'clamp' in config && typeof config.clamp !== 'undefined') {\n scale.clamp(config.clamp);\n }\n}","export default function applyConstant(scale, config) {\n if ('constant' in scale && 'constant' in config && typeof config.constant !== 'undefined') {\n scale.constant(config.constant);\n }\n}","export default function applyExponent(scale, config) {\n if ('exponent' in scale && 'exponent' in config && typeof config.exponent !== 'undefined') {\n scale.exponent(config.exponent);\n }\n}","export default function applyPadding(scale, config) {\n if ('padding' in scale && 'padding' in config && typeof config.padding !== 'undefined') {\n scale.padding(config.padding);\n }\n if ('paddingInner' in scale && 'paddingInner' in config && typeof config.paddingInner !== 'undefined') {\n scale.paddingInner(config.paddingInner);\n }\n if ('paddingOuter' in scale && 'paddingOuter' in config && typeof config.paddingOuter !== 'undefined') {\n scale.paddingOuter(config.paddingOuter);\n }\n}","export default function applyRange(scale, config) {\n if (config.range) {\n if ('padding' in scale) {\n // point and band scales\n scale.range(config.range);\n } else {\n // the rest\n scale.range(config.range);\n }\n }\n}","export default function applyReverse(scale, config) {\n if (config.reverse) {\n var reversedRange = scale.range().slice().reverse();\n if ('padding' in scale) {\n // point and band scales\n scale.range(reversedRange);\n } else {\n // the rest\n scale.range(reversedRange);\n }\n }\n}","export default function applyUnknown(scale, config) {\n if ('unknown' in scale && 'unknown' in config && typeof config.unknown !== 'undefined') {\n scale.unknown(config.unknown);\n }\n}","import { scaleBand } from '@visx/vendor/d3-scale';\nimport scaleOperator from '../operators/scaleOperator';\nexport var updateBandScale = scaleOperator('domain', 'range', 'reverse', 'align', 'padding', 'round');\nexport default function createBandScale(config) {\n return updateBandScale(scaleBand(), config);\n}","import { scaleLinear } from '@visx/vendor/d3-scale';\nimport scaleOperator from '../operators/scaleOperator';\nexport var updateLinearScale = scaleOperator('domain', 'range', 'reverse', 'clamp', 'interpolate', 'nice', 'round', 'zero');\nexport default function createLinearScale(config) {\n return updateLinearScale(scaleLinear(), config);\n}","import { scaleOrdinal } from '@visx/vendor/d3-scale';\nimport scaleOperator from '../operators/scaleOperator';\nexport var updateOrdinalScale = scaleOperator('domain', 'range', 'reverse', 'unknown');\nexport default function createOrdinalScale(config) {\n return updateOrdinalScale(scaleOrdinal(), config);\n}","export default function coerceNumber(val) {\n if ((typeof val === 'function' || typeof val === 'object' && !!val) && 'valueOf' in val) {\n var num = val.valueOf();\n if (typeof num === 'number') return num;\n }\n return val;\n}","export default function getTicks(scale, numTicks) {\n // Because `Scale` is generic type which maybe a subset of AnyD3Scale\n // that may not have `ticks` field,\n // TypeScript will not let us do the `'ticks' in scale` check directly.\n // Have to manually cast and expand type first.\n var s = scale;\n if ('ticks' in s) {\n return s.ticks(numTicks);\n }\n return s.domain().filter(function (_, index, arr) {\n return numTicks == null || arr.length <= numTicks || index % Math.round((arr.length - 1) / numTicks) === 0;\n });\n}","var _excluded = [\"className\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nexport default function Bar(_ref) {\n var className = _ref.className,\n innerRef = _ref.innerRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"rect\", _extends({\n ref: innerRef,\n className: cx('visx-bar', className)\n }, restProps));\n}","var _excluded = [\"data\", \"className\", \"top\", \"left\", \"x0\", \"x0Scale\", \"x1Scale\", \"yScale\", \"color\", \"keys\", \"height\", \"children\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport { Group } from '@visx/group';\nimport Bar from './Bar';\nimport getBandwidth from '../util/getBandwidth';\n/**\n * Generates bar groups as an array of objects and renders ``s for each datum grouped by `key`. A general setup might look like this:\n *\n * ```js\n * const data = [{\n * date: date1,\n * key1: value,\n * key2: value,\n * key3: value\n * }, {\n * date: date2,\n * key1: value,\n * key2: value,\n * key3: value,\n * }];\n *\n * const x0 = d => d.date;\n * const keys = [key1, key2, key3];\n *\n * const x0Scale = scaleBand({\n * domain: data.map(x0),\n * padding: 0.2\n * });\n * const x1Scale = scaleBand({\n * domain: keys,\n * padding: 0.1\n * });\n * const yScale = scaleLinear({\n * domain: [0, Math.max(...data.map(d => Math.max(...keys.map(key => d[key]))))]\n * });\n * const color = scaleOrdinal({\n * domain: keys,\n * range: [blue, green, purple]\n * });\n * ```\n *\n * Example: [https://airbnb.io/visx/bargroup](https://airbnb.io/visx/bargroup)\n */\nexport default function BarGroup(_ref) {\n var data = _ref.data,\n className = _ref.className,\n top = _ref.top,\n left = _ref.left,\n x0 = _ref.x0,\n x0Scale = _ref.x0Scale,\n x1Scale = _ref.x1Scale,\n yScale = _ref.yScale,\n color = _ref.color,\n keys = _ref.keys,\n height = _ref.height,\n children = _ref.children,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var barWidth = getBandwidth(x1Scale);\n var barGroups = data.map(function (group, i) {\n return {\n index: i,\n x0: x0Scale(x0(group)),\n bars: keys.map(function (key, j) {\n var value = group[key];\n return {\n index: j,\n key: key,\n value: value,\n width: barWidth,\n x: x1Scale(key) || 0,\n y: yScale(value) || 0,\n color: color(key, j),\n height: height - (yScale(value) || 0)\n };\n })\n };\n });\n if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children(barGroups));\n return /*#__PURE__*/React.createElement(Group, {\n className: cx('visx-bar-group', className),\n top: top,\n left: left\n }, barGroups.map(function (barGroup) {\n return /*#__PURE__*/React.createElement(Group, {\n key: \"bar-group-\" + barGroup.index + \"-\" + barGroup.x0,\n left: barGroup.x0\n }, barGroup.bars.map(function (bar) {\n return /*#__PURE__*/React.createElement(Bar, _extends({\n key: \"bar-group-bar-\" + barGroup.index + \"-\" + bar.index + \"-\" + bar.value + \"-\" + bar.key,\n x: bar.x,\n y: bar.y,\n width: bar.width,\n height: bar.height,\n fill: bar.color\n }, restProps));\n }));\n }));\n}","export default function getBandwidth(scale) {\n if ('bandwidth' in scale) {\n return scale.bandwidth();\n }\n var range = scale.range();\n var domain = scale.domain();\n return Math.abs(range[range.length - 1] - range[0]) / domain.length;\n}","var _excluded = [\"children\", \"className\", \"innerRef\", \"x\", \"y\", \"width\", \"height\", \"radius\", \"all\", \"top\", \"bottom\", \"left\", \"right\", \"topLeft\", \"topRight\", \"bottomLeft\", \"bottomRight\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\n/** Hook that returns a BarRounded path. */\nexport function useBarRoundedPath(_ref) {\n var all = _ref.all,\n bottom = _ref.bottom,\n bottomLeft = _ref.bottomLeft,\n bottomRight = _ref.bottomRight,\n height = _ref.height,\n left = _ref.left,\n radius = _ref.radius,\n right = _ref.right,\n top = _ref.top,\n topLeft = _ref.topLeft,\n topRight = _ref.topRight,\n width = _ref.width,\n x = _ref.x,\n y = _ref.y;\n topRight = all || top || right || topRight;\n bottomRight = all || bottom || right || bottomRight;\n bottomLeft = all || bottom || left || bottomLeft;\n topLeft = all || top || left || topLeft;\n\n // clamp radius to center of shortest side of the rect\n radius = Math.max(1, Math.min(radius, Math.min(width, height) / 2));\n var diameter = 2 * radius;\n var path = (\"M\" + (x + radius) + \",\" + y + \" h\" + (width - diameter) + \"\\n \" + (topRight ? \"a\" + radius + \",\" + radius + \" 0 0 1 \" + radius + \",\" + radius : \"h\" + radius + \"v\" + radius) + \"\\n v\" + (height - diameter) + \"\\n \" + (bottomRight ? \"a\" + radius + \",\" + radius + \" 0 0 1 \" + -radius + \",\" + radius : \"v\" + radius + \"h\" + -radius) + \"\\n h\" + (diameter - width) + \"\\n \" + (bottomLeft ? \"a\" + radius + \",\" + radius + \" 0 0 1 \" + -radius + \",\" + -radius : \"h\" + -radius + \"v\" + -radius) + \"\\n v\" + (diameter - height) + \"\\n \" + (topLeft ? \"a\" + radius + \",\" + radius + \" 0 0 1 \" + radius + \",\" + -radius : \"v\" + -radius + \"h\" + radius) + \"\\nz\").split('\\n').join('');\n return path;\n}\nexport default function BarRounded(_ref2) {\n var children = _ref2.children,\n className = _ref2.className,\n innerRef = _ref2.innerRef,\n x = _ref2.x,\n y = _ref2.y,\n width = _ref2.width,\n height = _ref2.height,\n radius = _ref2.radius,\n _ref2$all = _ref2.all,\n all = _ref2$all === void 0 ? false : _ref2$all,\n _ref2$top = _ref2.top,\n top = _ref2$top === void 0 ? false : _ref2$top,\n _ref2$bottom = _ref2.bottom,\n bottom = _ref2$bottom === void 0 ? false : _ref2$bottom,\n _ref2$left = _ref2.left,\n left = _ref2$left === void 0 ? false : _ref2$left,\n _ref2$right = _ref2.right,\n right = _ref2$right === void 0 ? false : _ref2$right,\n _ref2$topLeft = _ref2.topLeft,\n topLeft = _ref2$topLeft === void 0 ? false : _ref2$topLeft,\n _ref2$topRight = _ref2.topRight,\n topRight = _ref2$topRight === void 0 ? false : _ref2$topRight,\n _ref2$bottomLeft = _ref2.bottomLeft,\n bottomLeft = _ref2$bottomLeft === void 0 ? false : _ref2$bottomLeft,\n _ref2$bottomRight = _ref2.bottomRight,\n bottomRight = _ref2$bottomRight === void 0 ? false : _ref2$bottomRight,\n restProps = _objectWithoutPropertiesLoose(_ref2, _excluded);\n var path = useBarRoundedPath({\n x: x,\n y: y,\n width: width,\n height: height,\n radius: radius,\n all: all,\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n topLeft: topLeft,\n topRight: topRight,\n bottomLeft: bottomLeft,\n bottomRight: bottomRight\n });\n if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children({\n path: path\n }));\n return /*#__PURE__*/React.createElement(\"path\", _extends({\n ref: innerRef,\n className: cx('visx-bar-rounded', className),\n d: path\n }, restProps));\n}","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","/**\n * This is a workaround for TypeScript not inferring the correct\n * method overload/signature for some d3 shape methods.\n */\nexport default function setNumberOrNumberAccessor(func, value) {\n if (typeof value === 'number') func(value);else func(value);\n}","import { arc as d3Arc, area as d3Area, line as d3Line, pie as d3Pie, radialLine as d3RadialLine, stack as d3Stack } from 'd3-shape';\nimport setNumberOrNumberAccessor from './setNumberOrNumberAccessor';\nimport stackOrder from './stackOrder';\nimport stackOffset from './stackOffset';\nexport function arc(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n cornerRadius = _ref.cornerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n padAngle = _ref.padAngle,\n padRadius = _ref.padRadius;\n var path = d3Arc();\n if (innerRadius != null) setNumberOrNumberAccessor(path.innerRadius, innerRadius);\n if (outerRadius != null) setNumberOrNumberAccessor(path.outerRadius, outerRadius);\n if (cornerRadius != null) setNumberOrNumberAccessor(path.cornerRadius, cornerRadius);\n if (startAngle != null) setNumberOrNumberAccessor(path.startAngle, startAngle);\n if (endAngle != null) setNumberOrNumberAccessor(path.endAngle, endAngle);\n if (padAngle != null) setNumberOrNumberAccessor(path.padAngle, padAngle);\n if (padRadius != null) setNumberOrNumberAccessor(path.padRadius, padRadius);\n return path;\n}\nexport function area(_temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n x = _ref2.x,\n x0 = _ref2.x0,\n x1 = _ref2.x1,\n y = _ref2.y,\n y0 = _ref2.y0,\n y1 = _ref2.y1,\n defined = _ref2.defined,\n curve = _ref2.curve;\n var path = d3Area();\n if (x) setNumberOrNumberAccessor(path.x, x);\n if (x0) setNumberOrNumberAccessor(path.x0, x0);\n if (x1) setNumberOrNumberAccessor(path.x1, x1);\n if (y) setNumberOrNumberAccessor(path.y, y);\n if (y0) setNumberOrNumberAccessor(path.y0, y0);\n if (y1) setNumberOrNumberAccessor(path.y1, y1);\n if (defined) path.defined(defined);\n if (curve) path.curve(curve);\n return path;\n}\nexport function line(_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n x = _ref3.x,\n y = _ref3.y,\n defined = _ref3.defined,\n curve = _ref3.curve;\n var path = d3Line();\n if (x) setNumberOrNumberAccessor(path.x, x);\n if (y) setNumberOrNumberAccessor(path.y, y);\n if (defined) path.defined(defined);\n if (curve) path.curve(curve);\n return path;\n}\nexport function pie(_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle,\n padAngle = _ref4.padAngle,\n value = _ref4.value,\n sort = _ref4.sort,\n sortValues = _ref4.sortValues;\n var path = d3Pie();\n\n // ts can't distinguish between these method overloads\n if (sort === null) path.sort(sort);else if (sort != null) path.sort(sort);\n if (sortValues === null) path.sortValues(sortValues);else if (sortValues != null) path.sortValues(sortValues);\n if (value != null) path.value(value);\n if (padAngle != null) setNumberOrNumberAccessor(path.padAngle, padAngle);\n if (startAngle != null) setNumberOrNumberAccessor(path.startAngle, startAngle);\n if (endAngle != null) setNumberOrNumberAccessor(path.endAngle, endAngle);\n return path;\n}\nexport function radialLine(_temp5) {\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n angle = _ref5.angle,\n radius = _ref5.radius,\n defined = _ref5.defined,\n curve = _ref5.curve;\n var path = d3RadialLine();\n if (angle) setNumberOrNumberAccessor(path.angle, angle);\n if (radius) setNumberOrNumberAccessor(path.radius, radius);\n if (defined) path.defined(defined);\n if (curve) path.curve(curve);\n return path;\n}\nexport function stack(_ref6) {\n var keys = _ref6.keys,\n value = _ref6.value,\n order = _ref6.order,\n offset = _ref6.offset;\n var path = d3Stack();\n if (keys) path.keys(keys);\n if (value) setNumberOrNumberAccessor(path.value, value);\n if (order) path.order(stackOrder(order));\n if (offset) path.offset(stackOffset(offset));\n return path;\n}","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","var _excluded = [\"children\", \"data\", \"x\", \"y\", \"fill\", \"className\", \"curve\", \"innerRef\", \"defined\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nimport { line } from '../util/D3ShapeFactories';\nexport default function LinePath(_ref) {\n var children = _ref.children,\n _ref$data = _ref.data,\n data = _ref$data === void 0 ? [] : _ref$data,\n x = _ref.x,\n y = _ref.y,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? 'transparent' : _ref$fill,\n className = _ref.className,\n curve = _ref.curve,\n innerRef = _ref.innerRef,\n _ref$defined = _ref.defined,\n defined = _ref$defined === void 0 ? function () {\n return true;\n } : _ref$defined,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var path = line({\n x: x,\n y: y,\n defined: defined,\n curve: curve\n });\n if (children) return /*#__PURE__*/React.createElement(React.Fragment, null, children({\n path: path\n }));\n return /*#__PURE__*/React.createElement(\"path\", _extends({\n ref: innerRef,\n className: cx('visx-linepath', className),\n d: path(data) || '',\n fill: fill\n // without this a datum surrounded by nulls will not be visible\n // https://github.com/d3/d3-shape#line_defined\n ,\n strokeLinecap: \"round\"\n }, restProps));\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = Line;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\nvar _excluded = [\"from\", \"to\", \"fill\", \"className\", \"innerRef\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction Line(_ref) {\n var _ref$from = _ref.from,\n from = _ref$from === void 0 ? {\n x: 0,\n y: 0\n } : _ref$from,\n _ref$to = _ref.to,\n to = _ref$to === void 0 ? {\n x: 1,\n y: 1\n } : _ref$to,\n _ref$fill = _ref.fill,\n fill = _ref$fill === void 0 ? 'transparent' : _ref$fill,\n className = _ref.className,\n innerRef = _ref.innerRef,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n var isRectilinear = from.x === to.x || from.y === to.y;\n return /*#__PURE__*/_react.default.createElement(\"line\", _extends({\n ref: innerRef,\n className: (0, _classnames.default)('visx-line', className),\n x1: from.x,\n y1: from.y,\n x2: to.x,\n y2: to.y,\n fill: fill,\n shapeRendering: isRectilinear ? 'crispEdges' : 'auto'\n }, restProps));\n}","import memoize from 'lodash/memoize';\nvar MEASUREMENT_ELEMENT_ID = '__react_svg_text_measurement_id';\nfunction getStringWidth(str, style) {\n try {\n // Calculate length of each word to be used to determine number of words per line\n var textEl = document.getElementById(MEASUREMENT_ELEMENT_ID);\n if (!textEl) {\n var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('aria-hidden', 'true');\n svg.style.width = '0';\n svg.style.height = '0';\n svg.style.position = 'absolute';\n svg.style.top = '-100%';\n svg.style.left = '-100%';\n textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text');\n textEl.setAttribute('id', MEASUREMENT_ELEMENT_ID);\n svg.appendChild(textEl);\n document.body.appendChild(svg);\n }\n Object.assign(textEl.style, style);\n textEl.textContent = str;\n return textEl.getComputedTextLength();\n } catch (e) {\n return null;\n }\n}\nexport default memoize(getStringWidth, function (str, style) {\n return str + \"_\" + JSON.stringify(style);\n});","var _excluded = [\"tooltipOpen\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport { useState, useCallback } from 'react';\nexport default function useTooltip( /** Optional initial TooltipState. */\ninitialTooltipState) {\n var _useState = useState(_extends({\n tooltipOpen: false\n }, initialTooltipState)),\n tooltipState = _useState[0],\n setTooltipState = _useState[1];\n var showTooltip = useCallback(function (showArgs) {\n return setTooltipState(typeof showArgs === 'function' ? function (_ref) {\n var tooltipOpen = _ref.tooltipOpen,\n show = _objectWithoutPropertiesLoose(_ref, _excluded);\n return _extends({}, showArgs(show), {\n tooltipOpen: true\n });\n } : {\n tooltipOpen: true,\n tooltipLeft: showArgs.tooltipLeft,\n tooltipTop: showArgs.tooltipTop,\n tooltipData: showArgs.tooltipData\n });\n }, [setTooltipState]);\n var hideTooltip = useCallback(function () {\n return setTooltipState({\n tooltipOpen: false,\n tooltipLeft: undefined,\n tooltipTop: undefined,\n tooltipData: undefined\n });\n }, [setTooltipState]);\n return {\n tooltipOpen: tooltipState.tooltipOpen,\n tooltipLeft: tooltipState.tooltipLeft,\n tooltipTop: tooltipState.tooltipTop,\n tooltipData: tooltipState.tooltipData,\n updateTooltip: setTooltipState,\n showTooltip: showTooltip,\n hideTooltip: hideTooltip\n };\n}","import _pt from \"prop-types\";\nvar _excluded = [\"className\", \"top\", \"left\", \"offsetLeft\", \"offsetTop\", \"style\", \"children\", \"unstyled\", \"applyPositionStyle\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport cx from 'classnames';\nexport var defaultStyles = {\n position: 'absolute',\n backgroundColor: 'white',\n color: '#666666',\n padding: '.3rem .5rem',\n borderRadius: '3px',\n fontSize: '14px',\n boxShadow: '0 1px 2px rgba(33,33,33,0.2)',\n lineHeight: '1em',\n pointerEvents: 'none'\n};\nvar Tooltip = /*#__PURE__*/React.forwardRef(function (_ref, ref) {\n var className = _ref.className,\n top = _ref.top,\n left = _ref.left,\n _ref$offsetLeft = _ref.offsetLeft,\n offsetLeft = _ref$offsetLeft === void 0 ? 10 : _ref$offsetLeft,\n _ref$offsetTop = _ref.offsetTop,\n offsetTop = _ref$offsetTop === void 0 ? 10 : _ref$offsetTop,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? defaultStyles : _ref$style,\n children = _ref.children,\n _ref$unstyled = _ref.unstyled,\n unstyled = _ref$unstyled === void 0 ? false : _ref$unstyled,\n _ref$applyPositionSty = _ref.applyPositionStyle,\n applyPositionStyle = _ref$applyPositionSty === void 0 ? false : _ref$applyPositionSty,\n restProps = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref,\n className: cx('visx-tooltip', className),\n style: _extends({\n top: top == null || offsetTop == null ? top : top + offsetTop,\n left: left == null || offsetLeft == null ? left : left + offsetLeft\n }, applyPositionStyle && {\n position: 'absolute'\n }, !unstyled && style)\n }, restProps), children);\n});\nTooltip.propTypes = {\n children: _pt.node,\n className: _pt.string,\n left: _pt.number,\n offsetLeft: _pt.number,\n offsetTop: _pt.number,\n top: _pt.number,\n applyPositionStyle: _pt.bool,\n unstyled: _pt.bool\n};\nTooltip.displayName = 'Tooltip';\nexport default Tooltip;","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var e,r,t,i=function(e){return e.replace(/[^\\d]/g,\"\")},n=function(e){return e.reduce(function(e,r){return e+r},0)},a=function(e,r){return e.slice(0,r)},l=function(e){var r=e.value;return e.delimiters.forEach(function(e){e.split(\"\").forEach(function(e){r=r.replace(new RegExp(e.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\"),\"g\"),\"\")})}),r},u=function(e){var r=e.blocks,t=e.delimiter,i=void 0===t?\"\":t,n=e.delimiters,a=void 0===n?[]:n,l=e.delimiterLazyShow,u=void 0!==l&&l,c=\"\",s=e.value,o=\"\";return r.forEach(function(e,t){if(s.length>0){var n,l=s.slice(0,e),d=s.slice(e);o=a.length>0?null!=(n=a[u?t-1:t])?n:o:i,u?(t>0&&(c+=o),c+=l):(c+=l,l.length===e&&t0&&s.push(a),e=function(e){var r=e.value,t=e.prefix,i=e.tailPrefix,n=t.length;return 0===n?r:r===t&&\"\"!==r?\"\":r.slice(0,n)===t||i?r.slice(-n)!==t&&i?\"\":i?r.slice(0,-n):r.slice(n):\"\"}({value:e=l({value:e,delimiters:s}),prefix:m,tailPrefix:!1}),e=p?i(e):e,e=E?e.toUpperCase():e,e=I?e.toLowerCase():e,m.length>0&&(e=m+e),u({value:e,blocks:t,delimiter:a,delimiters:s,delimiterLazyShow:d})},o=function(e,r){var t=r.delimiter,i=r.delimiters;return l({value:e,delimiters:[].concat(void 0===i?[]:i,[void 0===t?\"\":t])})},d=\" \";!function(e){e.UATP=\"uatp\",e.AMEX=\"amex\",e.DINERS=\"diners\",e.DISCOVER=\"discover\",e.MASTERCARD=\"mastercard\",e.DANKORT=\"dankort\",e.INSTAPAYMENT=\"instapayment\",e.JCB15=\"jcb15\",e.JCB=\"jcb\",e.MAESTRO=\"maestro\",e.VISA=\"visa\",e.MIR=\"mir\",e.UNIONPAY=\"unionpay\",e.GENERAL=\"general\"}(t||(t={}));var v,m=((e={})[t.UATP]=[4,5,6],e[t.AMEX]=[4,6,5],e[t.DINERS]=[4,6,4],e[t.DISCOVER]=[4,4,4,4],e[t.MASTERCARD]=[4,4,4,4],e[t.DANKORT]=[4,4,4,4],e[t.INSTAPAYMENT]=[4,4,4,4],e[t.JCB15]=[4,6,5],e[t.JCB]=[4,4,4,4],e[t.MAESTRO]=[4,4,4,4],e[t.VISA]=[4,4,4,4],e[t.MIR]=[4,4,4,4],e[t.UNIONPAY]=[4,4,4,4],e[t.GENERAL]=[4,4,4,4],e),f=((r={})[t.UATP]=/^(?!1800)1\\d{0,14}/,r[t.AMEX]=/^3[47]\\d{0,13}/,r[t.DISCOVER]=/^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,r[t.DINERS]=/^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,r[t.MASTERCARD]=/^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,r[t.DANKORT]=/^(5019|4175|4571)\\d{0,12}/,r[t.INSTAPAYMENT]=/^63[7-9]\\d{0,13}/,r[t.JCB15]=/^(?:2131|1800)\\d{0,11}/,r[t.JCB]=/^(?:35\\d{0,2})\\d{0,12}/,r[t.MAESTRO]=/^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,r[t.MIR]=/^220[0-4]\\d{0,12}/,r[t.VISA]=/^4\\d{0,15}/,r[t.UNIONPAY]=/^(62|81)\\d{0,14}/,r),p=function(e){var r=e.reduce(function(e,r){return e+r},0);return e.concat(19-r)},h=function(e){for(var r=e.value,i=e.strictMode,n=0,a=Object.keys(f);n0&&(i=i.slice(0,s)),o){case v.LAKH:i=i.replace(/(\\d)(?=(\\d\\d)+\\d$)/g,\"$1\"+n);break;case v.WAN:i=i.replace(/(\\d)(?=(\\d{4})+$)/g,\"$1\"+n);break;case v.THOUSAND:i=i.replace(/(\\d)(?=(\\d{3})+$)/g,\"$1\"+n)}return m?E+i+(l>0?p:\"\")+f:t+i+(l>0?p:\"\")}({value:e,delimiter:void 0===i?\",\":i,numeralIntegerScale:void 0===a?0:a,numeralDecimalMark:void 0===l?\".\":l,numeralDecimalScale:void 0===u?2:u,stripLeadingZeroes:void 0===c||c,numeralPositiveOnly:void 0!==s&&s,numeralThousandsGroupStyle:void 0===n?x:n,tailPrefix:void 0!==o&&o,signBeforePrefix:void 0!==d&&d,prefix:void 0===m?\"\":m})},S=function(e,r){var t=(null!=r?r:{}).numeralDecimalMark;return e.replace(void 0===t?\".\":t,\"M\").replace(/[^0-9-M]/g,\"\").replace(\"M\",\".\")},N=\"/\",k=[\"d\",\"m\",\"Y\"],C=function(e,r){return r?(e<10?\"000\":e<100?\"00\":e<1e3?\"0\":\"\")+e:(e<10?\"0\":\"\")+e},L=function(e){return(e<10?\"0\":\"\")+e},P=function(e,r,t){var i;return e=Math.min(e,31),t=null!=(i=t)?i:0,((r=Math.min(r,12))<7&&r%2==0||r>8&&r%2==1)&&(e=Math.min(e,2===r?function(e){return e%4==0&&e%100!=0||e%400==0}(t)?29:28:30)),[e,r,t]},y=function(e,r){var t=null!=r?r:{},c=t.delimiterLazyShow,s=void 0!==c&&c,o=t.delimiter,d=void 0===o?\"/\":o,v=t.datePattern,m=void 0===v?k:v,f=t.dateMax,p=void 0===f?\"\":f,h=t.dateMin,E=void 0===h?\"\":h;e=i(e);var g=function(e){var r=[];return e.forEach(function(e){r.push(\"Y\"===e?4:2)}),r}(m),I=function(e){var r=e.dateMax,t=e.dateMin.split(\"-\").reverse().map(function(e){return parseInt(e,10)});2===t.length&&t.unshift(0);var i=r.split(\"-\").reverse().map(function(e){return parseInt(e,10)});return 2===i.length&&i.unshift(0),{min:t,max:i}}({dateMax:p,dateMin:E});e=function(e){var r=e.value,t=void 0===r?\"\":r,i=e.blocks,n=e.datePattern,a=e.min,l=e.max,u=\"\";return(void 0===i?[]:i).forEach(function(e,r){if(t.length>0){var i=t.slice(0,e),a=i.slice(0,1),l=t.slice(e);switch(n[r]){case\"d\":\"00\"===i?i=\"01\":parseInt(a,10)>3?i=\"0\"+a:parseInt(i,10)>31&&(i=\"31\");break;case\"m\":\"00\"===i?i=\"01\":parseInt(a,10)>1?i=\"0\"+a:parseInt(i,10)>12&&(i=\"12\")}u+=i,t=l}}),function(e){var r,t,i,n=e.value,a=void 0===n?\"\":n,l=e.datePattern,u=e.min,c=e.max,s=[],o=0,d=0,v=0,m=0,f=0,p=0,h=!1;return 4===a.length&&\"y\"!==l[0].toLowerCase()&&\"y\"!==l[1].toLowerCase()&&(f=2-(m=\"d\"===l[0]?0:2),r=parseInt(a.slice(m,m+2),10),t=parseInt(a.slice(f,f+2),10),s=P(r,t,0)),8===a.length&&(l.forEach(function(e,r){switch(e){case\"d\":o=r;break;case\"m\":d=r;break;default:v=r}}),p=2*v,m=o<=v?2*o:2*o+2,f=d<=v?2*d:2*d+2,r=parseInt(a.slice(m,m+2),10),t=parseInt(a.slice(f,f+2),10),i=parseInt(a.slice(p,p+4),10),h=4===a.slice(p,p+4).length,s=P(r,t,i)),4!==a.length||\"y\"!==l[0]&&\"y\"!==l[1]||(p=2-(f=\"m\"===l[0]?0:2),t=parseInt(a.slice(f,f+2),10),i=parseInt(a.slice(p,p+2),10),h=2===a.slice(p,p+2).length,s=[0,t,i]),6!==a.length||\"Y\"!==l[0]&&\"Y\"!==l[1]||(p=2-.5*(f=\"m\"===l[0]?0:4),t=parseInt(a.slice(f,f+2),10),i=parseInt(a.slice(p,p+4),10),h=4===a.slice(p,p+4).length,s=[0,t,i]),0===(s=function(e){var r=e.date,t=void 0===r?[]:r,i=e.min,n=e.max;return 0===t.length||i.length<3&&n.length<3||e.datePattern.filter(function(e){return\"y\"===e.toLowerCase()}).length>0&&0===t[2]?t:n.length>0&&(n[2]0&&(i[2]>t[2]||i[2]===t[2]&&(i[1]>t[1]||i[1]===t[1]&&i[0]>t[0]))?i:t}({date:s,datePattern:l,min:u,max:c})).length?a:l.reduce(function(e,r){switch(r){case\"d\":return e+(0===s[0]?\"\":L(s[0]));case\"m\":return e+(0===s[1]?\"\":L(s[1]));case\"y\":return e+(h?C(s[2],!1):\"\");case\"Y\":return e+(h?C(s[2],!0):\"\")}return e},\"\")}({value:u,datePattern:n,min:a,max:l})}({value:e,blocks:g,datePattern:m,min:I.min,max:I.max}),e=l({value:e,delimiters:[d]});var A=n(g);return e=a(e,A),u({value:e,blocks:g,delimiter:d,delimiterLazyShow:s})},D=\":\",R=[\"h\",\"m\",\"s\"],T=function(e){return(e<10?\"0\":\"\")+e},b=function(e,r,t){return t=Math.min(t,60),r=Math.min(r,60),[e=Math.min(e,60),r,t]},w=function(e,r){var t=null!=r?r:{},c=t.delimiterLazyShow,s=void 0!==c&&c,o=t.delimiter,d=void 0===o?\":\":o,v=t.timePattern,m=void 0===v?R:v,f=t.timeFormat,p=void 0===f?\"24\":f;e=i(e);var h=function(e){var r=[];return e.forEach(function(){r.push(2)}),r}(m);e=function(e){var r=e.value,t=e.timePattern,i=\"\",n=\"12\"===e.timeFormat?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60};return e.blocks.forEach(function(e,a){if(r.length>0){var l=r.slice(0,e),u=l.slice(0,1),c=r.slice(e);switch(t[a]){case\"h\":parseInt(u,10)>n.maxHourFirstDigit?l=\"0\"+u:parseInt(l,10)>n.maxHours&&(l=n.maxHours+\"\");break;case\"m\":case\"s\":parseInt(u,10)>n.maxMinutesFirstDigit?l=\"0\"+u:parseInt(l,10)>n.maxMinutes&&(l=n.maxMinutes+\"\")}i+=l,r=c}}),function(e){var r,t,i,n=e.value,a=e.timePattern,l=[],u=0,c=0,s=0,o=0,d=0,v=0;return 6===n.length&&(a.forEach(function(e,r){switch(e){case\"s\":u=2*r;break;case\"m\":c=2*r;break;case\"h\":s=2*r}}),v=s,d=c,o=u,r=parseInt(n.slice(o,o+2),10),t=parseInt(n.slice(d,d+2),10),i=parseInt(n.slice(v,v+2),10),l=b(i,t,r)),4!==n.length||a.includes(\"s\")||(a.forEach(function(e,r){switch(e){case\"m\":c=2*r;break;case\"h\":s=2*r}}),v=s,d=c,r=0,t=parseInt(n.slice(d,d+2),10),i=parseInt(n.slice(v,v+2),10),l=b(i,t,r)),0===l.length?n:a.reduce(function(e,r){switch(r){case\"s\":return e+T(l[2]);case\"m\":return e+T(l[1]);case\"h\":return e+T(l[0])}return e},\"\")}({value:i,timePattern:t})}({value:e,blocks:h,timePattern:m,timeFormat:p}),e=l({value:e,delimiters:[d]});var E=n(h);return e=a(e,E),u({value:e,blocks:h,delimiter:d,delimiterLazyShow:s})};export{d as DefaultCreditCardDelimiter,N as DefaultDateDelimiter,A as DefaultNumeralDelimiter,D as DefaultTimeDelimiter,v as NumeralThousandGroupStyles,E as formatCreditCard,y as formatDate,s as formatGeneral,M as formatNumeral,w as formatTime,g as getCreditCardType,c as registerCursorTracker,I as unformatCreditCard,o as unformatGeneral,S as unformatNumeral};\n//# sourceMappingURL=cleave-zen.module.js.map\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 3099:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 6077:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 1223:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar create = __webpack_require__(30);\nvar definePropertyModule = __webpack_require__(3070);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ 1530:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ 5787:\n/***/ (function(module) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 9670:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n\n/***/ 4019:\n/***/ (function(module) {\n\nmodule.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar defineProperty = __webpack_require__(3070).f;\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar uid = __webpack_require__(9711);\n\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar isPrototypeOf = ObjectPrototype.isPrototypeOf;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQIRED = false;\nvar NAME;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return has(TypedArrayConstructorsList, klass)\n || has(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (setPrototypeOf) {\n if (isPrototypeOf.call(TypedArray, C)) return C;\n } else for (var ARRAY in TypedArrayConstructorsList) if (has(TypedArrayConstructorsList, NAME)) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (C === TypedArrayConstructor || isPrototypeOf.call(TypedArrayConstructor, C))) {\n return C;\n }\n } throw TypeError('Target is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor.prototype, KEY)) {\n delete TypedArrayConstructor.prototype[KEY];\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n redefine(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && has(TypedArrayConstructor, KEY)) {\n delete TypedArrayConstructor[KEY];\n }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return redefine(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && Int8Array[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n redefine(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n if (!global[NAME]) NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || typeof TypedArray != 'function' || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !has(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n\n\n/***/ }),\n\n/***/ 3331:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar NATIVE_ARRAY_BUFFER = __webpack_require__(4019);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefineAll = __webpack_require__(2248);\nvar fails = __webpack_require__(7293);\nvar anInstance = __webpack_require__(5787);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar IEEE754 = __webpack_require__(1179);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar defineProperty = __webpack_require__(3070).f;\nvar arrayFill = __webpack_require__(1285);\nvar setToStringTag = __webpack_require__(8003);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n\n\n/***/ }),\n\n/***/ 1048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n\n\n/***/ }),\n\n/***/ 1285:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toObject = __webpack_require__(7908);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 8533:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $forEach = __webpack_require__(2092).forEach;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n} : [].forEach;\n\n\n/***/ }),\n\n/***/ 8457:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(9974);\nvar toObject = __webpack_require__(7908);\nvar callWithSafeIterationClosing = __webpack_require__(3411);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar getIteratorMethod = __webpack_require__(1246);\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n\n/***/ 1318:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n\n/***/ 2092:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar bind = __webpack_require__(9974);\nvar IndexedObject = __webpack_require__(8361);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar arraySpeciesCreate = __webpack_require__(5417);\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n\n\n/***/ }),\n\n/***/ 6583:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar min = Math.min;\nvar nativeLastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!nativeLastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return nativeLastIndexOf.apply(this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : nativeLastIndexOf;\n\n\n/***/ }),\n\n/***/ 1194:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n\n/***/ 9341:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n\n\n/***/ }),\n\n/***/ 3671:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\nvar toLength = __webpack_require__(7466);\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 5417:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n\n/***/ 3411:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar iteratorClose = __webpack_require__(9212);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n\n\n/***/ }),\n\n/***/ 7072:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n\n/***/ 4326:\n/***/ (function(module) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ 648:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classofRaw = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n\n/***/ 9920:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar ownKeys = __webpack_require__(3887);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar definePropertyModule = __webpack_require__(3070);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n\n/***/ 8544:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n\n/***/ 4994:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(3383).IteratorPrototype;\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar setToStringTag = __webpack_require__(8003);\nvar Iterators = __webpack_require__(7497);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n\n/***/ 8880:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ 9114:\n/***/ (function(module) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ 6135:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPrimitive = __webpack_require__(7593);\nvar definePropertyModule = __webpack_require__(3070);\nvar createPropertyDescriptor = __webpack_require__(9114);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n\n/***/ 654:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar getPrototypeOf = __webpack_require__(9518);\nvar setPrototypeOf = __webpack_require__(7674);\nvar setToStringTag = __webpack_require__(8003);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\nvar Iterators = __webpack_require__(7497);\nvar IteratorsCore = __webpack_require__(3383);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n\n/***/ 9781:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n\n/***/ 317:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ 8324:\n/***/ (function(module) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n\n/***/ 8113:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n\n/***/ 7392:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar userAgent = __webpack_require__(8113);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n\n/***/ 748:\n/***/ (function(module) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n\n/***/ 2109:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar getOwnPropertyDescriptor = __webpack_require__(1236).f;\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar redefine = __webpack_require__(1320);\nvar setGlobal = __webpack_require__(3505);\nvar copyConstructorProperties = __webpack_require__(9920);\nvar isForced = __webpack_require__(4705);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n\n/***/ 7293:\n/***/ (function(module) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ 7007:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(4916);\nvar redefine = __webpack_require__(1320);\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar regexpExec = __webpack_require__(2261);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n\n/***/ 9974:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(3099);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ 5005:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar path = __webpack_require__(857);\nvar global = __webpack_require__(7854);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n\n/***/ 1246:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(648);\nvar Iterators = __webpack_require__(7497);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n\n/***/ 8554:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar getIteratorMethod = __webpack_require__(1246);\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n\n\n/***/ }),\n\n/***/ 647:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n\n\n/***/ }),\n\n/***/ 7854:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n /* global globalThis -- safe */\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof __webpack_require__.g == 'object' && __webpack_require__.g) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n/***/ }),\n\n/***/ 6656:\n/***/ (function(module) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ 3501:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 490:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n\n/***/ 4664:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar createElement = __webpack_require__(317);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ 1179:\n/***/ (function(module) {\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n\n\n/***/ }),\n\n/***/ 8361:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar classof = __webpack_require__(4326);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n\n/***/ 9587:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar setPrototypeOf = __webpack_require__(7674);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ }),\n\n/***/ 2788:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar store = __webpack_require__(5465);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n\n/***/ 9909:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(8536);\nvar global = __webpack_require__(7854);\nvar isObject = __webpack_require__(111);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar objectHas = __webpack_require__(6656);\nvar shared = __webpack_require__(5465);\nvar sharedKey = __webpack_require__(6200);\nvar hiddenKeys = __webpack_require__(3501);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n\n/***/ 7659:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\nvar Iterators = __webpack_require__(7497);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n\n/***/ 3157:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n\n\n/***/ }),\n\n/***/ 4705:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n\n/***/ 111:\n/***/ (function(module) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ 1913:\n/***/ (function(module) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ 7850:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\nvar classof = __webpack_require__(4326);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ 9212:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n\n\n/***/ }),\n\n/***/ 3383:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(7293);\nvar getPrototypeOf = __webpack_require__(9518);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n\n/***/ 7497:\n/***/ (function(module) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ 133:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n /* global Symbol -- required for testing */\n return !String(Symbol());\n});\n\n\n/***/ }),\n\n/***/ 590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar IS_PURE = __webpack_require__(1913);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n\n\n/***/ }),\n\n/***/ 8536:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar inspectSource = __webpack_require__(2788);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n\n/***/ 1574:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar fails = __webpack_require__(7293);\nvar objectKeys = __webpack_require__(1956);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar toObject = __webpack_require__(7908);\nvar IndexedObject = __webpack_require__(8361);\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n /* global Symbol -- required for testing */\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n\n\n/***/ }),\n\n/***/ 30:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar defineProperties = __webpack_require__(6048);\nvar enumBugKeys = __webpack_require__(748);\nvar hiddenKeys = __webpack_require__(3501);\nvar html = __webpack_require__(490);\nvar documentCreateElement = __webpack_require__(317);\nvar sharedKey = __webpack_require__(6200);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ 6048:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar definePropertyModule = __webpack_require__(3070);\nvar anObject = __webpack_require__(9670);\nvar objectKeys = __webpack_require__(1956);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ 3070:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\nvar anObject = __webpack_require__(9670);\nvar toPrimitive = __webpack_require__(7593);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ 1236:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar propertyIsEnumerableModule = __webpack_require__(5296);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar toIndexedObject = __webpack_require__(5656);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar IE8_DOM_DEFINE = __webpack_require__(4664);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n\n/***/ 8006:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n\n/***/ 5181:\n/***/ (function(__unused_webpack_module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ 9518:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toObject = __webpack_require__(7908);\nvar sharedKey = __webpack_require__(6200);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n\n/***/ 6324:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar has = __webpack_require__(6656);\nvar toIndexedObject = __webpack_require__(5656);\nvar indexOf = __webpack_require__(1318).indexOf;\nvar hiddenKeys = __webpack_require__(3501);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ 1956:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(6324);\nvar enumBugKeys = __webpack_require__(748);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ 5296:\n/***/ (function(__unused_webpack_module, exports) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ 7674:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar anObject = __webpack_require__(9670);\nvar aPossiblePrototype = __webpack_require__(6077);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar classof = __webpack_require__(648);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n\n/***/ 3887:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(5005);\nvar getOwnPropertyNamesModule = __webpack_require__(8006);\nvar getOwnPropertySymbolsModule = __webpack_require__(5181);\nvar anObject = __webpack_require__(9670);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n\n/***/ 857:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\n\nmodule.exports = global;\n\n\n/***/ }),\n\n/***/ 2248:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(1320);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n\n/***/ 1320:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar has = __webpack_require__(6656);\nvar setGlobal = __webpack_require__(3505);\nvar inspectSource = __webpack_require__(2788);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n\n/***/ 7651:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar classof = __webpack_require__(4326);\nvar regexpExec = __webpack_require__(2261);\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n\n\n/***/ }),\n\n/***/ 2261:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpFlags = __webpack_require__(7066);\nvar stickyHelpers = __webpack_require__(2999);\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\n// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ 7066:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(9670);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ 2999:\n/***/ (function(__unused_webpack_module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar fails = __webpack_require__(7293);\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\n\n/***/ }),\n\n/***/ 4488:\n/***/ (function(module) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ 3505:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n\n/***/ 6340:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(5005);\nvar definePropertyModule = __webpack_require__(3070);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar DESCRIPTORS = __webpack_require__(9781);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n\n/***/ 8003:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(3070).f;\nvar has = __webpack_require__(6656);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n\n/***/ 6200:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar shared = __webpack_require__(2309);\nvar uid = __webpack_require__(9711);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ 5465:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar setGlobal = __webpack_require__(3505);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n\n/***/ 2309:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(1913);\nvar store = __webpack_require__(5465);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.9.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ 6707:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(9670);\nvar aFunction = __webpack_require__(3099);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n\n/***/ 8710:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n\n/***/ 3197:\n/***/ (function(module) {\n\n\"use strict\";\n\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n\n\n/***/ }),\n\n/***/ 6091:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar fails = __webpack_require__(7293);\nvar whitespaces = __webpack_require__(1361);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n\n\n/***/ }),\n\n/***/ 3111:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\nvar whitespaces = __webpack_require__(1361);\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n\n/***/ 1400:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n\n/***/ 7067:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n\n\n/***/ }),\n\n/***/ 5656:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(8361);\nvar requireObjectCoercible = __webpack_require__(4488);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n\n/***/ 9958:\n/***/ (function(module) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n\n/***/ 7466:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ 7908:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(4488);\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n\n/***/ 4590:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toPositiveInteger = __webpack_require__(3002);\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n\n\n/***/ }),\n\n/***/ 3002:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(9958);\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n\n\n/***/ }),\n\n/***/ 7593:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(111);\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ 1694:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n\n/***/ 9843:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = __webpack_require__(3832);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayBufferModule = __webpack_require__(3331);\nvar anInstance = __webpack_require__(5787);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar toLength = __webpack_require__(7466);\nvar toIndex = __webpack_require__(7067);\nvar toOffset = __webpack_require__(4590);\nvar toPrimitive = __webpack_require__(7593);\nvar has = __webpack_require__(6656);\nvar classof = __webpack_require__(648);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar setPrototypeOf = __webpack_require__(7674);\nvar getOwnPropertyNames = __webpack_require__(8006).f;\nvar typedArrayFrom = __webpack_require__(7321);\nvar forEach = __webpack_require__(2092).forEach;\nvar setSpecies = __webpack_require__(6340);\nvar definePropertyModule = __webpack_require__(3070);\nvar getOwnPropertyDescriptorModule = __webpack_require__(1236);\nvar InternalStateModule = __webpack_require__(9909);\nvar inheritIfRequired = __webpack_require__(9587);\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n\n\n/***/ }),\n\n/***/ 3832:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n/* eslint-disable no-new -- required for testing */\nvar global = __webpack_require__(7854);\nvar fails = __webpack_require__(7293);\nvar checkCorrectnessOfIteration = __webpack_require__(7072);\nvar NATIVE_ARRAY_BUFFER_VIEWS = __webpack_require__(260).NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n\n\n/***/ }),\n\n/***/ 3074:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\nvar speciesConstructor = __webpack_require__(6707);\n\nmodule.exports = function (instance, list) {\n var C = speciesConstructor(instance, instance.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\n\n/***/ }),\n\n/***/ 7321:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar getIteratorMethod = __webpack_require__(1246);\nvar isArrayIteratorMethod = __webpack_require__(7659);\nvar bind = __webpack_require__(9974);\nvar aTypedArrayConstructor = __webpack_require__(260).aTypedArrayConstructor;\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, step, iterator, next;\n if (iteratorMethod != undefined && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n O = [];\n while (!(step = next.call(iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2], 2);\n }\n length = toLength(O.length);\n result = new (aTypedArrayConstructor(this))(length);\n for (i = 0; length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ 9711:\n/***/ (function(module) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n\n/***/ 3307:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(133);\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n\n/***/ 5112:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar shared = __webpack_require__(2309);\nvar has = __webpack_require__(6656);\nvar uid = __webpack_require__(9711);\nvar NATIVE_SYMBOL = __webpack_require__(133);\nvar USE_SYMBOL_AS_UID = __webpack_require__(3307);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n\n/***/ 1361:\n/***/ (function(module) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n\n/***/ 8264:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar global = __webpack_require__(7854);\nvar arrayBufferModule = __webpack_require__(3331);\nvar setSpecies = __webpack_require__(6340);\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n\n\n/***/ }),\n\n/***/ 2222:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar isArray = __webpack_require__(3157);\nvar isObject = __webpack_require__(111);\nvar toObject = __webpack_require__(7908);\nvar toLength = __webpack_require__(7466);\nvar createProperty = __webpack_require__(6135);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar V8_VERSION = __webpack_require__(7392);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = toLength(E.length);\n if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ 7327:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $filter = __webpack_require__(2092).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 2772:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $indexOf = __webpack_require__(1318).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(9341);\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 6992:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(5656);\nvar addToUnscopables = __webpack_require__(1223);\nvar Iterators = __webpack_require__(7497);\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ 1249:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $map = __webpack_require__(2092).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ 7042:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar isObject = __webpack_require__(111);\nvar isArray = __webpack_require__(3157);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toLength = __webpack_require__(7466);\nvar toIndexedObject = __webpack_require__(5656);\nvar createProperty = __webpack_require__(6135);\nvar wellKnownSymbol = __webpack_require__(5112);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n/***/ }),\n\n/***/ 561:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar toInteger = __webpack_require__(9958);\nvar toLength = __webpack_require__(7466);\nvar toObject = __webpack_require__(7908);\nvar arraySpeciesCreate = __webpack_require__(5417);\nvar createProperty = __webpack_require__(6135);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(1194);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n\n\n/***/ }),\n\n/***/ 8309:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9781);\nvar defineProperty = __webpack_require__(3070).f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return FunctionPrototypeToString.call(this).match(nameRE)[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n/***/ }),\n\n/***/ 489:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2109);\nvar fails = __webpack_require__(7293);\nvar toObject = __webpack_require__(7908);\nvar nativeGetPrototypeOf = __webpack_require__(9518);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(8544);\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n\n\n/***/ }),\n\n/***/ 1539:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(1694);\nvar redefine = __webpack_require__(1320);\nvar toString = __webpack_require__(288);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 4916:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar exec = __webpack_require__(2261);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n\n\n/***/ }),\n\n/***/ 9714:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar redefine = __webpack_require__(1320);\nvar anObject = __webpack_require__(9670);\nvar fails = __webpack_require__(7293);\nvar flags = __webpack_require__(7066);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n\n/***/ 8783:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(8710).charAt;\nvar InternalStateModule = __webpack_require__(9909);\nvar defineIterator = __webpack_require__(654);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n\n/***/ 4723:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar regExpExec = __webpack_require__(7651);\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ 5306:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar anObject = __webpack_require__(9670);\nvar toLength = __webpack_require__(7466);\nvar toInteger = __webpack_require__(9958);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar advanceStringIndex = __webpack_require__(1530);\nvar getSubstitution = __webpack_require__(647);\nvar regExpExec = __webpack_require__(7651);\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n\n\n/***/ }),\n\n/***/ 3123:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(7007);\nvar isRegExp = __webpack_require__(7850);\nvar anObject = __webpack_require__(9670);\nvar requireObjectCoercible = __webpack_require__(4488);\nvar speciesConstructor = __webpack_require__(6707);\nvar advanceStringIndex = __webpack_require__(1530);\nvar toLength = __webpack_require__(7466);\nvar callRegExpExec = __webpack_require__(7651);\nvar regexpExec = __webpack_require__(2261);\nvar fails = __webpack_require__(7293);\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n\n\n/***/ }),\n\n/***/ 3210:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2109);\nvar $trim = __webpack_require__(3111).trim;\nvar forcedStringTrimMethod = __webpack_require__(6091);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n\n\n/***/ }),\n\n/***/ 2990:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $copyWithin = __webpack_require__(1048);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return $copyWithin.call(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 8927:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $every = __webpack_require__(2092).every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3105:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $fill = __webpack_require__(1285);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n return $fill.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 5035:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $filter = __webpack_require__(2092).filter;\nvar fromSpeciesAndList = __webpack_require__(3074);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n\n\n/***/ }),\n\n/***/ 7174:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $findIndex = __webpack_require__(2092).findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4345:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $find = __webpack_require__(2092).find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2846:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $forEach = __webpack_require__(2092).forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 4731:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $includes = __webpack_require__(1318).includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 7209:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $indexOf = __webpack_require__(1318).indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 6319:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar ArrayIterators = __webpack_require__(6992);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = ArrayIterators.values;\nvar arrayKeys = ArrayIterators.keys;\nvar arrayEntries = ArrayIterators.entries;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar nativeTypedArrayIterator = Uint8Array && Uint8Array.prototype[ITERATOR];\n\nvar CORRECT_ITER_NAME = !!nativeTypedArrayIterator\n && (nativeTypedArrayIterator.name == 'values' || nativeTypedArrayIterator.name == undefined);\n\nvar typedArrayValues = function values() {\n return arrayValues.call(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys.call(aTypedArray(this));\n});\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, !CORRECT_ITER_NAME);\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, !CORRECT_ITER_NAME);\n\n\n/***/ }),\n\n/***/ 8867:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = [].join;\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('join', function join(separator) {\n return $join.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 7789:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $lastIndexOf = __webpack_require__(6583);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\n// eslint-disable-next-line no-unused-vars -- required for `.length`\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n return $lastIndexOf.apply(aTypedArray(this), arguments);\n});\n\n\n/***/ }),\n\n/***/ 3739:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $map = __webpack_require__(2092).map;\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (aTypedArrayConstructor(speciesConstructor(O, O.constructor)))(length);\n });\n});\n\n\n/***/ }),\n\n/***/ 4483:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduceRight = __webpack_require__(3671).right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRicht` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n return $reduceRight(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 9368:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $reduce = __webpack_require__(3671).left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n return $reduce(aTypedArray(this), callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 2056:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n\n\n/***/ }),\n\n/***/ 3462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toOffset = __webpack_require__(4590);\nvar toObject = __webpack_require__(7908);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n /* global Int8Array -- safe */\n new Int8Array(1).set({});\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 678:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar speciesConstructor = __webpack_require__(6707);\nvar fails = __webpack_require__(7293);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $slice = [].slice;\n\nvar FORCED = fails(function () {\n /* global Int8Array -- safe */\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = $slice.call(aTypedArray(this), start, end);\n var C = speciesConstructor(this, this.constructor);\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 7462:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar $some = __webpack_require__(2092).some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n\n\n/***/ }),\n\n/***/ 3824:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $sort = [].sort;\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n return $sort.call(aTypedArray(this), comparefn);\n});\n\n\n/***/ }),\n\n/***/ 5021:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar toLength = __webpack_require__(7466);\nvar toAbsoluteIndex = __webpack_require__(1400);\nvar speciesConstructor = __webpack_require__(6707);\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O.constructor))(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n\n\n/***/ }),\n\n/***/ 2974:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(7854);\nvar ArrayBufferViewCore = __webpack_require__(260);\nvar fails = __webpack_require__(7293);\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\nvar $slice = [].slice;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return $toLocaleString.apply(TO_LOCALE_STRING_BUG ? $slice.call(aTypedArray(this)) : aTypedArray(this), arguments);\n}, FORCED);\n\n\n/***/ }),\n\n/***/ 5016:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\nvar exportTypedArrayMethod = __webpack_require__(260).exportTypedArrayMethod;\nvar fails = __webpack_require__(7293);\nvar global = __webpack_require__(7854);\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar arrayJoin = [].join;\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return arrayJoin.call(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n\n\n/***/ }),\n\n/***/ 2472:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar createTypedArrayConstructor = __webpack_require__(9843);\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n\n\n/***/ }),\n\n/***/ 4747:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar forEach = __webpack_require__(8533);\nvar createNonEnumerableProperty = __webpack_require__(8880);\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n}\n\n\n/***/ }),\n\n/***/ 3948:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\nvar global = __webpack_require__(7854);\nvar DOMIterables = __webpack_require__(8324);\nvar ArrayIteratorMethods = __webpack_require__(6992);\nvar createNonEnumerableProperty = __webpack_require__(8880);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n\n/***/ 1637:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(6992);\nvar $ = __webpack_require__(2109);\nvar getBuiltIn = __webpack_require__(5005);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar redefine = __webpack_require__(1320);\nvar redefineAll = __webpack_require__(2248);\nvar setToStringTag = __webpack_require__(8003);\nvar createIteratorConstructor = __webpack_require__(4994);\nvar InternalStateModule = __webpack_require__(9909);\nvar anInstance = __webpack_require__(5787);\nvar hasOwn = __webpack_require__(6656);\nvar bind = __webpack_require__(9974);\nvar classof = __webpack_require__(648);\nvar anObject = __webpack_require__(9670);\nvar isObject = __webpack_require__(111);\nvar create = __webpack_require__(30);\nvar createPropertyDescriptor = __webpack_require__(9114);\nvar getIterator = __webpack_require__(8554);\nvar getIteratorMethod = __webpack_require__(1246);\nvar wellKnownSymbol = __webpack_require__(5112);\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n\n\n/***/ }),\n\n/***/ 285:\n/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\n__webpack_require__(8783);\nvar $ = __webpack_require__(2109);\nvar DESCRIPTORS = __webpack_require__(9781);\nvar USE_NATIVE_URL = __webpack_require__(590);\nvar global = __webpack_require__(7854);\nvar defineProperties = __webpack_require__(6048);\nvar redefine = __webpack_require__(1320);\nvar anInstance = __webpack_require__(5787);\nvar has = __webpack_require__(6656);\nvar assign = __webpack_require__(1574);\nvar arrayFrom = __webpack_require__(8457);\nvar codeAt = __webpack_require__(8710).codeAt;\nvar toASCII = __webpack_require__(3197);\nvar setToStringTag = __webpack_require__(8003);\nvar URLSearchParamsModule = __webpack_require__(1637);\nvar InternalStateModule = __webpack_require__(9909);\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\u0000\\t\\u000A\\u000D #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\u0000\\t\\u000A\\u000D #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\u000A\\u000D]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URL(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"Dropzone\": function() { return /* reexport */ Dropzone; },\n \"default\": function() { return /* binding */ dropzone_dist; }\n});\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.concat.js\nvar es_array_concat = __webpack_require__(2222);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js\nvar es_array_filter = __webpack_require__(7327);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.index-of.js\nvar es_array_index_of = __webpack_require__(2772);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__(6992);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.map.js\nvar es_array_map = __webpack_require__(1249);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__(7042);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.splice.js\nvar es_array_splice = __webpack_require__(561);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array-buffer.constructor.js\nvar es_array_buffer_constructor = __webpack_require__(8264);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__(8309);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.get-prototype-of.js\nvar es_object_get_prototype_of = __webpack_require__(489);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__(1539);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js\nvar es_regexp_exec = __webpack_require__(4916);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.to-string.js\nvar es_regexp_to_string = __webpack_require__(9714);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__(8783);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js\nvar es_string_match = __webpack_require__(4723);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js\nvar es_string_replace = __webpack_require__(5306);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.split.js\nvar es_string_split = __webpack_require__(3123);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.trim.js\nvar es_string_trim = __webpack_require__(3210);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.uint8-array.js\nvar es_typed_array_uint8_array = __webpack_require__(2472);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.copy-within.js\nvar es_typed_array_copy_within = __webpack_require__(2990);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.every.js\nvar es_typed_array_every = __webpack_require__(8927);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.fill.js\nvar es_typed_array_fill = __webpack_require__(3105);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.filter.js\nvar es_typed_array_filter = __webpack_require__(5035);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find.js\nvar es_typed_array_find = __webpack_require__(4345);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.find-index.js\nvar es_typed_array_find_index = __webpack_require__(7174);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.for-each.js\nvar es_typed_array_for_each = __webpack_require__(2846);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.includes.js\nvar es_typed_array_includes = __webpack_require__(4731);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.index-of.js\nvar es_typed_array_index_of = __webpack_require__(7209);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.iterator.js\nvar es_typed_array_iterator = __webpack_require__(6319);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.join.js\nvar es_typed_array_join = __webpack_require__(8867);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.last-index-of.js\nvar es_typed_array_last_index_of = __webpack_require__(7789);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.map.js\nvar es_typed_array_map = __webpack_require__(3739);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce.js\nvar es_typed_array_reduce = __webpack_require__(9368);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reduce-right.js\nvar es_typed_array_reduce_right = __webpack_require__(4483);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.reverse.js\nvar es_typed_array_reverse = __webpack_require__(2056);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.set.js\nvar es_typed_array_set = __webpack_require__(3462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.slice.js\nvar es_typed_array_slice = __webpack_require__(678);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.some.js\nvar es_typed_array_some = __webpack_require__(7462);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.sort.js\nvar es_typed_array_sort = __webpack_require__(3824);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.subarray.js\nvar es_typed_array_subarray = __webpack_require__(5021);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-locale-string.js\nvar es_typed_array_to_locale_string = __webpack_require__(2974);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es.typed-array.to-string.js\nvar es_typed_array_to_string = __webpack_require__(5016);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.for-each.js\nvar web_dom_collections_for_each = __webpack_require__(4747);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__(3948);\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.url.js\nvar web_url = __webpack_require__(285);\n;// CONCATENATED MODULE: ./src/emitter.js\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nvar Emitter = /*#__PURE__*/function () {\n function Emitter() {\n _classCallCheck(this, Emitter);\n }\n\n _createClass(Emitter, [{\n key: \"on\",\n value: // Add an event listener for given event\n function on(event, fn) {\n this._callbacks = this._callbacks || {}; // Create namespace for this event\n\n if (!this._callbacks[event]) {\n this._callbacks[event] = [];\n }\n\n this._callbacks[event].push(fn);\n\n return this;\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n this._callbacks = this._callbacks || {};\n var callbacks = this._callbacks[event];\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (callbacks) {\n var _iterator = _createForOfIteratorHelper(callbacks, true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var callback = _step.value;\n callback.apply(this, args);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } // trigger a corresponding DOM event\n\n\n if (this.element) {\n this.element.dispatchEvent(this.makeEvent(\"dropzone:\" + event, {\n args: args\n }));\n }\n\n return this;\n }\n }, {\n key: \"makeEvent\",\n value: function makeEvent(eventName, detail) {\n var params = {\n bubbles: true,\n cancelable: true,\n detail: detail\n };\n\n if (typeof window.CustomEvent === \"function\") {\n return new CustomEvent(eventName, params);\n } else {\n // IE 11 support\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n var evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n } // Remove event listener for given event. If fn is not provided, all event\n // listeners for that event will be removed. If neither is provided, all\n // event listeners will be removed.\n\n }, {\n key: \"off\",\n value: function off(event, fn) {\n if (!this._callbacks || arguments.length === 0) {\n this._callbacks = {};\n return this;\n } // specific event\n\n\n var callbacks = this._callbacks[event];\n\n if (!callbacks) {\n return this;\n } // remove all handlers\n\n\n if (arguments.length === 1) {\n delete this._callbacks[event];\n return this;\n } // remove specific handler\n\n\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n\n if (callback === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n return this;\n }\n }]);\n\n return Emitter;\n}();\n\n\n;// CONCATENATED MODULE: ./src/preview-template.html\n// Module\nvar code = \"
Check
Error
\";\n// Exports\n/* harmony default export */ var preview_template = (code);\n;// CONCATENATED MODULE: ./src/options.js\n\n\n\n\n\nfunction options_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = options_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction options_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return options_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return options_arrayLikeToArray(o, minLen); }\n\nfunction options_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n\n\nvar defaultOptions = {\n /**\n * Has to be specified on elements other than form (or when the form\n * doesn't have an `action` attribute). You can also\n * provide a function that will be called with `files` and\n * must return the url (since `v3.12.0`)\n */\n url: null,\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method (since `v3.12.0`).\n */\n method: \"post\",\n\n /**\n * Will be set on the XHRequest.\n */\n withCredentials: false,\n\n /**\n * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n * If set to null or 0, no timeout is going to be set.\n */\n timeout: null,\n\n /**\n * How many file uploads to process in parallel (See the\n * Enqueuing file uploads documentation section for more info)\n */\n parallelUploads: 2,\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `processingmultiple`). See the events\n * documentation section for more information.\n */\n uploadMultiple: false,\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n */\n chunking: false,\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n forceChunking: false,\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n chunkSize: 2000000,\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n parallelChunkUploads: false,\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n retryChunks: false,\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n retryChunksLimit: 3,\n\n /**\n * The maximum filesize (in bytes) that is allowed to be uploaded.\n */\n maxFilesize: 256,\n\n /**\n * The name of the file param that gets transferred.\n * **NOTE**: If you have the option `uploadMultiple` set to `true`, then\n * Dropzone will append `[]` to the name.\n */\n paramName: \"file\",\n\n /**\n * Whether thumbnails for images should be generated\n */\n createImageThumbnails: true,\n\n /**\n * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n */\n maxThumbnailFilesize: 10,\n\n /**\n * If `null`, the ratio of the image will be used to calculate it.\n */\n thumbnailWidth: 120,\n\n /**\n * The same as `thumbnailWidth`. If both are null, images will not be resized.\n */\n thumbnailHeight: 120,\n\n /**\n * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n thumbnailMethod: \"crop\",\n\n /**\n * If set, images will be resized to these dimensions before being **uploaded**.\n * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n * ratio of the file will be preserved.\n *\n * The `options.transformFile` function uses these options, so if the `transformFile` function\n * is overridden, these options don't do anything.\n */\n resizeWidth: null,\n\n /**\n * See `resizeWidth`.\n */\n resizeHeight: null,\n\n /**\n * The mime type of the resized image (before it gets uploaded to the server).\n * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n * See `resizeWidth` for more information.\n */\n resizeMimeType: null,\n\n /**\n * The quality of the resized images. See `resizeWidth`.\n */\n resizeQuality: 0.8,\n\n /**\n * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n * Can be either `contain` or `crop`.\n */\n resizeMethod: \"contain\",\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n filesizeBase: 1000,\n\n /**\n * If not `null` defines how many files this Dropzone handles. If it exceeds,\n * the event `maxfilesexceeded` will be called. The dropzone element gets the\n * class `dz-max-files-reached` accordingly so you can provide visual\n * feedback.\n */\n maxFiles: null,\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n */\n headers: null,\n\n /**\n * If `true`, the dropzone element itself will be clickable, if `false`\n * nothing will be clickable.\n *\n * You can also pass an HTML element, a CSS selector (for multiple elements)\n * or an array of those. In that case, all of those elements will trigger an\n * upload when clicked.\n */\n clickable: true,\n\n /**\n * Whether hidden files in directories should be ignored.\n */\n ignoreHiddenFiles: true,\n\n /**\n * The default implementation of `accept` checks the file's mime type or\n * extension against this list. This is a comma separated list of mime\n * types or file extensions.\n *\n * Eg.: `image/*,application/pdf,.psd`\n *\n * If the Dropzone is `clickable` this option will also be used as\n * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n * parameter on the hidden file input as well.\n */\n acceptedFiles: null,\n\n /**\n * **Deprecated!**\n * Use acceptedFiles instead.\n */\n acceptedMimeTypes: null,\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want want all files sent at once).\n * If you're ready to send the file simply call `myDropzone.processQueue()`.\n *\n * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n * section for more information.\n */\n autoProcessQueue: true,\n\n /**\n * If false, files added to the dropzone will not be queued by default.\n * You'll have to call `enqueueFile(file)` manually.\n */\n autoQueue: true,\n\n /**\n * If `true`, this will add a link to every file preview to remove or cancel (if\n * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n * and `dictRemoveFile` options are used for the wording.\n */\n addRemoveLinks: false,\n\n /**\n * Defines where to display the file previews – if `null` the\n * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n * selector. The element should have the `dropzone-previews` class so\n * the previews are displayed properly.\n */\n previewsContainer: null,\n\n /**\n * Set this to `true` if you don't want previews to be shown.\n */\n disablePreviews: false,\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly.\n */\n hiddenInputContainer: \"body\",\n\n /**\n * If null, no capture type will be specified\n * If camera, mobile devices will skip the file selection and choose camera\n * If microphone, mobile devices will skip the file selection and choose the microphone\n * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n * On apple devices multiple must be set to false. AcceptedFiles may need to\n * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n */\n capture: null,\n\n /**\n * **Deprecated**. Use `renameFile` instead.\n */\n renameFilename: null,\n\n /**\n * A function that is invoked before the file is uploaded to the server and renames the file.\n * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n * file that gets used during the upload can be accessed through `file.upload.filename`.\n */\n renameFile: null,\n\n /**\n * If `true` the fallback will be forced. This is very useful to test your server\n * implementations first and make sure that everything works as\n * expected without dropzone if you experience problems, and to test\n * how your fallbacks will look.\n */\n forceFallback: false,\n\n /**\n * The text used before any files are dropped.\n */\n dictDefaultMessage: \"Drop files here to upload\",\n\n /**\n * The text that replaces the default message text it the browser is not supported.\n */\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\n\n /**\n * The text that will be added before the fallback form.\n * If you provide a fallback element yourself, or if this option is `null` this will\n * be ignored.\n */\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\n\n /**\n * If the filesize is too big.\n * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n */\n dictFileTooBig: \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n /**\n * If the file doesn't match the file type.\n */\n dictInvalidFileType: \"You can't upload files of this type.\",\n\n /**\n * If the server response was invalid.\n * `{{statusCode}}` will be replaced with the servers status code.\n */\n dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n */\n dictCancelUpload: \"Cancel upload\",\n\n /**\n * The text that is displayed if an upload was manually canceled\n */\n dictUploadCanceled: \"Upload canceled.\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n */\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n /**\n * If `addRemoveLinks` is true, the text to be used to remove a file.\n */\n dictRemoveFile: \"Remove file\",\n\n /**\n * If this is not null, then the user will be prompted before removing a file.\n */\n dictRemoveFileConfirmation: null,\n\n /**\n * Displayed if `maxFiles` is st and exceeded.\n * The string `{{maxFiles}}` will be replaced by the configuration value.\n */\n dictMaxFilesExceeded: \"You can not upload any more files.\",\n\n /**\n * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n * `b` for bytes.\n */\n dictFileSizeUnits: {\n tb: \"TB\",\n gb: \"GB\",\n mb: \"MB\",\n kb: \"KB\",\n b: \"b\"\n },\n\n /**\n * Called when dropzone initialized\n * You can add event listeners here\n */\n init: function init() {},\n\n /**\n * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n * of a function, this needs to return a map.\n *\n * The default implementation does nothing for normal uploads, but adds relevant information for\n * chunked uploads.\n *\n * This is the same as adding hidden input fields in the form element.\n */\n params: function params(files, xhr, chunk) {\n if (chunk) {\n return {\n dzuuid: chunk.file.upload.uuid,\n dzchunkindex: chunk.index,\n dztotalfilesize: chunk.file.size,\n dzchunksize: this.options.chunkSize,\n dztotalchunkcount: chunk.file.upload.totalChunkCount,\n dzchunkbyteoffset: chunk.index * this.options.chunkSize\n };\n }\n },\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n accept: function accept(file, done) {\n return done();\n },\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n chunksUploaded: function chunksUploaded(file, done) {\n done();\n },\n\n /**\n * Gets called when the browser is not supported.\n * The default implementation shows the fallback input field and adds\n * a text.\n */\n fallback: function fallback() {\n // This code should pass in IE7... :(\n var messageElement;\n this.element.className = \"\".concat(this.element.className, \" dz-browser-not-supported\");\n\n var _iterator = options_createForOfIteratorHelper(this.element.getElementsByTagName(\"div\"), true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var child = _step.value;\n\n if (/(^| )dz-message($| )/.test(child.className)) {\n messageElement = child;\n child.className = \"dz-message\"; // Removes the 'dz-default' class\n\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (!messageElement) {\n messageElement = Dropzone.createElement('
');\n this.element.appendChild(messageElement);\n }\n\n var span = messageElement.getElementsByTagName(\"span\")[0];\n\n if (span) {\n if (span.textContent != null) {\n span.textContent = this.options.dictFallbackMessage;\n } else if (span.innerText != null) {\n span.innerText = this.options.dictFallbackMessage;\n }\n }\n\n return this.element.appendChild(this.getFallbackForm());\n },\n\n /**\n * Gets called to calculate the thumbnail dimensions.\n *\n * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n *\n * - `srcWidth` & `srcHeight` (required)\n * - `trgWidth` & `trgHeight` (required)\n * - `srcX` & `srcY` (optional, default `0`)\n * - `trgX` & `trgY` (optional, default `0`)\n *\n * Those values are going to be used by `ctx.drawImage()`.\n */\n resize: function resize(file, width, height, resizeMethod) {\n var info = {\n srcX: 0,\n srcY: 0,\n srcWidth: file.width,\n srcHeight: file.height\n };\n var srcRatio = file.width / file.height; // Automatically calculate dimensions if not specified\n\n if (width == null && height == null) {\n width = info.srcWidth;\n height = info.srcHeight;\n } else if (width == null) {\n width = height * srcRatio;\n } else if (height == null) {\n height = width / srcRatio;\n } // Make sure images aren't upscaled\n\n\n width = Math.min(width, info.srcWidth);\n height = Math.min(height, info.srcHeight);\n var trgRatio = width / height;\n\n if (info.srcWidth > width || info.srcHeight > height) {\n // Image is bigger and needs rescaling\n if (resizeMethod === \"crop\") {\n if (srcRatio > trgRatio) {\n info.srcHeight = file.height;\n info.srcWidth = info.srcHeight * trgRatio;\n } else {\n info.srcWidth = file.width;\n info.srcHeight = info.srcWidth / trgRatio;\n }\n } else if (resizeMethod === \"contain\") {\n // Method 'contain'\n if (srcRatio > trgRatio) {\n height = width / srcRatio;\n } else {\n width = height * srcRatio;\n }\n } else {\n throw new Error(\"Unknown resizeMethod '\".concat(resizeMethod, \"'\"));\n }\n }\n\n info.srcX = (file.width - info.srcWidth) / 2;\n info.srcY = (file.height - info.srcHeight) / 2;\n info.trgWidth = width;\n info.trgHeight = height;\n return info;\n },\n\n /**\n * Can be used to transform the file (for example, resize an image if necessary).\n *\n * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n * images according to those dimensions.\n *\n * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n * to be invoked with the file when the transformation is done.\n */\n transformFile: function transformFile(file, done) {\n if ((this.options.resizeWidth || this.options.resizeHeight) && file.type.match(/image.*/)) {\n return this.resizeImage(file, this.options.resizeWidth, this.options.resizeHeight, this.options.resizeMethod, done);\n } else {\n return done(file);\n }\n },\n\n /**\n * A string that contains the template used for each dropped\n * file. Change it to fulfill your needs but make sure to properly\n * provide all elements.\n *\n * If you want to use an actual HTML element instead of providing a String\n * as a config option, you could create a div with the id `tpl`,\n * put the template inside it and provide the element like this:\n *\n * document\n * .querySelector('#tpl')\n * .innerHTML\n *\n */\n previewTemplate: preview_template,\n\n /*\n Those functions register themselves to the events on init and handle all\n the user interface specific stuff. Overwriting them won't break the upload\n but can break the way it's displayed.\n You can overwrite them if you don't like the default behavior. If you just\n want to add an additional event handler, register it on the dropzone object\n and don't overwrite those options.\n */\n // Those are self explanatory and simply concern the DragnDrop.\n drop: function drop(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragstart: function dragstart(e) {},\n dragend: function dragend(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n dragenter: function dragenter(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragover: function dragover(e) {\n return this.element.classList.add(\"dz-drag-hover\");\n },\n dragleave: function dragleave(e) {\n return this.element.classList.remove(\"dz-drag-hover\");\n },\n paste: function paste(e) {},\n // Called whenever there are no files left in the dropzone anymore, and the\n // dropzone should be displayed as if in the initial state.\n reset: function reset() {\n return this.element.classList.remove(\"dz-started\");\n },\n // Called when a file is added to the queue\n // Receives `file`\n addedfile: function addedfile(file) {\n var _this = this;\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewTemplate = file.previewElement; // Backwards compatibility\n\n this.previewsContainer.appendChild(file.previewElement);\n\n var _iterator2 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-name]\"), true),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var node = _step2.value;\n node.textContent = file.name;\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n var _iterator3 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-size]\"), true),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n node = _step3.value;\n node.innerHTML = this.filesize(file.size);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = Dropzone.createElement(\"
\".concat(this.options.dictRemoveFile, \"\"));\n file.previewElement.appendChild(file._removeLink);\n }\n\n var removeFileEvent = function removeFileEvent(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (file.status === Dropzone.UPLOADING) {\n return Dropzone.confirm(_this.options.dictCancelUploadConfirmation, function () {\n return _this.removeFile(file);\n });\n } else {\n if (_this.options.dictRemoveFileConfirmation) {\n return Dropzone.confirm(_this.options.dictRemoveFileConfirmation, function () {\n return _this.removeFile(file);\n });\n } else {\n return _this.removeFile(file);\n }\n }\n };\n\n var _iterator4 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-remove]\"), true),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var removeLink = _step4.value;\n removeLink.addEventListener(\"click\", removeFileEvent);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n },\n // Called whenever a file is removed.\n removedfile: function removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n return this._updateMaxFilesReachedClass();\n },\n // Called when a thumbnail has been generated\n // Receives `file` and `dataUrl`\n thumbnail: function thumbnail(file, dataUrl) {\n if (file.previewElement) {\n file.previewElement.classList.remove(\"dz-file-preview\");\n\n var _iterator5 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\"), true),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var thumbnailElement = _step5.value;\n thumbnailElement.alt = file.name;\n thumbnailElement.src = dataUrl;\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n\n return setTimeout(function () {\n return file.previewElement.classList.add(\"dz-image-preview\");\n }, 1);\n }\n },\n // Called whenever an error occurs\n // Receives `file` and `message`\n error: function error(file, message) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n }\n\n var _iterator6 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-errormessage]\"), true),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var node = _step6.value;\n node.textContent = message;\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n },\n errormultiple: function errormultiple() {},\n // Called when a file gets processed. Since there is a cue, not all added\n // files are processed immediately.\n // Receives `file`\n processing: function processing(file) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-processing\");\n\n if (file._removeLink) {\n return file._removeLink.innerHTML = this.options.dictCancelUpload;\n }\n }\n },\n processingmultiple: function processingmultiple() {},\n // Called whenever the upload progress gets updated.\n // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n // To get the total number of bytes of the file, use `file.size`\n uploadprogress: function uploadprogress(file, progress, bytesSent) {\n if (file.previewElement) {\n var _iterator7 = options_createForOfIteratorHelper(file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\"), true),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var node = _step7.value;\n node.nodeName === \"PROGRESS\" ? node.value = progress : node.style.width = \"\".concat(progress, \"%\");\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n },\n // Called whenever the total upload progress gets updated.\n // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n totaluploadprogress: function totaluploadprogress() {},\n // Called just before the file is sent. Gets the `xhr` object as second\n // parameter, so you can modify it (for example to add a CSRF token) and a\n // `formData` object to add additional information.\n sending: function sending() {},\n sendingmultiple: function sendingmultiple() {},\n // When the complete upload is finished and successful\n // Receives `file`\n success: function success(file) {\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-success\");\n }\n },\n successmultiple: function successmultiple() {},\n // When the upload is canceled.\n canceled: function canceled(file) {\n return this.emit(\"error\", file, this.options.dictUploadCanceled);\n },\n canceledmultiple: function canceledmultiple() {},\n // When the upload is finished, either with success or an error.\n // Receives `file`\n complete: function complete(file) {\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n completemultiple: function completemultiple() {},\n maxfilesexceeded: function maxfilesexceeded() {},\n maxfilesreached: function maxfilesreached() {},\n queuecomplete: function queuecomplete() {},\n addedfiles: function addedfiles() {}\n};\n/* harmony default export */ var src_options = (defaultOptions);\n;// CONCATENATED MODULE: ./src/dropzone.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction dropzone_createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = dropzone_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction dropzone_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return dropzone_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return dropzone_arrayLikeToArray(o, minLen); }\n\nfunction dropzone_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction dropzone_classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction dropzone_defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction dropzone_createClass(Constructor, protoProps, staticProps) { if (protoProps) dropzone_defineProperties(Constructor.prototype, protoProps); if (staticProps) dropzone_defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\nvar Dropzone = /*#__PURE__*/function (_Emitter) {\n _inherits(Dropzone, _Emitter);\n\n var _super = _createSuper(Dropzone);\n\n function Dropzone(el, options) {\n var _this;\n\n dropzone_classCallCheck(this, Dropzone);\n\n _this = _super.call(this);\n var fallback, left;\n _this.element = el; // For backwards compatibility since the version was in the prototype previously\n\n _this.version = Dropzone.version;\n _this.clickableElements = [];\n _this.listeners = [];\n _this.files = []; // All files\n\n if (typeof _this.element === \"string\") {\n _this.element = document.querySelector(_this.element);\n } // Not checking if instance of HTMLElement or Element since IE9 is extremely weird.\n\n\n if (!_this.element || _this.element.nodeType == null) {\n throw new Error(\"Invalid dropzone element.\");\n }\n\n if (_this.element.dropzone) {\n throw new Error(\"Dropzone already attached.\");\n } // Now add this dropzone to the instances.\n\n\n Dropzone.instances.push(_assertThisInitialized(_this)); // Put the dropzone inside the element itself.\n\n _this.element.dropzone = _assertThisInitialized(_this);\n var elementOptions = (left = Dropzone.optionsForElement(_this.element)) != null ? left : {};\n _this.options = Dropzone.extend({}, src_options, elementOptions, options != null ? options : {});\n _this.options.previewTemplate = _this.options.previewTemplate.replace(/\\n*/g, \"\"); // If the browser failed, just call the fallback and leave\n\n if (_this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n return _possibleConstructorReturn(_this, _this.options.fallback.call(_assertThisInitialized(_this)));\n } // @options.url = @element.getAttribute \"action\" unless @options.url?\n\n\n if (_this.options.url == null) {\n _this.options.url = _this.element.getAttribute(\"action\");\n }\n\n if (!_this.options.url) {\n throw new Error(\"No URL provided.\");\n }\n\n if (_this.options.acceptedFiles && _this.options.acceptedMimeTypes) {\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\n }\n\n if (_this.options.uploadMultiple && _this.options.chunking) {\n throw new Error(\"You cannot set both: uploadMultiple and chunking.\");\n } // Backwards compatibility\n\n\n if (_this.options.acceptedMimeTypes) {\n _this.options.acceptedFiles = _this.options.acceptedMimeTypes;\n delete _this.options.acceptedMimeTypes;\n } // Backwards compatibility\n\n\n if (_this.options.renameFilename != null) {\n _this.options.renameFile = function (file) {\n return _this.options.renameFilename.call(_assertThisInitialized(_this), file.name, file);\n };\n }\n\n if (typeof _this.options.method === \"string\") {\n _this.options.method = _this.options.method.toUpperCase();\n }\n\n if ((fallback = _this.getExistingFallback()) && fallback.parentNode) {\n // Remove the fallback\n fallback.parentNode.removeChild(fallback);\n } // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n\n\n if (_this.options.previewsContainer !== false) {\n if (_this.options.previewsContainer) {\n _this.previewsContainer = Dropzone.getElement(_this.options.previewsContainer, \"previewsContainer\");\n } else {\n _this.previewsContainer = _this.element;\n }\n }\n\n if (_this.options.clickable) {\n if (_this.options.clickable === true) {\n _this.clickableElements = [_this.element];\n } else {\n _this.clickableElements = Dropzone.getElements(_this.options.clickable, \"clickable\");\n }\n }\n\n _this.init();\n\n return _this;\n } // Returns all files that have been accepted\n\n\n dropzone_createClass(Dropzone, [{\n key: \"getAcceptedFiles\",\n value: function getAcceptedFiles() {\n return this.files.filter(function (file) {\n return file.accepted;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that have been rejected\n // Not sure when that's going to be useful, but added for completeness.\n\n }, {\n key: \"getRejectedFiles\",\n value: function getRejectedFiles() {\n return this.files.filter(function (file) {\n return !file.accepted;\n }).map(function (file) {\n return file;\n });\n }\n }, {\n key: \"getFilesWithStatus\",\n value: function getFilesWithStatus(status) {\n return this.files.filter(function (file) {\n return file.status === status;\n }).map(function (file) {\n return file;\n });\n } // Returns all files that are in the queue\n\n }, {\n key: \"getQueuedFiles\",\n value: function getQueuedFiles() {\n return this.getFilesWithStatus(Dropzone.QUEUED);\n }\n }, {\n key: \"getUploadingFiles\",\n value: function getUploadingFiles() {\n return this.getFilesWithStatus(Dropzone.UPLOADING);\n }\n }, {\n key: \"getAddedFiles\",\n value: function getAddedFiles() {\n return this.getFilesWithStatus(Dropzone.ADDED);\n } // Files that are either queued or uploading\n\n }, {\n key: \"getActiveFiles\",\n value: function getActiveFiles() {\n return this.files.filter(function (file) {\n return file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED;\n }).map(function (file) {\n return file;\n });\n } // The function that gets called when Dropzone is initialized. You\n // can (and should) setup event listeners inside this function.\n\n }, {\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n // In case it isn't set already\n if (this.element.tagName === \"form\") {\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n }\n\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\n this.element.appendChild(Dropzone.createElement(\"
\")));\n }\n\n if (this.clickableElements.length) {\n var setupHiddenFileInput = function setupHiddenFileInput() {\n if (_this2.hiddenFileInput) {\n _this2.hiddenFileInput.parentNode.removeChild(_this2.hiddenFileInput);\n }\n\n _this2.hiddenFileInput = document.createElement(\"input\");\n\n _this2.hiddenFileInput.setAttribute(\"type\", \"file\");\n\n if (_this2.options.maxFiles === null || _this2.options.maxFiles > 1) {\n _this2.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n }\n\n _this2.hiddenFileInput.className = \"dz-hidden-input\";\n\n if (_this2.options.acceptedFiles !== null) {\n _this2.hiddenFileInput.setAttribute(\"accept\", _this2.options.acceptedFiles);\n }\n\n if (_this2.options.capture !== null) {\n _this2.hiddenFileInput.setAttribute(\"capture\", _this2.options.capture);\n } // Making sure that no one can \"tab\" into this field.\n\n\n _this2.hiddenFileInput.setAttribute(\"tabindex\", \"-1\"); // Not setting `display=\"none\"` because some browsers don't accept clicks\n // on elements that aren't displayed.\n\n\n _this2.hiddenFileInput.style.visibility = \"hidden\";\n _this2.hiddenFileInput.style.position = \"absolute\";\n _this2.hiddenFileInput.style.top = \"0\";\n _this2.hiddenFileInput.style.left = \"0\";\n _this2.hiddenFileInput.style.height = \"0\";\n _this2.hiddenFileInput.style.width = \"0\";\n Dropzone.getElement(_this2.options.hiddenInputContainer, \"hiddenInputContainer\").appendChild(_this2.hiddenFileInput);\n\n _this2.hiddenFileInput.addEventListener(\"change\", function () {\n var files = _this2.hiddenFileInput.files;\n\n if (files.length) {\n var _iterator = dropzone_createForOfIteratorHelper(files, true),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var file = _step.value;\n\n _this2.addFile(file);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n _this2.emit(\"addedfiles\", files);\n\n setupHiddenFileInput();\n });\n };\n\n setupHiddenFileInput();\n }\n\n this.URL = window.URL !== null ? window.URL : window.webkitURL; // Setup all event listeners on the Dropzone object itself.\n // They're not in @setupEventListeners() because they shouldn't be removed\n // again when the dropzone gets disabled.\n\n var _iterator2 = dropzone_createForOfIteratorHelper(this.events, true),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var eventName = _step2.value;\n this.on(eventName, this.options[eventName]);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n this.on(\"uploadprogress\", function () {\n return _this2.updateTotalUploadProgress();\n });\n this.on(\"removedfile\", function () {\n return _this2.updateTotalUploadProgress();\n });\n this.on(\"canceled\", function (file) {\n return _this2.emit(\"complete\", file);\n }); // Emit a `queuecomplete` event if all files finished uploading.\n\n this.on(\"complete\", function (file) {\n if (_this2.getAddedFiles().length === 0 && _this2.getUploadingFiles().length === 0 && _this2.getQueuedFiles().length === 0) {\n // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n return setTimeout(function () {\n return _this2.emit(\"queuecomplete\");\n }, 0);\n }\n });\n\n var containsFiles = function containsFiles(e) {\n if (e.dataTransfer.types) {\n // Because e.dataTransfer.types is an Object in\n // IE, we need to iterate like this instead of\n // using e.dataTransfer.types.some()\n for (var i = 0; i < e.dataTransfer.types.length; i++) {\n if (e.dataTransfer.types[i] === \"Files\") return true;\n }\n }\n\n return false;\n };\n\n var noPropagation = function noPropagation(e) {\n // If there are no files, we don't want to stop\n // propagation so we don't interfere with other\n // drag and drop behaviour.\n if (!containsFiles(e)) return;\n e.stopPropagation();\n\n if (e.preventDefault) {\n return e.preventDefault();\n } else {\n return e.returnValue = false;\n }\n }; // Create the listeners\n\n\n this.listeners = [{\n element: this.element,\n events: {\n dragstart: function dragstart(e) {\n return _this2.emit(\"dragstart\", e);\n },\n dragenter: function dragenter(e) {\n noPropagation(e);\n return _this2.emit(\"dragenter\", e);\n },\n dragover: function dragover(e) {\n // Makes it possible to drag files from chrome's download bar\n // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n // Try is required to prevent bug in Internet Explorer 11 (SCRIPT65535 exception)\n var efct;\n\n try {\n efct = e.dataTransfer.effectAllowed;\n } catch (error) {}\n\n e.dataTransfer.dropEffect = \"move\" === efct || \"linkMove\" === efct ? \"move\" : \"copy\";\n noPropagation(e);\n return _this2.emit(\"dragover\", e);\n },\n dragleave: function dragleave(e) {\n return _this2.emit(\"dragleave\", e);\n },\n drop: function drop(e) {\n noPropagation(e);\n return _this2.drop(e);\n },\n dragend: function dragend(e) {\n return _this2.emit(\"dragend\", e);\n }\n } // This is disabled right now, because the browsers don't implement it properly.\n // \"paste\": (e) =>\n // noPropagation e\n // @paste e\n\n }];\n this.clickableElements.forEach(function (clickableElement) {\n return _this2.listeners.push({\n element: clickableElement,\n events: {\n click: function click(evt) {\n // Only the actual dropzone or the message element should trigger file selection\n if (clickableElement !== _this2.element || evt.target === _this2.element || Dropzone.elementInside(evt.target, _this2.element.querySelector(\".dz-message\"))) {\n _this2.hiddenFileInput.click(); // Forward the click\n\n }\n\n return true;\n }\n }\n });\n });\n this.enable();\n return this.options.init.call(this);\n } // Not fully tested yet\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.disable();\n this.removeAllFiles(true);\n\n if (this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined) {\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n this.hiddenFileInput = null;\n }\n\n delete this.element.dropzone;\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n }\n }, {\n key: \"updateTotalUploadProgress\",\n value: function updateTotalUploadProgress() {\n var totalUploadProgress;\n var totalBytesSent = 0;\n var totalBytes = 0;\n var activeFiles = this.getActiveFiles();\n\n if (activeFiles.length) {\n var _iterator3 = dropzone_createForOfIteratorHelper(this.getActiveFiles(), true),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var file = _step3.value;\n totalBytesSent += file.upload.bytesSent;\n totalBytes += file.upload.total;\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\n } else {\n totalUploadProgress = 100;\n }\n\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\n } // @options.paramName can be a function taking one parameter rather than a string.\n // A parameter name for a file is obtained simply by calling this with an index number.\n\n }, {\n key: \"_getParamName\",\n value: function _getParamName(n) {\n if (typeof this.options.paramName === \"function\") {\n return this.options.paramName(n);\n } else {\n return \"\".concat(this.options.paramName).concat(this.options.uploadMultiple ? \"[\".concat(n, \"]\") : \"\");\n }\n } // If @options.renameFile is a function,\n // the function will be used to rename the file.name before appending it to the formData\n\n }, {\n key: \"_renameFile\",\n value: function _renameFile(file) {\n if (typeof this.options.renameFile !== \"function\") {\n return file.name;\n }\n\n return this.options.renameFile(file);\n } // Returns a form that can be used as fallback if the browser does not support DragnDrop\n //\n // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getFallbackForm\",\n value: function getFallbackForm() {\n var existingFallback, form;\n\n if (existingFallback = this.getExistingFallback()) {\n return existingFallback;\n }\n\n var fieldsString = '
';\n\n if (this.options.dictFallbackText) {\n fieldsString += \"

\".concat(this.options.dictFallbackText, \"

\");\n }\n\n fieldsString += \"
\");\n var fields = Dropzone.createElement(fieldsString);\n\n if (this.element.tagName !== \"FORM\") {\n form = Dropzone.createElement(\"
\"));\n form.appendChild(fields);\n } else {\n // Make sure that the enctype and method attributes are set properly\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n this.element.setAttribute(\"method\", this.options.method);\n }\n\n return form != null ? form : fields;\n } // Returns the fallback elements if they exist already\n //\n // This code has to pass in IE7 :(\n\n }, {\n key: \"getExistingFallback\",\n value: function getExistingFallback() {\n var getFallback = function getFallback(elements) {\n var _iterator4 = dropzone_createForOfIteratorHelper(elements, true),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var el = _step4.value;\n\n if (/(^| )fallback($| )/.test(el.className)) {\n return el;\n }\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n };\n\n for (var _i = 0, _arr = [\"div\", \"form\"]; _i < _arr.length; _i++) {\n var tagName = _arr[_i];\n var fallback;\n\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\n return fallback;\n }\n }\n } // Activates all listeners stored in @listeners\n\n }, {\n key: \"setupEventListeners\",\n value: function setupEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.addEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Deactivates all listeners stored in @listeners\n\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n return this.listeners.map(function (elementListeners) {\n return function () {\n var result = [];\n\n for (var event in elementListeners.events) {\n var listener = elementListeners.events[event];\n result.push(elementListeners.element.removeEventListener(event, listener, false));\n }\n\n return result;\n }();\n });\n } // Removes all event listeners and cancels all files in the queue or being processed.\n\n }, {\n key: \"disable\",\n value: function disable() {\n var _this3 = this;\n\n this.clickableElements.forEach(function (element) {\n return element.classList.remove(\"dz-clickable\");\n });\n this.removeEventListeners();\n this.disabled = true;\n return this.files.map(function (file) {\n return _this3.cancelUpload(file);\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n delete this.disabled;\n this.clickableElements.forEach(function (element) {\n return element.classList.add(\"dz-clickable\");\n });\n return this.setupEventListeners();\n } // Returns a nicely formatted filesize\n\n }, {\n key: \"filesize\",\n value: function filesize(size) {\n var selectedSize = 0;\n var selectedUnit = \"b\";\n\n if (size > 0) {\n var units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (var i = 0; i < units.length; i++) {\n var unit = units[i];\n var cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n }\n\n return \"\".concat(selectedSize, \" \").concat(this.options.dictFileSizeUnits[selectedUnit]);\n } // Adds or removes the `dz-max-files-reached` class from the form.\n\n }, {\n key: \"_updateMaxFilesReachedClass\",\n value: function _updateMaxFilesReachedClass() {\n if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\n this.emit(\"maxfilesreached\", this.files);\n }\n\n return this.element.classList.add(\"dz-max-files-reached\");\n } else {\n return this.element.classList.remove(\"dz-max-files-reached\");\n }\n }\n }, {\n key: \"drop\",\n value: function drop(e) {\n if (!e.dataTransfer) {\n return;\n }\n\n this.emit(\"drop\", e); // Convert the FileList to an Array\n // This is necessary for IE11\n\n var files = [];\n\n for (var i = 0; i < e.dataTransfer.files.length; i++) {\n files[i] = e.dataTransfer.files[i];\n } // Even if it's a folder, files.length will contain the folders.\n\n\n if (files.length) {\n var items = e.dataTransfer.items;\n\n if (items && items.length && items[0].webkitGetAsEntry != null) {\n // The browser supports dropping of folders, so handle items instead of files\n this._addFilesFromItems(items);\n } else {\n this.handleFiles(files);\n }\n }\n\n this.emit(\"addedfiles\", files);\n }\n }, {\n key: \"paste\",\n value: function paste(e) {\n if (__guard__(e != null ? e.clipboardData : undefined, function (x) {\n return x.items;\n }) == null) {\n return;\n }\n\n this.emit(\"paste\", e);\n var items = e.clipboardData.items;\n\n if (items.length) {\n return this._addFilesFromItems(items);\n }\n }\n }, {\n key: \"handleFiles\",\n value: function handleFiles(files) {\n var _iterator5 = dropzone_createForOfIteratorHelper(files, true),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var file = _step5.value;\n this.addFile(file);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n } // When a folder is dropped (or files are pasted), items must be handled\n // instead of files.\n\n }, {\n key: \"_addFilesFromItems\",\n value: function _addFilesFromItems(items) {\n var _this4 = this;\n\n return function () {\n var result = [];\n\n var _iterator6 = dropzone_createForOfIteratorHelper(items, true),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var item = _step6.value;\n var entry;\n\n if (item.webkitGetAsEntry != null && (entry = item.webkitGetAsEntry())) {\n if (entry.isFile) {\n result.push(_this4.addFile(item.getAsFile()));\n } else if (entry.isDirectory) {\n // Append all files from that directory to files\n result.push(_this4._addFilesFromDirectory(entry, entry.name));\n } else {\n result.push(undefined);\n }\n } else if (item.getAsFile != null) {\n if (item.kind == null || item.kind === \"file\") {\n result.push(_this4.addFile(item.getAsFile()));\n } else {\n result.push(undefined);\n }\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n\n return result;\n }();\n } // Goes through the directory, and adds each file it finds recursively\n\n }, {\n key: \"_addFilesFromDirectory\",\n value: function _addFilesFromDirectory(directory, path) {\n var _this5 = this;\n\n var dirReader = directory.createReader();\n\n var errorHandler = function errorHandler(error) {\n return __guardMethod__(console, \"log\", function (o) {\n return o.log(error);\n });\n };\n\n var readEntries = function readEntries() {\n return dirReader.readEntries(function (entries) {\n if (entries.length > 0) {\n var _iterator7 = dropzone_createForOfIteratorHelper(entries, true),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var entry = _step7.value;\n\n if (entry.isFile) {\n entry.file(function (file) {\n if (_this5.options.ignoreHiddenFiles && file.name.substring(0, 1) === \".\") {\n return;\n }\n\n file.fullPath = \"\".concat(path, \"/\").concat(file.name);\n return _this5.addFile(file);\n });\n } else if (entry.isDirectory) {\n _this5._addFilesFromDirectory(entry, \"\".concat(path, \"/\").concat(entry.name));\n }\n } // Recursively call readEntries() again, since browser only handle\n // the first 100 entries.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n\n readEntries();\n }\n\n return null;\n }, errorHandler);\n };\n\n return readEntries();\n } // If `done()` is called without argument the file is accepted\n // If you call it with an error message, the file is rejected\n // (This allows for asynchronous validation)\n //\n // This function checks the filesize, and if the file.type passes the\n // `acceptedFiles` check.\n\n }, {\n key: \"accept\",\n value: function accept(file, done) {\n if (this.options.maxFilesize && file.size > this.options.maxFilesize * 1024 * 1024) {\n done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n done(this.options.dictInvalidFileType);\n } else if (this.options.maxFiles != null && this.getAcceptedFiles().length >= this.options.maxFiles) {\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\n this.emit(\"maxfilesexceeded\", file);\n } else {\n this.options.accept.call(this, file, done);\n }\n }\n }, {\n key: \"addFile\",\n value: function addFile(file) {\n var _this6 = this;\n\n file.upload = {\n uuid: Dropzone.uuidv4(),\n progress: 0,\n // Setting the total upload size to file.size for the beginning\n // It's actual different than the size to be transmitted.\n total: file.size,\n bytesSent: 0,\n filename: this._renameFile(file) // Not setting chunking information here, because the acutal data — and\n // thus the chunks — might change if `options.transformFile` is set\n // and does something to the data.\n\n };\n this.files.push(file);\n file.status = Dropzone.ADDED;\n this.emit(\"addedfile\", file);\n\n this._enqueueThumbnail(file);\n\n this.accept(file, function (error) {\n if (error) {\n file.accepted = false;\n\n _this6._errorProcessing([file], error); // Will set the file.status\n\n } else {\n file.accepted = true;\n\n if (_this6.options.autoQueue) {\n _this6.enqueueFile(file);\n } // Will set .accepted = true\n\n }\n\n _this6._updateMaxFilesReachedClass();\n });\n } // Wrapper for enqueueFile\n\n }, {\n key: \"enqueueFiles\",\n value: function enqueueFiles(files) {\n var _iterator8 = dropzone_createForOfIteratorHelper(files, true),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var file = _step8.value;\n this.enqueueFile(file);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n\n return null;\n }\n }, {\n key: \"enqueueFile\",\n value: function enqueueFile(file) {\n var _this7 = this;\n\n if (file.status === Dropzone.ADDED && file.accepted === true) {\n file.status = Dropzone.QUEUED;\n\n if (this.options.autoProcessQueue) {\n return setTimeout(function () {\n return _this7.processQueue();\n }, 0); // Deferring the call\n }\n } else {\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\n }\n }\n }, {\n key: \"_enqueueThumbnail\",\n value: function _enqueueThumbnail(file) {\n var _this8 = this;\n\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\n this._thumbnailQueue.push(file);\n\n return setTimeout(function () {\n return _this8._processThumbnailQueue();\n }, 0); // Deferring the call\n }\n }\n }, {\n key: \"_processThumbnailQueue\",\n value: function _processThumbnailQueue() {\n var _this9 = this;\n\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n return;\n }\n\n this._processingThumbnail = true;\n\n var file = this._thumbnailQueue.shift();\n\n return this.createThumbnail(file, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, true, function (dataUrl) {\n _this9.emit(\"thumbnail\", file, dataUrl);\n\n _this9._processingThumbnail = false;\n return _this9._processThumbnailQueue();\n });\n } // Can be called by the user to remove a file\n\n }, {\n key: \"removeFile\",\n value: function removeFile(file) {\n if (file.status === Dropzone.UPLOADING) {\n this.cancelUpload(file);\n }\n\n this.files = without(this.files, file);\n this.emit(\"removedfile\", file);\n\n if (this.files.length === 0) {\n return this.emit(\"reset\");\n }\n } // Removes all files that aren't currently processed from the list\n\n }, {\n key: \"removeAllFiles\",\n value: function removeAllFiles(cancelIfNecessary) {\n // Create a copy of files since removeFile() changes the @files array.\n if (cancelIfNecessary == null) {\n cancelIfNecessary = false;\n }\n\n var _iterator9 = dropzone_createForOfIteratorHelper(this.files.slice(), true),\n _step9;\n\n try {\n for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n var file = _step9.value;\n\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n this.removeFile(file);\n }\n }\n } catch (err) {\n _iterator9.e(err);\n } finally {\n _iterator9.f();\n }\n\n return null;\n } // Resizes an image before it gets sent to the server. This function is the default behavior of\n // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n // the resized blob.\n\n }, {\n key: \"resizeImage\",\n value: function resizeImage(file, width, height, resizeMethod, callback) {\n var _this10 = this;\n\n return this.createThumbnail(file, width, height, resizeMethod, true, function (dataUrl, canvas) {\n if (canvas == null) {\n // The image has not been resized\n return callback(file);\n } else {\n var resizeMimeType = _this10.options.resizeMimeType;\n\n if (resizeMimeType == null) {\n resizeMimeType = file.type;\n }\n\n var resizedDataURL = canvas.toDataURL(resizeMimeType, _this10.options.resizeQuality);\n\n if (resizeMimeType === \"image/jpeg\" || resizeMimeType === \"image/jpg\") {\n // Now add the original EXIF information\n resizedDataURL = ExifRestore.restore(file.dataURL, resizedDataURL);\n }\n\n return callback(Dropzone.dataURItoBlob(resizedDataURL));\n }\n });\n }\n }, {\n key: \"createThumbnail\",\n value: function createThumbnail(file, width, height, resizeMethod, fixOrientation, callback) {\n var _this11 = this;\n\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n file.dataURL = fileReader.result; // Don't bother creating a thumbnail for SVG images since they're vector\n\n if (file.type === \"image/svg+xml\") {\n if (callback != null) {\n callback(fileReader.result);\n }\n\n return;\n }\n\n _this11.createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback);\n };\n\n fileReader.readAsDataURL(file);\n } // `mockFile` needs to have these attributes:\n //\n // { name: 'name', size: 12345, imageUrl: '' }\n //\n // `callback` will be invoked when the image has been downloaded and displayed.\n // `crossOrigin` will be added to the `img` tag when accessing the file.\n\n }, {\n key: \"displayExistingFile\",\n value: function displayExistingFile(mockFile, imageUrl, callback, crossOrigin) {\n var _this12 = this;\n\n var resizeThumbnail = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n this.emit(\"addedfile\", mockFile);\n this.emit(\"complete\", mockFile);\n\n if (!resizeThumbnail) {\n this.emit(\"thumbnail\", mockFile, imageUrl);\n if (callback) callback();\n } else {\n var onDone = function onDone(thumbnail) {\n _this12.emit(\"thumbnail\", mockFile, thumbnail);\n\n if (callback) callback();\n };\n\n mockFile.dataURL = imageUrl;\n this.createThumbnailFromUrl(mockFile, this.options.thumbnailWidth, this.options.thumbnailHeight, this.options.thumbnailMethod, this.options.fixOrientation, onDone, crossOrigin);\n }\n }\n }, {\n key: \"createThumbnailFromUrl\",\n value: function createThumbnailFromUrl(file, width, height, resizeMethod, fixOrientation, callback, crossOrigin) {\n var _this13 = this;\n\n // Not using `new Image` here because of a bug in latest Chrome versions.\n // See https://github.com/enyo/dropzone/pull/226\n var img = document.createElement(\"img\");\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n } // fixOrientation is not needed anymore with browsers handling imageOrientation\n\n\n fixOrientation = getComputedStyle(document.body)[\"imageOrientation\"] == \"from-image\" ? false : fixOrientation;\n\n img.onload = function () {\n var loadExif = function loadExif(callback) {\n return callback(1);\n };\n\n if (typeof EXIF !== \"undefined\" && EXIF !== null && fixOrientation) {\n loadExif = function loadExif(callback) {\n return EXIF.getData(img, function () {\n return callback(EXIF.getTag(this, \"Orientation\"));\n });\n };\n }\n\n return loadExif(function (orientation) {\n file.width = img.width;\n file.height = img.height;\n\n var resizeInfo = _this13.options.resize.call(_this13, file, width, height, resizeMethod);\n\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n canvas.width = resizeInfo.trgWidth;\n canvas.height = resizeInfo.trgHeight;\n\n if (orientation > 4) {\n canvas.width = resizeInfo.trgHeight;\n canvas.height = resizeInfo.trgWidth;\n }\n\n switch (orientation) {\n case 2:\n // horizontal flip\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n break;\n\n case 3:\n // 180° rotate left\n ctx.translate(canvas.width, canvas.height);\n ctx.rotate(Math.PI);\n break;\n\n case 4:\n // vertical flip\n ctx.translate(0, canvas.height);\n ctx.scale(1, -1);\n break;\n\n case 5:\n // vertical flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.scale(1, -1);\n break;\n\n case 6:\n // 90° rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(0, -canvas.width);\n break;\n\n case 7:\n // horizontal flip + 90 rotate right\n ctx.rotate(0.5 * Math.PI);\n ctx.translate(canvas.height, -canvas.width);\n ctx.scale(-1, 1);\n break;\n\n case 8:\n // 90° rotate left\n ctx.rotate(-0.5 * Math.PI);\n ctx.translate(-canvas.height, 0);\n break;\n } // This is a bugfix for iOS' scaling bug.\n\n\n drawImageIOSFix(ctx, img, resizeInfo.srcX != null ? resizeInfo.srcX : 0, resizeInfo.srcY != null ? resizeInfo.srcY : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, resizeInfo.trgX != null ? resizeInfo.trgX : 0, resizeInfo.trgY != null ? resizeInfo.trgY : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\n var thumbnail = canvas.toDataURL(\"image/png\");\n\n if (callback != null) {\n return callback(thumbnail, canvas);\n }\n });\n };\n\n if (callback != null) {\n img.onerror = callback;\n }\n\n return img.src = file.dataURL;\n } // Goes through the queue and processes files if there aren't too many already.\n\n }, {\n key: \"processQueue\",\n value: function processQueue() {\n var parallelUploads = this.options.parallelUploads;\n var processingLength = this.getUploadingFiles().length;\n var i = processingLength; // There are already at least as many files uploading than should be\n\n if (processingLength >= parallelUploads) {\n return;\n }\n\n var queuedFiles = this.getQueuedFiles();\n\n if (!(queuedFiles.length > 0)) {\n return;\n }\n\n if (this.options.uploadMultiple) {\n // The files should be uploaded in one request\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\n } else {\n while (i < parallelUploads) {\n if (!queuedFiles.length) {\n return;\n } // Nothing left to process\n\n\n this.processFile(queuedFiles.shift());\n i++;\n }\n }\n } // Wrapper for `processFiles`\n\n }, {\n key: \"processFile\",\n value: function processFile(file) {\n return this.processFiles([file]);\n } // Loads the file, then calls finishedLoading()\n\n }, {\n key: \"processFiles\",\n value: function processFiles(files) {\n var _iterator10 = dropzone_createForOfIteratorHelper(files, true),\n _step10;\n\n try {\n for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n var file = _step10.value;\n file.processing = true; // Backwards compatibility\n\n file.status = Dropzone.UPLOADING;\n this.emit(\"processing\", file);\n }\n } catch (err) {\n _iterator10.e(err);\n } finally {\n _iterator10.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"processingmultiple\", files);\n }\n\n return this.uploadFiles(files);\n }\n }, {\n key: \"_getFilesWithXhr\",\n value: function _getFilesWithXhr(xhr) {\n var files;\n return files = this.files.filter(function (file) {\n return file.xhr === xhr;\n }).map(function (file) {\n return file;\n });\n } // Cancels the file upload and sets the status to CANCELED\n // **if** the file is actually being uploaded.\n // If it's still in the queue, the file is being removed from it and the status\n // set to CANCELED.\n\n }, {\n key: \"cancelUpload\",\n value: function cancelUpload(file) {\n if (file.status === Dropzone.UPLOADING) {\n var groupedFiles = this._getFilesWithXhr(file.xhr);\n\n var _iterator11 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n _step11;\n\n try {\n for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n var groupedFile = _step11.value;\n groupedFile.status = Dropzone.CANCELED;\n }\n } catch (err) {\n _iterator11.e(err);\n } finally {\n _iterator11.f();\n }\n\n if (typeof file.xhr !== \"undefined\") {\n file.xhr.abort();\n }\n\n var _iterator12 = dropzone_createForOfIteratorHelper(groupedFiles, true),\n _step12;\n\n try {\n for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n var _groupedFile = _step12.value;\n this.emit(\"canceled\", _groupedFile);\n }\n } catch (err) {\n _iterator12.e(err);\n } finally {\n _iterator12.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", groupedFiles);\n }\n } else if (file.status === Dropzone.ADDED || file.status === Dropzone.QUEUED) {\n file.status = Dropzone.CANCELED;\n this.emit(\"canceled\", file);\n\n if (this.options.uploadMultiple) {\n this.emit(\"canceledmultiple\", [file]);\n }\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }, {\n key: \"resolveOption\",\n value: function resolveOption(option) {\n if (typeof option === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return option.apply(this, args);\n }\n\n return option;\n }\n }, {\n key: \"uploadFile\",\n value: function uploadFile(file) {\n return this.uploadFiles([file]);\n }\n }, {\n key: \"uploadFiles\",\n value: function uploadFiles(files) {\n var _this14 = this;\n\n this._transformFiles(files, function (transformedFiles) {\n if (_this14.options.chunking) {\n // Chunking is not allowed to be used with `uploadMultiple` so we know\n // that there is only __one__file.\n var transformedFile = transformedFiles[0];\n files[0].upload.chunked = _this14.options.chunking && (_this14.options.forceChunking || transformedFile.size > _this14.options.chunkSize);\n files[0].upload.totalChunkCount = Math.ceil(transformedFile.size / _this14.options.chunkSize);\n }\n\n if (files[0].upload.chunked) {\n // This file should be sent in chunks!\n // If the chunking option is set, we **know** that there can only be **one** file, since\n // uploadMultiple is not allowed with this option.\n var file = files[0];\n var _transformedFile = transformedFiles[0];\n var startedChunkCount = 0;\n file.upload.chunks = [];\n\n var handleNextChunk = function handleNextChunk() {\n var chunkIndex = 0; // Find the next item in file.upload.chunks that is not defined yet.\n\n while (file.upload.chunks[chunkIndex] !== undefined) {\n chunkIndex++;\n } // This means, that all chunks have already been started.\n\n\n if (chunkIndex >= file.upload.totalChunkCount) return;\n startedChunkCount++;\n var start = chunkIndex * _this14.options.chunkSize;\n var end = Math.min(start + _this14.options.chunkSize, _transformedFile.size);\n var dataBlock = {\n name: _this14._getParamName(0),\n data: _transformedFile.webkitSlice ? _transformedFile.webkitSlice(start, end) : _transformedFile.slice(start, end),\n filename: file.upload.filename,\n chunkIndex: chunkIndex\n };\n file.upload.chunks[chunkIndex] = {\n file: file,\n index: chunkIndex,\n dataBlock: dataBlock,\n // In case we want to retry.\n status: Dropzone.UPLOADING,\n progress: 0,\n retries: 0 // The number of times this block has been retried.\n\n };\n\n _this14._uploadData(files, [dataBlock]);\n };\n\n file.upload.finishedChunkUpload = function (chunk, response) {\n var allFinished = true;\n chunk.status = Dropzone.SUCCESS; // Clear the data from the chunk\n\n chunk.dataBlock = null; // Leaving this reference to xhr intact here will cause memory leaks in some browsers\n\n chunk.xhr = null;\n\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] === undefined) {\n return handleNextChunk();\n }\n\n if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n allFinished = false;\n }\n }\n\n if (allFinished) {\n _this14.options.chunksUploaded(file, function () {\n _this14._finished(files, response, null);\n });\n }\n };\n\n if (_this14.options.parallelChunkUploads) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n handleNextChunk();\n }\n } else {\n handleNextChunk();\n }\n } else {\n var dataBlocks = [];\n\n for (var _i2 = 0; _i2 < files.length; _i2++) {\n dataBlocks[_i2] = {\n name: _this14._getParamName(_i2),\n data: transformedFiles[_i2],\n filename: files[_i2].upload.filename\n };\n }\n\n _this14._uploadData(files, dataBlocks);\n }\n });\n } /// Returns the right chunk for given file and xhr\n\n }, {\n key: \"_getChunk\",\n value: function _getChunk(file, xhr) {\n for (var i = 0; i < file.upload.totalChunkCount; i++) {\n if (file.upload.chunks[i] !== undefined && file.upload.chunks[i].xhr === xhr) {\n return file.upload.chunks[i];\n }\n }\n } // This function actually uploads the file(s) to the server.\n // If dataBlocks contains the actual data to upload (meaning, that this could either be transformed\n // files, or individual chunks for chunked upload).\n\n }, {\n key: \"_uploadData\",\n value: function _uploadData(files, dataBlocks) {\n var _this15 = this;\n\n var xhr = new XMLHttpRequest(); // Put the xhr object in the file objects to be able to reference it later.\n\n var _iterator13 = dropzone_createForOfIteratorHelper(files, true),\n _step13;\n\n try {\n for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n var file = _step13.value;\n file.xhr = xhr;\n }\n } catch (err) {\n _iterator13.e(err);\n } finally {\n _iterator13.f();\n }\n\n if (files[0].upload.chunked) {\n // Put the xhr object in the right chunk object, so it can be associated later, and found with _getChunk\n files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n }\n\n var method = this.resolveOption(this.options.method, files);\n var url = this.resolveOption(this.options.url, files);\n xhr.open(method, url, true); // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n\n var timeout = this.resolveOption(this.options.timeout, files);\n if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files); // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n\n xhr.withCredentials = !!this.options.withCredentials;\n\n xhr.onload = function (e) {\n _this15._finishedUploading(files, xhr, e);\n };\n\n xhr.ontimeout = function () {\n _this15._handleUploadError(files, xhr, \"Request timedout after \".concat(_this15.options.timeout / 1000, \" seconds\"));\n };\n\n xhr.onerror = function () {\n _this15._handleUploadError(files, xhr);\n }; // Some browsers do not have the .upload property\n\n\n var progressObj = xhr.upload != null ? xhr.upload : xhr;\n\n progressObj.onprogress = function (e) {\n return _this15._updateFilesUploadProgress(files, xhr, e);\n };\n\n var headers = {\n Accept: \"application/json\",\n \"Cache-Control\": \"no-cache\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n };\n\n if (this.options.headers) {\n Dropzone.extend(headers, this.options.headers);\n }\n\n for (var headerName in headers) {\n var headerValue = headers[headerName];\n\n if (headerValue) {\n xhr.setRequestHeader(headerName, headerValue);\n }\n }\n\n var formData = new FormData(); // Adding all @options parameters\n\n if (this.options.params) {\n var additionalParams = this.options.params;\n\n if (typeof additionalParams === \"function\") {\n additionalParams = additionalParams.call(this, files, xhr, files[0].upload.chunked ? this._getChunk(files[0], xhr) : null);\n }\n\n for (var key in additionalParams) {\n var value = additionalParams[key];\n\n if (Array.isArray(value)) {\n // The additional parameter contains an array,\n // so lets iterate over it to attach each value\n // individually.\n for (var i = 0; i < value.length; i++) {\n formData.append(key, value[i]);\n }\n } else {\n formData.append(key, value);\n }\n }\n } // Let the user add additional data if necessary\n\n\n var _iterator14 = dropzone_createForOfIteratorHelper(files, true),\n _step14;\n\n try {\n for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n var _file = _step14.value;\n this.emit(\"sending\", _file, xhr, formData);\n }\n } catch (err) {\n _iterator14.e(err);\n } finally {\n _iterator14.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"sendingmultiple\", files, xhr, formData);\n }\n\n this._addFormElementData(formData); // Finally add the files\n // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n\n\n for (var _i3 = 0; _i3 < dataBlocks.length; _i3++) {\n var dataBlock = dataBlocks[_i3];\n formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n }\n\n this.submitRequest(xhr, formData, files);\n } // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n\n }, {\n key: \"_transformFiles\",\n value: function _transformFiles(files, done) {\n var _this16 = this;\n\n var transformedFiles = []; // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n\n var doneCounter = 0;\n\n var _loop = function _loop(i) {\n _this16.options.transformFile.call(_this16, files[i], function (transformedFile) {\n transformedFiles[i] = transformedFile;\n\n if (++doneCounter === files.length) {\n done(transformedFiles);\n }\n });\n };\n\n for (var i = 0; i < files.length; i++) {\n _loop(i);\n }\n } // Takes care of adding other input elements of the form to the AJAX request\n\n }, {\n key: \"_addFormElementData\",\n value: function _addFormElementData(formData) {\n // Take care of other input elements\n if (this.element.tagName === \"FORM\") {\n var _iterator15 = dropzone_createForOfIteratorHelper(this.element.querySelectorAll(\"input, textarea, select, button\"), true),\n _step15;\n\n try {\n for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n var input = _step15.value;\n var inputName = input.getAttribute(\"name\");\n var inputType = input.getAttribute(\"type\");\n if (inputType) inputType = inputType.toLowerCase(); // If the input doesn't have a name, we can't use it.\n\n if (typeof inputName === \"undefined\" || inputName === null) continue;\n\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n // Possibly multiple values\n var _iterator16 = dropzone_createForOfIteratorHelper(input.options, true),\n _step16;\n\n try {\n for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n var option = _step16.value;\n\n if (option.selected) {\n formData.append(inputName, option.value);\n }\n }\n } catch (err) {\n _iterator16.e(err);\n } finally {\n _iterator16.f();\n }\n } else if (!inputType || inputType !== \"checkbox\" && inputType !== \"radio\" || input.checked) {\n formData.append(inputName, input.value);\n }\n }\n } catch (err) {\n _iterator15.e(err);\n } finally {\n _iterator15.f();\n }\n }\n } // Invoked when there is new progress information about given files.\n // If e is not provided, it is assumed that the upload is finished.\n\n }, {\n key: \"_updateFilesUploadProgress\",\n value: function _updateFilesUploadProgress(files, xhr, e) {\n if (!files[0].upload.chunked) {\n // Handle file uploads without chunking\n var _iterator17 = dropzone_createForOfIteratorHelper(files, true),\n _step17;\n\n try {\n for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n var file = _step17.value;\n\n if (file.upload.total && file.upload.bytesSent && file.upload.bytesSent == file.upload.total) {\n // If both, the `total` and `bytesSent` have already been set, and\n // they are equal (meaning progress is at 100%), we can skip this\n // file, since an upload progress shouldn't go down.\n continue;\n }\n\n if (e) {\n file.upload.progress = 100 * e.loaded / e.total;\n file.upload.total = e.total;\n file.upload.bytesSent = e.loaded;\n } else {\n // No event, so we're at 100%\n file.upload.progress = 100;\n file.upload.bytesSent = file.upload.total;\n }\n\n this.emit(\"uploadprogress\", file, file.upload.progress, file.upload.bytesSent);\n }\n } catch (err) {\n _iterator17.e(err);\n } finally {\n _iterator17.f();\n }\n } else {\n // Handle chunked file uploads\n // Chunked upload is not compatible with uploading multiple files in one\n // request, so we know there's only one file.\n var _file2 = files[0]; // Since this is a chunked upload, we need to update the appropriate chunk\n // progress.\n\n var chunk = this._getChunk(_file2, xhr);\n\n if (e) {\n chunk.progress = 100 * e.loaded / e.total;\n chunk.total = e.total;\n chunk.bytesSent = e.loaded;\n } else {\n // No event, so we're at 100%\n chunk.progress = 100;\n chunk.bytesSent = chunk.total;\n } // Now tally the *file* upload progress from its individual chunks\n\n\n _file2.upload.progress = 0;\n _file2.upload.total = 0;\n _file2.upload.bytesSent = 0;\n\n for (var i = 0; i < _file2.upload.totalChunkCount; i++) {\n if (_file2.upload.chunks[i] && typeof _file2.upload.chunks[i].progress !== \"undefined\") {\n _file2.upload.progress += _file2.upload.chunks[i].progress;\n _file2.upload.total += _file2.upload.chunks[i].total;\n _file2.upload.bytesSent += _file2.upload.chunks[i].bytesSent;\n }\n } // Since the process is a percentage, we need to divide by the amount of\n // chunks we've used.\n\n\n _file2.upload.progress = _file2.upload.progress / _file2.upload.totalChunkCount;\n this.emit(\"uploadprogress\", _file2, _file2.upload.progress, _file2.upload.bytesSent);\n }\n }\n }, {\n key: \"_finishedUploading\",\n value: function _finishedUploading(files, xhr, e) {\n var response;\n\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (xhr.responseType !== \"arraybuffer\" && xhr.responseType !== \"blob\") {\n response = xhr.responseText;\n\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\n try {\n response = JSON.parse(response);\n } catch (error) {\n e = error;\n response = \"Invalid JSON response from server.\";\n }\n }\n }\n\n this._updateFilesUploadProgress(files, xhr);\n\n if (!(200 <= xhr.status && xhr.status < 300)) {\n this._handleUploadError(files, xhr, response);\n } else {\n if (files[0].upload.chunked) {\n files[0].upload.finishedChunkUpload(this._getChunk(files[0], xhr), response);\n } else {\n this._finished(files, response, e);\n }\n }\n }\n }, {\n key: \"_handleUploadError\",\n value: function _handleUploadError(files, xhr, response) {\n if (files[0].status === Dropzone.CANCELED) {\n return;\n }\n\n if (files[0].upload.chunked && this.options.retryChunks) {\n var chunk = this._getChunk(files[0], xhr);\n\n if (chunk.retries++ < this.options.retryChunksLimit) {\n this._uploadData(files, [chunk.dataBlock]);\n\n return;\n } else {\n console.warn(\"Retried this chunk too often. Giving up.\");\n }\n }\n\n this._errorProcessing(files, response || this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr);\n }\n }, {\n key: \"submitRequest\",\n value: function submitRequest(xhr, formData, files) {\n if (xhr.readyState != 1) {\n console.warn(\"Cannot send this request because the XMLHttpRequest.readyState is not OPENED.\");\n return;\n }\n\n xhr.send(formData);\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_finished\",\n value: function _finished(files, responseText, e) {\n var _iterator18 = dropzone_createForOfIteratorHelper(files, true),\n _step18;\n\n try {\n for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {\n var file = _step18.value;\n file.status = Dropzone.SUCCESS;\n this.emit(\"success\", file, responseText, e);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _iterator18.e(err);\n } finally {\n _iterator18.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"successmultiple\", files, responseText, e);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n } // Called internally when processing is finished.\n // Individual callbacks have to be called in the appropriate sections.\n\n }, {\n key: \"_errorProcessing\",\n value: function _errorProcessing(files, message, xhr) {\n var _iterator19 = dropzone_createForOfIteratorHelper(files, true),\n _step19;\n\n try {\n for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {\n var file = _step19.value;\n file.status = Dropzone.ERROR;\n this.emit(\"error\", file, message, xhr);\n this.emit(\"complete\", file);\n }\n } catch (err) {\n _iterator19.e(err);\n } finally {\n _iterator19.f();\n }\n\n if (this.options.uploadMultiple) {\n this.emit(\"errormultiple\", files, message, xhr);\n this.emit(\"completemultiple\", files);\n }\n\n if (this.options.autoProcessQueue) {\n return this.processQueue();\n }\n }\n }], [{\n key: \"initClass\",\n value: function initClass() {\n // Exposing the emitter class, mainly for tests\n this.prototype.Emitter = Emitter;\n /*\n This is a list of all available events you can register on a dropzone object.\n You can register an event handler like this:\n dropzone.on(\"dragEnter\", function() { });\n */\n\n this.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\n this.prototype._thumbnailQueue = [];\n this.prototype._processingThumbnail = false;\n } // global utility\n\n }, {\n key: \"extend\",\n value: function extend(target) {\n for (var _len2 = arguments.length, objects = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n objects[_key2 - 1] = arguments[_key2];\n }\n\n for (var _i4 = 0, _objects = objects; _i4 < _objects.length; _i4++) {\n var object = _objects[_i4];\n\n for (var key in object) {\n var val = object[key];\n target[key] = val;\n }\n }\n\n return target;\n }\n }, {\n key: \"uuidv4\",\n value: function uuidv4() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c === \"x\" ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n }\n }]);\n\n return Dropzone;\n}(Emitter);\n\n\nDropzone.initClass();\nDropzone.version = \"5.9.3\"; // This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elemens.\n//\n// Example:\n//\n// Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// To disable autoDiscover for a specific element, you can set `false` as an option:\n//\n// Dropzone.options.myDisabledElementId = false;\n//\n// And in html:\n//\n//
\n\nDropzone.options = {}; // Returns the options for an element or undefined if none available.\n\nDropzone.optionsForElement = function (element) {\n // Get the `Dropzone.options.elementId` for this element if it exists\n if (element.getAttribute(\"id\")) {\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n } else {\n return undefined;\n }\n}; // Holds a list of all dropzone instances\n\n\nDropzone.instances = []; // Returns the dropzone for given element if any\n\nDropzone.forElement = function (element) {\n if (typeof element === \"string\") {\n element = document.querySelector(element);\n }\n\n if ((element != null ? element.dropzone : undefined) == null) {\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\n }\n\n return element.dropzone;\n}; // Set to false if you don't want Dropzone to automatically find and attach to .dropzone elements.\n\n\nDropzone.autoDiscover = true; // Looks for all .dropzone elements and creates a dropzone for them\n\nDropzone.discover = function () {\n var dropzones;\n\n if (document.querySelectorAll) {\n dropzones = document.querySelectorAll(\".dropzone\");\n } else {\n dropzones = []; // IE :(\n\n var checkElements = function checkElements(elements) {\n return function () {\n var result = [];\n\n var _iterator20 = dropzone_createForOfIteratorHelper(elements, true),\n _step20;\n\n try {\n for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {\n var el = _step20.value;\n\n if (/(^| )dropzone($| )/.test(el.className)) {\n result.push(dropzones.push(el));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator20.e(err);\n } finally {\n _iterator20.f();\n }\n\n return result;\n }();\n };\n\n checkElements(document.getElementsByTagName(\"div\"));\n checkElements(document.getElementsByTagName(\"form\"));\n }\n\n return function () {\n var result = [];\n\n var _iterator21 = dropzone_createForOfIteratorHelper(dropzones, true),\n _step21;\n\n try {\n for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {\n var dropzone = _step21.value;\n\n // Create a dropzone unless auto discover has been disabled for specific element\n if (Dropzone.optionsForElement(dropzone) !== false) {\n result.push(new Dropzone(dropzone));\n } else {\n result.push(undefined);\n }\n }\n } catch (err) {\n _iterator21.e(err);\n } finally {\n _iterator21.f();\n }\n\n return result;\n }();\n}; // Some browsers support drag and drog functionality, but not correctly.\n//\n// So I created a blocklist of userAgents. Yes, yes. Browser sniffing, I know.\n// But what to do when browsers *theoretically* support an API, but crash\n// when using it.\n//\n// This is a list of regular expressions tested against navigator.userAgent\n//\n// ** It should only be used on browser that *do* support the API, but\n// incorrectly **\n\n\nDropzone.blockedBrowsers = [// The mac os and windows phone version of opera 12 seems to have a problem with the File drag'n'drop API.\n/opera.*(Macintosh|Windows Phone).*version\\/12/i]; // Checks if the browser is supported\n\nDropzone.isBrowserSupported = function () {\n var capableBrowser = true;\n\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\n if (!(\"classList\" in document.createElement(\"a\"))) {\n capableBrowser = false;\n } else {\n if (Dropzone.blacklistedBrowsers !== undefined) {\n // Since this has been renamed, this makes sure we don't break older\n // configuration.\n Dropzone.blockedBrowsers = Dropzone.blacklistedBrowsers;\n } // The browser supports the API, but may be blocked.\n\n\n var _iterator22 = dropzone_createForOfIteratorHelper(Dropzone.blockedBrowsers, true),\n _step22;\n\n try {\n for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {\n var regex = _step22.value;\n\n if (regex.test(navigator.userAgent)) {\n capableBrowser = false;\n continue;\n }\n }\n } catch (err) {\n _iterator22.e(err);\n } finally {\n _iterator22.f();\n }\n }\n } else {\n capableBrowser = false;\n }\n\n return capableBrowser;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n // convert base64 to raw binary data held in a string\n // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n var byteString = atob(dataURI.split(\",\")[1]); // separate out the mime component\n\n var mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0]; // write the bytes of the string to an ArrayBuffer\n\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0, end = byteString.length, asc = 0 <= end; asc ? i <= end : i >= end; asc ? i++ : i--) {\n ia[i] = byteString.charCodeAt(i);\n } // write the ArrayBuffer to a blob\n\n\n return new Blob([ab], {\n type: mimeString\n });\n}; // Returns an array without the rejected item\n\n\nvar without = function without(list, rejectedItem) {\n return list.filter(function (item) {\n return item !== rejectedItem;\n }).map(function (item) {\n return item;\n });\n}; // abc-def_ghi -> abcDefGhi\n\n\nvar camelize = function camelize(str) {\n return str.replace(/[\\-_](\\w)/g, function (match) {\n return match.charAt(1).toUpperCase();\n });\n}; // Creates an element from string\n\n\nDropzone.createElement = function (string) {\n var div = document.createElement(\"div\");\n div.innerHTML = string;\n return div.childNodes[0];\n}; // Tests if given element is inside (or simply is) the container\n\n\nDropzone.elementInside = function (element, container) {\n if (element === container) {\n return true;\n } // Coffeescript doesn't support do/while loops\n\n\n while (element = element.parentNode) {\n if (element === container) {\n return true;\n }\n }\n\n return false;\n};\n\nDropzone.getElement = function (el, name) {\n var element;\n\n if (typeof el === \"string\") {\n element = document.querySelector(el);\n } else if (el.nodeType != null) {\n element = el;\n }\n\n if (element == null) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector or a plain HTML element.\"));\n }\n\n return element;\n};\n\nDropzone.getElements = function (els, name) {\n var el, elements;\n\n if (els instanceof Array) {\n elements = [];\n\n try {\n var _iterator23 = dropzone_createForOfIteratorHelper(els, true),\n _step23;\n\n try {\n for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {\n el = _step23.value;\n elements.push(this.getElement(el, name));\n }\n } catch (err) {\n _iterator23.e(err);\n } finally {\n _iterator23.f();\n }\n } catch (e) {\n elements = null;\n }\n } else if (typeof els === \"string\") {\n elements = [];\n\n var _iterator24 = dropzone_createForOfIteratorHelper(document.querySelectorAll(els), true),\n _step24;\n\n try {\n for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {\n el = _step24.value;\n elements.push(el);\n }\n } catch (err) {\n _iterator24.e(err);\n } finally {\n _iterator24.f();\n }\n } else if (els.nodeType != null) {\n elements = [els];\n }\n\n if (elements == null || !elements.length) {\n throw new Error(\"Invalid `\".concat(name, \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\"));\n }\n\n return elements;\n}; // Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\n\n\nDropzone.confirm = function (question, accepted, rejected) {\n if (window.confirm(question)) {\n return accepted();\n } else if (rejected != null) {\n return rejected();\n }\n}; // Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\n\n\nDropzone.isValidFile = function (file, acceptedFiles) {\n if (!acceptedFiles) {\n return true;\n } // If there are no accepted mime types, it's OK\n\n\n acceptedFiles = acceptedFiles.split(\",\");\n var mimeType = file.type;\n var baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n var _iterator25 = dropzone_createForOfIteratorHelper(acceptedFiles, true),\n _step25;\n\n try {\n for (_iterator25.s(); !(_step25 = _iterator25.n()).done;) {\n var validType = _step25.value;\n validType = validType.trim();\n\n if (validType.charAt(0) === \".\") {\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\n return true;\n }\n } else if (/\\/\\*$/.test(validType)) {\n // This is something like a image/* mime type\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n return true;\n }\n } else {\n if (mimeType === validType) {\n return true;\n }\n }\n }\n } catch (err) {\n _iterator25.e(err);\n } finally {\n _iterator25.f();\n }\n\n return false;\n}; // Augment jQuery\n\n\nif (typeof jQuery !== \"undefined\" && jQuery !== null) {\n jQuery.fn.dropzone = function (options) {\n return this.each(function () {\n return new Dropzone(this, options);\n });\n };\n} // Dropzone file status codes\n\n\nDropzone.ADDED = \"added\";\nDropzone.QUEUED = \"queued\"; // For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\n\nDropzone.ACCEPTED = Dropzone.QUEUED;\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\n\nvar detectVerticalSquash = function detectVerticalSquash(img) {\n var iw = img.naturalWidth;\n var ih = img.naturalHeight;\n var canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = ih;\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n\n var _ctx$getImageData = ctx.getImageData(1, 0, 1, ih),\n data = _ctx$getImageData.data; // search image edge pixel position in case it is squashed vertically.\n\n\n var sy = 0;\n var ey = ih;\n var py = ih;\n\n while (py > sy) {\n var alpha = data[(py - 1) * 4 + 3];\n\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n\n py = ey + sy >> 1;\n }\n\n var ratio = py / ih;\n\n if (ratio === 0) {\n return 1;\n } else {\n return ratio;\n }\n}; // A replacement for context.drawImage\n// (args are for source and destination).\n\n\nvar drawImageIOSFix = function drawImageIOSFix(ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n var vertSquashRatio = detectVerticalSquash(img);\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n}; // Based on MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\n\n\nvar ExifRestore = /*#__PURE__*/function () {\n function ExifRestore() {\n dropzone_classCallCheck(this, ExifRestore);\n }\n\n dropzone_createClass(ExifRestore, null, [{\n key: \"initClass\",\n value: function initClass() {\n this.KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n }\n }, {\n key: \"encode64\",\n value: function encode64(input) {\n var output = \"\";\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = \"\";\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = \"\";\n var i = 0;\n\n while (true) {\n chr1 = input[i++];\n chr2 = input[i++];\n chr3 = input[i++];\n enc1 = chr1 >> 2;\n enc2 = (chr1 & 3) << 4 | chr2 >> 4;\n enc3 = (chr2 & 15) << 2 | chr3 >> 6;\n enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output + this.KEY_STR.charAt(enc1) + this.KEY_STR.charAt(enc2) + this.KEY_STR.charAt(enc3) + this.KEY_STR.charAt(enc4);\n chr1 = chr2 = chr3 = \"\";\n enc1 = enc2 = enc3 = enc4 = \"\";\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return output;\n }\n }, {\n key: \"restore\",\n value: function restore(origFileBase64, resizedFileBase64) {\n if (!origFileBase64.match(\"data:image/jpeg;base64,\")) {\n return resizedFileBase64;\n }\n\n var rawImage = this.decode64(origFileBase64.replace(\"data:image/jpeg;base64,\", \"\"));\n var segments = this.slice2Segments(rawImage);\n var image = this.exifManipulation(resizedFileBase64, segments);\n return \"data:image/jpeg;base64,\".concat(this.encode64(image));\n }\n }, {\n key: \"exifManipulation\",\n value: function exifManipulation(resizedFileBase64, segments) {\n var exifArray = this.getExifArray(segments);\n var newImageArray = this.insertExif(resizedFileBase64, exifArray);\n var aBuffer = new Uint8Array(newImageArray);\n return aBuffer;\n }\n }, {\n key: \"getExifArray\",\n value: function getExifArray(segments) {\n var seg = undefined;\n var x = 0;\n\n while (x < segments.length) {\n seg = segments[x];\n\n if (seg[0] === 255 & seg[1] === 225) {\n return seg;\n }\n\n x++;\n }\n\n return [];\n }\n }, {\n key: \"insertExif\",\n value: function insertExif(resizedFileBase64, exifArray) {\n var imageData = resizedFileBase64.replace(\"data:image/jpeg;base64,\", \"\");\n var buf = this.decode64(imageData);\n var separatePoint = buf.indexOf(255, 3);\n var mae = buf.slice(0, separatePoint);\n var ato = buf.slice(separatePoint);\n var array = mae;\n array = array.concat(exifArray);\n array = array.concat(ato);\n return array;\n }\n }, {\n key: \"slice2Segments\",\n value: function slice2Segments(rawImageArray) {\n var head = 0;\n var segments = [];\n\n while (true) {\n var length;\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 218) {\n break;\n }\n\n if (rawImageArray[head] === 255 & rawImageArray[head + 1] === 216) {\n head += 2;\n } else {\n length = rawImageArray[head + 2] * 256 + rawImageArray[head + 3];\n var endPoint = head + length + 2;\n var seg = rawImageArray.slice(head, endPoint);\n segments.push(seg);\n head = endPoint;\n }\n\n if (head > rawImageArray.length) {\n break;\n }\n }\n\n return segments;\n }\n }, {\n key: \"decode64\",\n value: function decode64(input) {\n var output = \"\";\n var chr1 = undefined;\n var chr2 = undefined;\n var chr3 = \"\";\n var enc1 = undefined;\n var enc2 = undefined;\n var enc3 = undefined;\n var enc4 = \"\";\n var i = 0;\n var buf = []; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n var base64test = /[^A-Za-z0-9\\+\\/\\=]/g;\n\n if (base64test.exec(input)) {\n console.warn(\"There were invalid base64 characters in the input text.\\nValid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\\nExpect errors in decoding.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n while (true) {\n enc1 = this.KEY_STR.indexOf(input.charAt(i++));\n enc2 = this.KEY_STR.indexOf(input.charAt(i++));\n enc3 = this.KEY_STR.indexOf(input.charAt(i++));\n enc4 = this.KEY_STR.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n buf.push(chr1);\n\n if (enc3 !== 64) {\n buf.push(chr2);\n }\n\n if (enc4 !== 64) {\n buf.push(chr3);\n }\n\n chr1 = chr2 = chr3 = \"\";\n enc1 = enc2 = enc3 = enc4 = \"\";\n\n if (!(i < input.length)) {\n break;\n }\n }\n\n return buf;\n }\n }]);\n\n return ExifRestore;\n}();\n\nExifRestore.initClass();\n/*\n * contentloaded.js\n *\n * Author: Diego Perini (diego.perini at gmail.com)\n * Summary: cross-browser wrapper for DOMContentLoaded\n * Updated: 20101020\n * License: MIT\n * Version: 1.2\n *\n * URL:\n * http://javascript.nwbox.com/ContentLoaded/\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\n */\n// @win window reference\n// @fn function reference\n\nvar contentLoaded = function contentLoaded(win, fn) {\n var done = false;\n var top = true;\n var doc = win.document;\n var root = doc.documentElement;\n var add = doc.addEventListener ? \"addEventListener\" : \"attachEvent\";\n var rem = doc.addEventListener ? \"removeEventListener\" : \"detachEvent\";\n var pre = doc.addEventListener ? \"\" : \"on\";\n\n var init = function init(e) {\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\n return;\n }\n\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\n\n if (!done && (done = true)) {\n return fn.call(win, e.type || e);\n }\n };\n\n var poll = function poll() {\n try {\n root.doScroll(\"left\");\n } catch (e) {\n setTimeout(poll, 50);\n return;\n }\n\n return init(\"poll\");\n };\n\n if (doc.readyState !== \"complete\") {\n if (doc.createEventObject && root.doScroll) {\n try {\n top = !win.frameElement;\n } catch (error) {}\n\n if (top) {\n poll();\n }\n }\n\n doc[add](pre + \"DOMContentLoaded\", init, false);\n doc[add](pre + \"readystatechange\", init, false);\n return win[add](pre + \"load\", init, false);\n }\n}; // As a single function to be able to write tests.\n\n\nDropzone._autoDiscoverFunction = function () {\n if (Dropzone.autoDiscover) {\n return Dropzone.discover();\n }\n};\n\ncontentLoaded(window, Dropzone._autoDiscoverFunction);\n\nfunction __guard__(value, transform) {\n return typeof value !== \"undefined\" && value !== null ? transform(value) : undefined;\n}\n\nfunction __guardMethod__(obj, methodName, transform) {\n if (typeof obj !== \"undefined\" && obj !== null && typeof obj[methodName] === \"function\") {\n return transform(obj, methodName);\n } else {\n return undefined;\n }\n}\n\n\n;// CONCATENATED MODULE: ./tool/dropzone.dist.js\n /// Make Dropzone a global variable.\n\nwindow.Dropzone = Dropzone;\n/* harmony default export */ var dropzone_dist = (Dropzone);\n\n}();\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});","// =========\n// = humps =\n// =========\n// Underscore-to-camelCase converter (and vice versa)\n// for strings and object keys\n\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n\n\n;(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i 0) {\n var thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n","/**\n * Module dependencies\n */\n\nvar debug = require('debug')('jsonp');\n\n/**\n * Module exports.\n */\n\nmodule.exports = jsonp;\n\n/**\n * Callback index.\n */\n\nvar count = 0;\n\n/**\n * Noop function.\n */\n\nfunction noop(){}\n\n/**\n * JSONP handler\n *\n * Options:\n * - param {String} qs parameter (`callback`)\n * - prefix {String} qs parameter (`__jp`)\n * - name {String} qs parameter (`prefix` + incr)\n * - timeout {Number} how long after a timeout error is emitted (`60000`)\n *\n * @param {String} url\n * @param {Object|Function} optional options / callback\n * @param {Function} optional callback\n */\n\nfunction jsonp(url, opts, fn){\n if ('function' == typeof opts) {\n fn = opts;\n opts = {};\n }\n if (!opts) opts = {};\n\n var prefix = opts.prefix || '__jp';\n\n // use the callback name that was passed if one was provided.\n // otherwise generate a unique name by incrementing our counter.\n var id = opts.name || (prefix + (count++));\n\n var param = opts.param || 'callback';\n var timeout = null != opts.timeout ? opts.timeout : 60000;\n var enc = encodeURIComponent;\n var target = document.getElementsByTagName('script')[0] || document.head;\n var script;\n var timer;\n\n\n if (timeout) {\n timer = setTimeout(function(){\n cleanup();\n if (fn) fn(new Error('Timeout'));\n }, timeout);\n }\n\n function cleanup(){\n if (script.parentNode) script.parentNode.removeChild(script);\n window[id] = noop;\n if (timer) clearTimeout(timer);\n }\n\n function cancel(){\n if (window[id]) {\n cleanup();\n }\n }\n\n window[id] = function(data){\n debug('jsonp got', data);\n cleanup();\n if (fn) fn(null, data);\n };\n\n // add qs component\n url += (~url.indexOf('?') ? '&' : '?') + param + '=' + enc(id);\n url = url.replace('?&', '?');\n\n debug('jsonp req \"%s\"', url);\n\n // create script\n script = document.createElement('script');\n script.src = url;\n target.parentNode.insertBefore(script, target);\n\n return cancel;\n}\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nmodule.exports = baseIsDate;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\n","var eq = require('./eq');\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nmodule.exports = baseSortedUniq;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nmodule.exports = fromPairs;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseIsDate = require('./_baseIsDate'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nmodule.exports = isDate;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\n","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseSortedUniq = require('./_baseSortedUniq');\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nmodule.exports = sortedUniq;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","var Mexp=require('./postfix_evaluator.js');\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i\"+pop2.value+\"\"+arr[i].show+\"\"+pop1.value+\"\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"\"+pop1.value+\"\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;","'use strict'\r\nvar Mexp = require('./math_function.js')\r\nfunction inc(arr, val) {\r\n\tfor (var i = 0; i < arr.length; i++) {\r\n\t\tarr[i] += val\r\n\t}\r\n\treturn arr\r\n}\r\nvar tokens = [\r\n\t{ token: 'sin', show: 'sin', type: 0, value: Mexp.math.sin },\r\n\t{ token: 'cos', show: 'cos', type: 0, value: Mexp.math.cos },\r\n\t{ token: 'tan', show: 'tan', type: 0, value: Mexp.math.tan },\r\n\t{ token: 'pi', show: 'π', type: 3, value: 'PI' },\r\n\t{ token: '(', show: '(', type: 4, value: '(' },\r\n\t{ token: ')', show: ')', type: 5, value: ')' },\r\n\t{ token: 'P', show: 'P', type: 10, value: Mexp.math.P },\r\n\t{ token: 'C', show: 'C', type: 10, value: Mexp.math.C },\r\n\t{ token: ' ', show: ' ', type: 14, value: ' '.anchor },\r\n\t{ token: 'asin', show: 'asin', type: 0, value: Mexp.math.asin },\r\n\t{ token: 'acos', show: 'acos', type: 0, value: Mexp.math.acos },\r\n\t{ token: 'atan', show: 'atan', type: 0, value: Mexp.math.atan },\r\n\t{ token: '7', show: '7', type: 1, value: '7' },\r\n\t{ token: '8', show: '8', type: 1, value: '8' },\r\n\t{ token: '9', show: '9', type: 1, value: '9' },\r\n\t{ token: 'int', show: 'Int', type: 0, value: Math.floor },\r\n\t{ token: 'cosh', show: 'cosh', type: 0, value: Mexp.math.cosh },\r\n\t{ token: 'acosh', show: 'acosh', type: 0, value: Mexp.math.acosh },\r\n\t{ token: 'ln', show: ' ln', type: 0, value: Math.log },\r\n\t{ token: '^', show: '^', type: 10, value: Math.pow },\r\n\t{ token: 'root', show: 'root', type: 0, value: Math.sqrt },\r\n\t{ token: '4', show: '4', type: 1, value: '4' },\r\n\t{ token: '5', show: '5', type: 1, value: '5' },\r\n\t{ token: '6', show: '6', type: 1, value: '6' },\r\n\t{ token: '/', show: '÷', type: 2, value: Mexp.math.div },\r\n\t{ token: '!', show: '!', type: 7, value: Mexp.math.fact },\r\n\t{ token: 'tanh', show: 'tanh', type: 0, value: Mexp.math.tanh },\r\n\t{ token: 'atanh', show: 'atanh', type: 0, value: Mexp.math.atanh },\r\n\t{ token: 'Mod', show: ' Mod ', type: 2, value: Mexp.math.mod },\r\n\t{ token: '1', show: '1', type: 1, value: '1' },\r\n\t{ token: '2', show: '2', type: 1, value: '2' },\r\n\t{ token: '3', show: '3', type: 1, value: '3' },\r\n\t{ token: '*', show: '×', type: 2, value: Mexp.math.mul },\r\n\t{ token: 'sinh', show: 'sinh', type: 0, value: Mexp.math.sinh },\r\n\t{ token: 'asinh', show: 'asinh', type: 0, value: Mexp.math.asinh },\r\n\t{ token: 'e', show: 'e', type: 3, value: 'E' },\r\n\t{ token: 'log', show: ' log', type: 0, value: Mexp.math.log },\r\n\t{ token: '0', show: '0', type: 1, value: '0' },\r\n\t{ token: '.', show: '.', type: 6, value: '.' },\r\n\t{ token: '+', show: '+', type: 9, value: Mexp.math.add },\r\n\t{ token: '-', show: '-', type: 9, value: Mexp.math.sub },\r\n\t{ token: ',', show: ',', type: 11, value: ',' },\r\n\t{ token: 'Sigma', show: 'Σ', type: 12, value: Mexp.math.sigma },\r\n\t{ token: 'n', show: 'n', type: 13, value: 'n' },\r\n\t{ token: 'Pi', show: 'Π', type: 12, value: Mexp.math.Pi },\r\n\t{ token: 'pow', show: 'pow', type: 8, value: Math.pow, numberOfArguments: 2 },\r\n\t{ token: '&', show: '&', type: 9, value: Mexp.math.and },\r\n]\r\nvar preced = {\r\n\t0: 11,\r\n\t1: 0,\r\n\t2: 3,\r\n\t3: 0,\r\n\t4: 0,\r\n\t5: 0,\r\n\t6: 0,\r\n\t7: 11,\r\n\t8: 11,\r\n\t9: 1,\r\n\t10: 10,\r\n\t11: 0,\r\n\t12: 11,\r\n\t13: 0,\r\n\t14: -1,\r\n\t15: 11, // will be filtered after lexer\r\n} // stores precedence by types\r\nfor (var i = 0; i < tokens.length; i++) {\r\n\ttokens[i].precedence = preced[tokens[i].type]\r\n}\r\nvar type0 = {\r\n\t0: true,\r\n\t1: true,\r\n\t3: true,\r\n\t4: true,\r\n\t6: true,\r\n\t8: true,\r\n\t9: true,\r\n\t12: true,\r\n\t13: true,\r\n\t14: true,\r\n\t15: true,\r\n} // type2:true,type4:true,type9:true,type11:true,type21:true,type22\r\nvar type1 = {\r\n\t0: true,\r\n\t1: true,\r\n\t2: true,\r\n\t3: true,\r\n\t4: true,\r\n\t5: true,\r\n\t6: true,\r\n\t7: true,\r\n\t8: true,\r\n\t9: true,\r\n\t10: true,\r\n\t11: true,\r\n\t12: true,\r\n\t13: true,\r\n\t15: true,\r\n} // type3:true,type5:true,type7:true,type23\r\nvar type1Asterick = {\r\n\t0: true,\r\n\t3: true,\r\n\t4: true,\r\n\t8: true,\r\n\t12: true,\r\n\t13: true,\r\n\t15: true,\r\n}\r\nvar empty = {}\r\nvar type3Asterick = {\r\n\t0: true,\r\n\t1: true,\r\n\t3: true,\r\n\t4: true,\r\n\t6: true,\r\n\t8: true,\r\n\t12: true,\r\n\t13: true,\r\n\t15: true,\r\n} // type_5:true,type_7:true,type_23\r\nvar type6 = {\r\n\t1: true,\r\n}\r\nvar newAr = [\r\n\t[],\r\n\t[\r\n\t\t'1',\r\n\t\t'2',\r\n\t\t'3',\r\n\t\t'7',\r\n\t\t'8',\r\n\t\t'9',\r\n\t\t'4',\r\n\t\t'5',\r\n\t\t'6',\r\n\t\t'+',\r\n\t\t'-',\r\n\t\t'*',\r\n\t\t'/',\r\n\t\t'(',\r\n\t\t')',\r\n\t\t'^',\r\n\t\t'!',\r\n\t\t'P',\r\n\t\t'C',\r\n\t\t'e',\r\n\t\t'0',\r\n\t\t'.',\r\n\t\t',',\r\n\t\t'n',\r\n\t\t' ',\r\n\t\t'&',\r\n\t],\r\n\t['pi', 'ln', 'Pi'],\r\n\t['sin', 'cos', 'tan', 'Del', 'int', 'Mod', 'log', 'pow'],\r\n\t['asin', 'acos', 'atan', 'cosh', 'root', 'tanh', 'sinh'],\r\n\t['acosh', 'atanh', 'asinh', 'Sigma'],\r\n]\r\n\r\nfunction match(str1, str2, i, x) {\r\n\tfor (var f = 0; f < x; f++) {\r\n\t\tif (str1[i + f] !== str2[f]) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\treturn true\r\n}\r\nMexp.tokenTypes = {\r\n\tFUNCTION_WITH_ONE_ARG: 0,\r\n\tNUMBER: 1,\r\n\tBINARY_OPERATOR_HIGH_PRECENDENCE: 2,\r\n\tCONSTANT: 3,\r\n\tOPENING_PARENTHESIS: 4,\r\n\tCLOSING_PARENTHESIS: 5,\r\n\tDECIMAL: 6,\r\n\tPOSTFIX_FUNCTION_WITH_ONE_ARG: 7,\r\n\tFUNCTION_WITH_N_ARGS: 8,\r\n\tBINARY_OPERATOR_LOW_PRECENDENCE: 9,\r\n\tBINARY_OPERATOR_PERMUTATION: 10,\r\n\tCOMMA: 11,\r\n\tEVALUATED_FUNCTION: 12,\r\n\tEVALUATED_FUNCTION_PARAMETER: 13,\r\n\tSPACE: 14,\r\n}\r\n/**\r\n \r\n 0 : function with syntax function_name(Maths_exp)\r\n 1 : numbers\r\n 2 : binary operators like * / Mod left associate and same precedence\r\n 3 : Math constant values like e,pi,Cruncher ans\r\n 4 : opening bracket\r\n 5 : closing bracket\r\n 6 : decimal\r\n 7 : function with syntax (Math_exp)function_name\r\n 8: function with syntax function_name(Math_exp1,Math_exp2)\r\n 9 : binary operator like +,-\r\n 10: binary operator like P C or ^\r\n 11: ,\r\n 12: function with , seperated three parameters and third parameter is a string that will be mexp string\r\n 13: variable of Sigma function\r\n */\r\nMexp.addToken = function (newTokens) {\r\n\tfor (var i = 0; i < newTokens.length; i++) {\r\n\t\tvar x = newTokens[i].token.length\r\n\t\tvar temp = -1\r\n\t\tif (newTokens[i].type === Mexp.tokenTypes.FUNCTION_WITH_N_ARGS && newTokens[i].numberOfArguments === undefined) {\r\n\t\t\tnewTokens[i].numberOfArguments = 2\r\n\t\t}\r\n\r\n\t\t// newAr is a specially designed data structure index of 1d array = length of tokens\r\n\t\tnewAr[x] = newAr[x] || []\r\n\t\tfor (var y = 0; y < newAr[x].length; y++) {\r\n\t\t\tif (newTokens[i].token === newAr[x][y]) {\r\n\t\t\t\ttemp = indexOfToken(newAr[x][y], tokens)\r\n\t\t\t\tbreak\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (temp === -1) {\r\n\t\t\ttokens.push(newTokens[i])\r\n\t\t\tnewTokens[i].precedence = preced[newTokens[i].type]\r\n\t\t\tif (newAr.length <= newTokens[i].token.length) {\r\n\t\t\t\tnewAr[newTokens[i].token.length] = []\r\n\t\t\t}\r\n\t\t\tnewAr[newTokens[i].token.length].push(newTokens[i].token)\r\n\t\t} else {\r\n\t\t\t// overwrite\r\n\t\t\ttokens[temp] = newTokens[i]\r\n\t\t\tnewTokens[i].precedence = preced[newTokens[i].type]\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction indexOfToken(key, tokens) {\r\n\tfor (var search = 0; search < tokens.length; search++) {\r\n\t\tif (tokens[search].token === key) return search\r\n\t}\r\n\treturn -1\r\n}\r\nfunction tokenize(string) {\r\n\tvar nodes = []\r\n\tvar length = string.length\r\n\tvar key, x, y\r\n\tfor (var i = 0; i < length; i++) {\r\n\t\tif (i < length - 1 && string[i] === ' ' && string[i + 1] === ' ') {\r\n\t\t\tcontinue\r\n\t\t}\r\n\t\tkey = ''\r\n\t\tfor (x = string.length - i > newAr.length - 2 ? newAr.length - 1 : string.length - i; x > 0; x--) {\r\n\t\t\tif (newAr[x] === undefined) continue\r\n\t\t\tfor (y = 0; y < newAr[x].length; y++) {\r\n\t\t\t\tif (match(string, newAr[x][y], i, x)) {\r\n\t\t\t\t\tkey = newAr[x][y]\r\n\t\t\t\t\ty = newAr[x].length\r\n\t\t\t\t\tx = 0\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\ti += key.length - 1\r\n\t\tif (key === '') {\r\n\t\t\tthrow new Mexp.Exception(\"Can't understand after \" + string.slice(i))\r\n\t\t}\r\n\t\tnodes.push(tokens[indexOfToken(key, tokens)])\r\n\t}\r\n\treturn nodes\r\n}\r\n\r\nvar changeSignObj = {\r\n\tvalue: Mexp.math.changeSign,\r\n\ttype: 0,\r\n\tpre: 21,\r\n\tshow: '-',\r\n}\r\nvar closingParObj = {\r\n\tvalue: ')',\r\n\tshow: ')',\r\n\ttype: 5,\r\n\tpre: 0,\r\n}\r\nvar openingParObj = {\r\n\tvalue: '(',\r\n\ttype: 4,\r\n\tpre: 0,\r\n\tshow: '(',\r\n}\r\nMexp.lex = function (inp, tokens) {\r\n\t'use strict'\r\n\r\n\tvar str = [openingParObj]\r\n\r\n\tvar ptc = [] // Parenthesis to close at the beginning is after one token\r\n\tvar inpStr = inp\r\n\tvar allowed = type0\r\n\tvar bracToClose = 0\r\n\tvar asterick = empty\r\n\tvar prevKey = ''\r\n\tvar i\r\n\tif (typeof tokens !== 'undefined') {\r\n\t\tMexp.addToken(tokens)\r\n\t}\r\n\tvar obj = {}\r\n\tvar nodes = tokenize(inpStr)\r\n\tfor (i = 0; i < nodes.length; i++) {\r\n\t\tvar node = nodes[i]\r\n\t\tif (node.type === 14) {\r\n\t\t\tif (\r\n\t\t\t\ti > 0 &&\r\n\t\t\t\ti < nodes.length - 1 &&\r\n\t\t\t\tnodes[i + 1].type === 1 &&\r\n\t\t\t\t(nodes[i - 1].type === 1 || nodes[i - 1].type === 6)\r\n\t\t\t) {\r\n\t\t\t\tthrow new Mexp.Exception('Unexpected Space')\r\n\t\t\t}\r\n\t\t\tcontinue\r\n\t\t}\r\n\t\tvar cToken = node.token\r\n\t\tvar cType = node.type\r\n\t\tvar cEv = node.value\r\n\t\tvar cPre = node.precedence\r\n\t\tvar cShow = node.show\r\n\t\tvar pre = str[str.length - 1]\r\n\t\tvar j\r\n\t\tfor (j = ptc.length; j--; ) {\r\n\t\t\t// loop over ptc\r\n\t\t\tif (ptc[j] === 0) {\r\n\t\t\t\tif ([0, 2, 3, 4, 5, 9, 11, 12, 13].indexOf(cType) !== -1) {\r\n\t\t\t\t\tif (allowed[cType] !== true) {\r\n\t\t\t\t\t\tthrow new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstr.push(closingParObj)\r\n\t\t\t\t\tallowed = type1\r\n\t\t\t\t\tasterick = type3Asterick\r\n\t\t\t\t\tptc.pop()\r\n\t\t\t\t}\r\n\t\t\t} else break\r\n\t\t}\r\n\t\tif (allowed[cType] !== true) {\r\n\t\t\tthrow new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n\t\t}\r\n\t\tif (asterick[cType] === true) {\r\n\t\t\tcType = 2\r\n\t\t\tcEv = Mexp.math.mul\r\n\t\t\tcShow = '×'\r\n\t\t\tcPre = 3\r\n\t\t\ti = i - 1\r\n\t\t}\r\n\t\tobj = {\r\n\t\t\tvalue: cEv,\r\n\t\t\ttype: cType,\r\n\t\t\tpre: cPre,\r\n\t\t\tshow: cShow,\r\n\t\t\tnumberOfArguments: node.numberOfArguments,\r\n\t\t}\r\n\t\tif (cType === 0) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tinc(ptc, 2)\r\n\t\t\tstr.push(obj)\r\n\t\t\tif (nodes[i + 1].type !== 4) {\r\n\t\t\t\tstr.push(openingParObj)\r\n\t\t\t\tptc.push(2)\r\n\t\t\t}\r\n\t\t\t// bracToClose++\r\n\t\t} else if (cType === 1) {\r\n\t\t\tif (pre.type === 1) {\r\n\t\t\t\tpre.value += cEv\r\n\t\t\t\tinc(ptc, 1)\r\n\t\t\t} else {\r\n\t\t\t\tstr.push(obj)\r\n\t\t\t}\r\n\t\t\tallowed = type1\r\n\t\t\tasterick = type1Asterick\r\n\t\t} else if (cType === 2) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tinc(ptc, 2)\r\n\t\t\tstr.push(obj)\r\n\t\t} else if (cType === 3) {\r\n\t\t\t// constant\r\n\t\t\tstr.push(obj)\r\n\t\t\tallowed = type1\r\n\t\t\tasterick = type3Asterick\r\n\t\t} else if (cType === 4) {\r\n\t\t\tinc(ptc, 1)\r\n\t\t\tbracToClose++\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tstr.push(obj)\r\n\t\t} else if (cType === 5) {\r\n\t\t\tif (!bracToClose) {\r\n\t\t\t\tthrow new Mexp.Exception('Closing parenthesis are more than opening one, wait What!!!')\r\n\t\t\t}\r\n\t\t\tbracToClose--\r\n\t\t\tallowed = type1\r\n\t\t\tasterick = type3Asterick\r\n\t\t\tstr.push(obj)\r\n\t\t\tinc(ptc, 1)\r\n\t\t} else if (cType === 6) {\r\n\t\t\tif (pre.hasDec) {\r\n\t\t\t\tthrow new Mexp.Exception('Two decimals are not allowed in one number')\r\n\t\t\t}\r\n\t\t\tif (pre.type !== 1) {\r\n\t\t\t\tpre = {\r\n\t\t\t\t\tvalue: 0,\r\n\t\t\t\t\ttype: 1,\r\n\t\t\t\t\tpre: 0,\r\n\t\t\t\t} // pre needs to be changed as it will the last value now to be safe in later code\r\n\t\t\t\tstr.push(pre)\r\n\t\t\t\t// inc(ptc, 1)\r\n\t\t\t}\r\n\t\t\tallowed = type6\r\n\t\t\tinc(ptc, 1)\r\n\t\t\tasterick = empty\r\n\t\t\tpre.value += cEv\r\n\t\t\tpre.hasDec = true\r\n\t\t} else if (cType === 7) {\r\n\t\t\tallowed = type1\r\n\t\t\tasterick = type3Asterick\r\n\t\t\tinc(ptc, 1)\r\n\t\t\tstr.push(obj)\r\n\t\t}\r\n\t\tif (cType === 8) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tinc(ptc, node.numberOfArguments + 2)\r\n\t\t\tstr.push(obj)\r\n\t\t\t// str.push(openingParObj)\r\n\t\t\tif (nodes[i + 1].type !== 4) {\r\n\t\t\t\tstr.push(openingParObj)\r\n\t\t\t\tptc.push(node.numberOfArguments + 2)\r\n\t\t\t}\r\n\t\t} else if (cType === 9) {\r\n\t\t\tif (pre.type === 9) {\r\n\t\t\t\tif (pre.value === Mexp.math.add) {\r\n\t\t\t\t\tpre.value = cEv\r\n\t\t\t\t\tpre.show = cShow\r\n\t\t\t\t\tinc(ptc, 1)\r\n\t\t\t\t} else if (pre.value === Mexp.math.sub && cShow === '-') {\r\n\t\t\t\t\tpre.value = Mexp.math.add\r\n\t\t\t\t\tpre.show = '+'\r\n\t\t\t\t\tinc(ptc, 1)\r\n\t\t\t\t}\r\n\t\t\t} else if (pre.type !== 5 && pre.type !== 7 && pre.type !== 1 && pre.type !== 3 && pre.type !== 13) {\r\n\t\t\t\t// changesign only when negative is found\r\n\t\t\t\tif (cToken === '-') {\r\n\t\t\t\t\t// do nothing for + token\r\n\t\t\t\t\t// don't add with the above if statement as that will run the else statement of parent if on Ctoken +\r\n\t\t\t\t\tallowed = type0\r\n\t\t\t\t\tasterick = empty\r\n\t\t\t\t\tinc(ptc, 2).push(2)\r\n\t\t\t\t\tstr.push(changeSignObj)\r\n\t\t\t\t\tstr.push(openingParObj)\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tstr.push(obj)\r\n\t\t\t\tinc(ptc, 2)\r\n\t\t\t}\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t} else if (cType === 10) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tinc(ptc, 2)\r\n\t\t\tstr.push(obj)\r\n\t\t} else if (cType === 11) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tstr.push(obj)\r\n\t\t} else if (cType === 12) {\r\n\t\t\tallowed = type0\r\n\t\t\tasterick = empty\r\n\t\t\tinc(ptc, 6)\r\n\t\t\tstr.push(obj)\r\n\t\t\tif (nodes[i + 1].type !== 4) {\r\n\t\t\t\tstr.push(openingParObj)\r\n\t\t\t\tptc.push(6)\r\n\t\t\t}\r\n\t\t} else if (cType === 13) {\r\n\t\t\tallowed = type1\r\n\t\t\tasterick = type3Asterick\r\n\t\t\tstr.push(obj)\r\n\t\t}\r\n\r\n\t\tinc(ptc, -1)\r\n\t\tprevKey = cToken\r\n\t}\r\n\tfor (j = ptc.length; j--; ) {\r\n\t\t// loop over ptc\r\n\t\tstr.push(closingParObj)\r\n\t}\r\n\tif (allowed[5] !== true) {\r\n\t\tthrow new Mexp.Exception('complete the expression')\r\n\t}\r\n\twhile (bracToClose--) {\r\n\t\tstr.push(closingParObj)\r\n\t}\r\n\r\n\tstr.push(closingParObj)\r\n\t// console.log(str);\r\n\treturn new Mexp(str)\r\n}\r\nmodule.exports = Mexp\r\n","\"use strict\";\r\nvar Mexp = function (parsed) {\r\n this.value = parsed\r\n}\r\n\r\nMexp.math = {\r\n isDegree: true, // mode of calculator\r\n acos: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.acos(x) : Math.acos(x))\r\n },\r\n add: function (a, b) {\r\n return a + b\r\n },\r\n asin: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.asin(x) : Math.asin(x))\r\n },\r\n atan: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.atan(x) : Math.atan(x))\r\n },\r\n acosh: function (x) {\r\n return Math.log(x + Math.sqrt(x * x - 1))\r\n },\r\n asinh: function (x) {\r\n return Math.log(x + Math.sqrt(x * x + 1))\r\n },\r\n atanh: function (x) {\r\n return Math.log((1 + x) / (1 - x))\r\n },\r\n C: function (n, r) {\r\n var pro = 1\r\n var other = n - r\r\n var choice = r\r\n if (choice < other) {\r\n choice = other\r\n other = r\r\n }\r\n for (var i = choice + 1; i <= n; i++) {\r\n pro *= i\r\n }\r\n return pro / Mexp.math.fact(other)\r\n },\r\n changeSign: function (x) {\r\n return -x\r\n },\r\n cos: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.cos(x)\r\n },\r\n cosh: function (x) {\r\n return (Math.pow(Math.E, x) + Math.pow(Math.E, -1 * x)) / 2\r\n },\r\n div: function (a, b) {\r\n return a / b\r\n },\r\n fact: function (n) {\r\n if (n % 1 !== 0) return 'NaN'\r\n var pro = 1\r\n for (var i = 2; i <= n; i++) {\r\n pro *= i\r\n }\r\n return pro\r\n },\r\n inverse: function (x) {\r\n return 1 / x\r\n },\r\n log: function (i) {\r\n return Math.log(i) / Math.log(10)\r\n },\r\n mod: function (a, b) {\r\n return a % b\r\n },\r\n mul: function (a, b) {\r\n return a * b\r\n },\r\n P: function (n, r) {\r\n var pro = 1\r\n for (var i = Math.floor(n) - Math.floor(r) + 1; i <= Math.floor(n); i++) {\r\n pro *= i\r\n }\r\n return pro\r\n },\r\n Pi: function (low, high, ex) {\r\n var pro = 1\r\n for (var i = low; i <= high; i++) {\r\n pro *= Number(ex.postfixEval({\r\n n: i\r\n }))\r\n }\r\n return pro\r\n },\r\n pow10x: function (e) {\r\n var x = 1\r\n while (e--) {\r\n x *= 10\r\n }\r\n return x\r\n },\r\n sigma: function (low, high, ex) {\r\n var sum = 0\r\n for (var i = low; i <= high; i++) {\r\n sum += Number(ex.postfixEval({\r\n n: i\r\n }))\r\n }\r\n return sum\r\n },\r\n sin: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.sin(x)\r\n },\r\n sinh: function (x) {\r\n return (Math.pow(Math.E, x) - Math.pow(Math.E, -1 * x)) / 2\r\n },\r\n sub: function (a, b) {\r\n return a - b\r\n },\r\n tan: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.tan(x)\r\n },\r\n tanh: function (x) {\r\n return Mexp.sinha(x) / Mexp.cosha(x)\r\n },\r\n toRadian: function (x) {\r\n return x * Math.PI / 180\r\n },\r\n and: function (a, b) {\r\n return a & b\r\n }\r\n}\r\nMexp.Exception = function (message) {\r\n this.message = message\r\n}\r\nmodule.exports = Mexp\r\n","\r\nvar Mexp = require('./lexer.js');\r\n\r\nMexp.prototype.toPostfix = function () {\r\n\t'use strict';\r\n\tvar post = [], elem, popped, prep, pre, ele;\r\n\tvar stack = [{ value: \"(\", type: 4, pre: 0 }];\r\n\tvar arr = this.value;\r\n\tfor (var i = 1; i < arr.length; i++) {\r\n\t\tif (arr[i].type === 1 || arr[i].type === 3 || arr[i].type === 13) {\t//if token is number,constant,or n(which is also a special constant in our case)\r\n\t\t\tif (arr[i].type === 1)\r\n\t\t\t\tarr[i].value = Number(arr[i].value);\r\n\t\t\tpost.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 4) {\r\n\t\t\tstack.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 5) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (arr[i].type === 11) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t\tstack.push(popped);\r\n\t\t}\r\n\t\telse {\r\n\t\t\telem = arr[i];\r\n\t\t\tpre = elem.pre;\r\n\t\t\tele = stack[stack.length - 1];\r\n\t\t\tprep = ele.pre;\r\n\t\t\tvar flag = ele.value == 'Math.pow' && elem.value == 'Math.pow';\r\n\t\t\tif (pre > prep) stack.push(elem);\r\n\t\t\telse {\r\n\t\t\t\twhile (prep >= pre && !flag || flag && pre < prep) {\r\n\t\t\t\t\tpopped = stack.pop();\r\n\t\t\t\t\tele = stack[stack.length - 1];\r\n\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t\tprep = ele.pre;\r\n\t\t\t\t\tflag = elem.value == 'Math.pow' && ele.value == 'Math.pow';\r\n\t\t\t\t}\r\n\t\t\t\tstack.push(elem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn new Mexp(post);\r\n};\r\nmodule.exports = Mexp;","var Mexp = require('./postfix.js')\r\nMexp.prototype.postfixEval = function (UserDefined) {\r\n\t'use strict'\r\n\tUserDefined = UserDefined || {}\r\n\tUserDefined.PI = Math.PI\r\n\tUserDefined.E = Math.E\r\n\tvar stack = [],\r\n\t\tpop1,\r\n\t\tpop2,\r\n\t\tpop3\r\n\tvar disp = []\r\n\tvar temp = ''\r\n\tvar arr = this.value\r\n\tvar bool = typeof UserDefined.n !== 'undefined'\r\n\tfor (var i = 0; i < arr.length; i++) {\r\n\t\tif (arr[i].type === 1) {\r\n\t\t\tstack.push({ value: arr[i].value, type: 1 })\r\n\t\t} else if (arr[i].type === 3) {\r\n\t\t\tstack.push({ value: UserDefined[arr[i].value], type: 1 })\r\n\t\t} else if (arr[i].type === 0) {\r\n\t\t\tif (typeof stack[stack.length - 1].type === 'undefined') {\r\n\t\t\t\tstack[stack.length - 1].value.push(arr[i])\r\n\t\t\t} else stack[stack.length - 1].value = arr[i].value(stack[stack.length - 1].value)\r\n\t\t} else if (arr[i].type === 7) {\r\n\t\t\tif (typeof stack[stack.length - 1].type === 'undefined') {\r\n\t\t\t\tstack[stack.length - 1].value.push(arr[i])\r\n\t\t\t} else stack[stack.length - 1].value = arr[i].value(stack[stack.length - 1].value)\r\n\t\t} else if (arr[i].type === 8) {\r\n\t\t\tvar popped = []\r\n\t\t\tfor (var x = 0; x < arr[i].numberOfArguments; x++) {\r\n\t\t\t\tpopped.push(stack.pop().value)\r\n\t\t\t}\r\n\t\t\tstack.push({ type: 1, value: arr[i].value.apply(arr[i], popped.reverse()) })\r\n\t\t} else if (arr[i].type === 10) {\r\n\t\t\tpop1 = stack.pop()\r\n\t\t\tpop2 = stack.pop()\r\n\t\t\tif (typeof pop2.type === 'undefined') {\r\n\t\t\t\tpop2.value = pop2.concat(pop1)\r\n\t\t\t\tpop2.value.push(arr[i])\r\n\t\t\t\tstack.push(pop2)\r\n\t\t\t} else if (typeof pop1.type === 'undefined') {\r\n\t\t\t\tpop1.unshift(pop2)\r\n\t\t\t\tpop1.push(arr[i])\r\n\t\t\t\tstack.push(pop1)\r\n\t\t\t} else {\r\n\t\t\t\tstack.push({ type: 1, value: arr[i].value(pop2.value, pop1.value) })\r\n\t\t\t}\r\n\t\t} else if (arr[i].type === 2 || arr[i].type === 9) {\r\n\t\t\tpop1 = stack.pop()\r\n\t\t\tpop2 = stack.pop()\r\n\t\t\tif (typeof pop2.type === 'undefined') {\r\n\t\t\t\tpop2 = pop2.concat(pop1)\r\n\t\t\t\tpop2.push(arr[i])\r\n\t\t\t\tstack.push(pop2)\r\n\t\t\t} else if (typeof pop1.type === 'undefined') {\r\n\t\t\t\tpop1.unshift(pop2)\r\n\t\t\t\tpop1.push(arr[i])\r\n\t\t\t\tstack.push(pop1)\r\n\t\t\t} else {\r\n\t\t\t\tstack.push({ type: 1, value: arr[i].value(pop2.value, pop1.value) })\r\n\t\t\t}\r\n\t\t} else if (arr[i].type === 12) {\r\n\t\t\tpop1 = stack.pop()\r\n\t\t\tif (typeof pop1.type !== 'undefined') {\r\n\t\t\t\tpop1 = [pop1]\r\n\t\t\t}\r\n\t\t\tpop2 = stack.pop()\r\n\t\t\tpop3 = stack.pop()\r\n\t\t\tstack.push({ type: 1, value: arr[i].value(pop3.value, pop2.value, new Mexp(pop1)) })\r\n\t\t} else if (arr[i].type === 13) {\r\n\t\t\tif (bool) {\r\n\t\t\t\tstack.push({ value: UserDefined[arr[i].value], type: 3 })\r\n\t\t\t} else stack.push([arr[i]])\r\n\t\t}\r\n\t}\r\n\tif (stack.length > 1) {\r\n\t\tthrow new Mexp.Exception('Uncaught Syntax error')\r\n\t}\r\n\treturn stack[0].value > 1000000000000000 ? 'Infinity' : parseFloat(stack[0].value.toFixed(15))\r\n}\r\nMexp.eval = function (str, tokens, obj) {\r\n\tif (typeof tokens === 'undefined') {\r\n\t\treturn this.lex(str).toPostfix().postfixEval()\r\n\t} else if (typeof obj === 'undefined') {\r\n\t\tif (typeof tokens.length !== 'undefined') return this.lex(str, tokens).toPostfix().postfixEval()\r\n\t\telse return this.lex(str).toPostfix().postfixEval(tokens)\r\n\t} else return this.lex(str, tokens).toPostfix().postfixEval(obj)\r\n}\r\nmodule.exports = Mexp\r\n","var mode = require('./mode');\n\nfunction QR8bitByte(data) {\n\tthis.mode = mode.MODE_8BIT_BYTE;\n\tthis.data = data;\n}\n\nQR8bitByte.prototype = {\n\n\tgetLength : function(buffer) {\n\t\treturn this.data.length;\n\t},\n\t\n\twrite : function(buffer) {\n\t\tfor (var i = 0; i < this.data.length; i++) {\n\t\t\t// not JIS ...\n\t\t\tbuffer.put(this.data.charCodeAt(i), 8);\n\t\t}\n\t}\n};\n\nmodule.exports = QR8bitByte;\n\n","function QRBitBuffer() {\n\tthis.buffer = new Array();\n\tthis.length = 0;\n}\n\nQRBitBuffer.prototype = {\n\n\tget : function(index) {\n\t\tvar bufIndex = Math.floor(index / 8);\n\t\treturn ( (this.buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n\t},\n\t\n\tput : function(num, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tthis.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t\t}\n\t},\n\t\n\tgetLengthInBits : function() {\n\t\treturn this.length;\n\t},\n\t\n\tputBit : function(bit) {\n\t\n\t\tvar bufIndex = Math.floor(this.length / 8);\n\t\tif (this.buffer.length <= bufIndex) {\n\t\t\tthis.buffer.push(0);\n\t\t}\n\t\n\t\tif (bit) {\n\t\t\tthis.buffer[bufIndex] |= (0x80 >>> (this.length % 8) );\n\t\t}\n\t\n\t\tthis.length++;\n\t}\n};\n\nmodule.exports = QRBitBuffer;\n","module.exports = {\n\tL : 1,\n\tM : 0,\n\tQ : 3,\n\tH : 2\n};\n\n","var math = require('./math');\n\nfunction QRPolynomial(num, shift) {\n\n\tif (num.length == undefined) {\n\t\tthrow new Error(num.length + \"/\" + shift);\n\t}\n\n\tvar offset = 0;\n\n\twhile (offset < num.length && num[offset] == 0) {\n\t\toffset++;\n\t}\n\n\tthis.num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i++) {\n\t\tthis.num[i] = num[i + offset];\n\t}\n}\n\nQRPolynomial.prototype = {\n\n\tget : function(index) {\n\t\treturn this.num[index];\n\t},\n\t\n\tgetLength : function() {\n\t\treturn this.num.length;\n\t},\n\t\n\tmultiply : function(e) {\n\t\n\t\tvar num = new Array(this.getLength() + e.getLength() - 1);\n\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tfor (var j = 0; j < e.getLength(); j++) {\n\t\t\t\tnum[i + j] ^= math.gexp(math.glog(this.get(i) ) + math.glog(e.get(j) ) );\n\t\t\t}\n\t\t}\n\t\n\t\treturn new QRPolynomial(num, 0);\n\t},\n\t\n\tmod : function(e) {\n\t\n\t\tif (this.getLength() - e.getLength() < 0) {\n\t\t\treturn this;\n\t\t}\n\t\n\t\tvar ratio = math.glog(this.get(0) ) - math.glog(e.get(0) );\n\t\n\t\tvar num = new Array(this.getLength() );\n\t\t\n\t\tfor (var i = 0; i < this.getLength(); i++) {\n\t\t\tnum[i] = this.get(i);\n\t\t}\n\t\t\n\t\tfor (var i = 0; i < e.getLength(); i++) {\n\t\t\tnum[i] ^= math.gexp(math.glog(e.get(i) ) + ratio);\n\t\t}\n\t\n\t\t// recursive call\n\t\treturn new QRPolynomial(num, 0).mod(e);\n\t}\n};\n\nmodule.exports = QRPolynomial;\n","var BitByte = require('./8BitByte');\nvar RSBlock = require('./RSBlock');\nvar BitBuffer = require('./BitBuffer');\nvar util = require('./util');\nvar Polynomial = require('./Polynomial');\n\nfunction QRCode(typeNumber, errorCorrectLevel) {\n\tthis.typeNumber = typeNumber;\n\tthis.errorCorrectLevel = errorCorrectLevel;\n\tthis.modules = null;\n\tthis.moduleCount = 0;\n\tthis.dataCache = null;\n\tthis.dataList = [];\n}\n\n// for client side minification\nvar proto = QRCode.prototype;\n\nproto.addData = function(data) {\n\tvar newData = new BitByte(data);\n\tthis.dataList.push(newData);\n\tthis.dataCache = null;\n};\n\nproto.isDark = function(row, col) {\n\tif (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {\n\t\tthrow new Error(row + \",\" + col);\n\t}\n\treturn this.modules[row][col];\n};\n\nproto.getModuleCount = function() {\n\treturn this.moduleCount;\n};\n\nproto.make = function() {\n\t// Calculate automatically typeNumber if provided is < 1\n\tif (this.typeNumber < 1 ){\n\t\tvar typeNumber = 1;\n\t\tfor (typeNumber = 1; typeNumber < 40; typeNumber++) {\n\t\t\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);\n\n\t\t\tvar buffer = new BitBuffer();\n\t\t\tvar totalDataCount = 0;\n\t\t\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\t\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t\t\t}\n\n\t\t\tfor (var i = 0; i < this.dataList.length; i++) {\n\t\t\t\tvar data = this.dataList[i];\n\t\t\t\tbuffer.put(data.mode, 4);\n\t\t\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\t\t\tdata.write(buffer);\n\t\t\t}\n\t\t\tif (buffer.getLengthInBits() <= totalDataCount * 8)\n\t\t\t\tbreak;\n\t\t}\n\t\tthis.typeNumber = typeNumber;\n\t}\n\tthis.makeImpl(false, this.getBestMaskPattern() );\n};\n\nproto.makeImpl = function(test, maskPattern) {\n\t\n\tthis.moduleCount = this.typeNumber * 4 + 17;\n\tthis.modules = new Array(this.moduleCount);\n\t\n\tfor (var row = 0; row < this.moduleCount; row++) {\n\t\t\n\t\tthis.modules[row] = new Array(this.moduleCount);\n\t\t\n\t\tfor (var col = 0; col < this.moduleCount; col++) {\n\t\t\tthis.modules[row][col] = null;//(col + row) % 3;\n\t\t}\n\t}\n\n\tthis.setupPositionProbePattern(0, 0);\n\tthis.setupPositionProbePattern(this.moduleCount - 7, 0);\n\tthis.setupPositionProbePattern(0, this.moduleCount - 7);\n\tthis.setupPositionAdjustPattern();\n\tthis.setupTimingPattern();\n\tthis.setupTypeInfo(test, maskPattern);\n\t\n\tif (this.typeNumber >= 7) {\n\t\tthis.setupTypeNumber(test);\n\t}\n\n\tif (this.dataCache == null) {\n\t\tthis.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);\n\t}\n\n\tthis.mapData(this.dataCache, maskPattern);\n};\n\nproto.setupPositionProbePattern = function(row, col) {\n\t\n\tfor (var r = -1; r <= 7; r++) {\n\t\t\n\t\tif (row + r <= -1 || this.moduleCount <= row + r) continue;\n\t\t\n\t\tfor (var c = -1; c <= 7; c++) {\n\t\t\t\n\t\t\tif (col + c <= -1 || this.moduleCount <= col + c) continue;\n\t\t\t\n\t\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t\t\t\t|| (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t\t\t\t|| (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t}\n\t\t}\t\t\n\t}\t\t\n};\n\nproto.getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i++) {\n\t\t\n\t\tthis.makeImpl(true, i);\n\n\t\tvar lostPoint = util.getLostPoint(this);\n\n\t\tif (i == 0 || minLostPoint > lostPoint) {\n\t\t\tminLostPoint = lostPoint;\n\t\t\tpattern = i;\n\t\t}\n\t}\n\n\treturn pattern;\n};\n\nproto.createMovieClip = function(target_mc, instance_name, depth) {\n\n\tvar qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n\tvar cs = 1;\n\n\tthis.make();\n\n\tfor (var row = 0; row < this.modules.length; row++) {\n\t\t\n\t\tvar y = row * cs;\n\t\t\n\t\tfor (var col = 0; col < this.modules[row].length; col++) {\n\n\t\t\tvar x = col * cs;\n\t\t\tvar dark = this.modules[row][col];\n\t\t\n\t\t\tif (dark) {\n\t\t\t\tqr_mc.beginFill(0, 100);\n\t\t\t\tqr_mc.moveTo(x, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y);\n\t\t\t\tqr_mc.lineTo(x + cs, y + cs);\n\t\t\t\tqr_mc.lineTo(x, y + cs);\n\t\t\t\tqr_mc.endFill();\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn qr_mc;\n};\n\nproto.setupTimingPattern = function() {\n\t\n\tfor (var r = 8; r < this.moduleCount - 8; r++) {\n\t\tif (this.modules[r][6] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < this.moduleCount - 8; c++) {\n\t\tif (this.modules[6][c] != null) {\n\t\t\tcontinue;\n\t\t}\n\t\tthis.modules[6][c] = (c % 2 == 0);\n\t}\n};\n\nproto.setupPositionAdjustPattern = function() {\n\n\tvar pos = util.getPatternPosition(this.typeNumber);\n\t\n\tfor (var i = 0; i < pos.length; i++) {\n\t\n\t\tfor (var j = 0; j < pos.length; j++) {\n\t\t\n\t\t\tvar row = pos[i];\n\t\t\tvar col = pos[j];\n\t\t\t\n\t\t\tif (this.modules[row][col] != null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t\n\t\t\tfor (var r = -2; r <= 2; r++) {\n\t\t\t\n\t\t\t\tfor (var c = -2; c <= 2; c++) {\n\t\t\t\t\n\t\t\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t\t\t\t\t|| (r == 0 && c == 0) ) {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.modules[row + r][col + c] = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nproto.setupTypeNumber = function(test) {\n\n\tvar bits = util.getBCHTypeNumber(this.typeNumber);\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i++) {\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\tthis.modules[i % 3 + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n};\n\nproto.setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (this.errorCorrectLevel << 3) | maskPattern;\n\tvar bits = util.getBCHTypeInfo(data);\n\n\t// vertical\t\t\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t\tif (i < 6) {\n\t\t\tthis.modules[i][8] = mod;\n\t\t} else if (i < 8) {\n\t\t\tthis.modules[i + 1][8] = mod;\n\t\t} else {\n\t\t\tthis.modules[this.moduleCount - 15 + i][8] = mod;\n\t\t}\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i++) {\n\n\t\tvar mod = (!test && ( (bits >> i) & 1) == 1);\n\t\t\n\t\tif (i < 8) {\n\t\t\tthis.modules[8][this.moduleCount - i - 1] = mod;\n\t\t} else if (i < 9) {\n\t\t\tthis.modules[8][15 - i - 1 + 1] = mod;\n\t\t} else {\n\t\t\tthis.modules[8][15 - i - 1] = mod;\n\t\t}\n\t}\n\n\t// fixed module\n\tthis.modules[this.moduleCount - 8][8] = (!test);\n};\n\nproto.mapData = function(data, maskPattern) {\n\t\n\tvar inc = -1;\n\tvar row = this.moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\t\n\tfor (var col = this.moduleCount - 1; col > 0; col -= 2) {\n\n\t\tif (col == 6) col--;\n\n\t\twhile (true) {\n\n\t\t\tfor (var c = 0; c < 2; c++) {\n\t\t\t\t\n\t\t\t\tif (this.modules[row][col - c] == null) {\n\t\t\t\t\t\n\t\t\t\t\tvar dark = false;\n\n\t\t\t\t\tif (byteIndex < data.length) {\n\t\t\t\t\t\tdark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tvar mask = util.getMask(maskPattern, row, col - c);\n\n\t\t\t\t\tif (mask) {\n\t\t\t\t\t\tdark = !dark;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.modules[row][col - c] = dark;\n\t\t\t\t\tbitIndex--;\n\n\t\t\t\t\tif (bitIndex == -1) {\n\t\t\t\t\t\tbyteIndex++;\n\t\t\t\t\t\tbitIndex = 7;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\trow += inc;\n\n\t\t\tif (row < 0 || this.moduleCount <= row) {\n\t\t\t\trow -= inc;\n\t\t\t\tinc = -inc;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n};\n\nQRCode.PAD0 = 0xEC;\nQRCode.PAD1 = 0x11;\n\nQRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {\n\t\n\tvar rsBlocks = RSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\t\n\tvar buffer = new BitBuffer();\n\t\n\tfor (var i = 0; i < dataList.length; i++) {\n\t\tvar data = dataList[i];\n\t\tbuffer.put(data.mode, 4);\n\t\tbuffer.put(data.getLength(), util.getLengthInBits(data.mode, typeNumber) );\n\t\tdata.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t\tthrow new Error(\"code length overflow. (\"\n\t\t\t+ buffer.getLengthInBits()\n\t\t\t+ \">\"\n\t\t\t+ totalDataCount * 8\n\t\t\t+ \")\");\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t\tbuffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t\tbuffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD0, 8);\n\t\t\n\t\tif (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\t\tbreak;\n\t\t}\n\t\tbuffer.put(QRCode.PAD1, 8);\n\t}\n\n\treturn QRCode.createBytes(buffer, rsBlocks);\n};\n\nQRCode.createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\t\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\t\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\t\n\tfor (var r = 0; r < rsBlocks.length; r++) {\n\n\t\tvar dcCount = rsBlocks[r].dataCount;\n\t\tvar ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t\tmaxDcCount = Math.max(maxDcCount, dcCount);\n\t\tmaxEcCount = Math.max(maxEcCount, ecCount);\n\t\t\n\t\tdcdata[r] = new Array(dcCount);\n\t\t\n\t\tfor (var i = 0; i < dcdata[r].length; i++) {\n\t\t\tdcdata[r][i] = 0xff & buffer.buffer[i + offset];\n\t\t}\n\t\toffset += dcCount;\n\t\t\n\t\tvar rsPoly = util.getErrorCorrectPolynomial(ecCount);\n\t\tvar rawPoly = new Polynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t\tvar modPoly = rawPoly.mod(rsPoly);\n\t\tecdata[r] = new Array(rsPoly.getLength() - 1);\n\t\tfor (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\t\tecdata[r][i] = (modIndex >= 0)? modPoly.get(modIndex) : 0;\n\t\t}\n\n\t}\n\t\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i++) {\n\t\ttotalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < dcdata[r].length) {\n\t\t\t\tdata[index++] = dcdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i++) {\n\t\tfor (var r = 0; r < rsBlocks.length; r++) {\n\t\t\tif (i < ecdata[r].length) {\n\t\t\t\tdata[index++] = ecdata[r][i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn data;\n};\n\nmodule.exports = QRCode;\n\n","// ErrorCorrectLevel\nvar ECL = require('./ErrorCorrectLevel');\n\nfunction QRRSBlock(totalCount, dataCount) {\n\tthis.totalCount = totalCount;\n\tthis.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n\n\t// L\n\t// M\n\t// Q\n\t// H\n\n\t// 1\n\t[1, 26, 19],\n\t[1, 26, 16],\n\t[1, 26, 13],\n\t[1, 26, 9],\n\t\n\t// 2\n\t[1, 44, 34],\n\t[1, 44, 28],\n\t[1, 44, 22],\n\t[1, 44, 16],\n\n\t// 3\n\t[1, 70, 55],\n\t[1, 70, 44],\n\t[2, 35, 17],\n\t[2, 35, 13],\n\n\t// 4\t\t\n\t[1, 100, 80],\n\t[2, 50, 32],\n\t[2, 50, 24],\n\t[4, 25, 9],\n\t\n\t// 5\n\t[1, 134, 108],\n\t[2, 67, 43],\n\t[2, 33, 15, 2, 34, 16],\n\t[2, 33, 11, 2, 34, 12],\n\t\n\t// 6\n\t[2, 86, 68],\n\t[4, 43, 27],\n\t[4, 43, 19],\n\t[4, 43, 15],\n\t\n\t// 7\t\t\n\t[2, 98, 78],\n\t[4, 49, 31],\n\t[2, 32, 14, 4, 33, 15],\n\t[4, 39, 13, 1, 40, 14],\n\t\n\t// 8\n\t[2, 121, 97],\n\t[2, 60, 38, 2, 61, 39],\n\t[4, 40, 18, 2, 41, 19],\n\t[4, 40, 14, 2, 41, 15],\n\t\n\t// 9\n\t[2, 146, 116],\n\t[3, 58, 36, 2, 59, 37],\n\t[4, 36, 16, 4, 37, 17],\n\t[4, 36, 12, 4, 37, 13],\n\t\n\t// 10\t\t\n\t[2, 86, 68, 2, 87, 69],\n\t[4, 69, 43, 1, 70, 44],\n\t[6, 43, 19, 2, 44, 20],\n\t[6, 43, 15, 2, 44, 16],\n\n\t// 11\n\t[4, 101, 81],\n\t[1, 80, 50, 4, 81, 51],\n\t[4, 50, 22, 4, 51, 23],\n\t[3, 36, 12, 8, 37, 13],\n\n\t// 12\n\t[2, 116, 92, 2, 117, 93],\n\t[6, 58, 36, 2, 59, 37],\n\t[4, 46, 20, 6, 47, 21],\n\t[7, 42, 14, 4, 43, 15],\n\n\t// 13\n\t[4, 133, 107],\n\t[8, 59, 37, 1, 60, 38],\n\t[8, 44, 20, 4, 45, 21],\n\t[12, 33, 11, 4, 34, 12],\n\n\t// 14\n\t[3, 145, 115, 1, 146, 116],\n\t[4, 64, 40, 5, 65, 41],\n\t[11, 36, 16, 5, 37, 17],\n\t[11, 36, 12, 5, 37, 13],\n\n\t// 15\n\t[5, 109, 87, 1, 110, 88],\n\t[5, 65, 41, 5, 66, 42],\n\t[5, 54, 24, 7, 55, 25],\n\t[11, 36, 12],\n\n\t// 16\n\t[5, 122, 98, 1, 123, 99],\n\t[7, 73, 45, 3, 74, 46],\n\t[15, 43, 19, 2, 44, 20],\n\t[3, 45, 15, 13, 46, 16],\n\n\t// 17\n\t[1, 135, 107, 5, 136, 108],\n\t[10, 74, 46, 1, 75, 47],\n\t[1, 50, 22, 15, 51, 23],\n\t[2, 42, 14, 17, 43, 15],\n\n\t// 18\n\t[5, 150, 120, 1, 151, 121],\n\t[9, 69, 43, 4, 70, 44],\n\t[17, 50, 22, 1, 51, 23],\n\t[2, 42, 14, 19, 43, 15],\n\n\t// 19\n\t[3, 141, 113, 4, 142, 114],\n\t[3, 70, 44, 11, 71, 45],\n\t[17, 47, 21, 4, 48, 22],\n\t[9, 39, 13, 16, 40, 14],\n\n\t// 20\n\t[3, 135, 107, 5, 136, 108],\n\t[3, 67, 41, 13, 68, 42],\n\t[15, 54, 24, 5, 55, 25],\n\t[15, 43, 15, 10, 44, 16],\n\n\t// 21\n\t[4, 144, 116, 4, 145, 117],\n\t[17, 68, 42],\n\t[17, 50, 22, 6, 51, 23],\n\t[19, 46, 16, 6, 47, 17],\n\n\t// 22\n\t[2, 139, 111, 7, 140, 112],\n\t[17, 74, 46],\n\t[7, 54, 24, 16, 55, 25],\n\t[34, 37, 13],\n\n\t// 23\n\t[4, 151, 121, 5, 152, 122],\n\t[4, 75, 47, 14, 76, 48],\n\t[11, 54, 24, 14, 55, 25],\n\t[16, 45, 15, 14, 46, 16],\n\n\t// 24\n\t[6, 147, 117, 4, 148, 118],\n\t[6, 73, 45, 14, 74, 46],\n\t[11, 54, 24, 16, 55, 25],\n\t[30, 46, 16, 2, 47, 17],\n\n\t// 25\n\t[8, 132, 106, 4, 133, 107],\n\t[8, 75, 47, 13, 76, 48],\n\t[7, 54, 24, 22, 55, 25],\n\t[22, 45, 15, 13, 46, 16],\n\n\t// 26\n\t[10, 142, 114, 2, 143, 115],\n\t[19, 74, 46, 4, 75, 47],\n\t[28, 50, 22, 6, 51, 23],\n\t[33, 46, 16, 4, 47, 17],\n\n\t// 27\n\t[8, 152, 122, 4, 153, 123],\n\t[22, 73, 45, 3, 74, 46],\n\t[8, 53, 23, 26, 54, 24],\n\t[12, 45, 15, 28, 46, 16],\n\n\t// 28\n\t[3, 147, 117, 10, 148, 118],\n\t[3, 73, 45, 23, 74, 46],\n\t[4, 54, 24, 31, 55, 25],\n\t[11, 45, 15, 31, 46, 16],\n\n\t// 29\n\t[7, 146, 116, 7, 147, 117],\n\t[21, 73, 45, 7, 74, 46],\n\t[1, 53, 23, 37, 54, 24],\n\t[19, 45, 15, 26, 46, 16],\n\n\t// 30\n\t[5, 145, 115, 10, 146, 116],\n\t[19, 75, 47, 10, 76, 48],\n\t[15, 54, 24, 25, 55, 25],\n\t[23, 45, 15, 25, 46, 16],\n\n\t// 31\n\t[13, 145, 115, 3, 146, 116],\n\t[2, 74, 46, 29, 75, 47],\n\t[42, 54, 24, 1, 55, 25],\n\t[23, 45, 15, 28, 46, 16],\n\n\t// 32\n\t[17, 145, 115],\n\t[10, 74, 46, 23, 75, 47],\n\t[10, 54, 24, 35, 55, 25],\n\t[19, 45, 15, 35, 46, 16],\n\n\t// 33\n\t[17, 145, 115, 1, 146, 116],\n\t[14, 74, 46, 21, 75, 47],\n\t[29, 54, 24, 19, 55, 25],\n\t[11, 45, 15, 46, 46, 16],\n\n\t// 34\n\t[13, 145, 115, 6, 146, 116],\n\t[14, 74, 46, 23, 75, 47],\n\t[44, 54, 24, 7, 55, 25],\n\t[59, 46, 16, 1, 47, 17],\n\n\t// 35\n\t[12, 151, 121, 7, 152, 122],\n\t[12, 75, 47, 26, 76, 48],\n\t[39, 54, 24, 14, 55, 25],\n\t[22, 45, 15, 41, 46, 16],\n\n\t// 36\n\t[6, 151, 121, 14, 152, 122],\n\t[6, 75, 47, 34, 76, 48],\n\t[46, 54, 24, 10, 55, 25],\n\t[2, 45, 15, 64, 46, 16],\n\n\t// 37\n\t[17, 152, 122, 4, 153, 123],\n\t[29, 74, 46, 14, 75, 47],\n\t[49, 54, 24, 10, 55, 25],\n\t[24, 45, 15, 46, 46, 16],\n\n\t// 38\n\t[4, 152, 122, 18, 153, 123],\n\t[13, 74, 46, 32, 75, 47],\n\t[48, 54, 24, 14, 55, 25],\n\t[42, 45, 15, 32, 46, 16],\n\n\t// 39\n\t[20, 147, 117, 4, 148, 118],\n\t[40, 75, 47, 7, 76, 48],\n\t[43, 54, 24, 22, 55, 25],\n\t[10, 45, 15, 67, 46, 16],\n\n\t// 40\n\t[19, 148, 118, 6, 149, 119],\n\t[18, 75, 47, 31, 76, 48],\n\t[34, 54, 24, 34, 55, 25],\n\t[20, 45, 15, 61, 46, 16]\n];\n\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\t\n\tvar rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n\t\n\tif (rsBlock == undefined) {\n\t\tthrow new Error(\"bad rs block @ typeNumber:\" + typeNumber + \"/errorCorrectLevel:\" + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\t\n\tvar list = new Array();\n\t\n\tfor (var i = 0; i < length; i++) {\n\n\t\tvar count = rsBlock[i * 3 + 0];\n\t\tvar totalCount = rsBlock[i * 3 + 1];\n\t\tvar dataCount = rsBlock[i * 3 + 2];\n\n\t\tfor (var j = 0; j < count; j++) {\n\t\t\tlist.push(new QRRSBlock(totalCount, dataCount) );\t\n\t\t}\n\t}\n\t\n\treturn list;\n}\n\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\tcase ECL.L :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\tcase ECL.M :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\tcase ECL.Q :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\tcase ECL.H :\n\t\treturn QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\tdefault :\n\t\treturn undefined;\n\t}\n}\n\nmodule.exports = QRRSBlock;\n","var QRMath = {\n\n\tglog : function(n) {\n\t\n\t\tif (n < 1) {\n\t\t\tthrow new Error(\"glog(\" + n + \")\");\n\t\t}\n\t\t\n\t\treturn QRMath.LOG_TABLE[n];\n\t},\n\t\n\tgexp : function(n) {\n\t\n\t\twhile (n < 0) {\n\t\t\tn += 255;\n\t\t}\n\t\n\t\twhile (n >= 256) {\n\t\t\tn -= 255;\n\t\t}\n\t\n\t\treturn QRMath.EXP_TABLE[n];\n\t},\n\t\n\tEXP_TABLE : new Array(256),\n\t\n\tLOG_TABLE : new Array(256)\n\n};\n\t\nfor (var i = 0; i < 8; i++) {\n\tQRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n\tQRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4]\n\t\t^ QRMath.EXP_TABLE[i - 5]\n\t\t^ QRMath.EXP_TABLE[i - 6]\n\t\t^ QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n\tQRMath.LOG_TABLE[QRMath.EXP_TABLE[i] ] = i;\n}\n\nmodule.exports = QRMath;\n","module.exports = {\n\tMODE_NUMBER :\t\t1 << 0,\n\tMODE_ALPHA_NUM : \t1 << 1,\n\tMODE_8BIT_BYTE : \t1 << 2,\n\tMODE_KANJI :\t\t1 << 3\n};\n","var Mode = require('./mode');\nvar Polynomial = require('./Polynomial');\nvar math = require('./math');\n\nvar QRMaskPattern = {\n\tPATTERN000 : 0,\n\tPATTERN001 : 1,\n\tPATTERN010 : 2,\n\tPATTERN011 : 3,\n\tPATTERN100 : 4,\n\tPATTERN101 : 5,\n\tPATTERN110 : 6,\n\tPATTERN111 : 7\n};\n\nvar QRUtil = {\n\n PATTERN_POSITION_TABLE : [\n\t [],\n\t [6, 18],\n\t [6, 22],\n\t [6, 26],\n\t [6, 30],\n\t [6, 34],\n\t [6, 22, 38],\n\t [6, 24, 42],\n\t [6, 26, 46],\n\t [6, 28, 50],\n\t [6, 30, 54],\t\t\n\t [6, 32, 58],\n\t [6, 34, 62],\n\t [6, 26, 46, 66],\n\t [6, 26, 48, 70],\n\t [6, 26, 50, 74],\n\t [6, 30, 54, 78],\n\t [6, 30, 56, 82],\n\t [6, 30, 58, 86],\n\t [6, 34, 62, 90],\n\t [6, 28, 50, 72, 94],\n\t [6, 26, 50, 74, 98],\n\t [6, 30, 54, 78, 102],\n\t [6, 28, 54, 80, 106],\n\t [6, 32, 58, 84, 110],\n\t [6, 30, 58, 86, 114],\n\t [6, 34, 62, 90, 118],\n\t [6, 26, 50, 74, 98, 122],\n\t [6, 30, 54, 78, 102, 126],\n\t [6, 26, 52, 78, 104, 130],\n\t [6, 30, 56, 82, 108, 134],\n\t [6, 34, 60, 86, 112, 138],\n\t [6, 30, 58, 86, 114, 142],\n\t [6, 34, 62, 90, 118, 146],\n\t [6, 30, 54, 78, 102, 126, 150],\n\t [6, 24, 50, 76, 102, 128, 154],\n\t [6, 28, 54, 80, 106, 132, 158],\n\t [6, 32, 58, 84, 110, 136, 162],\n\t [6, 26, 54, 82, 110, 138, 166],\n\t [6, 30, 58, 86, 114, 142, 170]\n ],\n\n G15 : (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18 : (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0),\n G15_MASK : (1 << 14) | (1 << 12) | (1 << 10)\t| (1 << 4) | (1 << 1),\n\n getBCHTypeInfo : function(data) {\n\t var d = data << 10;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n\t\t d ^= (QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) ) ); \t\n\t }\n\t return ( (data << 10) | d) ^ QRUtil.G15_MASK;\n },\n\n getBCHTypeNumber : function(data) {\n\t var d = data << 12;\n\t while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n\t\t d ^= (QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) ) ); \t\n\t }\n\t return (data << 12) | d;\n },\n\n getBCHDigit : function(data) {\n\n\t var digit = 0;\n\n\t while (data != 0) {\n\t\t digit++;\n\t\t data >>>= 1;\n\t }\n\n\t return digit;\n },\n\n getPatternPosition : function(typeNumber) {\n\t return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n\n getMask : function(maskPattern, i, j) {\n\t \n\t switch (maskPattern) {\n\t\t \n\t case QRMaskPattern.PATTERN000 : return (i + j) % 2 == 0;\n\t case QRMaskPattern.PATTERN001 : return i % 2 == 0;\n\t case QRMaskPattern.PATTERN010 : return j % 3 == 0;\n\t case QRMaskPattern.PATTERN011 : return (i + j) % 3 == 0;\n\t case QRMaskPattern.PATTERN100 : return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0;\n\t case QRMaskPattern.PATTERN101 : return (i * j) % 2 + (i * j) % 3 == 0;\n\t case QRMaskPattern.PATTERN110 : return ( (i * j) % 2 + (i * j) % 3) % 2 == 0;\n\t case QRMaskPattern.PATTERN111 : return ( (i * j) % 3 + (i + j) % 2) % 2 == 0;\n\n\t default :\n\t\t throw new Error(\"bad maskPattern:\" + maskPattern);\n\t }\n },\n\n getErrorCorrectPolynomial : function(errorCorrectLength) {\n\n\t var a = new Polynomial([1], 0);\n\n\t for (var i = 0; i < errorCorrectLength; i++) {\n\t\t a = a.multiply(new Polynomial([1, math.gexp(i)], 0) );\n\t }\n\n\t return a;\n },\n\n getLengthInBits : function(mode, type) {\n\n\t if (1 <= type && type < 10) {\n\n\t\t // 1 - 9\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 10;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 9;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 8;\n\t\t case Mode.MODE_KANJI \t: return 8;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 27) {\n\n\t\t // 10 - 26\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 12;\n\t\t case Mode.MODE_ALPHA_NUM \t: return 11;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 10;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else if (type < 41) {\n\n\t\t // 27 - 40\n\n\t\t switch(mode) {\n\t\t case Mode.MODE_NUMBER \t: return 14;\n\t\t case Mode.MODE_ALPHA_NUM\t: return 13;\n\t\t case Mode.MODE_8BIT_BYTE\t: return 16;\n\t\t case Mode.MODE_KANJI \t: return 12;\n\t\t default :\n\t\t\t throw new Error(\"mode:\" + mode);\n\t\t }\n\n\t } else {\n\t\t throw new Error(\"type:\" + type);\n\t }\n },\n\n getLostPoint : function(qrCode) {\n\t \n\t var moduleCount = qrCode.getModuleCount();\n\t \n\t var lostPoint = 0;\n\t \n\t // LEVEL1\n\t \n\t for (var row = 0; row < moduleCount; row++) {\n\n\t\t for (var col = 0; col < moduleCount; col++) {\n\n\t\t\t var sameCount = 0;\n\t\t\t var dark = qrCode.isDark(row, col);\n\n\t\t\t\tfor (var r = -1; r <= 1; r++) {\n\n\t\t\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\t\t\t continue;\n\t\t\t\t }\n\n\t\t\t\t for (var c = -1; c <= 1; c++) {\n\n\t\t\t\t\t if (col + c < 0 || moduleCount <= col + c) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (r == 0 && c == 0) {\n\t\t\t\t\t\t continue;\n\t\t\t\t\t }\n\n\t\t\t\t\t if (dark == qrCode.isDark(row + r, col + c) ) {\n\t\t\t\t\t\t sameCount++;\n\t\t\t\t\t }\n\t\t\t\t }\n\t\t\t }\n\n\t\t\t if (sameCount > 5) {\n\t\t\t\t lostPoint += (3 + sameCount - 5);\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL2\n\n\t for (var row = 0; row < moduleCount - 1; row++) {\n\t\t for (var col = 0; col < moduleCount - 1; col++) {\n\t\t\t var count = 0;\n\t\t\t if (qrCode.isDark(row, col ) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col ) ) count++;\n\t\t\t if (qrCode.isDark(row, col + 1) ) count++;\n\t\t\t if (qrCode.isDark(row + 1, col + 1) ) count++;\n\t\t\t if (count == 0 || count == 4) {\n\t\t\t\t lostPoint += 3;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL3\n\n\t for (var row = 0; row < moduleCount; row++) {\n\t\t for (var col = 0; col < moduleCount - 6; col++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row, col + 1)\n\t\t\t\t\t && qrCode.isDark(row, col + 2)\n\t\t\t\t\t && qrCode.isDark(row, col + 3)\n\t\t\t\t\t && qrCode.isDark(row, col + 4)\n\t\t\t\t\t && !qrCode.isDark(row, col + 5)\n\t\t\t\t\t && qrCode.isDark(row, col + 6) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount - 6; row++) {\n\t\t\t if (qrCode.isDark(row, col)\n\t\t\t\t\t && !qrCode.isDark(row + 1, col)\n\t\t\t\t\t && qrCode.isDark(row + 2, col)\n\t\t\t\t\t && qrCode.isDark(row + 3, col)\n\t\t\t\t\t && qrCode.isDark(row + 4, col)\n\t\t\t\t\t && !qrCode.isDark(row + 5, col)\n\t\t\t\t\t && qrCode.isDark(row + 6, col) ) {\n\t\t\t\t lostPoint += 40;\n\t\t\t }\n\t\t }\n\t }\n\n\t // LEVEL4\n\t \n\t var darkCount = 0;\n\n\t for (var col = 0; col < moduleCount; col++) {\n\t\t for (var row = 0; row < moduleCount; row++) {\n\t\t\t if (qrCode.isDark(row, col) ) {\n\t\t\t\t darkCount++;\n\t\t\t }\n\t\t }\n\t }\n\t \n\t var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\t lostPoint += ratio * 10;\n\n\t return lostPoint;\t\t\n }\n};\n\nmodule.exports = QRUtil;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import React from 'react';\n\nvar isStyleObject = function (obj) { return typeof obj === 'object' && obj !== null; };\nvar OTPInput = function (_a) {\n var _b = _a.value, value = _b === void 0 ? '' : _b, _c = _a.numInputs, numInputs = _c === void 0 ? 4 : _c, onChange = _a.onChange, renderInput = _a.renderInput, _d = _a.shouldAutoFocus, shouldAutoFocus = _d === void 0 ? false : _d, _e = _a.inputType, inputType = _e === void 0 ? 'text' : _e, renderSeparator = _a.renderSeparator, placeholder = _a.placeholder, containerStyle = _a.containerStyle, inputStyle = _a.inputStyle;\n var _f = React.useState(0), activeInput = _f[0], setActiveInput = _f[1];\n var inputRefs = React.useRef([]);\n var getOTPValue = function () { return (value ? value.toString().split('') : []); };\n var isInputNum = inputType === 'number' || inputType === 'tel';\n React.useEffect(function () {\n inputRefs.current = inputRefs.current.slice(0, numInputs);\n }, [numInputs]);\n React.useEffect(function () {\n var _a;\n if (shouldAutoFocus) {\n (_a = inputRefs.current[0]) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }, [shouldAutoFocus]);\n var getPlaceholderValue = function () {\n if (typeof placeholder === 'string') {\n if (placeholder.length === numInputs) {\n return placeholder;\n }\n if (placeholder.length > 0) {\n console.error('Length of the placeholder should be equal to the number of inputs.');\n }\n }\n return undefined;\n };\n var isInputValueValid = function (value) {\n var isTypeValid = isInputNum ? !isNaN(Number(value)) : typeof value === 'string';\n return isTypeValid && value.trim().length === 1;\n };\n var handleChange = function (event) {\n var value = event.target.value;\n if (isInputValueValid(value)) {\n changeCodeAtFocus(value);\n focusInput(activeInput + 1);\n }\n };\n var handleInputChange = function (event) {\n var nativeEvent = event.nativeEvent;\n if (!isInputValueValid(event.target.value)) {\n // @ts-expect-error - This was added previosly to handle and edge case\n // for dealing with keyCode \"229 Unidentified\" on Android. Check if this is\n // still needed.\n if (nativeEvent.data === null && nativeEvent.inputType === 'deleteContentBackward') {\n event.preventDefault();\n changeCodeAtFocus('');\n focusInput(activeInput - 1);\n }\n // Clear the input if it's not valid value because firefox allows\n // pasting non-numeric characters in a number type input\n event.target.value = '';\n }\n };\n var handleFocus = function (event) { return function (index) {\n setActiveInput(index);\n event.target.select();\n }; };\n var handleBlur = function () {\n setActiveInput(activeInput - 1);\n };\n var handleKeyDown = function (event) {\n var otp = getOTPValue();\n if ([event.code, event.key].includes('Backspace')) {\n event.preventDefault();\n changeCodeAtFocus('');\n focusInput(activeInput - 1);\n }\n else if (event.code === 'Delete') {\n event.preventDefault();\n changeCodeAtFocus('');\n }\n else if (event.code === 'ArrowLeft') {\n event.preventDefault();\n focusInput(activeInput - 1);\n }\n else if (event.code === 'ArrowRight') {\n event.preventDefault();\n focusInput(activeInput + 1);\n }\n // React does not trigger onChange when the same value is entered\n // again. So we need to focus the next input manually in this case.\n else if (event.key === otp[activeInput]) {\n event.preventDefault();\n focusInput(activeInput + 1);\n }\n else if (event.code === 'Spacebar' ||\n event.code === 'Space' ||\n event.code === 'ArrowUp' ||\n event.code === 'ArrowDown') {\n event.preventDefault();\n }\n };\n var focusInput = function (index) {\n var _a, _b;\n var activeInput = Math.max(Math.min(numInputs - 1, index), 0);\n if (inputRefs.current[activeInput]) {\n (_a = inputRefs.current[activeInput]) === null || _a === void 0 ? void 0 : _a.focus();\n (_b = inputRefs.current[activeInput]) === null || _b === void 0 ? void 0 : _b.select();\n setActiveInput(activeInput);\n }\n };\n var changeCodeAtFocus = function (value) {\n var otp = getOTPValue();\n otp[activeInput] = value[0];\n handleOTPChange(otp);\n };\n var handleOTPChange = function (otp) {\n var otpValue = otp.join('');\n onChange(otpValue);\n };\n var handlePaste = function (event) {\n var _a;\n event.preventDefault();\n var otp = getOTPValue();\n var nextActiveInput = activeInput;\n // Get pastedData in an array of max size (num of inputs - current position)\n var pastedData = event.clipboardData\n .getData('text/plain')\n .slice(0, numInputs - activeInput)\n .split('');\n // Prevent pasting if the clipboard data contains non-numeric values for number inputs\n if (isInputNum && pastedData.some(function (value) { return isNaN(Number(value)); })) {\n return;\n }\n // Paste data from focused input onwards\n for (var pos = 0; pos < numInputs; ++pos) {\n if (pos >= activeInput && pastedData.length > 0) {\n otp[pos] = (_a = pastedData.shift()) !== null && _a !== void 0 ? _a : '';\n nextActiveInput++;\n }\n }\n focusInput(nextActiveInput);\n handleOTPChange(otp);\n };\n return (React.createElement(\"div\", { style: Object.assign({ display: 'flex', alignItems: 'center' }, isStyleObject(containerStyle) && containerStyle), className: typeof containerStyle === 'string' ? containerStyle : undefined }, Array.from({ length: numInputs }, function (_, index) { return index; }).map(function (index) {\n var _a, _b, _c;\n return (React.createElement(React.Fragment, { key: index },\n renderInput({\n value: (_a = getOTPValue()[index]) !== null && _a !== void 0 ? _a : '',\n placeholder: (_c = (_b = getPlaceholderValue()) === null || _b === void 0 ? void 0 : _b[index]) !== null && _c !== void 0 ? _c : undefined,\n ref: function (element) { return (inputRefs.current[index] = element); },\n onChange: handleChange,\n onFocus: function (event) { return handleFocus(event)(index); },\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onPaste: handlePaste,\n autoComplete: 'off',\n maxLength: 1,\n 'aria-label': \"Please enter OTP character \".concat(index + 1),\n style: Object.assign({ width: '1em', textAlign: 'center' }, isStyleObject(inputStyle) && inputStyle),\n className: typeof inputStyle === 'string' ? inputStyle : undefined,\n type: inputType,\n inputMode: isInputNum ? 'numeric' : 'text',\n onInput: handleInputChange,\n }, index),\n index < numInputs - 1 && (typeof renderSeparator === 'function' ? renderSeparator(index) : renderSeparator)));\n })));\n};\n\nexport { OTPInput as default };\n//# sourceMappingURL=index.esm.js.map\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar propTypes = {\n bgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired,\n bgD: _propTypes2.default.string.isRequired,\n fgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]).isRequired,\n fgD: _propTypes2.default.string.isRequired,\n size: _propTypes2.default.number.isRequired,\n title: _propTypes2.default.string,\n viewBoxSize: _propTypes2.default.number.isRequired,\n xmlns: _propTypes2.default.string\n};\n\nvar QRCodeSvg = (0, _react.forwardRef)(function (_ref, ref) {\n var bgColor = _ref.bgColor,\n bgD = _ref.bgD,\n fgD = _ref.fgD,\n fgColor = _ref.fgColor,\n size = _ref.size,\n title = _ref.title,\n viewBoxSize = _ref.viewBoxSize,\n _ref$xmlns = _ref.xmlns,\n xmlns = _ref$xmlns === undefined ? \"http://www.w3.org/2000/svg\" : _ref$xmlns,\n props = _objectWithoutProperties(_ref, [\"bgColor\", \"bgD\", \"fgD\", \"fgColor\", \"size\", \"title\", \"viewBoxSize\", \"xmlns\"]);\n\n return _react2.default.createElement(\n \"svg\",\n _extends({}, props, { height: size, ref: ref, viewBox: \"0 0 \" + viewBoxSize + \" \" + viewBoxSize, width: size, xmlns: xmlns }),\n title ? _react2.default.createElement(\n \"title\",\n null,\n title\n ) : null,\n _react2.default.createElement(\"path\", { d: bgD, fill: bgColor }),\n _react2.default.createElement(\"path\", { d: fgD, fill: fgColor })\n );\n});\n\nQRCodeSvg.displayName = \"QRCodeSvg\";\nQRCodeSvg.propTypes = propTypes;\n\nexports.default = QRCodeSvg;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.QRCode = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _ErrorCorrectLevel = require(\"qr.js/lib/ErrorCorrectLevel\");\n\nvar _ErrorCorrectLevel2 = _interopRequireDefault(_ErrorCorrectLevel);\n\nvar _QRCode = require(\"qr.js/lib/QRCode\");\n\nvar _QRCode2 = _interopRequireDefault(_QRCode);\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _QRCodeSvg = require(\"./QRCodeSvg\");\n\nvar _QRCodeSvg2 = _interopRequireDefault(_QRCodeSvg);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n// A `qr.js` doesn't handle error level of zero (M) so we need to do it right, thus the deep require.\n\n\nvar propTypes = {\n bgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n fgColor: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n level: _propTypes2.default.string,\n size: _propTypes2.default.number,\n value: _propTypes2.default.string.isRequired\n};\n\nvar QRCode = (0, _react.forwardRef)(function (_ref, ref) {\n var _ref$bgColor = _ref.bgColor,\n bgColor = _ref$bgColor === undefined ? \"#FFFFFF\" : _ref$bgColor,\n _ref$fgColor = _ref.fgColor,\n fgColor = _ref$fgColor === undefined ? \"#000000\" : _ref$fgColor,\n _ref$level = _ref.level,\n level = _ref$level === undefined ? \"L\" : _ref$level,\n _ref$size = _ref.size,\n size = _ref$size === undefined ? 256 : _ref$size,\n value = _ref.value,\n props = _objectWithoutProperties(_ref, [\"bgColor\", \"fgColor\", \"level\", \"size\", \"value\"]);\n\n // Use type === -1 to automatically pick the best type.\n var qrcode = new _QRCode2.default(-1, _ErrorCorrectLevel2.default[level]);\n qrcode.addData(value);\n qrcode.make();\n var cells = qrcode.modules;\n return _react2.default.createElement(_QRCodeSvg2.default, _extends({}, props, {\n bgColor: bgColor,\n bgD: cells.map(function (row, rowIndex) {\n return row.map(function (cell, cellIndex) {\n return !cell ? \"M \" + cellIndex + \" \" + rowIndex + \" l 1 0 0 1 -1 0 Z\" : \"\";\n }).join(\" \");\n }).join(\" \"),\n fgColor: fgColor,\n fgD: cells.map(function (row, rowIndex) {\n return row.map(function (cell, cellIndex) {\n return cell ? \"M \" + cellIndex + \" \" + rowIndex + \" l 1 0 0 1 -1 0 Z\" : \"\";\n }).join(\" \");\n }).join(\" \"),\n ref: ref,\n size: size,\n viewBoxSize: cells.length\n }));\n});\n\nexports.QRCode = QRCode;\nQRCode.displayName = \"QRCode\";\nQRCode.propTypes = propTypes;\n\nexports.default = QRCode;","import{useState as P,useCallback as D}from\"react\";const g=({root:t,particles:e,decay:s,lifetime:a,updateParticle:c,onFinish:o})=>{const i=a;let l=0;const n=()=>{e.forEach(C=>c(C,l/i,s)),l+=1,l{if(C.element.parentNode===t)return t.removeChild(C.element)}),o())};window.requestAnimationFrame(n)},{PI:b}=Math,A=t=>t*(b/180),w=(t,e)=>{const s=Math.ceil(t),a=Math.floor(e);return Math.floor(Math.random()*(a-s))+s},x=(t,e,s,a)=>{const c=A(t),o=A(e),{random:i}=Math;return{x:0,y:0,z:0,height:0,wobble:i()*10,velocity:s*.5+i()*s,angle2D:-c+(.5*o-i()*o),angle3D:-(b/4)+i()*(b/2),tiltAngle:i()*b,differentiator:a}},H=t=>{const e=document.getElementById(t);return e||console.error(`Element with an ID of ${t} could not be found. Please provide a valid ID.`),e},B=[\"#A45BF1\",\"#25C6F6\",\"#72F753\",\"#F76C88\",\"#F5F770\"],F=[-.6,-.3,0,.3,.6],S=(t,e,s,a,c,o)=>Array.from({length:e}).map((i,l)=>{const n=document.createElement(\"span\");return n.style[\"background-color\"]=o[l%o.length],n.style.width=`${s}px`,n.style.height=`${s}px`,n.style.position=c,n.style.zIndex=`${a}`,t.appendChild(n),{element:n,differentiator:w(0,F.length)}}),Z=(t,e,s)=>{const{x:a,y:c,tiltAngle:o,wobble:i,angle2D:l,angle3D:n,velocity:C,differentiator:r}=t.physics;t.physics.x+=Math.cos(l)*C,t.physics.y+=Math.sin(l)*C,t.physics.z+=Math.sin(n)*C,t.physics.wobble+=.05,t.physics.velocity*=s,t.physics.y+=3.5,t.physics.tiltAngle+=.15;const h=a+(F[r]*e*i*i+20*(r%2?Math.sin(i/4):Math.cos(i/4))),y=c+5*Math.sin(i);t.element.style.transform=`translate3d(${h}px, ${y}px, 0) rotate3d(1, 1, 1, ${r%2?o:-1*o}rad)`,t.element.style.scale=`${1-.2*e}`,e>.5&&(t.element.style.opacity=`${2-2*e}`)},v=(t,e,s)=>{const a=s||{},{elementCount:c=50,elementSize:o=8,colors:i=B,angle:l=90,spread:n=45,decay:C=.94,lifetime:r=200,startVelocity:h=35,zIndex:y=0,position:m=\"fixed\",onAnimationComplete:d}=a,f=S(t,c,o,y,m,i).map(({element:p,differentiator:u})=>({element:p,physics:x(l,n,h,u)}));g({root:t,particles:f,decay:C,lifetime:r,updateParticle:Z,onFinish:()=>{typeof d==\"function\"&&d(),e()}})},j=[\"\\u{1F913}\",\"\\u{1F60A}\",\"\\u{1F973}\"],E=[-.6,-.3,0,.3,.6],T=(t,e,s,a,c,o)=>Array.from({length:e}).map((i,l)=>{const n=document.createElement(\"span\");return n.innerHTML=o[l%o.length],n.style.fontSize=`${s+w(0,4)}px`,n.style.position=c,n.style.zIndex=`${a}`,t.appendChild(n),{element:n,differentiator:w(0,E.length)}}),V=(t,e,s)=>{const{x:a,y:c,tiltAngle:o,angle2D:i,velocity:l,differentiator:n,wobble:C}=t.physics;t.physics.x+=Math.cos(i)*l,t.physics.y+=Math.sin(i)*l,t.physics.wobble+=0,t.physics.velocity*=s,t.physics.y+=5,t.physics.tiltAngle+=.05;const r=a+(E[n]*e*C*C+20*Math.sin(C/4));t.element.style.transform=`translate3d(${r}px, ${c}px, 0) rotate3d(0, 0, 1, ${n%2?o:-1*o}rad)`,e>.5&&(t.element.style.opacity=`${2-2*e}`)},k=(t,e,s)=>{const a=s||{},{elementCount:c=20,elementSize:o=25,emoji:i=j,angle:l=90,spread:n=45,decay:C=.94,lifetime:r=200,startVelocity:h=35,zIndex:y=0,position:m=\"fixed\",onAnimationComplete:d}=a,f=T(t,c,o,y,m,i).map(({element:p,differentiator:u})=>({element:p,physics:x(l,n,h,u)}));g({root:t,particles:f,decay:C,lifetime:r,updateParticle:V,onFinish:()=>{typeof d==\"function\"&&d(),e()}})};var L=`\n\n\n\n\n\n\n\n`;const R=[\"#A45BF1\",\"#25C6F6\",\"#72F753\",\"#F76C88\",\"#F5F770\"],I=[-.6,-.3,0,.3,.6],X=(t,e,s)=>{e.parentNode===s&&s.removeChild(e)},_=(t,e,s,a,c,o)=>Array.from({length:e}).map((i,l)=>{const n=document.createElement(\"span\");return n.innerHTML=L,n.style.width=`${s}px`,n.style.position=c,n.style.color=o[l%o.length],n.style.zIndex=`${a}`,n.addEventListener(\"click\",C=>{X(C,n,t)},{once:!0}),t.appendChild(n),{element:n,differentiator:w(0,I.length)}}),q=(t,e,s)=>{const{x:a,y:c,tiltAngle:o,angle2D:i,velocity:l,differentiator:n,wobble:C}=t.physics;t.physics.x+=Math.cos(i)*.5*l,t.physics.y+=Math.sin(i)*.5*l,t.physics.wobble+=0,t.physics.velocity*=s,t.physics.tiltAngle+=.1;const r=a+(I[n]*e*C*C+20*Math.sin(C));t.element.style.transform=`translate3d(${r}px, ${c}px, 0) rotate3d(0, 0, 1, ${n%2?Math.sin(o/4)/3:Math.cos(o/4)/3}rad)`,t.element.style.scale=`${1-.2*e}`,e>.5&&(t.element.style.opacity=`${2-2*e}`)},z=(t,e,s)=>{const a=s||{},{angle:c=90,decay:o=.999,spread:i=50,startVelocity:l=3,elementCount:n=10,elementSize:C=20,lifetime:r=600,zIndex:h=0,position:y=\"fixed\",colors:m=R,onAnimationComplete:d}=a,f=_(t,n,C,h,y,m).map(({element:p,differentiator:u})=>({element:p,physics:x(c,i,l,u)}));g({root:t,particles:f,decay:o,lifetime:r,updateParticle:q,onFinish:()=>{typeof d==\"function\"&&d(),e()}})},N=(t,e,s)=>{const[a,c]=P(!1),o=()=>{c(!1)};return{reward:D(()=>{const l=H(t);if(!!l)switch(c(!0),e){case\"confetti\":v(l,o,s);break;case\"emoji\":k(l,o,s);break;case\"balloons\":z(l,o,s);break;default:console.error(`${e} is not a valid react-rewards type.`)}},[s,t,e]),isAnimating:a}};export{z as balloons,v as confetti,k as emoji,N as useReward};\n//# sourceMappingURL=react-rewards.es.js.map\n","import { useLayoutEffect } from 'react';\n\nvar index = useLayoutEffect ;\n\nexport default index;\n","import { useRef, useCallback } from 'react';\n\nvar updateRef = function updateRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n return;\n }\n ref.current = value;\n};\n\nvar useComposedRef = function useComposedRef(libRef, userRef) {\n var prevUserRef = useRef();\n return useCallback(function (instance) {\n libRef.current = instance;\n\n if (prevUserRef.current) {\n updateRef(prevUserRef.current, null);\n }\n\n prevUserRef.current = userRef;\n\n if (!userRef) {\n return;\n }\n\n updateRef(userRef, instance);\n }, [userRef]);\n};\n\nexport default useComposedRef;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport { useLayoutEffect, forwardRef, useRef, createElement } from 'react';\nimport useLatest from 'use-latest';\nimport useComposedRef from 'use-composed-ref';\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0'\n};\nvar forceHiddenStyles = function forceHiddenStyles(node) {\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach(function (key) {\n node.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n};\n\n// TODO: use labelled tuples once they are avaiable:\n// export type CalculatedNodeHeights = [height: number, rowHeight: number];\n// https://github.com/microsoft/TypeScript/issues/28259\n\nvar hiddenTextarea = null;\nvar getHeight = function getHeight(node, sizingData) {\n var height = node.scrollHeight;\n if (sizingData.sizingStyle.boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n return height + sizingData.borderSize;\n }\n\n // remove padding, since height = content\n return height - sizingData.paddingSize;\n};\nfunction calculateNodeHeight(sizingData, value, minRows, maxRows) {\n if (minRows === void 0) {\n minRows = 1;\n }\n if (maxRows === void 0) {\n maxRows = Infinity;\n }\n if (!hiddenTextarea) {\n hiddenTextarea = document.createElement('textarea');\n hiddenTextarea.setAttribute('tabindex', '-1');\n hiddenTextarea.setAttribute('aria-hidden', 'true');\n forceHiddenStyles(hiddenTextarea);\n }\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n var paddingSize = sizingData.paddingSize,\n borderSize = sizingData.borderSize,\n sizingStyle = sizingData.sizingStyle;\n var boxSizing = sizingStyle.boxSizing;\n Object.keys(sizingStyle).forEach(function (_key) {\n var key = _key;\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n forceHiddenStyles(hiddenTextarea);\n hiddenTextarea.value = value;\n var height = getHeight(hiddenTextarea, sizingData);\n // Double set and calc due to Firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1795904\n hiddenTextarea.value = value;\n height = getHeight(hiddenTextarea, sizingData);\n\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var rowHeight = hiddenTextarea.scrollHeight - paddingSize;\n var minHeight = rowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n var maxHeight = rowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n return [height, rowHeight];\n}\n\nvar noop = function noop() {};\nvar pick = function pick(props, obj) {\n return props.reduce(function (acc, prop) {\n acc[prop] = obj[prop];\n return acc;\n }, {});\n};\n\nvar SIZING_STYLE = ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'boxSizing', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'letterSpacing', 'lineHeight', 'paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop',\n// non-standard\n'tabSize', 'textIndent',\n// non-standard\n'textRendering', 'textTransform', 'width', 'wordBreak'];\nvar isIE = !!document.documentElement.currentStyle ;\nvar getSizingData = function getSizingData(node) {\n var style = window.getComputedStyle(node);\n if (style === null) {\n return null;\n }\n var sizingStyle = pick(SIZING_STYLE, style);\n var boxSizing = sizingStyle.boxSizing;\n\n // probably node is detached from DOM, can't read computed dimensions\n if (boxSizing === '') {\n return null;\n }\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(sizingStyle.borderRightWidth) + parseFloat(sizingStyle.borderLeftWidth) + parseFloat(sizingStyle.paddingRight) + parseFloat(sizingStyle.paddingLeft) + 'px';\n }\n var paddingSize = parseFloat(sizingStyle.paddingBottom) + parseFloat(sizingStyle.paddingTop);\n var borderSize = parseFloat(sizingStyle.borderBottomWidth) + parseFloat(sizingStyle.borderTopWidth);\n return {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize\n };\n};\n\nfunction useListener(target, type, listener) {\n var latestListener = useLatest(listener);\n useLayoutEffect(function () {\n var handler = function handler(ev) {\n return latestListener.current(ev);\n };\n target.addEventListener(type, handler);\n return function () {\n return target.removeEventListener(type, handler);\n };\n }, []);\n}\nvar useWindowResizeListener = function useWindowResizeListener(listener) {\n useListener(window, 'resize', listener);\n};\nvar useFontsLoadedListener = function useFontsLoadedListener(listener) {\n useListener(document.fonts, 'loadingdone', listener);\n};\n\nvar _excluded = [\"cacheMeasurements\", \"maxRows\", \"minRows\", \"onChange\", \"onHeightChange\"];\nvar TextareaAutosize = function TextareaAutosize(_ref, userRef) {\n var cacheMeasurements = _ref.cacheMeasurements,\n maxRows = _ref.maxRows,\n minRows = _ref.minRows,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onHeightChange = _ref.onHeightChange,\n onHeightChange = _ref$onHeightChange === void 0 ? noop : _ref$onHeightChange,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production' && props.style) {\n if ('maxHeight' in props.style) {\n throw new Error('Using `style.maxHeight` for is not supported. Please use `maxRows`.');\n }\n if ('minHeight' in props.style) {\n throw new Error('Using `style.minHeight` for is not supported. Please use `minRows`.');\n }\n }\n var isControlled = props.value !== undefined;\n var libRef = useRef(null);\n var ref = useComposedRef(libRef, userRef);\n var heightRef = useRef(0);\n var measurementsCacheRef = useRef();\n var resizeTextarea = function resizeTextarea() {\n var node = libRef.current;\n var nodeSizingData = cacheMeasurements && measurementsCacheRef.current ? measurementsCacheRef.current : getSizingData(node);\n if (!nodeSizingData) {\n return;\n }\n measurementsCacheRef.current = nodeSizingData;\n var _calculateNodeHeight = calculateNodeHeight(nodeSizingData, node.value || node.placeholder || 'x', minRows, maxRows),\n height = _calculateNodeHeight[0],\n rowHeight = _calculateNodeHeight[1];\n if (heightRef.current !== height) {\n heightRef.current = height;\n node.style.setProperty('height', height + \"px\", 'important');\n onHeightChange(height, {\n rowHeight: rowHeight\n });\n }\n };\n var handleChange = function handleChange(event) {\n if (!isControlled) {\n resizeTextarea();\n }\n onChange(event);\n };\n {\n useLayoutEffect(resizeTextarea);\n useWindowResizeListener(resizeTextarea);\n useFontsLoadedListener(resizeTextarea);\n }\n return /*#__PURE__*/createElement(\"textarea\", _extends({}, props, {\n onChange: handleChange,\n ref: ref\n }));\n};\nvar index = /* #__PURE__ */forwardRef(TextareaAutosize);\n\nexport default index;\n","import * as React from 'react';\nimport useIsomorphicLayoutEffect from 'use-isomorphic-layout-effect';\n\nvar useLatest = function useLatest(value) {\n var ref = React.useRef(value);\n useIsomorphicLayoutEffect(function () {\n ref.current = value;\n });\n return ref;\n};\n\nexport { useLatest as default };\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","/**\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\nvar reduceFunctionCall = require(\"reduce-function-call\")\nvar mexp = require(\"math-expression-evaluator\")\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n stack = 0\n decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n // Allow calc() on multiple lines\n value = value.replace(/\\n+/g, \" \")\n\n /**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateExpression (expression, functionIdentifier, call) {\n if (stack++ > MAX_STACK) {\n stack = 0\n throw new Error(\"Call stack overflow for \" + call)\n }\n\n if (expression === \"\") {\n throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n }\n\n expression = evaluateNestedExpression(expression, call)\n\n var units = getUnitsInExpression(expression)\n\n // If the expression contains multiple units or CSS variables,\n // then let the expression be (i.e. browser calc())\n if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n var unit = units[0] || \"\"\n\n if (unit === \"%\") {\n // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n // console.log(expression)\n expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n return parseFloat(percent.slice(0, -1)) * 0.01\n })\n }\n\n // Remove units in expression:\n var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n var result\n\n try {\n result = mexp.eval(toEvaluate)\n }\n catch (e) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n // Transform back to a percentage result:\n if (unit === \"%\") {\n result *= 100\n }\n\n // adjust rounding shit\n // (0.1 * 0.2 === 0.020000000000000004)\n if (functionIdentifier.length || unit === \"%\") {\n result = Math.round(result * decimalPrecision) / decimalPrecision\n }\n\n // Add unit\n result += unit\n\n return result\n }\n\n /**\n * Evaluates nested expressions\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateNestedExpression(expression, call) {\n // Remove the calc part from nested expressions to ensure\n // better browser compatibility\n expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n var evaluatedPart = \"\"\n var nonEvaluatedPart = expression\n var matches\n while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n if (matches[0].index > 0) {\n evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n }\n\n var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n if (balancedExpr.body === \"\") {\n throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n }\n\n var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n evaluatedPart += balancedExpr.pre + evaluated\n nonEvaluatedPart = balancedExpr.post\n }\n\n return evaluatedPart + nonEvaluatedPart\n }\n\n return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n var uniqueUnits = []\n var uniqueLowerCaseUnits = []\n var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n var matches = unitRegEx.exec(expression)\n\n while (matches) {\n if (!matches || !matches[1]) {\n continue\n }\n\n if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n uniqueUnits.push(matches[1])\n uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n }\n\n matches = unitRegEx.exec(expression)\n }\n\n return uniqueUnits\n}\n","module.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","/*\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n var call = string\n return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n var expressions = []\n\n var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n do {\n var searchMatch = fnRE.exec(call)\n if (!searchMatch) {\n return expressions\n }\n if (searchMatch[1] === undefined) {\n throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n }\n var fn = searchMatch[1]\n var startIndex = searchMatch.index\n var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n if (!matches || matches.start !== searchMatch[0].length - 1) {\n throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n }\n\n expressions.push({matches: matches, functionIdentifier: fn})\n call = matches.post\n }\n while (fnRE.test(call))\n\n return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n // allow recursivity\n return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n","import { Helpers, LabelHelpers, Data, Domain, Scale, Collection } from \"victory-core\";\nexport const getDataWithBaseline = (props, scale) => {\n let data = Data.getData(props);\n if (data.length < 2) {\n data = [];\n }\n const getDefaultMin = axis => {\n const defaultZero = Scale.getType(scale[axis]) === \"log\" ? 1 / Number.MAX_SAFE_INTEGER : 0;\n const domain = scale[axis].domain();\n const minY = Collection.getMinValue(domain);\n const maxY = Collection.getMaxValue(domain);\n let defaultMin = defaultZero;\n if (minY.valueOf() < 0 && maxY.valueOf() <= 0) {\n defaultMin = maxY;\n } else if (minY.valueOf() >= 0 && maxY.valueOf() > 0) {\n defaultMin = minY;\n }\n return Collection.containsDates(domain) ? new Date(defaultMin) : defaultMin;\n };\n return data.map(datum => {\n const _y1 = datum._y1 !== undefined ? datum._y1 : datum._y;\n const _y0 = datum._y0 !== undefined ? datum._y0 : getDefaultMin(\"y\");\n const _x1 = datum._x1 !== undefined ? datum._x1 : datum._x;\n const _x0 = datum._x0 !== undefined ? datum._x0 : getDefaultMin(\"x\");\n return Object.assign({}, datum, {\n _y0,\n _y1,\n _x0,\n _x1\n });\n });\n};\nconst getCalculatedValues = props => {\n const {\n polar\n } = props;\n const defaultStyles = Helpers.getDefaultStyles(props, \"area\");\n const style = Helpers.getStyles(props.style, defaultStyles);\n const range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const domain = {\n x: Domain.getDomainWithZero(props, \"x\"),\n y: Domain.getDomainWithZero(props, \"y\")\n };\n const scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n const origin = polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n const data = getDataWithBaseline(props, scale);\n return {\n style,\n data,\n scale,\n domain,\n origin\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"area\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n data,\n domain,\n events,\n groupComponent,\n height,\n horizontal,\n interpolation,\n origin,\n padding,\n polar,\n scale,\n sharedEvents,\n standalone,\n style,\n theme,\n width,\n labels,\n name,\n disableInlineStyles\n } = props;\n const initialChildProps = {\n parent: {\n style: style.parent,\n width,\n height,\n scale,\n data,\n domain,\n standalone,\n theme,\n polar,\n origin,\n padding,\n name,\n horizontal\n },\n all: {\n data: {\n horizontal,\n polar,\n origin,\n scale,\n data,\n interpolation,\n groupComponent,\n style: disableInlineStyles ? {} : style.data,\n disableInlineStyles\n }\n }\n };\n return data.reduce((childProps, datum, index) => {\n const text = LabelHelpers.getText(props, datum, index);\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;\n childProps[eventKey] = {\n labels: LabelHelpers.getProps(props, index)\n };\n }\n return childProps;\n }, initialChildProps);\n};","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as d3Shape from \"victory-vendor/d3-shape\";\nimport { Helpers, Path, UserProps, LineHelpers } from \"victory-core\";\nconst defined = d => {\n const y = d._y1 !== undefined ? d._y1 : d._y;\n return y !== null && y !== undefined && d._y0 !== null;\n};\nconst getXAccessor = scale => {\n return d => scale.x(d._x1 !== undefined ? d._x1 : d._x);\n};\nconst getYAccessor = scale => {\n return d => scale.y(d._y1 !== undefined ? d._y1 : d._y);\n};\nconst getY0Accessor = scale => {\n return d => scale.y(d._y0);\n};\nconst getAngleAccessor = scale => {\n return d => {\n const x = scale.x(d._x1 !== undefined ? d._x1 : d._x);\n return -1 * x + Math.PI / 2;\n };\n};\nconst getCartesianArea = props => {\n const {\n horizontal,\n scale\n } = props;\n const interpolationFunction = LineHelpers.getInterpolationFunction(props);\n return horizontal ? d3Shape.area().defined(defined).curve(interpolationFunction).x0(getY0Accessor(scale)).x1(getYAccessor(scale)).y(getXAccessor(scale)) : d3Shape.area().defined(defined).curve(interpolationFunction).x(getXAccessor(scale)).y1(getYAccessor(scale)).y0(getY0Accessor(scale));\n};\nconst getAreaFunction = props => {\n const {\n polar,\n scale\n } = props;\n const interpolationFunction = LineHelpers.getInterpolationFunction(props);\n return polar ? d3Shape.radialArea().defined(defined).curve(interpolationFunction).angle(getAngleAccessor(scale)).outerRadius(getYAccessor(scale)).innerRadius(getY0Accessor(scale)) : getCartesianArea(props);\n};\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(Object.assign({\n fill: \"black\"\n }, props.style), props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n desc,\n id,\n style,\n tabIndex\n });\n};\nconst defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\n\n/**\n * The area primitive used by VictoryArea\n */\nexport const Area = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const {\n ariaLabel,\n role,\n shapeRendering,\n className,\n polar,\n origin,\n data,\n pathComponent,\n events,\n groupComponent,\n clipPath,\n id,\n style,\n desc,\n tabIndex\n } = props;\n const userProps = UserProps.getSafeUserProps(props);\n const defaultTransform = polar && origin ? `translate(${origin.x}, ${origin.y})` : undefined;\n const transform = props.transform || defaultTransform;\n const renderLine = style.stroke && style.stroke !== \"none\" && style.stroke !== \"transparent\";\n const areaFunction = getAreaFunction(props);\n const lineFunction = renderLine && LineHelpers.getLineFunction(props);\n const areaStroke = style.stroke ? \"none\" : style.fill;\n const sharedProps = {\n \"aria-label\": ariaLabel,\n className,\n role,\n shapeRendering,\n transform,\n ...events,\n clipPath,\n tabIndex\n };\n const area = /*#__PURE__*/React.cloneElement(pathComponent, Object.assign({\n key: `${id}-area`,\n style: Object.assign({}, style, {\n stroke: areaStroke\n }),\n d: areaFunction(data),\n desc,\n tabIndex\n }, sharedProps, userProps));\n const line = renderLine ? /*#__PURE__*/React.cloneElement(pathComponent, Object.assign({\n key: `${id}-area-stroke`,\n style: Object.assign({}, style, {\n fill: \"none\"\n }),\n d: lineFunction(data)\n }, sharedProps)) : null;\n return renderLine ? /*#__PURE__*/React.cloneElement(groupComponent, userProps, [area, line]) : area;\n};","import React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Area } from \"./area\";\nimport { Helpers, VictoryLabel, VictoryContainer, DefaultTransitions, VictoryClipContainer, addEvents, VictoryTheme, Data, Domain, UserProps } from \"victory-core\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n interpolation: \"linear\"\n};\nconst options = {\n components: [{\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"data\",\n index: \"all\"\n }, {\n name: \"labels\"\n }]\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\n/**\n * Draw area charts with React. VictoryArea is a composable component, so it doesn't include axes.\n * Add VictoryArea as a child of VictoryChart for a complete chart.\n */\nclass VictoryAreaBase extends React.Component {\n static animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"style\", \"width\"];\n static defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Area, null),\n groupComponent: /*#__PURE__*/React.createElement(VictoryClipContainer, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, {\n renderInPortal: true\n }),\n samples: 50,\n sortKey: \"x\",\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n };\n static displayName = \"VictoryArea\";\n static role = \"area\";\n static continuous = true;\n static defaultTransitions = DefaultTransitions.continuousTransitions();\n static defaultPolarTransitions = DefaultTransitions.continuousPolarTransitions();\n static getDomain = Domain.getDomainWithZero;\n static getData = Data.getData;\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\n\n // Overridden in native versions\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist,\n role\n } = VictoryAreaBase;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const children = this.renderContinuousData(props);\n const component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n}\nexport const VictoryArea = addEvents(VictoryAreaBase, options);","import defaults from \"lodash/defaults\";\nimport { Helpers, Scale, Axis } from \"victory-core\";\nconst orientationSign = {\n top: -1,\n left: -1,\n right: 1,\n bottom: 1\n};\nconst exists = val => val !== null && val !== undefined;\nconst getCurrentAxis = (props, axis) => {\n const {\n orientation,\n horizontal\n } = props;\n if (orientation) {\n const dimensions = {\n top: \"x\",\n bottom: \"x\",\n left: \"y\",\n right: \"y\"\n };\n return dimensions[orientation];\n }\n const otherAxis = axis === \"x\" ? \"y\" : \"x\";\n return horizontal ? otherAxis : axis;\n};\nconst getScale = props => {\n const axis = Axis.getAxis(props);\n const currentAxis = getCurrentAxis(props, axis);\n const scale = Scale.getBaseScale(props, axis);\n const propsDomain = props.domain && props.domain[axis];\n const domain = propsDomain || Axis.getDomain(props) || scale.domain();\n scale.range(Helpers.getRange(props, currentAxis));\n scale.domain(domain);\n return scale;\n};\nconst getStyleObject = props => {\n const {\n theme,\n dependentAxis\n } = props;\n const generalAxisStyle = theme && theme.axis && theme.axis.style;\n const axisType = dependentAxis ? \"dependentAxis\" : \"independentAxis\";\n const specificAxisStyle = theme && theme[axisType] && theme[axisType].style;\n const mergeStyles = () => {\n const styleNamespaces = [\"axis\", \"axisLabel\", \"grid\", \"parent\", \"tickLabels\", \"ticks\"];\n return styleNamespaces.reduce((memo, curr) => {\n memo[curr] = defaults({}, specificAxisStyle[curr], generalAxisStyle[curr]);\n return memo;\n }, {});\n };\n return generalAxisStyle && specificAxisStyle ? mergeStyles() : specificAxisStyle || generalAxisStyle;\n};\nexport const getStyles = function (props, styleObject) {\n if (styleObject === void 0) {\n styleObject = {};\n }\n const style = props.style || {};\n const parentStyleProps = {\n height: \"100%\",\n width: \"100%\"\n };\n return {\n parent: defaults(style.parent, styleObject.parent, parentStyleProps),\n axis: defaults({}, style.axis, styleObject.axis),\n axisLabel: defaults({}, style.axisLabel, styleObject.axisLabel),\n grid: defaults({}, style.grid, styleObject.grid),\n ticks: defaults({}, style.ticks, styleObject.ticks),\n tickLabels: defaults({}, style.tickLabels, styleObject.tickLabels)\n };\n};\nconst getTickProps = (layout, style, datum) => {\n const {\n position,\n transform\n } = layout;\n return {\n x1: transform.x,\n y1: transform.y,\n x2: transform.x + position.x2,\n y2: transform.y + position.y2,\n style,\n datum\n };\n};\n\n// eslint-disable-next-line max-params\nconst getTickLabelProps = (layout, style, anchors, datum, text) => {\n const {\n position,\n transform\n } = layout;\n return {\n style,\n x: transform.x + position.x,\n y: transform.y + position.y,\n verticalAnchor: anchors.verticalAnchor,\n textAnchor: anchors.textAnchor,\n angle: style.angle,\n text,\n datum\n };\n};\nconst getGridProps = (layout, style, datum) => {\n const {\n edge,\n transform\n } = layout;\n return {\n x1: transform.x,\n y1: transform.y,\n x2: edge.x + transform.x,\n y2: edge.y + transform.y,\n style,\n datum\n };\n};\nconst getAxisProps = (modifiedProps, calculatedValues, globalTransform) => {\n const {\n style,\n padding,\n isVertical\n } = calculatedValues;\n const {\n width,\n height\n } = modifiedProps;\n return {\n style: style.axis,\n x1: isVertical ? globalTransform.x : padding.left + globalTransform.x,\n x2: isVertical ? globalTransform.x : width - padding.right + globalTransform.x,\n y1: isVertical ? padding.top + globalTransform.y : globalTransform.y,\n y2: isVertical ? height - padding.bottom + globalTransform.y : globalTransform.y\n };\n};\nconst getEvaluatedStyles = (style, props) => {\n return {\n tickStyle: Helpers.evaluateStyle(style.ticks, props),\n labelStyle: Helpers.evaluateStyle(style.tickLabels, props),\n gridStyle: Helpers.evaluateStyle(style.grid, props)\n };\n};\nconst getAxisLabelProps = (props, calculatedValues, globalTransform) => {\n const {\n style,\n orientation,\n padding,\n labelPadding,\n isVertical\n } = calculatedValues;\n const sign = orientationSign[orientation];\n const hPadding = padding.left + padding.right;\n const vPadding = padding.top + padding.bottom;\n const verticalAnchor = sign < 0 ? \"end\" : \"start\";\n const labelStyle = style.axisLabel;\n const angle = isVertical ? -90 : 0; // eslint-disable-line no-magic-numbers\n const x = isVertical ? globalTransform.x + sign * labelPadding : (props.width - hPadding) / 2 + padding.left + globalTransform.x;\n const y = isVertical ? (props.height - vPadding) / 2 + padding.top + globalTransform.y : sign * labelPadding + globalTransform.y;\n return {\n x,\n y,\n verticalAnchor: labelStyle.verticalAnchor || verticalAnchor,\n textAnchor: labelStyle.textAnchor || \"middle\",\n angle: labelStyle.angle === undefined ? angle : labelStyle.angle,\n style: labelStyle,\n text: props.label\n };\n};\nconst getAnchors = (orientation, isVertical) => {\n const anchorOrientation = {\n top: \"end\",\n left: \"end\",\n right: \"start\",\n bottom: \"start\"\n };\n const anchor = anchorOrientation[orientation];\n return {\n textAnchor: isVertical ? anchor : \"middle\",\n verticalAnchor: isVertical ? \"middle\" : anchor\n };\n};\nconst getLabelPadding = (props, style) => {\n const labelStyle = style.axisLabel || {};\n if (labelStyle.padding !== undefined && labelStyle.padding !== null) {\n return labelStyle.padding;\n }\n const isVertical = Axis.isVertical(props);\n // TODO: magic numbers\n /* eslint-disable no-magic-numbers*/\n const fontSize = labelStyle.fontSize || 14;\n return props.label ? fontSize * (isVertical ? 2.3 : 1.6) : 0;\n /* eslint-enable no-magic-numbers*/\n};\nconst getDefaultOrientations = (axis, originSign, horizontal) => {\n const sign = originSign || \"positive\";\n const orientations = {\n positive: {\n x: \"bottom\",\n y: \"left\"\n },\n negative: {\n x: \"top\",\n y: \"right\"\n }\n };\n const horizontalOrientations = {\n positive: {\n x: \"left\",\n y: \"bottom\"\n },\n negative: {\n x: \"right\",\n y: \"top\"\n }\n };\n return horizontal ? horizontalOrientations[sign][axis] : orientations[sign][axis];\n};\nconst getStandaloneOffset = (props, calculatedValues) => {\n const {\n style,\n scale,\n orientation,\n padding,\n axis,\n ticks,\n stringTicks,\n isVertical,\n labelPadding\n } = calculatedValues;\n const {\n polar,\n horizontal\n } = props;\n const sharedProps = {\n scale: {\n [axis]: scale\n },\n polar,\n horizontal,\n ticks,\n stringTicks\n };\n const xPadding = orientation === \"right\" ? padding.right : padding.left;\n const yPadding = orientation === \"top\" ? padding.top : padding.bottom;\n const offsetX = props.offsetX !== null && props.offsetX !== undefined ? props.offsetX : xPadding;\n const offsetY = props.offsetY !== null && props.offsetY !== undefined ? props.offsetY : yPadding;\n const fontSize = style.axisLabel.fontSize || 14; // eslint-disable-line no-magic-numbers\n const tickSizes = ticks.map((data, index) => {\n const tick = stringTicks ? props.tickValues[data - 1] : data;\n const tickStyle = Helpers.evaluateStyle(style.ticks, Object.assign({}, sharedProps, {\n tick,\n index\n }));\n return tickStyle.size || 0;\n });\n const totalPadding = fontSize + 2 * Math.max(...tickSizes) + labelPadding;\n const minimumPadding = 1.2 * fontSize; // eslint-disable-line no-magic-numbers\n const x = isVertical ? totalPadding : minimumPadding;\n const y = isVertical ? minimumPadding : totalPadding;\n return {\n x: offsetX !== null && offsetX !== undefined ? offsetX : x,\n y: offsetY !== null && offsetY !== undefined ? offsetY : y\n };\n};\nconst isEqual = (a, b) => {\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n return a === b;\n};\nconst getOffset = (props, calculatedValues) => {\n const {\n scale,\n origin,\n orientation,\n orientations,\n domain,\n padding\n } = calculatedValues;\n const {\n top,\n bottom,\n left,\n right\n } = padding;\n const calculatedOrientation = {\n x: orientation === \"bottom\" || orientation === \"top\" ? orientation : orientations.x,\n y: orientation === \"left\" || orientation === \"right\" ? orientation : orientations.y\n };\n\n // make the axes line up, and cross when appropriate\n const orientationOffset = {\n x: calculatedOrientation.y === \"left\" ? left : right,\n y: calculatedOrientation.x === \"bottom\" ? bottom : top\n };\n const originOffset = {\n x: calculatedOrientation.y === \"left\" ? 0 : props.width,\n y: calculatedOrientation.x === \"bottom\" ? props.height : 0\n };\n const originPosition = {\n x: isEqual(origin.x, domain.x[0]) || isEqual(origin.x, domain.x[1]) ? 0 : scale.x(origin.x),\n y: isEqual(origin.y, domain.y[0]) || isEqual(origin.y, domain.y[1]) ? 0 : scale.y(origin.y)\n };\n const x = originPosition.x ? Math.abs(originOffset.x - originPosition.x) : orientationOffset.x;\n const y = originPosition.y ? Math.abs(originOffset.y - originPosition.y) : orientationOffset.y;\n const offsetX = exists(props.offsetX) ? props.offsetX : x;\n const offsetY = exists(props.offsetY) ? props.offsetY : y;\n return {\n x: offsetX,\n y: offsetY\n };\n};\nconst getHorizontalOffset = (props, calculatedValues) => {\n const {\n scale,\n origin,\n orientation,\n orientations,\n domain,\n padding\n } = calculatedValues;\n const {\n top,\n bottom,\n left,\n right\n } = padding;\n const calculatedOrientation = {\n y: orientation === \"bottom\" || orientation === \"top\" ? orientation : orientations.x,\n x: orientation === \"left\" || orientation === \"right\" ? orientation : orientations.y\n };\n\n // make the axes line up, and cross when appropriate\n const orientationOffset = {\n x: calculatedOrientation.y === \"bottom\" ? bottom : top,\n y: calculatedOrientation.x === \"left\" ? left : right\n };\n const originOffset = {\n y: calculatedOrientation.x === \"left\" ? 0 : props.width,\n x: calculatedOrientation.y === \"bottom\" ? props.height : 0\n };\n const originPosition = {\n x: isEqual(origin.x, domain.x[0]) || isEqual(origin.x, domain.x[1]) ? 0 : scale.x(origin.x),\n y: isEqual(origin.y, domain.y[0]) || isEqual(origin.y, domain.y[1]) ? 0 : scale.y(origin.y)\n };\n const y = originPosition.x ? Math.abs(originOffset.x - originPosition.x) : orientationOffset.x;\n const x = originPosition.y ? Math.abs(originOffset.y - originPosition.y) : orientationOffset.y;\n const offsetX = exists(props.offsetX) ? props.offsetX : x;\n const offsetY = exists(props.offsetY) ? props.offsetY : y;\n return {\n x: offsetX,\n y: offsetY\n };\n};\nconst getTransform = (props, calculatedValues, offset) => {\n const {\n orientation,\n axis\n } = calculatedValues;\n const axisValue = Axis.getAxisValue(props, axis);\n return {\n top: {\n x: 0,\n y: axisValue !== undefined ? axisValue : offset.y\n },\n bottom: {\n x: 0,\n y: axisValue !== undefined ? axisValue : props.height - offset.y\n },\n left: {\n x: axisValue !== undefined ? axisValue : offset.x,\n y: 0\n },\n right: {\n x: axisValue !== undefined ? axisValue : props.width - offset.x,\n y: 0\n }\n }[orientation];\n};\nconst getTickPosition = (style, orientation, isVertical) => {\n const {\n tickStyle,\n labelStyle\n } = style;\n const size = tickStyle.size || 0;\n const tickPadding = tickStyle.padding || 0;\n const labelPadding = labelStyle.padding || 0;\n const tickSpacing = size + tickPadding + labelPadding;\n const sign = orientationSign[orientation];\n return {\n x: isVertical ? sign * tickSpacing : 0,\n x2: isVertical ? sign * size : 0,\n y: isVertical ? 0 : sign * tickSpacing,\n y2: isVertical ? 0 : sign * size\n };\n};\nconst getTickTransform = (tick, globalTransform, isVertical) => {\n return {\n x: isVertical ? globalTransform.x : tick + globalTransform.x,\n y: isVertical ? tick + globalTransform.y : globalTransform.y\n };\n};\nconst getGridEdge = (props, calculatedValues) => {\n const {\n orientation,\n padding,\n isVertical\n } = calculatedValues;\n const sign = -orientationSign[orientation];\n const x = isVertical ? sign * (props.width - (padding.left + padding.right)) : 0;\n const y = isVertical ? 0 : sign * (props.height - (padding.top + padding.bottom));\n return {\n x,\n y\n };\n};\nconst getGridOffset = (calculatedValues, offset) => {\n const {\n padding,\n orientation,\n crossAxis\n } = calculatedValues;\n const xPadding = orientation === \"right\" ? padding.right : padding.left;\n const yPadding = orientation === \"top\" ? padding.top : padding.bottom;\n return {\n x: crossAxis ? offset.x - xPadding : 0,\n y: crossAxis ? offset.y - yPadding : 0\n };\n};\nconst getLayoutProps = (modifiedProps, calculatedValues) => {\n let offset;\n if (calculatedValues.domain.x && calculatedValues.domain.y) {\n offset = modifiedProps.horizontal ? getHorizontalOffset(modifiedProps, calculatedValues) : getOffset(modifiedProps, calculatedValues);\n } else {\n offset = getStandaloneOffset(modifiedProps, calculatedValues);\n }\n return {\n globalTransform: getTransform(modifiedProps, calculatedValues, offset),\n gridOffset: getGridOffset(calculatedValues, offset),\n gridEdge: getGridEdge(modifiedProps, calculatedValues)\n };\n};\nconst getOrientation = props => {\n if (props.orientation) {\n return props.orientation;\n }\n const defaultOrientations = {\n dependent: props.horizontal ? \"bottom\" : \"left\",\n independent: props.horizontal ? \"left\" : \"bottom\"\n };\n return props.dependentAxis ? defaultOrientations.dependent : defaultOrientations.independent;\n};\nconst getCalculatedValues = props => {\n const defaultStyles = getStyleObject(props);\n const style = getStyles(props, defaultStyles);\n const padding = Helpers.getPadding(props.padding);\n const labelPadding = getLabelPadding(props, style);\n const stringTicks = Axis.stringTicks(props) ? props.tickValues : undefined;\n const axis = Axis.getAxis(props);\n const axisDomain = Axis.getDomain(props);\n const axisScale = getScale(props);\n const xAxisDomain = axis === \"x\" ? axisDomain : undefined;\n const yAxisDomain = axis === \"y\" ? axisDomain : undefined;\n const xAxisScale = axis === \"x\" ? axisScale : undefined;\n const yAxisScale = axis === \"y\" ? axisScale : undefined;\n const crossAxis = !(props.crossAxis === false || props.standalone === true);\n const ticks = Axis.getTicks(props, axisScale, crossAxis);\n const tickFormat = Axis.getTickFormat(props, axisScale);\n const range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n // use full domain if passed in from parent,\n // otherwise use the just the one axis available\n const domain = {\n x: props.domain && props.domain.x ? props.domain.x : xAxisDomain,\n y: props.domain && props.domain.y ? props.domain.y : yAxisDomain\n };\n // use full scale if passed in from parent,\n // otherwise use the just the one axis available\n const scale = {\n x: props.domain && props.domain.x ? Scale.getBaseScale(props, \"x\").domain(props.domain.x).range(props.horizontal ? range.y : range.x) : xAxisScale,\n y: props.domain && props.domain.y ? Scale.getBaseScale(props, \"y\").domain(props.domain.y).range(props.horizontal ? range.x : range.y) : yAxisScale\n };\n const origin = domain.x && domain.y ? Axis.getOrigin(domain) : undefined;\n const originSign = origin ? {\n x: Axis.getOriginSign(origin.x, domain.x),\n y: Axis.getOriginSign(origin.y, domain.y)\n } : undefined;\n const orientations = originSign ? {\n x: getDefaultOrientations(\"x\", originSign.y, props.horizontal),\n y: getDefaultOrientations(\"y\", originSign.x, props.horizontal)\n } : undefined;\n const orientation = orientations ? props.orientation || orientations[axis] : getOrientation(props);\n const isVertical = Axis.isVertical(Object.assign({}, props, {\n orientation\n }));\n const anchors = getAnchors(orientation, isVertical);\n return {\n anchors,\n axis,\n crossAxis,\n domain,\n isVertical,\n labelPadding,\n orientation,\n orientations,\n origin,\n padding,\n scale,\n stringTicks,\n style,\n tickFormat,\n ticks\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const props = Axis.modifyProps(initialProps, fallbackProps);\n const calculatedValues = getCalculatedValues(props);\n const {\n axis,\n style,\n orientation,\n isVertical,\n scale,\n ticks,\n tickFormat,\n anchors,\n domain,\n stringTicks\n } = calculatedValues;\n const otherAxis = axis === \"x\" ? \"y\" : \"x\";\n const {\n width,\n height,\n standalone,\n theme,\n polar,\n padding,\n horizontal\n } = props;\n const {\n globalTransform,\n gridOffset,\n gridEdge\n } = getLayoutProps(props, calculatedValues);\n const sharedProps = {\n scale: {\n [axis]: scale[axis]\n },\n polar,\n horizontal,\n ticks,\n stringTicks\n };\n const axisProps = getAxisProps(props, calculatedValues, globalTransform);\n const axisLabelProps = getAxisLabelProps(props, calculatedValues, globalTransform);\n const initialChildProps = {\n parent: Object.assign({\n style: style.parent,\n ticks,\n standalone,\n theme,\n width,\n height,\n padding,\n domain\n }, sharedProps)\n };\n const gridProps = {\n dimension: otherAxis,\n range: {\n [otherAxis]: Helpers.getRange(props, otherAxis)\n },\n scale: props.scale && props.scale[otherAxis] ? {\n [otherAxis]: props.scale[otherAxis]\n } : undefined\n };\n return ticks.reduce((childProps, tickValue, index) => {\n const tick = stringTicks ? stringTicks[index] : tickValue;\n const text = tickFormat(tickValue, index, ticks);\n const styles = getEvaluatedStyles(style, Object.assign({}, sharedProps, {\n tick,\n tickValue,\n index,\n text\n }));\n const tickLayout = {\n position: getTickPosition(styles, orientation, isVertical),\n transform: getTickTransform(scale[axis]?.(tickValue), globalTransform, isVertical)\n };\n const gridLayout = {\n edge: gridEdge,\n transform: {\n x: isVertical ? -gridOffset.x + globalTransform.x : scale[axis]?.(tickValue) + globalTransform.x,\n y: isVertical ? scale[axis]?.(tickValue) + globalTransform.y : gridOffset.y + globalTransform.y\n }\n };\n childProps[index] = {\n axis: Object.assign({\n dimension: axis\n }, sharedProps, axisProps),\n axisLabel: Object.assign({}, sharedProps, axisLabelProps),\n ticks: Object.assign({}, sharedProps, getTickProps(tickLayout, styles.tickStyle, tickValue)),\n tickLabels: Object.assign({}, sharedProps, getTickLabelProps(tickLayout, styles.labelStyle, anchors, tickValue, text)),\n grid: Object.assign({}, sharedProps, gridProps, getGridProps(gridLayout, styles.gridStyle, tickValue))\n };\n return childProps;\n }, initialChildProps);\n};","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { VictoryLabel, VictoryContainer, VictoryTheme, LineSegment, TextSize, addEvents, Axis, UserProps } from \"victory-core\";\nimport { getBaseProps, getStyles } from \"./helper-methods\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nconst options = {\n components: [{\n name: \"axis\",\n index: 0\n }, {\n name: \"axisLabel\",\n index: 0\n }, {\n name: \"grid\"\n }, {\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"ticks\"\n }, {\n name: \"tickLabels\"\n }]\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nclass VictoryAxisBase extends React.Component {\n static animationWhitelist = [\"style\", \"domain\", \"range\", \"tickCount\", \"tickValues\", \"offsetX\", \"offsetY\", \"padding\", \"width\", \"height\"];\n static displayName = \"VictoryAxis\";\n static role = \"axis\";\n static defaultTransitions = {\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n };\n static defaultProps = {\n axisComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n axisLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n tickLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n tickComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n gridComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n standalone: true,\n theme: VictoryTheme.grayscale,\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n fixLabelOverlap: false\n };\n static getDomain = Axis.getDomain;\n static getAxis = Axis.getAxis;\n static getStyles(props) {\n return getStyles(props);\n }\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"axisComponent\", \"axisLabelComponent\", \"groupComponent\", \"containerComponent\", \"tickComponent\", \"tickLabelComponent\", \"gridComponent\"];\n renderLine(props) {\n const {\n axisComponent\n } = props;\n const axisProps = this.getComponentProps(axisComponent, \"axis\", 0);\n return /*#__PURE__*/React.cloneElement(axisComponent, axisProps);\n }\n renderLabel(props) {\n const {\n axisLabelComponent,\n label\n } = props;\n if (!label) {\n return null;\n }\n const axisLabelProps = this.getComponentProps(axisLabelComponent, \"axisLabel\", 0);\n return /*#__PURE__*/React.cloneElement(axisLabelComponent, axisLabelProps);\n }\n renderGridAndTicks(props) {\n const {\n tickComponent,\n tickLabelComponent,\n gridComponent,\n name\n } = props;\n const shouldRender = componentProps => {\n const {\n style = {},\n events = {}\n } = componentProps;\n const visible = style.stroke !== \"transparent\" && style.stroke !== \"none\" && style.strokeWidth !== 0;\n return visible || !isEmpty(events);\n };\n return this.dataKeys.map((key, index) => {\n const tickProps = this.getComponentProps(tickComponent, \"ticks\", index);\n const BaseTickComponent = /*#__PURE__*/React.cloneElement(tickComponent, tickProps);\n const TickComponent = shouldRender(BaseTickComponent.props) ? BaseTickComponent : undefined;\n const gridProps = this.getComponentProps(gridComponent, \"grid\", index);\n const BaseGridComponent = /*#__PURE__*/React.cloneElement(gridComponent, gridProps);\n const GridComponent = shouldRender(BaseGridComponent.props) ? BaseGridComponent : undefined;\n const tickLabelProps = this.getComponentProps(tickLabelComponent, \"tickLabels\", index);\n const TickLabel = /*#__PURE__*/React.cloneElement(tickLabelComponent, tickLabelProps);\n const children = [GridComponent, TickComponent, TickLabel].filter(Boolean);\n return /*#__PURE__*/React.cloneElement(props.groupComponent, {\n key: `${name}-tick-group-${key}`\n }, children);\n });\n }\n fixLabelOverlap(gridAndTicks, props) {\n const isVertical = Axis.isVertical(props);\n const size = isVertical ? props.height : props.width;\n const isVictoryLabel = child => child.type && child.type.role === \"label\";\n const labels = gridAndTicks.map(gridAndTick => gridAndTick.props.children).reduce((accumulator, childArr) => accumulator.concat(childArr), []).filter(isVictoryLabel).map(child => child.props);\n const paddingToObject = padding => typeof padding === \"object\" ? Object.assign({}, {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n const labelsSumSize = labels.reduce((sum, label) => {\n const padding = paddingToObject(label.style.padding);\n const labelSize = TextSize.approximateTextSize(label.text, {\n angle: label.angle,\n fontSize: label.style.fontSize,\n letterSpacing: label.style.letterSpacing,\n fontFamily: label.style.fontFamily\n });\n return sum + (isVertical ? labelSize.height + padding.top + padding.bottom : labelSize.width + padding.right + padding.left);\n }, 0);\n const availiableLabelCount = Math.floor(size * gridAndTicks.length / labelsSumSize);\n const divider = Math.ceil(gridAndTicks.length / availiableLabelCount) || 1;\n const getLabelCoord = gridAndTick => gridAndTick.props.children.filter(isVictoryLabel).reduce((prev, child) => (isVertical ? child.props.y : child.props.x) || 0, 0);\n const sorted = gridAndTicks.sort((a, b) => isVertical ? getLabelCoord(b) - getLabelCoord(a) // ordinary axis has top-bottom orientation\n : getLabelCoord(a) - getLabelCoord(b) // ordinary axis has left-right orientation\n );\n return sorted.filter((gridAndTick, index) => index % divider === 0);\n }\n\n // Overridden in native versions\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist\n } = VictoryAxis;\n const props = Axis.modifyProps(this.props, fallbackProps);\n const userProps = UserProps.getSafeUserProps(this.props);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const gridAndTicks = this.renderGridAndTicks(props);\n const modifiedGridAndTicks = props.fixLabelOverlap ? this.fixLabelOverlap(gridAndTicks, props) : gridAndTicks;\n const children = [this.renderLine(props), this.renderLabel(props), ...modifiedGridAndTicks];\n const container = /*#__PURE__*/React.cloneElement(props.containerComponent, userProps);\n return props.standalone ? this.renderContainer(container, children) : /*#__PURE__*/React.cloneElement(props.groupComponent, userProps, children);\n }\n}\nexport const VictoryAxis = addEvents(VictoryAxisBase, options);","import { Collection, Data, Domain, Helpers, LabelHelpers, Scale, VictoryClipContainer } from \"victory-core\";\nexport const getBarPosition = (props, datum) => {\n const getDefaultMin = axis => {\n const defaultZero = Scale.getType(props.scale[axis]) === \"log\" ? 1 / Number.MAX_SAFE_INTEGER : 0;\n let defaultMin = defaultZero;\n const minY = Collection.getMinValue(props.domain[axis]);\n const maxY = Collection.getMaxValue(props.domain[axis]);\n if (minY < 0 && maxY <= 0) {\n defaultMin = maxY;\n } else if (minY >= 0 && maxY > 0) {\n defaultMin = minY;\n }\n return datum[`_${axis}`] instanceof Date ? new Date(defaultMin) : defaultMin;\n };\n const _y0 = datum._y0 !== undefined ? datum._y0 : getDefaultMin(\"y\");\n const _x0 = datum._x0 !== undefined ? datum._x0 : getDefaultMin(\"x\");\n return Helpers.scalePoint(props, Object.assign({}, datum, {\n _y0,\n _x0\n }));\n};\nconst getCalculatedValues = props => {\n const {\n polar\n } = props;\n const defaultStyles = Helpers.getDefaultStyles(props, \"bar\");\n const style = !props.disableInlineStyles ? Helpers.getStyles(props.style, defaultStyles) : {};\n const range = props.range || {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const domain = {\n x: Domain.getDomainWithZero(props, \"x\"),\n y: Domain.getDomainWithZero(props, \"y\")\n };\n const scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n const origin = polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n let data = Data.getData(props);\n data = Data.formatDataFromDomain(data, domain, 0);\n\n // when inside a zoom container, reset the _x and _y properties of each datum to the original\n // x and y property values so they will not be clipped. See https://github.com/FormidableLabs/victory/pull/2970\n if (props.groupComponent?.type === VictoryClipContainer) {\n data = data.map(datum => ({\n ...datum,\n _x: datum.x,\n _y: datum.y\n }));\n }\n return {\n style,\n data,\n scale,\n domain,\n origin\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"bar\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n alignment,\n barRatio,\n cornerRadius,\n data,\n disableInlineStyles,\n domain,\n events,\n height,\n horizontal,\n origin,\n padding,\n polar,\n scale,\n sharedEvents,\n standalone,\n style,\n theme,\n width,\n labels,\n name,\n barWidth,\n getPath\n } = props;\n const initialChildProps = {\n parent: {\n horizontal,\n domain,\n scale,\n width,\n height,\n data,\n standalone,\n name,\n theme,\n polar,\n origin,\n padding,\n style: style.parent\n }\n };\n return data.reduce((childProps, datum, index) => {\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;\n const {\n x,\n y,\n y0,\n x0\n } = getBarPosition(props, datum);\n const dataProps = {\n alignment,\n barRatio,\n barWidth,\n cornerRadius,\n data,\n datum,\n disableInlineStyles,\n getPath,\n horizontal,\n index,\n polar,\n origin,\n scale,\n style: style.data,\n width,\n height,\n x,\n y,\n y0,\n x0\n };\n childProps[eventKey] = {\n data: dataProps\n };\n const text = LabelHelpers.getText(props, datum, index);\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n childProps[eventKey].labels = LabelHelpers.getProps(props, index);\n }\n return childProps;\n }, initialChildProps);\n};","import isPlainObject from \"lodash/isPlainObject\";\nimport { Helpers } from \"victory-core\";\nconst DEFAULT_BAR_WIDTH = 8;\nexport const getBarWidth = (barWidth, props) => {\n const {\n scale,\n data,\n style\n } = props;\n if (barWidth) {\n return Helpers.evaluateProp(barWidth, props);\n } else if (style.width) {\n return style.width;\n }\n const range = scale.x.range();\n const extent = Math.abs(range[1] - range[0]);\n const bars = data.length + 2;\n const barRatio = props.barRatio || 0.5;\n const defaultWidth = barRatio * (data.length < 2 ? DEFAULT_BAR_WIDTH : extent / bars);\n return Math.max(1, defaultWidth);\n};\nconst getCornerRadiusFromObject = (cornerRadius, props) => {\n const realCornerRadius = {\n topLeft: 0,\n topRight: 0,\n bottomLeft: 0,\n bottomRight: 0\n };\n const updateCornerRadius = (corner, fallback) => {\n if (!Helpers.isNil(cornerRadius[corner])) {\n realCornerRadius[corner] = Helpers.evaluateProp(cornerRadius[corner], props);\n } else if (!Helpers.isNil(cornerRadius[fallback])) {\n realCornerRadius[corner] = Helpers.evaluateProp(cornerRadius[fallback], props);\n }\n };\n updateCornerRadius(\"topLeft\", \"top\");\n updateCornerRadius(\"topRight\", \"top\");\n updateCornerRadius(\"bottomLeft\", \"bottom\");\n updateCornerRadius(\"bottomRight\", \"bottom\");\n return realCornerRadius;\n};\nfunction isCornerRadiusObject(cornerRadius) {\n return isPlainObject(cornerRadius);\n}\nexport const getCornerRadius = (cornerRadius, props) => {\n const realCornerRadius = {\n topLeft: 0,\n topRight: 0,\n bottomLeft: 0,\n bottomRight: 0\n };\n if (!cornerRadius) {\n return realCornerRadius;\n }\n if (isCornerRadiusObject(cornerRadius)) {\n return getCornerRadiusFromObject(cornerRadius, props);\n }\n realCornerRadius.topLeft = Helpers.evaluateProp(cornerRadius, props);\n realCornerRadius.topRight = Helpers.evaluateProp(cornerRadius, props);\n return realCornerRadius;\n};\nexport const getStyle = function (style, props) {\n if (style === void 0) {\n style = {};\n }\n if (props.disableInlineStyles) {\n return {};\n }\n const stroke = style.fill || \"black\";\n const baseStyle = {\n fill: \"black\",\n stroke\n };\n return Helpers.evaluateStyle(Object.assign(baseStyle, style), props);\n};","/**\n * A point in the 2d plane\n */\nexport const point = (x, y) => ({\n x,\n y,\n distance(p1) {\n return Math.sqrt(Math.pow(this.x - p1.x, 2) + Math.pow(this.y - p1.y, 2));\n },\n // vector addition in 2d plane\n add(p1) {\n return point(this.x + p1.x, this.y + p1.y);\n },\n // vector subtraction in 2d\n // returns p0 - p1\n subtract(p1) {\n return point(this.x - p1.x, this.y - p1.y);\n },\n // multiply a 2d point by a scalar\n scalarMult(n) {\n return point(this.x * n, this.y * n);\n },\n scalarDivide(n) {\n if (n === 0) {\n throw new Error(\"Division by 0 error\");\n }\n return point(this.x / n, this.y / n);\n },\n equals(p1) {\n return this.x === p1.x && this.y === p1.y;\n }\n});\n/**\n * A circle in the 2d plane\n */\nexport const circle = (center, radius) => ({\n center,\n radius,\n hasIntersection(circle1) {\n const P0 = this.center;\n const P1 = circle1.center;\n const r0 = this.radius;\n const r1 = circle1.radius;\n const d = P0.distance(P1);\n if (d > r0 + r1) {\n return false; // separate circles\n }\n if (d < Math.abs(r0 - r1)) {\n return false; // one circle contains another\n }\n return true;\n },\n equals(circle1) {\n const P0 = this.center;\n const P1 = circle1.center;\n const r0 = this.radius;\n const r1 = circle1.radius;\n return r0 === r1 && P0.equals(P1);\n },\n // Source: http://paulbourke.net/geometry/circlesphere/\n // \"Intersection of two circles\" by Paul Bourke\n // Left-most point is returned as 0th element of array\n // Right-most point is returned as 1st elemennt of array\n intersection(circle1) {\n const P0 = this.center;\n const P1 = circle1.center;\n const r0 = this.radius;\n const r1 = circle1.radius;\n const d = P0.distance(P1);\n if (!this.hasIntersection(circle1) || this.equals(circle1)) {\n return [];\n }\n const a = (Math.pow(r0, 2) - Math.pow(r1, 2) + Math.pow(d, 2)) / (2 * d);\n const h = Math.sqrt(Math.pow(r0, 2) - Math.pow(a, 2));\n const P2 = P0.add(P1.subtract(P0).scalarMult(a).scalarDivide(d));\n const {\n x: x0,\n y: y0\n } = P0;\n const {\n x: x1,\n y: y1\n } = P1;\n const {\n x: x2,\n y: y2\n } = P2;\n const P3s = [point(x2 - h * (y1 - y0) / d, y2 + h * (x1 - x0) / d), point(x2 + h * (y1 - y0) / d, y2 - h * (x1 - x0) / d)];\n P3s.sort((Point1, Point2) => Point1.x - Point2.x);\n return P3s;\n },\n solveX(y) {\n const sqrt = Math.sqrt(Math.pow(this.radius, 2) - Math.pow(y - this.center.y, 2));\n return [this.center.x - sqrt, this.center.x + sqrt];\n },\n solveY(x) {\n const sqrt = Math.sqrt(Math.pow(this.radius, 2) - Math.pow(x - this.center.x, 2));\n return [this.center.y - sqrt, this.center.y + sqrt];\n }\n});","import * as d3Shape from \"victory-vendor/d3-shape\";\nimport { circle, point } from \"./geometry-helper-methods\";\nconst getPosition = (props, width) => {\n const {\n x,\n x0,\n y,\n y0,\n horizontal\n } = props;\n const alignment = props.alignment || \"middle\";\n const size = alignment === \"middle\" ? width / 2 : width;\n const sign = horizontal ? -1 : 1;\n if (horizontal) {\n return {\n x0,\n x1: x,\n y0: alignment === \"start\" ? y : y - sign * size,\n y1: alignment === \"end\" ? y : y + sign * size\n };\n }\n return {\n x0: alignment === \"start\" ? x : x - sign * size,\n x1: alignment === \"end\" ? x : x + sign * size,\n y0,\n y1: y\n };\n};\nconst getAngle = (props, index) => {\n const {\n data,\n scale\n } = props;\n const x = data[index]._x1 === undefined ? \"_x\" : \"_x1\";\n return scale.x(data[index][x]);\n};\nconst getAngularWidth = (props, width) => {\n const {\n scale\n } = props;\n const range = scale.y.range();\n const r = Math.max(...range);\n const angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n return width / (2 * Math.PI * r) * angularRange;\n};\nconst transformAngle = angle => {\n return -1 * angle + Math.PI / 2;\n};\nexport const getCustomBarPath = (props, width) => {\n const {\n getPath\n } = props;\n if (typeof getPath === \"function\") {\n const propsWithCalculatedValues = {\n ...props,\n ...getPosition(props, width)\n };\n return getPath(propsWithCalculatedValues);\n }\n};\nconst getStartAngle = (props, index) => {\n const {\n data,\n scale,\n alignment\n } = props;\n const currentAngle = getAngle(props, index);\n const angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n const previousAngle = index === 0 ? getAngle(props, data.length - 1) - Math.PI * 2 : getAngle(props, index - 1);\n if (index === 0 && angularRange < 2 * Math.PI) {\n return scale.x.range()[0];\n } else if (alignment === \"start\" || alignment === \"end\") {\n return alignment === \"start\" ? previousAngle : currentAngle;\n }\n return (currentAngle + previousAngle) / 2;\n};\nconst getEndAngle = (props, index) => {\n const {\n data,\n scale,\n alignment\n } = props;\n const currentAngle = getAngle(props, index);\n const angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n const lastAngle = scale.x.range()[1] === 2 * Math.PI ? getAngle(props, 0) + Math.PI * 2 : scale.x.range()[1];\n const nextAngle = index === data.length - 1 ? getAngle(props, 0) + Math.PI * 2 : getAngle(props, index + 1);\n if (index === data.length - 1 && angularRange < 2 * Math.PI) {\n return lastAngle;\n } else if (alignment === \"start\" || alignment === \"end\") {\n return alignment === \"start\" ? currentAngle : nextAngle;\n }\n return (currentAngle + nextAngle) / 2;\n};\nconst mapPointsToPath = (coords, cornerRadius, direction) => {\n const topLeftPath = `${cornerRadius.topLeft} ${cornerRadius.topLeft} ${direction}`;\n const topRightPath = `${cornerRadius.topRight} ${cornerRadius.topRight} ${direction}`;\n const bottomLeftPath = `${cornerRadius.bottomLeft} ${cornerRadius.bottomLeft} ${direction}`;\n const bottomRightPath = `${cornerRadius.bottomRight} ${cornerRadius.bottomRight} ${direction}`;\n const commands = [\"M\", `A ${bottomLeftPath},`, \"L\", `A ${topLeftPath},`, \"L\", `A ${topRightPath},`, \"L\", `A ${bottomRightPath},`];\n const path = commands.reduce((acc, command, i) => `${acc}${command} ${coords[i].x}, ${coords[i].y} \\n`, \"\");\n return `${path} z`;\n};\nconst getVerticalBarPoints = (position, sign, cr) => {\n const {\n x0,\n x1,\n y0,\n y1\n } = position;\n const getHalfPoints = side => {\n const isLeft = side === \"Left\";\n const signL = isLeft ? 1 : -1;\n const x = isLeft ? x0 : x1;\n let bottomPoint = {\n x: x + signL * cr[`bottom${side}`],\n y: y0\n };\n let bottomMiddlePoint = {\n x,\n y: y0 - sign * cr[`bottom${side}`]\n };\n let topMiddlePoint = {\n x,\n y: y1 + sign * cr[`top${side}`]\n };\n let topPoint = {\n x: x + signL * cr[`top${side}`],\n y: y1\n };\n const hasIntersection = sign === 1 ? y0 - cr[`bottom${side}`] < y1 + cr[`top${side}`] : y0 + cr[`bottom${side}`] > y1 - cr[`top${side}`];\n if (hasIntersection) {\n const topCenter = point(x + signL * cr[`top${side}`], y1 + sign * cr[`top${side}`]);\n const topCircle = circle(topCenter, cr[`top${side}`]);\n const bottomCenter = point(x + signL * cr[`bottom${side}`], y0 - sign * cr[`bottom${side}`]);\n const bottomCircle = circle(bottomCenter, cr[`bottom${side}`]);\n const circleIntersection = topCircle.intersection(bottomCircle);\n const hasArcIntersection = circleIntersection.length > 0;\n if (hasArcIntersection) {\n const arcIntersection = circleIntersection[isLeft ? 0 : 1];\n bottomMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n topMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n } else {\n const hasBottomLineTopArcIntersection = cr[`top${side}`] > cr[`bottom${side}`];\n if (hasBottomLineTopArcIntersection) {\n const newX = topCircle.solveX(y0)[isLeft ? 0 : 1];\n bottomPoint = {\n x: newX,\n y: y0\n };\n bottomMiddlePoint = {\n x: newX,\n y: y0\n };\n topMiddlePoint = {\n x: newX,\n y: y0\n };\n } else {\n const newX = bottomCircle.solveX(y1)[isLeft ? 0 : 1];\n bottomMiddlePoint = {\n x: newX,\n y: y1\n };\n topMiddlePoint = {\n x: newX,\n y: y1\n };\n topPoint = {\n x: newX,\n y: y1\n };\n }\n }\n }\n const points = [bottomPoint, bottomMiddlePoint, topMiddlePoint, topPoint];\n return isLeft ? points : points.reverse();\n };\n return getHalfPoints(\"Left\").concat(getHalfPoints(\"Right\"));\n};\nconst getHorizontalBarPoints = (position, sign, cr) => {\n const {\n y0,\n y1\n } = position;\n const x0 = position.x0 < position.x1 ? position.x0 : position.x1;\n const x1 = position.x0 < position.x1 ? position.x1 : position.x0;\n const getHalfPoints = side => {\n const isTop = side === \"top\";\n const signL = isTop ? -1 : 1;\n const y = isTop ? y1 : y0;\n let leftPoint = {\n x: x0,\n y: y - signL * cr[`${side}Left`]\n };\n let leftMiddlePoint = {\n x: x0 + cr[`${side}Left`],\n y\n };\n let rightMiddlePoint = {\n x: x1 - cr[`${side}Right`],\n y\n };\n let rightPoint = {\n x: x1,\n y: y - signL * cr[`${side}Right`]\n };\n const hasIntersection = leftMiddlePoint.x > rightMiddlePoint.x;\n if (hasIntersection) {\n const leftCenter = point(x0 + cr[`${side}Left`], y - signL * cr[`${side}Left`]);\n const leftCircle = circle(leftCenter, cr[`${side}Left`]);\n const rightCenter = point(x1 - cr[`${side}Right`], y - signL * cr[`${side}Right`]);\n const rightCircle = circle(rightCenter, cr[`${side}Right`]);\n const circleIntersection = leftCircle.intersection(rightCircle);\n const hasArcIntersection = circleIntersection.length > 0;\n if (hasArcIntersection) {\n const arcIntersection = circleIntersection[sign > 0 ? 1 : 0];\n leftMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n rightMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n } else {\n const hasLeftLineRightArcIntersection = cr[`${side}Right`] > cr[`${side}Left`];\n if (hasLeftLineRightArcIntersection) {\n const newY = rightCircle.solveY(x0)[isTop ? 0 : 1];\n leftPoint = {\n x: x0,\n y: newY\n };\n leftMiddlePoint = {\n x: x0,\n y: newY\n };\n rightMiddlePoint = {\n x: x0,\n y: newY\n };\n } else {\n const newY = leftCircle.solveY(x1)[isTop ? 0 : 1];\n rightPoint = {\n x: x1,\n y: newY\n };\n rightMiddlePoint = {\n x: x1,\n y: newY\n };\n leftMiddlePoint = {\n x: x1,\n y: newY\n };\n }\n }\n }\n return [leftPoint, leftMiddlePoint, rightMiddlePoint, rightPoint];\n };\n const topPoints = getHalfPoints(\"top\");\n const bottomPoints = getHalfPoints(\"bottom\");\n return [bottomPoints[1], bottomPoints[0], ...topPoints,\n // eslint-disable-next-line no-magic-numbers\n bottomPoints[3], bottomPoints[2]];\n};\nexport const getVerticalBarPath = (props, width, cornerRadius) => {\n const position = getPosition(props, width);\n const sign = position.y0 > position.y1 ? 1 : -1;\n const direction = sign > 0 ? \"0 0 1\" : \"0 0 0\";\n const points = getVerticalBarPoints(position, sign, cornerRadius);\n return mapPointsToPath(points, cornerRadius, direction);\n};\nexport const getHorizontalBarPath = (props, width, cornerRadius) => {\n const position = getPosition(props, width);\n const sign = position.x0 < position.x1 ? 1 : -1;\n const direction = \"0 0 1\";\n const cr = {\n topRight: sign > 0 ? cornerRadius.topLeft : cornerRadius.bottomLeft,\n bottomRight: sign > 0 ? cornerRadius.topRight : cornerRadius.bottomRight,\n bottomLeft: sign > 0 ? cornerRadius.bottomRight : cornerRadius.topRight,\n topLeft: sign > 0 ? cornerRadius.bottomLeft : cornerRadius.topLeft\n };\n const points = getHorizontalBarPoints(position, sign, cr);\n return mapPointsToPath(points, cr, direction);\n};\nexport const getVerticalPolarBarPath = (props, cornerRadius) => {\n const {\n datum,\n scale,\n index,\n alignment,\n style\n } = props;\n const r1 = scale.y(datum._y0 || 0);\n const r2 = scale.y(datum._y1 !== undefined ? datum._y1 : datum._y);\n const currentAngle = scale.x(datum._x1 !== undefined ? datum._x1 : datum._x);\n let start;\n let end;\n if (style.width) {\n const width = getAngularWidth(props, style.width);\n const size = alignment === \"middle\" ? width / 2 : width;\n start = alignment === \"start\" ? currentAngle : currentAngle - size;\n end = alignment === \"end\" ? currentAngle : currentAngle + size;\n } else {\n start = getStartAngle(props, Number(index));\n end = getEndAngle(props, Number(index));\n }\n const getPath = edge => {\n const pathFunction = d3Shape.arc().innerRadius(r1).outerRadius(r2).startAngle(transformAngle(start)).endAngle(transformAngle(end)).cornerRadius(cornerRadius[edge]);\n return pathFunction();\n };\n const getPathData = edge => {\n const rightPath = getPath(`${edge}Right`);\n const rightMoves = rightPath.match(/[A-Z]/g) || [];\n const rightCoords = rightPath.split(/[A-Z]/).slice(1);\n const rightMiddle = rightMoves.indexOf(\"L\");\n const leftPath = getPath(`${edge}Left`);\n const leftMoves = leftPath.match(/[A-Z]/g) || [];\n const leftCoords = leftPath.split(/[A-Z]/).slice(1);\n const leftMiddle = leftMoves.indexOf(\"L\");\n return {\n rightMoves,\n rightCoords,\n rightMiddle,\n leftMoves,\n leftCoords,\n leftMiddle\n };\n };\n const getTopPath = () => {\n const {\n topRight,\n topLeft\n } = cornerRadius;\n const arcLength = r2 * Math.abs(end - start);\n const {\n rightMoves,\n rightCoords,\n rightMiddle,\n leftMoves,\n leftCoords,\n leftMiddle\n } = getPathData(\"top\");\n let moves;\n let coords;\n if (topRight === topLeft || arcLength < 2 * topRight + 2 * topLeft) {\n moves = topRight > topLeft ? rightMoves : leftMoves;\n coords = topRight > topLeft ? rightCoords : leftCoords;\n } else {\n // eslint-disable-next-line no-magic-numbers\n const isShort = middle => middle < 3;\n const rightOffset = topLeft > topRight && isShort(rightMiddle) ? 1 : 2;\n let leftOffset;\n if (topRight > topLeft) {\n const defaultOffset = isShort(rightMiddle) ? leftMiddle : leftMiddle - 2;\n leftOffset = isShort(leftMiddle) ? leftMiddle - 1 : defaultOffset;\n } else {\n const defaultOffset = isShort(leftMiddle) ? 1 : 2;\n leftOffset = isShort(rightMiddle) ? defaultOffset : leftMiddle - 2;\n }\n moves = [...rightMoves.slice(0, rightOffset), ...leftMoves.slice(leftOffset)];\n coords = [...rightCoords.slice(0, rightOffset), ...leftCoords.slice(leftOffset)];\n }\n const middle = moves.indexOf(\"L\");\n const subMoves = moves.slice(0, middle);\n const subCoords = coords.slice(0, middle);\n return subMoves.map((m, i) => ({\n command: m,\n coords: subCoords[i].split(\",\")\n }));\n };\n const getBottomPath = () => {\n const {\n bottomRight,\n bottomLeft\n } = cornerRadius;\n const arcLength = r1 * Math.abs(end - start);\n const {\n rightMoves,\n rightCoords,\n rightMiddle,\n leftMoves,\n leftCoords,\n leftMiddle\n } = getPathData(\"bottom\");\n let moves;\n let coords;\n if (bottomRight === bottomLeft || arcLength < 2 * bottomRight + 2 * bottomLeft) {\n moves = bottomRight > bottomLeft ? rightMoves : leftMoves;\n coords = bottomRight > bottomLeft ? rightCoords : leftCoords;\n } else {\n // eslint-disable-next-line no-magic-numbers\n const isShort = (m, middle) => m.length - middle < 4;\n const shortPath = bottomRight > bottomLeft ? isShort(rightMoves, rightMiddle) : isShort(leftMoves, leftMiddle);\n // eslint-disable-next-line no-magic-numbers\n const rightOffset = shortPath ? -1 : -3;\n moves = [...leftMoves.slice(0, leftMiddle + 2), ...rightMoves.slice(rightOffset)];\n coords = [...leftCoords.slice(0, leftMiddle + 2), ...rightCoords.slice(rightOffset)];\n }\n const middle = moves.indexOf(\"L\");\n const subMoves = moves.slice(middle, -1);\n const subCoords = coords.slice(middle, -1);\n return subMoves.map((m, i) => ({\n command: m,\n coords: subCoords[i].split(\",\")\n }));\n };\n const topPath = getTopPath();\n const bottomPath = getBottomPath();\n const moves = [...topPath, ...bottomPath];\n const path = moves.reduce((memo, move) => `${memo}${move.command} ${move.coords.join()}`, \"\");\n return `${path} z`;\n};\nexport const getBarPath = (props, width, cornerRadius) => {\n if (props.getPath) {\n return getCustomBarPath(props, width);\n }\n return props.horizontal ? getHorizontalBarPath(props, width, cornerRadius) : getVerticalBarPath(props, width, cornerRadius);\n};\nexport const getPolarBarPath = (props, cornerRadius) => {\n // TODO Radial bars\n return getVerticalPolarBarPath(props, cornerRadius);\n};","import React, { forwardRef } from \"react\";\nimport defaults from \"lodash/defaults\";\nimport { Helpers, Path } from \"victory-core\";\nimport { getStyle, getBarWidth, getCornerRadius } from \"./bar-helper-methods\";\nimport { getPolarBarPath, getBarPath } from \"./path-helper-methods\";\nconst evaluateProps = props => {\n /**\n * Potential evaluated props of following must be evaluated in this order:\n * 1) `style`\n * 2) `barWidth`\n * 3) `cornerRadius`\n *\n * Everything else does not have to be evaluated in a particular order:\n * `ariaLabel`\n * `desc`\n * `id`\n * `tabIndex`\n */\n const style = getStyle(props.style, props);\n const barWidth = getBarWidth(props.barWidth, Object.assign({}, props, {\n style\n }));\n const cornerRadius = getCornerRadius(props.cornerRadius, Object.assign({}, props, {\n style,\n barWidth\n }));\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n style,\n barWidth,\n cornerRadius,\n desc,\n id,\n tabIndex\n });\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Bar = /*#__PURE__*/forwardRef(\n// eslint-disable-next-line prefer-arrow-callback\nfunction Bar(initialProps, ref) {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const {\n polar,\n origin,\n style,\n barWidth,\n cornerRadius\n } = props;\n const path = polar ? getPolarBarPath(props, cornerRadius) : getBarPath(props, barWidth, cornerRadius);\n const defaultTransform = polar && origin ? `translate(${origin.x}, ${origin.y})` : undefined;\n if (!props.pathComponent) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n style,\n d: path,\n className: props.className,\n clipPath: props.clipPath,\n desc: props.desc,\n index: props.index,\n role: props.role,\n shapeRendering: props.shapeRendering,\n transform: props.transform || defaultTransform,\n tabIndex: props.tabIndex,\n ref\n });\n});","import React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Bar } from \"./bar\";\nimport { Helpers, VictoryLabel, VictoryContainer, VictoryTheme, addEvents, Data, Domain, UserProps, VictoryClipContainer } from \"victory-core\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nconst defaultData = [{\n x: 1,\n y: 1\n}, {\n x: 2,\n y: 2\n}, {\n x: 3,\n y: 3\n}, {\n x: 4,\n y: 4\n}];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\n/**\n * Draw SVG bar charts with React. VictoryBar is a composable component, so it doesn\"t include axes\n * Check out VictoryChart for complete bar charts and more.\n */\nclass VictoryBarBase extends React.Component {\n static animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"style\", \"width\"];\n static displayName = \"VictoryBar\";\n static role = \"bar\";\n static defaultTransitions = {\n onLoad: {\n duration: 2000,\n before: () => ({\n _y: 0,\n _y1: 0,\n _y0: 0\n }),\n after: datum => ({\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n })\n },\n onExit: {\n duration: 500,\n before: () => ({\n _y: 0,\n yOffset: 0\n })\n },\n onEnter: {\n duration: 500,\n before: () => ({\n _y: 0,\n _y1: 0,\n _y0: 0\n }),\n after: datum => ({\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n })\n }\n };\n static defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n data: defaultData,\n dataComponent: /*#__PURE__*/React.createElement(Bar, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n samples: 50,\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n };\n static getDomain = Domain.getDomainWithZero;\n static getData = Data.getData;\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\n // passed to addEvents.renderData to prevent data props with undefined _x or _y from excluding data from render.\n // used when inside of VictoryZoomContainer\n static shouldRenderDatum = () => true;\n // Overridden in native versions\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist,\n role\n } = VictoryBar;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n let children;\n // when inside a zoom container (the only place VictoryClipContainer is used), all data\n // should be renderable so bars won't dissappear before they've fully exited the container's bounds\n // see https://github.com/FormidableLabs/victory/pull/2970\n if (props.groupComponent?.type === VictoryClipContainer) {\n children = this.renderData(props, VictoryBarBase.shouldRenderDatum);\n } else {\n children = this.renderData(props);\n }\n const component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n}\nexport const VictoryBar = addEvents(VictoryBarBase);","import * as Collection from \"./collection\";\n// Private Functions\n\nfunction transformTarget(target, matrix, dimension) {\n const {\n a,\n d,\n e,\n f\n } = matrix;\n return dimension === \"y\" ? d * target + f : a * target + e;\n}\nfunction getTransformationMatrix(svg) {\n return svg.getScreenCTM().inverse();\n}\nfunction isNativeTouchEvent(nativeEvent) {\n return !!(nativeEvent && nativeEvent.identifier !== undefined);\n}\nfunction isReactTouchEvent(evt) {\n return evt.changedTouches && evt.changedTouches.length > 0;\n}\n\n// Exported Functions\n\nexport function getParentSVG(evt) {\n if (isNativeTouchEvent(evt.nativeEvent)) {\n // @ts-expect-error Seems like a superfluous check.\n return undefined;\n }\n const getParent = target => {\n if (target.nodeName === \"svg\") {\n return target;\n }\n return target.parentNode ? getParent(target.parentNode) : target;\n };\n return getParent(evt.target);\n}\nexport function getSVGEventCoordinates(evt, svg) {\n if (isNativeTouchEvent(evt.nativeEvent)) {\n // react-native override. relies on the RN.View being the _exact_ same size as its child SVG.\n // this should be fine: the svg is the only child of View and the View shirks to its children\n return {\n x: evt.nativeEvent.locationX,\n y: evt.nativeEvent.locationY\n };\n }\n const location = isReactTouchEvent(evt) ? evt.changedTouches[0] : evt;\n const matrix = getTransformationMatrix(svg || getParentSVG(location));\n return {\n x: transformTarget(location.clientX, matrix, \"x\"),\n y: transformTarget(location.clientY, matrix, \"y\")\n };\n}\nexport function getDomainCoordinates(props, domain) {\n const {\n horizontal\n } = props;\n const scale = props.scale;\n // FIXME: add support for DomainTuple: [number, number]\n const domainObj = domain || {\n x: scale.x.domain(),\n y: scale.y.domain()\n };\n return {\n x: horizontal ? [scale.y(domainObj.y[0]), scale.y(domainObj.y[1])] : [scale.x(domainObj.x[0]), scale.x(domainObj.x[1])],\n y: horizontal ? [scale.x(domainObj.x[0]), scale.x(domainObj.x[1])] : [scale.y(domainObj.y[0]), scale.y(domainObj.y[1])]\n };\n}\n\n// eslint-disable-next-line max-params\nexport function getDataCoordinates(props, scale, x, y) {\n const {\n polar,\n horizontal\n } = props;\n if (!polar) {\n return {\n x: horizontal ? scale.x.invert(y) : scale.x.invert(x),\n y: horizontal ? scale.y.invert(x) : scale.y.invert(y)\n };\n }\n const origin = props.origin || {\n x: 0,\n y: 0\n };\n const baseX = x - origin.x;\n const baseY = y - origin.y;\n const radius = Math.abs(baseX * Math.sqrt(1 + Math.pow(-baseY / baseX, 2)));\n const angle = (-Math.atan2(baseY, baseX) + Math.PI * 2) % (Math.PI * 2);\n return {\n x: scale.x.invert(angle),\n y: scale.y.invert(radius)\n };\n}\nexport function getBounds(props) {\n const {\n x1,\n x2,\n y1,\n y2,\n scale\n } = props;\n const point1 = getDataCoordinates(props, scale, x1, y1);\n const point2 = getDataCoordinates(props, scale, x2, y2);\n const makeBound = (a, b) => {\n return [Collection.getMinValue([a, b]), Collection.getMaxValue([a, b])];\n };\n return {\n x: makeBound(point1.x, point2.x),\n y: makeBound(point1.y, point2.y)\n };\n}","import defaults from \"lodash/defaults\";\nimport throttle from \"lodash/throttle\";\nimport { Helpers as CoreHelpers, Selection } from \"victory-core\";\nimport isEqual from \"react-fast-compare\";\nconst Helpers = {\n getDimension(props) {\n const {\n horizontal,\n brushDimension\n } = props;\n if (!horizontal || !brushDimension) {\n return brushDimension;\n }\n return brushDimension === \"x\" ? \"y\" : \"x\";\n },\n withinBounds(point, bounds, padding) {\n const {\n x1,\n x2,\n y1,\n y2\n } = CoreHelpers.mapValues(bounds, Number);\n const {\n x,\n y\n } = CoreHelpers.mapValues(point, Number);\n const paddingValue = padding ? padding / 2 : 0;\n return x + paddingValue >= Math.min(x1, x2) && x - paddingValue <= Math.max(x1, x2) && y + paddingValue >= Math.min(y1, y2) && y - paddingValue <= Math.max(y1, y2);\n },\n getDomainBox(props, fullDomain, selectedDomain) {\n const brushDimension = this.getDimension(props);\n const fullDomainObject = defaults({}, fullDomain, props.domain);\n const selectedDomainObject = defaults({}, selectedDomain, fullDomainObject);\n const fullCoords = Selection.getDomainCoordinates(props, fullDomainObject);\n const selectedCoords = Selection.getDomainCoordinates(props, selectedDomainObject);\n return {\n x1: brushDimension !== \"y\" ? Math.min(...selectedCoords.x) : Math.min(...fullCoords.x),\n x2: brushDimension !== \"y\" ? Math.max(...selectedCoords.x) : Math.max(...fullCoords.x),\n y1: brushDimension !== \"x\" ? Math.min(...selectedCoords.y) : Math.min(...fullCoords.y),\n y2: brushDimension !== \"x\" ? Math.max(...selectedCoords.y) : Math.max(...fullCoords.y)\n };\n },\n getHandles(props, domainBox) {\n const brushDimension = this.getDimension(props);\n const {\n x1,\n x2,\n y1,\n y2\n } = domainBox;\n const minX = Math.min(x1, x2);\n const maxX = Math.max(x1, x2);\n const minY = Math.min(y1, y2);\n const maxY = Math.max(y1, y2);\n const handleWidth = props.handleWidth / 2;\n return {\n left: brushDimension !== \"y\" && {\n x1: minX - handleWidth,\n x2: minX + handleWidth,\n y1,\n y2\n },\n right: brushDimension !== \"y\" && {\n x1: maxX - handleWidth,\n x2: maxX + handleWidth,\n y1,\n y2\n },\n top: brushDimension !== \"x\" && {\n x1,\n x2,\n y1: minY - handleWidth,\n y2: minY + handleWidth\n },\n bottom: brushDimension !== \"x\" && {\n x1,\n x2,\n y1: maxY - handleWidth,\n y2: maxY + handleWidth\n }\n };\n },\n getActiveHandles(point, props, domainBox) {\n const handles = this.getHandles(props, domainBox);\n const activeHandles = [\"top\", \"bottom\", \"left\", \"right\"].reduce((memo, opt) => handles[opt] && this.withinBounds(point, handles[opt]) ? memo.concat(opt) : memo, []);\n return activeHandles.length && activeHandles;\n },\n getResizeMutation(box, handles) {\n const {\n x1,\n y1,\n x2,\n y2\n } = box;\n const mutations = {\n left: {\n x1: Math.max(x1, x2),\n x2: Math.min(x1, x2),\n y1,\n y2\n },\n right: {\n x1: Math.min(x1, x2),\n x2: Math.max(x1, x2),\n y1,\n y2\n },\n top: {\n y1: Math.max(y1, y2),\n y2: Math.min(y1, y2),\n x1,\n x2\n },\n bottom: {\n y1: Math.min(y1, y2),\n y2: Math.max(y1, y2),\n x1,\n x2\n }\n };\n return handles.reduce((memo, current) => {\n return Object.assign(memo, mutations[current]);\n }, {});\n },\n getMinimumDomain() {\n return {\n x: [0, 1 / Number.MAX_SAFE_INTEGER],\n y: [0, 1 / Number.MAX_SAFE_INTEGER]\n };\n },\n getDefaultBrushArea(targetProps, cachedDomain, evt) {\n const {\n domain,\n fullDomain,\n scale,\n horizontal,\n allowResize\n } = targetProps;\n const defaultBrushArea = !allowResize && !targetProps.defaultBrushArea ? \"move\" : targetProps.defaultBrushArea;\n if (defaultBrushArea === \"none\") {\n return this.getMinimumDomain();\n } else if (defaultBrushArea === \"disable\") {\n return cachedDomain;\n } else if (defaultBrushArea === \"move\") {\n const brushBox = this.getDomainBox(targetProps, fullDomain, cachedDomain);\n const parentSVG = targetProps.parentSVG || Selection.getParentSVG(evt);\n const pannedBox = this.panBox({\n ...targetProps,\n ...brushBox,\n brushDomain: cachedDomain,\n startX: (brushBox.x1 + brushBox.x2) / 2,\n startY: (brushBox.y1 + brushBox.y2) / 2\n }, Selection.getSVGEventCoordinates(evt, parentSVG));\n const fullDomainBox = targetProps.fullDomainBox || this.getDomainBox(targetProps, fullDomain);\n const constrainedBox = this.constrainBox(pannedBox, fullDomainBox);\n return Selection.getBounds({\n ...constrainedBox,\n scale,\n horizontal\n });\n }\n return domain;\n },\n getSelectionMutation(point, box, brushDimension) {\n const {\n x,\n y\n } = point;\n const {\n x1,\n x2,\n y1,\n y2\n } = box;\n return {\n x1: brushDimension !== \"y\" ? x : x1,\n y1: brushDimension !== \"x\" ? y : y1,\n x2: brushDimension !== \"y\" ? x : x2,\n y2: brushDimension !== \"x\" ? y : y2\n };\n },\n panBox(props, point) {\n const {\n domain,\n startX,\n startY\n } = props;\n const brushDimension = this.getDimension(props);\n const brushDomain = defaults({}, props.brushDomain, domain);\n const fullDomain = defaults({}, props.fullDomain, domain);\n const {\n x1,\n x2,\n y1,\n y2\n } = props.x1 ? props : this.getDomainBox(props, fullDomain, brushDomain);\n const {\n x,\n y\n } = point;\n const delta = {\n x: startX ? startX - x : 0,\n y: startY ? startY - y : 0\n };\n return {\n x1: brushDimension !== \"y\" ? Math.min(x1, x2) - delta.x : Math.min(x1, x2),\n x2: brushDimension !== \"y\" ? Math.max(x1, x2) - delta.x : Math.max(x1, x2),\n y1: brushDimension !== \"x\" ? Math.min(y1, y2) - delta.y : Math.min(y1, y2),\n y2: brushDimension !== \"x\" ? Math.max(y1, y2) - delta.y : Math.max(y1, y2)\n };\n },\n constrainBox(box, fullDomainBox) {\n const {\n x1,\n y1,\n x2,\n y2\n } = CoreHelpers.mapValues(fullDomainBox, Number);\n return {\n x1: box.x2 > x2 ? x2 - Math.abs(box.x2 - box.x1) : Math.max(box.x1, x1),\n y1: box.y2 > y2 ? y2 - Math.abs(box.y2 - box.y1) : Math.max(box.y1, y1),\n x2: box.x1 < x1 ? x1 + Math.abs(box.x2 - box.x1) : Math.min(box.x2, x2),\n y2: box.y1 < y1 ? y1 + Math.abs(box.y2 - box.y1) : Math.min(box.y2, y2)\n };\n },\n constrainPoint(point, fullDomainBox) {\n const {\n x1,\n y1,\n x2,\n y2\n } = CoreHelpers.mapValues(fullDomainBox, Number);\n return {\n x: Math.min(Math.max(point.x, x1), x2),\n y: Math.min(Math.max(point.y, y1), y2)\n };\n },\n hasMoved(props) {\n const {\n x1,\n x2,\n y1,\n y2,\n mouseMoveThreshold\n } = props;\n const brushDimension = this.getDimension(props);\n const xMoved = Math.abs(x1 - x2) >= mouseMoveThreshold;\n const yMoved = Math.abs(y1 - y2) >= mouseMoveThreshold;\n switch (brushDimension) {\n case \"x\":\n return xMoved;\n case \"y\":\n return yMoved;\n default:\n return xMoved || yMoved;\n }\n },\n onMouseDown(evt, targetProps) {\n evt.preventDefault();\n const {\n handleWidth,\n cachedBrushDomain,\n domain,\n allowResize,\n allowDrag,\n allowDraw\n } = targetProps;\n const brushDimension = this.getDimension(targetProps);\n const defaultBrushArea = !allowResize && !targetProps.defaultBrushArea ? \"move\" : targetProps.defaultBrushArea;\n // Don't trigger events for static brushes\n if (!allowResize && !allowDrag) {\n return {};\n }\n const fullDomainBox = targetProps.fullDomainBox || this.getDomainBox(targetProps, domain);\n const parentSVG = targetProps.parentSVG || Selection.getParentSVG(evt);\n const {\n x,\n y\n } = Selection.getSVGEventCoordinates(evt, parentSVG);\n // Ignore events that occur outside of the maximum domain region\n if (!this.withinBounds({\n x,\n y\n }, fullDomainBox, handleWidth)) {\n return {};\n }\n const brushDomain = defaults({}, targetProps.brushDomain, domain);\n const currentDomain = isEqual(brushDomain, cachedBrushDomain) ? targetProps.currentDomain || brushDomain || domain : brushDomain || domain;\n const domainBox = this.getDomainBox(targetProps, domain, currentDomain);\n const activeHandles = allowResize && this.getActiveHandles({\n x,\n y\n }, targetProps, domainBox);\n // If the event occurs in any of the handle regions, start a resize\n if (activeHandles) {\n return [{\n target: \"parent\",\n mutation: () => {\n return {\n isSelecting: true,\n domainBox,\n fullDomainBox,\n cachedBrushDomain: brushDomain,\n currentDomain,\n parentSVG,\n ...this.getResizeMutation(domainBox, activeHandles)\n };\n }\n }];\n } else if (this.withinBounds({\n x,\n y\n }, domainBox) && !isEqual(domain, currentDomain)) {\n // if the event occurs within a selected region start a panning event, unless the whole\n // domain is selected\n return [{\n target: \"parent\",\n mutation: () => ({\n isPanning: allowDrag,\n startX: x,\n startY: y,\n domainBox,\n fullDomainBox,\n currentDomain,\n cachedBrushDomain: brushDomain,\n parentSVG,\n ...domainBox // set x1, x2, y1, y2\n })\n }];\n }\n // if the event occurs outside the region, or if the whole domain is selected,\n // start a new selection\n return allowDraw ? [{\n target: \"parent\",\n mutation: () => ({\n isSelecting: allowResize || defaultBrushArea === \"move\",\n domainBox,\n fullDomainBox,\n parentSVG,\n cachedBrushDomain: brushDomain,\n cachedCurrentDomain: currentDomain,\n currentDomain: this.getMinimumDomain(),\n ...this.getSelectionMutation({\n x,\n y\n }, domainBox, brushDimension)\n })\n }] : {};\n },\n onGlobalMouseMove(evt, targetProps) {\n const {\n scale,\n isPanning,\n isSelecting,\n fullDomainBox,\n onBrushDomainChange,\n allowResize,\n allowDrag,\n horizontal,\n mouseMoveThreshold,\n parentSVG\n } = targetProps;\n const brushDimension = this.getDimension(targetProps);\n const {\n x,\n y\n } = Selection.getSVGEventCoordinates(evt, parentSVG);\n if (!allowResize && !allowDrag || mouseMoveThreshold > 0 && !this.hasMoved({\n ...targetProps,\n x2: x,\n y2: y\n })) {\n return {};\n }\n if (allowDrag && isPanning) {\n const {\n startX,\n startY\n } = targetProps;\n const pannedBox = this.panBox(targetProps, {\n x,\n y\n });\n const constrainedBox = this.constrainBox(pannedBox, fullDomainBox);\n const currentDomain = Selection.getBounds({\n ...constrainedBox,\n scale,\n horizontal\n });\n const mutatedProps = {\n currentDomain,\n parentSVG,\n startX: pannedBox.x2 >= fullDomainBox.x2 || pannedBox.x1 <= fullDomainBox.x1 ? startX : x,\n startY: pannedBox.y2 >= fullDomainBox.y2 || pannedBox.y1 <= fullDomainBox.y1 ? startY : y,\n ...constrainedBox\n };\n if (CoreHelpers.isFunction(onBrushDomainChange)) {\n onBrushDomainChange(currentDomain, defaults({}, mutatedProps, targetProps));\n }\n return [{\n target: \"parent\",\n mutation: () => mutatedProps\n }];\n } else if (allowResize && isSelecting) {\n const {\n x: x2,\n y: y2\n } = this.constrainPoint({\n x: brushDimension !== \"y\" ? x : targetProps.x2,\n y: brushDimension !== \"x\" ? y : targetProps.y2\n }, fullDomainBox);\n const currentDomain = Selection.getBounds({\n x2,\n y2,\n x1: targetProps.x1,\n y1: targetProps.y1,\n scale,\n horizontal\n });\n const mutatedProps = {\n x2,\n y2,\n currentDomain,\n parentSVG\n };\n if (CoreHelpers.isFunction(onBrushDomainChange)) {\n onBrushDomainChange(currentDomain, defaults({}, mutatedProps, targetProps));\n }\n return [{\n target: \"parent\",\n mutation: () => mutatedProps\n }];\n }\n return {};\n },\n onGlobalMouseUp(evt, targetProps) {\n // if a panning or selection has not been started, ignore the event\n if (!targetProps.isPanning && !targetProps.isSelecting) {\n return {};\n }\n const {\n x1,\n y1,\n x2,\n y2,\n isPanning,\n isSelecting,\n onBrushDomainChange,\n onBrushDomainChangeEnd,\n onBrushCleared,\n currentDomain,\n allowResize,\n allowDrag\n } = targetProps;\n const defaultBrushArea = !allowResize && !targetProps.defaultBrushArea ? \"move\" : targetProps.defaultBrushArea;\n const defaultBrushHasArea = defaultBrushArea !== undefined && defaultBrushArea !== \"none\";\n const mutatedProps = {\n isPanning: false,\n isSelecting: false\n };\n\n // if the mouse hasn't moved since a mouseDown event, select the default brush area\n if ((allowResize || defaultBrushHasArea) && (x1 === x2 || y1 === y2)) {\n const cachedDomain = targetProps.cachedCurrentDomain || currentDomain;\n const defaultDomain = this.getDefaultBrushArea(targetProps, cachedDomain, evt);\n mutatedProps.currentDomain = defaultDomain;\n if (CoreHelpers.isFunction(onBrushDomainChange)) {\n onBrushDomainChange(defaultDomain, defaults({}, mutatedProps, targetProps));\n }\n if (CoreHelpers.isFunction(onBrushDomainChangeEnd)) {\n onBrushDomainChangeEnd(defaultDomain, defaults({}, mutatedProps, targetProps));\n }\n if (CoreHelpers.isFunction(onBrushCleared)) {\n onBrushCleared(defaultDomain, defaults({}, mutatedProps, targetProps));\n }\n } else if (allowDrag && isPanning || allowResize && isSelecting) {\n if (CoreHelpers.isFunction(onBrushDomainChangeEnd)) {\n onBrushDomainChangeEnd(currentDomain, defaults({}, mutatedProps, targetProps));\n }\n }\n return [{\n target: \"parent\",\n mutation: () => mutatedProps\n }];\n }\n};\nexport const BrushHelpers = {\n ...Helpers,\n onMouseDown: Helpers.onMouseDown.bind(Helpers),\n onGlobalMouseUp: Helpers.onGlobalMouseUp.bind(Helpers),\n onGlobalMouseMove: throttle(Helpers.onGlobalMouseMove.bind(Helpers), 16,\n // eslint-disable-line no-magic-numbers\n {\n leading: true,\n trailing: false\n })\n};","import React from \"react\";\nimport { Selection, Rect, VictoryContainer } from \"victory-core\";\nimport { BrushHelpers } from \"./brush-helpers\";\nimport defaults from \"lodash/defaults\";\nimport isEqual from \"react-fast-compare\";\nexport const VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS = {\n allowDrag: true,\n allowDraw: true,\n allowResize: true,\n brushComponent: /*#__PURE__*/React.createElement(Rect, null),\n brushStyle: {\n stroke: \"transparent\",\n fill: \"black\",\n fillOpacity: 0.1\n },\n handleComponent: /*#__PURE__*/React.createElement(Rect, null),\n handleStyle: {\n stroke: \"transparent\",\n fill: \"transparent\"\n },\n handleWidth: 8,\n mouseMoveThreshold: 0\n};\nexport const useVictoryBrushContainer = initialProps => {\n const props = {\n ...VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS,\n ...initialProps\n };\n const {\n children\n } = props;\n const getSelectBox = coordinates => {\n const {\n x,\n y\n } = coordinates;\n const {\n brushStyle,\n brushComponent,\n name\n } = props;\n const brushComponentStyle = brushComponent.props && brushComponent.props.style;\n const cursor = !props.allowDrag && !props.allowResize ? \"auto\" : \"move\";\n return x[0] !== x[1] && y[0] !== y[1] ? /*#__PURE__*/React.cloneElement(brushComponent, {\n key: `${name}-brush`,\n width: Math.abs(x[1] - x[0]) || 1,\n height: Math.abs(y[1] - y[0]) || 1,\n x: Math.min(x[0], x[1]),\n y: Math.min(y[0], y[1]),\n cursor,\n style: defaults({}, brushComponentStyle, brushStyle)\n }) : null;\n };\n const getCursorPointers = () => {\n const cursors = {\n yProps: \"ns-resize\",\n xProps: \"ew-resize\"\n };\n if (!props.allowResize && props.allowDrag) {\n cursors.xProps = \"move\";\n cursors.yProps = \"move\";\n } else if (!props.allowResize && !props.allowDrag) {\n cursors.xProps = \"auto\";\n cursors.yProps = \"auto\";\n }\n return cursors;\n };\n const getHandles = domain => {\n const {\n handleWidth,\n handleStyle,\n handleComponent,\n name\n } = props;\n const domainBox = BrushHelpers.getDomainBox(props, domain);\n const {\n x1,\n x2,\n y1,\n y2\n } = domainBox;\n const {\n top,\n bottom,\n left,\n right\n } = BrushHelpers.getHandles(props, domainBox);\n const width = Math.abs(x2 - x1) || 1;\n const height = Math.abs(y2 - y1) || 1;\n const handleComponentStyle = handleComponent.props && handleComponent.props.style || {};\n const style = defaults({}, handleComponentStyle, handleStyle);\n const cursors = getCursorPointers();\n const yProps = {\n style,\n width,\n height: handleWidth,\n cursor: cursors.yProps\n };\n const xProps = {\n style,\n width: handleWidth,\n height,\n cursor: cursors.xProps\n };\n const handleProps = {\n top: top && Object.assign({\n x: top.x1,\n y: top.y1\n }, yProps),\n bottom: bottom && Object.assign({\n x: bottom.x1,\n y: bottom.y1\n }, yProps),\n left: left && Object.assign({\n y: left.y1,\n x: left.x1\n }, xProps),\n right: right && Object.assign({\n y: right.y1,\n x: right.x1\n }, xProps)\n };\n const handles = [\"top\", \"bottom\", \"left\", \"right\"].reduce((memo, curr) => handleProps[curr] ? memo.concat( /*#__PURE__*/React.cloneElement(handleComponent, Object.assign({\n key: `${name}-handle-${curr}`\n }, handleProps[curr]))) : memo, []);\n return handles.length ? handles : null;\n };\n const getRect = () => {\n const {\n currentDomain,\n cachedBrushDomain\n } = props;\n const brushDomain = defaults({}, props.brushDomain, props.domain);\n const domain = isEqual(brushDomain, cachedBrushDomain) ? defaults({}, currentDomain, brushDomain) : brushDomain;\n const coordinates = Selection.getDomainCoordinates(props, domain);\n const selectBox = getSelectBox(coordinates);\n return selectBox ? [selectBox, getHandles(domain)] : [];\n };\n return {\n props,\n children: [...React.Children.toArray(children), ...getRect()]\n };\n};\nexport const VictoryBrushContainer = initialProps => {\n const {\n props,\n children\n } = useVictoryBrushContainer(initialProps);\n return /*#__PURE__*/React.createElement(VictoryContainer, props, children);\n};\nVictoryBrushContainer.role = \"container\";\nVictoryBrushContainer.defaultEvents = initialProps => {\n const props = {\n ...VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS,\n ...initialProps\n };\n const createEventHandler = (handler, isDisabled) =>\n // eslint-disable-next-line max-params\n (event, targetProps, eventKey, context) => props.disable || isDisabled?.(targetProps) ? {} : handler(event, {\n ...props,\n ...targetProps\n }, eventKey, context);\n return [{\n target: \"parent\",\n eventHandlers: {\n onMouseDown: createEventHandler(BrushHelpers.onMouseDown),\n onTouchStart: createEventHandler(BrushHelpers.onMouseDown),\n onGlobalMouseMove: createEventHandler(BrushHelpers.onGlobalMouseMove, targetProps => !targetProps.isPanning && !targetProps.isSelecting),\n onGlobalTouchMove: createEventHandler(BrushHelpers.onGlobalMouseMove, targetProps => !targetProps.isPanning && !targetProps.isSelecting),\n onGlobalMouseUp: createEventHandler(BrushHelpers.onGlobalMouseUp),\n onGlobalTouchEnd: createEventHandler(BrushHelpers.onGlobalMouseUp),\n onGlobalTouchCancel: createEventHandler(BrushHelpers.onGlobalMouseUp)\n }\n }];\n};","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { Rect } from \"./rect\";\nimport { Circle } from \"./circle\";\nconst evaluateProps = props => {\n /**\n * Potential evaluated prop is:\n * `id`\n */\n const id = Helpers.evaluateProp(props.id, props);\n return Object.assign({}, props, {\n id\n });\n};\nconst defaultProps = {\n circleComponent: /*#__PURE__*/React.createElement(Circle, null),\n rectComponent: /*#__PURE__*/React.createElement(Rect, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Background = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n return props.polar ? /*#__PURE__*/React.cloneElement(props.circleComponent, {\n ...props.events,\n style: props.style,\n role: props.role,\n shapeRendering: props.shapeRendering,\n cx: props.x,\n cy: props.y,\n r: props.height,\n className: props.className\n }) : /*#__PURE__*/React.cloneElement(props.rectComponent, {\n ...props.events,\n style: props.style,\n role: props.role,\n shapeRendering: props.shapeRendering,\n x: props.x,\n y: props.y,\n rx: props.rx,\n ry: props.ry,\n width: props.width,\n height: props.height,\n className: props.className\n });\n};","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 180] }]*/\nimport React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { Path } from \"./path\";\nconst getArcPath = props => {\n const {\n cx,\n cy,\n r,\n startAngle,\n endAngle,\n closedPath\n } = props;\n // Always draw the path as two arcs so that complete circles may be rendered.\n const halfAngle = Math.abs(endAngle - startAngle) / 2 + startAngle;\n const x1 = cx + r * Math.cos(Helpers.degreesToRadians(startAngle));\n const y1 = cy - r * Math.sin(Helpers.degreesToRadians(startAngle));\n const x2 = cx + r * Math.cos(Helpers.degreesToRadians(halfAngle));\n const y2 = cy - r * Math.sin(Helpers.degreesToRadians(halfAngle));\n const x3 = cx + r * Math.cos(Helpers.degreesToRadians(endAngle));\n const y3 = cy - r * Math.sin(Helpers.degreesToRadians(endAngle));\n const largerArcFlag1 = halfAngle - startAngle <= 180 ? 0 : 1;\n const largerArcFlag2 = endAngle - halfAngle <= 180 ? 0 : 1;\n const arcStart = closedPath ? ` M ${cx}, ${cy} L ${x1}, ${y1}` : `M ${x1}, ${y1}`;\n const arc1 = `A ${r}, ${r}, 0, ${largerArcFlag1}, 0, ${x2}, ${y2}`;\n const arc2 = `A ${r}, ${r}, 0, ${largerArcFlag2}, 0, ${x3}, ${y3}`;\n const arcEnd = closedPath ? \"Z\" : \"\";\n return `${arcStart} ${arc1} ${arc2} ${arcEnd}`;\n};\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(Object.assign({\n stroke: \"black\",\n fill: \"none\"\n }, props.style), props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n desc,\n id,\n style,\n tabIndex\n });\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Arc = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n d: getArcPath(props),\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n transform: props.transform,\n clipPath: props.clipPath\n });\n};","import defaults from \"lodash/defaults\";\nimport uniqBy from \"lodash/uniqBy\";\nimport { Helpers, LabelHelpers, Scale, Axis } from \"victory-core\";\nconst getPosition = (r, angle, axis) => {\n return axis === \"x\" ? r * Math.cos(angle) : -r * Math.sin(angle);\n};\nconst getAxisType = props => {\n const typicalType = props.dependentAxis ? \"radial\" : \"angular\";\n const invertedType = typicalType === \"angular\" ? \"radial\" : \"angular\";\n return props.horizontal ? invertedType : typicalType;\n};\nconst filterTicks = (ticks, scale) => {\n const compareTicks = t => scale(t) % (2 * Math.PI);\n return uniqBy(ticks, compareTicks);\n};\nconst getEvaluatedStyles = (style, props) => {\n return {\n tickStyle: Helpers.evaluateStyle(style.ticks, props),\n labelStyle: Helpers.evaluateStyle(style.tickLabels, props),\n gridStyle: Helpers.evaluateStyle(style.grid, props)\n };\n};\nconst getStyleObject = props => {\n const {\n theme = {},\n dependentAxis\n } = props;\n const generalAxisStyle = theme.polarAxis && theme.polarAxis.style || theme.axis && theme.axis.style;\n const polarAxisType = dependentAxis ? \"polarDependentAxis\" : \"polarIndependentAxis\";\n const standardAxisType = dependentAxis ? \"dependentAxis\" : \"independentAxis\";\n const specificAxisStyle = theme?.[polarAxisType]?.style || theme?.[standardAxisType]?.style;\n const mergeStyles = () => {\n const styleNamespaces = [\"axis\", \"axisLabel\", \"grid\", \"parent\", \"tickLabels\", \"ticks\"];\n return styleNamespaces.reduce((memo, curr) => {\n memo[curr] = defaults({}, specificAxisStyle?.[curr], generalAxisStyle?.[curr]);\n return memo;\n }, {});\n };\n return generalAxisStyle && specificAxisStyle ? mergeStyles() : specificAxisStyle || generalAxisStyle;\n};\nconst getRadius = props => {\n const {\n left,\n right,\n top,\n bottom\n } = Helpers.getPadding(props.padding);\n const {\n width,\n height\n } = props;\n if (width === undefined || height === undefined) {\n throw new Error(\"VictoryPolarAxis: width and height properties are required for standalone axes.\");\n }\n return Math.min(width - left - right, height - top - bottom) / 2;\n};\nconst getRange = (props, axis) => {\n // Return the range from props if one is given.\n if (props.range && props.range[axis]) {\n return props.range[axis];\n } else if (props.range && Array.isArray(props.range)) {\n return props.range;\n }\n const axisType = getAxisType(props);\n if (axisType === \"angular\") {\n const startAngle = Helpers.degreesToRadians(props.startAngle);\n const endAngle = Helpers.degreesToRadians(props.endAngle);\n return [startAngle, endAngle];\n }\n const radius = getRadius(props);\n return [props.innerRadius || 0, radius];\n};\nexport const getScale = props => {\n const axis = Axis.getAxis(props);\n const scale = Scale.getBaseScale(props, axis);\n const domain = Axis.getDomain(props, axis) || scale.domain();\n const range = getRange(props, axis);\n scale.range(range);\n scale.domain(domain);\n return scale;\n};\nexport const getStyles = function (props, styleObject) {\n if (styleObject === void 0) {\n styleObject = {};\n }\n if (props.disableInlineStyles) {\n return {};\n }\n const style = props.style || {};\n const parentStyleProps = {\n height: \"auto\",\n width: \"100%\"\n };\n return {\n parent: defaults(parentStyleProps, style.parent, styleObject.parent),\n axis: defaults({}, style.axis, styleObject.axis),\n axisLabel: defaults({}, style.axisLabel, styleObject.axisLabel),\n grid: defaults({}, style.grid, styleObject.grid),\n ticks: defaults({}, style.ticks, styleObject.ticks),\n tickLabels: defaults({}, style.tickLabels, styleObject.tickLabels)\n };\n};\nconst getAxisAngle = props => {\n const {\n axisAngle,\n startAngle,\n dependentAxis\n } = props;\n const axis = Axis.getAxis(props);\n const axisValue = Axis.getAxisValue(props, axis);\n if (axisValue === undefined || !dependentAxis) {\n return axisAngle === undefined ? startAngle : axisAngle;\n }\n return Helpers.radiansToDegrees(axisValue);\n};\nconst getTickProps = (props, calculatedValues, tickValue, index\n// eslint-disable-next-line max-params\n) => {\n const {\n axisType,\n radius,\n scale,\n style,\n stringTicks,\n ticks,\n tickFormat,\n origin\n } = calculatedValues;\n const text = tickFormat(tickValue, index, ticks);\n const tick = stringTicks ? stringTicks[index] : tickValue;\n const {\n tickStyle\n } = getEvaluatedStyles(style, {\n tick,\n tickValue,\n index,\n ticks,\n stringTicks,\n radius,\n scale,\n axisType,\n text\n });\n const axisAngle = axisType === \"radial\" ? getAxisAngle(props) : undefined;\n const tickPadding = tickStyle.padding || tickStyle.size || 0;\n const padAngle = Helpers.degreesToRadians(90 - axisAngle);\n const tickAngle = axisType === \"angular\" ? scale(tickValue) : Helpers.degreesToRadians(-1 * axisAngle);\n const tickRadius = axisType === \"angular\" ? radius : scale(tickValue);\n return axisType === \"angular\" ? {\n index,\n datum: tick,\n style: tickStyle,\n x1: getPosition(tickRadius, tickAngle, \"x\") + origin.x,\n y1: getPosition(tickRadius, tickAngle, \"y\") + origin.y,\n x2: getPosition(tickRadius + tickPadding, tickAngle, \"x\") + origin.x,\n y2: getPosition(tickRadius + tickPadding, tickAngle, \"y\") + origin.y\n } : {\n index,\n datum: tick,\n style: tickStyle,\n x1: tickRadius * Math.cos(tickAngle) + Math.cos(padAngle) * tickPadding + origin.x,\n x2: tickRadius * Math.cos(tickAngle) - Math.cos(padAngle) * tickPadding + origin.x,\n y1: tickRadius * Math.sin(tickAngle) + Math.sin(padAngle) * tickPadding + origin.y,\n y2: tickRadius * Math.sin(tickAngle) - Math.sin(padAngle) * tickPadding + origin.y\n };\n};\nconst getTickLabelProps = (props, calculatedValues, tickValue, index\n// eslint-disable-next-line max-params\n) => {\n const {\n axisType,\n radius,\n tickFormat,\n style,\n scale,\n ticks,\n stringTicks,\n origin\n } = calculatedValues;\n const text = tickFormat(tickValue, index, ticks);\n const tick = stringTicks ? stringTicks[index] : tickValue;\n const {\n labelStyle\n } = getEvaluatedStyles(style, {\n text,\n tick,\n tickValue,\n index,\n ticks,\n stringTicks,\n radius,\n scale,\n axisType\n });\n const {\n tickLabelComponent\n } = props;\n const labelPlacement = tickLabelComponent?.props.labelPlacement ? tickLabelComponent.props.labelPlacement : props.labelPlacement;\n const tickPadding = labelStyle.padding || 0;\n const angularPadding = 0; // TODO: do some geometry\n const axisAngle = axisType === \"radial\" ? getAxisAngle(props) : undefined;\n const labelAngle = axisType === \"angular\" ? Helpers.radiansToDegrees(scale(tickValue)) : axisAngle + angularPadding;\n const textAngle = labelStyle.angle === undefined ? LabelHelpers.getPolarAngle(Object.assign({}, props, {\n labelPlacement\n }), labelAngle) : labelStyle.angle;\n const labelRadius = axisType === \"angular\" ? radius + tickPadding : scale(tickValue);\n const textAnchor = labelStyle.textAnchor || LabelHelpers.getPolarTextAnchor(Object.assign({}, props, {\n labelPlacement\n }), labelAngle);\n return {\n index,\n datum: tick,\n style: labelStyle,\n angle: textAngle,\n textAnchor,\n text,\n x: labelRadius * Math.cos(Helpers.degreesToRadians(labelAngle)) + origin.x,\n y: -labelRadius * Math.sin(Helpers.degreesToRadians(labelAngle)) + origin.y\n };\n};\nconst getGridProps = (props, calculatedValues, tickValue, index\n// eslint-disable-next-line max-params\n) => {\n const {\n axisType,\n radius,\n style,\n scale,\n stringTicks,\n ticks,\n tickFormat,\n origin\n } = calculatedValues;\n const text = tickFormat(tickValue, index, ticks);\n const {\n startAngle,\n endAngle,\n innerRadius = 0\n } = props;\n const tick = stringTicks ? stringTicks[index] : tickValue;\n const {\n gridStyle\n } = getEvaluatedStyles(style, {\n tick,\n tickValue,\n index,\n ticks,\n stringTicks,\n radius,\n scale,\n axisType,\n text\n });\n const angle = scale(tickValue);\n return axisType === \"angular\" ? {\n index,\n datum: tick,\n style: gridStyle,\n x1: getPosition(radius, angle, \"x\") + origin.x,\n y1: getPosition(radius, angle, \"y\") + origin.y,\n x2: getPosition(innerRadius, angle, \"x\") + origin.x,\n y2: getPosition(innerRadius, angle, \"y\") + origin.y\n } : {\n style: gridStyle,\n index,\n datum: tick,\n cx: origin.x,\n cy: origin.y,\n r: scale(tickValue),\n startAngle,\n endAngle\n };\n};\nconst getAxisLabelProps = (props, calculatedValues) => {\n const {\n axisType,\n radius,\n style,\n origin\n } = calculatedValues;\n const {\n axisLabelComponent\n } = props;\n if (axisType !== \"radial\") {\n return {};\n }\n const labelPlacement = axisLabelComponent?.props.labelPlacement ? axisLabelComponent.props.labelPlacement : props.labelPlacement;\n const labelStyle = style && style.axisLabel || {};\n const axisAngle = axisType === \"radial\" ? getAxisAngle(props) : undefined;\n const textAngle = labelStyle.angle === undefined ? LabelHelpers.getPolarAngle(Object.assign({}, props, {\n labelPlacement\n }), axisAngle) : labelStyle.angle;\n const labelRadius = radius + (labelStyle.padding || 0);\n const textAnchor = labelStyle.textAnchor || LabelHelpers.getPolarTextAnchor(Object.assign({}, props, {\n labelPlacement\n }), axisAngle);\n const verticalAnchor = labelStyle.verticalAnchor || LabelHelpers.getPolarVerticalAnchor(Object.assign({}, props, {\n labelPlacement\n }), axisAngle);\n return {\n style: labelStyle,\n angle: textAngle,\n textAnchor,\n verticalAnchor,\n text: props.label,\n x: getPosition(labelRadius, Helpers.degreesToRadians(axisAngle), \"x\") + origin.x,\n y: getPosition(labelRadius, Helpers.degreesToRadians(axisAngle), \"y\") + origin.y\n };\n};\nconst getAxisProps = (modifiedProps, calculatedValues) => {\n const {\n style,\n axisType,\n radius,\n origin\n } = calculatedValues;\n const {\n startAngle,\n endAngle,\n innerRadius = 0\n } = modifiedProps;\n const axisAngle = axisType === \"radial\" ? Helpers.degreesToRadians(getAxisAngle(modifiedProps)) : undefined;\n return axisType === \"radial\" ? {\n style: style.axis,\n x1: getPosition(innerRadius, axisAngle, \"x\") + origin.x,\n x2: getPosition(radius, axisAngle, \"x\") + origin.x,\n y1: getPosition(innerRadius, axisAngle, \"y\") + origin.y,\n y2: getPosition(radius, axisAngle, \"y\") + origin.y\n } : {\n style: style.axis,\n cx: origin.x,\n cy: origin.y,\n r: radius,\n startAngle,\n endAngle\n };\n};\nconst getCalculatedValues = initialProps => {\n const props = Object.assign({\n polar: true\n }, initialProps);\n const defaultStyles = getStyleObject(props);\n const style = getStyles(props, defaultStyles);\n const padding = Helpers.getPadding(props.padding);\n const axis = Axis.getAxis(props);\n const axisType = getAxisType(props);\n const stringTicks = Axis.stringTicks(props) ? props.tickValues : undefined;\n const domain = Axis.getDomain(props, axis);\n const range = getRange(props, axis);\n const scale = getScale(props);\n const initialTicks = Axis.getTicks(props, scale);\n const ticks = axisType === \"angular\" ? filterTicks(initialTicks, scale) : initialTicks;\n const tickFormat = Axis.getTickFormat(props, scale);\n const radius = getRadius(props);\n\n // @ts-expect-error props is not typed but contains width and height\n const origin = Helpers.getPolarOrigin(props);\n return {\n axis,\n style,\n padding,\n stringTicks,\n axisType,\n scale,\n ticks,\n tickFormat,\n domain,\n range,\n radius,\n origin\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const props = Axis.modifyProps(initialProps, fallbackProps);\n const calculatedValues = getCalculatedValues(props);\n const {\n style,\n scale,\n ticks,\n domain\n } = calculatedValues;\n const {\n width,\n height,\n standalone,\n theme,\n name\n } = props;\n const axisProps = getAxisProps(props, calculatedValues);\n const axisLabelProps = getAxisLabelProps(props, calculatedValues);\n const initialChildProps = {\n parent: {\n style: style.parent,\n ticks,\n scale,\n width,\n height,\n domain,\n standalone,\n theme,\n name\n }\n };\n return ticks.reduce((childProps, tick, index) => {\n childProps[index] = {\n axis: axisProps,\n axisLabel: axisLabelProps,\n ticks: getTickProps(props, calculatedValues, tick, index),\n tickLabels: getTickLabelProps(props, calculatedValues, tick, index),\n grid: getGridProps(props, calculatedValues, tick, index)\n };\n return childProps;\n }, initialChildProps);\n};","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { VictoryLabel, VictoryContainer, VictoryTheme, LineSegment, addEvents, Arc, Axis } from \"victory-core\";\nimport { getScale, getStyles, getBaseProps } from \"./helper-methods\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nclass VictoryPolarAxisBase extends React.Component {\n static animationWhitelist = [\"style\", \"domain\", \"range\", \"tickCount\", \"tickValues\", \"padding\", \"width\", \"height\"];\n static displayName = \"VictoryAxis\";\n static role = \"axis\";\n static defaultTransitions = {\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n };\n static defaultProps = {\n axisComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n axisLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n circularAxisComponent: /*#__PURE__*/React.createElement(Arc, null),\n circularGridComponent: /*#__PURE__*/React.createElement(Arc, null),\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n endAngle: 360,\n gridComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n labelPlacement: \"parallel\",\n startAngle: 0,\n standalone: true,\n theme: VictoryTheme.grayscale,\n tickComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n tickLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null)\n };\n static getDomain = Axis.getDomain;\n static getAxis = Axis.getAxis;\n static getScale(props) {\n return getScale(props);\n }\n static getStyles(props) {\n return getStyles(props, fallbackProps.style);\n }\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"axisComponent\", \"circularAxisComponent\", \"groupComponent\", \"containerComponent\", \"tickComponent\", \"tickLabelComponent\", \"gridComponent\", \"circularGridComponent\"];\n renderAxisLine(props) {\n const {\n dependentAxis\n } = props;\n const axisComponent = dependentAxis ? props.axisComponent : props.circularAxisComponent;\n const axisProps = this.getComponentProps(axisComponent, \"axis\", 0);\n return /*#__PURE__*/React.cloneElement(axisComponent, axisProps);\n }\n renderLabel(props) {\n const {\n axisLabelComponent,\n dependentAxis,\n label\n } = props;\n if (!label || !dependentAxis) {\n return null;\n }\n const axisLabelProps = this.getComponentProps(axisLabelComponent, \"axisLabel\", 0);\n return /*#__PURE__*/React.cloneElement(axisLabelComponent, axisLabelProps);\n }\n renderAxis(props) {\n const {\n tickComponent,\n tickLabelComponent,\n name\n } = props;\n const shouldRender = componentProps => {\n const {\n style = {},\n events = {}\n } = componentProps;\n const visible = style.stroke !== \"transparent\" && style.stroke !== \"none\" && style.strokeWidth !== 0;\n return visible || !isEmpty(events);\n };\n const axisType = props.dependentAxis ? \"radial\" : \"angular\";\n const gridComponent = axisType === \"radial\" ? props.circularGridComponent : props.gridComponent;\n const tickComponents = this.dataKeys.map((key, index) => {\n const tickProps = Object.assign({\n key: `${name}-tick-${key}`\n }, this.getComponentProps(tickComponent, \"ticks\", index));\n const TickComponent = /*#__PURE__*/React.cloneElement(tickComponent, tickProps);\n return shouldRender(TickComponent.props) ? TickComponent : undefined;\n }).filter(Boolean);\n const gridComponents = this.dataKeys.map((key, index) => {\n const gridProps = Object.assign({\n key: `${name}-grid-${key}`\n }, this.getComponentProps(gridComponent, \"grid\", index));\n const GridComponent = /*#__PURE__*/React.cloneElement(gridComponent, gridProps);\n return shouldRender(GridComponent.props) ? GridComponent : undefined;\n }).filter(Boolean);\n const tickLabelComponents = this.dataKeys.map((key, index) => {\n const tickLabelProps = Object.assign({\n key: `${name}-tick-${key}`\n }, this.getComponentProps(tickLabelComponent, \"tickLabels\", index));\n return /*#__PURE__*/React.cloneElement(tickLabelComponent, tickLabelProps);\n });\n const axis = this.renderAxisLine(props);\n const axisLabel = this.renderLabel(props);\n const children = [axis, axisLabel, ...tickComponents, ...gridComponents, ...tickLabelComponents];\n return this.renderGroup(props, children);\n }\n\n // Overridden in victory-native\n renderGroup(props, children) {\n const {\n groupComponent\n } = props;\n return /*#__PURE__*/React.cloneElement(groupComponent, {}, children);\n }\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist\n } = VictoryPolarAxis;\n const props = Axis.modifyProps(this.props, fallbackProps);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const children = this.renderAxis(props);\n return props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n }\n}\nconst options = {\n components: [{\n name: \"axis\",\n index: 0\n }, {\n name: \"axisLabel\",\n index: 0\n }, {\n name: \"grid\"\n }, {\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"ticks\"\n }, {\n name: \"tickLabels\"\n }]\n};\nexport const VictoryPolarAxis = addEvents(VictoryPolarAxisBase, options);","import React from \"react\";\nimport { Helpers, Scale, Axis, Wrapper } from \"victory-core\";\nimport defaults from \"lodash/defaults\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nfunction getAxisProps(child, props, calculatedProps) {\n const {\n domain,\n scale,\n stringMap,\n categories,\n horizontal\n } = calculatedProps;\n return {\n stringMap,\n horizontal,\n categories,\n startAngle: props.startAngle,\n endAngle: props.endAngle,\n innerRadius: props.innerRadius,\n domain,\n scale\n };\n}\nexport function getBackgroundWithProps(props, calculatedProps) {\n const backgroundElement = props.backgroundComponent;\n const height = props.polar ? calculatedProps.range.y[1] : calculatedProps.range.y[0] - calculatedProps.range.y[1];\n const width = calculatedProps.range.x[1] - calculatedProps.range.x[0];\n const xScale = props.horizontal ? calculatedProps.scale.y.range()[0] : calculatedProps.scale.x.range()[0];\n const yScale = props.horizontal ? calculatedProps.scale.x.range()[1] : calculatedProps.scale.y.range()[1];\n const xCoordinate = props.polar ? calculatedProps.origin.x : xScale;\n const yCoordinate = props.polar ? calculatedProps.origin.y : yScale;\n const parentName = props.name || \"chart\";\n const backgroundProps = {\n height,\n polar: props.polar,\n scale: calculatedProps.scale,\n style: props.style.background,\n x: xCoordinate,\n y: yCoordinate,\n key: `${parentName}-background`,\n width\n };\n return /*#__PURE__*/React.cloneElement(backgroundElement, defaults({}, backgroundElement.props, backgroundProps));\n}\nfunction getChildProps(child, props, calculatedProps) {\n const axisChild = Axis.findAxisComponents([child]);\n if (axisChild.length > 0) {\n return getAxisProps(axisChild[0], props, calculatedProps);\n }\n const {\n categories,\n domain,\n range,\n scale,\n stringMap,\n horizontal\n } = calculatedProps;\n return {\n categories,\n domain,\n range,\n scale,\n stringMap,\n horizontal\n };\n}\nfunction getStyles(props) {\n const styleProps = props.style && props.style.parent;\n return {\n parent: defaults({}, styleProps, {\n height: \"100%\",\n width: \"100%\",\n userSelect: \"none\"\n })\n };\n}\nexport function getCalculatedProps(initialProps, childComponents) {\n const style = getStyles(initialProps);\n const props = Helpers.modifyProps(initialProps, fallbackProps, \"chart\");\n const {\n horizontal,\n polar\n } = props;\n const allStrings = Wrapper.getStringsFromChildren(props, childComponents);\n const categories = Wrapper.getCategories(props, childComponents, allStrings);\n const stringMap = createStringMap(props, childComponents, allStrings);\n const domain = {\n x: getDomain(Object.assign({}, props, {\n categories\n }), \"x\", childComponents),\n y: getDomain(Object.assign({}, props, {\n categories\n }), \"y\", childComponents)\n };\n const range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const baseScale = {\n x: Scale.getScaleFromProps(props, \"x\") || Wrapper.getScale(props, \"x\"),\n y: Scale.getScaleFromProps(props, \"y\") || Wrapper.getScale(props, \"y\")\n };\n const scale = {\n x: baseScale.x.domain(domain.x).range(horizontal ? range.y : range.x),\n y: baseScale.y.domain(domain.y).range(horizontal ? range.x : range.y)\n };\n const origin = polar ? Helpers.getPolarOrigin(props) : Axis.getOrigin(domain);\n const padding = Helpers.getPadding(props.padding);\n return {\n categories,\n domain,\n range,\n horizontal,\n scale,\n stringMap,\n style,\n origin,\n padding\n };\n}\nexport function getChildren(props, childComponents, calculatedProps) {\n const children = childComponents || getChildComponents(props);\n const newCalculatedProps = calculatedProps || getCalculatedProps(props, children);\n const baseStyle = newCalculatedProps.style.parent;\n const {\n height,\n polar,\n theme,\n width\n } = props;\n const {\n origin,\n horizontal\n } = newCalculatedProps;\n const parentName = props.name || \"chart\";\n return children.filter(React.isValidElement).map((child, index) => {\n const role = child.type && child.type.role;\n const style = Array.isArray(child.props.style) ? child.props.style : defaults({}, child.props.style, {\n parent: baseStyle\n });\n const childProps = getChildProps(child, props, newCalculatedProps);\n const name = child.props.name || `${parentName}-${role}-${index}`;\n const newProps = defaults({\n horizontal,\n height,\n polar,\n theme,\n width,\n style,\n name,\n origin: polar ? origin : undefined,\n padding: newCalculatedProps.padding,\n key: `${name}-key-${index}`,\n standalone: false\n }, childProps);\n return /*#__PURE__*/React.cloneElement(child, newProps);\n });\n}\nexport const getChildComponents = (props, defaultAxes) => {\n let childComponents = React.Children.toArray(props.children);\n if (childComponents.length === 0) {\n childComponents.push(defaultAxes.independent, defaultAxes.dependent);\n } else {\n const axisComponents = {\n dependent: Axis.getAxisComponentsWithParent(childComponents, \"dependent\"),\n independent: Axis.getAxisComponentsWithParent(childComponents, \"independent\")\n };\n if (axisComponents.dependent.length === 0 && axisComponents.independent.length === 0) {\n childComponents = props.prependDefaultAxes ? [defaultAxes.independent, defaultAxes.dependent].concat(childComponents) : childComponents.concat([defaultAxes.independent, defaultAxes.dependent]);\n }\n }\n return childComponents;\n};\nconst getDomain = (props, axis, childComponents) => {\n const children = childComponents || React.Children.toArray(props.children);\n const domain = Wrapper.getDomain(props, axis, children);\n const axisComponent = Axis.getAxisComponent(children, axis);\n const invertDomain = axisComponent && axisComponent.props && axisComponent.props.invertAxis;\n return invertDomain ? domain.concat().reverse() : domain;\n};\nconst createStringMap = (props, childComponents, allStrings) => {\n const x = !allStrings.x || allStrings.x.length === 0 ? null : allStrings.x.reduce((memo, string, index) => {\n memo[string] = index + 1;\n return memo;\n }, {});\n const y = !allStrings.y || allStrings.y.length === 0 ? null : allStrings.y.reduce((memo, string, index) => {\n memo[string] = index + 1;\n return memo;\n }, {});\n return {\n x,\n y\n };\n};","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { Background, Helpers, Hooks, UserProps, VictoryContainer, VictoryTheme, Wrapper } from \"victory-core\";\nimport { VictorySharedEvents } from \"victory-shared-events\";\nimport { VictoryAxis } from \"victory-axis\";\nimport { VictoryPolarAxis } from \"victory-polar-axis\";\nimport { getBackgroundWithProps, getChildComponents, getCalculatedProps, getChildren } from \"./helper-methods\";\nimport isEqual from \"react-fast-compare\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nconst defaultProps = {\n backgroundComponent: /*#__PURE__*/React.createElement(Background, null),\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n defaultAxes: {\n independent: /*#__PURE__*/React.createElement(VictoryAxis, null),\n dependent: /*#__PURE__*/React.createElement(VictoryAxis, {\n dependentAxis: true\n })\n },\n defaultPolarAxes: {\n independent: /*#__PURE__*/React.createElement(VictoryPolarAxis, null),\n dependent: /*#__PURE__*/React.createElement(VictoryPolarAxis, {\n dependentAxis: true\n })\n },\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nconst VictoryChartImpl = initialProps => {\n const propsWithDefaults = React.useMemo(() => defaults({}, initialProps, defaultProps), [initialProps]);\n const role = \"chart\";\n const {\n getAnimationProps,\n setAnimationState,\n getProps\n } = Hooks.useAnimationState();\n const props = getProps(propsWithDefaults);\n const modifiedProps = Helpers.modifyProps(props, fallbackProps, role);\n const {\n desc,\n eventKey,\n containerComponent,\n standalone,\n groupComponent,\n externalEventMutations,\n width,\n height,\n theme,\n polar,\n name,\n title\n } = modifiedProps;\n const axes = props.polar ? modifiedProps.defaultPolarAxes : modifiedProps.defaultAxes;\n const childComponents = React.useMemo(() => getChildComponents(modifiedProps, axes), [modifiedProps, axes]);\n const calculatedProps = React.useMemo(() => getCalculatedProps(modifiedProps, childComponents), [modifiedProps, childComponents]);\n const {\n domain,\n scale,\n style,\n origin,\n horizontal\n } = calculatedProps;\n const newChildren = React.useMemo(() => {\n const children = getChildren(props, childComponents, calculatedProps);\n const mappedChildren = children.map((child, index) => {\n const childProps = Object.assign({\n animate: getAnimationProps(props, child, index)\n }, child.props);\n return /*#__PURE__*/React.cloneElement(child, childProps);\n });\n if (props.style && props.style.background) {\n const backgroundComponent = getBackgroundWithProps(props, calculatedProps);\n mappedChildren.unshift(backgroundComponent);\n }\n return mappedChildren;\n }, [getAnimationProps, childComponents, props, calculatedProps]);\n const containerProps = React.useMemo(() => {\n if (standalone) {\n return {\n desc,\n domain,\n width,\n height,\n horizontal,\n name,\n origin: polar ? origin : undefined,\n polar,\n theme,\n title,\n scale,\n standalone,\n style: style.parent\n };\n }\n return {};\n }, [desc, domain, height, horizontal, name, origin, polar, scale, standalone, style, title, theme, width]);\n const container = React.useMemo(() => {\n if (standalone) {\n const defaultContainerProps = defaults({}, containerComponent.props, containerProps, UserProps.getSafeUserProps(propsWithDefaults));\n return /*#__PURE__*/React.cloneElement(containerComponent, defaultContainerProps);\n }\n return groupComponent;\n }, [groupComponent, standalone, containerComponent, containerProps, propsWithDefaults]);\n const events = React.useMemo(() => {\n return Wrapper.getAllEvents(props);\n }, [props]);\n const previousProps = Hooks.usePreviousProps(propsWithDefaults);\n React.useEffect(() => {\n // This is called before dismount to keep state in sync\n return () => {\n if (propsWithDefaults.animate) {\n setAnimationState(previousProps, propsWithDefaults);\n }\n };\n }, [setAnimationState, previousProps, propsWithDefaults]);\n if (!isEmpty(events)) {\n return /*#__PURE__*/React.createElement(VictorySharedEvents, {\n container: container,\n eventKey: eventKey,\n events: events,\n externalEventMutations: externalEventMutations\n }, newChildren);\n }\n return /*#__PURE__*/React.cloneElement(container, container.props, newChildren);\n};\nexport const VictoryChart = /*#__PURE__*/React.memo(VictoryChartImpl, isEqual);\nVictoryChart.displayName = \"VictoryChart\";\n// @ts-expect-error FIXME: Does this \"expectedComponents\" do anything?\nVictoryChart.expectedComponents = [\"groupComponent\", \"containerComponent\"];","export const linear = t => +t;\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import isPlainObject from \"lodash/isPlainObject\";\nimport orderBy from \"lodash/orderBy\";\nimport { interpolate } from \"victory-vendor/d3-interpolate\";\nexport const isInterpolatable = function (obj) {\n // d3 turns null into 0 and undefined into NaN, which we don't want.\n if (obj !== null) {\n switch (typeof obj) {\n case \"undefined\":\n return false;\n case \"number\":\n // The standard `isNaN` is fine in this case since we already know the\n // type is number.\n return !isNaN(obj) && obj !== Number.POSITIVE_INFINITY && obj !== Number.NEGATIVE_INFINITY;\n case \"string\":\n // d3 might not *actually* be able to interpolate the string, but it\n // won't cause any issues to let it try.\n return true;\n case \"boolean\":\n // d3 turns Booleans into integers, which we don't want. Sure, we could\n // interpolate from 0 -> 1, but we'd be sending a non-Boolean to\n // something expecting a Boolean.\n return false;\n case \"object\":\n // Don't try to interpolate class instances (except Date or Array).\n return obj instanceof Date || Array.isArray(obj) || isPlainObject(obj);\n case \"function\":\n // Careful! There may be extra properties on function objects that the\n // component expects to access - for instance, it may be a `d3.scale()`\n // function, which has its own methods attached. We don't know if the\n // component is only going to call the function (in which case it's\n // safely interpolatable) or if it's going to access special properties\n // (in which case our function generated from `interpolateFunction` will\n // most likely cause an error). We could check for enumerable properties\n // on the function object here to see if it's a \"plain\" function, but\n // let's just require that components prevent such function props from\n // being animated in the first place.\n return true;\n }\n }\n return false;\n};\n\n/**\n * Interpolate immediately to the end value at the given step `when`.\n * Some nicer default behavior might be to jump at the halfway point or return\n * `a` if `t` is 0 (instead of always returning `b`). But d3's default\n * interpolator does not do these things:\n *\n * d3.interpolate('aaa', 'bbb')(0) === 'bbb'\n *\n * ...and things might get wonky if we don't replicate that behavior.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @param {Number} when - Step value (0 to 1) at which to jump to `b`.\n * @returns {Function} An interpolation function.\n */\nexport const interpolateImmediate = function (a, b, when) {\n if (when === void 0) {\n when = 0;\n }\n return function (t) {\n return t < when ? a : b;\n };\n};\n\n/**\n * Interpolate to or from a function. The interpolated value will be a function\n * that calls `a` (if it's a function) and `b` (if it's a function) and calls\n * `d3.interpolate` on the resulting values. Note that our function won't\n * necessarily be called (that's up to the component this eventually gets\n * passed to) - but if it does get called, it will return an appropriately\n * interpolated value.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @returns {Function} An interpolation function.\n */\nexport const interpolateFunction = function (a, b) {\n return function (t) {\n if (t >= 1) {\n return b;\n }\n return function () {\n /* eslint-disable prefer-rest-params */\n const aval = typeof a === \"function\" ? a.apply(this, arguments) : a;\n const bval = typeof b === \"function\" ? b.apply(this, arguments) : b;\n return interpolate(aval, bval)(t);\n };\n };\n};\n\n/**\n * Interpolate to or from an object. This method is a modification of the object interpolator in\n * d3-interpolate https://github.com/d3/d3-interpolate/blob/master/src/object.js. This interpolator\n * differs in that it uses our custom interpolators when interpolating the value of each property in\n * an object. This allows the correct interpolation of nested objects, including styles\n *\n * @param {any} startValue - Start value.\n * @param {any} endValue - End value.\n * @returns {Function} An interpolation function.\n */\nexport const interpolateObject = function (startValue, endValue) {\n const interpolateTypes = (x, y) => {\n if (x === y || !isInterpolatable(x) || !isInterpolatable(y)) {\n return interpolateImmediate(x, y);\n }\n if (typeof x === \"function\" || typeof y === \"function\") {\n return interpolateFunction(x, y);\n }\n if (typeof x === \"object\" && isPlainObject(x) || typeof y === \"object\" && isPlainObject(y)) {\n return interpolateObject(x, y);\n }\n return interpolate(x, y);\n };\n\n // When the value is an array, attempt to sort by \"key\" so that animating nodes may be identified\n // based on \"key\" instead of index\n const keyData = val => {\n return Array.isArray(val) ? orderBy(val, \"key\") : val;\n };\n const i = {};\n const c = {};\n let a = startValue;\n let b = endValue;\n let k;\n if (a === null || typeof a !== \"object\") {\n a = {};\n }\n if (b === null || typeof b !== \"object\") {\n b = {};\n }\n for (k in b) {\n if (k in a) {\n i[k] = interpolateTypes(keyData(a[k]), keyData(b[k]));\n } else {\n c[k] = b[k];\n }\n }\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n return c;\n };\n};\nexport const interpolateString = function (a, b) {\n const format = val => {\n return typeof val === \"string\" ? val.replace(/,/g, \"\") : val;\n };\n return interpolate(format(a), format(b));\n};\n\n/**\n * By default, the list of interpolators used by `d3.interpolate` has a few\n * downsides:\n *\n * - `null` values get turned into 0.\n * - `undefined`, `function`, and some other value types get turned into NaN.\n * - Boolean types get turned into numbers, which probably will be meaningless\n * to whatever is consuming them.\n * - It tries to interpolate between identical start and end values, doing\n * unnecessary calculations that sometimes result in floating point rounding\n * errors.\n *\n * If only the default interpolators are used, `VictoryAnimation` will happily\n * pass down NaN (and other bad) values as props to the wrapped component.\n * The component will then either use the incorrect values or complain that it\n * was passed props of the incorrect type. This custom interpolator is added\n * using the `d3.interpolators` API, and prevents such cases from happening\n * for most values.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @returns {Function|undefined} An interpolation function, if necessary.\n */\nexport const victoryInterpolator = function (a, b) {\n // If the values are strictly equal, or either value is not interpolatable,\n // just use either the start value `a` or end value `b` at every step, as\n // there is no reasonable in-between value.\n if (a === b || !isInterpolatable(a) || !isInterpolatable(b)) {\n return interpolateImmediate(a, b);\n }\n if (typeof a === \"function\" || typeof b === \"function\") {\n return interpolateFunction(a, b);\n }\n if (isPlainObject(a) || isPlainObject(b)) {\n // @ts-expect-error These generics are tough, but they work :)\n return interpolateObject(a, b);\n }\n if (typeof a === \"string\" || typeof b === \"string\") {\n return interpolateString(a, b);\n }\n // @ts-expect-error These generics are tough, but they work :)\n return interpolate(a, b);\n};","import React from \"react\";\nimport * as d3Ease from \"victory-vendor/d3-ease\";\nimport { victoryInterpolator } from \"./util\";\nimport TimerContext from \"../victory-util/timer-context\";\n\n/**\n * Single animation object to interpolate\n */\n\n/**\n * Animation styles to interpolate\n */\n\n/** d3-ease changed the naming scheme for ease from \"linear\" -> \"easeLinear\" etc. */\nconst formatAnimationName = name => {\n const capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);\n return `ease${capitalizedName}`;\n};\nconst DEFAULT_DURATION = 1000;\nexport const VictoryAnimation = _ref => {\n let {\n duration = DEFAULT_DURATION,\n easing = \"quadInOut\",\n delay = 0,\n data,\n children,\n onEnd\n } = _ref;\n const [state, setState] = React.useState({\n data: Array.isArray(data) ? data[0] : data,\n animationInfo: {\n progress: 0,\n animating: false\n }\n });\n const timer = React.useContext(TimerContext).animationTimer;\n const queue = React.useRef(Array.isArray(data) ? data.slice(1) : []);\n const interpolator = React.useRef(null);\n const loopID = React.useRef(undefined);\n const ease = d3Ease[formatAnimationName(easing)];\n React.useEffect(() => {\n // Length check prevents us from triggering `onEnd` in `traverseQueue`.\n if (queue.current.length) {\n traverseQueue();\n }\n\n // Clean up the animation loop\n return () => {\n if (loopID.current) {\n timer.unsubscribe(loopID.current);\n } else {\n timer.stop();\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n // If the previous animation didn't finish, force it to complete before starting a new one\n if (interpolator.current && state.animationInfo && state.animationInfo.progress < 1) {\n setState({\n data: interpolator.current(1),\n animationInfo: {\n progress: 1,\n animating: false,\n terminating: true\n }\n });\n } else {\n // Cancel existing loop if it exists\n timer.unsubscribe(loopID.current);\n // Set the tween queue to the new data\n queue.current = Array.isArray(data) ? data : [data];\n // Start traversing the tween queue\n traverseQueue();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [data]);\n const traverseQueue = () => {\n if (queue.current.length) {\n const nextData = queue.current[0];\n\n // Compare cached version to next props\n interpolator.current = victoryInterpolator(state.data, nextData);\n\n // Reset step to zero\n if (delay) {\n setTimeout(() => {\n loopID.current = timer.subscribe(functionToBeRunEachFrame, duration);\n }, delay);\n } else {\n loopID.current = timer.subscribe(functionToBeRunEachFrame, duration);\n }\n } else if (onEnd) {\n onEnd();\n }\n };\n const functionToBeRunEachFrame = elapsed => {\n if (!interpolator.current) return;\n\n // Step can generate imprecise values, sometimes greater than 1\n // if this happens set the state to 1 and return, cancelling the timer\n const step = duration ? elapsed / duration : 1;\n if (step >= 1) {\n setState({\n data: interpolator.current(1),\n animationInfo: {\n progress: 1,\n animating: false,\n terminating: true\n }\n });\n if (loopID.current) {\n timer.unsubscribe(loopID.current);\n }\n queue.current.shift();\n traverseQueue();\n return;\n }\n\n // If we're not at the end of the timer, set the state by passing\n // current step value that's transformed by the ease function to the\n // interpolator, which is cached for performance whenever props are received\n setState({\n data: interpolator.current(ease(step)),\n animationInfo: {\n progress: step,\n animating: step < 1\n }\n });\n };\n return children(state.data, state.animationInfo);\n};","import React from \"react\";\nexport const ClipPath = props => /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: props.clipId?.toString()\n}, props.children));","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport uniqueId from \"lodash/uniqueId\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as UserProps from \"../victory-util/user-props\";\nimport { ClipPath } from \"../victory-primitives/clip-path\";\nimport { Circle } from \"../victory-primitives/circle\";\nimport { Rect } from \"../victory-primitives/rect\";\nexport class VictoryClipContainer extends React.Component {\n static displayName = \"VictoryClipContainer\";\n static role = \"container\";\n static defaultProps = {\n circleComponent: /*#__PURE__*/React.createElement(Circle, null),\n rectComponent: /*#__PURE__*/React.createElement(Rect, null),\n clipPathComponent: /*#__PURE__*/React.createElement(ClipPath, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n };\n constructor(props) {\n super(props);\n this.state = {\n clipId: props?.clipId\n };\n }\n\n // The clipId state is used to prevent hydration mismatches between the server and client (issue #2941).\n // A better alternative would be to utilize React 18's useId hook instead of uniqueId, which would avoid needing state for this purpose.\n // However, this component currently supports React 16 at the time of writing, so this workaround is necessary.\n componentDidMount() {\n if (!this.state.clipId) {\n this.setState({\n clipId: uniqueId(\"victory-clip-\")\n });\n }\n }\n calculateAttributes(props) {\n const {\n polar,\n origin,\n clipWidth = 0,\n clipHeight = 0,\n translateX = 0,\n translateY = 0\n } = props;\n const clipPadding = Helpers.getPadding(props.clipPadding);\n const radius = props.radius || Helpers.getRadius(props);\n return {\n x: (polar ? origin.x : translateX) - clipPadding.left,\n y: (polar ? origin.y : translateY) - clipPadding.top,\n width: Math.max((polar ? radius : clipWidth) + clipPadding.left + clipPadding.right, 0),\n height: Math.max((polar ? radius : clipHeight) + clipPadding.top + clipPadding.bottom, 0)\n };\n }\n renderClippedGroup(props, clipId) {\n const userProps = UserProps.getSafeUserProps(props);\n const {\n style,\n events,\n transform,\n children,\n className,\n groupComponent,\n tabIndex\n } = props;\n const clipComponent = this.renderClipComponent(props, clipId);\n const groupProps = Object.assign({\n className,\n style,\n transform,\n key: `clipped-group-${clipId}`,\n clipPath: `url(#${clipId})`\n }, events);\n return /*#__PURE__*/React.cloneElement(groupComponent, {\n ...groupProps,\n tabIndex,\n ...userProps\n }, [clipComponent, ...React.Children.toArray(children)]);\n }\n renderGroup(props) {\n const {\n style,\n events,\n transform,\n children,\n className,\n groupComponent,\n tabIndex\n } = props;\n return /*#__PURE__*/React.cloneElement(groupComponent, Object.assign({\n className,\n style,\n transform,\n \"aria-label\": props[\"aria-label\"],\n tabIndex\n }, events), children);\n }\n renderClipComponent(props, clipId) {\n const {\n polar,\n origin,\n clipWidth = 0,\n clipHeight = 0,\n translateX = 0,\n translateY = 0,\n circleComponent,\n rectComponent,\n clipPathComponent\n } = props;\n const {\n top,\n bottom,\n left,\n right\n } = Helpers.getPadding(props.clipPadding);\n let child;\n if (polar) {\n const radius = props.radius || Helpers.getRadius(props);\n const circleProps = {\n r: Math.max(radius + left + right, radius + top + bottom, 0),\n cx: origin.x - left,\n cy: origin.y - top\n };\n child = /*#__PURE__*/React.cloneElement(circleComponent, circleProps);\n } else {\n const rectProps = {\n x: translateX - left,\n y: translateY - top,\n width: Math.max(clipWidth + left + right, 0),\n height: Math.max(clipHeight + top + bottom, 0)\n };\n child = /*#__PURE__*/React.cloneElement(rectComponent, rectProps);\n }\n return /*#__PURE__*/React.cloneElement(clipPathComponent, Object.assign({\n key: `clip-path-${clipId}`\n }, props, {\n clipId\n }), child);\n }\n getClipValue(props, axis) {\n const clipValues = {\n x: props.clipWidth,\n y: props.clipHeight\n };\n if (clipValues[axis] !== undefined) {\n return clipValues[axis];\n }\n const range = Helpers.getRange(props, axis);\n return range ? Math.abs(range[0] - range[1]) || undefined : undefined;\n }\n getTranslateValue(props, axis) {\n const translateValues = {\n x: props.translateX,\n y: props.translateY\n };\n if (translateValues[axis] !== undefined) {\n return translateValues[axis];\n }\n const range = Helpers.getRange(props, axis);\n return range ? Math.min(...range) : undefined;\n }\n render() {\n const clipHeight = this.getClipValue(this.props, \"y\");\n const clipWidth = this.getClipValue(this.props, \"x\");\n if (clipWidth === undefined || clipHeight === undefined) {\n return this.renderGroup(this.props);\n }\n const translateX = this.getTranslateValue(this.props, \"x\");\n const translateY = this.getTranslateValue(this.props, \"y\");\n const clipProps = defaults({}, this.props, {\n clipHeight,\n clipWidth,\n translateX,\n translateY\n });\n return this.renderClippedGroup(clipProps, this.state.clipId);\n }\n}","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nexport const Portal = /*#__PURE__*/React.forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n ref: ref\n }, props));\n});","import React from \"react\";\nimport { usePortalContext } from \"./portal-context\";\nexport const PortalOutlet = _ref => {\n let {\n as: portalComponent,\n ...props\n } = _ref;\n const portalContext = usePortalContext();\n if (!portalContext) {\n return null;\n }\n const children = Array.from(portalContext.children.values());\n return /*#__PURE__*/React.cloneElement(portalComponent, props, children);\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { useRef } from \"react\";\nimport uniqueId from \"lodash/uniqueId\";\nimport { Portal } from \"../victory-portal/portal\";\nimport * as UserProps from \"../victory-util/user-props\";\nimport { mergeRefs } from \"../victory-util\";\nimport { PortalOutlet } from \"../victory-portal/portal-outlet\";\nimport { PortalProvider } from \"../victory-portal/portal-context\";\nconst defaultProps = {\n className: \"VictoryContainer\",\n portalComponent: /*#__PURE__*/React.createElement(Portal, null),\n portalZIndex: 99,\n responsive: true,\n role: \"img\"\n};\nexport function useVictoryContainer(initialProps) {\n const props = {\n ...defaultProps,\n ...initialProps\n };\n const {\n title,\n desc,\n width,\n height,\n responsive\n } = props;\n const localContainerRef = useRef(null);\n\n // Generated ID stored in ref because it needs to persist across renders\n const generatedId = useRef(uniqueId(\"victory-container-\"));\n const containerId = props.containerId ?? generatedId.current;\n const getIdForElement = elName => `${containerId}-${elName}`;\n const userProps = UserProps.getSafeUserProps(props);\n const dimensions = responsive ? {\n width: \"100%\",\n height: \"100%\"\n } : {\n width,\n height\n };\n const viewBox = responsive ? `0 0 ${width} ${height}` : undefined;\n const preserveAspectRatio = responsive ? props.preserveAspectRatio : undefined;\n const ariaLabelledBy = [title && getIdForElement(\"title\"), props[\"aria-labelledby\"]].filter(Boolean).join(\" \") || undefined;\n const ariaDescribedBy = [desc && getIdForElement(\"desc\"), props[\"aria-describedby\"]].filter(Boolean).join(\" \") || undefined;\n const titleId = getIdForElement(\"title\");\n const descId = getIdForElement(\"desc\");\n return {\n ...props,\n titleId,\n descId,\n dimensions,\n viewBox,\n preserveAspectRatio,\n ariaLabelledBy,\n ariaDescribedBy,\n userProps,\n localContainerRef\n };\n}\nexport const VictoryContainer = initialProps => {\n const {\n role,\n title,\n desc,\n children,\n className,\n portalZIndex,\n portalComponent,\n width,\n height,\n style,\n tabIndex,\n responsive,\n events,\n ouiaId,\n ouiaSafe,\n ouiaType,\n dimensions,\n ariaDescribedBy,\n ariaLabelledBy,\n viewBox,\n preserveAspectRatio,\n userProps,\n titleId,\n descId,\n containerRef,\n localContainerRef\n } = useVictoryContainer(initialProps);\n React.useEffect(() => {\n if (!events?.onWheel) return;\n const handleWheel = e => e.preventDefault();\n const container = localContainerRef?.current;\n container?.addEventListener(\"wheel\", handleWheel);\n return () => {\n container?.removeEventListener(\"wheel\", handleWheel);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: className,\n style: {\n ...style,\n width: responsive ? style?.width : dimensions.width,\n height: responsive ? style?.height : dimensions.height,\n pointerEvents: style?.pointerEvents ?? \"none\",\n touchAction: style?.touchAction ?? \"none\",\n position: style?.position ?? \"relative\"\n },\n \"data-ouia-component-id\": ouiaId,\n \"data-ouia-component-type\": ouiaType,\n \"data-ouia-safe\": ouiaSafe,\n ref: mergeRefs([localContainerRef, containerRef])\n }, /*#__PURE__*/React.createElement(PortalProvider, null, /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: width,\n height: height,\n tabIndex: tabIndex,\n role: role,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n viewBox: viewBox,\n preserveAspectRatio: preserveAspectRatio,\n style: {\n ...dimensions,\n pointerEvents: \"all\"\n }\n }, userProps, events), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, desc ? /*#__PURE__*/React.createElement(\"desc\", {\n id: descId\n }, desc) : null, children), /*#__PURE__*/React.createElement(\"div\", {\n style: {\n ...dimensions,\n zIndex: portalZIndex,\n position: \"absolute\",\n top: 0,\n left: 0\n }\n }, /*#__PURE__*/React.createElement(PortalOutlet, {\n as: portalComponent,\n width: width,\n height: height,\n viewBox: viewBox,\n preserveAspectRatio: preserveAspectRatio,\n style: {\n ...dimensions,\n overflow: \"visible\"\n }\n }))));\n};\nVictoryContainer.role = \"container\";","import * as Helpers from \"./helpers\";\n/**\n * Used to merge multiple React refs into a single callback ref.\n *\n * @example\n * ```tsx\n *
\n * ```\n */\nexport function mergeRefs(refs) {\n return value => {\n refs.forEach(ref => {\n // If the ref is a function, it's a callback ref and we call it with the value.\n if (Helpers.isFunction(ref)) {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n // If the ref is an object (not null and not undefined), it's an object ref.\n // We assign the value to its 'current' property.\n ref.current = value;\n }\n });\n };\n}","import React from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const Text = props => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n children,\n desc,\n id,\n origin,\n tabIndex,\n title,\n ...rest\n } = props;\n const svgProps = {\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return /*#__PURE__*/React.createElement(\"text\", svgProps, title && /*#__PURE__*/React.createElement(\"title\", null, title), desc && /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n};","import React from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const TSpan = props => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n desc,\n id,\n tabIndex,\n origin,\n ...rest\n } = props;\n const svgProps = {\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return /*#__PURE__*/React.createElement(\"tspan\", svgProps);\n};","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-0.5, 0.5, 0, 1, 2] }]*/\nimport React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { VictoryPortal } from \"../victory-portal/victory-portal\";\nimport { Rect } from \"../victory-primitives/rect\";\nimport { Text } from \"../victory-primitives/text\";\nimport { TSpan } from \"../victory-primitives/tspan\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as LabelHelpers from \"../victory-util/label-helpers\";\nimport * as Log from \"../victory-util/log\";\nimport * as Style from \"../victory-util/style\";\nimport * as TextSize from \"../victory-util/textsize\";\nimport * as UserProps from \"../victory-util/user-props\";\nconst defaultStyles = {\n fill: \"#252525\",\n fontSize: 14,\n fontFamily: \"'Gill Sans', 'Gill Sans MT', 'Ser­avek', 'Trebuchet MS', sans-serif\",\n stroke: \"transparent\"\n};\nconst getPosition = (props, dimension) => {\n if (!props.datum) {\n return 0;\n }\n const scaledPoint = Helpers.scalePoint(props, props.datum);\n return scaledPoint[dimension];\n};\nconst getFontSize = style => {\n const baseSize = style && style.fontSize;\n if (typeof baseSize === \"number\") {\n return baseSize;\n } else if (baseSize === undefined || baseSize === null) {\n return defaultStyles.fontSize;\n } else if (typeof baseSize === \"string\") {\n const fontSize = Number(baseSize.replace(\"px\", \"\"));\n if (!isNaN(fontSize)) {\n return fontSize;\n }\n Log.warn(\"fontSize should be expressed as a number of pixels\");\n return defaultStyles.fontSize;\n }\n return defaultStyles.fontSize;\n};\nconst getSingleValue = function (prop, index) {\n if (index === void 0) {\n index = 0;\n }\n return Array.isArray(prop) ? prop[index] || prop[0] : prop;\n};\nconst shouldUseMultilineBackgrounds = props => {\n const {\n backgroundStyle,\n backgroundPadding\n } = props;\n return Array.isArray(backgroundStyle) && !isEmpty(backgroundStyle) || Array.isArray(backgroundPadding) && !isEmpty(backgroundPadding);\n};\nconst getStyles = (style, props) => {\n if (props.disableInlineStyles) {\n const baseStyles = Helpers.evaluateStyle(style, props);\n return {\n // Font size is necessary to calculate the y position of the label\n fontSize: getFontSize(baseStyles)\n };\n }\n const getSingleStyle = s => {\n const baseStyles = Helpers.evaluateStyle(s ? defaults({}, s, defaultStyles) : defaultStyles, props);\n return Object.assign({}, baseStyles, {\n fontSize: getFontSize(baseStyles)\n });\n };\n return Array.isArray(style) && !isEmpty(style) ? style.map(s => getSingleStyle(s)) : getSingleStyle(style);\n};\nconst getBackgroundStyles = (style, props) => {\n if (!style) {\n return undefined;\n }\n return Array.isArray(style) && !isEmpty(style) ? style.map(s => Helpers.evaluateStyle(s, props)) : Helpers.evaluateStyle(style, props);\n};\nconst getBackgroundPadding = props => {\n if (props.backgroundPadding && Array.isArray(props.backgroundPadding)) {\n return props.backgroundPadding.map(backgroundPadding => {\n const padding = Helpers.evaluateProp(backgroundPadding, props);\n return Helpers.getPadding(padding);\n });\n }\n const padding = Helpers.evaluateProp(props.backgroundPadding, props);\n return Helpers.getPadding(padding);\n};\nconst getLineHeight = props => {\n const lineHeight = Helpers.evaluateProp(props.lineHeight, props);\n if (Array.isArray(lineHeight)) {\n return isEmpty(lineHeight) ? [1] : lineHeight;\n }\n return lineHeight;\n};\nconst getContent = (text, props) => {\n if (text === undefined || text === null) {\n return undefined;\n }\n if (Array.isArray(text)) {\n return text.map(line => Helpers.evaluateProp(line, props));\n }\n const child = Helpers.evaluateProp(text, props);\n if (child === undefined || child === null) {\n return undefined;\n }\n return Array.isArray(child) ? child : `${child}`.split(\"\\n\");\n};\nconst getDy = (props, verticalAnchor, lineHeight) => {\n const dy = props.dy ? Helpers.evaluateProp(props.dy, props) : 0;\n const length = props.inline ? 1 : props.text.length;\n const capHeight = Helpers.evaluateProp(props.capHeight, props);\n const anchor = verticalAnchor ? Helpers.evaluateProp(verticalAnchor, props) : \"middle\";\n const fontSizes = [...Array(length).keys()].map(i => getSingleValue(props.style, i).fontSize);\n const lineHeights = [...Array(length).keys()].map(i => getSingleValue(lineHeight, i));\n if (anchor === \"start\") {\n return dy + (capHeight / 2 + lineHeights[0] / 2) * fontSizes[0];\n } else if (props.inline) {\n return anchor === \"end\" ? dy + (capHeight / 2 - lineHeights[0] / 2) * fontSizes[0] : dy + capHeight / 2 * fontSizes[0];\n } else if (length === 1) {\n return anchor === \"end\" ? dy + (capHeight / 2 + (0.5 - length) * lineHeights[0]) * fontSizes[0] : dy + (capHeight / 2 + (0.5 - length / 2) * lineHeights[0]) * fontSizes[0];\n }\n const allHeights = [...Array(length).keys()].reduce((memo, i) => {\n return memo + (capHeight / 2 + (0.5 - length) * lineHeights[i]) * fontSizes[i] / length;\n }, 0);\n return anchor === \"end\" ? dy + allHeights : dy + allHeights / 2 + capHeight / 2 * lineHeights[length - 1] * fontSizes[length - 1];\n};\nconst getTransform = (props, x, y) => {\n const {\n polar\n } = props;\n const style = getSingleValue(props.style);\n const defaultAngle = polar ? LabelHelpers.getPolarAngle(props) : 0;\n const baseAngle = style.angle === undefined ? Helpers.evaluateProp(props.angle, props) : style.angle;\n const angle = baseAngle === undefined ? defaultAngle : baseAngle;\n const transform = props.transform || style.transform;\n const transformPart = transform && Helpers.evaluateProp(transform, props);\n const rotatePart = angle && {\n rotate: [angle, x, y]\n };\n return transformPart || angle ? Style.toTransformString(transformPart, rotatePart) : undefined;\n};\nconst getXCoordinate = (calculatedProps, labelSizeWidth) => {\n const {\n direction,\n textAnchor,\n x,\n dx\n } = calculatedProps;\n if (direction === \"rtl\") {\n return x - labelSizeWidth;\n }\n switch (textAnchor) {\n case \"middle\":\n return Math.round(x - labelSizeWidth / 2);\n case \"end\":\n return Math.round(x - labelSizeWidth);\n default:\n // start\n return x + (dx || 0);\n }\n};\nconst getYCoordinate = (calculatedProps, textHeight) => {\n const {\n verticalAnchor,\n y,\n originalDy = 0\n } = calculatedProps;\n const offset = y + originalDy;\n switch (verticalAnchor) {\n case \"start\":\n return Math.floor(offset);\n case \"end\":\n return Math.ceil(offset - textHeight);\n default:\n // middle\n return Math.floor(offset - textHeight / 2);\n }\n};\nconst getFullBackground = (calculatedProps, tspanValues) => {\n const {\n dx = 0,\n transform,\n backgroundComponent,\n backgroundStyle,\n inline,\n backgroundPadding,\n capHeight\n } = calculatedProps;\n const textSizes = tspanValues.map(tspan => {\n return tspan.textSize;\n });\n const height = inline ? Math.max(...textSizes.map(size => size.height)) : textSizes.reduce((memo, size, i) => {\n const capHeightAdjustment = i ? 0 : capHeight / 2;\n return memo + size.height * (tspanValues[i].lineHeight - capHeightAdjustment);\n }, 0);\n const width = inline ? textSizes.reduce((memo, size, index) => {\n const offset = index ? dx : 0;\n return memo + size.width + offset;\n }, 0) : Math.max(...textSizes.map(size => size.width));\n const xCoordinate = getXCoordinate(calculatedProps, width);\n const yCoordinate = getYCoordinate(calculatedProps, height);\n const backgroundProps = {\n key: \"background\",\n height: height + backgroundPadding.top + backgroundPadding.bottom,\n style: backgroundStyle,\n transform,\n width: width + backgroundPadding.left + backgroundPadding.right,\n x: inline ? xCoordinate - backgroundPadding.left : xCoordinate + dx - backgroundPadding.left,\n y: yCoordinate\n };\n return /*#__PURE__*/React.cloneElement(backgroundComponent, defaults({}, backgroundComponent.props, backgroundProps));\n};\nconst getInlineXOffset = (calculatedProps, textElements, index) => {\n const {\n textAnchor\n } = calculatedProps;\n const widths = textElements.map(t => t.widthWithPadding);\n const totalWidth = widths.reduce((memo, width) => memo + width, 0);\n const centerOffset = -totalWidth / 2;\n switch (textAnchor) {\n case \"start\":\n return widths.reduce((memo, width, i) => i < index ? memo + width : memo, 0);\n case \"end\":\n return widths.reduce((memo, width, i) => i > index ? memo - width : memo, 0);\n default:\n // middle\n return widths.reduce((memo, width, i) => {\n const offsetWidth = i < index ? width : 0;\n return i === index ? memo + width / 2 : memo + offsetWidth;\n }, centerOffset);\n }\n};\nconst getChildBackgrounds = (calculatedProps, tspanValues) => {\n const {\n dy,\n dx,\n transform,\n backgroundStyle,\n backgroundPadding,\n backgroundComponent,\n inline,\n y\n } = calculatedProps;\n const textElements = tspanValues.map((current, i) => {\n const previous = getSingleValue(tspanValues, i - 1);\n const labelSize = current.textSize;\n const totalLineHeight = current.fontSize * current.lineHeight;\n const textHeight = Math.ceil(totalLineHeight);\n const padding = getSingleValue(backgroundPadding, i);\n const prevPadding = getSingleValue(backgroundPadding, i - 1);\n const xOffset = inline ? dx || 0 : 0;\n const childDy = i && !inline ? previous.fontSize * previous.lineHeight + prevPadding.top + prevPadding.bottom : dy - totalLineHeight * 0.5 - (current.fontSize - current.capHeight);\n return {\n textHeight,\n labelSize,\n heightWithPadding: textHeight + padding.top + padding.bottom,\n widthWithPadding: labelSize.width + padding.left + padding.right + xOffset,\n y,\n fontSize: current.fontSize,\n dy: childDy\n };\n });\n return textElements.map((textElement, i) => {\n const xCoordinate = getXCoordinate(calculatedProps, textElement.labelSize.width);\n const yCoordinate = textElements.slice(0, i + 1).reduce((prev, curr) => {\n return prev + curr.dy;\n }, y);\n const padding = getSingleValue(backgroundPadding, i);\n const height = textElement.heightWithPadding;\n const xCoord = inline ? getInlineXOffset(calculatedProps, textElements, i) + xCoordinate - padding.left : xCoordinate;\n const yCoord = inline ? getYCoordinate(calculatedProps, height) - padding.top : yCoordinate;\n const backgroundProps = {\n key: `tspan-background-${i}`,\n height,\n style: getSingleValue(backgroundStyle, i),\n width: textElement.widthWithPadding,\n transform,\n x: xCoord - padding.left,\n y: yCoord\n };\n return /*#__PURE__*/React.cloneElement(backgroundComponent, defaults({}, backgroundComponent.props, backgroundProps));\n });\n};\nconst getBackgroundElement = (calculatedProps, tspanValues) => {\n return shouldUseMultilineBackgrounds(calculatedProps) ? getChildBackgrounds(calculatedProps, tspanValues) : getFullBackground(calculatedProps, tspanValues);\n};\nconst calculateSpanDy = (tspanValues, i, calculatedProps) => {\n const current = getSingleValue(tspanValues, i);\n const previous = getSingleValue(tspanValues, i - 1);\n const previousHeight = previous.fontSize * previous.lineHeight;\n const currentHeight = current.fontSize * current.lineHeight;\n const previousCaps = previous.fontSize - previous.capHeight;\n const currentCaps = current.fontSize - current.capHeight;\n const textHeight = previousHeight - previous.fontSize / 2 + current.fontSize / 2 - previousHeight / 2 + currentHeight / 2 - currentCaps / 2 + previousCaps / 2;\n return shouldUseMultilineBackgrounds(calculatedProps) ? textHeight + current.backgroundPadding.top + previous.backgroundPadding.bottom : textHeight;\n};\nconst getTSpanDy = (tspanValues, calculatedProps, i) => {\n const {\n inline\n } = calculatedProps;\n const current = getSingleValue(tspanValues, i);\n if (i && !inline) {\n return calculateSpanDy(tspanValues, i, calculatedProps);\n } else if (inline) {\n return i === 0 ? current.backgroundPadding.top : undefined;\n }\n return current.backgroundPadding.top;\n};\nconst evaluateProps = props => {\n /* Potential evaluated props are\n 1) text\n 2) style\n 3) everything else\n */\n const text = getContent(props.text, props);\n const style = getStyles(props.style, Object.assign({}, props, {\n text\n }));\n const backgroundStyle = getBackgroundStyles(props.backgroundStyle, Object.assign({}, props, {\n text,\n style\n }));\n const backgroundPadding = getBackgroundPadding(Object.assign({}, props, {\n text,\n style,\n backgroundStyle\n }));\n const id = Helpers.evaluateProp(props.id, props);\n return Object.assign({}, props, {\n backgroundStyle,\n backgroundPadding,\n style,\n text,\n id\n });\n};\nconst getCalculatedProps = props => {\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const style = getSingleValue(props.style);\n const lineHeight = getLineHeight(props);\n const direction = props.direction ? Helpers.evaluateProp(props.direction, props) : \"inherit\";\n const textAnchor = props.textAnchor ? Helpers.evaluateProp(props.textAnchor, props) : style.textAnchor || \"start\";\n const verticalAnchor = props.verticalAnchor ? Helpers.evaluateProp(props.verticalAnchor, props) : style.verticalAnchor || \"middle\";\n const dx = props.dx ? Helpers.evaluateProp(props.dx, props) : 0;\n const dy = getDy(props, verticalAnchor, lineHeight);\n const x = props.x !== undefined ? props.x : getPosition(props, \"x\");\n const y = props.y !== undefined ? props.y : getPosition(props, \"y\");\n const transform = getTransform(props, x, y);\n return Object.assign({}, props, {\n ariaLabel,\n lineHeight,\n direction,\n textAnchor,\n verticalAnchor,\n dx,\n dy,\n originalDy: Helpers.evaluateProp(props.dy, props),\n transform,\n x,\n y\n });\n};\nconst renderLabel = (calculatedProps, tspanValues) => {\n const {\n ariaLabel,\n inline,\n className,\n title,\n events,\n direction,\n text,\n textAnchor,\n dx,\n dy,\n transform,\n x,\n y,\n desc,\n id,\n tabIndex,\n tspanComponent,\n textComponent\n } = calculatedProps;\n const userProps = UserProps.getSafeUserProps(calculatedProps);\n const textProps = {\n \"aria-label\": ariaLabel,\n key: \"text\",\n ...events,\n direction,\n dx,\n x,\n y: y + dy,\n transform,\n className,\n title,\n desc: Helpers.evaluateProp(desc, calculatedProps),\n tabIndex: Helpers.evaluateProp(tabIndex, calculatedProps),\n id,\n ...userProps\n };\n const tspans = text.map((line, i) => {\n const currentStyle = tspanValues[i].style;\n const tspanProps = {\n key: `${id}-key-${i}`,\n x: !inline ? x : undefined,\n dx: inline ? dx + tspanValues[i].backgroundPadding.left : dx,\n dy: getTSpanDy(tspanValues, calculatedProps, i),\n textAnchor: currentStyle.textAnchor || textAnchor,\n style: currentStyle,\n children: line\n };\n return /*#__PURE__*/React.cloneElement(tspanComponent, tspanProps);\n });\n return /*#__PURE__*/React.cloneElement(textComponent, textProps, tspans);\n};\nconst defaultProps = {\n backgroundComponent: /*#__PURE__*/React.createElement(Rect, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n direction: \"inherit\",\n textComponent: /*#__PURE__*/React.createElement(Text, null),\n tspanComponent: /*#__PURE__*/React.createElement(TSpan, null),\n capHeight: 0.71,\n // Magic number from d3.\n lineHeight: 1\n};\nexport const VictoryLabel = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n if (props.text === null || props.text === undefined) {\n return null;\n }\n const calculatedProps = getCalculatedProps(props);\n const {\n text,\n style,\n capHeight,\n backgroundPadding,\n lineHeight\n } = calculatedProps;\n const tspanValues = text.map((line, i) => {\n const currentStyle = getSingleValue(style, i);\n const capHeightPx = TextSize.convertLengthToPixels(`${capHeight}em`, currentStyle.fontSize);\n const currentLineHeight = getSingleValue(lineHeight, i);\n return {\n style: currentStyle,\n fontSize: currentStyle.fontSize || defaultStyles.fontSize,\n capHeight: capHeightPx,\n text: line,\n // TODO: This looks like a bug:\n textSize: TextSize.approximateTextSize(line, currentStyle),\n lineHeight: currentLineHeight,\n backgroundPadding: getSingleValue(backgroundPadding, i)\n };\n });\n const label = renderLabel(calculatedProps, tspanValues);\n if (props.backgroundStyle) {\n const backgroundElement = getBackgroundElement(calculatedProps, tspanValues);\n const children = [backgroundElement, label];\n const backgroundWithLabel = /*#__PURE__*/React.cloneElement(props.groupComponent, {}, children);\n return props.renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, backgroundWithLabel) : backgroundWithLabel;\n }\n return props.renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, label) : label;\n};\nVictoryLabel.displayName = \"VictoryLabel\";\nVictoryLabel.role = \"label\";\nVictoryLabel.defaultStyles = defaultStyles;","import React from \"react\";\nexport const PortalContext = /*#__PURE__*/React.createContext(undefined);\nPortalContext.displayName = \"PortalContext\";\nexport const usePortalContext = () => {\n const context = React.useContext(PortalContext);\n return context;\n};\nexport const PortalProvider = _ref => {\n let {\n children\n } = _ref;\n const [portalChildren, setPortalChildren] = React.useState(new Map());\n const addChild = React.useCallback((id, element) => {\n setPortalChildren(prevChildren => {\n const nextChildren = new Map(prevChildren);\n nextChildren.set(id, element);\n return nextChildren;\n });\n }, [setPortalChildren]);\n const removeChild = React.useCallback(id => {\n setPortalChildren(prevChildren => {\n const nextChildren = new Map(prevChildren);\n nextChildren.delete(id);\n return nextChildren;\n });\n }, [setPortalChildren]);\n const contextValue = React.useMemo(() => ({\n addChild,\n removeChild,\n children: portalChildren\n }), [addChild, removeChild, portalChildren]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: contextValue\n }, children);\n};","import React, { useState } from \"react\";\nimport defaults from \"lodash/defaults\";\nimport uniqueId from \"lodash/uniqueId\";\nimport * as Log from \"../victory-util/log\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { usePortalContext } from \"./portal-context\";\nconst defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n};\nexport const VictoryPortal = initialProps => {\n const props = {\n ...defaultProps,\n ...initialProps\n };\n const [id] = useState(uniqueId());\n const portalContext = usePortalContext();\n if (!portalContext) {\n const msg = \"`renderInPortal` is not supported outside of `VictoryContainer`. \" + \"Component will be rendered in place\";\n Log.warn(msg);\n }\n const children = Array.isArray(props.children) ? props.children[0] : props.children;\n const {\n groupComponent\n } = props;\n const childProps = children && children.props || {};\n const standardProps = childProps.groupComponent ? {\n groupComponent,\n standalone: false\n } : {};\n const newProps = defaults(standardProps, childProps, Helpers.omit(props, [\"children\", \"groupComponent\"]), {\n key: childProps.key ?? id\n });\n const child = children && /*#__PURE__*/React.cloneElement(children, newProps);\n React.useEffect(() => {\n portalContext?.addChild(id, child);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.children]);\n React.useEffect(() => {\n return () => portalContext?.removeChild(id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return portalContext ? null : child;\n};\nVictoryPortal.role = \"portal\";","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const Circle = /*#__PURE__*/forwardRef((props, ref) => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n desc,\n id,\n tabIndex,\n origin,\n ...rest\n } = props;\n const svgProps = {\n vectorEffect: \"non-scaling-stroke\",\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return desc ? /*#__PURE__*/React.createElement(\"circle\", _extends({}, svgProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"desc\", null, desc)) : /*#__PURE__*/React.createElement(\"circle\", _extends({}, svgProps, {\n ref: ref\n }));\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const Line = /*#__PURE__*/forwardRef((props, ref) => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n desc,\n id,\n tabIndex,\n origin,\n ...rest\n } = props;\n const svgProps = {\n vectorEffect: \"non-scaling-stroke\",\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return desc ? /*#__PURE__*/React.createElement(\"line\", _extends({}, svgProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"desc\", null, desc)) : /*#__PURE__*/React.createElement(\"line\", _extends({}, svgProps, {\n ref: ref\n }));\n});","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { Line } from \"./line\";\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(Object.assign({\n stroke: \"black\"\n }, props.style), props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n desc,\n id,\n style,\n tabIndex\n });\n};\nconst defaultProps = {\n lineComponent: /*#__PURE__*/React.createElement(Line, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const LineSegment = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n return /*#__PURE__*/React.cloneElement(props.lineComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n x1: props.x1,\n x2: props.x2,\n y1: props.y1,\n y2: props.y2,\n transform: props.transform,\n clipPath: props.clipPath\n });\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const Path = /*#__PURE__*/forwardRef((props, ref) => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n desc,\n id,\n tabIndex,\n origin,\n ...rest\n } = props;\n const svgProps = {\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return desc ? /*#__PURE__*/React.createElement(\"path\", _extends({}, svgProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"desc\", null, desc)) : /*#__PURE__*/React.createElement(\"path\", _extends({}, svgProps, {\n ref: ref\n }));\n});","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 2.5, 3] }]*/\n\nimport * as Helpers from \"./helpers\";\nexport function circle(x, y, size) {\n return `M ${x}, ${y}\n m ${-size}, 0\n a ${size}, ${size} 0 1,0 ${size * 2},0\n a ${size}, ${size} 0 1,0 ${-size * 2},0`;\n}\nexport function square(x, y, size) {\n const baseSize = 0.87 * size; // eslint-disable-line no-magic-numbers\n const x0 = x - baseSize;\n const y1 = y + baseSize;\n const distance = x + baseSize - x0;\n return `M ${x0}, ${y1}\n h${distance}\n v-${distance}\n h-${distance}\n z`;\n}\nexport function diamond(x, y, size) {\n const baseSize = 0.87 * size; // eslint-disable-line no-magic-numbers\n const length = Math.sqrt(2 * (baseSize * baseSize));\n return `M ${x}, ${y + length}\n l ${length}, -${length}\n l -${length}, -${length}\n l -${length}, ${length}\n l ${length}, ${length}\n z`;\n}\nexport function triangleDown(x, y, size) {\n const height = size / 2 * Math.sqrt(3);\n const x0 = x - size;\n const x1 = x + size;\n const y0 = y - size;\n const y1 = y + height;\n return `M ${x0}, ${y0}\n L ${x1}, ${y0}\n L ${x}, ${y1}\n z`;\n}\nexport function triangleUp(x, y, size) {\n const height = size / 2 * Math.sqrt(3);\n const x0 = x - size;\n const x1 = x + size;\n const y0 = y - height;\n const y1 = y + size;\n return `M ${x0}, ${y1}\n L ${x1}, ${y1}\n L ${x}, ${y0}\n z`;\n}\nexport function plus(x, y, size) {\n const baseSize = 1.1 * size; // eslint-disable-line no-magic-numbers\n const distance = baseSize / 1.5; // eslint-disable-line no-magic-numbers\n return `\n M ${x - distance / 2}, ${y + baseSize}\n v-${distance}\n h-${distance}\n v-${distance}\n h${distance}\n v-${distance}\n h${distance}\n v${distance}\n h${distance}\n v${distance}\n h-${distance}\n v${distance}\n z`;\n}\nexport function cross(x, y, size) {\n const baseSize = 0.8 * size; // eslint-disable-line no-magic-numbers\n const distance = baseSize / 1.5; // eslint-disable-line no-magic-numbers\n return `\n M ${x - distance / 2}, ${y + baseSize + distance}\n v-${distance * 2}\n h-${distance}\n v-${distance}\n h${distance}\n v-${distance}\n h${distance}\n v${distance}\n h${distance}\n v${distance}\n h-${distance}\n v${distance * 2}\n z`;\n}\nexport function minus(x, y, size) {\n const baseSize = 1.1 * size; // eslint-disable-line no-magic-numbers\n const lineHeight = baseSize - baseSize * 0.3; // eslint-disable-line no-magic-numbers\n const x0 = x - baseSize;\n const y1 = y + lineHeight / 2;\n const distance = x + baseSize - x0;\n return `M ${x0}, ${y1}\n h${distance}\n v-${lineHeight}\n h-${distance}\n z`;\n}\nexport function star(x, y, size) {\n const baseSize = 1.35 * size; // eslint-disable-line no-magic-numbers\n const angle = Math.PI / 5; // eslint-disable-line no-magic-numbers\n // eslint-disable-next-line no-magic-numbers\n const starCoords = Helpers.range(10).map(index => {\n const length = index % 2 === 0 ? baseSize : baseSize / 2;\n return `${length * Math.sin(angle * (index + 1)) + x},\n ${length * Math.cos(angle * (index + 1)) + y}`;\n });\n return `M ${starCoords.join(\"L\")} z`;\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as pathHelpers from \"../victory-util/point-path-helpers\";\nimport * as UserProps from \"../victory-util/user-props\";\nimport { Path } from \"./path\";\nconst getPath = props => {\n const {\n x,\n y,\n size,\n symbol\n } = props;\n if (props.getPath) {\n return props.getPath(x, y, size);\n }\n const pathFunctions = pathHelpers;\n const symbolFunction = typeof pathFunctions[symbol] === \"function\" ? pathFunctions[symbol] : pathFunctions.circle;\n return symbolFunction(x, y, size);\n};\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `size`\n * `style`\n * `symbol`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const size = Helpers.evaluateProp(props.size, props);\n const style = Helpers.evaluateStyle(props.style, props);\n const symbol = Helpers.evaluateProp(props.symbol, props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n desc,\n id,\n size,\n style,\n symbol,\n tabIndex\n });\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Point = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const userProps = UserProps.getSafeUserProps(props);\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n d: getPath(props),\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n role: props.role,\n shapeRendering: props.shapeRendering,\n className: props.className,\n transform: props.transform,\n clipPath: props.clipPath,\n ...userProps\n });\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { forwardRef } from \"react\";\nimport { evaluateProp } from \"../victory-util/helpers\";\nexport const Rect = /*#__PURE__*/forwardRef((props, ref) => {\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars --\n * origin conflicts with the SVG element's origin attribute\n */\n const {\n desc,\n id,\n tabIndex,\n origin,\n ...rest\n } = props;\n const svgProps = {\n vectorEffect: \"non-scaling-stroke\",\n id: evaluateProp(id, props)?.toString(),\n tabIndex: evaluateProp(tabIndex, props),\n ...rest\n };\n return desc ? /*#__PURE__*/React.createElement(\"rect\", _extends({}, svgProps, {\n ref: ref\n }), /*#__PURE__*/React.createElement(\"desc\", null, desc)) : /*#__PURE__*/React.createElement(\"rect\", _extends({}, svgProps, {\n ref: ref\n }));\n});","// *\n// * Colors\n// *\nconst colors = {\n blue: \"#4F7DA1\",\n pink: \"#E2A37F\",\n teal: \"#00796B\",\n purple: \"#DF948A\",\n green: \"#8BC34A\",\n orange: \"#F4511E\",\n cyan: \"#006064\",\n red: \"#DF5A49\",\n yellow: \"#FFF59D\"\n};\nconst colorScale = [\"#252525\", \"#525252\", \"#737373\", \"#969696\", \"#bdbdbd\", \"#d9d9d9\", \"#f0f0f0\"];\nconst charcoal = \"#252525\";\nconst grey = \"#969696\";\nconst qualitative = [\"#334D5C\", \"#45B29D\", \"#EFC94C\", \"#E27A3F\", \"#DF5A49\", \"#4F7DA1\", \"#55DBC1\", \"#EFDA97\", \"#E2A37F\", \"#DF948A\"];\nconst heatmap = [\"#428517\", \"#77D200\", \"#D6D305\", \"#EC8E19\", \"#C92B05\"];\nconst warm = [\"#940031\", \"#C43343\", \"#DC5429\", \"#FF821D\", \"#FFAF55\"];\nconst cool = [\"#2746B9\", \"#0B69D4\", \"#2794DB\", \"#31BB76\", \"#60E83B\"];\nconst red = [\"#FCAE91\", \"#FB6A4A\", \"#DE2D26\", \"#A50F15\", \"#750B0E\"];\nconst green = [\"#354722\", \"#466631\", \"#649146\", \"#8AB25C\", \"#A9C97E\"];\nconst blue = [\"#002C61\", \"#004B8F\", \"#006BC9\", \"#3795E5\", \"#65B4F4\"];\n\n// *\n// * Typography\n// *\nconst sansSerif = \"'Gill Sans', 'Seravek', 'Trebuchet MS', sans-serif\";\nconst letterSpacing = \"normal\";\nconst fontSize = 14;\n// *\n// * Layout\n// *\nconst baseProps = {\n width: 450,\n height: 300,\n padding: 50,\n colorScale\n};\n// *\n// * Labels\n// *\nconst baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize,\n letterSpacing,\n padding: 10,\n fill: charcoal,\n stroke: \"transparent\"\n};\nconst centeredLabelStyles = Object.assign({\n textAnchor: \"middle\"\n}, baseLabelStyles);\n// *\n// * Strokes\n// *\nconst strokeLinecap = \"round\";\nconst strokeLinejoin = \"round\";\nexport const grayscale = {\n palette: {\n colors,\n grayscale: colorScale,\n qualitative,\n heatmap,\n warm,\n cool,\n red,\n green,\n blue\n },\n area: Object.assign({\n style: {\n data: {\n fill: charcoal\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n axis: Object.assign({\n style: {\n axis: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 1,\n strokeLinecap,\n strokeLinejoin\n },\n axisLabel: Object.assign({}, centeredLabelStyles, {\n padding: 25\n }),\n grid: {\n fill: \"none\",\n stroke: \"none\",\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 1,\n stroke: \"transparent\"\n },\n tickLabels: baseLabelStyles\n }\n }, baseProps),\n bar: Object.assign({\n style: {\n data: {\n fill: charcoal,\n padding: 8,\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n boxplot: Object.assign({\n style: {\n max: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n maxLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n median: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n medianLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n min: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n minLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q1: {\n padding: 8,\n fill: grey\n },\n q1Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q3: {\n padding: 8,\n fill: grey\n },\n q3Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n })\n },\n boxWidth: 20\n }, baseProps),\n candlestick: Object.assign({\n style: {\n data: {\n stroke: charcoal,\n strokeWidth: 1\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5\n })\n },\n candleColors: {\n positive: \"#ffffff\",\n negative: charcoal\n }\n }, baseProps),\n chart: baseProps,\n errorbar: Object.assign({\n borderWidth: 8,\n style: {\n data: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n group: Object.assign({\n colorScale\n }, baseProps),\n histogram: Object.assign({\n style: {\n data: {\n fill: grey,\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n legend: {\n colorScale,\n gutter: 10,\n orientation: \"vertical\",\n titleOrientation: \"top\",\n style: {\n data: {\n type: \"circle\"\n },\n labels: baseLabelStyles,\n title: Object.assign({}, baseLabelStyles, {\n padding: 5\n })\n }\n },\n line: Object.assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n pie: {\n style: {\n data: {\n padding: 10,\n stroke: \"transparent\",\n strokeWidth: 1\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 20\n })\n },\n colorScale,\n width: 400,\n height: 400,\n padding: 50\n },\n scatter: Object.assign({\n style: {\n data: {\n fill: charcoal,\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n stack: Object.assign({\n colorScale\n }, baseProps),\n tooltip: {\n style: Object.assign({}, baseLabelStyles, {\n padding: 0,\n pointerEvents: \"none\"\n }),\n flyoutStyle: {\n stroke: charcoal,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n },\n flyoutPadding: 5,\n cornerRadius: 5,\n pointerLength: 10\n },\n voronoi: Object.assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5,\n pointerEvents: \"none\"\n }),\n flyout: {\n stroke: charcoal,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n }\n }\n }, baseProps)\n};","// *\n// * Colors\n// *\nconst yellow200 = \"#FFF59D\";\nconst deepOrange600 = \"#F4511E\";\nconst lime300 = \"#DCE775\";\nconst lightGreen500 = \"#8BC34A\";\nconst teal700 = \"#00796B\";\nconst cyan900 = \"#006064\";\nconst colorScale = [deepOrange600, yellow200, lime300, lightGreen500, teal700, cyan900];\nconst blueGrey50 = \"#ECEFF1\";\nconst blueGrey300 = \"#90A4AE\";\nconst blueGrey700 = \"#455A64\";\nconst grey900 = \"#212121\";\nconst colors = {\n blue: \"#4F7DA1\",\n pink: \"#E2A37F\",\n teal: teal700,\n purple: \"#DF948A\",\n green: lightGreen500,\n orange: deepOrange600,\n cyan: cyan900,\n red: \"#DF5A49\",\n yellow: yellow200\n};\nconst grayscale = [blueGrey50, blueGrey300, blueGrey700, grey900];\nconst qualitative = [\"#334D5C\", \"#45B29D\", \"#EFC94C\", \"#E27A3F\", \"#DF5A49\", \"#4F7DA1\", \"#55DBC1\", \"#EFDA97\", \"#E2A37F\", \"#DF948A\"];\nconst heatmap = [\"#428517\", \"#77D200\", \"#D6D305\", \"#EC8E19\", \"#C92B05\"];\nconst warm = [\"#940031\", \"#C43343\", \"#DC5429\", \"#FF821D\", \"#FFAF55\"];\nconst cool = [\"#2746B9\", \"#0B69D4\", \"#2794DB\", \"#31BB76\", \"#60E83B\"];\nconst red = [\"#FCAE91\", \"#FB6A4A\", \"#DE2D26\", \"#A50F15\", \"#750B0E\"];\nconst green = [\"#354722\", \"#466631\", \"#649146\", \"#8AB25C\", \"#A9C97E\"];\nconst blue = [\"#002C61\", \"#004B8F\", \"#006BC9\", \"#3795E5\", \"#65B4F4\"];\n\n// *\n// * Typography\n// *\nconst sansSerif = \"'Helvetica Neue', 'Helvetica', sans-serif\";\nconst letterSpacing = \"normal\";\nconst fontSize = 12;\n// *\n// * Layout\n// *\nconst padding = 8;\nconst baseProps = {\n width: 350,\n height: 350,\n padding: 50\n};\n// *\n// * Labels\n// *\nconst baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize,\n letterSpacing,\n padding,\n fill: blueGrey700,\n stroke: \"transparent\",\n strokeWidth: 0\n};\nconst centeredLabelStyles = Object.assign({\n textAnchor: \"middle\"\n}, baseLabelStyles);\n// *\n// * Strokes\n// *\nconst strokeDasharray = \"10, 5\";\nconst strokeLinecap = \"round\";\nconst strokeLinejoin = \"round\";\nexport const material = {\n palette: {\n colors,\n grayscale,\n qualitative,\n heatmap,\n warm,\n cool,\n red,\n green,\n blue\n },\n area: Object.assign({\n style: {\n data: {\n fill: grey900\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n axis: Object.assign({\n style: {\n axis: {\n fill: \"transparent\",\n stroke: blueGrey300,\n strokeWidth: 2,\n strokeLinecap,\n strokeLinejoin\n },\n axisLabel: Object.assign({}, centeredLabelStyles, {\n padding,\n stroke: \"transparent\"\n }),\n grid: {\n fill: \"none\",\n stroke: blueGrey50,\n strokeDasharray,\n strokeLinecap,\n strokeLinejoin,\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 5,\n stroke: blueGrey300,\n strokeWidth: 1,\n strokeLinecap,\n strokeLinejoin\n },\n tickLabels: Object.assign({}, baseLabelStyles, {\n fill: blueGrey700\n })\n }\n }, baseProps),\n polarDependentAxis: Object.assign({\n style: {\n ticks: {\n fill: \"transparent\",\n size: 1,\n stroke: \"transparent\"\n }\n }\n }),\n bar: Object.assign({\n style: {\n data: {\n fill: blueGrey700,\n padding,\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n boxplot: Object.assign({\n style: {\n max: {\n padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n maxLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n median: {\n padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n medianLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n min: {\n padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n minLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q1: {\n padding,\n fill: blueGrey700\n },\n q1Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q3: {\n padding,\n fill: blueGrey700\n },\n q3Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n })\n },\n boxWidth: 20\n }, baseProps),\n candlestick: Object.assign({\n style: {\n data: {\n stroke: blueGrey700\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5\n })\n },\n candleColors: {\n positive: \"#ffffff\",\n negative: blueGrey700\n }\n }, baseProps),\n chart: baseProps,\n errorbar: Object.assign({\n borderWidth: 8,\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: blueGrey700,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n group: Object.assign({\n colorScale\n }, baseProps),\n histogram: Object.assign({\n style: {\n data: {\n fill: blueGrey700,\n stroke: grey900,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n legend: {\n colorScale,\n gutter: 10,\n orientation: \"vertical\",\n titleOrientation: \"top\",\n style: {\n data: {\n type: \"circle\"\n },\n labels: baseLabelStyles,\n title: Object.assign({}, baseLabelStyles, {\n padding: 5\n })\n }\n },\n line: Object.assign({\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: blueGrey700,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n pie: Object.assign({\n colorScale,\n style: {\n data: {\n padding,\n stroke: blueGrey50,\n strokeWidth: 1\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 20\n })\n }\n }, baseProps),\n scatter: Object.assign({\n style: {\n data: {\n fill: blueGrey700,\n opacity: 1,\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n stack: Object.assign({\n colorScale\n }, baseProps),\n tooltip: {\n style: Object.assign({}, baseLabelStyles, {\n padding: 0,\n pointerEvents: \"none\"\n }),\n flyoutStyle: {\n stroke: grey900,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n },\n flyoutPadding: 5,\n cornerRadius: 5,\n pointerLength: 10\n },\n voronoi: Object.assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5,\n pointerEvents: \"none\"\n }),\n flyout: {\n stroke: grey900,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n }\n }\n }, baseProps)\n};","// *\n// * Colors\n// *\n\nconst gray = {\n white: \"#FFFFFF\",\n \"50\": \"#FAFAFA\",\n \"100\": \"#F2F2F2\",\n \"200\": \"#E8E8E8\",\n \"300\": \"#E0E0E0\",\n \"400\": \"#D1D1D1\",\n \"500\": \"#757575\",\n \"600\": \"#5C5C5C\",\n \"700\": \"#424242\",\n \"800\": \"#333333\",\n \"900\": \"#292929\",\n black: \"#0F0F0F\"\n};\nconst yellow = {\n \"100\": \"#FFEAB6\",\n \"300\": \"#FFD66E\",\n \"500\": \"#FCB400\",\n \"900\": \"#B87503\"\n};\nconst orange = {\n \"100\": \"#FEE2D5\",\n \"300\": \"#FFA981\",\n \"500\": \"#FF6F2C\",\n \"700\": \"#FF4E1B\",\n \"900\": \"#D74D26\"\n};\nconst red = {\n \"100\": \"#FFDCE5\",\n \"300\": \"#FF9EB7\",\n \"500\": \"#F82B60\",\n \"700\": \"#D31A3D\",\n \"900\": \"#BA1E45\"\n};\nconst purple = {\n \"100\": \"#EDE3FE\",\n \"300\": \"#CDB0FF\",\n \"500\": \"#8B46FF\",\n \"900\": \"#6B1CB0\"\n};\nconst blue = {\n \"100\": \"#CFDFFF\",\n \"300\": \"#9CC7FF\",\n \"500\": \"#2D7FF9\",\n \"700\": \"#0056B3\",\n \"900\": \"#2750AE\"\n};\nconst cyan = {\n \"100\": \"#D0F0FD\",\n \"300\": \"#77D1F3\",\n \"500\": \"#18BFFF\",\n \"900\": \"#0B76B7\"\n};\nconst teal = {\n \"100\": \"#C2F5E9\",\n \"300\": \"#72DDC3\",\n \"500\": \"#20D9D2\",\n \"900\": \"#06A09B\"\n};\nconst green = {\n \"100\": \"#D1F7C4\",\n \"300\": \"#93E088\",\n \"500\": \"#20C933\",\n \"700\": \"#1B9B2A\",\n \"900\": \"#338A17\"\n};\nconst colors = {\n blue: blue[\"500\"],\n cyan: cyan[\"500\"],\n green: green[\"500\"],\n yellow: yellow[\"500\"],\n orange: orange[\"500\"],\n red: red[\"500\"],\n purple: purple[\"500\"],\n teal: teal[\"500\"]\n};\nconst colorScale = Object.values(colors);\nconst grayscale = [gray[\"100\"], gray[\"300\"], gray[\"500\"], gray[\"700\"], gray[\"900\"]];\nconst warm = [yellow[\"300\"], yellow[\"500\"], orange[\"500\"], orange[\"900\"], red[\"500\"]];\nconst cool = [purple[\"500\"], blue[\"500\"], cyan[\"500\"], teal[\"500\"], green[\"500\"]];\nconst heatmap = [green[\"900\"], green[\"500\"], yellow[\"500\"], orange[\"500\"], red[\"500\"]];\nconst redPalette = Object.values(red);\nconst greenPalette = Object.values(green);\nconst bluePalette = Object.values(blue);\nconst defaultColor = blue[\"500\"];\n\n// *\n// * Typography\n// *\nconst sansSerif = \"'Inter', 'Helvetica Neue', 'Seravek', 'Helvetica', sans-serif\";\nconst letterSpacing = \"normal\";\nconst fontSize = 12;\n// *\n// * Layout\n// *\nconst padding = 8;\nconst baseProps = {\n width: 450,\n height: 300,\n padding: 60,\n colorScale\n};\n// *\n// * Labels\n// *\nconst baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize,\n fontWeight: 300,\n letterSpacing,\n padding,\n fill: gray[\"900\"],\n stroke: \"transparent\"\n};\nconst centeredLabelStyles = Object.assign({\n textAnchor: \"middle\"\n}, baseLabelStyles);\n\n// *\n// * Strokes\n// *\nconst strokeDasharray = \"10, 5\";\nconst strokeLinecap = \"round\";\nconst strokeLinejoin = \"round\";\nconst borderRadius = 1;\n// *\n// * Theme\n// *\nexport const clean = {\n palette: {\n colors,\n grayscale,\n qualitative: colorScale,\n heatmap,\n warm,\n cool,\n red: redPalette,\n green: greenPalette,\n blue: bluePalette\n },\n area: Object.assign({\n style: {\n data: {\n fill: defaultColor,\n strokeWidth: 2,\n fillOpacity: 0.5\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n axis: Object.assign({\n style: {\n axis: {\n fill: \"transparent\",\n stroke: gray[\"500\"],\n strokeWidth: 1,\n strokeLinecap,\n strokeLinejoin\n },\n axisLabel: Object.assign({}, centeredLabelStyles, {\n padding: 35,\n stroke: \"transparent\"\n }),\n grid: {\n fill: \"none\",\n stroke: \"none\",\n painterEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 5,\n stroke: \"transparent\"\n },\n tickLabels: baseLabelStyles\n }\n }, baseProps),\n polarAxis: Object.assign({\n style: {\n axis: {\n stroke: gray[\"500\"]\n },\n grid: {\n stroke: gray[\"400\"],\n strokeDasharray,\n strokeLinecap,\n strokeLinejoin,\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 5,\n stroke: gray[\"400\"],\n strokeWidth: 1,\n strokeLinecap,\n strokeLinejoin\n },\n tickLabels: baseLabelStyles\n }\n }),\n polarDependentAxis: Object.assign({\n style: {\n axis: {\n stroke: gray[\"500\"]\n },\n grid: {\n stroke: gray[\"400\"],\n strokeDasharray,\n strokeLinecap,\n strokeLinejoin,\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 5,\n stroke: gray[\"300\"],\n strokeWidth: 1,\n strokeLinecap,\n strokeLinejoin\n },\n tickLabels: baseLabelStyles\n }\n }),\n bar: Object.assign({\n style: {\n data: {\n fill: defaultColor,\n padding,\n strokeWidth: 1,\n fillOpacity: 0.5\n },\n labels: baseLabelStyles\n },\n cornerRadius: {\n top: borderRadius\n }\n }, baseProps),\n boxplot: Object.assign({\n style: {\n max: {\n padding,\n stroke: gray[\"400\"],\n strokeWidth: 2\n },\n maxLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n median: {\n padding,\n stroke: gray.white,\n strokeWidth: 2\n },\n medianLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n min: {\n padding,\n stroke: gray[\"400\"],\n strokeWidth: 2\n },\n minLabels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q1: {\n padding,\n fill: colorScale[0],\n rx: borderRadius,\n strokeWidth: 2\n },\n q1Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n }),\n q3: {\n padding,\n fill: colorScale[1],\n rx: borderRadius\n },\n q3Labels: Object.assign({}, baseLabelStyles, {\n padding: 3\n })\n },\n boxWidth: 20\n }, baseProps),\n candlestick: Object.assign({\n style: {\n data: {\n stroke: gray[\"300\"],\n strokeWidth: 0,\n rx: borderRadius\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5\n })\n },\n candleColors: {\n positive: green[\"500\"],\n negative: red[\"500\"]\n },\n wickStrokeWidth: 2\n }, baseProps),\n chart: baseProps,\n errorbar: Object.assign({\n borderWidth: 8,\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: gray[\"700\"],\n strokeWidth: 2,\n strokeLinecap\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n group: Object.assign({\n colorScale\n }, baseProps),\n histogram: Object.assign({\n style: {\n data: {\n fill: cyan[\"500\"],\n fillOpacity: 0.5\n },\n labels: baseLabelStyles\n },\n binSpacing: 4,\n cornerRadius: {\n top: borderRadius\n }\n }, baseProps),\n label: baseLabelStyles,\n legend: {\n colorScale,\n gutter: 24,\n borderPadding: 10,\n orientation: \"horizontal\",\n titleOrientation: \"top\",\n centerTitle: true,\n style: {\n data: {\n type: \"circle\"\n },\n labels: {\n ...baseLabelStyles,\n fontSize: 12\n },\n title: Object.assign({}, baseLabelStyles, {\n padding,\n fontSize: 16\n }),\n border: {\n stroke: gray[\"200\"],\n strokeWidth: 2,\n padding: 16\n }\n }\n },\n line: Object.assign({\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: defaultColor,\n strokeWidth: 2,\n strokeLinecap,\n strokeLinejoin\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n pie: Object.assign({\n style: {\n parent: {\n backgroundColor: gray.white\n },\n data: {\n padding,\n stroke: gray.white,\n strokeWidth: 1\n },\n labels: {\n ...baseLabelStyles,\n padding: 20,\n fill: gray[\"600\"],\n fontSize: 10\n }\n },\n colorScale,\n cornerRadius: borderRadius\n }, baseProps),\n scatter: Object.assign({\n style: {\n data: {\n fill: defaultColor,\n opacity: 1,\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: {\n ...baseLabelStyles,\n padding: 20\n }\n }\n }, baseProps),\n stack: Object.assign({\n colorScale\n }, baseProps),\n tooltip: {\n style: Object.assign({}, baseLabelStyles, {\n padding: 0,\n pointerEvents: \"none\"\n }),\n flyoutStyle: {\n stroke: gray[\"300\"],\n strokeWidth: 2,\n fill: gray.white,\n pointerEvents: \"none\"\n },\n flyoutPadding: {\n top: 8,\n bottom: 8,\n left: 16,\n right: 16\n },\n cornerRadius: borderRadius,\n pointerLength: 4\n },\n voronoi: Object.assign({\n style: {\n data: {\n fill: blue[\"100\"],\n stroke: defaultColor,\n strokeWidth: 2\n },\n labels: Object.assign({}, baseLabelStyles, {\n padding: 5,\n pointerEvents: \"none\"\n }),\n flyout: {\n stroke: gray[\"900\"],\n strokeWidth: 1,\n fill: gray[\"100\"],\n pointerEvents: \"none\"\n },\n padding: {\n left: 2,\n bottom: 2\n }\n }\n }, baseProps)\n};","import { grayscale } from \"./grayscale\";\nimport { material } from \"./material\";\nimport { clean } from \"./clean\";\nexport * from \"./types\";\nexport const VictoryTheme = {\n grayscale,\n material,\n clean\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport pick from \"lodash/pick\";\nimport isEqual from \"react-fast-compare\";\nimport { VictoryAnimation } from \"../victory-animation/victory-animation\";\nimport * as Collection from \"../victory-util/collection\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport TimerContext from \"../victory-util/timer-context\";\nimport * as Transitions from \"../victory-util/transitions\";\nexport class VictoryTransition extends React.Component {\n static displayName = \"VictoryTransition\";\n static contextType = TimerContext;\n constructor(props, context) {\n super(props, context);\n this.state = {\n nodesShouldLoad: false,\n nodesDoneLoad: false\n };\n const child = this.props.children;\n const polar = child.props.polar;\n this.continuous = !polar && child.type && child.type.continuous === true;\n this.timer = this.context.transitionTimer;\n }\n componentDidMount() {\n this.setState({\n nodesShouldLoad: true\n });\n }\n shouldComponentUpdate(nextProps) {\n if (!isEqual(this.props, nextProps)) {\n this.timer.bypassAnimation();\n this.setState(this.getTransitionState(this.props, nextProps), () => this.timer.resumeAnimation());\n }\n return true;\n }\n componentWillUnmount() {\n this.timer.stop();\n }\n getTransitionState(props, nextProps) {\n const {\n animate\n } = props;\n if (!animate) {\n return {};\n } else if (animate.parentState) {\n const state = animate.parentState;\n const oldProps = state.nodesWillExit ? props : null;\n return {\n oldProps,\n nextProps\n };\n }\n const oldChildren = React.Children.toArray(props.children);\n const nextChildren = React.Children.toArray(nextProps.children);\n const {\n nodesWillExit,\n nodesWillEnter,\n childrenTransitions,\n nodesShouldEnter\n } = Transitions.getInitialTransitionState(oldChildren, nextChildren);\n return {\n nodesWillExit,\n nodesWillEnter,\n childrenTransitions,\n nodesShouldEnter,\n oldProps: nodesWillExit ? props : null,\n nextProps\n };\n }\n getDomainFromChildren(props, axis) {\n const getChildDomains = children => {\n return children.reduce((memo, child) => {\n if (child.type && Helpers.isFunction(child.type.getDomain)) {\n const childDomain = child.props && child.type.getDomain(child.props, axis);\n return childDomain ? memo.concat(childDomain) : memo;\n } else if (child.props && child.props.children) {\n return memo.concat(getChildDomains(React.Children.toArray(child.props.children)));\n }\n return memo;\n }, []);\n };\n const child = React.Children.toArray(props.children)[0];\n const childProps = child.props || {};\n const domain = Array.isArray(childProps.domain) ? childProps.domain : childProps.domain && childProps.domain[axis];\n if (!childProps.children && domain) {\n return domain;\n }\n const childDomains = getChildDomains([child]);\n return childDomains.length === 0 ? [0, 1] : [Collection.getMinValue(childDomains), Collection.getMaxValue(childDomains)];\n }\n pickProps() {\n if (!this.state) {\n return this.props;\n }\n return this.state.nodesWillExit ? this.state.oldProps || this.props : this.props;\n }\n pickDomainProps(props) {\n const parentState = props.animate?.parentState;\n if (parentState && parentState.nodesWillExit) {\n return this.continuous || parentState.continuous ? parentState.nextProps || this.state.nextProps || props : props;\n }\n return this.continuous && this.state.nodesWillExit ? this.state.nextProps || props : props;\n }\n getClipWidth(props, child) {\n const getDefaultClipWidth = () => {\n const range = Helpers.getRange(child.props, \"x\");\n return range ? Math.abs(range[1] - range[0]) : props.width;\n };\n const clipWidth = this.transitionProps ? this.transitionProps.clipWidth : undefined;\n return clipWidth !== undefined ? clipWidth : getDefaultClipWidth();\n }\n render() {\n const props = this.pickProps();\n const getTransitionProps = this.props.animate?.getTransitions ? this.props.animate.getTransitions : Transitions.getTransitionPropsFactory(props, this.state, newState => this.setState(newState));\n const child = React.Children.toArray(props.children)[0];\n const transitionProps = getTransitionProps(child);\n this.transitionProps = transitionProps;\n const domain = {\n x: this.getDomainFromChildren(this.pickDomainProps(props), \"x\"),\n y: this.getDomainFromChildren(props, \"y\")\n };\n const clipWidth = this.getClipWidth(props, child);\n const combinedProps = defaults({\n domain,\n clipWidth\n }, transitionProps, child.props);\n const animationWhitelist = props.animationWhitelist || [];\n const whitelist = animationWhitelist.concat([\"clipWidth\"]);\n const propsToAnimate = whitelist.length ? pick(combinedProps, whitelist) : combinedProps;\n return /*#__PURE__*/React.createElement(VictoryAnimation, _extends({}, combinedProps.animate, {\n data: propsToAnimate\n }), newProps => {\n if (child.props.groupComponent) {\n const groupComponent = this.continuous ? /*#__PURE__*/React.cloneElement(child.props.groupComponent, {\n clipWidth: newProps.clipWidth || 0\n }) : child.props.groupComponent;\n return /*#__PURE__*/React.cloneElement(child, defaults({\n animate: null,\n animating: true,\n groupComponent\n }, newProps, combinedProps));\n }\n return /*#__PURE__*/React.cloneElement(child, defaults({\n animate: null,\n animating: true\n }, newProps, combinedProps));\n });\n }\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\nimport pick from \"lodash/pick\";\nimport isEqual from \"react-fast-compare\";\nimport { VictoryTransition } from \"../victory-transition/victory-transition\";\nimport { difference } from \"./collection\";\nimport * as Events from \"./events\";\nimport { isFunction, isNil } from \"./helpers\";\n\n// DISCLAIMER:\n// This file is not currently tested, and it is first on the list of files\n// to refactor in our current refactoring effort. Please do not make changes\n// to this file without manual testing and/or refactoring and adding tests.\n\nconst datumHasXandY = datum => {\n return !isNil(datum._x) && !isNil(datum._y);\n};\n\n// used for checking state changes. Expected components can be passed in via options\nconst defaultComponents = [{\n name: \"parent\",\n index: \"parent\"\n}, {\n name: \"data\"\n}, {\n name: \"labels\"\n}];\n\n/**\n * These methods will be implemented by the Mixin,\n * and are accessible to the Wrapped Component.\n *\n * To make your Wrapped Component type-safe, use \"interface merging\" like so:\n * @example\n * interface MyComponent extends EventsMixinClass {}\n * class MyComponent extends React.Component { ... }\n */\n\n/**\n * These fields are calculated by the Mixin\n */\n\n/**\n * These are the common roles that we care about internally.\n */\n\n/**\n * A component can have any \"role\",\n * but there are certain ones that we actually care about internally\n */\n\n/**\n * Static component fields used by Victory for common behavior\n */\n\n/**\n * This represents the class itself, including static fields\n */\n\nexport function addEvents(WrappedComponent, options) {\n if (options === void 0) {\n options = {};\n } // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n // @ts-expect-error \"TS2545: A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"\n class AddEventsMixin extends WrappedComponent {\n constructor(props) {\n super(props);\n this.cacheValues(this.getCalculatedValues(props));\n }\n state = {};\n getEventState = Events.getEventState.bind(this);\n getScopedEvents = Events.getScopedEvents.bind(this);\n getEvents = (p, target, eventKey) => {\n return Events.getEvents.call(this, p, target, eventKey, this.getScopedEvents);\n };\n externalMutations = this.getExternalMutations(this.props);\n calculatedState = this.getStateChanges(this.props);\n globalEvents = {};\n prevGlobalEventKeys = [];\n boundGlobalEvents = {};\n shouldComponentUpdate(nextProps) {\n const externalMutations = this.getExternalMutations(nextProps);\n // @ts-expect-error \"Property 'animating' does not exist on type EventMixinCommonProps\"\n const animating = this.props.animating || this.props.animate;\n const newMutation = !isEqual(externalMutations, this.externalMutations);\n if (animating || newMutation) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n this.externalMutations = externalMutations;\n this.applyExternalMutations(nextProps, externalMutations);\n return true;\n }\n const calculatedState = this.getStateChanges(nextProps);\n if (!isEqual(this.calculatedState, calculatedState)) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n return true;\n }\n if (!isEqual(this.props, nextProps)) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n return true;\n }\n return false;\n }\n componentDidMount() {\n const globalEventKeys = Object.keys(this.globalEvents);\n globalEventKeys.forEach(key => this.addGlobalListener(key));\n this.prevGlobalEventKeys = globalEventKeys;\n }\n componentDidUpdate(prevProps) {\n const calculatedState = this.getStateChanges(prevProps);\n this.calculatedState = calculatedState;\n const globalEventKeys = Object.keys(this.globalEvents);\n const removedGlobalEventKeys = difference(this.prevGlobalEventKeys, globalEventKeys);\n removedGlobalEventKeys.forEach(key => this.removeGlobalListener(key));\n const addedGlobalEventKeys = difference(globalEventKeys, this.prevGlobalEventKeys);\n addedGlobalEventKeys.forEach(key => this.addGlobalListener(key));\n this.prevGlobalEventKeys = globalEventKeys;\n }\n componentWillUnmount() {\n this.prevGlobalEventKeys.forEach(key => this.removeGlobalListener(key));\n }\n addGlobalListener(key) {\n const boundListener = event => {\n const listener = this.globalEvents[key];\n return listener && listener(Events.emulateReactEvent(event));\n };\n this.boundGlobalEvents[key] = boundListener;\n window.addEventListener(Events.getGlobalEventNameFromKey(key), boundListener);\n }\n removeGlobalListener(key) {\n window.removeEventListener(Events.getGlobalEventNameFromKey(key), this.boundGlobalEvents[key]);\n }\n\n // compile all state changes from own and parent state. Order doesn't matter, as any state\n // state change should trigger a re-render\n getStateChanges(props) {\n if (!this.hasEvents) {\n return {};\n }\n const getState = (key, type) => {\n const result = defaults({}, this.getEventState(key, type), this.getSharedEventState(key, type));\n return isEmpty(result) ? undefined : result;\n };\n const components = options.components || defaultComponents;\n const stateChanges = components.map(component => {\n if (!props.standalone && component.name === \"parent\") {\n // don't check for changes on parent props for non-standalone components\n return undefined;\n }\n return component.index !== undefined ? getState(component.index, component.name) : this.dataKeys.map(key => getState(key, component.name)).filter(Boolean);\n }).filter(Boolean);\n return stateChanges;\n }\n applyExternalMutations(props, externalMutations) {\n if (!isEmpty(externalMutations)) {\n const callbacks = props.externalEventMutations.reduce((memo, mutation) => isFunction(mutation.callback) ? memo.concat(mutation.callback) : memo, []);\n const compiledCallbacks = callbacks.length ? () => {\n callbacks.forEach(c => c());\n } : undefined;\n this.setState(externalMutations, compiledCallbacks);\n }\n }\n getCalculatedValues(props) {\n const {\n sharedEvents\n } = props;\n const components = WrappedComponent.expectedComponents;\n const componentEvents = Events.getComponentEvents(props, components);\n const getSharedEventState = sharedEvents && isFunction(sharedEvents.getEventState) ? sharedEvents.getEventState : () => undefined;\n const baseProps = this.getBaseProps(props, getSharedEventState);\n const dataKeys = Object.keys(baseProps).filter(key => key !== \"parent\");\n const hasEvents = props.events || props.sharedEvents || componentEvents;\n const events = this.getAllEvents(props);\n return {\n componentEvents,\n getSharedEventState,\n baseProps,\n dataKeys,\n hasEvents,\n events\n };\n }\n getExternalMutations(props) {\n const {\n sharedEvents,\n externalEventMutations\n } = props;\n return isEmpty(externalEventMutations) || sharedEvents ? undefined : Events.getExternalMutations(externalEventMutations, this.baseProps, this.state);\n }\n cacheValues(obj) {\n Object.keys(obj).forEach(key => {\n this[key] = obj[key];\n });\n }\n getBaseProps(props, getSharedEventState) {\n const getSharedEventStateFunction = getSharedEventState || this.getSharedEventState.bind(this);\n const sharedParentState = getSharedEventStateFunction(\"parent\", \"parent\");\n const parentState = this.getEventState(\"parent\", \"parent\");\n const baseParentProps = defaults({}, parentState, sharedParentState);\n const parentPropsList = baseParentProps.parentControlledProps;\n const parentProps = parentPropsList ? pick(baseParentProps, parentPropsList) : {};\n const modifiedProps = defaults({}, parentProps, props);\n return typeof WrappedComponent.getBaseProps === \"function\" ? WrappedComponent.getBaseProps(modifiedProps) : {};\n }\n getAllEvents(props) {\n if (Array.isArray(this.componentEvents)) {\n return Array.isArray(props.events) ? this.componentEvents.concat(...props.events) : this.componentEvents;\n }\n return props.events;\n }\n getComponentProps(component, type, index) {\n const name = this.props.name || WrappedComponent.role;\n const key = this.dataKeys && this.dataKeys[index] || index;\n const id = `${name}-${type}-${key}`;\n const baseProps = this.baseProps[key] && this.baseProps[key][type] || this.baseProps[key];\n if (!baseProps && !this.hasEvents) {\n return undefined;\n }\n const currentProps = component && typeof component === \"object\" && \"props\" in component ? component.props : undefined;\n if (this.hasEvents) {\n const baseEvents = this.getEvents(this.props, type, key);\n const componentProps = defaults({\n index,\n key: id\n }, this.getEventState(key, type), this.getSharedEventState(key, type), currentProps, baseProps, {\n id\n });\n const events = defaults({}, Events.getPartialEvents(baseEvents, key, componentProps), componentProps.events);\n return Object.assign({}, componentProps, {\n events\n });\n }\n return defaults({\n index,\n key: id\n }, currentProps, baseProps, {\n id\n });\n }\n renderContainer(component, children) {\n const isContainer = component.type && component.type.role === \"container\";\n const parentProps = isContainer ? this.getComponentProps(component, \"parent\", \"parent\") : {};\n if (parentProps.events) {\n this.globalEvents = Events.getGlobalEvents(parentProps.events);\n parentProps.events = Events.omitGlobalEvents(parentProps.events);\n }\n return /*#__PURE__*/React.cloneElement(component, parentProps, children);\n }\n animateComponent(props, defaultAnimationWhitelist) {\n const animationWhitelist = typeof props.animate === \"object\" && props.animate?.animationWhitelist || defaultAnimationWhitelist;\n const Comp = this.constructor;\n return /*#__PURE__*/React.createElement(VictoryTransition, {\n animate: props.animate,\n animationWhitelist: animationWhitelist\n }, /*#__PURE__*/React.createElement(Comp, props));\n }\n\n // Used by `VictoryLine` and `VictoryArea`\n renderContinuousData(props) {\n const {\n dataComponent,\n labelComponent,\n groupComponent\n } = props;\n const dataKeys = this.dataKeys.filter(value => value !== \"all\");\n const labelComponents = dataKeys.reduce((memo, key) => {\n let newMemo = memo;\n const labelProps = this.getComponentProps(labelComponent, \"labels\", key);\n if (labelProps && labelProps.text !== undefined && labelProps.text !== null) {\n newMemo = newMemo.concat( /*#__PURE__*/React.cloneElement(labelComponent, labelProps));\n }\n return newMemo;\n }, []);\n const dataProps = this.getComponentProps(dataComponent, \"data\", \"all\");\n const children = [/*#__PURE__*/React.cloneElement(dataComponent, dataProps), ...labelComponents];\n return this.renderContainer(groupComponent, children);\n }\n renderData(props, shouldRenderDatum) {\n if (shouldRenderDatum === void 0) {\n shouldRenderDatum = datumHasXandY;\n }\n const {\n dataComponent,\n labelComponent,\n groupComponent\n } = props;\n const dataComponents = this.dataKeys.reduce((validDataComponents, _dataKey, index) => {\n const dataProps = this.getComponentProps(dataComponent, \"data\", index);\n if (shouldRenderDatum(dataProps.datum)) {\n validDataComponents.push( /*#__PURE__*/React.cloneElement(dataComponent, dataProps));\n }\n return validDataComponents;\n }, []);\n const labelComponents = this.dataKeys.map((_dataKey, index) => {\n const labelProps = this.getComponentProps(labelComponent, \"labels\", index);\n if (labelProps.text !== undefined && labelProps.text !== null) {\n return /*#__PURE__*/React.cloneElement(labelComponent, labelProps);\n }\n return undefined;\n }).filter(Boolean);\n const children = [...dataComponents, ...labelComponents];\n return this.renderContainer(groupComponent, children);\n }\n }\n return AddEventsMixin;\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isObject from \"lodash/isObject\";\nimport uniq from \"lodash/uniq\";\nimport orderBy from \"lodash/orderBy\";\nimport * as Collection from \"./collection\";\nimport * as Domain from \"./domain\";\nimport * as Helpers from \"./helpers\";\n/**\n * Returns the first argument it receives\n * @param value The value to return\n * @returns The value given\n */\nfunction identity(value) {\n return value;\n}\n\n/**\n * Returns the axis (x or y) of a particular axis component\n * @param {Object} props: the props object.\n * @param {Boolean} horizontal: true for horizontal charts\n * @returns {String} the dimension appropriate for the axis given its props\n */\nexport function getAxis(props) {\n const {\n dependentAxis\n } = props;\n return dependentAxis ? \"y\" : \"x\";\n}\n\n/**\n * Returns all axis components that pass a given predicate\n * @param {Array} childComponents: an array of children\n * @param {Function} predicate: a predicate function that will be called with each\n * @returns {Array} all axis components that pass the given predicate or []\n */\nexport function findAxisComponents(childComponents, predicate) {\n const predicateFunction = predicate || identity;\n const findAxes = children => {\n return children.reduce((memo, child) => {\n if (child.type && child.type.role === \"axis\" && predicateFunction(child)) {\n return memo.concat(child);\n } else if (child.props && child.props.children) {\n return memo.concat(findAxes(React.Children.toArray(child.props.children)));\n }\n return memo;\n }, []);\n };\n return findAxes(childComponents);\n}\n\n/**\n * Returns a single axis component of the desired axis type (x or y)\n * @param {Array} childComponents: an array of children\n * @param {String} axis: desired axis either \"x\" or \"y\".\n * @returns {ReactComponent} an axis component of the desired axis or undefined\n */\nexport function getAxisComponent(childComponents, axis) {\n const matchesAxis = component => {\n const type = component.type.getAxis(component.props);\n return type === axis;\n };\n return findAxisComponents(childComponents, matchesAxis)[0];\n}\n\n/**\n * Returns all axis components of the desired axis type (x or y) along with any\n * parent components excluding VictoryChart\n * @param {Array} childComponents: an optional array of children.\n * @param {String} type: desired axis either \"dependent\" or \"independent\".\n * @returns {ReactComponent} an axis component of the desired type or undefined\n */\nexport function getAxisComponentsWithParent(childComponents, type) {\n const matchesType = child => {\n return type === \"dependent\" ? child.props.dependentAxis : !child.props.dependentAxis;\n };\n const findComponents = children => {\n return children.reduce((memo, child) => {\n if (child.type && child.type.role === \"axis\" && matchesType(child)) {\n return memo.concat(child);\n } else if (child.props && child.props.children) {\n const childAxis = findComponents(React.Children.toArray(child.props.children));\n return childAxis.length > 0 ? memo.concat(child) : memo;\n }\n return memo;\n }, []);\n };\n return findComponents(childComponents);\n}\nexport function getOrigin(domain) {\n const getSingleOrigin = d => {\n const domainMin = Math.min(...d);\n const domainMax = Math.max(...d);\n return domainMax < 0 ? domainMax : Math.max(0, domainMin);\n };\n return {\n x: Collection.containsDates(domain.x) ? new Date(Math.min(...domain.x)) : getSingleOrigin(domain.x),\n y: Collection.containsDates(domain.y) ? new Date(Math.min(...domain.y)) : getSingleOrigin(domain.y)\n };\n}\nexport function getOriginSign(origin, domain) {\n const getSign = () => {\n return origin <= 0 && Math.max(...domain) <= 0 ? \"negative\" : \"positive\";\n };\n return Collection.containsDates(domain) ? \"positive\" : getSign();\n}\n\n/**\n * @param {Object} props: axis component props\n * @returns {Boolean} true when the axis is vertical\n */\nexport function isVertical(props) {\n const orientation = props.orientation || (props.dependentAxis ? \"left\" : \"bottom\");\n const vertical = {\n top: false,\n bottom: false,\n left: true,\n right: true\n };\n return vertical[orientation];\n}\n\n/**\n * @param {Object} props: axis component props\n * @returns {Boolean} true when tickValues contain strings\n */\nexport function stringTicks(props) {\n return props.tickValues !== undefined && Collection.containsStrings(props.tickValues);\n}\nfunction getDefaultTickFormat(props) {\n const {\n tickValues\n } = props;\n const axis = getAxis(props);\n const stringMap = props.stringMap && props.stringMap[axis];\n const fallbackFormat = tickValues && !Collection.containsDates(tickValues) ? x => x : undefined;\n if (!stringMap) {\n return stringTicks(props) ? (x, index) => tickValues[index] : fallbackFormat;\n }\n const invertedStringMap = stringMap && Helpers.invert(stringMap);\n const tickValueArray = orderBy(Object.values(stringMap), n => n);\n const dataNames = tickValueArray.map(tick => invertedStringMap[tick]);\n // string ticks should have one tick of padding at the beginning\n const dataTicks = [\"\", ...dataNames, \"\"];\n return x => dataTicks[x];\n}\nfunction getStringTicks(props) {\n const axis = getAxis(props);\n const stringMap = props.stringMap && props.stringMap[axis];\n const categories = Array.isArray(props.categories) ? props.categories : props.categories && props.categories[axis];\n const ticksFromCategories = categories && Collection.containsOnlyStrings(categories) ? categories.map(tick => stringMap[tick]) : undefined;\n const ticksFromStringMap = stringMap && Object.values(stringMap);\n return ticksFromCategories && ticksFromCategories.length !== 0 ? ticksFromCategories : ticksFromStringMap;\n}\nfunction getTickArray(props) {\n const {\n tickValues,\n tickFormat\n } = props;\n if (tickValues?.length === 0) {\n return [];\n }\n const axis = getAxis(props);\n const stringMap = props.stringMap && props.stringMap[axis];\n const getTicksFromFormat = () => {\n if (!tickFormat || !Array.isArray(tickFormat)) {\n return undefined;\n }\n return Collection.containsStrings(tickFormat) ? tickFormat.map((t, i) => i) : tickFormat;\n };\n let ticks = tickValues;\n if (stringMap) {\n ticks = getStringTicks(props);\n }\n if (tickValues && Collection.containsStrings(tickValues)) {\n ticks = stringMap ? tickValues.map(tick => stringMap[tick]) : Helpers.range(1, tickValues.length + 1);\n }\n const tickArray = ticks ? uniq(ticks) : getTicksFromFormat();\n const buildTickArray = arr => {\n const newTickArray = [];\n const domain = props.domain && props.domain[axis] || props.domain;\n if (arr) {\n arr.forEach((t, index) => {\n if (Array.isArray(domain)) {\n if (t >= Collection.getMinValue(domain).valueOf() && t <= Collection.getMaxValue(domain).valueOf()) {\n newTickArray.push({\n value: t,\n index\n });\n }\n } else {\n newTickArray.push({\n value: t,\n index\n });\n }\n });\n return newTickArray;\n }\n return undefined;\n };\n return Array.isArray(tickArray) && tickArray.length ? buildTickArray(tickArray) : undefined;\n}\nexport function getTickFormat(props, scale) {\n const {\n tickFormat\n } = props;\n const axis = getAxis(props);\n const stringMap = props.stringMap && props.stringMap[axis];\n if (!tickFormat) {\n const defaultTickFormat = getDefaultTickFormat(props);\n // If there is no user-provided tick format, we use d3's tickFormat function\n // by default. This changed the default formatting for some scale types when\n // we upgraded to d3-scale@4..\n const scaleTickFormat = scale.tickFormat && Helpers.isFunction(scale.tickFormat) ? scale.tickFormat() : x => x;\n return defaultTickFormat || scaleTickFormat;\n } else if (tickFormat && Array.isArray(tickFormat)) {\n const tickArray = getTickArray(props);\n const tickArrayIndices = tickArray?.map(v => v.index);\n const filteredTickFormat = tickFormat.filter((t, index) => tickArrayIndices?.includes(index));\n return (x, index) => filteredTickFormat[index];\n } else if (tickFormat && Helpers.isFunction(tickFormat)) {\n const applyStringTicks = (tick, index, ticks) => {\n const invertedStringMap = Helpers.invert(stringMap);\n const stringTickArray = ticks.map(t => invertedStringMap[t]);\n return props.tickFormat(invertedStringMap[tick], index, stringTickArray);\n };\n return stringMap ? applyStringTicks : tickFormat;\n }\n return x => x;\n}\nfunction downsampleTicks(ticks, tickCount) {\n if (!tickCount || !Array.isArray(ticks) || ticks.length <= tickCount) {\n return ticks;\n }\n const k = Math.floor(ticks.length / tickCount);\n return ticks.filter((d, i) => i % k === 0);\n}\nexport function getTicks(props, scale, filterZero) {\n if (filterZero === void 0) {\n filterZero = false;\n }\n const {\n tickCount\n } = props;\n const tickArray = getTickArray(props);\n if (tickArray?.length === 0) {\n return [\"\"];\n }\n const tickValues = tickArray ? tickArray.map(v => v.value) : undefined;\n if (tickValues) {\n return downsampleTicks(tickValues, tickCount);\n } else if (scale.ticks && Helpers.isFunction(scale.ticks)) {\n // eslint-disable-next-line no-magic-numbers\n const defaultTickCount = tickCount || 5;\n const scaleTicks = scale.ticks(defaultTickCount);\n const scaledTickArray = Array.isArray(scaleTicks) && scaleTicks.length ? scaleTicks : scale.domain();\n const ticks = downsampleTicks(scaledTickArray, tickCount);\n if (filterZero) {\n const filteredTicks = ticks.filter(value => value !== 0);\n return filteredTicks.length ? filteredTicks : ticks;\n }\n return ticks;\n }\n return scale.domain();\n}\n\n/**\n * Returns a domain based tickValues\n * @param {Object} props: the props object\n * @param {String} axis: either x or y\n * @returns {Array} returns a domain from tickValues\n */\n\nfunction getDomainFromData(props, axis) {\n const {\n polar,\n startAngle = 0,\n endAngle = 360\n } = props;\n const tickArray = getTickArray(props);\n const tickValues = tickArray && tickArray?.length !== 0 ? tickArray.map(v => v.value) : undefined;\n if (!Array.isArray(tickValues)) {\n return undefined;\n }\n const minDomain = Domain.getMinFromProps(props, axis);\n const maxDomain = Domain.getMaxFromProps(props, axis);\n const tickStrings = stringTicks(props);\n const ticks = tickValues.map(value => Number(value));\n const defaultMin = tickStrings ? 1 : Collection.getMinValue(ticks);\n const defaultMax = tickStrings ? tickValues.length : Collection.getMaxValue(ticks);\n const min = minDomain !== undefined ? minDomain : defaultMin;\n const max = maxDomain !== undefined ? maxDomain : defaultMax;\n const initialDomain = Domain.getDomainFromMinMax(min, max);\n const domain = polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? Domain.getSymmetricDomain(initialDomain, ticks) : initialDomain;\n if (isVertical(props) && !polar) {\n domain.reverse();\n }\n return domain;\n}\n\n// exposed for use by VictoryChart\nexport function getDomain(props, axis) {\n const inherentAxis = getAxis(props);\n if (axis && axis !== inherentAxis) {\n return undefined;\n }\n return Domain.createDomainFunction(getDomainFromData)(props, inherentAxis);\n}\nexport function getAxisValue(props, axis) {\n if (!props.axisValue) {\n return undefined;\n }\n const scaleAxis = axis === \"x\" ? \"y\" : \"x\";\n const scale = isObject(props.scale) && Helpers.isFunction(props.scale[scaleAxis]) ? props.scale[scaleAxis] : undefined;\n if (!scale) {\n return undefined;\n }\n const stringMapAxis = axis === \"x\" ? \"y\" : \"x\";\n const stringMap = isObject(props.stringMap) && props.stringMap[stringMapAxis];\n const axisValue = stringMap && typeof props.axisValue === \"string\" ? stringMap[props.axisValue] : props.axisValue;\n return scale(axisValue);\n}\nexport function modifyProps(props, fallbackProps) {\n if (!isObject(props.theme)) {\n return Helpers.modifyProps(props, fallbackProps, \"axis\");\n }\n let role = \"axis\";\n if (props.dependentAxis && props.theme.dependentAxis) {\n role = \"dependentAxis\";\n } else if (!props.dependentAxis && props.theme.independentAxis) {\n role = \"independentAxis\";\n }\n if (role === \"axis\") {\n return Helpers.modifyProps(props, fallbackProps, \"axis\");\n }\n const axisTheme = defaults({}, props.theme[role], props.theme.axis);\n const theme = Object.assign({}, props.theme, {\n axis: axisTheme\n });\n return Helpers.modifyProps(Object.assign({}, props, {\n theme\n }), fallbackProps, \"axis\");\n}","function isNonEmptyArray(collection) {\n return Array.isArray(collection) && collection.length > 0;\n}\nexport function containsStrings(collection) {\n return Array.isArray(collection) && collection.some(value => typeof value === \"string\");\n}\nexport function containsDates(collection) {\n return Array.isArray(collection) && collection.some(value => value instanceof Date);\n}\nexport function containsNumbers(collection) {\n return Array.isArray(collection) && collection.some(value => typeof value === \"number\");\n}\nexport function containsOnlyStrings(collection) {\n return isNonEmptyArray(collection) && collection.every(value => typeof value === \"string\");\n}\n\n/**\n * Creates an array of array values not included in the other given arrays\n * @param a The array to inspect\n * @param b The values to exclude\n * @returns The new array of filtered values\n */\nexport function difference(a, b) {\n if (a && b) {\n return a.filter(value => !b.includes(value));\n }\n return [];\n}\nexport function isArrayOfArrays(collection) {\n return isNonEmptyArray(collection) && collection.every(Array.isArray);\n}\nexport function removeUndefined(arr) {\n return arr.filter(el => el !== undefined);\n}\nexport function getMaxValue(arr) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n const array = arr.concat(values);\n return containsDates(array) ? new Date(Math.max(...array)) // Dates will be coerced to numbers\n : Math.max(...array);\n}\nexport function getMinValue(arr) {\n for (var _len2 = arguments.length, values = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n values[_key2 - 1] = arguments[_key2];\n }\n const array = arr.concat(values);\n return containsDates(array) ? new Date(Math.min(...array)) // Dates will be coerced to numbers\n : Math.min(...array);\n}","export const IMMUTABLE_ITERABLE = \"@@__IMMUTABLE_ITERABLE__@@\";\nexport const IMMUTABLE_RECORD = \"@@__IMMUTABLE_RECORD__@@\";\nexport const IMMUTABLE_LIST = \"@@__IMMUTABLE_LIST__@@\";\nexport const IMMUTABLE_MAP = \"@@__IMMUTABLE_MAP__@@\";\nexport function isIterable(x) {\n return !!(x && x[IMMUTABLE_ITERABLE]);\n}\nexport function isRecord(x) {\n return !!(x && x[IMMUTABLE_RECORD]);\n}\nexport function isImmutable(x) {\n return isIterable(x) || isRecord(x);\n}\nexport function isList(x) {\n return !!(x && x[IMMUTABLE_LIST]);\n}\nexport function isMap(x) {\n return !!(x && x[IMMUTABLE_MAP]);\n}\nexport function shallowToJS(x, whitelist) {\n return isIterable(x) ? x.reduce((result, curr, key) => {\n let newCurr = curr;\n if (whitelist && whitelist[key]) {\n newCurr = shallowToJS(curr);\n }\n result[key] = newCurr;\n return result;\n }, isList(x) ? [] : {}) : x;\n}","import React from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport isEqual from \"lodash/isEqual\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport isUndefined from \"lodash/isUndefined\";\nimport omitBy from \"lodash/omitBy\";\nimport orderBy from \"lodash/orderBy\";\nimport property from \"lodash/property\";\nimport uniq from \"lodash/uniq\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\";\nimport * as Scale from \"./scale\";\nimport * as Immutable from \"./immutable\";\n\n// Private Functions\n\nfunction parseDatum(datum) {\n const immutableDatumWhitelist = {\n errorX: true,\n errorY: true\n };\n return Immutable.isImmutable(datum) ? Immutable.shallowToJS(datum, immutableDatumWhitelist) : datum;\n}\nfunction getLength(data) {\n return Immutable.isIterable(data) ? data.size : data.length;\n}\n\n// Returns generated data for a given axis based on domain and sample from props\nfunction generateDataArray(props, axis) {\n const propsDomain = isPlainObject(props.domain) ? props.domain[axis] : props.domain;\n const domain = propsDomain || Scale.getBaseScale(props, axis).domain();\n const samples = props.samples || 1;\n const domainMax = Math.max(...domain);\n const domainMin = Math.min(...domain);\n const step = (domainMax - domainMin) / samples;\n const values = Helpers.range(domainMin, domainMax, step);\n return values[values.length - 1] === domainMax ? values : values.concat(domainMax);\n}\n\n// Returns sorted data. If no sort keys are provided, data is returned unaltered.\nfunction sortData(dataset, sortKey, sortOrder) {\n if (sortOrder === void 0) {\n sortOrder = \"ascending\";\n }\n if (!sortKey) {\n return dataset;\n }\n\n // Ensures previous VictoryLine api for sortKey prop stays consistent\n let formattedSortKey = sortKey;\n if (sortKey === \"x\" || sortKey === \"y\") {\n formattedSortKey = `_${sortKey}`;\n }\n const order = sortOrder === \"ascending\" ? \"asc\" : \"desc\";\n return orderBy(dataset, formattedSortKey, order);\n}\n\n// This method will remove data points that break certain scales. (log scale only)\nfunction cleanData(dataset, props) {\n const smallNumber = 1 / Number.MAX_SAFE_INTEGER;\n const scaleType = {\n x: Scale.getScaleType(props, \"x\"),\n y: Scale.getScaleType(props, \"y\")\n };\n if (scaleType.x !== \"log\" && scaleType.y !== \"log\") {\n return dataset;\n }\n const rules = (datum, axis) => {\n return scaleType[axis] === \"log\" ? datum[`_${axis}`] !== 0 : true;\n };\n const sanitize = datum => {\n const _x = rules(datum, \"x\") ? datum._x : smallNumber;\n const _y = rules(datum, \"y\") ? datum._y : smallNumber;\n const _y0 = rules(datum, \"y0\") ? datum._y0 : smallNumber;\n return Object.assign({}, datum, {\n _x,\n _y,\n _y0\n });\n };\n return dataset.map(datum => {\n if (rules(datum, \"x\") && rules(datum, \"y\") && rules(datum, \"y0\")) {\n return datum;\n }\n return sanitize(datum);\n });\n}\n\n// Returns a data accessor given an eventKey prop\nfunction getEventKey(key) {\n // creates a data accessor function\n // given a property key, path, array index, or null for identity.\n if (Helpers.isFunction(key)) {\n return key;\n } else if (key === null || key === undefined) {\n return () => undefined;\n }\n // otherwise, assume it is an array index, property key or path (_.property handles all three)\n return property(key);\n}\n\n// Returns data with an eventKey prop added to each datum\nfunction addEventKeys(props, data) {\n const hasEventKeyAccessor = !!props.eventKey;\n const eventKeyAccessor = getEventKey(props.eventKey);\n return data.map((datum, index) => {\n if (datum.eventKey !== undefined) {\n return datum;\n } else if (hasEventKeyAccessor) {\n const eventKey = eventKeyAccessor(datum, index);\n return eventKey !== undefined ? Object.assign({\n eventKey\n }, datum) : datum;\n }\n return datum;\n });\n}\n\n// Exported Functions\n\n// This method will remove data points that fall outside of the desired domain (non-continuous charts only)\nexport function formatDataFromDomain(dataset, domain, defaultBaseline) {\n const exists = val => val !== undefined;\n const minDomainX = Collection.getMinValue(domain.x);\n const maxDomainX = Collection.getMaxValue(domain.x);\n const minDomainY = Collection.getMinValue(domain.y);\n const maxDomainY = Collection.getMaxValue(domain.y);\n const underMin = min => val => exists(val) && val < min;\n const overMax = max => val => exists(val) && val > max;\n const isUnderMinX = underMin(minDomainX);\n const isUnderMinY = underMin(minDomainY);\n const isOverMaxX = overMax(maxDomainX);\n const isOverMaxY = overMax(maxDomainY);\n return dataset.map(datum => {\n let {\n _x,\n _y,\n _y0,\n _y1\n } = datum;\n\n // single x point less than min domain\n if (isUnderMinX(_x) || isOverMaxX(_x)) _x = null;\n const baseline = exists(_y0) ? _y0 : defaultBaseline;\n const value = exists(_y1) ? _y1 : _y;\n if (!exists(value)) return datum;\n\n // value only and less than min domain or greater than max domain\n if (!exists(baseline) && (isUnderMinY(value) || isOverMaxY(value))) _y = null;\n\n // baseline and value are both less than min domain or both greater than max domain\n if (isUnderMinY(baseline) && isUnderMinY(value) || isOverMaxY(baseline) && isOverMaxY(value)) _y = _y0 = _y1 = null;\n\n // baseline and value with only baseline below min, set baseline to minDomainY\n if (isUnderMinY(baseline) && !isUnderMinY(value)) _y0 = minDomainY;\n // baseline and value with only baseline above max, set baseline to maxDomainY\n if (isOverMaxY(baseline) && !isOverMaxY(value)) _y0 = maxDomainY;\n return Object.assign({}, datum, omitBy({\n _x,\n _y,\n _y0,\n _y1\n }, isUndefined));\n });\n}\n\n/**\n * Returns an object mapping string data to numeric data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Object} an object mapping string data to numeric data\n */\nexport function createStringMap(props, axis) {\n const stringsFromAxes = getStringsFromAxes(props, axis);\n const stringsFromCategories = getStringsFromCategories(props, axis);\n const stringsFromData = getStringsFromData(props, axis);\n const allStrings = uniq([...stringsFromAxes, ...stringsFromCategories, ...stringsFromData]);\n return allStrings.length === 0 ? null : allStrings.reduce((memo, string, index) => {\n memo[string] = index + 1;\n return memo;\n }, {});\n}\n\n/**\n * Reduces the size of a data array, such that it is <= maxPoints.\n * @param {Array} data: an array of data; must be sorted\n * @param {Number} maxPoints: maximum number of data points to return\n * @param {Number} startingIndex: the index of the data[0] *in the entire dataset*; this function\n assumes `data` param is a subset of larger dataset that has been zoommed\n * @returns {Array} an array of data, a subset of data param\n */\nexport function downsample(data, maxPoints, startingIndex) {\n if (startingIndex === void 0) {\n startingIndex = 0;\n }\n // ensures that the downampling of data while zooming looks good.\n const dataLength = getLength(data);\n if (dataLength > maxPoints) {\n // limit k to powers of 2, e.g. 64, 128, 256\n // so that the same points will be chosen reliably, reducing flicker on zoom\n const k = Math.pow(2, Math.ceil(Math.log2(dataLength / maxPoints)));\n return data.filter(\n // ensure modulo is always calculated from same reference: i + startingIndex\n (d, i) => (i + startingIndex) % k === 0);\n }\n return data;\n}\n\n/**\n * Returns formatted data. Data accessors are applied, and string values are replaced.\n * @param {Array} dataset: the original domain\n * @param {Object} props: the props object\n * @param {Array} expectedKeys: an array of expected data keys\n * @returns {Array} the formatted data\n */\nexport function formatData(dataset, props, expectedKeys) {\n const isArrayOrIterable = Array.isArray(dataset) || Immutable.isIterable(dataset);\n if (!isArrayOrIterable || getLength(dataset) < 1) {\n return [];\n }\n const defaultKeys = [\"x\", \"y\", \"y0\"];\n // TODO: We shouldn’t mutate the expectedKeys param here,\n // but we need to figure out why changing it causes regressions in tests.\n // eslint-disable-next-line no-param-reassign\n expectedKeys = Array.isArray(expectedKeys) ? expectedKeys : defaultKeys;\n const createAccessor = name => {\n return Helpers.createAccessor(props[name] !== undefined ? props[name] : name);\n };\n const accessor = expectedKeys.reduce((memo, type) => {\n memo[type] = createAccessor(type);\n return memo;\n }, {});\n const preformattedData = isEqual(expectedKeys, defaultKeys) && props.x === \"_x\" && props.y === \"_y\" && props.y0 === \"_y0\";\n let stringMap;\n if (preformattedData === false) {\n // stringMap is not required if the data is preformatted\n stringMap = {\n x: expectedKeys.indexOf(\"x\") !== -1 ? createStringMap(props, \"x\") : undefined,\n y: expectedKeys.indexOf(\"y\") !== -1 ? createStringMap(props, \"y\") : undefined,\n y0: expectedKeys.indexOf(\"y0\") !== -1 ? createStringMap(props, \"y\") : undefined\n };\n }\n const data = preformattedData ? dataset : dataset.reduce((dataArr, datum, index) => {\n const parsedDatum = parseDatum(datum);\n const fallbackValues = {\n x: index,\n y: parsedDatum\n };\n const processedValues = expectedKeys.reduce((memo, type) => {\n const processedValue = accessor[type](parsedDatum);\n const value = processedValue !== undefined ? processedValue : fallbackValues[type];\n if (value !== undefined) {\n if (typeof value === \"string\" && stringMap[type]) {\n memo[`${type}Name`] = value;\n memo[`_${type}`] = stringMap[type][value];\n } else {\n memo[`_${type}`] = value;\n }\n }\n return memo;\n }, {});\n const formattedDatum = Object.assign({}, processedValues, parsedDatum);\n if (!isEmpty(formattedDatum)) {\n dataArr.push(formattedDatum);\n }\n return dataArr;\n }, []);\n const sortedData = sortData(data, props.sortKey, props.sortOrder);\n const cleanedData = cleanData(sortedData, props);\n return addEventKeys(props, cleanedData);\n}\n\n/**\n * Returns generated x and y data based on domain and sample from props\n * @param {Object} props: the props object\n * @returns {Array} an array of data\n */\nexport function generateData(props) {\n const xValues = generateDataArray(props, \"x\");\n const yValues = generateDataArray(props, \"y\");\n const values = xValues.map((x, i) => {\n return {\n x,\n y: yValues[i]\n };\n });\n return values;\n}\n\n/**\n * Returns an array of categories for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of categories\n */\nexport function getCategories(props, axis) {\n return props.categories && !Array.isArray(props.categories) ? props.categories[axis] : props.categories;\n}\n\n/**\n * Returns an array of formatted data\n * @param {Object} props: the props object\n * @returns {Array} an array of data\n */\nexport function getData(props) {\n return props.data ? formatData(props.data, props) : formatData(generateData(props), props);\n}\n\n/**\n * Returns an array of strings from axis tickValues for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\nexport function getStringsFromAxes(props, axis) {\n const {\n tickValues,\n tickFormat\n } = props;\n let tickValueArray;\n if (!tickValues || !Array.isArray(tickValues) && !tickValues[axis]) {\n tickValueArray = tickFormat && Array.isArray(tickFormat) ? tickFormat : [];\n } else {\n tickValueArray = tickValues[axis] || tickValues;\n }\n return tickValueArray.filter(val => typeof val === \"string\");\n}\n\n/**\n * Returns an array of strings from categories for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\nexport function getStringsFromCategories(props, axis) {\n if (!props.categories) {\n return [];\n }\n const categories = getCategories(props, axis);\n const categoryStrings = categories && categories.filter(val => typeof val === \"string\");\n return categoryStrings ? Collection.removeUndefined(categoryStrings) : [];\n}\n\n/**\n * Returns an array of strings from data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\nexport function getStringsFromData(props, axis) {\n const isArrayOrIterable = Array.isArray(props.data) || Immutable.isIterable(props.data);\n if (!isArrayOrIterable) {\n return [];\n }\n const key = props[axis] === undefined ? axis : props[axis];\n const accessor = Helpers.createAccessor(key);\n\n // support immutable data\n const data = props.data.reduce((memo, d) => {\n memo.push(parseDatum(d));\n return memo;\n }, []);\n const sortedData = sortData(data, props.sortKey, props.sortOrder);\n const dataStrings = sortedData.reduce((dataArr, datum) => {\n const parsedDatum = parseDatum(datum);\n dataArr.push(accessor(parsedDatum));\n return dataArr;\n }, []).filter(datum => typeof datum === \"string\");\n\n // return a unique set of strings\n return dataStrings.reduce((prev, curr) => {\n if (curr !== undefined && curr !== null && prev.indexOf(curr) === -1) {\n prev.push(curr);\n }\n return prev;\n }, []);\n}\n\n/**\n * Checks whether a given component can be used to calculate data\n * @param {Component} component: a React component instance\n * @returns {Boolean} Returns true if the given component has a role included in the whitelist\n */\nexport function isDataComponent(component) {\n const getRole = child => {\n return child && child.type ? child.type.role : \"\";\n };\n let role = getRole(component);\n if (role === \"portal\") {\n const children = React.Children.toArray(component.props.children);\n role = children.length ? getRole(children[0]) : \"\";\n }\n const whitelist = [\"area\", \"bar\", \"boxplot\", \"candlestick\", \"errorbar\", \"group\", \"histogram\", \"line\", \"pie\", \"scatter\", \"stack\", \"voronoi\"];\n return whitelist.includes(role);\n}","export function continuousTransitions() {\n return {\n onLoad: {\n duration: 2000\n },\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n };\n}\nexport function continuousPolarTransitions() {\n return {\n onLoad: {\n duration: 2000,\n before: () => ({\n _y: 0,\n _y1: 0,\n _y0: 0\n }),\n after: datum => ({\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n })\n },\n onExit: {\n duration: 500,\n before: (datum, index, data) => {\n const adjacent = attr => {\n const adj = index === 0 ? data[index + 1] : data[index - 1];\n return adj[attr];\n };\n return {\n _x: adjacent(\"_x\"),\n _y: adjacent(\"_y\"),\n _y0: adjacent(\"_y0\")\n };\n }\n },\n onEnter: {\n duration: 500,\n before: (datum, index, data) => {\n const adjacent = attr => {\n const adj = index === 0 ? data[index + 1] : data[index - 1];\n return adj[attr];\n };\n return {\n _x: adjacent(\"_x\"),\n _y: adjacent(\"_y\"),\n _y0: adjacent(\"_y0\")\n };\n },\n after: datum => ({\n _x: datum._x,\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n })\n }\n };\n}\nexport function discreteTransitions() {\n return {\n onLoad: {\n duration: 2000,\n before: () => ({\n opacity: 0\n }),\n after: datum => datum\n },\n onExit: {\n duration: 600,\n before: () => ({\n opacity: 0\n })\n },\n onEnter: {\n duration: 600,\n before: () => ({\n opacity: 0\n }),\n after: datum => datum\n }\n };\n}","import React from \"react\";\nimport isDate from \"lodash/isDate\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport sortedUniq from \"lodash/sortedUniq\";\nimport * as Data from \"./data\";\nimport * as Scale from \"./scale\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\";\n\n// Private Methods\n\nfunction cleanDomain(domain, props, axis) {\n const scaleType = Scale.getScaleType(props, axis);\n if (scaleType !== \"log\") {\n return domain;\n }\n const rules = dom => {\n const almostZero = dom[0] < 0 || dom[1] < 0 ? -1 / Number.MAX_SAFE_INTEGER : 1 / Number.MAX_SAFE_INTEGER;\n const domainOne = dom[0] === 0 ? almostZero : dom[0];\n const domainTwo = dom[1] === 0 ? almostZero : dom[1];\n return [domainOne, domainTwo];\n };\n return rules(domain);\n}\nfunction getDomainPadding(props, axis) {\n const formatPadding = padding => {\n return Array.isArray(padding) ? {\n left: padding[0],\n right: padding[1]\n } : {\n left: padding,\n right: padding\n };\n };\n return isPlainObject(props.domainPadding) ? formatPadding(props.domainPadding[axis]) : formatPadding(props.domainPadding);\n}\nfunction getFlatData(dataset, axis) {\n const axisKey = `_${axis}`;\n return dataset.flat().map(datum => {\n return datum[axisKey] && datum[axisKey][1] !== undefined ? datum[axisKey][1] : datum[axisKey];\n });\n}\nfunction getExtremeFromData(dataset, axis, type) {\n if (type === void 0) {\n type = \"min\";\n }\n const getExtreme = arr => type === \"max\" ? Math.max(...arr) : Math.min(...arr);\n const initialValue = type === \"max\" ? -Infinity : Infinity;\n let containsDate = false;\n const result = dataset.flat().reduce((memo, datum) => {\n const current0 = datum[`_${axis}0`] !== undefined ? datum[`_${axis}0`] : datum[`_${axis}`];\n const current1 = datum[`_${axis}1`] !== undefined ? datum[`_${axis}1`] : datum[`_${axis}`];\n const current = getExtreme([current0, current1]);\n containsDate = containsDate || current0 instanceof Date || current1 instanceof Date;\n return getExtreme([memo, current]);\n }, initialValue);\n return containsDate ? new Date(result) : result;\n}\nfunction padDomain(domain, props, axis) {\n if (!props.domainPadding) {\n return domain;\n }\n const minDomain = getMinFromProps(props, axis);\n const maxDomain = getMaxFromProps(props, axis);\n const padding = getDomainPadding(props, axis);\n if (!padding.left && !padding.right) {\n return domain;\n }\n const min = Collection.getMinValue(domain);\n const max = Collection.getMaxValue(domain);\n const currentAxis = Helpers.getCurrentAxis(axis, props.horizontal);\n const range = Helpers.getRange(props, currentAxis);\n const rangeExtent = Math.abs(range[0] - range[1]);\n const paddedRangeExtent = Math.max(rangeExtent - padding.left - padding.right, 1);\n const paddedDomainExtent = Math.abs(max.valueOf() - min.valueOf()) / paddedRangeExtent * rangeExtent;\n const simplePadding = {\n left: paddedDomainExtent * padding.left / rangeExtent,\n right: paddedDomainExtent * padding.right / rangeExtent\n };\n let paddedDomain = {\n min: min.valueOf() - simplePadding.left,\n max: max.valueOf() + simplePadding.right\n };\n const singleQuadrantDomainPadding = isPlainObject(props.singleQuadrantDomainPadding) ? props.singleQuadrantDomainPadding[axis] : props.singleQuadrantDomainPadding;\n const addsQuadrants = min.valueOf() >= 0 && paddedDomain.min <= 0 || max.valueOf() <= 0 && paddedDomain.max >= 0;\n const adjust = (val, type) => {\n const coerce = type === \"min\" && min.valueOf() >= 0 && val <= 0 || type === \"max\" && max.valueOf() <= 0 && val >= 0;\n return coerce ? 0 : val;\n };\n if (addsQuadrants && singleQuadrantDomainPadding !== false) {\n // Naive initial padding calculation\n const initialPadding = {\n // @ts-expect-error `max/min` might be dates\n left: Math.abs(max - min) * padding.left / rangeExtent,\n // @ts-expect-error `max/min` might be dates\n right: Math.abs(max - min) * padding.right / rangeExtent\n };\n\n // Adjust the domain by the initial padding\n const adjustedDomain = {\n min: adjust(min.valueOf() - initialPadding.left, \"min\"),\n max: adjust(max.valueOf() + initialPadding.right, \"max\")\n };\n\n // re-calculate padding, taking the adjusted domain into account\n const finalPadding = {\n left: Math.abs(adjustedDomain.max - adjustedDomain.min) * padding.left / rangeExtent,\n right: Math.abs(adjustedDomain.max - adjustedDomain.min) * padding.right / rangeExtent\n };\n\n // Adjust the domain by the final padding\n paddedDomain = {\n min: adjust(min.valueOf() - finalPadding.left, \"min\"),\n max: adjust(max.valueOf() + finalPadding.right, \"max\")\n };\n }\n\n // default to minDomain / maxDomain if they exist\n const finalDomain = {\n min: minDomain !== undefined ? minDomain : paddedDomain.min,\n max: maxDomain !== undefined ? maxDomain : paddedDomain.max\n };\n return min instanceof Date || max instanceof Date ? getDomainFromMinMax(new Date(finalDomain.min), new Date(finalDomain.max)) : getDomainFromMinMax(finalDomain.min, finalDomain.max);\n}\n\n// Public Methods\n\n/**\n * Returns a getDomain function\n * @param {Function} getDomainFromDataFunction: a function that takes props and axis and\n * returns a domain based on data\n * @param {Function} formatDomainFunction: a function that takes domain, props, and axis and\n * returns a formatted domain\n * @returns {Function} a function that takes props and axis and returns a formatted domain\n */\nexport function createDomainFunction(getDomainFromDataFunction, formatDomainFunction) {\n const getDomainFromDataFn = Helpers.isFunction(getDomainFromDataFunction) ? getDomainFromDataFunction : getDomainFromData;\n const formatDomainFn = Helpers.isFunction(formatDomainFunction) ? formatDomainFunction : formatDomain;\n return (props, axis) => {\n const propsDomain = getDomainFromProps(props, axis);\n if (propsDomain) {\n return formatDomainFn(propsDomain, props, axis);\n }\n const categories = Data.getCategories(props, axis);\n const domain = categories ? getDomainFromCategories(props, axis, categories) : getDomainFromDataFn(props, axis);\n return domain ? formatDomainFn(domain, props, axis) : undefined;\n };\n}\n\n/**\n * Returns a formatted domain.\n * @param {Array} domain: a domain in the form of a two element array\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} a domain in the form of a two element array\n */\nexport function formatDomain(domain, props, axis) {\n return cleanDomain(padDomain(domain, props, axis), props, axis);\n}\n\n/**\n * Returns a domain for a given axis based on props, category, or data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} the domain for the given axis\n */\nexport function getDomain(props, axis) {\n return createDomainFunction()(props, axis);\n}\n\n/**\n * Returns a domain based on categories if they exist\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @param {Array} categories: an array of categories corresponding to a given axis\n * @returns {Array|undefined} returns a domain from categories or undefined\n */\nexport function getDomainFromCategories(props, axis, categories) {\n const categoriesArray = categories || Data.getCategories(props, axis);\n const {\n polar,\n startAngle = 0,\n endAngle = 360\n } = props;\n if (!categoriesArray) {\n return undefined;\n }\n const minDomain = getMinFromProps(props, axis);\n const maxDomain = getMaxFromProps(props, axis);\n const stringArray = Collection.containsStrings(categoriesArray) ? Data.getStringsFromCategories(props, axis) : [];\n const stringMap = stringArray.length === 0 ? null : stringArray.reduce((memo, string, index) => {\n memo[string] = index + 1;\n return memo;\n }, {});\n const categoryValues = stringMap ? categoriesArray.map(value => stringMap[value]) : categoriesArray;\n const min = minDomain !== undefined ? minDomain : Collection.getMinValue(categoryValues);\n const max = maxDomain !== undefined ? maxDomain : Collection.getMaxValue(categoryValues);\n const categoryDomain = getDomainFromMinMax(min, max);\n return polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? getSymmetricDomain(categoryDomain, categoryValues) : categoryDomain;\n}\n\n/**\n * Returns a domain from a dataset for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @param {Array} dataset: an array of data\n * @returns {Array} the domain based on data\n */\nexport function getDomainFromData(props, axis, dataset) {\n const datasetArray = dataset || Data.getData(props);\n const {\n polar,\n startAngle = 0,\n endAngle = 360\n } = props;\n const minDomain = getMinFromProps(props, axis);\n const maxDomain = getMaxFromProps(props, axis);\n if (datasetArray.length < 1) {\n return minDomain !== undefined && maxDomain !== undefined ? getDomainFromMinMax(minDomain, maxDomain) : undefined;\n }\n const min = minDomain !== undefined ? minDomain : getExtremeFromData(datasetArray, axis, \"min\");\n const max = maxDomain !== undefined ? maxDomain : getExtremeFromData(datasetArray, axis, \"max\");\n const domain = getDomainFromMinMax(min, max);\n return polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? getSymmetricDomain(domain, getFlatData(datasetArray, axis)) : domain;\n}\n\n/**\n * Returns a domain in the form of a two element array given a min and max value.\n * @param {Number|Date} min: the props object\n * @param {Number|Date} max: the current axis\n * @returns {Array} the minDomain based on props\n */\nexport function getDomainFromMinMax(min, max) {\n const getSinglePointDomain = val => {\n // d3-scale does not properly resolve very small differences.\n const verySmallNumber =\n // eslint-disable-next-line no-magic-numbers\n val === 0 ? 2 * Math.pow(10, -10) : Math.pow(10, -10);\n const verySmallDate = 1;\n const minVal = val instanceof Date ? new Date(Number(val) - verySmallDate) : Number(val) - verySmallNumber;\n const maxVal = val instanceof Date ? new Date(Number(val) + verySmallDate) : Number(val) + verySmallNumber;\n return val === 0 ? [0, maxVal] : [minVal, maxVal];\n };\n return Number(min) === Number(max) ? getSinglePointDomain(max) : [min, max];\n}\n\n/**\n * Returns a the domain for a given axis if domain is given in props\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array|undefined} the domain based on props\n */\nexport function getDomainFromProps(props, axis) {\n const minDomain = getMinFromProps(props, axis);\n const maxDomain = getMaxFromProps(props, axis);\n if (isPlainObject(props.domain) && props.domain[axis]) {\n return props.domain[axis];\n } else if (Array.isArray(props.domain)) {\n return props.domain;\n } else if (minDomain !== undefined && maxDomain !== undefined) {\n return getDomainFromMinMax(minDomain, maxDomain);\n }\n return undefined;\n}\n\n/**\n * Returns a domain for a given axis. This method forces the domain to include\n * zero unless the domain is explicitly specified in props.\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} the domain for the given axis\n */\nexport function getDomainWithZero(props, axis) {\n const propsDomain = getDomainFromProps(props, axis);\n if (propsDomain) {\n return propsDomain;\n }\n const dataset = Data.getData(props);\n const y0Min = dataset.reduce((min, datum) => datum._y0 < min ? datum._y0 : min, Infinity);\n const ensureZero = domain => {\n if (axis === \"x\") {\n return domain;\n }\n const defaultMin = y0Min !== Infinity ? y0Min : 0;\n const maxDomainProp = getMaxFromProps(props, axis);\n const minDomainProp = getMinFromProps(props, axis);\n const max = maxDomainProp !== undefined ? maxDomainProp : Collection.getMaxValue(domain, defaultMin);\n const min = minDomainProp !== undefined ? minDomainProp : Collection.getMinValue(domain, defaultMin);\n return getDomainFromMinMax(min, max);\n };\n const getDomainFunction = () => {\n return getDomainFromData(props, axis, dataset);\n };\n const formatDomainFunction = domain => {\n return formatDomain(ensureZero(domain), props, axis);\n };\n return createDomainFunction(getDomainFunction, formatDomainFunction)(props, axis);\n}\n\n/**\n * Returns the maxDomain from props if it exists\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Number|Date|undefined} the maxDomain based on props\n */\nexport function getMaxFromProps(props, axis) {\n if (isPlainObject(props.maxDomain) && props.maxDomain[axis] !== undefined) {\n return props.maxDomain[axis];\n }\n return typeof props.maxDomain === \"number\" || isDate(props.maxDomain) ? props.maxDomain : undefined;\n}\n\n/**\n * Returns the minDomain from props if it exists\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Number|Date|undefined} the minDomain based on props\n */\nexport function getMinFromProps(props, axis) {\n if (isPlainObject(props.minDomain) && props.minDomain[axis] !== undefined) {\n return props.minDomain[axis];\n }\n return typeof props.minDomain === \"number\" || isDate(props.minDomain) ? props.minDomain : undefined;\n}\n\n/**\n * Returns a symmetrically padded domain for polar charts\n * @param {Array} domain: the original domain\n * @param {Array} values: a flat array of values corresponding to either tickValues, or data values\n * for a given dimension i.e. only x values.\n * @returns {Array} the symmetric domain\n */\nexport function getSymmetricDomain(domain, values) {\n const processedData = sortedUniq(values.sort((a, b) => a - b));\n const step = processedData[1] - processedData[0];\n return [domain[0], domain[1] + step];\n}\n\n/**\n * Checks whether a given component can be used to calculate domain\n * @param {Component} component: a React component instance\n * @returns {Boolean} Returns true if the given component has a role included in the whitelist\n */\nexport function isDomainComponent(component) {\n const getRole = child => {\n return child && child.type ? child.type.role : \"\";\n };\n let role = getRole(component);\n if (role === \"portal\") {\n const children = React.Children.toArray(component.props.children);\n role = children.length ? getRole(children[0]) : \"\";\n }\n const whitelist = [\"area\", \"axis\", \"bar\", \"boxplot\", \"candlestick\", \"errorbar\", \"group\", \"histogram\", \"line\", \"pie\", \"scatter\", \"stack\", \"voronoi\"];\n return whitelist.includes(role);\n}","import isEmpty from \"lodash/isEmpty\";\nimport pickBy from \"lodash/pickBy\";\nimport omitBy from \"lodash/omitBy\";\nimport uniq from \"lodash/uniq\";\nimport { isFunction } from \"./helpers\";\nconst GLOBAL_EVENT_REGEX = /^onGlobal(.*)$/;\n\n// Normally we'd use Template Literal Types, but we're avoiding it to maximize TS compatibility with TS < 4.1\n// `on${Capitalize}`;\n\n/* Returns all own and shared events that should be attached to a single target element,\n * i.e. an individual bar specified by target: \"data\", eventKey: [index].\n * Returned events are scoped to the appropriate state. Either that of the component itself\n * (i.e. VictoryBar) in the case of own events, or that of the parent component\n * (i.e. VictoryChart) in the case of shared events\n */\n// eslint-disable-next-line max-params\nexport function getEvents(props, target, eventKey,\n// eslint-disable-next-line no-shadow\ngetScopedEvents) {\n // Returns all events that apply to a particular target element\n const getEventsByTarget = events => {\n const getSelectedEvents = () => {\n const targetEvents = events.reduce((memo, event) => {\n if (event.target !== undefined) {\n const matchesTarget = Array.isArray(event.target) ? event.target.includes(target) : `${event.target}` === `${target}`;\n return matchesTarget ? memo.concat(event) : memo;\n }\n return memo.concat(event);\n }, []);\n if (eventKey !== undefined && target !== \"parent\") {\n return targetEvents.filter(obj => {\n const targetKeys = obj.eventKey;\n const useKey = key => key ? `${key}` === `${eventKey}` : true;\n return Array.isArray(targetKeys) ? targetKeys.some(k => useKey(k)) : useKey(targetKeys);\n });\n }\n return targetEvents;\n };\n const selectedEvents = getSelectedEvents();\n return Array.isArray(selectedEvents) && selectedEvents.reduce((memo, event) => {\n return event ? Object.assign(memo, event.eventHandlers) : memo;\n }, {});\n };\n\n /* Returns all events from props and defaultEvents from components. Events handlers\n * specified in props will override handlers for the same event if they are also\n * specified in defaultEvents of a sub-component\n */\n const getAllEvents = () => {\n // Mandatory usage: `getEvents.bind(this)`\n\n if (Array.isArray(this.componentEvents)) {\n return Array.isArray(props.events) ? this.componentEvents.concat(...props.events) : this.componentEvents;\n }\n return props.events;\n };\n const allEvents = getAllEvents();\n const ownEvents = allEvents && isFunction(getScopedEvents) ? getScopedEvents(getEventsByTarget(allEvents), target) : undefined;\n if (!props.sharedEvents) {\n return ownEvents;\n }\n const getSharedEvents = props.sharedEvents.getEvents;\n const sharedEvents = props.sharedEvents.events && getSharedEvents(getEventsByTarget(props.sharedEvents.events), target);\n return Object.assign({}, sharedEvents, ownEvents);\n}\n\n/* Returns a modified events object where each event handler is replaced by a new\n * function that calls the original handler and then calls setState with the return\n * of the original event handler assigned to state property that maps to the target\n * element.\n */\n// eslint-disable-next-line max-params\nexport function getScopedEvents(events, namespace, childType, baseProps) {\n if (isEmpty(events)) {\n return {};\n }\n\n // Mandatory usage: `getScopedEvents.bind(this)`\n\n const newBaseProps = baseProps || this.baseProps;\n // returns the original base props or base state of a given target element\n const getTargetProps = (identifier, type) => {\n const {\n childName,\n target,\n key\n } = identifier;\n const baseType = type === \"props\" ? newBaseProps : this.state || {};\n const base = childName === undefined || childName === null || !baseType[childName] ? baseType : baseType[childName];\n return key === \"parent\" ? base.parent : base[key] && base[key][target];\n };\n\n // Returns the state object with the mutation caused by a given eventReturn\n // applied to the appropriate property on the state object\n const parseEvent = (eventReturn, eventKey) => {\n const childNames = namespace === \"parent\" ? eventReturn.childName : eventReturn.childName || childType;\n const target = eventReturn.target || namespace;\n\n // returns all eventKeys to modify for a targeted childName\n const getKeys = childName => {\n if (target === \"parent\") {\n return \"parent\";\n }\n if (eventReturn.eventKey === \"all\") {\n return newBaseProps[childName] ? Object.keys(newBaseProps[childName]).filter(value => value !== \"parent\") : Object.keys(newBaseProps).filter(value => value !== \"parent\");\n } else if (eventReturn.eventKey === undefined && eventKey === \"parent\") {\n return newBaseProps[childName] ? Object.keys(newBaseProps[childName]) : Object.keys(newBaseProps);\n }\n return eventReturn.eventKey !== undefined ? eventReturn.eventKey : eventKey;\n };\n\n // returns the state object with mutated props applied for a single key\n const getMutationObject = (key, childName) => {\n const baseState = this.state || {};\n if (!isFunction(eventReturn.mutation)) {\n return baseState;\n }\n const mutationTargetProps = getTargetProps({\n childName,\n key,\n target\n }, \"props\");\n const mutationTargetState = getTargetProps({\n childName,\n key,\n target\n }, \"state\");\n const mutatedProps = eventReturn.mutation(Object.assign({}, mutationTargetProps, mutationTargetState), newBaseProps);\n const childState = baseState[childName] || {};\n const filterState = state => {\n if (state[key] && state[key][target]) {\n delete state[key][target];\n }\n if (state[key] && !Object.keys(state[key]).length) {\n delete state[key];\n }\n return state;\n };\n const extendState = state => {\n return target === \"parent\" ? Object.assign(state, {\n [key]: Object.assign(state[key] || {}, mutatedProps)\n }) : Object.assign(state, {\n [key]: Object.assign(state[key] || {}, {\n [target]: mutatedProps\n })\n });\n };\n const updateState = state => {\n return mutatedProps ? extendState(state) : filterState(state);\n };\n return childName !== undefined && childName !== null ? Object.assign(baseState, {\n [childName]: updateState(childState)\n }) : updateState(baseState);\n };\n\n // returns entire mutated state for a given childName\n const getReturnByChild = childName => {\n const mutationKeys = getKeys(childName);\n return Array.isArray(mutationKeys) ? mutationKeys.reduce((memo, key) => {\n return Object.assign(memo, getMutationObject(key, childName));\n }, {}) : getMutationObject(mutationKeys, childName);\n };\n\n // returns an entire mutated state for all children\n const allChildNames = childNames === \"all\" ? Object.keys(newBaseProps).filter(value => value !== \"parent\") : childNames;\n return Array.isArray(allChildNames) ? allChildNames.reduce((memo, childName) => {\n return Object.assign(memo, getReturnByChild(childName));\n }, {}) : getReturnByChild(allChildNames);\n };\n\n // Parses an array of event returns into a single state mutation\n const parseEventReturn = (eventReturn, eventKey) => {\n return Array.isArray(eventReturn) ? eventReturn.reduce((memo, props) => Object.assign({}, memo, parseEvent(props, eventKey)), {}) : parseEvent(eventReturn, eventKey);\n };\n const compileCallbacks = eventReturn => {\n const getCallback = obj => isFunction(obj.callback) && obj.callback;\n const callbacks = Array.isArray(eventReturn) ? eventReturn.map(evtObj => getCallback(evtObj)) : [getCallback(eventReturn)];\n const callbackArray = callbacks.filter(callback => callback !== false);\n return callbackArray.length ? () => callbackArray.forEach(callback => callback()) : undefined;\n };\n\n // A function that calls a particular event handler, parses its return\n // into a state mutation, and calls setState\n // eslint-disable-next-line max-params\n const onEvent = (evt, childProps, eventKey, eventName) => {\n const eventReturn = events[eventName](evt, childProps, eventKey, this);\n if (!isEmpty(eventReturn)) {\n const callbacks = compileCallbacks(eventReturn);\n this.setState(parseEventReturn(eventReturn, eventKey), callbacks);\n }\n };\n\n // returns a new events object with enhanced event handlers\n return Object.keys(events).reduce((memo, event) => {\n memo[event] = onEvent;\n return memo;\n }, {});\n}\n\n/*\n * Returns a partially applied event handler for a specific target element\n * This allows event handlers to have access to props controlling each element\n */\nexport function getPartialEvents(events, eventKey, childProps) {\n if (!events) return {};\n return Object.keys(events).reduce((memo, eventName) => {\n const appliedEvent = evt => events[eventName](evt, childProps, eventKey, eventName);\n memo[eventName] = appliedEvent;\n return memo;\n }, {});\n}\n/* Returns the property of the state object corresponding to event changes for\n * a particular element\n */\n// eslint-disable-next-line max-params\nexport function getEventState(eventKey, namespace, childType) {\n // Mandatory usage: `getEventState.bind(this)`\n\n const state = this.state || {};\n if (!childType) {\n return eventKey === \"parent\" ? state[eventKey] && state[eventKey][namespace] || state[eventKey] : state[eventKey] && state[eventKey][namespace];\n }\n return state[childType] && state[childType][eventKey] && state[childType][eventKey][namespace];\n}\n\n/**\n * Returns a set of all mutations for shared events\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps an object that describes all props for children of VictorySharedEvents\n * @param {Object} baseState an object that describes state for children of VictorySharedEvents\n * @param {Array} childNames an array of childNames\n *\n * @return {Object} a object describing all mutations for VictorySharedEvents\n */\n// eslint-disable-next-line max-params\nexport function getExternalMutationsWithChildren(mutations, baseProps, baseState, childNames) {\n if (baseProps === void 0) {\n baseProps = {};\n }\n if (baseState === void 0) {\n baseState = {};\n }\n return childNames.reduce((memo, childName) => {\n const childState = baseState[childName];\n const mutation = getExternalMutations(mutations, baseProps[childName], baseState[childName], childName);\n memo[childName] = mutation ? mutation : childState;\n return pickBy(memo, v => !isEmpty(v));\n }, {});\n}\n\n/**\n * Returns a set of all mutations for a component\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps a props object (scoped to a childName when used by shared events)\n * @param {Object} baseState a state object (scoped to a childName when used by shared events)\n * @param {String} childName an optional childName\n *\n * @return {Object} a object describing mutations for a given component\n */\n// eslint-disable-next-line max-params\nexport function getExternalMutations(mutations, baseProps, baseState, childName) {\n if (baseProps === void 0) {\n baseProps = {};\n }\n if (baseState === void 0) {\n baseState = {};\n }\n const eventKeys = Object.keys(baseProps);\n return eventKeys.reduce((memo, eventKey) => {\n const keyState = baseState[eventKey] || {};\n const keyProps = baseProps[eventKey] || {};\n if (eventKey === \"parent\") {\n const identifier = {\n eventKey,\n target: \"parent\"\n };\n const mutation = getExternalMutation(mutations, keyProps, keyState, identifier);\n memo[eventKey] = mutation !== undefined ? Object.assign({}, keyState, mutation) : keyState;\n } else {\n // use keys from both state and props so that elements not intially included in baseProps\n // will be used. (i.e. labels)\n const targets = uniq(Object.keys(keyProps).concat(Object.keys(keyState)));\n memo[eventKey] = targets.reduce((m, target) => {\n const identifier = {\n eventKey,\n target,\n childName\n };\n const mutation = getExternalMutation(mutations, keyProps[target], keyState[target], identifier);\n m[target] = mutation !== undefined ? Object.assign({}, keyState[target], mutation) : keyState[target];\n return pickBy(m, v => !isEmpty(v));\n }, {});\n }\n return pickBy(memo, v => !isEmpty(v));\n }, {});\n}\n\n/**\n * Returns a set of mutations for a particular element given scoped baseProps and baseState\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps a props object (scoped the element specified by the identifier)\n * @param {Object} baseState a state object (scoped the element specified by the identifier)\n * @param {Object} identifier { eventKey, target, childName }\n *\n * @return {Object | undefined} a object describing mutations for a given element, or undefined\n */\n// eslint-disable-next-line max-params\nexport function getExternalMutation(mutations, baseProps, baseState, identifier) {\n const filterMutations = (mutation, type) => {\n if (typeof mutation[type] === \"string\") {\n return mutation[type] === \"all\" || mutation[type] === identifier[type];\n } else if (Array.isArray(mutation[type])) {\n // coerce arrays to strings before matching\n const stringArray = mutation[type].map(m => `${m}`);\n return stringArray.includes(identifier[type]);\n }\n return false;\n };\n let scopedMutations = Array.isArray(mutations) ? mutations : [mutations];\n if (identifier.childName) {\n scopedMutations = mutations.filter(m => filterMutations(m, \"childName\"));\n }\n // find any mutation objects that match the target\n const targetMutations = scopedMutations.filter(m => filterMutations(m, \"target\"));\n if (isEmpty(targetMutations)) {\n return undefined;\n }\n const keyMutations = targetMutations.filter(m => filterMutations(m, \"eventKey\"));\n if (isEmpty(keyMutations)) {\n return undefined;\n }\n return keyMutations.reduce((memo, curr) => {\n const mutationFunction = curr && isFunction(curr.mutation) ? curr.mutation : () => undefined;\n const currentMutation = mutationFunction(Object.assign({}, baseProps, baseState));\n return Object.assign({}, memo, currentMutation);\n }, {});\n}\n\n/* Returns an array of defaultEvents from sub-components of a given component.\n * i.e. any static `defaultEvents` on `labelComponent` will be returned\n */\nexport function getComponentEvents(props, components) {\n const events = Array.isArray(components) && components.reduce((memo, componentName) => {\n const component = props[componentName];\n const defaultEvents = component && component.type && component.type.defaultEvents;\n const componentEvents = isFunction(defaultEvents) ? defaultEvents(component.props) : defaultEvents;\n return Array.isArray(componentEvents) ? memo.concat(...componentEvents) : memo;\n }, []);\n return events && events.length ? events : undefined;\n}\nexport function getGlobalEventNameFromKey(key) {\n const match = key.match(GLOBAL_EVENT_REGEX);\n return match && match[1] && match[1].toLowerCase();\n}\nexport const getGlobalEvents = events => pickBy(events, (_, key) => GLOBAL_EVENT_REGEX.test(key));\nexport const omitGlobalEvents = events => omitBy(events, (_, key) => GLOBAL_EVENT_REGEX.test(key));\nexport const emulateReactEvent = event => Object.assign(event, {\n nativeEvent: event\n});","import React, { isValidElement } from \"react\";\nimport defaults from \"lodash/defaults\";\nimport property from \"lodash/property\";\nimport pick from \"lodash/pick\";\n/**\n * Determine the range of a cartesian axis\n */\nfunction getCartesianRange(options) {\n const vertical = options.axis !== \"x\";\n if (vertical) {\n return [options.height - options.padding.bottom, options.padding.top];\n }\n return [options.padding.left, options.width - options.padding.right];\n}\n\n/**\n * Determine the range of a polar axis in radians\n */\nfunction getPolarRange(options) {\n if (options.axis === \"x\") {\n const startAngle = degreesToRadians(options.startAngle || 0);\n const endAngle = degreesToRadians(options.endAngle || 360);\n return [startAngle, endAngle];\n }\n return [options.innerRadius || 0, getRadius({\n height: options.height,\n width: options.width,\n padding: options.padding\n })];\n}\n\n/**\n * Creates an object composed of the inverted keys and values of object.\n * If object contains duplicate values, subsequent values overwrite property assignments of previous values.\n */\nexport function invert(original) {\n return Object.entries(original).reduce((acc, current) => {\n acc[current[1]] = current[0];\n return acc;\n }, {});\n}\n\n/**\n * creates an object with some keys excluded\n * replacement for lodash.omit for performance. does not mimic the entire lodash.omit api\n * @param {Object} originalObject: created object will be based on this object\n * @param {Array} ks: an array of keys to omit from the new object\n * @returns {Object} new object with same properties as originalObject\n */\nexport function omit(originalObject, ks) {\n if (ks === void 0) {\n ks = [];\n }\n // code based on babel's _objectWithoutProperties\n const newObject = {};\n for (const key in originalObject) {\n // @ts-expect-error String is not assignable to Key\n if (ks.indexOf(key) >= 0) {\n continue;\n }\n if (!Object.prototype.hasOwnProperty.call(originalObject, key)) {\n continue;\n }\n newObject[key] = originalObject[key];\n }\n return newObject;\n}\n\n/**\n * Coalesce the x and y values from a data point\n */\nexport function getPoint(datum) {\n const {\n _x,\n _x1,\n _x0,\n _voronoiX,\n _y,\n _y1,\n _y0,\n _voronoiY\n } = datum;\n const defaultX = _x1 ?? _x;\n const defaultY = _y1 ?? _y;\n const point = {\n x: _voronoiX ?? defaultX,\n x0: _x0 ?? _x,\n y: _voronoiY ?? defaultY,\n y0: _y0 ?? _y\n };\n return defaults({}, point, datum);\n}\n\n/**\n * Scale a point based on the origin, direction, and given scale function\n */\nexport function scalePoint(props, datum) {\n const {\n scale,\n polar,\n horizontal\n } = props;\n const d = getPoint(datum);\n const origin = props.origin || {\n x: 0,\n y: 0\n };\n const x = horizontal ? scale.y(d.y) : scale.x(d.x);\n const x0 = horizontal ? scale.y(d.y0) : scale.x(d.x0);\n const y = horizontal ? scale.x(d.x) : scale.y(d.y);\n const y0 = horizontal ? scale.x(d.x0) : scale.y(d.y0);\n return {\n x: polar ? y * Math.cos(x) + origin.x : x,\n x0: polar ? y0 * Math.cos(x0) + origin.x : x0,\n y: polar ? -y * Math.sin(x) + origin.y : y,\n y0: polar ? -y0 * Math.sin(x0) + origin.x : y0\n };\n}\n\n/**\n * Returns a padding value from a number or partial padding values\n */\nexport function getPadding(padding) {\n const paddingVal = typeof padding === \"number\" ? padding : 0;\n const paddingObj = typeof padding === \"object\" ? padding : {};\n return {\n top: paddingObj.top || paddingVal,\n bottom: paddingObj.bottom || paddingVal,\n left: paddingObj.left || paddingVal,\n right: paddingObj.right || paddingVal\n };\n}\n\n/**\n * Returns true if the component is defined as a tooltip\n */\nexport function isTooltip(component) {\n const labelRole = component && component.type && component.type.role;\n return labelRole === \"tooltip\";\n}\nexport function getDefaultStyles(props, role) {\n const {\n theme = {},\n labelComponent\n } = props;\n const defaultStyles = theme[role] && theme[role].style || {};\n if (!isTooltip(labelComponent)) {\n return defaultStyles;\n }\n const tooltipStyle = theme.tooltip && theme.tooltip.style || {};\n const labelStyle = defaults({}, tooltipStyle, defaultStyles.labels);\n return defaults({}, {\n labels: labelStyle\n }, defaultStyles);\n}\nexport function getStyles(style, defaultStyles) {\n const width = \"100%\";\n const height = \"100%\";\n if (!style) {\n return defaults({\n parent: {\n height,\n width\n }\n }, defaultStyles);\n }\n const {\n data,\n labels,\n parent\n } = style;\n const defaultParent = defaultStyles && defaultStyles.parent || {};\n const defaultLabels = defaultStyles && defaultStyles.labels || {};\n const defaultData = defaultStyles && defaultStyles.data || {};\n return {\n parent: defaults({}, parent, defaultParent, {\n width,\n height\n }),\n labels: defaults({}, labels, defaultLabels),\n data: defaults({}, data, defaultData)\n };\n}\n\n/**\n * Returns the value of a prop or accessor function with the given props\n */\nexport function evaluateProp(prop, props) {\n return isFunction(prop) ? prop(props) : prop;\n}\nexport function evaluateStyle(style, props) {\n if (props.disableInlineStyles) {\n return {};\n }\n if (!style || !Object.keys(style).some(value => isFunction(style[value]))) {\n return style;\n }\n return Object.keys(style).reduce((prev, curr) => {\n prev[curr] = evaluateProp(style[curr], props);\n return prev;\n }, {});\n}\nexport function degreesToRadians(degrees) {\n return typeof degrees === \"number\" ? degrees * (Math.PI / 180) : degrees;\n}\nexport function radiansToDegrees(radians) {\n return typeof radians === \"number\" ? radians / (Math.PI / 180) : radians;\n}\n\n/**\n * Get the maximum radius that will fit in the container\n */\nexport function getRadius(options) {\n const {\n width,\n height,\n padding\n } = options;\n const {\n left,\n right,\n top,\n bottom\n } = padding;\n return Math.min(width - left - right, height - top - bottom) / 2;\n}\n\n/**\n * Returns the origin for a polar chart within the padded area\n */\nexport function getPolarOrigin(props) {\n const {\n width,\n height\n } = props;\n const {\n top,\n bottom,\n left,\n right\n } = getPadding(props.padding);\n const radius = Math.min(width - left - right, height - top - bottom) / 2;\n const offsetWidth = width / 2 + left - right;\n const offsetHeight = height / 2 + top - bottom;\n return {\n x: offsetWidth + radius > width ? radius + left - right : offsetWidth,\n y: offsetHeight + radius > height ? radius + top - bottom : offsetHeight\n };\n}\n\n/**\n * Determine the range of an axis based on the given props\n */\nexport function getRange(props, axis) {\n if (props.range && props.range[axis]) {\n return props.range[axis];\n } else if (props.range && Array.isArray(props.range)) {\n return props.range;\n }\n return props.polar ? getPolarRange({\n axis,\n innerRadius: props.innerRadius,\n startAngle: props.startAngle,\n endAngle: props.endAngle,\n height: props.height,\n width: props.width,\n padding: getPadding(props.padding)\n }) : getCartesianRange({\n axis,\n height: props.height,\n width: props.width,\n padding: getPadding(props.padding)\n });\n}\n\n/**\n * Checks if `value` is `null` or `undefined`.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n */\nexport function isNil(value) {\n // eslint-disable-next-line eqeqeq\n return value == null;\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @since 0.1.0\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n */\nexport function isFunction(value) {\n return typeof value === \"function\";\n}\nexport function createAccessor(key) {\n // creates a data accessor function\n // given a property key, path, array index, or null for identity.\n if (isFunction(key)) {\n return key;\n } else if (key === null || key === undefined) {\n // null/undefined means \"return the data item itself\"\n return x => x;\n }\n // otherwise, assume it is an array index, property key or path (_.property handles all three)\n return property(key);\n}\nexport function modifyProps(props, fallbackProps, role) {\n const theme = props.theme && props.theme[role] ? props.theme[role] : {};\n const themeProps = omit(theme, [\"style\"]);\n const horizontal = isHorizontal(props);\n const defaultObject = horizontal === undefined ? {} : {\n horizontal\n };\n return defaults(defaultObject, props, themeProps, fallbackProps);\n}\n\n/**\n * Returns the given axis or the opposite axis when horizontal\n * @param {string} axis: the given axis, either \"x\" pr \"y\"\n * @param {Boolean} horizontal: true when the chart is flipped to the horizontal orientation\n * @returns {String} the dimension appropriate for the axis given its props \"x\" or \"y\"\n */\nexport function getCurrentAxis(axis, horizontal) {\n const otherAxis = axis === \"x\" ? \"y\" : \"x\";\n return horizontal ? otherAxis : axis;\n}\n\n/**\n * Creates an object with the same keys as object and values generated by running\n * each own enumerable string keyed property of object through the function fn\n */\nexport function mapValues(values, fn) {\n if (values) {\n return Object.keys(values).reduce((acc, key) => {\n acc[key] = fn(values[key]);\n return acc;\n }, {});\n }\n}\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing\n * from start up to, but not including, end.\n * A step of -1 is used if a negative start is specified without an end or step.\n * If end is not specified, it's set to start with start then set to 0.\n *\n * @param start The length of the array to create, or the start value\n * @param end [The end value] If this is defined, start is the start value\n * @returns An array of the given length\n */\nexport function range(start, end, increment) {\n // when the end index is not given, start from 0\n const startIndex = end ? start : 0;\n\n // when the end index is not given, the end of the range is the start index\n let endIndex = end ? end : start;\n\n // ensure endIndex is not a falsy value\n if (!endIndex) endIndex = 0;\n const k = endIndex - startIndex; // the value range\n const length = Math.abs(k); // the length of the range\n const sign = k / length || 1; // the sign of the range (negative or positive)\n const inc = increment || 1; // the step size of each increment\n\n // normalize the array length when dealing with floating point values\n const arrayLength = Math.max(Math.ceil(length / inc), 0);\n return Array.from(Array(arrayLength), (_, i) => startIndex + i * sign * inc);\n}\n\n/**\n * @param {Array} children: an array of child components\n * @param {Function} iteratee: a function with arguments \"child\", \"childName\", and \"parent\"\n * @param {Object} parentProps: props from the parent that are applied to children\n * @param {any} initialMemo: The object in which the iteration results are combined.\n * @param {Function} combine: Combines the result of the iteratee with the current memo\n * to the memo for the next iteration step\n * @returns {Array} returns an array of results from calling the iteratee on all nested children\n */\n/* eslint-disable max-params */\nexport function reduceChildren(children, iteratee, parentProps,\n// @ts-expect-error These defaults are hard to type\ninitialMemo, combine) {\n if (parentProps === void 0) {\n parentProps = {};\n }\n if (initialMemo === void 0) {\n initialMemo = [];\n }\n if (combine === void 0) {\n combine = (memo, item) =>\n // @ts-expect-error These defaults are hard to type\n memo.concat(item);\n }\n const sharedProps = [\"data\", \"domain\", \"categories\", \"polar\", \"startAngle\", \"endAngle\", \"minDomain\", \"maxDomain\", \"horizontal\"];\n const traverseChildren = (childArray, names, parent) => {\n return childArray.reduce((memo, child, index) => {\n let newMemo = memo;\n const childRole = child.type && child.type.role;\n const childName = child.props.name || `${childRole}-${names[index]}`;\n if (child.props && child.props.children) {\n const childProps = Object.assign({}, child.props, pick(parentProps, sharedProps));\n const nestedChildren = child.type && child.type.role === \"stack\" && isFunction(child.type.getChildren) ? child.type.getChildren(childProps) : React.Children.toArray(child.props.children).map(c => {\n const nestedChildProps = Object.assign({}, c.props, pick(childProps, sharedProps));\n return /*#__PURE__*/React.cloneElement(c, nestedChildProps);\n });\n const childNames = nestedChildren.map((c, i) => `${childName}-${i}`);\n const nestedResults = traverseChildren(nestedChildren, childNames, child);\n newMemo = combine(newMemo, nestedResults);\n } else {\n const result = iteratee(child, childName, parent);\n if (result) {\n newMemo = combine(newMemo, result);\n }\n }\n return newMemo;\n }, initialMemo);\n };\n const validChildren = children.filter(isValidElement);\n const childNames = validChildren.map((c, i) => i);\n return traverseChildren(validChildren, childNames);\n}\n\n/**\n * @param {Object} props: the props object\n * @returns {Boolean} returns true if the props object contains `horizontal: true` of if any\n * children or nested children are horizontal\n */\nexport function isHorizontal(props) {\n if (props.horizontal !== undefined || !props.children) {\n return props.horizontal;\n }\n const traverseChildren = childArray => {\n return childArray.reduce((memo, child) => {\n const childProps = child.props || {};\n if (memo || childProps.horizontal || !childProps.children) {\n return memo || childProps.horizontal;\n }\n return traverseChildren(React.Children.toArray(childProps.children));\n }, false);\n };\n return traverseChildren(React.Children.toArray(props.children));\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Collection from \"../collection\";\nimport * as Transitions from \"../transitions\";\nconst INITIAL_STATE = {\n nodesShouldLoad: false,\n nodesDoneLoad: false,\n animating: true\n};\nexport const useAnimationState = function (initialState) {\n if (initialState === void 0) {\n initialState = INITIAL_STATE;\n }\n const [state, _setState] = React.useState(initialState);\n\n // This allows us to use a state object and maintain the same API as this.setState\n const setState = React.useCallback(newState => {\n _setState(oldState => ({\n ...oldState,\n ...newState\n }));\n }, [_setState]);\n\n // This is a copy of Wrapper.getAnimationProps\n const getAnimationProps = React.useCallback((props, child, index) => {\n if (!props?.animate) {\n return child.props.animate;\n }\n const getFilteredState = () => {\n let childrenTransitions = state && state.childrenTransitions;\n childrenTransitions = Collection.isArrayOfArrays(childrenTransitions) ? childrenTransitions[index] : childrenTransitions;\n return defaults({\n childrenTransitions\n }, state);\n };\n let getTransitions = props.animate && props.animate.getTransitions;\n const filteredState = getFilteredState();\n const parentState = props.animate && props.animate.parentState || filteredState;\n if (!getTransitions) {\n const getTransitionProps = Transitions.getTransitionPropsFactory(props, filteredState, newState => setState(newState));\n getTransitions = childComponent => getTransitionProps(childComponent, index);\n }\n return defaults({\n getTransitions,\n parentState\n }, props.animate, child.props.animate);\n }, [state, setState]);\n\n // This is a copy of Wrapper.setAnimationState\n const setAnimationState = React.useCallback((props, nextProps) => {\n if (!props?.animate) {\n return;\n }\n if (props.animate.parentState) {\n const nodesWillExit = props.animate.parentState.nodesWillExit;\n const oldProps = nodesWillExit ? props : null;\n const newState = defaults({\n oldProps,\n nextProps\n }, props.animate.parentState);\n setState(newState);\n } else {\n const oldChildren = React.Children.toArray(props.children);\n const nextChildren = React.Children.toArray(nextProps.children);\n const isContinuous = child => {\n const check = c => c.type && c.type.continuous;\n return Array.isArray(child) ? child.some(check) : check(child);\n };\n const continuous = !props.polar && oldChildren.some(child => {\n return isContinuous(child) || child?.props?.children && isContinuous(child.props.children);\n });\n const {\n nodesWillExit,\n nodesWillEnter,\n childrenTransitions,\n nodesShouldEnter\n } = Transitions.getInitialTransitionState(oldChildren, nextChildren);\n setState({\n nodesWillExit,\n nodesWillEnter,\n nodesShouldEnter,\n childrenTransitions: Collection.isArrayOfArrays(childrenTransitions) ? childrenTransitions[0] : childrenTransitions,\n oldProps: nodesWillExit ? props : undefined,\n nextProps,\n continuous\n });\n }\n }, [setState]);\n const getProps = React.useCallback(initialProps => {\n return state && state.nodesWillExit ? state.oldProps || initialProps : initialProps;\n }, [state]);\n return {\n state,\n setState,\n getAnimationProps,\n setAnimationState,\n getProps\n };\n};","import React from \"react\";\nexport function usePreviousProps(props) {\n const ref = React.useRef();\n React.useEffect(() => {\n ref.current = props;\n });\n return ref.current;\n}","import * as Helpers from \"./helpers\";\nimport defaults from \"lodash/defaults\";\n\n// Private Functions\n\nfunction getVerticalAnchor(props, datum) {\n if (datum === void 0) {\n datum = {};\n }\n const sign = datum._y >= 0 ? 1 : -1;\n const labelStyle = props.style && props.style.labels || {};\n if (datum.verticalAnchor || labelStyle.verticalAnchor) {\n return datum.verticalAnchor || labelStyle.verticalAnchor;\n } else if (!props.horizontal) {\n return sign >= 0 ? \"end\" : \"start\";\n }\n return \"middle\";\n}\nfunction getTextAnchor(props, datum) {\n if (datum === void 0) {\n datum = {};\n }\n const {\n style,\n horizontal\n } = props;\n const sign = datum._y >= 0 ? 1 : -1;\n const labelStyle = style && style.labels || {};\n if (datum.verticalAnchor || labelStyle.verticalAnchor) {\n return datum.verticalAnchor || labelStyle.verticalAnchor;\n } else if (!horizontal) {\n return \"middle\";\n }\n return sign >= 0 ? \"start\" : \"end\";\n}\nfunction getAngle(props, datum) {\n if (datum === void 0) {\n datum = {};\n }\n const labelStyle = props.style && props.style.labels || {};\n return datum.angle === undefined ? labelStyle.angle : datum.angle;\n}\nfunction getPadding(props, datum) {\n if (datum === void 0) {\n datum = {};\n }\n const {\n horizontal,\n style\n } = props;\n const labelStyle = style.labels || {};\n const defaultPadding = Helpers.evaluateProp(labelStyle.padding, props) || 0;\n const sign = datum._y < 0 ? -1 : 1;\n return {\n x: horizontal ? sign * defaultPadding : 0,\n y: horizontal ? 0 : -1 * sign * defaultPadding\n };\n}\nfunction getOffset(props, datum) {\n if (props.polar) {\n return {};\n }\n const padding = getPadding(props, datum);\n return {\n dx: padding.x,\n dy: padding.y\n };\n}\nfunction getPosition(props, datum) {\n const {\n polar\n } = props;\n const {\n x,\n y\n } = Helpers.scalePoint(props, datum);\n if (!polar) {\n return {\n x,\n y\n };\n }\n const polarPadding = getPolarPadding(props, datum);\n return {\n x: x + polarPadding.x,\n y: y + polarPadding.y\n };\n}\nfunction getPolarPadding(props, datum) {\n const {\n style\n } = props;\n const degrees = getDegrees(props, datum);\n const labelStyle = style.labels || {};\n const padding = Helpers.evaluateProp(labelStyle.padding, props) || 0;\n const angle = Helpers.degreesToRadians(degrees);\n return {\n x: padding * Math.cos(angle),\n y: -padding * Math.sin(angle)\n };\n}\nfunction getLabelPlacement(props) {\n const {\n labelComponent,\n labelPlacement,\n polar\n } = props;\n const defaultLabelPlacement = polar ? \"perpendicular\" : \"vertical\";\n return labelPlacement ? labelPlacement : labelComponent.props && labelComponent.props.labelPlacement || defaultLabelPlacement;\n}\nfunction getPolarOrientation(degrees) {\n // eslint-disable-next-line no-magic-numbers\n if (degrees < 45 || degrees > 315) {\n return \"right\";\n // eslint-disable-next-line no-magic-numbers\n } else if (degrees >= 45 && degrees <= 135) {\n return \"top\";\n // eslint-disable-next-line no-magic-numbers\n } else if (degrees > 135 && degrees < 225) {\n return \"left\";\n }\n return \"bottom\";\n}\n\n// Exported Functions\n\nexport function getText(props, datum, index) {\n if (datum === void 0) {\n datum = {};\n }\n if (datum.label !== undefined) {\n return datum.label;\n }\n return Array.isArray(props.labels) ? props.labels[index] : props.labels;\n}\nexport function getPolarTextAnchor(props, degrees) {\n const labelPlacement = getLabelPlacement(props);\n if (labelPlacement === \"perpendicular\" || labelPlacement === \"vertical\" && (degrees === 90 || degrees === 270)) {\n return \"middle\";\n }\n return degrees <= 90 || degrees > 270 ? \"start\" : \"end\";\n}\nexport function getPolarVerticalAnchor(props, degrees) {\n const labelPlacement = getLabelPlacement(props);\n const orientation = getPolarOrientation(degrees);\n if (labelPlacement === \"parallel\" || orientation === \"left\" || orientation === \"right\") {\n return \"middle\";\n }\n return orientation === \"top\" ? \"end\" : \"start\";\n}\nexport function getPolarAngle(props, baseAngle) {\n const {\n labelPlacement,\n datum\n } = props;\n if (!labelPlacement || labelPlacement === \"vertical\") {\n return 0;\n }\n const degrees = baseAngle !== undefined ? baseAngle % 360 : getDegrees(props, datum);\n const sign = degrees > 90 && degrees < 180 || degrees > 270 ? 1 : -1;\n let angle = 0;\n if (degrees === 0 || degrees === 180) {\n angle = 90;\n } else if (degrees > 0 && degrees < 180) {\n angle = 90 - degrees;\n } else if (degrees > 180 && degrees < 360) {\n angle = 270 - degrees;\n }\n const labelRotation = labelPlacement === \"perpendicular\" ? 0 : 90;\n return angle + sign * labelRotation;\n}\nexport function getDegrees(props, datum) {\n const {\n x\n } = Helpers.getPoint(datum);\n return Helpers.radiansToDegrees(props.scale.x(x)) % 360;\n}\nexport function getProps(props, index) {\n const {\n scale,\n data,\n style,\n horizontal,\n polar,\n width,\n height,\n theme,\n labelComponent,\n disableInlineStyles\n } = props;\n const datum = data[index];\n const degrees = getDegrees(props, datum);\n const textAnchor = polar ? getPolarTextAnchor(props, degrees) : getTextAnchor(props, datum);\n const verticalAnchor = polar ? getPolarVerticalAnchor(props, degrees) : getVerticalAnchor(props, datum);\n const angle = getAngle(props, datum);\n const text = getText(props, datum, index);\n const labelPlacement = getLabelPlacement(props);\n const {\n x,\n y\n } = getPosition(props, datum);\n const {\n dx,\n dy\n } = getOffset(props, datum);\n const labelProps = {\n angle,\n data,\n datum,\n disableInlineStyles,\n horizontal,\n index,\n polar,\n scale,\n labelPlacement,\n text,\n textAnchor,\n verticalAnchor,\n x,\n y,\n dx,\n dy,\n width,\n height,\n style: style.labels\n };\n if (!Helpers.isTooltip(labelComponent)) {\n return labelProps;\n }\n const tooltipTheme = theme && theme.tooltip || {};\n return defaults({}, labelProps, Helpers.omit(tooltipTheme, [\"style\"]));\n}","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {bumpX, bumpY, bumpRadial} from \"./curve/bump.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nexport function link(curve) {\n let source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null,\n output = null,\n path = withPath(link);\n\n function link() {\n let buffer;\n const argv = slice.call(arguments);\n const s = source.apply(this, argv);\n const t = target.apply(this, argv);\n if (context == null) output = curve(buffer = path());\n output.lineStart();\n argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));\n argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));\n output.lineEnd();\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;\n };\n\n return link;\n}\n\nexport function linkHorizontal() {\n return link(bumpX);\n}\n\nexport function linkVertical() {\n return link(bumpY);\n}\n\nexport function linkRadial() {\n const l = link(bumpRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.62625;\n context.moveTo(0, -r);\n context.lineTo(r, 0);\n context.lineTo(0, r);\n context.lineTo(-r, 0);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 7, 2)) * 0.87559;\n context.moveTo(-r, 0);\n context.lineTo(r, 0);\n context.moveTo(0, r);\n context.lineTo(0, -r);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.4431;\n context.moveTo(r, r);\n context.lineTo(r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, r);\n context.closePath();\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;\n context.moveTo(-r, -r);\n context.lineTo(r, r);\n context.moveTo(-r, r);\n context.lineTo(r, -r);\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import * as d3Shape from \"victory-vendor/d3-shape\";\nconst defined = d => {\n const y = d._y1 !== undefined ? d._y1 : d._y;\n return y !== null && y !== undefined && d._y0 !== null;\n};\nconst getXAccessor = scale => {\n return d => scale.x(d._x1 !== undefined ? d._x1 : d._x);\n};\nconst getYAccessor = scale => {\n return d => scale.y(d._y1 !== undefined ? d._y1 : d._y);\n};\nconst getAngleAccessor = scale => {\n return d => {\n const x = scale.x(d._x1 !== undefined ? d._x1 : d._x);\n return -1 * x + Math.PI / 2;\n };\n};\nconst toNewName = interpolation => {\n // d3 shape changed the naming scheme for interpolators from \"basis\" -> \"curveBasis\" etc.\n const capitalize = s => s && s[0].toUpperCase() + s.slice(1);\n return `curve${capitalize(interpolation)}`;\n};\nconst toNewNameClosed = interpolation => {\n return `${toNewName(interpolation)}Closed`;\n};\nexport const getInterpolationFunction = props => {\n const {\n interpolation\n } = props;\n if (typeof interpolation === \"function\") {\n return interpolation;\n }\n if (typeof interpolation === \"string\") {\n const {\n polar,\n openCurve = !polar\n } = props;\n const interpolationName = !openCurve ? toNewNameClosed(interpolation) : toNewName(interpolation);\n return d3Shape[interpolationName];\n }\n return d3Shape.curveLinear;\n};\nexport const getLineFunction = props => {\n const {\n polar,\n scale,\n horizontal\n } = props;\n return polar ? d3Shape.lineRadial().defined(defined).curve(getInterpolationFunction(props)).angle(getAngleAccessor(scale)).radius(getYAccessor(scale)) : d3Shape.line().defined(defined).curve(getInterpolationFunction(props)).x(horizontal ? getYAccessor(scale) : getXAccessor(scale)).y(horizontal ? getXAccessor(scale) : getYAccessor(scale));\n};","/* global console process */\n/* eslint-disable no-console */\n\nexport function warn(message) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - Webpack DefinePlugin will replace process.env.NODE_ENV\n if (process.env.NODE_ENV !== \"production\") {\n if (console && console.warn) {\n console.warn(message);\n }\n }\n}","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import isPlainObject from \"lodash/isPlainObject\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\";\nimport * as d3Scale from \"victory-vendor/d3-scale\";\nconst supportedScaleStrings = [\"linear\", \"time\", \"log\", \"sqrt\"];\n// Private Functions\n\nfunction toNewName(scale) {\n // d3 scale changed the naming scheme for scale from \"linear\" -> \"scaleLinear\" etc.\n const capitalize = s => s && s[0].toUpperCase() + s.slice(1);\n return `scale${capitalize(scale)}`;\n}\nexport function validScale(scale) {\n if (typeof scale === \"function\") {\n return Helpers.isFunction(scale.copy) && Helpers.isFunction(scale.domain) && Helpers.isFunction(scale.range);\n } else if (typeof scale === \"string\") {\n return supportedScaleStrings.includes(scale);\n }\n return false;\n}\nfunction isScaleDefined(props, axis) {\n if (!props.scale) {\n return false;\n } else if (props.scale.x || props.scale.y) {\n return !!props.scale[axis];\n }\n return true;\n}\nfunction getScaleTypeFromProps(props, axis) {\n if (!isScaleDefined(props, axis)) {\n return undefined;\n }\n const scale = props.scale[axis] || props.scale;\n return typeof scale === \"string\" ? scale : getType(scale);\n}\nfunction getScaleFromDomain(props, axis) {\n let domain;\n if (props.domain && props.domain[axis]) {\n domain = props.domain[axis];\n } else if (props.domain && Array.isArray(props.domain)) {\n domain = props.domain;\n }\n if (!domain) {\n return undefined;\n }\n return Collection.containsDates(domain) ? \"time\" : \"linear\";\n}\nfunction getScaleTypeFromData(props, axis) {\n if (!props.data) {\n return \"linear\";\n }\n const accessor = Helpers.createAccessor(props[axis]);\n const axisData = props.data.map(datum => {\n const processedData = isPlainObject(accessor(datum)) ? accessor(datum)[axis] : accessor(datum);\n return processedData !== undefined ? processedData : datum[axis];\n });\n return Collection.containsDates(axisData) ? \"time\" : \"linear\";\n}\n\n// Exported Functions\n\nexport function getScaleFromName(name) {\n if (validScale(name)) {\n const methodName = toNewName(name);\n // @ts-expect-error scaleTime is not directly compatible with our D3Scale definition\n return d3Scale[methodName]();\n }\n return d3Scale.scaleLinear();\n}\nexport function getBaseScale(props, axis) {\n const scale = getScaleFromProps(props, axis);\n if (scale) {\n return typeof scale === \"string\" ? getScaleFromName(scale) : scale;\n }\n const defaultScale = getScaleFromDomain(props, axis) || getScaleTypeFromData(props, axis);\n return getScaleFromName(defaultScale);\n}\nexport function getDefaultScale() {\n return d3Scale.scaleLinear();\n}\nexport function getScaleFromProps(props, axis) {\n if (!isScaleDefined(props, axis)) {\n return undefined;\n }\n const scale = props.scale[axis] || props.scale;\n if (validScale(scale)) {\n return Helpers.isFunction(scale) ? scale : getScaleFromName(scale);\n }\n return undefined;\n}\nexport function getScaleType(props, axis) {\n // if the scale was not given in props, it will be set to linear or time depending on data\n return getScaleTypeFromProps(props, axis) || getScaleTypeFromData(props, axis);\n}\n\n// Ordered type inference off of function fields.\n// **Note**: Brittle because reliant on d3 internals.\nconst DUCK_TYPES = [{\n name: \"quantile\",\n method: \"quantiles\"\n}, {\n name: \"log\",\n method: \"base\"\n}\n// TODO(2214): Re-evaluate (1) duck typing approach, and (2) if duck typing,\n// do we need a different approach? (Multiple keys? Stringifying functions?)\n// https://github.com/FormidableLabs/victory/issues/2214\n// Below are matches that don't seem to otherwise occur in Victory code base.\n// { name: \"ordinal\", method: \"unknown\" },\n// { name: \"pow-sqrt\", method: \"exponent\" },\n// { name: \"quantize-threshold\", method: \"invertExtent\" }\n];\nexport function getType(scale) {\n if (typeof scale === \"string\") {\n return scale;\n }\n const scaleType = DUCK_TYPES.filter(type => {\n return scale[type.method] !== undefined;\n })[0];\n return scaleType ? scaleType.name : undefined;\n}","import { VictoryTheme } from \"../victory-theme/victory-theme\";\n\n/**\n * Given an object with CSS/SVG transform definitions, return the string value\n * for use with the `transform` CSS property or SVG attribute. Note that we\n * can't always guarantee the order will match the author's intended order, so\n * authors should only use the object notation if they know that their transform\n * is commutative or that there is only one.\n * @param {Object} obj An object of transform definitions.\n * @returns {String} The generated transform string.\n */\nexport const toTransformString = function (obj) {\n for (var _len = arguments.length, more = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n more[_key - 1] = arguments[_key];\n }\n if (more.length > 0) {\n return more.reduce((memo, currentObj) => {\n return [memo, toTransformString(currentObj)].join(\" \");\n }, toTransformString(obj)).trim();\n }\n if (obj === undefined || obj === null || typeof obj === \"string\") {\n return obj;\n }\n const transforms = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const value = obj[key];\n transforms.push(`${key}(${value})`);\n }\n }\n return transforms.join(\" \").trim();\n};\n\n/**\n * Given the name of a color scale, getColorScale will return an array\n * of 5 hex string values in that color scale. If no 'name' parameter\n * is given, it will return the Victory default grayscale.\n * @param {String} name The name of the color scale to return (optional).\n * @param {Object} theme The theme object to retrieve the color scale from (optional).\n * @returns {Array} An array of 5 hex string values composing a color scale.\n */\nexport function getColorScale(name, theme) {\n if (theme === void 0) {\n theme = VictoryTheme.material;\n }\n const {\n palette: {\n grayscale = [\"#cccccc\", \"#969696\", \"#636363\", \"#252525\"],\n qualitative = [],\n heatmap = [],\n warm = [],\n cool = [],\n red = [],\n blue = [],\n green = []\n } = {}\n } = theme;\n const scales = {\n grayscale,\n qualitative,\n heatmap,\n warm,\n cool,\n red,\n blue,\n green\n };\n const selectedScale = name && scales[name]?.length ? scales[name] : scales.grayscale;\n return selectedScale;\n}","// http://www.pearsonified.com/2012/01/characters-per-line.php\n/* eslint-disable no-magic-numbers */\nimport defaults from \"lodash/defaults\";\nimport memoize from \"lodash/memoize\";\n\n// Based on measuring specific character widths\n// as in the following example https://bl.ocks.org/tophtucker/62f93a4658387bb61e4510c37e2e97cf\n// For new fonts: pull gist, open index.html locally, add font files (if not generic), enter font name in `font-family` input\n// prettier-ignore\nconst fonts = {\n \"American Typewriter\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.4203125, 0.3296875, 0.6, 0.6375, 0.8015625, 0.8203125, 0.1875, 0.45625, 0.45625, 0.6375, 0.5, 0.2734375, 0.309375, 0.2734375, 0.4390625, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.2734375, 0.2734375, 0.5, 0.5, 0.5, 0.6, 0.6921875, 0.7640625, 0.6921875, 0.6375, 0.728125, 0.6734375, 0.6203125, 0.7109375, 0.784375, 0.3828125, 0.6421875, 0.7859375, 0.6375, 0.9484375, 0.7640625, 0.65625, 0.6375, 0.65625, 0.7296875, 0.6203125, 0.6375, 0.7109375, 0.740625, 0.940625, 0.784375, 0.7578125, 0.6203125, 0.4375, 0.5, 0.4375, 0.5, 0.5, 0.4921875, 0.5734375, 0.5890625, 0.5109375, 0.6, 0.528125, 0.43125, 0.5578125, 0.6375, 0.3109375, 0.40625, 0.6234375, 0.309375, 0.928125, 0.6375, 0.546875, 0.6, 0.58125, 0.4921875, 0.4921875, 0.4, 0.6203125, 0.625, 0.825, 0.6375, 0.640625, 0.528125, 0.5, 0.5, 0.5, 0.6671875],\n avg: 0.5793421052631578\n },\n Arial: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.278125, 0.35625, 0.55625, 0.55625, 0.890625, 0.6671875, 0.1921875, 0.334375, 0.334375, 0.390625, 0.584375, 0.278125, 0.334375, 0.278125, 0.278125, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.584375, 0.584375, 0.584375, 0.55625, 1.015625, 0.6703125, 0.6671875, 0.7234375, 0.7234375, 0.6671875, 0.6109375, 0.778125, 0.7234375, 0.278125, 0.5, 0.6671875, 0.55625, 0.834375, 0.7234375, 0.778125, 0.6671875, 0.778125, 0.7234375, 0.6671875, 0.6109375, 0.7234375, 0.6671875, 0.9453125, 0.6671875, 0.6671875, 0.6109375, 0.278125, 0.278125, 0.278125, 0.4703125, 0.584375, 0.334375, 0.55625, 0.55625, 0.5, 0.55625, 0.55625, 0.3125, 0.55625, 0.55625, 0.2234375, 0.2703125, 0.5, 0.2234375, 0.834375, 0.55625, 0.55625, 0.55625, 0.55625, 0.346875, 0.5, 0.278125, 0.55625, 0.5, 0.7234375, 0.5, 0.5, 0.5, 0.334375, 0.2609375, 0.334375, 0.584375],\n avg: 0.528733552631579\n },\n \"Arial Black\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.33125, 0.334375, 0.5, 0.6609375, 0.6671875, 1, 0.890625, 0.278125, 0.390625, 0.390625, 0.55625, 0.6609375, 0.334375, 0.334375, 0.334375, 0.28125, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.334375, 0.334375, 0.6609375, 0.6609375, 0.6609375, 0.6109375, 0.7453125, 0.78125, 0.778125, 0.778125, 0.778125, 0.7234375, 0.6671875, 0.834375, 0.834375, 0.390625, 0.6671875, 0.834375, 0.6671875, 0.9453125, 0.834375, 0.834375, 0.7234375, 0.834375, 0.78125, 0.7234375, 0.7234375, 0.834375, 0.7796875, 1.003125, 0.78125, 0.78125, 0.7234375, 0.390625, 0.28125, 0.390625, 0.6609375, 0.5125, 0.334375, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.41875, 0.6671875, 0.6671875, 0.334375, 0.384375, 0.6671875, 0.334375, 1, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.4703125, 0.6109375, 0.4453125, 0.6671875, 0.6140625, 0.946875, 0.6671875, 0.615625, 0.55625, 0.390625, 0.278125, 0.390625, 0.6609375],\n avg: 0.6213157894736842\n },\n Baskerville: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.40625, 0.6671875, 0.490625, 0.875, 0.7015625, 0.178125, 0.2453125, 0.246875, 0.4171875, 0.6671875, 0.25, 0.3125, 0.25, 0.521875, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.25, 0.25, 0.6671875, 0.6671875, 0.6671875, 0.396875, 0.9171875, 0.684375, 0.615625, 0.71875, 0.7609375, 0.625, 0.553125, 0.771875, 0.803125, 0.3546875, 0.515625, 0.78125, 0.6046875, 0.928125, 0.75, 0.8234375, 0.5625, 0.96875, 0.7296875, 0.5421875, 0.6984375, 0.771875, 0.7296875, 0.9484375, 0.771875, 0.678125, 0.6359375, 0.3640625, 0.521875, 0.3640625, 0.46875, 0.5125, 0.334375, 0.46875, 0.521875, 0.428125, 0.521875, 0.4375, 0.3890625, 0.4765625, 0.53125, 0.25, 0.359375, 0.4640625, 0.240625, 0.803125, 0.53125, 0.5, 0.521875, 0.521875, 0.365625, 0.334375, 0.2921875, 0.521875, 0.4640625, 0.678125, 0.4796875, 0.465625, 0.428125, 0.4796875, 0.5109375, 0.4796875, 0.6671875],\n avg: 0.5323519736842108\n },\n Courier: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6078125, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.61875, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.615625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6140625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6020559210526316\n },\n \"Courier New\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6015296052631579\n },\n cursive: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1921875, 0.24375, 0.40625, 0.5671875, 0.3984375, 0.721875, 0.909375, 0.2328125, 0.434375, 0.365625, 0.4734375, 0.5578125, 0.19375, 0.3484375, 0.19375, 0.7734375, 0.503125, 0.4171875, 0.5453125, 0.45, 0.6046875, 0.4703125, 0.5984375, 0.55625, 0.503125, 0.5546875, 0.20625, 0.2, 0.5625, 0.5546875, 0.546875, 0.403125, 0.70625, 0.734375, 0.7078125, 0.64375, 0.85, 0.753125, 0.75, 0.6484375, 1.0765625, 0.44375, 0.5359375, 0.8359375, 0.653125, 1.0109375, 1.1515625, 0.6796875, 0.6984375, 1.0625, 0.8234375, 0.5125, 0.9234375, 0.8546875, 0.70625, 0.9109375, 0.7421875, 0.715625, 0.6015625, 0.4640625, 0.3359375, 0.4109375, 0.5421875, 0.5421875, 0.4328125, 0.5125, 0.5, 0.3859375, 0.7375, 0.359375, 0.75625, 0.540625, 0.5328125, 0.3203125, 0.5296875, 0.5015625, 0.484375, 0.7890625, 0.5640625, 0.4203125, 0.703125, 0.471875, 0.4734375, 0.35, 0.4125, 0.5640625, 0.471875, 0.6484375, 0.5296875, 0.575, 0.4140625, 0.415625, 0.20625, 0.3796875, 0.5421875],\n avg: 0.5604440789473684\n },\n fantasy: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.215625, 0.2625, 0.3265625, 0.6109375, 0.534375, 0.7625, 0.7828125, 0.2, 0.4359375, 0.4359375, 0.3765625, 0.5109375, 0.2796875, 0.4609375, 0.2796875, 0.5296875, 0.6640625, 0.253125, 0.521875, 0.4765625, 0.6640625, 0.490625, 0.528125, 0.5546875, 0.496875, 0.5421875, 0.2796875, 0.2796875, 0.5625, 0.4609375, 0.5625, 0.4828125, 0.609375, 0.740625, 0.7234375, 0.740625, 0.8265625, 0.7234375, 0.6171875, 0.7359375, 0.765625, 0.240625, 0.5453125, 0.715625, 0.6078125, 0.8640625, 0.653125, 0.9125, 0.6484375, 0.946875, 0.6921875, 0.653125, 0.6953125, 0.8015625, 0.58125, 0.784375, 0.671875, 0.6265625, 0.690625, 0.4359375, 0.5296875, 0.4359375, 0.53125, 0.5, 0.2875, 0.5375, 0.603125, 0.4984375, 0.60625, 0.53125, 0.434375, 0.6421875, 0.56875, 0.209375, 0.4671875, 0.5484375, 0.2203125, 0.709375, 0.55, 0.5984375, 0.6140625, 0.5765625, 0.40625, 0.4734375, 0.3734375, 0.559375, 0.4421875, 0.6421875, 0.4890625, 0.578125, 0.4484375, 0.2546875, 0.2203125, 0.2546875, 0.55],\n avg: 0.536496710526316\n },\n Geneva: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3328125, 0.3046875, 0.5, 0.6671875, 0.6671875, 0.90625, 0.728125, 0.3046875, 0.446875, 0.446875, 0.5078125, 0.6671875, 0.3046875, 0.3796875, 0.3046875, 0.5390625, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.3046875, 0.3046875, 0.6671875, 0.6671875, 0.6671875, 0.56875, 0.871875, 0.728125, 0.6375, 0.6515625, 0.7015625, 0.5765625, 0.5546875, 0.675, 0.690625, 0.2421875, 0.4921875, 0.6640625, 0.584375, 0.7890625, 0.709375, 0.7359375, 0.584375, 0.78125, 0.60625, 0.60625, 0.640625, 0.6671875, 0.728125, 0.946875, 0.6109375, 0.6109375, 0.5765625, 0.446875, 0.5390625, 0.446875, 0.6671875, 0.6671875, 0.5921875, 0.5546875, 0.6109375, 0.546875, 0.603125, 0.5765625, 0.390625, 0.6109375, 0.584375, 0.2359375, 0.334375, 0.5390625, 0.2359375, 0.8953125, 0.584375, 0.60625, 0.603125, 0.603125, 0.3875, 0.509375, 0.44375, 0.584375, 0.565625, 0.78125, 0.53125, 0.571875, 0.5546875, 0.4515625, 0.246875, 0.4515625, 0.6671875],\n avg: 0.5762664473684211\n },\n Georgia: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2421875, 0.33125, 0.4125, 0.64375, 0.6109375, 0.81875, 0.7109375, 0.215625, 0.375, 0.375, 0.4734375, 0.64375, 0.2703125, 0.375, 0.2703125, 0.46875, 0.6140625, 0.4296875, 0.559375, 0.553125, 0.565625, 0.5296875, 0.5671875, 0.503125, 0.596875, 0.5671875, 0.3125, 0.3125, 0.64375, 0.64375, 0.64375, 0.4796875, 0.9296875, 0.715625, 0.6546875, 0.6421875, 0.75, 0.6546875, 0.6, 0.7265625, 0.815625, 0.390625, 0.51875, 0.7203125, 0.6046875, 0.928125, 0.7671875, 0.7453125, 0.6109375, 0.7453125, 0.7234375, 0.5625, 0.61875, 0.7578125, 0.70625, 0.99375, 0.7125, 0.6640625, 0.6015625, 0.375, 0.46875, 0.375, 0.64375, 0.65, 0.5, 0.5046875, 0.56875, 0.4546875, 0.575, 0.484375, 0.39375, 0.509375, 0.5828125, 0.29375, 0.3671875, 0.546875, 0.2875, 0.88125, 0.5921875, 0.5390625, 0.571875, 0.5640625, 0.4109375, 0.4328125, 0.3453125, 0.5765625, 0.5203125, 0.75625, 0.50625, 0.5171875, 0.4453125, 0.43125, 0.375, 0.43125, 0.64375],\n avg: 0.5551809210526316\n },\n \"Gill Sans\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2765625, 0.271875, 0.3546875, 0.584375, 0.5421875, 0.6765625, 0.625, 0.1890625, 0.3234375, 0.3234375, 0.4171875, 0.584375, 0.2203125, 0.3234375, 0.2203125, 0.28125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.2203125, 0.2296875, 0.584375, 0.584375, 0.584375, 0.334375, 1.0109375, 0.6671875, 0.5640625, 0.709375, 0.75, 0.5, 0.4703125, 0.740625, 0.7296875, 0.25, 0.3125, 0.65625, 0.490625, 0.78125, 0.78125, 0.8234375, 0.5109375, 0.8234375, 0.6046875, 0.459375, 0.6046875, 0.709375, 0.6046875, 1.0421875, 0.709375, 0.6046875, 0.646875, 0.334375, 0.28125, 0.334375, 0.4703125, 0.5828125, 0.334375, 0.428125, 0.5, 0.4390625, 0.5109375, 0.4796875, 0.296875, 0.428125, 0.5, 0.2203125, 0.2265625, 0.5, 0.2203125, 0.771875, 0.5, 0.553125, 0.5, 0.5, 0.3984375, 0.3859375, 0.334375, 0.5, 0.4390625, 0.7203125, 0.5, 0.4390625, 0.4171875, 0.334375, 0.2609375, 0.334375, 0.584375],\n avg: 0.4933717105263159\n },\n Helvetica: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2796875, 0.2765625, 0.3546875, 0.5546875, 0.5546875, 0.8890625, 0.665625, 0.190625, 0.3328125, 0.3328125, 0.3890625, 0.5828125, 0.2765625, 0.3328125, 0.2765625, 0.3015625, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.2765625, 0.2765625, 0.584375, 0.5828125, 0.584375, 0.5546875, 1.0140625, 0.665625, 0.665625, 0.721875, 0.721875, 0.665625, 0.609375, 0.7765625, 0.721875, 0.2765625, 0.5, 0.665625, 0.5546875, 0.8328125, 0.721875, 0.7765625, 0.665625, 0.7765625, 0.721875, 0.665625, 0.609375, 0.721875, 0.665625, 0.94375, 0.665625, 0.665625, 0.609375, 0.2765625, 0.3546875, 0.2765625, 0.4765625, 0.5546875, 0.3328125, 0.5546875, 0.5546875, 0.5, 0.5546875, 0.5546875, 0.2765625, 0.5546875, 0.5546875, 0.221875, 0.240625, 0.5, 0.221875, 0.8328125, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.3328125, 0.5, 0.2765625, 0.5546875, 0.5, 0.721875, 0.5, 0.5, 0.5, 0.3546875, 0.259375, 0.353125, 0.5890625],\n avg: 0.5279276315789471\n },\n \"Helvetica Neue\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.259375, 0.4265625, 0.55625, 0.55625, 1, 0.6453125, 0.278125, 0.2703125, 0.26875, 0.353125, 0.6, 0.278125, 0.3890625, 0.278125, 0.36875, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.6, 0.6, 0.6, 0.55625, 0.8, 0.6625, 0.6859375, 0.7234375, 0.7046875, 0.6125, 0.575, 0.759375, 0.7234375, 0.259375, 0.5203125, 0.6703125, 0.55625, 0.871875, 0.7234375, 0.7609375, 0.6484375, 0.7609375, 0.6859375, 0.6484375, 0.575, 0.7234375, 0.6140625, 0.9265625, 0.6125, 0.6484375, 0.6125, 0.259375, 0.36875, 0.259375, 0.6, 0.5, 0.25625, 0.5375, 0.59375, 0.5375, 0.59375, 0.5375, 0.2984375, 0.575, 0.55625, 0.2234375, 0.2375, 0.5203125, 0.2234375, 0.853125, 0.55625, 0.575, 0.59375, 0.59375, 0.334375, 0.5, 0.315625, 0.55625, 0.5, 0.759375, 0.51875, 0.5, 0.48125, 0.334375, 0.2234375, 0.334375, 0.6],\n avg: 0.5279440789473684\n },\n \"Hoefler Text\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2359375, 0.2234375, 0.3921875, 0.7125, 0.49375, 0.8859375, 0.771875, 0.2125, 0.3078125, 0.309375, 0.375, 0.4234375, 0.234375, 0.3125, 0.234375, 0.3, 0.5828125, 0.365625, 0.434375, 0.3921875, 0.5234375, 0.3984375, 0.5125, 0.4328125, 0.46875, 0.5125, 0.234375, 0.234375, 0.515625, 0.4234375, 0.515625, 0.340625, 0.7609375, 0.7359375, 0.6359375, 0.721875, 0.8125, 0.6375, 0.5875, 0.8078125, 0.853125, 0.4296875, 0.503125, 0.78125, 0.609375, 0.9609375, 0.8515625, 0.8140625, 0.6125, 0.8140625, 0.71875, 0.49375, 0.7125, 0.76875, 0.771875, 1.125, 0.7765625, 0.7734375, 0.65625, 0.321875, 0.3078125, 0.321875, 0.3546875, 0.5, 0.3375, 0.446875, 0.5359375, 0.45, 0.5296875, 0.4546875, 0.425, 0.4921875, 0.54375, 0.2671875, 0.240625, 0.5390625, 0.25, 0.815625, 0.5375, 0.5234375, 0.5390625, 0.5421875, 0.365625, 0.36875, 0.35625, 0.5171875, 0.5015625, 0.75, 0.5, 0.509375, 0.44375, 0.2421875, 0.14375, 0.2421875, 0.35],\n avg: 0.5116447368421051\n },\n \"Inter\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2796875, 0.2890625, 0.4671875, 0.634375, 0.6421875, 0.9828125, 0.6453125, 0.3, 0.365625, 0.365625, 0.5015625, 0.6625, 0.2890625, 0.4609375, 0.2890625, 0.3609375, 0.63125, 0.4078125, 0.6109375, 0.61875, 0.646875, 0.59375, 0.6203125, 0.5671875, 0.61875, 0.6203125, 0.2890625, 0.303125, 0.6625, 0.6625, 0.6625, 0.5125, 0.9671875, 0.690625, 0.6546875, 0.73125, 0.721875, 0.6015625, 0.590625, 0.746875, 0.74375, 0.26875, 0.571875, 0.671875, 0.565625, 0.9046875, 0.7546875, 0.765625, 0.6390625, 0.765625, 0.64375, 0.6421875, 0.646875, 0.7453125, 0.690625, 0.9859375, 0.6828125, 0.6796875, 0.6296875, 0.365625, 0.3609375, 0.365625, 0.471875, 0.45625, 0.3234375, 0.5625, 0.6125, 0.571875, 0.6125, 0.584375, 0.3703125, 0.6140625, 0.5921875, 0.2421875, 0.2548828125, 0.55, 0.2421875, 0.8765625, 0.5921875, 0.6, 0.6125, 0.6125, 0.3765625, 0.528125, 0.328125, 0.5921875, 0.5625, 0.81875, 0.546875, 0.5625, 0.553125, 0.4265625, 0.3328125, 0.4265625, 0.6625],\n avg: 0.5624362664473683\n },\n \"Montserrat\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2625, 0.2609375, 0.3734375, 0.696875, 0.615625, 0.8296875, 0.6703125, 0.203125, 0.3296875, 0.3296875, 0.3875, 0.575, 0.2125, 0.3828125, 0.2125, 0.3953125, 0.6625, 0.3625, 0.56875, 0.5640625, 0.6625, 0.5671875, 0.609375, 0.5890625, 0.6390625, 0.609375, 0.2125, 0.2125, 0.575, 0.575, 0.575, 0.5671875, 1.034375, 0.7171875, 0.7546875, 0.7203125, 0.8265625, 0.6703125, 0.634375, 0.7734375, 0.8140625, 0.303125, 0.5078125, 0.7125, 0.5890625, 0.95625, 0.8140625, 0.8390625, 0.71875, 0.8390625, 0.7234375, 0.615625, 0.575, 0.7921875, 0.6984375, 1.1125, 0.65625, 0.6359375, 0.6515625, 0.31875, 0.396875, 0.31875, 0.5765625, 0.5, 0.6, 0.590625, 0.678125, 0.5640625, 0.678125, 0.6046875, 0.375, 0.6875, 0.678125, 0.2703125, 0.365625, 0.6015625, 0.2703125, 1.0625, 0.678125, 0.628125, 0.678125, 0.678125, 0.4015625, 0.4890625, 0.40625, 0.6734375, 0.5421875, 0.8796875, 0.534375, 0.5671875, 0.5125, 0.334375, 0.2953125, 0.334375, 0.575],\n avg: 0.571792763157895\n },\n monospace: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6078125, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.61875, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.615625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6140625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6020559210526316\n },\n Overpass: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2296875, 0.2765625, 0.4203125, 0.68125, 0.584375, 0.8515625, 0.7015625, 0.2203125, 0.3453125, 0.3453125, 0.53125, 0.63125, 0.2234375, 0.3953125, 0.2234375, 0.509375, 0.65, 0.4046875, 0.6171875, 0.60625, 0.6484375, 0.60625, 0.6015625, 0.5375, 0.615625, 0.6015625, 0.2234375, 0.2234375, 0.63125, 0.63125, 0.63125, 0.5015625, 0.8203125, 0.696875, 0.6671875, 0.65, 0.6859375, 0.6015625, 0.559375, 0.690625, 0.7078125, 0.2953125, 0.565625, 0.678125, 0.58125, 0.8046875, 0.7109375, 0.740625, 0.6421875, 0.740625, 0.6765625, 0.6046875, 0.590625, 0.696875, 0.6640625, 0.853125, 0.65, 0.6671875, 0.6625, 0.3734375, 0.509375, 0.3734375, 0.63125, 0.5125, 0.4, 0.5328125, 0.5625, 0.51875, 0.5625, 0.546875, 0.3359375, 0.5625, 0.565625, 0.25625, 0.3203125, 0.55, 0.265625, 0.85, 0.565625, 0.5671875, 0.5625, 0.5625, 0.4046875, 0.4765625, 0.3796875, 0.565625, 0.521875, 0.7265625, 0.53125, 0.5390625, 0.5125, 0.3671875, 0.275, 0.3671875, 0.63125],\n avg: 0.5430756578947369\n },\n Palatino: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.278125, 0.371875, 0.60625, 0.5, 0.840625, 0.778125, 0.209375, 0.334375, 0.334375, 0.390625, 0.60625, 0.2578125, 0.334375, 0.25, 0.60625, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.25, 0.25, 0.60625, 0.60625, 0.60625, 0.4453125, 0.7484375, 0.778125, 0.6109375, 0.709375, 0.775, 0.6109375, 0.55625, 0.7640625, 0.8328125, 0.3375, 0.346875, 0.7265625, 0.6109375, 0.946875, 0.83125, 0.7875, 0.6046875, 0.7875, 0.66875, 0.525, 0.6140625, 0.778125, 0.7234375, 1, 0.6671875, 0.6671875, 0.6671875, 0.334375, 0.60625, 0.334375, 0.60625, 0.5, 0.334375, 0.5, 0.565625, 0.4453125, 0.6109375, 0.4796875, 0.340625, 0.55625, 0.5828125, 0.2921875, 0.2671875, 0.5640625, 0.2921875, 0.8828125, 0.5828125, 0.546875, 0.6015625, 0.5609375, 0.3953125, 0.425, 0.3265625, 0.603125, 0.565625, 0.834375, 0.5171875, 0.55625, 0.5, 0.334375, 0.60625, 0.334375, 0.60625],\n avg: 0.5408552631578947\n },\n \"RedHatText\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2328125, 0.2203125, 0.35625, 0.6890625, 0.55, 0.7390625, 0.6703125, 0.2140625, 0.4015625, 0.4015625, 0.4546875, 0.53125, 0.2203125, 0.45625, 0.2203125, 0.515625, 0.6609375, 0.3078125, 0.5484375, 0.5875, 0.61875, 0.5703125, 0.6203125, 0.559375, 0.6140625, 0.6203125, 0.2203125, 0.2234375, 0.465625, 0.534375, 0.465625, 0.5125, 0.7671875, 0.6609375, 0.6703125, 0.7265625, 0.728125, 0.6203125, 0.6109375, 0.8, 0.73125, 0.253125, 0.6, 0.6125, 0.6078125, 0.8625, 0.7390625, 0.8109375, 0.6546875, 0.809375, 0.6484375, 0.6234375, 0.6171875, 0.7125, 0.6609375, 0.8984375, 0.6546875, 0.646875, 0.60625, 0.3625, 0.5203125, 0.3625, 0.540625, 0.4609375, 0.5234375, 0.5265625, 0.584375, 0.509375, 0.5828125, 0.5578125, 0.3703125, 0.5828125, 0.553125, 0.2234375, 0.24375, 0.4890625, 0.2234375, 0.8453125, 0.553125, 0.58125, 0.584375, 0.5828125, 0.353125, 0.453125, 0.378125, 0.553125, 0.5015625, 0.6984375, 0.4875, 0.4984375, 0.459375, 0.3953125, 0.2921875, 0.3953125, 0.58125],\n avg: 0.5341940789473685\n },\n \"sans-serif\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.278125, 0.35625, 0.55625, 0.55625, 0.890625, 0.6671875, 0.1921875, 0.334375, 0.334375, 0.390625, 0.584375, 0.278125, 0.334375, 0.278125, 0.303125, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.5859375, 0.584375, 0.5859375, 0.55625, 1.015625, 0.6671875, 0.6671875, 0.7234375, 0.7234375, 0.6671875, 0.6109375, 0.778125, 0.7234375, 0.278125, 0.5, 0.6671875, 0.55625, 0.834375, 0.7234375, 0.778125, 0.6671875, 0.778125, 0.7234375, 0.6671875, 0.6109375, 0.7234375, 0.6671875, 0.9453125, 0.6671875, 0.6671875, 0.6109375, 0.278125, 0.35625, 0.278125, 0.478125, 0.55625, 0.334375, 0.55625, 0.55625, 0.5, 0.55625, 0.55625, 0.278125, 0.55625, 0.55625, 0.2234375, 0.2421875, 0.5, 0.2234375, 0.834375, 0.55625, 0.55625, 0.55625, 0.55625, 0.334375, 0.5, 0.278125, 0.55625, 0.5, 0.7234375, 0.5, 0.5, 0.5, 0.35625, 0.2609375, 0.3546875, 0.590625],\n avg: 0.5293256578947368\n },\n Seravek: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.215625, 0.296875, 0.4171875, 0.6734375, 0.4953125, 0.9125, 0.740625, 0.2421875, 0.3375, 0.3375, 0.409375, 0.60625, 0.2609375, 0.35625, 0.25625, 0.41875, 0.5921875, 0.3515625, 0.475, 0.4875, 0.5375, 0.509375, 0.5484375, 0.4546875, 0.5421875, 0.5484375, 0.25625, 0.2546875, 0.5875, 0.6171875, 0.5875, 0.4578125, 0.8140625, 0.6765625, 0.5703125, 0.6109375, 0.684375, 0.5109375, 0.4953125, 0.678125, 0.6859375, 0.2625, 0.2625, 0.5859375, 0.4734375, 0.846875, 0.709375, 0.740625, 0.509375, 0.740625, 0.584375, 0.5015625, 0.528125, 0.675, 0.5953125, 0.9453125, 0.596875, 0.540625, 0.540625, 0.359375, 0.4203125, 0.359375, 0.5109375, 0.421875, 0.4046875, 0.5015625, 0.5421875, 0.446875, 0.5453125, 0.484375, 0.38125, 0.5140625, 0.5546875, 0.240625, 0.2640625, 0.490625, 0.2765625, 0.8625, 0.5546875, 0.546875, 0.5453125, 0.5453125, 0.3625, 0.41875, 0.3890625, 0.5453125, 0.4703125, 0.7546875, 0.4921875, 0.4609375, 0.453125, 0.4015625, 0.2640625, 0.4015625, 0.58125],\n avg: 0.5044078947368421\n },\n serif: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2484375, 0.334375, 0.409375, 0.5, 0.5, 0.834375, 0.778125, 0.18125, 0.334375, 0.334375, 0.5, 0.5640625, 0.25, 0.334375, 0.25, 0.278125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.278125, 0.278125, 0.5640625, 0.5640625, 0.5640625, 0.4453125, 0.921875, 0.7234375, 0.6671875, 0.6671875, 0.7234375, 0.6109375, 0.55625, 0.7234375, 0.7234375, 0.334375, 0.390625, 0.7234375, 0.6109375, 0.890625, 0.7234375, 0.7234375, 0.55625, 0.7234375, 0.6671875, 0.55625, 0.6109375, 0.7234375, 0.7234375, 0.9453125, 0.7234375, 0.7234375, 0.6109375, 0.334375, 0.340625, 0.334375, 0.4703125, 0.5, 0.3453125, 0.4453125, 0.5, 0.4453125, 0.5, 0.4453125, 0.3828125, 0.5, 0.5, 0.278125, 0.3359375, 0.5, 0.278125, 0.778125, 0.5, 0.5, 0.5, 0.5, 0.3375, 0.390625, 0.2796875, 0.5, 0.5, 0.7234375, 0.5, 0.5, 0.4453125, 0.48125, 0.2015625, 0.48125, 0.5421875],\n avg: 0.5126315789473684\n },\n Tahoma: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3109375, 0.3328125, 0.4015625, 0.728125, 0.546875, 0.9765625, 0.70625, 0.2109375, 0.3828125, 0.3828125, 0.546875, 0.728125, 0.303125, 0.3640625, 0.303125, 0.3953125, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.3546875, 0.3546875, 0.728125, 0.728125, 0.728125, 0.475, 0.909375, 0.6109375, 0.590625, 0.6015625, 0.6796875, 0.5625, 0.521875, 0.66875, 0.6765625, 0.3734375, 0.4171875, 0.6046875, 0.4984375, 0.771875, 0.66875, 0.7078125, 0.5515625, 0.7078125, 0.6375, 0.5578125, 0.5875, 0.65625, 0.60625, 0.903125, 0.58125, 0.5890625, 0.559375, 0.3828125, 0.39375, 0.3828125, 0.728125, 0.5625, 0.546875, 0.525, 0.553125, 0.4625, 0.553125, 0.5265625, 0.3546875, 0.553125, 0.5578125, 0.2296875, 0.328125, 0.51875, 0.2296875, 0.840625, 0.5578125, 0.54375, 0.553125, 0.553125, 0.3609375, 0.446875, 0.3359375, 0.5578125, 0.4984375, 0.7421875, 0.4953125, 0.4984375, 0.4453125, 0.48125, 0.3828125, 0.48125, 0.728125],\n avg: 0.5384374999999998\n },\n \"Times New Roman\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2484375, 0.334375, 0.409375, 0.5, 0.5, 0.834375, 0.778125, 0.18125, 0.334375, 0.334375, 0.5, 0.5640625, 0.25, 0.334375, 0.25, 0.28125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.278125, 0.278125, 0.5640625, 0.5640625, 0.5640625, 0.4453125, 0.921875, 0.7234375, 0.6671875, 0.6671875, 0.7234375, 0.6109375, 0.55625, 0.7234375, 0.7234375, 0.334375, 0.390625, 0.73125, 0.6109375, 0.890625, 0.7375, 0.7234375, 0.55625, 0.7234375, 0.6765625, 0.55625, 0.6109375, 0.7234375, 0.7234375, 0.9453125, 0.7234375, 0.7234375, 0.6109375, 0.334375, 0.28125, 0.334375, 0.4703125, 0.51875, 0.334375, 0.4453125, 0.503125, 0.4453125, 0.503125, 0.4453125, 0.4359375, 0.5, 0.5, 0.278125, 0.35625, 0.50625, 0.278125, 0.778125, 0.5, 0.5, 0.5046875, 0.5, 0.340625, 0.390625, 0.2796875, 0.5, 0.5, 0.7234375, 0.5, 0.5, 0.4453125, 0.48125, 0.2015625, 0.48125, 0.5421875],\n avg: 0.5134375\n },\n \"Trebuchet MS\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3015625, 0.3671875, 0.325, 0.53125, 0.525, 0.6015625, 0.70625, 0.1609375, 0.3671875, 0.3671875, 0.3671875, 0.525, 0.3671875, 0.3671875, 0.3671875, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.3671875, 0.3671875, 0.525, 0.525, 0.525, 0.3671875, 0.771875, 0.590625, 0.5671875, 0.5984375, 0.6140625, 0.5359375, 0.525, 0.6765625, 0.6546875, 0.2796875, 0.4765625, 0.5765625, 0.5078125, 0.7109375, 0.6390625, 0.675, 0.5578125, 0.7421875, 0.5828125, 0.48125, 0.58125, 0.6484375, 0.5875, 0.853125, 0.5578125, 0.5703125, 0.5515625, 0.3671875, 0.3578125, 0.3671875, 0.525, 0.53125, 0.525, 0.5265625, 0.5578125, 0.4953125, 0.5578125, 0.546875, 0.375, 0.503125, 0.546875, 0.2859375, 0.3671875, 0.5046875, 0.2953125, 0.83125, 0.546875, 0.5375, 0.5578125, 0.5578125, 0.3890625, 0.40625, 0.396875, 0.546875, 0.490625, 0.7453125, 0.5015625, 0.49375, 0.475, 0.3671875, 0.525, 0.3671875, 0.525],\n avg: 0.5085197368421052\n },\n Verdana: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.35, 0.39375, 0.459375, 0.81875, 0.6359375, 1.0765625, 0.759375, 0.26875, 0.4546875, 0.4546875, 0.6359375, 0.81875, 0.3640625, 0.4546875, 0.3640625, 0.4703125, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.4546875, 0.4546875, 0.81875, 0.81875, 0.81875, 0.546875, 1, 0.684375, 0.6859375, 0.6984375, 0.771875, 0.6328125, 0.575, 0.7765625, 0.7515625, 0.421875, 0.4546875, 0.69375, 0.5578125, 0.84375, 0.7484375, 0.7875, 0.603125, 0.7875, 0.7, 0.684375, 0.6171875, 0.7328125, 0.684375, 0.9890625, 0.6859375, 0.615625, 0.6859375, 0.4546875, 0.46875, 0.4546875, 0.81875, 0.6421875, 0.6359375, 0.6015625, 0.6234375, 0.521875, 0.6234375, 0.596875, 0.384375, 0.6234375, 0.6328125, 0.275, 0.3765625, 0.5921875, 0.275, 0.9734375, 0.6328125, 0.6078125, 0.6234375, 0.6234375, 0.43125, 0.521875, 0.3953125, 0.6328125, 0.5921875, 0.81875, 0.5921875, 0.5921875, 0.5265625, 0.6359375, 0.4546875, 0.6359375, 0.81875],\n avg: 0.6171875000000003\n }\n};\n\n// https://developer.mozilla.org/en/docs/Web/CSS/length\n// Absolute sizes in pixels for obsolete measurement units.\nconst absoluteMeasurementUnitsToPixels = {\n mm: 3.8,\n sm: 38,\n pt: 1.33,\n pc: 16,\n in: 96,\n px: 1\n};\nconst relativeMeasurementUnitsCoef = {\n em: 1,\n ex: 0.5\n};\nconst coefficients = {\n heightOverlapCoef: 1.05,\n // Coefficient for height value to prevent overlap.\n lineCapitalCoef: 1.15 // Coefficient for height value. Reserve space for capital chars.\n};\nconst defaultStyle = {\n lineHeight: 1,\n letterSpacing: \"0px\",\n fontSize: 0,\n angle: 0,\n fontFamily: \"\"\n};\nconst _degreeToRadian = angle => angle * Math.PI / 180;\nconst _getFontData = fontFamily => {\n const possibleFonts = fontFamily.split(\",\").map(f => f.replace(/'|\"/g, \"\"));\n const fontMatch = possibleFonts.find(f => fonts[f]) || \"Helvetica\";\n return fonts[fontMatch];\n};\nconst _splitToLines = text => {\n return Array.isArray(text) ? text : text.toString().split(/\\r\\n|\\r|\\n/g);\n};\nconst _getSizeWithRotate = (axisSize, dependentSize, angle) => {\n const angleInRadian = _degreeToRadian(angle);\n return Math.abs(Math.cos(angleInRadian) * axisSize) + Math.abs(Math.sin(angleInRadian) * dependentSize);\n};\n\n/**\n * Convert length-type parameters from specific measurement units to pixels\n * @param {string} length Css length string value.\n * @param {number} fontSize Current text font-size.\n * @returns {number} Approximate Css length in pixels.\n */\nexport const convertLengthToPixels = (length, fontSize) => {\n const attribute = length.match(/[a-zA-Z%]+/)?.[0];\n const value = Number(length.match(/[0-9.,]+/));\n let result;\n if (!attribute) {\n result = value || 0;\n } else if (absoluteMeasurementUnitsToPixels.hasOwnProperty(attribute)) {\n result = value * absoluteMeasurementUnitsToPixels[attribute];\n } else if (relativeMeasurementUnitsCoef.hasOwnProperty(attribute)) {\n result = (fontSize ? value * fontSize : value * defaultStyle.fontSize) * relativeMeasurementUnitsCoef[attribute];\n } else {\n result = value;\n }\n return result;\n};\nconst _prepareParams = (inputStyle, index) => {\n const lineStyle = Array.isArray(inputStyle) ? inputStyle[index] : inputStyle;\n const style = defaults({}, lineStyle, defaultStyle);\n return Object.assign({}, style, {\n fontFamily: style.fontFamily,\n letterSpacing: typeof style.letterSpacing === \"number\" ? style.letterSpacing : convertLengthToPixels(String(style.letterSpacing), style.fontSize),\n fontSize: typeof style.fontSize === \"number\" ? style.fontSize : convertLengthToPixels(String(style.fontSize))\n });\n};\nconst _approximateTextWidthInternal = (text, style) => {\n if (text === undefined || text === \"\" || text === null) {\n return 0;\n }\n const widths = _splitToLines(text).map((line, index) => {\n const len = line.toString().length;\n const {\n fontSize,\n letterSpacing,\n fontFamily\n } = _prepareParams(style, index);\n const fontData = _getFontData(fontFamily);\n const width = line.toString().split(\"\").map(c => {\n return c.charCodeAt(0) < fontData.widths.length ? fontData.widths[c.charCodeAt(0)] : fontData.avg;\n }).reduce((cur, acc) => acc + cur, 0) * fontSize;\n return width + letterSpacing * Math.max(len - 1, 0);\n });\n return Math.max(...widths);\n};\nconst _approximateTextHeightInternal = (text, style) => {\n if (text === undefined || text === \"\" || text === null) {\n return 0;\n }\n return _splitToLines(text).reduce((total, line, index) => {\n const lineStyle = _prepareParams(style, index);\n const containsCaps = line.toString().match(/[(A-Z)(0-9)]/);\n const height = containsCaps ? lineStyle.fontSize * coefficients.lineCapitalCoef : lineStyle.fontSize;\n return total + lineStyle.lineHeight * height;\n }, 0);\n};\nconst _approximateDimensionsInternal = (text, style) => {\n const angle = Array.isArray(style) ? style[0] && style[0].angle : style && style.angle;\n const height = _approximateTextHeightInternal(text, style);\n const width = _approximateTextWidthInternal(text, style);\n const widthWithRotate = angle ? _getSizeWithRotate(width, height, angle) : width;\n const heightWithRotate = angle ? _getSizeWithRotate(height, width, angle) : height;\n return {\n width: widthWithRotate,\n height: heightWithRotate * coefficients.heightOverlapCoef\n };\n};\nconst _getMeasurementContainer = memoize(() => {\n const element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n element.setAttribute(\"xlink\", \"http://www.w3.org/1999/xlink\");\n element.setAttribute(\"width\", \"300\");\n element.setAttribute(\"height\", \"300\");\n element.setAttribute(\"viewBox\", \"0 0 300 300\");\n element.setAttribute(\"aria-hidden\", \"true\");\n const containerElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n element.appendChild(containerElement);\n element.style.position = \"fixed\";\n element.style.top = \"-9999px\";\n element.style.left = \"-9999px\";\n document.body.appendChild(element);\n return containerElement;\n});\nconst styleToKeyComponent = style => {\n if (!style) {\n return \"null\";\n }\n return `${style.angle}:${style.fontFamily}:${style.fontSize}:${style.letterSpacing}:${style.lineHeight}`;\n};\nconst _measureDimensionsInternal = memoize((text, style) => {\n let containerElement = _getMeasurementContainer();\n if (!containerElement.isConnected) {\n _getMeasurementContainer.cache.clear?.();\n containerElement = _getMeasurementContainer();\n }\n const lines = _splitToLines(text);\n let heightAcc = 0;\n for (const [i, line] of lines.entries()) {\n const textElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n const params = _prepareParams(style, i);\n textElement.style.fontFamily = params.fontFamily;\n textElement.style.fontSize = `${params.fontSize}px`;\n textElement.style.lineHeight = params.lineHeight;\n textElement.style.fontFamily = params.fontFamily;\n textElement.style.letterSpacing = params.letterSpacing;\n textElement.textContent = line;\n textElement.setAttribute(\"x\", \"0\");\n textElement.setAttribute(\"y\", `${heightAcc}`);\n containerElement.appendChild(textElement);\n heightAcc += params.lineHeight * textElement.getBoundingClientRect().height;\n }\n const {\n width\n } = containerElement.getBoundingClientRect();\n containerElement.innerHTML = \"\";\n return {\n width: style?.angle ? _getSizeWithRotate(width, heightAcc, style?.angle) : width,\n height: style?.angle ? _getSizeWithRotate(heightAcc, width, style?.angle) : heightAcc\n };\n}, (text, style) => {\n const totalText = Array.isArray(text) ? text.join() : text;\n const totalStyle = Array.isArray(style) ? style.map(styleToKeyComponent).join() : styleToKeyComponent(style);\n return `${totalText}::${totalStyle}`;\n});\n// Stubbable implementation.\nexport const _approximateTextSizeInternal = {\n impl: function (text, style, __debugForceApproximate) {\n if (__debugForceApproximate === void 0) {\n __debugForceApproximate = false;\n }\n // Attempt to first measure the element in DOM. If there is no DOM, fallback\n // to the less accurate approximation algorithm.\n const isClient = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\n if (!isClient || __debugForceApproximate) {\n return _approximateDimensionsInternal(text, style);\n }\n return _measureDimensionsInternal(text, style);\n }\n};\n\n/**\n * Predict text size by font params.\n * @param {string|string[]} text Content for width calculation.\n * @param {Object} style Text styles, ,fontFamily, fontSize, etc.\n * @param {string} style.fontFamily Text fontFamily.\n * @param {(number|string)} style.fontSize Text fontSize.\n * @param {number} style.angle Text rotate angle.\n * @param {string} style.letterSpacing Text letterSpacing(space between letters).\n * @param {number} style.lineHeight Line height coefficient.\n * @returns {number} Approximate text label height.\n */\nexport const approximateTextSize = (text, style) => _approximateTextSizeInternal.impl(text, style);","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import { timer, now } from \"victory-vendor/d3-timer\";\nexport default class Timer {\n constructor() {\n this.shouldAnimate = true;\n this.subscribers = [];\n this.timer = null;\n this.activeSubscriptions = 0;\n }\n bypassAnimation() {\n this.shouldAnimate = false;\n }\n resumeAnimation() {\n this.shouldAnimate = true;\n }\n loop = () => {\n this.subscribers.forEach(s => {\n s.callback(now() - s.startTime, s.duration);\n });\n };\n start() {\n if (!this.timer) {\n this.timer = timer(this.loop);\n }\n }\n stop() {\n if (this.timer) {\n this.timer.stop();\n this.timer = null;\n }\n }\n subscribe(callback, duration) {\n const subscriptionID = this.subscribers.push({\n startTime: now(),\n callback,\n duration: this.shouldAnimate ? duration : 0\n });\n this.activeSubscriptions++;\n this.start();\n return subscriptionID;\n }\n unsubscribe(id) {\n if (id !== null && this.subscribers[id - 1]) {\n delete this.subscribers[id - 1];\n this.activeSubscriptions--;\n }\n if (this.activeSubscriptions === 0) {\n this.stop();\n }\n }\n}","import React from \"react\";\nimport Timer from \"./timer\";\n\n/**\n * The React context object consumers may use to access or override the global\n * timer.\n */\nconst TimerContext = /*#__PURE__*/React.createContext({\n transitionTimer: new Timer(),\n animationTimer: new Timer()\n});\nTimerContext.displayName = \"TimerContext\";\nexport default TimerContext;","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport identity from \"lodash/identity\";\nfunction getDatumKey(datum, idx) {\n return (datum.key || idx).toString();\n}\nfunction getKeyedData(data) {\n return data.reduce((keyedData, datum, idx) => {\n const key = getDatumKey(datum, idx);\n keyedData[key] = datum;\n return keyedData;\n }, {});\n}\nfunction getKeyedDataDifference(a, b) {\n let hasDifference = false;\n const difference = Object.keys(a).reduce((_difference, key) => {\n if (!(key in b)) {\n hasDifference = true;\n _difference[key] = true;\n }\n return _difference;\n }, {});\n return hasDifference && difference;\n}\n\n/**\n * Calculate which data-points exist in oldData and not nextData -\n * these are the `exiting` data-points. Also calculate which\n * data-points exist in nextData and not oldData - these are the\n * `entering` data-points.\n *\n * @param {Array} oldData this.props.data Array\n * @param {Array} nextData this.props.data Array\n *\n * @return {Object} Object with `entering` and `exiting` properties.\n * entering[datum.key] will be true if the data is\n * entering, and similarly for `exiting`.\n */\nfunction getNodeTransitions(oldData, nextData) {\n const oldDataKeyed = oldData && getKeyedData(oldData);\n const nextDataKeyed = nextData && getKeyedData(nextData);\n return {\n entering: oldDataKeyed && getKeyedDataDifference(nextDataKeyed, oldDataKeyed),\n exiting: nextDataKeyed && getKeyedDataDifference(oldDataKeyed, nextDataKeyed)\n };\n}\nfunction getChildData(child) {\n if (child.type && child.type.getData) {\n return child.type.getData(child.props);\n }\n return child.props && child.props.data || false;\n}\n\n/**\n * If a parent component has animation enabled, calculate the transitions\n * for any data of any child component that supports data transitions.\n * Data transitions are defined as any two datasets where data nodes exist\n * in the first set and not the second, in the second and not the first,\n * or both.\n *\n * @param {Children} oldChildren this.props.children from old props\n * @param {Children} nextChildren this.props.children from next props\n *\n * @return {Object} Object with the following properties:\n * - nodesWillExit\n * - nodesWillEnter\n * - childrenTransitions\n * - nodesShouldEnter\n */\nexport function getInitialTransitionState(oldChildren, nextChildren) {\n let nodesWillExit = false;\n let nodesWillEnter = false;\n const getTransition = (oldChild, newChild) => {\n if (!newChild || oldChild.type !== newChild.type) {\n return {};\n }\n const {\n entering,\n exiting\n } = getNodeTransitions(getChildData(oldChild), getChildData(newChild)) || {};\n nodesWillExit = nodesWillExit || !!exiting;\n nodesWillEnter = nodesWillEnter || !!entering;\n return {\n entering: entering || false,\n exiting: exiting || false\n };\n };\n const getTransitionsFromChildren = (old, next) => {\n return old.map((child, idx) => {\n if (child && child.props && child.props.children && next[idx]) {\n return getTransitionsFromChildren(React.Children.toArray(old[idx].props.children), React.Children.toArray(next[idx].props.children));\n }\n // get Transition entering and exiting nodes\n return getTransition(child, next[idx]);\n });\n };\n const childrenTransitions = getTransitionsFromChildren(React.Children.toArray(oldChildren), React.Children.toArray(nextChildren));\n return {\n nodesWillExit,\n nodesWillEnter,\n childrenTransitions,\n // TODO: This may need to be refactored for the following situation.\n // The component receives new props, and the data provided\n // is a perfect match for the previous data and domain except\n // for new nodes. In this case, we wouldn't want a delay before\n // the new nodes appear.\n nodesShouldEnter: false\n };\n}\nfunction getInitialChildProps(animate, data) {\n const after = animate.onEnter && animate.onEnter.after ? animate.onEnter.after : identity;\n return {\n data: data.map((datum, idx) => Object.assign({}, datum, after(datum, idx, data)))\n };\n}\n\n// eslint-disable-next-line max-params\nfunction getChildBeforeLoad(animate, child, data, cb) {\n const newAnimate = Object.assign({}, animate, {\n onEnd: cb\n });\n if (newAnimate && newAnimate.onLoad && !newAnimate.onLoad.duration) {\n return {\n animate: newAnimate,\n data\n };\n }\n const before = newAnimate.onLoad && newAnimate.onLoad.before ? newAnimate.onLoad.before : identity;\n // If nodes need to exit, transform them with the provided onLoad.before function.\n const newData = data.map((datum, idx) => {\n return Object.assign({}, datum, before(datum, idx, data));\n });\n return {\n animate: newAnimate,\n data: newData,\n clipWidth: 0\n };\n}\nfunction getChildOnLoad(animate, data, cb) {\n const newAnimate = Object.assign({}, animate, {\n onEnd: cb\n });\n let newData = data;\n if (newAnimate && newAnimate.onLoad && !newAnimate.onLoad.duration) {\n return {\n animate,\n data\n };\n }\n const after = animate.onLoad && animate.onLoad.after ? animate.onLoad.after : identity;\n // If nodes need to exit, transform them with the provided onLoad.after function.\n newData = data.map((datum, idx) => {\n return Object.assign({}, datum, after(datum, idx, data));\n });\n return {\n animate: newAnimate,\n data: newData\n };\n}\n\n// eslint-disable-next-line max-params\nfunction getChildPropsOnExit(animate, child, data, exitingNodes, cb) {\n // Whether or not _this_ child has exiting nodes, we want the exit-\n // transition for all children to have the same duration, delay, etc.\n const onExit = animate && animate.onExit;\n const newAnimate = Object.assign({}, animate, onExit);\n let newData = data;\n if (exitingNodes) {\n // After the exit transition occurs, trigger the animations for\n // nodes that are neither exiting nor entering.\n animate.onEnd = cb;\n const before = animate.onExit && animate.onExit.before ? animate.onExit.before : identity;\n // If nodes need to exit, transform them with the provided onExit.before function.\n newData = data.map((datum, idx) => {\n const key = (datum.key || idx).toString();\n return exitingNodes[key] ? Object.assign({}, datum, before(datum, idx, data)) : datum;\n });\n }\n return {\n animate: newAnimate,\n data: newData\n };\n}\n\n// eslint-disable-next-line max-params\nfunction getChildPropsBeforeEnter(animate, child, data, enteringNodes, cb) {\n let newAnimate = animate;\n let newData = data;\n if (enteringNodes) {\n // Perform a normal animation here, except - when it finishes - trigger\n // the transition for entering nodes.\n newAnimate = Object.assign({}, animate, {\n onEnd: cb\n });\n const before = animate.onEnter && animate.onEnter.before ? animate.onEnter.before : identity;\n // We want the entering nodes to be included in the transition target\n // domain. However, we may not want these nodes to be displayed initially,\n // so perform the `onEnter.before` transformation on each node.\n newData = data.map((datum, idx) => {\n const key = (datum.key || idx).toString();\n return enteringNodes[key] ? Object.assign({}, datum, before(datum, idx, data)) : datum;\n });\n }\n return {\n animate: newAnimate,\n data: newData\n };\n}\n\n// eslint-disable-next-line max-params\nfunction getChildPropsOnEnter(animate, data, enteringNodes, cb) {\n // Whether or not _this_ child has entering nodes, we want the entering-\n // transition for all children to have the same duration, delay, etc.\n const onEnter = animate && animate.onEnter;\n const newAnimate = Object.assign({}, animate, onEnter);\n let newData = data;\n if (enteringNodes) {\n // Old nodes have been transitioned to their new values, and the\n // domain should encompass the nodes that will now enter. So perform\n // the `onEnter.after` transformation on each node.\n newAnimate.onEnd = cb;\n const after = newAnimate.onEnter && newAnimate.onEnter.after ? newAnimate.onEnter.after : identity;\n newData = data.map((datum, idx) => {\n const key = getDatumKey(datum, idx);\n return enteringNodes[key] ? Object.assign({}, datum, after(datum, idx, data)) : datum;\n });\n }\n return {\n animate: newAnimate,\n data: newData\n };\n}\n\n/**\n * getTransitionPropsFactory - putting the Java in JavaScript. This will return a\n * function that returns prop transformations for a child, given that child's props\n * and its index in the parent's children array.\n *\n * In particular, this will include an `animate` object that is set appropriately\n * so that each child will be synchronized for each stage of a transition\n * animation. It will also include a transformed `data` object, where each datum\n * is transformed by `animate.onExit` and `animate.onEnter` `before` and `after`\n * functions.\n *\n * @param {Object} props `this.props` for the parent component.\n * @param {Object} state `this.state` for the parent component.\n * @param {Function} setState Function that, when called, will `this.setState` on\n * the parent component with the provided object.\n *\n * @return {Function} Child-prop transformation function.\n */\nexport function getTransitionPropsFactory(props, state, setState) {\n const nodesWillExit = state && state.nodesWillExit;\n const nodesWillEnter = state && state.nodesWillEnter;\n const nodesShouldEnter = state && state.nodesShouldEnter;\n const nodesShouldLoad = state && state.nodesShouldLoad;\n const nodesDoneLoad = state && state.nodesDoneLoad;\n const childrenTransitions = state && state.childrenTransitions || [];\n const transitionDurations = {\n enter: props.animate && props.animate.onEnter && props.animate.onEnter.duration,\n exit: props.animate && props.animate.onExit && props.animate.onExit.duration,\n load: props.animate && props.animate.onLoad && props.animate.onLoad.duration,\n move: props.animate && props.animate.duration\n };\n const onLoad = (child, data, animate) => {\n if (nodesShouldLoad) {\n return getChildOnLoad(animate, data, () => {\n setState({\n nodesShouldLoad: false,\n nodesDoneLoad: true\n });\n });\n }\n return getChildBeforeLoad(animate, child, data, () => {\n setState({\n nodesDoneLoad: true\n });\n });\n };\n\n // eslint-disable-next-line max-params\n const onExit = (nodes, child, data, animate) => {\n return getChildPropsOnExit(animate, child, data, nodes, () => {\n setState({\n nodesWillExit: false\n });\n });\n };\n\n // eslint-disable-next-line max-params\n const onEnter = (nodes, child, data, animate) => {\n if (nodesShouldEnter) {\n return getChildPropsOnEnter(animate, data, nodes, () => {\n setState({\n nodesWillEnter: false\n });\n });\n }\n return getChildPropsBeforeEnter(animate, child, data, nodes, () => {\n setState({\n nodesShouldEnter: true\n });\n });\n };\n const getChildTransitionDuration = function (child, type) {\n const animate = child.props.animate;\n if (!child.type) {\n return {};\n }\n const defaultTransitions = child.props && child.props.polar ? child.type.defaultPolarTransitions || child.type.defaultTransitions : child.type.defaultTransitions;\n if (defaultTransitions) {\n const animationDuration = animate[type] && animate[type].duration;\n return animationDuration !== undefined ? animationDuration : defaultTransitions[type] && defaultTransitions[type].duration;\n }\n return {};\n };\n return function getTransitionProps(child, index) {\n const data = getChildData(child) || [];\n const animate = defaults({}, props.animate, child.props.animate);\n const defaultTransitions = child.props.polar ? child.type.defaultPolarTransitions || child.type.defaultTransitions : child.type.defaultTransitions;\n animate.onExit = defaults({}, animate.onExit, defaultTransitions && defaultTransitions.onExit);\n animate.onEnter = defaults({}, animate.onEnter, defaultTransitions && defaultTransitions.onEnter);\n animate.onLoad = defaults({}, animate.onLoad, defaultTransitions && defaultTransitions.onLoad);\n const childTransitions = childrenTransitions[index] || childrenTransitions[0];\n if (!nodesDoneLoad) {\n // should do onLoad animation\n const load = transitionDurations.load !== undefined ? transitionDurations.load : getChildTransitionDuration(child, \"onLoad\");\n const animation = {\n duration: load\n };\n return onLoad(child, data, Object.assign({}, animate, animation));\n } else if (nodesWillExit) {\n const exitingNodes = childTransitions && childTransitions.exiting;\n const exit = transitionDurations.exit !== undefined ? transitionDurations.exit : getChildTransitionDuration(child, \"onExit\");\n // if nodesWillExit, but this child has no exiting nodes, set a delay instead of a duration\n const animation = exitingNodes ? {\n duration: exit\n } : {\n delay: exit\n };\n return onExit(exitingNodes, child, data, Object.assign({}, animate, animation));\n } else if (nodesWillEnter) {\n const enteringNodes = childTransitions && childTransitions.entering;\n const enter = transitionDurations.enter !== undefined ? transitionDurations.enter : getChildTransitionDuration(child, \"onEnter\");\n const move = transitionDurations.move !== undefined ? transitionDurations.move : child.props.animate && child.props.animate.duration;\n const animation = {\n duration: nodesShouldEnter && enteringNodes ? enter : move\n };\n return onEnter(enteringNodes, child, data, Object.assign({}, animate, animation));\n } else if (!state && animate && animate.onExit) {\n // This is the initial render, and nodes may enter when props change. Because\n // animation interpolation is determined by old- and next- props, data may need\n // to be augmented with certain properties.\n //\n // For example, it may be desired that exiting nodes go from `opacity: 1` to\n // `opacity: 0`. Without setting this on a per-datum basis, the interpolation\n // might go from `opacity: undefined` to `opacity: 0`, which would result in\n // interpolated `opacity: NaN` values.\n //\n return getInitialChildProps(animate, data);\n }\n return {\n animate,\n data\n };\n };\n}","import * as React from \"react\";\nimport { evaluateProp } from \"./helpers\";\n\n/*\n USER_PROPS_SAFELIST is to contain any string deemed safe for user props.\n The startsWidth array will contain the start of any accepted user-prop that\n starts with these characters.\n The exactMatch will contain a list of exact prop names that are accepted.\n*/\nconst USER_PROPS_SAFELIST = {\n startsWith: [\"data-\", \"aria-\"],\n exactMatch: []\n};\n\n// Normally we'd use Template Literal Types, but we're avoiding it to maximize TS compatibility with TS < 4.1\n\n// `data-${string}` | `aria-${string}`;\n\n/**\n * doesPropStartWith: Function that takes a prop's key and runs it against all\n * options in the USER_PROPS_SAFELIST and checks to see if it starts with any\n * of those options.\n * @param {string} key: prop key to be tested against whitelist\n * @returns {Boolean}: returns true if the key starts with an option or false if\n * otherwise\n */\nconst doesPropStartWith = key => {\n let startsWith = false;\n USER_PROPS_SAFELIST.startsWith.forEach(starterString => {\n const regex = new RegExp(`\\\\b(${starterString})(\\\\w|-)+`, \"g\");\n if (regex.test(key)) startsWith = true;\n });\n return startsWith;\n};\n\n/**\n * isExactMatch: checks to see if the given key matches any of the 'exactMatch'\n * items in the whitelist\n * @param {String} key: prop key to be tested against the whitelist-exact match\n * array.\n * @returns {Boolean}: return true if whitelist contains that key, otherwise\n * returns false.\n */\nconst isExactMatch = key => USER_PROPS_SAFELIST.exactMatch.includes(key);\n\n/**\n * testIfSafeProp: tests prop's key against both startsWith and exactMatch values\n * @param {String} key: prop key to be tested against the whitelist\n * @returns {Boolean}: returns true if found in whitelist, otherwise returns false\n */\nconst testIfSafeProp = key => {\n if (doesPropStartWith(key) || isExactMatch(key)) return true;\n return false;\n};\n\n/**\n * Asserts that value is not null or undefined, throwing an error if it is.\n * @param value The value to assert\n * @param message The error message to throw\n */\nexport function assert(value, message) {\n if (value === undefined || value === null) {\n throw new Error(message);\n }\n}\n\n/**\n * getSafeUserProps - function that takes in a props object and removes any\n * key-value entries that do not match filter strings in the USER_PROPS_SAFELIST\n * object.\n *\n * @param {Object} props: props to be filtered against USER_PROPS_SAFELIST\n * @returns {Object}: object containing remaining acceptable props\n */\nexport const getSafeUserProps = props => {\n const propsToFilter = {\n ...props\n };\n return Object.fromEntries(Object.entries(propsToFilter).filter(_ref => {\n let [key] = _ref;\n return testIfSafeProp(key);\n }).map(_ref2 => {\n let [key, value] = _ref2;\n return [key, evaluateProp(value, props)];\n }));\n};\n\n/**\n * Wraps a component and adds safe user props\n *\n * @param {ReactElement} component: parent component\n * @param {Object} props: props to be filtered\n * @returns {ReactElement} modified component\n */\nexport const withSafeUserProps = (component, props) => {\n return /*#__PURE__*/React.cloneElement(component, getSafeUserProps(props));\n};","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport uniq from \"lodash/uniq\";\nimport groupBy from \"lodash/groupBy\";\nimport uniqBy from \"lodash/uniqBy\";\nimport * as Axis from \"./axis\";\nimport * as Style from \"./style\";\nimport * as Data from \"./data\";\nimport * as Domain from \"./domain\";\nimport * as Events from \"./events\";\nimport * as Collection from \"./collection\";\nimport * as Helpers from \"./helpers\";\nimport * as Scale from \"./scale\";\nimport * as Log from \"./log\";\nexport function addBinsToParentPropsIfHistogram(_ref) {\n let {\n children,\n props,\n childComponents,\n parentProps\n } = _ref;\n const someChildrenAreHistograms = children.some(child => {\n return child.type && child.type.role === \"histogram\";\n });\n const allChildrenAreHistograms = someChildrenAreHistograms && children.length && children.every(child => {\n return child.type && child.type.role === \"histogram\";\n });\n if (someChildrenAreHistograms && !allChildrenAreHistograms) {\n Log.warn(\"VictoryHistogram only supports being stacked with other VictoryHistogram components. Check to make sure that you are only passing VictoryHistogram components to VictoryStack\");\n }\n\n // if we are stacking histograms, we need to generate explicit bins\n // or else each histogram may end up having different bins\n if (!allChildrenAreHistograms) {\n return parentProps;\n }\n let childBins = props.bins || childComponents[0].props.bins;\n\n // if we have explicit bins then we don't need to calculate them\n if (!Array.isArray(childBins)) {\n const combinedData = children.reduce((memo, child) => {\n const xAccessor = Helpers.createAccessor(child.props.x || \"x\");\n return memo.concat(child.props.data.map(datum => ({\n x: xAccessor(datum)\n })));\n }, []);\n\n // use the same function to generate bins as VictoryHistogram but with\n // the combined data from above, then get explicit bins from that\n const getFormattedHistogramData = children[0].type.getFormattedData;\n childBins = getFormattedHistogramData({\n data: combinedData,\n bins: childBins\n }).reduce((memo, _ref2, index) => {\n let {\n x0,\n x1\n } = _ref2;\n return index === 0 ? memo.concat([x0, x1]) : memo.concat(x1);\n }, []);\n }\n return {\n ...parentProps,\n bins: childBins\n };\n}\nexport function getDataFromChildren(props, childComponents) {\n const {\n polar,\n startAngle,\n endAngle,\n categories,\n minDomain,\n maxDomain\n } = props;\n let parentProps = {\n polar,\n startAngle,\n endAngle,\n categories,\n minDomain,\n maxDomain\n };\n let stack = 0;\n const children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n parentProps = addBinsToParentPropsIfHistogram({\n children,\n props,\n childComponents,\n parentProps\n });\n const iteratee = (child, childName, parent) => {\n const childProps = Object.assign({}, child.props, parentProps);\n let childData;\n let childElement = child;\n if (!Data.isDataComponent(child)) {\n return null;\n } else if (child.type && Helpers.isFunction(child.type.getData)) {\n childElement = parent ? /*#__PURE__*/React.cloneElement(child, parent.props) : child;\n childData = childElement.type.getData(childProps);\n } else {\n childData = Data.getData(childProps);\n }\n stack += 1;\n return childData.map((datum, index) => Object.assign({\n _stack: stack,\n _group: index\n }, datum));\n };\n const stacked = children.filter(c => c.type && c.type.role === \"stack\").length;\n const combine = (memo, val) => memo.concat(uniqBy(val, \"_group\"));\n const datasets = Helpers.reduceChildren(children, iteratee, props, [], combine);\n const group = stacked ? \"_group\" : \"_stack\";\n return Object.values(groupBy(datasets, group));\n}\nexport function getData(props, childComponents) {\n if (props.data) {\n return Data.getData(props);\n }\n return getDataFromChildren(props, childComponents || React.Children.toArray(props.children));\n}\nexport function getWidth(props, groupLength, seriesLength) {\n const {\n datasets,\n horizontal\n } = props;\n const range = horizontal ? Helpers.getRange(props, \"y\") : Helpers.getRange(props, \"x\");\n const extent = Math.abs(range[1] - range[0]);\n const seriesLengthValue = seriesLength !== undefined ? seriesLength : Array.isArray(datasets[0]) && datasets[0].length || 1;\n const groupLengthValue = groupLength || datasets.length;\n const bars = groupLengthValue * seriesLengthValue;\n const barRatio = 0.5;\n return Math.round(barRatio * extent / bars);\n}\nexport function getDefaultDomainPadding(props, axis, childComponents) {\n if (props.polar || axis !== \"x\") {\n return undefined;\n }\n const groupComponent = childComponents.filter(child => {\n return child.type && child.type.role && child.type.role === \"group\";\n });\n if (groupComponent.length < 1) {\n return undefined;\n }\n const {\n offset,\n children\n } = groupComponent[0].props;\n if (!offset) {\n return undefined;\n }\n const firstChild = Array.isArray(children) && children[0];\n if (!firstChild) {\n return undefined;\n }\n let barWidth = firstChild.props.barWidth;\n let dataLength = firstChild.props.data && firstChild.props.data.length || 1;\n if (firstChild && firstChild.type.role === \"stack\") {\n const nestedChild = firstChild.props.children && firstChild.props.children[0];\n if (!nestedChild) {\n return undefined;\n }\n barWidth = nestedChild.props.barWidth;\n dataLength = firstChild.props.children.length;\n }\n const width = barWidth || getWidth(props, children.length, dataLength);\n return {\n x: width * children.length / 2 + (offset - width * ((children.length - 1) / 2))\n };\n}\nexport function getDomainFromChildren(props, axis, childComponents) {\n const children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n const parentData = props.data ? Data.getData(props) : undefined;\n const {\n polar,\n startAngle,\n endAngle,\n categories,\n minDomain,\n maxDomain,\n horizontal\n } = props;\n const baseParentProps = {\n horizontal,\n polar,\n startAngle,\n endAngle,\n minDomain,\n maxDomain,\n categories\n };\n const parentProps = parentData ? Object.assign(baseParentProps, {\n data: parentData\n }) : baseParentProps;\n const iteratee = child => {\n const sharedProps = Object.assign({}, child.props, parentProps);\n if (!Domain.isDomainComponent(child)) {\n return null;\n } else if (child.type && Helpers.isFunction(child.type.getDomain)) {\n return child.props && child.type.getDomain(sharedProps, axis);\n }\n return Domain.getDomain(sharedProps, axis);\n };\n const childDomains = Helpers.reduceChildren(children, iteratee, props);\n const min = childDomains.length === 0 ? 0 : Collection.getMinValue(childDomains);\n const max = childDomains.length === 0 ? 1 : Collection.getMaxValue(childDomains);\n return [min, max];\n}\nexport function getDomain(props, axis, childComponents) {\n const children = childComponents || React.Children.toArray(props.children);\n const propsDomain = Domain.getDomainFromProps(props, axis);\n const domainPadding = getDefaultDomainPadding(props, axis, children);\n let domain;\n if (propsDomain) {\n domain = propsDomain;\n } else {\n const minDomain = Domain.getMinFromProps(props, axis);\n const maxDomain = Domain.getMaxFromProps(props, axis);\n const dataset = (props.data || props.y) && Data.getData(props);\n const dataDomain = dataset ? Domain.getDomainFromData(props, axis, dataset) : [];\n const childDomain = getDomainFromChildren(props, axis, children);\n const min = minDomain || Collection.getMinValue([...dataDomain, ...childDomain]);\n const max = maxDomain || Collection.getMaxValue([...dataDomain, ...childDomain]);\n domain = Domain.getDomainFromMinMax(min, max);\n }\n return Domain.formatDomain(domain, Object.assign({\n domainPadding\n }, props), axis);\n}\nexport function getScale(props, axis, childComponents) {\n if (props.data) {\n return Scale.getBaseScale(props, axis);\n }\n const children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n const iteratee = child => {\n const sharedProps = Object.assign({}, child.props, {\n horizontal: props.horizontal\n });\n return Scale.getScaleType(sharedProps, axis);\n };\n const childScale = uniq(Helpers.reduceChildren(children, iteratee, props));\n\n // default to linear scale if more than one uniq scale type is given by children\n return childScale.length > 1 ? Scale.getScaleFromName(\"linear\") : Scale.getScaleFromName(childScale[0]);\n}\nexport function getAllEvents(props) {\n const components = [\"groupComponent\", \"containerComponent\", \"labelComponent\"];\n const componentEvents = Events.getComponentEvents(props, components);\n let events = props.events;\n if (Array.isArray(componentEvents)) {\n events = Array.isArray(props.events) ? componentEvents.concat(...props.events) : componentEvents;\n }\n return events || [];\n}\n\n// eslint-disable-next-line max-params\nexport function getColor(calculatedProps, child, index, theme) {\n // check for styles first\n const {\n style\n } = calculatedProps;\n let {\n colorScale,\n color\n } = calculatedProps;\n if (style && style.data && style.data.fill) {\n return style.data.fill;\n }\n colorScale = child.props && child.props.colorScale ? child.props.colorScale : colorScale;\n color = child.props && child.props.color ? child.props.color : color;\n if (!colorScale && !color) {\n return undefined;\n }\n const colors = Array.isArray(colorScale) ? colorScale : Style.getColorScale(colorScale, theme);\n return color || colors[index % colors.length];\n}\nexport function getStyle(theme, style, role) {\n const defaultStyle = theme && theme[role] && theme[role].style ? theme[role].style : {};\n return Helpers.getStyles(style, defaultStyle);\n}\n\n// eslint-disable-next-line max-params\nexport function getChildStyle(child, index, calculatedProps, theme) {\n const {\n style,\n role\n } = calculatedProps;\n const childStyle = child.props.style || {};\n if (Array.isArray(childStyle)) {\n return childStyle;\n }\n const childRole = child.type && child.type.role;\n const defaultFill = childRole === \"stack\" ? undefined : getColor(calculatedProps, child, index, theme);\n const defaultColor = childRole === \"line\" ? {\n fill: \"none\",\n stroke: defaultFill\n } : {\n fill: defaultFill\n };\n const dataWidth = role === \"stack\" ? {} : {\n width: getWidth(calculatedProps)\n };\n const dataStyle = defaults({}, childStyle.data, Object.assign({}, dataWidth, style.data, defaultColor));\n const labelsStyle = defaults({}, childStyle.labels, style.labels);\n return {\n ...childStyle,\n parent: style.parent,\n data: dataStyle,\n labels: labelsStyle\n };\n}\nexport function getStringsFromChildrenCategories(childComponents, axis) {\n const iteratee = child => {\n if (!Domain.isDomainComponent(child)) {\n return null;\n }\n const childProps = child.props || {};\n return Data.getStringsFromCategories(childProps, axis);\n };\n return Helpers.reduceChildren(childComponents.slice(0), iteratee);\n}\nexport function getStringsFromData(childComponents) {\n const iteratee = child => {\n const childProps = child.props || {};\n let data;\n if (!Data.isDataComponent(child)) {\n return null;\n } else if (child.type && Helpers.isFunction(child.type.getData)) {\n data = child.type.getData(childProps);\n } else {\n data = Data.getData(childProps);\n }\n return data.map(d => ({\n x: d.xName,\n y: d.yName\n }));\n };\n const initialMemo = {\n x: [],\n y: []\n };\n const combine = (memo, datum) => {\n const x = Array.isArray(datum) ? datum.map(d => d.x).filter(Boolean) : datum.x;\n const y = Array.isArray(datum) ? datum.map(d => d.y).filter(Boolean) : datum.y;\n return {\n x: x !== undefined ? memo.x.concat(x) : memo.x,\n y: y !== undefined ? memo.y.concat(y) : memo.y\n };\n };\n return Helpers.reduceChildren(childComponents.slice(0), iteratee, {}, initialMemo, combine);\n}\nexport function getCategoryAndAxisStringsFromChildren(props, axis, childComponents) {\n const categories = Data.getStringsFromCategories(props, axis);\n const axisComponent = Axis.getAxisComponent(childComponents, axis);\n const axisStrings = axisComponent ? Data.getStringsFromAxes(axisComponent.props, axis) : [];\n const categoryStrings = categories.length ? categories : getStringsFromChildrenCategories(childComponents, axis);\n return uniq([...categoryStrings, ...axisStrings].flat());\n}\nexport function getStringsFromChildren(props, childComponents) {\n const children = childComponents || React.Children.toArray(props.children);\n const xStrings = getCategoryAndAxisStringsFromChildren(props, \"x\", children);\n const yStrings = getCategoryAndAxisStringsFromChildren(props, \"y\", children);\n const dataStrings = getStringsFromData(children);\n return {\n x: uniq([...xStrings, ...dataStrings.x].flat()),\n y: uniq([...yStrings, ...dataStrings.y].flat())\n };\n}\nexport function getCategories(props, childComponents, allStrings) {\n const xPropCategories = props.categories && Data.getStringsFromCategories(props, \"x\");\n const yPropCategories = props.categories && Data.getStringsFromCategories(props, \"y\");\n const fallbackRequired = !xPropCategories || !yPropCategories;\n const fallbackProps = fallbackRequired ? allStrings || getStringsFromChildren(props, childComponents) : {};\n const xCategories = xPropCategories || fallbackProps.x;\n const yCategories = yPropCategories || fallbackProps.y;\n return {\n x: xCategories.length > 0 ? xCategories : undefined,\n y: yCategories.length > 0 ? yCategories : undefined\n };\n}","import defaults from \"lodash/defaults\";\nimport groupBy from \"lodash/groupBy\";\nimport range from \"lodash/range\";\nimport { Helpers, Style, TextSize } from \"victory-core\";\nconst getColorScale = props => {\n const {\n colorScale,\n theme\n } = props;\n return typeof colorScale === \"string\" ? Style.getColorScale(colorScale, theme) : colorScale || [];\n};\nconst getLabelStyles = props => {\n const {\n data,\n style\n } = props;\n return data.map((datum, index) => {\n const baseLabelStyles = defaults({}, datum.labels, style.labels);\n return Helpers.evaluateStyle(baseLabelStyles, {\n datum,\n index,\n data\n });\n });\n};\nconst getStyles = function (props, styleObject) {\n if (styleObject === void 0) {\n styleObject = {};\n }\n const style = props.style || {};\n const parentStyleProps = {\n height: \"100%\",\n width: \"100%\"\n };\n return {\n parent: defaults(style.parent, styleObject.parent, parentStyleProps),\n data: defaults({}, style.data, styleObject.data),\n labels: defaults({}, style.labels, styleObject.labels),\n border: defaults({}, style.border, styleObject.border),\n title: defaults({}, style.title, styleObject.title)\n };\n};\nconst getCalculatedValues = props => {\n const {\n orientation,\n theme\n } = props;\n const defaultStyles = theme && theme.legend && theme.legend.style ? theme.legend.style : {};\n const style = getStyles(props, defaultStyles);\n const colorScale = getColorScale(props);\n const isHorizontal = orientation === \"horizontal\";\n const borderPadding = Helpers.getPadding(props.borderPadding);\n return Object.assign({}, props, {\n style,\n isHorizontal,\n colorScale,\n borderPadding\n });\n};\nconst getColumn = (props, index) => {\n const {\n itemsPerRow,\n isHorizontal\n } = props;\n if (!itemsPerRow) {\n return isHorizontal ? index : 0;\n }\n return isHorizontal ? index % itemsPerRow : Math.floor(index / itemsPerRow);\n};\nconst getRow = (props, index) => {\n const {\n itemsPerRow,\n isHorizontal\n } = props;\n if (!itemsPerRow) {\n return isHorizontal ? 0 : index;\n }\n return isHorizontal ? Math.floor(index / itemsPerRow) : index % itemsPerRow;\n};\nconst groupData = props => {\n const {\n data\n } = props;\n const style = props.style && props.style.data || {};\n const labelStyles = getLabelStyles(props);\n return data.map((datum, index) => {\n const symbol = datum.symbol || {};\n const {\n fontSize\n } = labelStyles[index];\n // eslint-disable-next-line no-magic-numbers\n const size = symbol.size || style.size || fontSize / 2.5;\n const symbolSpacer = props.symbolSpacer || Math.max(size, fontSize);\n return {\n ...datum,\n size,\n symbolSpacer,\n fontSize,\n textSize: TextSize.approximateTextSize(datum.name, labelStyles[index]),\n column: getColumn(props, index),\n row: getRow(props, index)\n };\n });\n};\nconst getColumnWidths = (props, data) => {\n const gutter = props.gutter || {};\n const gutterWidth = typeof gutter === \"object\" ? (gutter.left || 0) + (gutter.right || 0) : gutter || 0;\n const dataByColumn = groupBy(data, \"column\");\n const columns = Object.keys(dataByColumn);\n return columns.reduce((memo, curr, index) => {\n const lengths = dataByColumn[curr].map(d => {\n return d.textSize.width + d.size + d.symbolSpacer + gutterWidth;\n });\n memo[index] = Math.max(...lengths);\n return memo;\n }, []);\n};\nconst getRowHeights = (props, data) => {\n const gutter = props.rowGutter || {};\n const gutterHeight = typeof gutter === \"object\" ? (gutter.top || 0) + (gutter.bottom || 0) : gutter || 0;\n const dataByRow = groupBy(data, \"row\");\n return Object.keys(dataByRow).reduce((memo, curr, index) => {\n const rows = dataByRow[curr];\n const lengths = rows.map(d => {\n return d.textSize.height + d.symbolSpacer + gutterHeight;\n });\n memo[index] = Math.max(...lengths);\n return memo;\n }, []);\n};\nconst getTitleDimensions = props => {\n const style = props.style && props.style.title || {};\n const textSize = TextSize.approximateTextSize(props.title, style);\n const padding = style.padding || 0;\n return {\n height: textSize.height + 2 * padding || 0,\n width: textSize.width + 2 * padding || 0\n };\n};\nconst getOffset = (datum, rowHeights, columnWidths) => {\n const {\n column,\n row\n } = datum;\n return {\n x: range(column).reduce((memo, curr) => memo + columnWidths[curr], 0),\n y: range(row).reduce((memo, curr) => memo + rowHeights[curr], 0)\n };\n};\nconst getAnchors = (titleOrientation, centerTitle) => {\n const standardAnchors = {\n textAnchor: titleOrientation === \"right\" ? \"end\" : \"start\",\n verticalAnchor: titleOrientation === \"bottom\" ? \"end\" : \"start\"\n };\n if (centerTitle) {\n const horizontal = titleOrientation === \"top\" || titleOrientation === \"bottom\";\n return {\n textAnchor: horizontal ? \"middle\" : standardAnchors.textAnchor,\n verticalAnchor: horizontal ? standardAnchors.verticalAnchor : \"middle\"\n };\n }\n return standardAnchors;\n};\nconst getTitleStyle = props => {\n const {\n titleOrientation,\n centerTitle,\n titleComponent\n } = props;\n const baseStyle = props.style && props.style.title || {};\n const componentStyle = titleComponent.props && titleComponent.props.style || {};\n const anchors = getAnchors(titleOrientation, centerTitle);\n return Array.isArray(componentStyle) ? componentStyle.map(obj => defaults({}, obj, baseStyle, anchors)) : defaults({}, componentStyle, baseStyle, anchors);\n};\nconst getTitleProps = (props, borderProps) => {\n const {\n title,\n titleOrientation,\n centerTitle,\n borderPadding\n } = props;\n const {\n height,\n width\n } = borderProps;\n const style = getTitleStyle(props);\n const padding = Array.isArray(style) ? style[0].padding : style.padding;\n const horizontal = titleOrientation === \"top\" || titleOrientation === \"bottom\";\n const xOrientation = titleOrientation === \"bottom\" ? \"bottom\" : \"top\";\n const yOrientation = titleOrientation === \"right\" ? \"right\" : \"left\";\n const standardPadding = {\n x: centerTitle ? width / 2 : borderPadding[xOrientation] + (padding || 0),\n y: centerTitle ? height / 2 : borderPadding[yOrientation] + (padding || 0)\n };\n const getPadding = () => {\n return borderPadding[titleOrientation] + (padding || 0);\n };\n const xOffset = horizontal ? standardPadding.x : getPadding();\n const yOffset = horizontal ? getPadding() : standardPadding.y;\n return {\n x: titleOrientation === \"right\" ? props.x + width - xOffset : props.x + xOffset,\n y: titleOrientation === \"bottom\" ? props.y + height - yOffset : props.y + yOffset,\n style,\n text: title\n };\n};\nconst getBorderProps = (props, contentHeight, contentWidth) => {\n const {\n x,\n y,\n borderPadding,\n style\n } = props;\n const height = (contentHeight || 0) + borderPadding.top + borderPadding.bottom;\n const width = (contentWidth || 0) + borderPadding.left + borderPadding.right;\n return {\n x,\n y,\n height,\n width,\n style: Object.assign({\n fill: \"none\"\n }, style.border)\n };\n};\nexport const getDimensions = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"legend\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n title,\n titleOrientation\n } = props;\n const groupedData = groupData(props);\n const columnWidths = getColumnWidths(props, groupedData);\n const rowHeights = getRowHeights(props, groupedData);\n const titleDimensions = title ? getTitleDimensions(props) : {\n height: 0,\n width: 0\n };\n return {\n height: titleOrientation === \"left\" || titleOrientation === \"right\" ? Math.max(sum(rowHeights), titleDimensions.height) : sum(rowHeights) + titleDimensions.height,\n width: titleOrientation === \"left\" || titleOrientation === \"right\" ? sum(columnWidths) + titleDimensions.width : Math.max(sum(columnWidths), titleDimensions.width)\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"legend\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n data,\n standalone,\n theme,\n padding,\n style,\n colorScale,\n gutter,\n rowGutter,\n borderPadding,\n title,\n titleOrientation,\n name,\n x = 0,\n y = 0\n } = props;\n const groupedData = groupData(props);\n const columnWidths = getColumnWidths(props, groupedData);\n const rowHeights = getRowHeights(props, groupedData);\n const labelStyles = getLabelStyles(props);\n const titleDimensions = title ? getTitleDimensions(props) : {\n height: 0,\n width: 0\n };\n const titleOffset = {\n x: titleOrientation === \"left\" ? titleDimensions.width : 0,\n y: titleOrientation === \"top\" ? titleDimensions.height : 0\n };\n const gutterOffset = {\n x: gutter && typeof gutter === \"object\" ? gutter.left || 0 : 0,\n y: rowGutter && typeof rowGutter === \"object\" ? rowGutter.top || 0 : 0\n };\n const {\n height,\n width\n } = getDimensions(props, fallbackProps);\n const borderProps = getBorderProps(props, height, width);\n const titleProps = getTitleProps(props, borderProps);\n const initialChildProps = {\n parent: {\n data,\n standalone,\n theme,\n padding,\n name,\n height: props.height,\n width: props.width,\n style: style.parent\n },\n all: {\n border: borderProps,\n title: titleProps\n }\n };\n return groupedData.reduce((childProps, datum, i) => {\n const color = colorScale[i % colorScale.length];\n const dataStyle = defaults({}, datum.symbol, style.data, {\n fill: color\n });\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : i;\n const offset = getOffset(datum, rowHeights, columnWidths);\n const originY = y + borderPadding.top + datum.symbolSpacer;\n const originX = x + borderPadding.left + datum.symbolSpacer;\n const dataProps = {\n index: i,\n data,\n datum,\n symbol: dataStyle.type || dataStyle.symbol || \"circle\",\n size: datum.size,\n style: dataStyle,\n y: originY + offset.y + titleOffset.y + gutterOffset.y,\n x: originX + offset.x + titleOffset.x + gutterOffset.x\n };\n const labelProps = {\n datum,\n data,\n text: datum.name,\n style: labelStyles[i],\n y: dataProps.y,\n x: dataProps.x + datum.symbolSpacer + datum.size / 2\n };\n childProps[eventKey] = {\n data: dataProps,\n labels: labelProps\n };\n return childProps;\n }, initialChildProps);\n};\n\n/**\n * Computes the sum of the values in `array`.\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n */\nfunction sum(array) {\n if (array && array.length) {\n let value = 0;\n for (let i = 0; i < array.length; i++) {\n value += array[i];\n }\n return value;\n }\n return 0;\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { Rect } from \"./rect\";\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const desc = Helpers.evaluateProp(props.desc, props);\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(Object.assign({\n fill: \"none\"\n }, props.style), props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n desc,\n id,\n style,\n tabIndex\n });\n};\nconst defaultProps = {\n rectComponent: /*#__PURE__*/React.createElement(Rect, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Border = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n return /*#__PURE__*/React.cloneElement(props.rectComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n transform: props.transform,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n x: props.x,\n y: props.y,\n width: props.width,\n height: props.height,\n clipPath: props.clipPath\n });\n};","import React from \"react\";\nimport { getBaseProps, getDimensions } from \"./helper-methods\";\nimport { addEvents, Helpers, VictoryLabel, VictoryContainer, VictoryTheme, Point, Border } from \"victory-core\";\nconst fallbackProps = {\n orientation: \"vertical\",\n titleOrientation: \"top\",\n width: 450,\n height: 300,\n x: 0,\n y: 0\n};\nconst defaultLegendData = [{\n name: \"Series 1\"\n}, {\n name: \"Series 2\"\n}];\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nclass VictoryLegendBase extends React.Component {\n static displayName = \"VictoryLegend\";\n static role = \"legend\";\n static defaultProps = {\n borderComponent: /*#__PURE__*/React.createElement(Border, null),\n data: defaultLegendData,\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Point, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n standalone: true,\n theme: VictoryTheme.grayscale,\n titleComponent: /*#__PURE__*/React.createElement(VictoryLabel, null)\n };\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static getDimensions(props) {\n return getDimensions(props, fallbackProps);\n }\n static expectedComponents = [\"borderComponent\", \"containerComponent\", \"dataComponent\", \"groupComponent\", \"labelComponent\", \"titleComponent\"];\n renderChildren(props) {\n const {\n dataComponent,\n labelComponent,\n title\n } = props;\n const children = [];\n if (props.borderComponent) {\n const borderProps = this.getComponentProps(props.borderComponent, \"border\", \"all\");\n const borderComponent = /*#__PURE__*/React.cloneElement(props.borderComponent, borderProps);\n children.push(borderComponent);\n }\n if (dataComponent) {\n const dataComponents = this.dataKeys.map((_dataKey, index) => {\n if (_dataKey === \"all\") {\n return undefined;\n }\n const dataProps = this.getComponentProps(dataComponent, \"data\", index);\n return /*#__PURE__*/React.cloneElement(dataComponent, dataProps);\n }).filter(comp => comp !== undefined);\n children.push(...dataComponents);\n }\n if (title && props.titleComponent) {\n const titleProps = this.getComponentProps(title, \"title\", \"all\");\n const titleComponent = /*#__PURE__*/React.cloneElement(props.titleComponent, titleProps);\n children.push(titleComponent);\n }\n if (labelComponent) {\n const labelComponents = this.dataKeys.map((_dataKey, index) => {\n if (_dataKey === \"all\") {\n return undefined;\n }\n const labelProps = this.getComponentProps(labelComponent, \"labels\", index);\n if (labelProps.text !== undefined && labelProps.text !== null) {\n return /*#__PURE__*/React.cloneElement(labelComponent, labelProps);\n }\n return undefined;\n }).filter(comp => comp !== undefined);\n children.push(...labelComponents);\n }\n return children;\n }\n render() {\n // @ts-expect-error Property 'role' does not exist on type 'Function'.\n // Ref: https://github.com/microsoft/TypeScript/issues/32452\n const {\n role\n } = this.constructor;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n const children = this.renderChildren(props);\n return props.standalone ? this.renderContainer(props.containerComponent, children) : /*#__PURE__*/React.cloneElement(props.groupComponent, {}, children);\n }\n}\nexport const VictoryLegend = addEvents(VictoryLegendBase);","import { Helpers, LabelHelpers, Data, Domain, Scale } from \"victory-core\";\nconst getCalculatedValues = props => {\n let data = Data.getData(props);\n if (data.length < 2) {\n data = [];\n }\n const range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const domain = {\n x: Domain.getDomain(props, \"x\"),\n y: Domain.getDomain(props, \"y\")\n };\n const scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n const origin = props.polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n const defaultStyles = Helpers.getDefaultStyles(props, \"line\");\n const style = Helpers.getStyles(props.style, defaultStyles);\n return {\n domain,\n data,\n scale,\n style,\n origin\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"line\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n data,\n domain,\n events,\n groupComponent,\n height,\n horizontal,\n interpolation,\n origin,\n padding,\n polar,\n scale,\n sharedEvents,\n standalone,\n style,\n theme,\n width,\n labels,\n name,\n disableInlineStyles\n } = props;\n const initialChildProps = {\n parent: {\n style: style.parent,\n scale,\n data,\n height,\n width,\n name,\n domain,\n standalone,\n polar,\n origin,\n padding,\n horizontal\n },\n all: {\n data: {\n horizontal,\n polar,\n origin,\n scale,\n data,\n interpolation,\n groupComponent,\n style: disableInlineStyles ? {} : style.data,\n theme,\n disableInlineStyles\n }\n }\n };\n return data.reduce((childProps, datum, index) => {\n const text = LabelHelpers.getText(props, datum, index);\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;\n childProps[eventKey] = {\n labels: LabelHelpers.getProps(props, index)\n };\n }\n return childProps;\n }, initialChildProps);\n};","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport { Helpers, Path, LineHelpers, UserProps } from \"victory-core\";\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `id`\n * `style`\n * `tabIndex`\n */\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(Object.assign({\n fill: \"none\",\n stroke: \"black\",\n pointerEvents: \"stroke\"\n }, props.style), props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n id,\n style,\n tabIndex\n });\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Curve = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const userProps = UserProps.getSafeUserProps(props);\n const {\n polar,\n origin\n } = props;\n const lineFunction = LineHelpers.getLineFunction(props);\n const defaultTransform = polar && origin ? `translate(${origin.x}, ${origin.y})` : undefined;\n const d = lineFunction(props.data);\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n ...userProps,\n \"aria-label\": props.ariaLabel,\n d,\n style: props.style,\n transform: props.transform || defaultTransform,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n clipPath: props.clipPath,\n tabIndex: props.tabIndex\n });\n};","import React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Curve } from \"./curve\";\nimport { Helpers, VictoryLabel, addEvents, VictoryContainer, VictoryTheme, DefaultTransitions, VictoryClipContainer, Data, Domain, UserProps } from \"victory-core\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n interpolation: \"linear\"\n};\nconst options = {\n components: [{\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"data\",\n index: \"all\"\n }, {\n name: \"labels\"\n }]\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nclass VictoryLineBase extends React.Component {\n constructor(props) {\n super(props);\n }\n static animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"samples\", \"style\", \"width\"];\n static displayName = \"VictoryLine\";\n static role = \"line\";\n static defaultTransitions = DefaultTransitions.continuousTransitions();\n static defaultPolarTransitions = DefaultTransitions.continuousPolarTransitions();\n static continuous = true;\n static defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Curve, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, {\n renderInPortal: true\n }),\n groupComponent: /*#__PURE__*/React.createElement(VictoryClipContainer, null),\n samples: 50,\n sortKey: \"x\",\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n };\n static getDomain = Domain.getDomain;\n static getData = Data.getData;\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\n\n // Overridden in native versions\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist,\n role\n } = VictoryLineBase;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const children = this.renderContinuousData(props);\n const component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n}\nexport const VictoryLine = addEvents(VictoryLineBase, options);","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2, 45, 90, 135, 180, 225, 270, 315, 360] }]*/\nimport defaults from \"lodash/defaults\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport * as d3Shape from \"victory-vendor/d3-shape\";\nimport { Helpers, Data, Style } from \"victory-core\";\nconst checkForValidText = text => {\n if (text === undefined || text === null || Helpers.isFunction(text)) {\n return text;\n }\n return `${text}`;\n};\nconst getColor = (style, colors, index) => {\n if (style && style.data && style.data.fill) {\n return style.data.fill;\n }\n return colors && colors[index % colors.length];\n};\nconst getRadius = (props, padding) => {\n if (typeof props.radius === \"number\") {\n return props.radius;\n }\n return Math.min(props.width - padding.left - padding.right, props.height - padding.top - padding.bottom) / 2;\n};\nconst getOrigin = (props, padding) => {\n const {\n width,\n height\n } = props;\n const origin = isPlainObject(props.origin) ? props.origin : {};\n return {\n x: origin.x !== undefined ? origin.x : (padding.left - padding.right + width) / 2,\n y: origin.y !== undefined ? origin.y : (padding.top - padding.bottom + height) / 2\n };\n};\nconst getSlices = (props, data) => {\n const padAngle = Helpers.isFunction(props.padAngle) ? 0 : props.padAngle;\n const layoutFunction = d3Shape.pie().sort(null).startAngle(Helpers.degreesToRadians(props.startAngle)).endAngle(Helpers.degreesToRadians(props.endAngle)).padAngle(Helpers.degreesToRadians(padAngle)).value(datum => {\n return datum._y;\n });\n return layoutFunction(data);\n};\nconst getCategoriesFromProps = props => Array.isArray(props.categories) ? props.categories : props?.categories?.x ?? [];\n\n/**\n * Sorts data by props.categories or props.categories.x. If all of the data keys aren't\n * included in categories, any remaining data will be appended to the data array.\n * If extraneous categories are included in the categories prop, the will be ignored and\n * have no effect on the rendered component.\n */\nconst getDataSortedByCategories = (props, data) => {\n const sorted = [];\n getCategoriesFromProps(props).forEach(category => {\n const idx = data.findIndex(_ref => {\n let {\n x\n } = _ref;\n return x === category;\n });\n if (idx >= 0) {\n const datum = data.splice(idx, 1)[0];\n sorted.push(datum);\n }\n });\n return [...sorted, ...data];\n};\nconst getCalculatedValues = props => {\n const {\n colorScale,\n theme\n } = props;\n const styleObject = Helpers.getDefaultStyles(props, \"pie\");\n const style = Helpers.getStyles(props.style, styleObject);\n const colors = Array.isArray(colorScale) ? colorScale : Style.getColorScale(colorScale, theme);\n const padding = Helpers.getPadding(props.padding);\n const defaultRadius = getRadius(props, padding);\n const origin = getOrigin(props, padding);\n const data = getDataSortedByCategories(props, Data.getData(props));\n const slices = getSlices(props, data);\n return Object.assign({}, props, {\n style,\n colors,\n padding,\n defaultRadius,\n data,\n slices,\n origin\n });\n};\nconst getSliceStyle = (index, calculatedValues) => {\n const {\n style,\n colors\n } = calculatedValues;\n const fill = getColor(style, colors, index);\n return Object.assign({\n fill\n }, style.data);\n};\nconst getLabelText = (props, datum, index) => {\n let text;\n if (datum.label) {\n text = datum.label;\n } else if (Array.isArray(props.labels)) {\n text = props.labels[index];\n } else {\n text = Helpers.isFunction(props.labels) ? props.labels : datum.xName || datum._x;\n }\n return checkForValidText(text);\n};\nconst getLabelArc = labelRadius => {\n return d3Shape.arc().outerRadius(labelRadius).innerRadius(labelRadius);\n};\nconst getCalculatedLabelRadius = (radius, labelRadius, style) => {\n const padding = style && style.padding || 0;\n return labelRadius || radius + padding;\n};\nconst getLabelPosition = (arc, slice, position) => {\n const construct = {\n startAngle: position === \"startAngle\" ? slice.startAngle : slice.endAngle,\n endAngle: position === \"endAngle\" ? slice.endAngle : slice.startAngle\n };\n const clonedArc = Object.assign({}, slice, construct);\n return arc.centroid(clonedArc);\n};\nconst getLabelOrientation = (degree, labelPlacement) => {\n if (labelPlacement === \"perpendicular\") {\n return degree > 90 && degree < 270 ? \"bottom\" : \"top\";\n } else if (labelPlacement === \"parallel\") {\n return degree >= 0 && degree <= 180 ? \"right\" : \"left\";\n }\n if (degree < 45 || degree > 315) {\n return \"top\";\n } else if (degree >= 45 && degree < 135) {\n return \"right\";\n } else if (degree >= 135 && degree < 225) {\n return \"bottom\";\n }\n return \"left\";\n};\nconst getTextAnchor = orientation => {\n if (orientation === \"top\" || orientation === \"bottom\") {\n return \"middle\";\n }\n return orientation === \"right\" ? \"start\" : \"end\";\n};\nconst getVerticalAnchor = orientation => {\n if (orientation === \"left\" || orientation === \"right\") {\n return \"middle\";\n }\n return orientation === \"bottom\" ? \"start\" : \"end\";\n};\nconst getBaseLabelAngle = (slice, labelPosition, labelStyle) => {\n let baseAngle = 0;\n if (labelPosition.angle !== undefined) {\n baseAngle = labelStyle.angle;\n } else if (labelPosition === \"centroid\") {\n baseAngle = Helpers.radiansToDegrees((slice.startAngle + slice.endAngle) / 2);\n } else {\n baseAngle = labelPosition === \"startAngle\" ? Helpers.radiansToDegrees(slice.startAngle) : Helpers.radiansToDegrees(slice.endAngle);\n }\n const positiveAngle = baseAngle < 0 ? 360 - baseAngle : baseAngle;\n return positiveAngle % 360;\n};\nconst getLabelAngle = (baseAngle, labelPlacement) => {\n if (labelPlacement === \"vertical\") {\n return 0;\n }\n if (labelPlacement === \"parallel\") {\n return baseAngle > 180 && baseAngle < 360 ? baseAngle + 90 : baseAngle - 90;\n }\n return baseAngle > 90 && baseAngle < 270 ? baseAngle - 180 : baseAngle;\n};\nconst getLabelProps = (text, dataProps, calculatedValues) => {\n const {\n index,\n datum,\n data,\n slice,\n labelComponent,\n theme\n } = dataProps;\n const {\n style,\n defaultRadius,\n origin,\n width,\n height\n } = calculatedValues;\n const labelRadius = Helpers.evaluateProp(calculatedValues.labelRadius, Object.assign({\n text\n }, dataProps));\n const labelPosition = Helpers.evaluateProp(calculatedValues.labelPosition, Object.assign({\n text\n }, dataProps)) || \"centroid\";\n const labelPlacement = Helpers.evaluateProp(calculatedValues.labelPlacement, Object.assign({\n text\n }, dataProps)) || \"vertical\";\n const labelStyle = Object.assign({\n padding: 0\n }, style.labels);\n const evaluatedStyle = Helpers.evaluateStyle(labelStyle, Object.assign({\n labelRadius,\n text\n }, dataProps));\n const calculatedLabelRadius = getCalculatedLabelRadius(defaultRadius, labelRadius, evaluatedStyle);\n const labelArc = getLabelArc(calculatedLabelRadius);\n const position = getLabelPosition(labelArc, slice, labelPosition);\n const baseAngle = getBaseLabelAngle(slice, labelPosition, labelStyle);\n const labelAngle = getLabelAngle(baseAngle, labelPlacement);\n const orientation = getLabelOrientation(baseAngle, labelPlacement);\n const textAnchor = labelStyle.textAnchor || getTextAnchor(orientation);\n const verticalAnchor = labelStyle.verticalAnchor || getVerticalAnchor(orientation);\n const labelProps = {\n width,\n height,\n index,\n datum,\n data,\n slice,\n orientation,\n text,\n style: labelStyle,\n x: Math.round(position[0]) + origin.x,\n y: Math.round(position[1]) + origin.y,\n textAnchor,\n verticalAnchor,\n angle: labelAngle,\n calculatedLabelRadius\n };\n if (!Helpers.isTooltip(labelComponent)) {\n return labelProps;\n }\n const tooltipTheme = theme && theme.tooltip || {};\n return defaults({}, labelProps, Helpers.omit(tooltipTheme, [\"style\"]));\n};\nexport const getXOffsetMultiplayerByAngle = angle => Math.cos(angle - Helpers.degreesToRadians(90));\nexport const getYOffsetMultiplayerByAngle = angle => Math.sin(angle - Helpers.degreesToRadians(90));\nexport const getXOffset = (offset, angle) => offset * getXOffsetMultiplayerByAngle(angle);\nexport const getYOffset = (offset, angle) => offset * getYOffsetMultiplayerByAngle(angle);\nexport const getAverage = array => array.reduce((acc, cur) => acc + cur, 0) / array.length;\nexport const getLabelIndicatorPropsForLineSegment = (props, calculatedValues, labelProps) => {\n const {\n innerRadius,\n radius,\n slice: {\n startAngle,\n endAngle\n },\n labelIndicatorInnerOffset,\n labelIndicatorOuterOffset,\n index\n } = props;\n const {\n height,\n width\n } = calculatedValues;\n const {\n calculatedLabelRadius\n } = labelProps;\n // calculation\n const middleRadius = getAverage([innerRadius, radius]);\n const midAngle = getAverage([endAngle, startAngle]);\n const centerX = width / 2;\n const centerY = height / 2;\n const innerOffset = middleRadius + labelIndicatorInnerOffset;\n const outerOffset = calculatedLabelRadius - labelIndicatorOuterOffset;\n const x1 = centerX + getXOffset(innerOffset, midAngle);\n const y1 = centerY + getYOffset(innerOffset, midAngle);\n const x2 = centerX + getXOffset(outerOffset, midAngle);\n const y2 = centerY + getYOffset(outerOffset, midAngle);\n const labelIndicatorProps = {\n x1,\n y1,\n x2,\n y2,\n index\n };\n return defaults({}, labelIndicatorProps);\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const props = Helpers.modifyProps(initialProps, fallbackProps, \"pie\");\n const calculatedValues = getCalculatedValues(props);\n const {\n slices,\n style,\n data,\n origin,\n defaultRadius,\n labels,\n events,\n sharedEvents,\n height,\n width,\n standalone,\n name,\n innerRadius,\n cornerRadius,\n padAngle,\n disableInlineStyles,\n labelIndicator\n } = calculatedValues;\n const radius = props.radius || defaultRadius;\n const initialChildProps = {\n parent: {\n standalone,\n height,\n width,\n slices,\n name,\n style: style.parent\n }\n };\n return slices.reduce((childProps, slice, index) => {\n const datum = defaults({}, data[index], {\n startAngle: Helpers.radiansToDegrees(slice.startAngle),\n endAngle: Helpers.radiansToDegrees(slice.endAngle),\n padAngle: Helpers.radiansToDegrees(slice.padAngle)\n });\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;\n const dataProps = {\n index,\n slice,\n datum,\n data,\n origin,\n innerRadius,\n radius,\n cornerRadius,\n padAngle,\n style: disableInlineStyles ? {} : getSliceStyle(index, calculatedValues),\n disableInlineStyles\n };\n childProps[eventKey] = {\n data: dataProps\n };\n const text = getLabelText(props, datum, index);\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n const evaluatedText = Helpers.evaluateProp(text, dataProps);\n childProps[eventKey].labels = getLabelProps(evaluatedText, Object.assign({}, props, dataProps), calculatedValues);\n if (labelIndicator) {\n const labelProps = childProps[eventKey].labels;\n if (labelProps.calculatedLabelRadius > radius) {\n childProps[eventKey].labelIndicators = getLabelIndicatorPropsForLineSegment(Object.assign({}, props, dataProps), calculatedValues, labelProps);\n }\n }\n }\n return childProps;\n }, initialChildProps);\n};","import React from \"react\";\nimport { Helpers, Path } from \"victory-core\";\nimport defaults from \"lodash/defaults\";\nimport * as d3Shape from \"victory-vendor/d3-shape\";\nconst getPath = props => {\n const {\n slice,\n radius,\n innerRadius,\n cornerRadius\n } = props;\n if (Helpers.isFunction(props.pathFunction)) {\n return props.pathFunction(slice);\n }\n const padAngle = Helpers.degreesToRadians(props.padAngle);\n const startAngle = Helpers.degreesToRadians(props.sliceStartAngle);\n const endAngle = Helpers.degreesToRadians(props.sliceEndAngle);\n const pathFunction = d3Shape.arc().cornerRadius(cornerRadius).outerRadius(radius).innerRadius(innerRadius || 0);\n return pathFunction(defaults({\n startAngle,\n endAngle,\n padAngle\n }, slice));\n};\nconst evaluateProps = props => {\n /**\n * * Potential evaluated props of following must be evaluated in this order:\n * 1) `style`\n * 2) `radius`\n * 3) `innerRadius`\n *\n * Everything else does not have to be evaluated in a particular order:\n * `ariaLabel`\n * `id`\n * `cornerRadius`\n * `padAngle`\n * `sliceStartAngle`\n * `sliceEndAngle`\n * `tabIndex`\n */\n const style = Helpers.evaluateStyle(props.style, props);\n const radius = Helpers.evaluateProp(props.radius, Object.assign({}, props, {\n style\n }));\n const innerRadius = Helpers.evaluateProp(props.innerRadius, Object.assign({}, props, {\n style,\n radius\n }));\n const ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n const id = Helpers.evaluateProp(props.id, props);\n const cornerRadius = Helpers.evaluateProp(props.cornerRadius, props);\n const padAngle = Helpers.evaluateProp(props.padAngle, props);\n const sliceStartAngle = Helpers.evaluateProp(props.sliceStartAngle, props);\n const sliceEndAngle = Helpers.evaluateProp(props.sliceEndAngle, props);\n const tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return Object.assign({}, props, {\n ariaLabel,\n style,\n radius,\n innerRadius,\n id,\n cornerRadius,\n padAngle,\n sliceStartAngle,\n sliceEndAngle,\n tabIndex\n });\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Slice = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const defaultTransform = props.origin ? `translate(${props.origin.x}, ${props.origin.y})` : undefined;\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n \"aria-label\": props.ariaLabel,\n d: getPath(props),\n style: props.style,\n transform: props.transform || defaultTransform,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n clipPath: props.clipPath,\n tabIndex: props.tabIndex\n });\n};","import React from \"react\";\nimport { addEvents, Helpers, Data, LineSegment, VictoryContainer, VictoryLabel, VictoryTheme, UserProps } from \"victory-core\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Slice } from \"./slice\";\nconst fallbackProps = {\n endAngle: 360,\n height: 400,\n innerRadius: 0,\n cornerRadius: 0,\n padAngle: 0,\n padding: 30,\n width: 400,\n startAngle: 0,\n colorScale: [\"#ffffff\", \"#f0f0f0\", \"#d9d9d9\", \"#bdbdbd\", \"#969696\", \"#737373\", \"#525252\", \"#252525\", \"#000000\"],\n labelPosition: \"centroid\",\n labelIndicatorInnerOffset: 15,\n labelIndicatorOuterOffset: 5\n};\nconst datumHasXandY = datum => {\n return !Helpers.isNil(datum._x) && !Helpers.isNil(datum._y);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nclass VictoryPieBase extends React.Component {\n static animationWhitelist = [\"data\", \"endAngle\", \"height\", \"innerRadius\", \"cornerRadius\", \"padAngle\", \"padding\", \"colorScale\", \"startAngle\", \"style\", \"width\"];\n static displayName = \"VictoryPie\";\n static role = \"pie\";\n static defaultTransitions = {\n onExit: {\n duration: 500,\n before: () => ({\n _y: 0,\n label: \" \"\n })\n },\n onEnter: {\n duration: 500,\n before: () => ({\n _y: 0,\n label: \" \"\n }),\n after: datum => ({\n y_: datum._y,\n label: datum.label\n })\n }\n };\n static defaultProps = {\n data: [{\n x: \"A\",\n y: 1\n }, {\n x: \"B\",\n y: 2\n }, {\n x: \"C\",\n y: 3\n }, {\n x: \"D\",\n y: 1\n }, {\n x: \"E\",\n y: 2\n }],\n standalone: true,\n dataComponent: /*#__PURE__*/React.createElement(Slice, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n sortOrder: \"ascending\",\n theme: VictoryTheme.grayscale\n };\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static getData = Data.getData;\n static expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\", \"labelIndicatorComponent\"];\n\n // Overridden in victory-native\n shouldAnimate() {\n return Boolean(this.props.animate);\n }\n renderComponents(props, shouldRenderDatum) {\n if (shouldRenderDatum === void 0) {\n shouldRenderDatum = datumHasXandY;\n }\n const {\n dataComponent,\n labelComponent,\n groupComponent,\n labelIndicator,\n labelPosition\n } = props;\n if (!groupComponent) {\n throw new Error(\"VictoryPie expects a groupComponent prop\");\n }\n const showIndicator = labelIndicator && labelPosition === \"centroid\";\n const children = [];\n if (dataComponent) {\n const dataComponents = this.dataKeys.reduce((validDataComponents, _dataKey, index) => {\n const dataProps = this.getComponentProps(dataComponent, \"data\", index);\n if (shouldRenderDatum(dataProps.datum)) {\n validDataComponents.push( /*#__PURE__*/React.cloneElement(dataComponent, dataProps));\n }\n return validDataComponents;\n }, []);\n children.push(...dataComponents);\n }\n if (labelComponent) {\n const labelComponents = this.dataKeys.map((_dataKey, index) => {\n const labelProps = this.getComponentProps(labelComponent, \"labels\", index);\n if (labelProps.text !== undefined && labelProps.text !== null) {\n return /*#__PURE__*/React.cloneElement(labelComponent, labelProps);\n }\n return undefined;\n }).filter(comp => comp !== undefined);\n children.push(...labelComponents);\n }\n if (showIndicator && labelIndicator) {\n let labelIndicatorComponent = /*#__PURE__*/React.createElement(LineSegment, null);\n if (typeof labelIndicator === \"object\") {\n // pass user provided react component\n labelIndicatorComponent = labelIndicator;\n }\n const labelIndicatorComponents = this.dataKeys.map((_dataKey, index) => {\n const labelIndicatorProps = this.getComponentProps(labelIndicatorComponent, \"labelIndicators\", index);\n return /*#__PURE__*/React.cloneElement(labelIndicatorComponent, labelIndicatorProps);\n });\n children.push(...labelIndicatorComponents);\n }\n return this.renderContainer(groupComponent, children);\n }\n render() {\n const {\n animationWhitelist,\n role\n } = VictoryPie;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const children = this.renderComponents(props);\n const component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n}\nexport const VictoryPie = addEvents(VictoryPieBase);","import { Helpers, LabelHelpers, Data, Domain, Scale } from \"victory-core\";\nexport const getSymbol = (data, props) => {\n if (props.bubbleProperty) {\n return \"circle\";\n }\n return data.symbol || props.symbol;\n};\nexport const getBubbleSize = (datum, props) => {\n const {\n data,\n z,\n maxBubbleSize,\n minBubbleSize\n } = props;\n const zData = data.map(point => point[z]);\n const zMin = Math.min(...zData);\n const zMax = Math.max(...zData);\n const getMaxRadius = () => {\n const minPadding = Math.min(...Object.values(Helpers.getPadding(props.padding)));\n return Math.max(minPadding, 5); // eslint-disable-line no-magic-numbers\n };\n const maxRadius = maxBubbleSize || getMaxRadius();\n const minRadius = minBubbleSize || maxRadius * 0.1; // eslint-disable-line no-magic-numbers\n if (zMax === zMin) {\n return Math.max(minRadius, 1);\n }\n const maxArea = Math.PI * Math.pow(maxRadius, 2);\n const minArea = Math.PI * Math.pow(minRadius, 2);\n const pointArea = (datum[z] - zMin) / (zMax - zMin) * maxArea;\n const area = Math.max(pointArea, minArea);\n const radius = Math.sqrt(area / Math.PI);\n return Math.max(radius, 1);\n};\nexport const getSize = (datum, props) => {\n const {\n size,\n z\n } = props;\n if (datum.size) {\n return typeof datum.size === \"function\" ? datum.size : Math.max(datum.size, 1);\n } else if (typeof props.size === \"function\") {\n return size;\n } else if (datum[z]) {\n return getBubbleSize(datum, props);\n }\n return Math.max(size || 0, 1);\n};\nconst getCalculatedValues = props => {\n const defaultStyles = Helpers.getDefaultStyles(props, \"scatter\");\n const style = Helpers.getStyles(props.style, defaultStyles);\n const range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const domain = {\n x: Domain.getDomain(props, \"x\"),\n y: Domain.getDomain(props, \"y\")\n };\n const scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n const origin = props.polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n const z = props.bubbleProperty || \"z\";\n let data = Data.getData(props);\n data = Data.formatDataFromDomain(data, domain);\n return {\n domain,\n data,\n scale,\n style,\n origin,\n z\n };\n};\nexport const getBaseProps = (initialProps, fallbackProps) => {\n const modifiedProps = Helpers.modifyProps(initialProps, fallbackProps, \"scatter\");\n const props = Object.assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n const {\n data,\n domain,\n events,\n height,\n origin,\n padding,\n polar,\n scale,\n name,\n sharedEvents,\n standalone,\n style,\n theme,\n width,\n labels,\n horizontal,\n disableInlineStyles\n } = props;\n const initialChildProps = {\n parent: {\n style: style.parent,\n scale,\n domain,\n data,\n height,\n width,\n standalone,\n theme,\n origin,\n polar,\n padding,\n name,\n horizontal\n }\n };\n return data.reduce((childProps, datum, index) => {\n const eventKey = !Helpers.isNil(datum.eventKey) ? datum.eventKey : index;\n const {\n x,\n y\n } = Helpers.scalePoint(props, datum);\n const dataProps = {\n x,\n y,\n datum,\n data,\n index,\n scale,\n polar,\n origin,\n horizontal,\n size: getSize(datum, props),\n symbol: getSymbol(datum, props),\n style: disableInlineStyles ? {} : style.data,\n disableInlineStyles\n };\n childProps[eventKey] = {\n data: dataProps\n };\n const text = LabelHelpers.getText(props, datum, index);\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n childProps[eventKey].labels = LabelHelpers.getProps(props, index);\n }\n return childProps;\n }, initialChildProps);\n};","import React from \"react\";\nimport { Helpers, VictoryLabel, addEvents, VictoryContainer, VictoryTheme, DefaultTransitions, Data, Domain, Point, UserProps } from \"victory-core\";\nimport { getBaseProps } from \"./helper-methods\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n size: 3,\n symbol: \"circle\"\n};\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\n/**\n * Draw area charts with React. VictoryArea is a composable component, so it doesn't include axes.\n * Add VictoryArea as a child of VictoryChart for a complete chart.\n */\nclass VictoryScatterBase extends React.Component {\n static animationWhitelist = [\"data\", \"domain\", \"height\", \"maxBubbleSize\", \"padding\", \"samples\", \"size\", \"style\", \"width\"];\n static displayName = \"VictoryScatter\";\n static role = \"scatter\";\n static defaultTransitions = DefaultTransitions.discreteTransitions();\n static defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Point, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n samples: 50,\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n };\n static getDomain = Domain.getDomain;\n static getData = Data.getData;\n static getBaseProps(props) {\n return getBaseProps(props, fallbackProps);\n }\n static expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\n\n // Overridden in native versions\n shouldAnimate() {\n return !!this.props.animate;\n }\n render() {\n const {\n animationWhitelist,\n role\n } = VictoryScatter;\n const props = Helpers.modifyProps(this.props, fallbackProps, role);\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n const children = this.renderData(props);\n const component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n}\nexport const VictoryScatter = addEvents(VictoryScatterBase);","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\nimport fromPairs from \"lodash/fromPairs\";\nimport isEqual from \"react-fast-compare\";\nimport stringify from \"json-stringify-safe\";\nimport { Collection, Events, Helpers, TimerContext } from \"victory-core\";\n\n// DISCLAIMER:\n// This file is not currently tested, and it is first on the list of files\n// to refactor in our current refactoring effort. Please do not make changes\n// to this file without manual testing and/or refactoring and adding tests.\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\n\nexport class VictorySharedEvents extends React.Component {\n static displayName = \"VictorySharedEvents\";\n static role = \"shared-event-wrapper\";\n static contextType = TimerContext;\n static defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n };\n constructor(props) {\n super(props);\n this.getScopedEvents = Events.getScopedEvents.bind(this);\n this.getEventState = Events.getEventState.bind(this);\n this.state = this.state || {};\n this.sharedEventsCache = {};\n this.globalEvents = {};\n this.prevGlobalEventKeys = [];\n this.boundGlobalEvents = {};\n this.baseProps = this.getBaseProps(props);\n }\n shouldComponentUpdate(nextProps) {\n if (!isEqual(this.props, nextProps)) {\n this.baseProps = this.getBaseProps(nextProps);\n const externalMutations = this.getExternalMutations(nextProps, this.baseProps);\n this.applyExternalMutations(nextProps, externalMutations);\n }\n return true;\n }\n componentDidMount() {\n const globalEventKeys = Object.keys(this.globalEvents);\n globalEventKeys.forEach(key => this.addGlobalListener(key));\n this.prevGlobalEventKeys = globalEventKeys;\n }\n componentDidUpdate() {\n const globalEventKeys = Object.keys(this.globalEvents);\n const removedGlobalEventKeys = Collection.difference(this.prevGlobalEventKeys, globalEventKeys);\n removedGlobalEventKeys.forEach(key => this.removeGlobalListener(key));\n const addedGlobalEventKeys = Collection.difference(globalEventKeys, this.prevGlobalEventKeys);\n addedGlobalEventKeys.forEach(key => this.addGlobalListener(key));\n this.prevGlobalEventKeys = globalEventKeys;\n }\n componentWillUnmount() {\n this.prevGlobalEventKeys.forEach(key => this.removeGlobalListener(key));\n }\n addGlobalListener(key) {\n const boundListener = event => {\n const listener = this.globalEvents[key];\n return listener && listener(Events.emulateReactEvent(event));\n };\n this.boundGlobalEvents[key] = boundListener;\n window.addEventListener(Events.getGlobalEventNameFromKey(key), boundListener);\n }\n removeGlobalListener(key) {\n window.removeEventListener(Events.getGlobalEventNameFromKey(key), this.boundGlobalEvents[key]);\n }\n getAllEvents(props) {\n const components = [\"container\", \"groupComponent\"];\n const componentEvents = Events.getComponentEvents(props, components);\n if (Array.isArray(componentEvents)) {\n return Array.isArray(props.events) ? componentEvents.concat(...props.events) : componentEvents;\n }\n return props.events;\n }\n applyExternalMutations(props, externalMutations) {\n if (!isEmpty(externalMutations)) {\n const callbacks = props.externalEventMutations.reduce((memo, mutation) => Helpers.isFunction(mutation.callback) ? memo.concat(mutation.callback) : memo, []);\n const compiledCallbacks = callbacks.length ? () => {\n callbacks.forEach(c => c());\n } : undefined;\n this.setState(externalMutations, compiledCallbacks);\n }\n }\n getExternalMutations(props, baseProps) {\n return !isEmpty(props.externalEventMutations) ? Events.getExternalMutationsWithChildren(props.externalEventMutations, baseProps, this.state, Object.keys(baseProps)) : undefined;\n }\n cacheSharedEvents(name, sharedEvents, cacheValues) {\n this.sharedEventsCache[name] = [sharedEvents, cacheValues];\n }\n getCachedSharedEvents(name, cacheValues) {\n const [sharedEvents, prevCacheValues] = this.sharedEventsCache[name] || [];\n if (sharedEvents && isEqual(cacheValues, prevCacheValues)) {\n return sharedEvents;\n }\n return undefined;\n }\n getBaseProps(props) {\n const {\n container\n } = props;\n const children = React.Children.toArray(this.props.children);\n const childBaseProps = this.getBasePropsFromChildren(children);\n const parentBaseProps = container ? container.props : {};\n return Object.assign({}, childBaseProps, {\n parent: parentBaseProps\n });\n }\n getBasePropsFromChildren(childComponents) {\n const iteratee = (child, childName) => {\n if (child.type && Helpers.isFunction(child.type.getBaseProps)) {\n const baseProps = child.props && child.type.getBaseProps(child.props);\n return baseProps ? [[childName, baseProps]] : null;\n }\n return null;\n };\n const baseProps = Helpers.reduceChildren(childComponents, iteratee);\n return fromPairs(baseProps);\n }\n getNewChildren(props, baseProps) {\n const {\n events,\n eventKey\n } = props;\n const alterChildren = (children, childNames) => {\n return children.reduce((memo, child, index) => {\n if (child.props.children) {\n const newChildren = React.Children.toArray(child.props.children);\n const names = childNames.slice(index, index + newChildren.length);\n const results = /*#__PURE__*/React.cloneElement(child, child.props, alterChildren(newChildren, names));\n return memo.concat(results);\n } else if (childNames[index] !== \"parent\" && child.type && Helpers.isFunction(child.type.getBaseProps)) {\n const name = child.props.name || childNames[index];\n const childEvents = Array.isArray(events) && events.filter(event => {\n if (event.target === \"parent\") {\n return false;\n }\n return Array.isArray(event.childName) ? event.childName.indexOf(name) > -1 : event.childName === name || event.childName === \"all\";\n });\n const sharedEventsCacheValues = [name, baseProps, childEvents, stringify(this.state[name])];\n const sharedEvents = this.getCachedSharedEvents(name, sharedEventsCacheValues) || {\n events: childEvents,\n // partially apply child name and baseProps,\n getEvents: (evts, target) => this.getScopedEvents(evts, target, name, baseProps),\n // partially apply child name\n getEventState: (key, target) => this.getEventState(key, target, name)\n };\n this.cacheSharedEvents(name, sharedEvents, sharedEventsCacheValues);\n return memo.concat( /*#__PURE__*/React.cloneElement(child, Object.assign({\n key: `events-${name}`,\n sharedEvents,\n eventKey,\n name\n }, child.props)));\n }\n return memo.concat(child);\n }, []);\n };\n const childNames = Object.keys(baseProps);\n const childComponents = React.Children.toArray(props.children);\n return alterChildren(childComponents, childNames);\n }\n getContainer(props, baseProps, events) {\n const children = this.getNewChildren(props, baseProps);\n const parents = Array.isArray(events) ? events.filter(event => event.target === \"parent\") : [];\n const sharedEvents = parents.length > 0 ? {\n events: parents,\n // partially apply childName (null) and baseProps,\n getEvents: (evts, target) => this.getScopedEvents(evts, target, null, baseProps),\n getEventState: this.getEventState\n } : null;\n const container = props.container || props.groupComponent;\n const role = container.type && container.type.role;\n const containerProps = container.props || {};\n const boundGetEvents = Events.getEvents.bind(this);\n const parentEvents = sharedEvents && boundGetEvents({\n sharedEvents\n }, \"parent\");\n const parentProps = defaults({}, this.getEventState(\"parent\", \"parent\"), containerProps, baseProps.parent, {\n children\n });\n const containerEvents = defaults({}, Events.getPartialEvents(parentEvents, \"parent\", parentProps), containerProps.events);\n this.globalEvents = Events.getGlobalEvents(containerEvents);\n const localEvents = Events.omitGlobalEvents(containerEvents);\n return role === \"container\" ? /*#__PURE__*/React.cloneElement(container, Object.assign({}, parentProps, {\n events: localEvents\n })) : /*#__PURE__*/React.cloneElement(container, localEvents, children);\n }\n render() {\n const events = this.getAllEvents(this.props);\n if (events) {\n return this.getContainer(this.props, this.baseProps, events);\n }\n return /*#__PURE__*/React.cloneElement(this.props.container, {\n children: this.props.children\n });\n }\n}","import orderBy from \"lodash/orderBy\";\nimport React from \"react\";\nimport { Helpers, Scale, Wrapper } from \"victory-core\";\nimport isEqual from \"react-fast-compare\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\n\n// Assumes data in `datasets` is sorted by `Data.getData`.\nfunction fillData(props, datasets) {\n const {\n fillInMissingData\n } = props;\n const xMap = datasets.reduce((prev, dataset) => {\n dataset.forEach(datum => {\n prev[datum._x instanceof Date ? datum._x.getTime() : datum._x] = true;\n });\n return prev;\n }, {});\n const xKeys = Object.keys(xMap).map(k => Number(k));\n const xArr = orderBy(xKeys);\n return datasets.map(dataset => {\n let indexOffset = 0;\n const isDate = dataset[0] && dataset[0]._x instanceof Date;\n const filledInData = xArr.map((x, index) => {\n let parsedX = Number(x);\n const datum = dataset[index - indexOffset];\n if (datum) {\n const x1 = isDate ? datum._x.getTime() : datum._x;\n if (x1 === parsedX) {\n return datum;\n }\n indexOffset++;\n const y = fillInMissingData ? 0 : null;\n parsedX = isDate ? new Date(parsedX) : parsedX;\n return {\n x: parsedX,\n y,\n _x: parsedX,\n _y: y\n };\n }\n const y = fillInMissingData ? 0 : null;\n parsedX = isDate ? new Date(parsedX) : parsedX;\n return {\n x: parsedX,\n y,\n _x: parsedX,\n _y: y\n };\n });\n return filledInData;\n });\n}\nfunction getY0(datum, index, datasets) {\n if (datum.y0) {\n return datum.y0;\n }\n const y = datum._y;\n const group = datum._group;\n const firstDatasetBaseline = datasets[0].map(d => d.y0);\n const previousDatasets = datasets.slice(0, index);\n const previousPoints = previousDatasets.reduce((prev, dataset) => {\n return prev.concat(dataset.filter(previousDatum => datum._x instanceof Date ? previousDatum._x.getTime() === datum._x.getTime() : previousDatum._x === datum._x).map(previousDatum => previousDatum._y || 0));\n }, []);\n const y0 = previousPoints.length && previousPoints.reduce((memo, value) => {\n const sameSign = y < 0 && value < 0 || y >= 0 && value >= 0;\n return sameSign ? Number(value) + memo : memo;\n }, firstDatasetBaseline[group] || 0);\n return previousPoints.some(point => point instanceof Date) ? new Date(y0) : y0;\n}\n\n/* eslint-disable no-nested-ternary */\nfunction addLayoutData(props, datasets, index) {\n const xOffset = props.xOffset || 0;\n return datasets[index].map(datum => {\n const yOffset = getY0(datum, index, datasets) || 0;\n return Object.assign({}, datum, {\n _y0: !(datum._y instanceof Date) ? yOffset : yOffset ? new Date(yOffset) : datum._y,\n _y1: datum._y === null ? null : datum._y instanceof Date ? new Date(Number(datum._y) + Number(yOffset)) : datum._y + yOffset,\n _x1: datum._x === null ? null : datum._x instanceof Date ? new Date(Number(datum._x) + Number(xOffset)) : datum._x + xOffset\n });\n });\n}\n/* eslint-enable no-nested-ternary */\n\nfunction stackData(props, childComponents) {\n const dataFromChildren = Wrapper.getDataFromChildren(props, childComponents);\n const filledDatasets = fillData(props, dataFromChildren);\n const filteredNullChild = filledDatasets.map(dataset => dataset.filter(datum => datum._x !== null && datum._y !== null));\n return filteredNullChild.map((d, i) => addLayoutData(props, filledDatasets, i));\n}\nexport function getCalculatedProps(initialProps, childComponents) {\n const children = childComponents || React.Children.toArray(initialProps.children);\n const role = \"stack\";\n const props = Helpers.modifyProps(initialProps, fallbackProps, role);\n const style = Wrapper.getStyle(props.theme, props.style, role);\n const categories = props.categories || Wrapper.getCategories(props, children);\n const datasets = props.datasets || stackData(props, children);\n const clonedChildren = children.map((c, i) => {\n return /*#__PURE__*/React.cloneElement(c, {\n data: datasets[i]\n });\n });\n const domain = {\n x: Wrapper.getDomain(Object.assign({}, props, {\n categories\n }), \"x\", clonedChildren),\n y: Wrapper.getDomain(Object.assign({}, props, {\n categories\n }), \"y\", clonedChildren)\n };\n const range = props.range || {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n const baseScale = {\n x: Scale.getScaleFromProps(props, \"x\") || Wrapper.getScale(props, \"x\"),\n y: Scale.getScaleFromProps(props, \"y\") || Wrapper.getScale(props, \"y\")\n };\n const scale = {\n x: baseScale.x.domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: baseScale.y.domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n const {\n colorScale,\n horizontal\n } = props;\n return {\n datasets,\n categories,\n range,\n domain,\n horizontal,\n scale,\n style,\n colorScale,\n role\n };\n}\n\n// We need to remove sharedEvents in order to memoize the calculated data\n// With shared events, the props change on every event, and every value is re-calculated\nconst withoutSharedEvents = props => {\n const {\n children\n } = props;\n const modifiedChildren = React.Children.toArray(children).map(_child => {\n const child = _child;\n return {\n ...child,\n props: Helpers.omit(child.props, [\"sharedEvents\"])\n };\n });\n props.children = modifiedChildren;\n return props;\n};\nexport function useMemoizedProps(initialProps) {\n const modifiedProps = withoutSharedEvents(initialProps);\n const [props, setProps] = React.useState(modifiedProps);\n\n // React.memo uses shallow equality to compare objects. This way props\n // will only be re-calculated when they change.\n React.useEffect(() => {\n if (!isEqual(modifiedProps, props)) {\n setProps(modifiedProps);\n }\n }, [props, setProps, modifiedProps]);\n return React.useMemo(() => {\n return getCalculatedProps(props, props.children);\n }, [props]);\n}\nfunction getLabels(props, datasets, index) {\n if (!props.labels) {\n return undefined;\n }\n return datasets.length === index + 1 ? props.labels : undefined;\n}\nexport function getChildProps(props, calculatedProps) {\n const {\n categories,\n domain,\n range,\n scale,\n horizontal\n } = calculatedProps;\n return {\n height: props.height,\n width: props.width,\n padding: Helpers.getPadding(props.padding),\n standalone: false,\n theme: props.theme,\n categories,\n domain,\n range,\n scale,\n horizontal\n };\n}\nfunction getColorScale(props, child) {\n const role = child.type && child.type.role;\n const colorScaleOptions = child.props.colorScale || props.colorScale;\n if (role !== \"group\" && role !== \"stack\") {\n return undefined;\n }\n return props.theme ? colorScaleOptions || props.theme.props.colorScale : colorScaleOptions;\n}\nexport function getChildren(initialProps, childComponents, calculatedProps) {\n const props = Helpers.modifyProps(initialProps, fallbackProps, \"stack\");\n const children = childComponents || React.Children.toArray(props.children);\n const newCalculatedProps = calculatedProps || getCalculatedProps(props, children);\n const {\n datasets\n } = newCalculatedProps;\n const childProps = getChildProps(props, newCalculatedProps);\n const parentName = props.name || \"stack\";\n const {\n theme\n } = props;\n return children.map((child, index) => {\n const role = child.type && child.type.role;\n const data = datasets[index];\n const style = Wrapper.getChildStyle(child, index, newCalculatedProps, theme);\n const labels = props.labels ? getLabels(props, datasets, index) : child.props.labels;\n const name = child.props.name || `${parentName}-${role}-${index}`;\n return /*#__PURE__*/React.cloneElement(child, Object.assign({\n key: `${name}-key-${index}`,\n labels,\n name,\n domainPadding: child.props.domainPadding || props.domainPadding,\n theme: props.theme,\n labelComponent: props.labelComponent || child.props.labelComponent,\n style,\n colorScale: getColorScale(props, child),\n data,\n polar: props.polar\n }, childProps));\n });\n}","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport isEmpty from \"lodash/isEmpty\";\nimport { Helpers, Hooks, UserProps, VictoryContainer, VictoryTheme, Wrapper } from \"victory-core\";\nimport { VictorySharedEvents } from \"victory-shared-events\";\nimport { getChildren, useMemoizedProps } from \"./helper-methods\";\nimport isEqual from \"react-fast-compare\";\nconst fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nconst defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n standalone: true,\n theme: VictoryTheme.grayscale,\n fillInMissingData: true\n};\nconst VictoryStackBase = initialProps => {\n const {\n role\n } = VictoryStack;\n const propsWithDefaults = React.useMemo(() => defaults({}, initialProps, defaultProps), [initialProps]);\n const {\n setAnimationState,\n getAnimationProps,\n getProps\n } = Hooks.useAnimationState();\n const props = getProps(propsWithDefaults);\n const modifiedProps = Helpers.modifyProps(props, fallbackProps, role);\n const {\n eventKey,\n containerComponent,\n standalone,\n groupComponent,\n externalEventMutations,\n width,\n height,\n theme,\n polar,\n horizontal,\n name\n } = modifiedProps;\n const childComponents = React.Children.toArray(modifiedProps.children);\n const calculatedProps = useMemoizedProps(modifiedProps);\n const {\n domain,\n scale,\n style\n } = calculatedProps;\n const newChildren = React.useMemo(() => {\n const children = getChildren(props, childComponents, calculatedProps);\n const orderedChildren = children.map((child, index) => {\n const childProps = Object.assign({\n animate: getAnimationProps(props, child, index)\n }, child.props);\n return /*#__PURE__*/React.cloneElement(child, childProps);\n });\n /*\n reverse render order for children of `VictoryStack` so that higher children in the stack\n are rendered behind lower children. This looks nicer for stacked bars with cornerRadius, and\n areas with strokes\n */\n return orderedChildren.reverse();\n }, [props, childComponents, calculatedProps, getAnimationProps]);\n const containerProps = React.useMemo(() => {\n if (standalone) {\n return {\n domain,\n scale,\n width,\n height,\n standalone,\n theme,\n style: style.parent,\n horizontal,\n polar,\n name\n };\n }\n return {};\n }, [standalone, domain, scale, width, height, theme, style, horizontal, polar, name]);\n const userProps = React.useMemo(() => UserProps.getSafeUserProps(propsWithDefaults), [propsWithDefaults]);\n const container = React.useMemo(() => {\n if (standalone) {\n const defaultContainerProps = defaults({}, containerComponent.props, containerProps, userProps);\n return /*#__PURE__*/React.cloneElement(containerComponent, defaultContainerProps);\n }\n return /*#__PURE__*/React.cloneElement(groupComponent, userProps);\n }, [groupComponent, standalone, containerComponent, containerProps, userProps]);\n const events = React.useMemo(() => {\n return Wrapper.getAllEvents(props);\n }, [props]);\n const previousProps = Hooks.usePreviousProps(propsWithDefaults);\n React.useEffect(() => {\n // This is called before dismount to keep state in sync\n return () => {\n if (propsWithDefaults.animate) {\n setAnimationState(previousProps, propsWithDefaults);\n }\n };\n }, [setAnimationState, previousProps, propsWithDefaults]);\n if (!isEmpty(events)) {\n return /*#__PURE__*/React.createElement(VictorySharedEvents, {\n container: container,\n eventKey: eventKey,\n events: events,\n externalEventMutations: externalEventMutations\n }, newChildren);\n }\n return /*#__PURE__*/React.cloneElement(container, container.props, newChildren);\n};\nconst componentConfig = {\n role: \"stack\",\n expectedComponents: [\"groupComponent\", \"containerComponent\", \"labelComponent\"],\n getChildren\n};\nexport const VictoryStack = Object.assign( /*#__PURE__*/React.memo(VictoryStackBase, isEqual), componentConfig);\nVictoryStack.displayName = \"VictoryStack\";","import React from \"react\";\nimport defaults from \"lodash/defaults\";\nimport { Helpers, Path, UserProps } from \"victory-core\";\nconst getVerticalPath = props => {\n const {\n pointerWidth,\n cornerRadius,\n orientation,\n width,\n height,\n center\n } = props;\n const sign = orientation === \"bottom\" ? 1 : -1;\n const x = props.x + (props.dx || 0);\n const y = props.y + (props.dy || 0);\n const centerX = center.x;\n const centerY = center.y;\n const pointerEdge = centerY + sign * (height / 2);\n const oppositeEdge = centerY - sign * (height / 2);\n const rightEdge = centerX + width / 2;\n const leftEdge = centerX - width / 2;\n const pointerLength = sign * (y - pointerEdge) < 0 ? 0 : props.pointerLength;\n const direction = orientation === \"bottom\" ? \"0 0 0\" : \"0 0 1\";\n const arc = `${cornerRadius} ${cornerRadius} ${direction}`;\n return `M ${centerX - pointerWidth / 2}, ${pointerEdge}\n L ${pointerLength ? x : centerX + pointerWidth / 2}, ${pointerLength ? y : pointerEdge}\n L ${centerX + pointerWidth / 2}, ${pointerEdge}\n L ${rightEdge - cornerRadius}, ${pointerEdge}\n A ${arc} ${rightEdge}, ${pointerEdge - sign * cornerRadius}\n L ${rightEdge}, ${oppositeEdge + sign * cornerRadius}\n A ${arc} ${rightEdge - cornerRadius}, ${oppositeEdge}\n L ${leftEdge + cornerRadius}, ${oppositeEdge}\n A ${arc} ${leftEdge}, ${oppositeEdge + sign * cornerRadius}\n L ${leftEdge}, ${pointerEdge - sign * cornerRadius}\n A ${arc} ${leftEdge + cornerRadius}, ${pointerEdge}\n z`;\n};\nconst getHorizontalPath = props => {\n const {\n pointerWidth,\n cornerRadius,\n orientation,\n width,\n height,\n center\n } = props;\n const sign = orientation === \"left\" ? 1 : -1;\n const x = props.x + (props.dx || 0);\n const y = props.y + (props.dy || 0);\n const centerX = center.x;\n const centerY = center.y;\n const pointerEdge = centerX - sign * (width / 2);\n const oppositeEdge = centerX + sign * (width / 2);\n const bottomEdge = centerY + height / 2;\n const topEdge = centerY - height / 2;\n const pointerLength = sign * (x - pointerEdge) > 0 ? 0 : props.pointerLength;\n const direction = orientation === \"left\" ? \"0 0 0\" : \"0 0 1\";\n const arc = `${cornerRadius} ${cornerRadius} ${direction}`;\n return `M ${pointerEdge}, ${centerY - pointerWidth / 2}\n L ${pointerLength ? x : pointerEdge}, ${pointerLength ? y : centerY + pointerWidth / 2}\n L ${pointerEdge}, ${centerY + pointerWidth / 2}\n L ${pointerEdge}, ${bottomEdge - cornerRadius}\n A ${arc} ${pointerEdge + sign * cornerRadius}, ${bottomEdge}\n L ${oppositeEdge - sign * cornerRadius}, ${bottomEdge}\n A ${arc} ${oppositeEdge}, ${bottomEdge - cornerRadius}\n L ${oppositeEdge}, ${topEdge + cornerRadius}\n A ${arc} ${oppositeEdge - sign * cornerRadius}, ${topEdge}\n L ${pointerEdge + sign * cornerRadius}, ${topEdge}\n A ${arc} ${pointerEdge}, ${topEdge + cornerRadius}\n z`;\n};\nconst getFlyoutPath = props => {\n const orientation = props.orientation || \"top\";\n return orientation === \"left\" || orientation === \"right\" ? getHorizontalPath(props) : getVerticalPath(props);\n};\nconst evaluateProps = props => {\n /**\n * Potential evaluated props are:\n * `id`\n * `style`\n */\n const id = Helpers.evaluateProp(props.id, props);\n const style = Helpers.evaluateStyle(props.style, props);\n return {\n ...props,\n id,\n style\n };\n};\nconst defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport const Flyout = initialProps => {\n const props = evaluateProps(defaults({}, initialProps, defaultProps));\n const userProps = UserProps.getSafeUserProps(props);\n\n // check for required props for this subcomponent\n // they should be passed in from the wrapper\n UserProps.assert(props.height, \"Flyout props[height] is undefined\");\n UserProps.assert(props.width, \"Flyout props[width] is undefined\");\n UserProps.assert(props.x, \"Flyout props[x] is undefined\");\n UserProps.assert(props.y, \"Flyout props[y] is undefined\");\n const flyoutPathProps = {\n center: props.center || {\n x: 0,\n y: 0\n },\n cornerRadius: props.cornerRadius || 0,\n dx: props.dx,\n dy: props.dy,\n height: props.height,\n orientation: props.orientation || \"top\",\n pointerLength: props.pointerLength || 0,\n pointerWidth: props.pointerWidth || 0,\n width: props.width,\n x: props.x,\n y: props.y\n };\n return /*#__PURE__*/React.cloneElement(props.pathComponent, {\n ...props.events,\n ...userProps,\n style: props.style,\n d: getFlyoutPath(flyoutPathProps),\n className: props.className,\n shapeRendering: props.shapeRendering,\n role: props.role,\n transform: props.transform,\n clipPath: props.clipPath\n });\n};","import React from \"react\";\nimport { TextSize, Helpers, LabelHelpers, VictoryLabel, VictoryTheme, VictoryPortal } from \"victory-core\";\nimport defaults from \"lodash/defaults\";\nimport uniqueId from \"lodash/uniqueId\";\nimport isPlainObject from \"lodash/isPlainObject\";\nimport orderBy from \"lodash/orderBy\";\nimport { Flyout } from \"./flyout\";\nconst fallbackProps = {\n cornerRadius: 5,\n pointerLength: 10,\n pointerWidth: 10\n};\nexport class VictoryTooltip extends React.Component {\n static displayName = \"VictoryTooltip\";\n static role = \"tooltip\";\n static defaultProps = {\n active: false,\n renderInPortal: true,\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n flyoutComponent: /*#__PURE__*/React.createElement(Flyout, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n };\n static defaultEvents(props) {\n const activate = props.activateData ? [{\n target: \"labels\",\n mutation: () => ({\n active: true\n })\n }, {\n target: \"data\",\n mutation: () => ({\n active: true\n })\n }] : [{\n target: \"labels\",\n mutation: () => ({\n active: true\n })\n }];\n const deactivate = props.activateData ? [{\n target: \"labels\",\n mutation: () => ({\n active: undefined\n })\n }, {\n target: \"data\",\n mutation: () => ({\n active: undefined\n })\n }] : [{\n target: \"labels\",\n mutation: () => ({\n active: undefined\n })\n }];\n return [{\n target: \"data\",\n eventHandlers: {\n onMouseOver: () => activate,\n onFocus: () => activate,\n onTouchStart: () => activate,\n onMouseOut: () => deactivate,\n onBlur: () => deactivate,\n onTouchEnd: () => deactivate\n }\n }];\n }\n constructor(props) {\n super(props);\n this.id = props.id === undefined ? uniqueId(\"tooltip-\") : props.id;\n }\n getDefaultOrientation(props) {\n const {\n datum,\n horizontal,\n polar\n } = props;\n if (!polar) {\n const positive = horizontal ? \"right\" : \"top\";\n const negative = horizontal ? \"left\" : \"bottom\";\n return datum && datum.y < 0 ? negative : positive;\n }\n return this.getPolarOrientation(props);\n }\n getPolarOrientation(props) {\n const degrees = LabelHelpers.getDegrees(props, props.datum);\n const placement = props.labelPlacement || \"vertical\";\n if (placement === \"vertical\") {\n return this.getVerticalOrientations(degrees);\n } else if (placement === \"parallel\") {\n return degrees < 90 || degrees > 270 ? \"right\" : \"left\";\n }\n return degrees > 180 ? \"bottom\" : \"top\";\n }\n getVerticalOrientations(degrees) {\n // eslint-disable-next-line no-magic-numbers\n if (degrees < 45 || degrees > 315) {\n return \"right\";\n // eslint-disable-next-line no-magic-numbers\n } else if (degrees >= 45 && degrees <= 135) {\n return \"top\";\n // eslint-disable-next-line no-magic-numbers\n } else if (degrees > 135 && degrees < 225) {\n return \"left\";\n }\n return \"bottom\";\n }\n getStyles(props) {\n const theme = props.theme || VictoryTheme.grayscale;\n const defaultLabelStyles = theme && theme.tooltip && theme.tooltip.style ? theme.tooltip.style : {};\n const baseLabelStyle = Array.isArray(props.style) ? props.style.map(s => defaults({}, s, defaultLabelStyles)) : defaults({}, props.style, defaultLabelStyles);\n const defaultFlyoutStyles = theme && theme.tooltip && theme.tooltip.flyoutStyle ? theme.tooltip.flyoutStyle : {};\n const baseFlyoutStyle = props.flyoutStyle ? defaults({}, props.flyoutStyle, defaultFlyoutStyles) : defaultFlyoutStyles;\n const style = Array.isArray(baseLabelStyle) ? baseLabelStyle.map(s => Helpers.evaluateStyle(s, props)) : Helpers.evaluateStyle(baseLabelStyle, props);\n const flyoutStyle = Helpers.evaluateStyle(baseFlyoutStyle, Object.assign({}, props, {\n style\n }));\n return {\n style,\n flyoutStyle\n };\n }\n getEvaluatedProps(props) {\n const {\n cornerRadius,\n centerOffset,\n dx,\n dy\n } = props;\n const active = Helpers.evaluateProp(props.active, props);\n let text = Helpers.evaluateProp(props.text, Object.assign({}, props, {\n active\n }));\n if (text === undefined || text === null) {\n text = \"\";\n }\n if (typeof text === \"number\") {\n text = text.toString();\n }\n const {\n style,\n flyoutStyle\n } = this.getStyles(Object.assign({}, props, {\n active,\n text\n }));\n const orientation = Helpers.evaluateProp(props.orientation, Object.assign({}, props, {\n active,\n text,\n style,\n flyoutStyle\n })) || this.getDefaultOrientation(props);\n const padding = Helpers.evaluateProp(props.flyoutPadding, Object.assign({}, props, {\n active,\n text,\n style,\n flyoutStyle,\n orientation\n })) || this.getLabelPadding(style);\n const flyoutPadding = Helpers.getPadding(padding);\n const pointerWidth = Helpers.evaluateProp(props.pointerWidth, Object.assign({}, props, {\n active,\n text,\n style,\n flyoutStyle,\n orientation\n }));\n const pointerLength = Helpers.evaluateProp(props.pointerLength, Object.assign({}, props, {\n active,\n text,\n style,\n flyoutStyle,\n orientation\n }));\n const labelSize = TextSize.approximateTextSize(text, style);\n const {\n flyoutHeight,\n flyoutWidth\n } = this.getDimensions(Object.assign({}, props, {\n style,\n flyoutStyle,\n active,\n text,\n orientation,\n flyoutPadding,\n pointerWidth,\n pointerLength\n }), labelSize);\n const evaluatedProps = Object.assign({}, props, {\n active,\n text,\n style,\n flyoutStyle,\n orientation,\n flyoutHeight,\n flyoutWidth,\n flyoutPadding,\n pointerWidth,\n pointerLength\n });\n const offsetX = isPlainObject(centerOffset) && centerOffset?.x !== undefined ? Helpers.evaluateProp(centerOffset.x, evaluatedProps) : 0;\n const offsetY = isPlainObject(centerOffset) && centerOffset?.y !== undefined ? Helpers.evaluateProp(centerOffset.y, evaluatedProps) : 0;\n return {\n ...evaluatedProps,\n centerOffset: {\n x: offsetX,\n y: offsetY\n },\n dx: dx !== undefined ? Helpers.evaluateProp(dx, evaluatedProps) : 0,\n dy: dy !== undefined ? Helpers.evaluateProp(dy, evaluatedProps) : 0,\n cornerRadius: Helpers.evaluateProp(cornerRadius, evaluatedProps)\n };\n }\n getCalculatedValues(props) {\n const {\n style,\n text,\n flyoutStyle,\n flyoutHeight,\n flyoutWidth\n } = props;\n const labelSize = TextSize.approximateTextSize(text, style);\n const flyoutDimensions = {\n height: flyoutHeight,\n width: flyoutWidth\n };\n const flyoutCenter = this.getFlyoutCenter(props, flyoutDimensions);\n const transform = this.getTransform(props);\n return {\n style,\n flyoutStyle,\n labelSize,\n flyoutDimensions,\n flyoutCenter,\n transform\n };\n }\n getTransform(props) {\n const {\n x,\n y,\n style\n } = props;\n const labelStyle = style || {};\n const angle = labelStyle.angle || props.angle || this.getDefaultAngle(props);\n return angle ? `rotate(${angle} ${x} ${y})` : undefined;\n }\n getDefaultAngle(props) {\n const {\n polar,\n labelPlacement,\n orientation,\n datum\n } = props;\n if (!polar || !labelPlacement || labelPlacement === \"vertical\") {\n return 0;\n }\n const degrees = LabelHelpers.getDegrees(props, datum);\n const sign = degrees > 90 && degrees < 180 || degrees > 270 ? 1 : -1;\n const labelRotation = labelPlacement === \"perpendicular\" ? 0 : 90;\n let angle = 0;\n if (degrees === 0 || degrees === 180) {\n angle = orientation === \"top\" && degrees === 180 ? 270 : 90;\n } else if (degrees > 0 && degrees < 180) {\n angle = 90 - degrees;\n } else if (degrees > 180 && degrees < 360) {\n angle = 270 - degrees;\n }\n return angle + sign * labelRotation;\n }\n constrainTooltip(center, props, dimensions) {\n const {\n x,\n y\n } = center;\n const {\n width,\n height\n } = dimensions;\n const extent = {\n x: [0, props.width],\n y: [0, props.height]\n };\n const flyoutExtent = {\n x: [x - width / 2, x + width / 2],\n y: [y - height / 2, y + height / 2]\n };\n const adjustments = {\n x: [flyoutExtent.x[0] < extent.x[0] ? extent.x[0] - flyoutExtent.x[0] : 0, flyoutExtent.x[1] > extent.x[1] ? flyoutExtent.x[1] - extent.x[1] : 0],\n y: [flyoutExtent.y[0] < extent.y[0] ? extent.y[0] - flyoutExtent.y[0] : 0, flyoutExtent.y[1] > extent.y[1] ? flyoutExtent.y[1] - extent.y[1] : 0]\n };\n return {\n x: Math.round(x + adjustments.x[0] - adjustments.x[1]),\n y: Math.round(y + adjustments.y[0] - adjustments.y[1])\n };\n }\n getFlyoutCenter(props, dimensions) {\n const {\n x,\n y,\n dx,\n dy,\n pointerLength,\n orientation,\n constrainToVisibleArea,\n centerOffset\n } = props;\n const {\n height,\n width\n } = dimensions;\n const xSign = orientation === \"left\" ? -1 : 1;\n const ySign = orientation === \"bottom\" ? -1 : 1;\n const flyoutCenter = {\n x: orientation === \"left\" || orientation === \"right\" ? x + xSign * (pointerLength + width / 2 + xSign * dx) : x + dx,\n y: orientation === \"top\" || orientation === \"bottom\" ? y - ySign * (pointerLength + height / 2 - ySign * dy) : y + dy\n };\n const center = {\n x: isPlainObject(props.center) && props.center.x !== undefined ? props.center.x : flyoutCenter.x,\n y: isPlainObject(props.center) && props.center.y !== undefined ? props.center.y : flyoutCenter.y\n };\n const centerWithOffset = {\n x: center.x + centerOffset.x,\n y: center.y + centerOffset.y\n };\n return constrainToVisibleArea ? this.constrainTooltip(centerWithOffset, props, dimensions) : centerWithOffset;\n }\n getLabelPadding(style) {\n if (!style) {\n return 0;\n }\n const paddings = Array.isArray(style) ? style.map(s => s.padding) : [style.padding];\n return Math.max(...paddings, 0);\n }\n getDimensions(props, labelSize) {\n const {\n orientation,\n pointerLength,\n pointerWidth,\n flyoutHeight,\n flyoutWidth,\n flyoutPadding\n } = props;\n const cornerRadius = Helpers.evaluateProp(props.cornerRadius, props);\n const getHeight = () => {\n const calculatedHeight = labelSize.height + flyoutPadding.top + flyoutPadding.bottom;\n const minHeight = orientation === \"top\" || orientation === \"bottom\" ? 2 * cornerRadius : 2 * cornerRadius + pointerWidth;\n return Math.max(minHeight, calculatedHeight);\n };\n const getWidth = () => {\n const calculatedWidth = labelSize.width + flyoutPadding.left + flyoutPadding.right;\n const minWidth = orientation === \"left\" || orientation === \"right\" ? 2 * cornerRadius + pointerLength : 2 * cornerRadius;\n return Math.max(minWidth, calculatedWidth);\n };\n return {\n flyoutHeight: flyoutHeight ? Helpers.evaluateProp(flyoutHeight, props) : getHeight(),\n flyoutWidth: flyoutWidth ? Helpers.evaluateProp(flyoutWidth, props) : getWidth()\n };\n }\n getLabelProps(props, calculatedValues) {\n const {\n flyoutCenter,\n style,\n labelSize,\n dy = 0,\n dx = 0\n } = calculatedValues;\n const {\n text,\n datum,\n activePoints,\n labelComponent,\n index,\n flyoutPadding\n } = props;\n const textAnchor = (Array.isArray(style) && style.length ? style[0].textAnchor : style.textAnchor) || \"middle\";\n const getLabelX = () => {\n if (!textAnchor || textAnchor === \"middle\") {\n return flyoutCenter.x;\n }\n const sign = textAnchor === \"end\" ? -1 : 1;\n return flyoutCenter.x - sign * (labelSize.width / 2);\n };\n return defaults({}, labelComponent.props, {\n key: `${this.id}-label-${index}`,\n text,\n datum,\n activePoints,\n textAnchor,\n dy,\n dx,\n style,\n x: getLabelX() + (flyoutPadding.left - flyoutPadding.right) / 2,\n y: flyoutCenter.y + (flyoutPadding.top - flyoutPadding.bottom) / 2,\n verticalAnchor: \"middle\",\n angle: style.angle\n });\n }\n getPointerOrientation(point, center, flyoutDimensions) {\n const edges = {\n bottom: center.y + flyoutDimensions.height / 2,\n top: center.y - flyoutDimensions.height / 2,\n left: center.x - flyoutDimensions.width / 2,\n right: center.x + flyoutDimensions.width / 2\n };\n const gaps = [{\n side: \"top\",\n val: edges.top > point.y ? edges.top - point.y : -1\n }, {\n side: \"bottom\",\n val: edges.bottom < point.y ? point.y - edges.bottom : -1\n }, {\n side: \"right\",\n val: edges.right < point.x ? point.x - edges.right : -1\n }, {\n side: \"left\",\n val: edges.left > point.x ? edges.left - point.x : -1\n }];\n return orderBy(gaps, \"val\", \"desc\")[0].side;\n }\n getFlyoutProps(props, calculatedValues) {\n const {\n flyoutDimensions,\n flyoutStyle,\n flyoutCenter\n } = calculatedValues;\n const {\n x,\n y,\n dx,\n dy,\n datum,\n activePoints,\n index,\n pointerLength,\n pointerWidth,\n cornerRadius,\n events,\n flyoutComponent\n } = props;\n const pointerOrientation = Helpers.evaluateProp(props.pointerOrientation, props);\n return defaults({}, flyoutComponent.props, {\n x,\n y,\n dx,\n dy,\n datum,\n activePoints,\n index,\n pointerLength,\n pointerWidth,\n cornerRadius,\n events,\n orientation: pointerOrientation || this.getPointerOrientation({\n x: x,\n y: y\n }, flyoutCenter, flyoutDimensions),\n key: `${this.id}-tooltip-${index}`,\n width: flyoutDimensions.width,\n height: flyoutDimensions.height,\n style: flyoutStyle,\n center: flyoutCenter\n });\n }\n\n // Overridden in victory-core-native\n renderTooltip(props) {\n const active = Helpers.evaluateProp(props.active, props);\n const {\n renderInPortal\n } = props;\n if (!active) {\n return null;\n }\n const evaluatedProps = this.getEvaluatedProps(props);\n const {\n flyoutComponent,\n labelComponent,\n groupComponent\n } = evaluatedProps;\n const calculatedValues = this.getCalculatedValues(evaluatedProps);\n const children = [/*#__PURE__*/React.cloneElement(flyoutComponent, this.getFlyoutProps(evaluatedProps, calculatedValues)), /*#__PURE__*/React.cloneElement(labelComponent, this.getLabelProps(evaluatedProps, calculatedValues))];\n const tooltip = /*#__PURE__*/React.cloneElement(groupComponent, {\n role: \"presentation\",\n transform: calculatedValues.transform\n }, children);\n return renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, tooltip) : tooltip;\n }\n render() {\n const props = Helpers.modifyProps(this.props, fallbackProps, \"tooltip\");\n return this.renderTooltip(props);\n }\n}","function memo(getDeps, fn, opts) {\n let deps = opts.initialDeps ?? [];\n let result;\n return () => {\n var _a, _b, _c, _d;\n let depTime;\n if (opts.key && ((_a = opts.debug) == null ? void 0 : _a.call(opts))) depTime = Date.now();\n const newDeps = getDeps();\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => deps[index] !== dep);\n if (!depsChanged) {\n return result;\n }\n deps = newDeps;\n let resultTime;\n if (opts.key && ((_b = opts.debug) == null ? void 0 : _b.call(opts))) resultTime = Date.now();\n result = fn(...newDeps);\n if (opts.key && ((_c = opts.debug) == null ? void 0 : _c.call(opts))) {\n const depEndTime = Math.round((Date.now() - depTime) * 100) / 100;\n const resultEndTime = Math.round((Date.now() - resultTime) * 100) / 100;\n const resultFpsPercentage = resultEndTime / 16;\n const pad = (str, num) => {\n str = String(str);\n while (str.length < num) {\n str = \" \" + str;\n }\n return str;\n };\n console.info(\n `%c⏱ ${pad(resultEndTime, 5)} /${pad(depEndTime, 5)} ms`,\n `\n font-size: .6rem;\n font-weight: bold;\n color: hsl(${Math.max(\n 0,\n Math.min(120 - 120 * resultFpsPercentage, 120)\n )}deg 100% 31%);`,\n opts == null ? void 0 : opts.key\n );\n }\n (_d = opts == null ? void 0 : opts.onChange) == null ? void 0 : _d.call(opts, result);\n return result;\n };\n}\nfunction notUndefined(value, msg) {\n if (value === void 0) {\n throw new Error(`Unexpected undefined${msg ? `: ${msg}` : \"\"}`);\n } else {\n return value;\n }\n}\nconst approxEqual = (a, b) => Math.abs(a - b) < 1;\nconst debounce = (targetWindow, fn, ms) => {\n let timeoutId;\n return function(...args) {\n targetWindow.clearTimeout(timeoutId);\n timeoutId = targetWindow.setTimeout(() => fn.apply(this, args), ms);\n };\n};\nexport {\n approxEqual,\n debounce,\n memo,\n notUndefined\n};\n//# sourceMappingURL=utils.js.map\n","import { debounce, memo, notUndefined, approxEqual } from \"./utils.js\";\nconst defaultKeyExtractor = (index) => index;\nconst defaultRangeExtractor = (range) => {\n const start = Math.max(range.startIndex - range.overscan, 0);\n const end = Math.min(range.endIndex + range.overscan, range.count - 1);\n const arr = [];\n for (let i = start; i <= end; i++) {\n arr.push(i);\n }\n return arr;\n};\nconst observeElementRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n const handler = (rect) => {\n const { width, height } = rect;\n cb({ width: Math.round(width), height: Math.round(height) });\n };\n handler(element.getBoundingClientRect());\n if (!targetWindow.ResizeObserver) {\n return () => {\n };\n }\n const observer = new targetWindow.ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n handler({ width: box.inlineSize, height: box.blockSize });\n return;\n }\n }\n handler(element.getBoundingClientRect());\n });\n observer.observe(element, { box: \"border-box\" });\n return () => {\n observer.unobserve(element);\n };\n};\nconst addEventListenerOptions = {\n passive: true\n};\nconst observeWindowRect = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const handler = () => {\n cb({ width: element.innerWidth, height: element.innerHeight });\n };\n handler();\n element.addEventListener(\"resize\", handler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"resize\", handler);\n };\n};\nconst supportsScrollend = typeof window == \"undefined\" ? true : \"onscrollend\" in window;\nconst observeElementOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollLeft\" : \"scrollTop\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst observeWindowOffset = (instance, cb) => {\n const element = instance.scrollElement;\n if (!element) {\n return;\n }\n const targetWindow = instance.targetWindow;\n if (!targetWindow) {\n return;\n }\n let offset = 0;\n const fallback = supportsScrollend ? () => void 0 : debounce(\n targetWindow,\n () => {\n cb(offset, false);\n },\n instance.options.isScrollingResetDelay\n );\n const createHandler = (isScrolling) => () => {\n offset = element[instance.options.horizontal ? \"scrollX\" : \"scrollY\"];\n fallback();\n cb(offset, isScrolling);\n };\n const handler = createHandler(true);\n const endHandler = createHandler(false);\n endHandler();\n element.addEventListener(\"scroll\", handler, addEventListenerOptions);\n element.addEventListener(\"scrollend\", endHandler, addEventListenerOptions);\n return () => {\n element.removeEventListener(\"scroll\", handler);\n element.removeEventListener(\"scrollend\", endHandler);\n };\n};\nconst measureElement = (element, entry, instance) => {\n if (entry == null ? void 0 : entry.borderBoxSize) {\n const box = entry.borderBoxSize[0];\n if (box) {\n const size = Math.round(\n box[instance.options.horizontal ? \"inlineSize\" : \"blockSize\"]\n );\n return size;\n }\n }\n return Math.round(\n element.getBoundingClientRect()[instance.options.horizontal ? \"width\" : \"height\"]\n );\n};\nconst windowScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nconst elementScroll = (offset, {\n adjustments = 0,\n behavior\n}, instance) => {\n var _a, _b;\n const toOffset = offset + adjustments;\n (_b = (_a = instance.scrollElement) == null ? void 0 : _a.scrollTo) == null ? void 0 : _b.call(_a, {\n [instance.options.horizontal ? \"left\" : \"top\"]: toOffset,\n behavior\n });\n};\nclass Virtualizer {\n constructor(opts) {\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.isScrolling = false;\n this.scrollToIndexTimeoutId = null;\n this.measurementsCache = [];\n this.itemSizeCache = /* @__PURE__ */ new Map();\n this.pendingMeasuredCacheIndexes = [];\n this.scrollRect = null;\n this.scrollOffset = null;\n this.scrollDirection = null;\n this.scrollAdjustments = 0;\n this.elementsCache = /* @__PURE__ */ new Map();\n this.observer = /* @__PURE__ */ (() => {\n let _ro = null;\n const get = () => {\n if (_ro) {\n return _ro;\n }\n if (!this.targetWindow || !this.targetWindow.ResizeObserver) {\n return null;\n }\n return _ro = new this.targetWindow.ResizeObserver((entries) => {\n entries.forEach((entry) => {\n this._measureElement(entry.target, entry);\n });\n });\n };\n return {\n disconnect: () => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.disconnect();\n },\n observe: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.observe(target, { box: \"border-box\" });\n },\n unobserve: (target) => {\n var _a;\n return (_a = get()) == null ? void 0 : _a.unobserve(target);\n }\n };\n })();\n this.range = null;\n this.setOptions = (opts2) => {\n Object.entries(opts2).forEach(([key, value]) => {\n if (typeof value === \"undefined\") delete opts2[key];\n });\n this.options = {\n debug: false,\n initialOffset: 0,\n overscan: 1,\n paddingStart: 0,\n paddingEnd: 0,\n scrollPaddingStart: 0,\n scrollPaddingEnd: 0,\n horizontal: false,\n getItemKey: defaultKeyExtractor,\n rangeExtractor: defaultRangeExtractor,\n onChange: () => {\n },\n measureElement,\n initialRect: { width: 0, height: 0 },\n scrollMargin: 0,\n gap: 0,\n indexAttribute: \"data-index\",\n initialMeasurementsCache: [],\n lanes: 1,\n isScrollingResetDelay: 150,\n enabled: true,\n ...opts2\n };\n };\n this.notify = (force, sync) => {\n var _a, _b;\n const { startIndex, endIndex } = this.range ?? {\n startIndex: void 0,\n endIndex: void 0\n };\n const range = this.calculateRange();\n if (force || startIndex !== (range == null ? void 0 : range.startIndex) || endIndex !== (range == null ? void 0 : range.endIndex)) {\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, sync);\n }\n };\n this.cleanup = () => {\n this.unsubs.filter(Boolean).forEach((d) => d());\n this.unsubs = [];\n this.scrollElement = null;\n this.targetWindow = null;\n this.observer.disconnect();\n this.elementsCache.clear();\n };\n this._didMount = () => {\n return () => {\n this.cleanup();\n };\n };\n this._willUpdate = () => {\n var _a;\n const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;\n if (this.scrollElement !== scrollElement) {\n this.cleanup();\n if (!scrollElement) {\n this.notify(false, false);\n return;\n }\n this.scrollElement = scrollElement;\n if (this.scrollElement && \"ownerDocument\" in this.scrollElement) {\n this.targetWindow = this.scrollElement.ownerDocument.defaultView;\n } else {\n this.targetWindow = ((_a = this.scrollElement) == null ? void 0 : _a.window) ?? null;\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: void 0,\n behavior: void 0\n });\n this.unsubs.push(\n this.options.observeElementRect(this, (rect) => {\n this.scrollRect = rect;\n this.notify(false, false);\n })\n );\n this.unsubs.push(\n this.options.observeElementOffset(this, (offset, isScrolling) => {\n this.scrollAdjustments = 0;\n this.scrollDirection = isScrolling ? this.getScrollOffset() < offset ? \"forward\" : \"backward\" : null;\n this.scrollOffset = offset;\n const prevIsScrolling = this.isScrolling;\n this.isScrolling = isScrolling;\n this.notify(prevIsScrolling !== isScrolling, isScrolling);\n })\n );\n }\n };\n this.getSize = () => {\n if (!this.options.enabled) {\n this.scrollRect = null;\n return 0;\n }\n this.scrollRect = this.scrollRect ?? this.options.initialRect;\n return this.scrollRect[this.options.horizontal ? \"width\" : \"height\"];\n };\n this.getScrollOffset = () => {\n if (!this.options.enabled) {\n this.scrollOffset = null;\n return 0;\n }\n this.scrollOffset = this.scrollOffset ?? (typeof this.options.initialOffset === \"function\" ? this.options.initialOffset() : this.options.initialOffset);\n return this.scrollOffset;\n };\n this.getFurthestMeasurement = (measurements, index) => {\n const furthestMeasurementsFound = /* @__PURE__ */ new Map();\n const furthestMeasurements = /* @__PURE__ */ new Map();\n for (let m = index - 1; m >= 0; m--) {\n const measurement = measurements[m];\n if (furthestMeasurementsFound.has(measurement.lane)) {\n continue;\n }\n const previousFurthestMeasurement = furthestMeasurements.get(\n measurement.lane\n );\n if (previousFurthestMeasurement == null || measurement.end > previousFurthestMeasurement.end) {\n furthestMeasurements.set(measurement.lane, measurement);\n } else if (measurement.end < previousFurthestMeasurement.end) {\n furthestMeasurementsFound.set(measurement.lane, true);\n }\n if (furthestMeasurementsFound.size === this.options.lanes) {\n break;\n }\n }\n return furthestMeasurements.size === this.options.lanes ? Array.from(furthestMeasurements.values()).sort((a, b) => {\n if (a.end === b.end) {\n return a.index - b.index;\n }\n return a.end - b.end;\n })[0] : void 0;\n };\n this.getMeasurementOptions = memo(\n () => [\n this.options.count,\n this.options.paddingStart,\n this.options.scrollMargin,\n this.options.getItemKey,\n this.options.enabled\n ],\n (count, paddingStart, scrollMargin, getItemKey, enabled) => {\n this.pendingMeasuredCacheIndexes = [];\n return {\n count,\n paddingStart,\n scrollMargin,\n getItemKey,\n enabled\n };\n },\n {\n key: false\n }\n );\n this.getMeasurements = memo(\n () => [this.getMeasurementOptions(), this.itemSizeCache],\n ({ count, paddingStart, scrollMargin, getItemKey, enabled }, itemSizeCache) => {\n var _a;\n if (!enabled) {\n this.measurementsCache = [];\n this.itemSizeCache.clear();\n return [];\n }\n if (this.measurementsCache.length === 0) {\n this.measurementsCache = this.options.initialMeasurementsCache;\n this.measurementsCache.forEach((item) => {\n this.itemSizeCache.set(item.key, item.size);\n });\n }\n const min = this.pendingMeasuredCacheIndexes.length > 0 ? Math.min(...this.pendingMeasuredCacheIndexes) : 0;\n this.pendingMeasuredCacheIndexes = [];\n const measurements = this.measurementsCache.slice(0, min);\n for (let i = min; i < count; i++) {\n let measureElement2 = (_a = this.measurementsCache[i]) == null ? void 0 : _a.measureElement;\n if (!measureElement2) {\n measureElement2 = (node) => {\n const key2 = getItemKey(i);\n const prevNode = this.elementsCache.get(key2);\n if (!node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n this.elementsCache.delete(key2);\n }\n return;\n }\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(key2, node);\n }\n if (node.isConnected) {\n this.resizeItem(\n i,\n this.options.measureElement(node, void 0, this)\n );\n }\n };\n }\n const key = getItemKey(i);\n const furthestMeasurement = this.options.lanes === 1 ? measurements[i - 1] : this.getFurthestMeasurement(measurements, i);\n const start = furthestMeasurement ? furthestMeasurement.end + this.options.gap : paddingStart + scrollMargin;\n const measuredSize = itemSizeCache.get(key);\n const size = typeof measuredSize === \"number\" ? measuredSize : this.options.estimateSize(i);\n const end = start + size;\n const lane = furthestMeasurement ? furthestMeasurement.lane : i % this.options.lanes;\n measurements[i] = {\n index: i,\n start,\n size,\n end,\n key,\n lane,\n measureElement: measureElement2\n };\n }\n this.measurementsCache = measurements;\n return measurements;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getMeasurements\",\n debug: () => this.options.debug\n }\n );\n this.calculateRange = memo(\n () => [this.getMeasurements(), this.getSize(), this.getScrollOffset()],\n (measurements, outerSize, scrollOffset) => {\n return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({\n measurements,\n outerSize,\n scrollOffset\n }) : null;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"calculateRange\",\n debug: () => this.options.debug\n }\n );\n this.getIndexes = memo(\n () => [\n this.options.rangeExtractor,\n this.calculateRange(),\n this.options.overscan,\n this.options.count\n ],\n (rangeExtractor, range, overscan, count) => {\n return range === null ? [] : rangeExtractor({\n startIndex: range.startIndex,\n endIndex: range.endIndex,\n overscan,\n count\n });\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getIndexes\",\n debug: () => this.options.debug\n }\n );\n this.indexFromElement = (node) => {\n const attributeName = this.options.indexAttribute;\n const indexStr = node.getAttribute(attributeName);\n if (!indexStr) {\n console.warn(\n `Missing attribute name '${attributeName}={index}' on measured element.`\n );\n return -1;\n }\n return parseInt(indexStr, 10);\n };\n this._measureElement = (node, entry) => {\n const i = this.indexFromElement(node);\n const item = this.getMeasurements()[i];\n if (!item || !node.isConnected) {\n this.elementsCache.forEach((cached, key) => {\n if (cached === node) {\n this.observer.unobserve(node);\n this.elementsCache.delete(key);\n }\n });\n return;\n }\n const prevNode = this.elementsCache.get(item.key);\n if (prevNode !== node) {\n if (prevNode) {\n this.observer.unobserve(prevNode);\n }\n this.observer.observe(node);\n this.elementsCache.set(item.key, node);\n }\n this.resizeItem(i, this.options.measureElement(node, entry, this));\n };\n this.resizeItem = (index, size) => {\n const item = this.getMeasurements()[index];\n if (!item) {\n return;\n }\n const itemSize = this.itemSizeCache.get(item.key) ?? item.size;\n const delta = size - itemSize;\n if (delta !== 0) {\n if (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(item, delta, this) : item.start < this.getScrollOffset() + this.scrollAdjustments) {\n if (process.env.NODE_ENV !== \"production\" && this.options.debug) {\n console.info(\"correction\", delta);\n }\n this._scrollToOffset(this.getScrollOffset(), {\n adjustments: this.scrollAdjustments += delta,\n behavior: void 0\n });\n }\n this.pendingMeasuredCacheIndexes.push(item.index);\n this.itemSizeCache = new Map(this.itemSizeCache.set(item.key, size));\n this.notify(true, false);\n }\n };\n this.measureElement = (node) => {\n if (!node) {\n return;\n }\n this._measureElement(node, void 0);\n };\n this.getVirtualItems = memo(\n () => [this.getIndexes(), this.getMeasurements()],\n (indexes, measurements) => {\n const virtualItems = [];\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k];\n const measurement = measurements[i];\n virtualItems.push(measurement);\n }\n return virtualItems;\n },\n {\n key: process.env.NODE_ENV !== \"production\" && \"getIndexes\",\n debug: () => this.options.debug\n }\n );\n this.getVirtualItemForOffset = (offset) => {\n const measurements = this.getMeasurements();\n if (measurements.length === 0) {\n return void 0;\n }\n return notUndefined(\n measurements[findNearestBinarySearch(\n 0,\n measurements.length - 1,\n (index) => notUndefined(measurements[index]).start,\n offset\n )]\n );\n };\n this.getOffsetForAlignment = (toOffset, align) => {\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (toOffset <= scrollOffset) {\n align = \"start\";\n } else if (toOffset >= scrollOffset + size) {\n align = \"end\";\n } else {\n align = \"start\";\n }\n }\n if (align === \"start\") {\n toOffset = toOffset;\n } else if (align === \"end\") {\n toOffset = toOffset - size;\n } else if (align === \"center\") {\n toOffset = toOffset - size / 2;\n }\n const scrollSizeProp = this.options.horizontal ? \"scrollWidth\" : \"scrollHeight\";\n const scrollSize = this.scrollElement ? \"document\" in this.scrollElement ? this.scrollElement.document.documentElement[scrollSizeProp] : this.scrollElement[scrollSizeProp] : 0;\n const maxOffset = scrollSize - size;\n return Math.max(Math.min(maxOffset, toOffset), 0);\n };\n this.getOffsetForIndex = (index, align = \"auto\") => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n const item = this.getMeasurements()[index];\n if (!item) {\n return void 0;\n }\n const size = this.getSize();\n const scrollOffset = this.getScrollOffset();\n if (align === \"auto\") {\n if (item.end >= scrollOffset + size - this.options.scrollPaddingEnd) {\n align = \"end\";\n } else if (item.start <= scrollOffset + this.options.scrollPaddingStart) {\n align = \"start\";\n } else {\n return [scrollOffset, align];\n }\n }\n const toOffset = align === \"end\" ? item.end + this.options.scrollPaddingEnd : item.start - this.options.scrollPaddingStart;\n return [this.getOffsetForAlignment(toOffset, align), align];\n };\n this.isDynamicMode = () => this.elementsCache.size > 0;\n this.cancelScrollToIndex = () => {\n if (this.scrollToIndexTimeoutId !== null && this.targetWindow) {\n this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId);\n this.scrollToIndexTimeoutId = null;\n }\n };\n this.scrollToOffset = (toOffset, { align = \"start\", behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getOffsetForAlignment(toOffset, align), {\n adjustments: void 0,\n behavior\n });\n };\n this.scrollToIndex = (index, { align: initialAlign = \"auto\", behavior } = {}) => {\n index = Math.max(0, Math.min(index, this.options.count - 1));\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n const offsetAndAlign = this.getOffsetForIndex(index, initialAlign);\n if (!offsetAndAlign) return;\n const [offset, align] = offsetAndAlign;\n this._scrollToOffset(offset, { adjustments: void 0, behavior });\n if (behavior !== \"smooth\" && this.isDynamicMode() && this.targetWindow) {\n this.scrollToIndexTimeoutId = this.targetWindow.setTimeout(() => {\n this.scrollToIndexTimeoutId = null;\n const elementInDOM = this.elementsCache.has(\n this.options.getItemKey(index)\n );\n if (elementInDOM) {\n const [latestOffset] = notUndefined(\n this.getOffsetForIndex(index, align)\n );\n if (!approxEqual(latestOffset, this.getScrollOffset())) {\n this.scrollToIndex(index, { align, behavior });\n }\n } else {\n this.scrollToIndex(index, { align, behavior });\n }\n });\n }\n };\n this.scrollBy = (delta, { behavior } = {}) => {\n this.cancelScrollToIndex();\n if (behavior === \"smooth\" && this.isDynamicMode()) {\n console.warn(\n \"The `smooth` scroll behavior is not fully supported with dynamic size.\"\n );\n }\n this._scrollToOffset(this.getScrollOffset() + delta, {\n adjustments: void 0,\n behavior\n });\n };\n this.getTotalSize = () => {\n var _a;\n const measurements = this.getMeasurements();\n let end;\n if (measurements.length === 0) {\n end = this.options.paddingStart;\n } else {\n end = this.options.lanes === 1 ? ((_a = measurements[measurements.length - 1]) == null ? void 0 : _a.end) ?? 0 : Math.max(\n ...measurements.slice(-this.options.lanes).map((m) => m.end)\n );\n }\n return end - this.options.scrollMargin + this.options.paddingEnd;\n };\n this._scrollToOffset = (offset, {\n adjustments,\n behavior\n }) => {\n this.options.scrollToFn(offset, { behavior, adjustments }, this);\n };\n this.measure = () => {\n var _a, _b;\n this.itemSizeCache = /* @__PURE__ */ new Map();\n (_b = (_a = this.options).onChange) == null ? void 0 : _b.call(_a, this, false);\n };\n this.setOptions(opts);\n }\n}\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n const middle = (low + high) / 2 | 0;\n const currentValue = getCurrentValue(middle);\n if (currentValue < value) {\n low = middle + 1;\n } else if (currentValue > value) {\n high = middle - 1;\n } else {\n return middle;\n }\n }\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\nfunction calculateRange({\n measurements,\n outerSize,\n scrollOffset\n}) {\n const count = measurements.length - 1;\n const getOffset = (index) => measurements[index].start;\n const startIndex = findNearestBinarySearch(0, count, getOffset, scrollOffset);\n let endIndex = startIndex;\n while (endIndex < count && measurements[endIndex].end < scrollOffset + outerSize) {\n endIndex++;\n }\n return { startIndex, endIndex };\n}\nexport {\n Virtualizer,\n approxEqual,\n debounce,\n defaultKeyExtractor,\n defaultRangeExtractor,\n elementScroll,\n measureElement,\n memo,\n notUndefined,\n observeElementOffset,\n observeElementRect,\n observeWindowOffset,\n observeWindowRect,\n windowScroll\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { observeElementRect, observeElementOffset, elementScroll, observeWindowRect, observeWindowOffset, windowScroll, Virtualizer } from \"@tanstack/virtual-core\";\nexport * from \"@tanstack/virtual-core\";\nconst useIsomorphicLayoutEffect = typeof document !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction useVirtualizerBase(options) {\n const rerender = React.useReducer(() => ({}), {})[1];\n const resolvedOptions = {\n ...options,\n onChange: (instance2, sync) => {\n var _a;\n if (sync) {\n flushSync(rerender);\n } else {\n rerender();\n }\n (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);\n }\n };\n const [instance] = React.useState(\n () => new Virtualizer(resolvedOptions)\n );\n instance.setOptions(resolvedOptions);\n React.useEffect(() => {\n return instance._didMount();\n }, []);\n useIsomorphicLayoutEffect(() => {\n return instance._willUpdate();\n });\n return instance;\n}\nfunction useVirtualizer(options) {\n return useVirtualizerBase({\n observeElementRect,\n observeElementOffset,\n scrollToFn: elementScroll,\n ...options\n });\n}\nfunction useWindowVirtualizer(options) {\n return useVirtualizerBase({\n getScrollElement: () => typeof document !== \"undefined\" ? window : null,\n observeElementRect: observeWindowRect,\n observeElementOffset: observeWindowOffset,\n scrollToFn: windowScroll,\n initialOffset: () => typeof document !== \"undefined\" ? window.scrollY : 0,\n ...options\n });\n}\nexport {\n useVirtualizer,\n useWindowVirtualizer\n};\n//# sourceMappingURL=index.js.map\n","import{useState as s}from\"react\";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';import{useLatestValue as m}from'./use-latest-value.js';function i(e,o){let[u,t]=s(e),r=m(e);return f(()=>t(r.current),[r,t,...o]),u}export{i as useComputed};\n","import{useEffect as s,useRef as f}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=f([]),r=i(u);s(()=>{let o=[...e.current];for(let[n,a]of t.entries())if(e.current[n]!==a){let l=r(t,o);return e.current=t,l}},[r,...t])}export{m as useWatch};\n","import{onDocumentReady as d}from'./document-ready.js';let t=[];d(()=>{function e(n){n.target instanceof HTMLElement&&n.target!==document.body&&t[0]!==n.target&&(t.unshift(n.target),t=t.filter(r=>r!=null&&r.isConnected),t.splice(10))}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});export{t as history};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","import{useVirtualizer as Ee}from\"@tanstack/react-virtual\";import w,{createContext as ie,createRef as Pe,Fragment as me,useCallback as Ie,useContext as ue,useEffect as Ve,useMemo as U,useReducer as _e,useRef as B,useState as Fe}from\"react\";import{useComputed as pe}from'../../hooks/use-computed.js';import{useControllable as Le}from'../../hooks/use-controllable.js';import{useDisposables as se}from'../../hooks/use-disposables.js';import{useEvent as m}from'../../hooks/use-event.js';import{useId as Q}from'../../hooks/use-id.js';import{useIsoMorphicEffect as H}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as De}from'../../hooks/use-latest-value.js';import{useOutsideClick as Me}from'../../hooks/use-outside-click.js';import{useOwnerDocument as he}from'../../hooks/use-owner.js';import{useResolveButtonType as Be}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as Z}from'../../hooks/use-sync-refs.js';import{useTrackedPointer as ke}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as we}from'../../hooks/use-tree-walker.js';import{useWatch as Te}from'../../hooks/use-watch.js';import{Features as Ue,Hidden as He}from'../../internal/hidden.js';import{OpenClosedProvider as Ne,State as re,useOpenClosed as Ge}from'../../internal/open-closed.js';import{history as xe}from'../../utils/active-element-history.js';import{isDisabledReactIssue7711 as Xe}from'../../utils/bugs.js';import{calculateActiveIndex as ge,Focus as y}from'../../utils/calculate-active-index.js';import{disposables as ve}from'../../utils/disposables.js';import{sortByDomNode as je}from'../../utils/focus-management.js';import{objectToFormEntries as Je}from'../../utils/form.js';import{match as W}from'../../utils/match.js';import{isMobile as Ke}from'../../utils/platform.js';import{compact as We,Features as Oe,forwardRefWithAs as $,render as q}from'../../utils/render.js';import{Keys as M}from'../keyboard.js';var $e=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))($e||{}),qe=(o=>(o[o.Single=0]=\"Single\",o[o.Multi=1]=\"Multi\",o))(qe||{}),ze=(a=>(a[a.Pointer=0]=\"Pointer\",a[a.Focus=1]=\"Focus\",a[a.Other=2]=\"Other\",a))(ze||{}),Ye=(e=>(e[e.OpenCombobox=0]=\"OpenCombobox\",e[e.CloseCombobox=1]=\"CloseCombobox\",e[e.GoToOption=2]=\"GoToOption\",e[e.RegisterOption=3]=\"RegisterOption\",e[e.UnregisterOption=4]=\"UnregisterOption\",e[e.RegisterLabel=5]=\"RegisterLabel\",e[e.SetActivationTrigger=6]=\"SetActivationTrigger\",e[e.UpdateVirtualOptions=7]=\"UpdateVirtualOptions\",e))(Ye||{});function de(t,r=o=>o){let o=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,a=r(t.options.slice()),i=a.length>0&&a[0].dataRef.current.order!==null?a.sort((p,c)=>p.dataRef.current.order-c.dataRef.current.order):je(a,p=>p.dataRef.current.domRef.current),u=o?i.indexOf(o):null;return u===-1&&(u=null),{options:i,activeOptionIndex:u}}let Qe={[1](t){var r;return(r=t.dataRef.current)!=null&&r.disabled||t.comboboxState===1?t:{...t,activeOptionIndex:null,comboboxState:1}},[0](t){var r,o;if((r=t.dataRef.current)!=null&&r.disabled||t.comboboxState===0)return t;if((o=t.dataRef.current)!=null&&o.value){let a=t.dataRef.current.calculateIndex(t.dataRef.current.value);if(a!==-1)return{...t,activeOptionIndex:a,comboboxState:0}}return{...t,comboboxState:0}},[2](t,r){var u,p,c,e,l;if((u=t.dataRef.current)!=null&&u.disabled||(p=t.dataRef.current)!=null&&p.optionsRef.current&&!((c=t.dataRef.current)!=null&&c.optionsPropsRef.current.static)&&t.comboboxState===1)return t;if(t.virtual){let T=r.focus===y.Specific?r.idx:ge(r,{resolveItems:()=>t.virtual.options,resolveActiveIndex:()=>{var f,v;return(v=(f=t.activeOptionIndex)!=null?f:t.virtual.options.findIndex(S=>!t.virtual.disabled(S)))!=null?v:null},resolveDisabled:t.virtual.disabled,resolveId(){throw new Error(\"Function not implemented.\")}}),g=(e=r.trigger)!=null?e:2;return t.activeOptionIndex===T&&t.activationTrigger===g?t:{...t,activeOptionIndex:T,activationTrigger:g}}let o=de(t);if(o.activeOptionIndex===null){let T=o.options.findIndex(g=>!g.dataRef.current.disabled);T!==-1&&(o.activeOptionIndex=T)}let a=r.focus===y.Specific?r.idx:ge(r,{resolveItems:()=>o.options,resolveActiveIndex:()=>o.activeOptionIndex,resolveId:T=>T.id,resolveDisabled:T=>T.dataRef.current.disabled}),i=(l=r.trigger)!=null?l:2;return t.activeOptionIndex===a&&t.activationTrigger===i?t:{...t,...o,activeOptionIndex:a,activationTrigger:i}},[3]:(t,r)=>{var u,p,c;if((u=t.dataRef.current)!=null&&u.virtual)return{...t,options:[...t.options,r.payload]};let o=r.payload,a=de(t,e=>(e.push(o),e));t.activeOptionIndex===null&&(p=t.dataRef.current)!=null&&p.isSelected(r.payload.dataRef.current.value)&&(a.activeOptionIndex=a.options.indexOf(o));let i={...t,...a,activationTrigger:2};return(c=t.dataRef.current)!=null&&c.__demoMode&&t.dataRef.current.value===void 0&&(i.activeOptionIndex=0),i},[4]:(t,r)=>{var a;if((a=t.dataRef.current)!=null&&a.virtual)return{...t,options:t.options.filter(i=>i.id!==r.id)};let o=de(t,i=>{let u=i.findIndex(p=>p.id===r.id);return u!==-1&&i.splice(u,1),i});return{...t,...o,activationTrigger:2}},[5]:(t,r)=>t.labelId===r.id?t:{...t,labelId:r.id},[6]:(t,r)=>t.activationTrigger===r.trigger?t:{...t,activationTrigger:r.trigger},[7]:(t,r)=>{var a;if(((a=t.virtual)==null?void 0:a.options)===r.options)return t;let o=t.activeOptionIndex;if(t.activeOptionIndex!==null){let i=r.options.indexOf(t.virtual.options[t.activeOptionIndex]);i!==-1?o=i:o=null}return{...t,activeOptionIndex:o,virtual:Object.assign({},t.virtual,{options:r.options})}}},be=ie(null);be.displayName=\"ComboboxActionsContext\";function ee(t){let r=ue(be);if(r===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,ee),o}return r}let Ce=ie(null);function Ze(t){var c;let r=j(\"VirtualProvider\"),[o,a]=U(()=>{let e=r.optionsRef.current;if(!e)return[0,0];let l=window.getComputedStyle(e);return[parseFloat(l.paddingBlockStart||l.paddingTop),parseFloat(l.paddingBlockEnd||l.paddingBottom)]},[r.optionsRef.current]),i=Ee({scrollPaddingStart:o,scrollPaddingEnd:a,count:r.virtual.options.length,estimateSize(){return 40},getScrollElement(){var e;return(e=r.optionsRef.current)!=null?e:null},overscan:12}),[u,p]=Fe(0);return H(()=>{p(e=>e+1)},[(c=r.virtual)==null?void 0:c.options]),w.createElement(Ce.Provider,{value:i},w.createElement(\"div\",{style:{position:\"relative\",width:\"100%\",height:`${i.getTotalSize()}px`},ref:e=>{if(e){if(typeof process!=\"undefined\"&&process.env.JEST_WORKER_ID!==void 0||r.activationTrigger===0)return;r.activeOptionIndex!==null&&r.virtual.options.length>r.activeOptionIndex&&i.scrollToIndex(r.activeOptionIndex)}}},i.getVirtualItems().map(e=>{var l;return w.createElement(me,{key:e.key},w.cloneElement((l=t.children)==null?void 0:l.call(t,{option:r.virtual.options[e.index],open:r.comboboxState===0}),{key:`${u}-${e.key}`,\"data-index\":e.index,\"aria-setsize\":r.virtual.options.length,\"aria-posinset\":e.index+1,style:{position:\"absolute\",top:0,left:0,transform:`translateY(${e.start}px)`,overflowAnchor:\"none\"}}))})))}let ce=ie(null);ce.displayName=\"ComboboxDataContext\";function j(t){let r=ue(ce);if(r===null){let o=new Error(`<${t} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,j),o}return r}function et(t,r){return W(r.type,Qe,t,r)}let tt=me;function ot(t,r){var fe;let{value:o,defaultValue:a,onChange:i,form:u,name:p,by:c=null,disabled:e=!1,__demoMode:l=!1,nullable:T=!1,multiple:g=!1,immediate:f=!1,virtual:v=null,...S}=t,R=!1,s=null,[I=g?[]:void 0,V]=Le(o,i,a),[_,E]=_e(et,{dataRef:Pe(),comboboxState:l?0:1,options:[],virtual:s?{options:s.options,disabled:(fe=s.disabled)!=null?fe:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,labelId:null}),k=B(!1),J=B({static:!1,hold:!1}),K=B(null),z=B(null),te=B(null),X=B(null),x=m(typeof c==\"string\"?(d,b)=>{let P=c;return(d==null?void 0:d[P])===(b==null?void 0:b[P])}:c!=null?c:(d,b)=>d===b),O=m(d=>s?c===null?s.options.indexOf(d):s.options.findIndex(b=>x(b,d)):_.options.findIndex(b=>x(b.dataRef.current.value,d))),L=Ie(d=>W(n.mode,{[1]:()=>I.some(b=>x(b,d)),[0]:()=>x(I,d)}),[I]),oe=m(d=>_.activeOptionIndex===O(d)),n=U(()=>({..._,immediate:R,optionsPropsRef:J,labelRef:K,inputRef:z,buttonRef:te,optionsRef:X,value:I,defaultValue:a,disabled:e,mode:g?1:0,virtual:_.virtual,get activeOptionIndex(){if(k.current&&_.activeOptionIndex===null&&(s?s.options.length>0:_.options.length>0)){if(s){let b=s.options.findIndex(P=>{var G,Y;return!((Y=(G=s==null?void 0:s.disabled)==null?void 0:G.call(s,P))!=null&&Y)});if(b!==-1)return b}let d=_.options.findIndex(b=>!b.dataRef.current.disabled);if(d!==-1)return d}return _.activeOptionIndex},calculateIndex:O,compare:x,isSelected:L,isActive:oe,nullable:T,__demoMode:l}),[I,a,e,g,T,l,_,s]);H(()=>{s&&E({type:7,options:s.options})},[s,s==null?void 0:s.options]),H(()=>{_.dataRef.current=n},[n]),Me([n.buttonRef,n.inputRef,n.optionsRef],()=>le.closeCombobox(),n.comboboxState===0);let F=U(()=>{var d,b,P;return{open:n.comboboxState===0,disabled:e,activeIndex:n.activeOptionIndex,activeOption:n.activeOptionIndex===null?null:n.virtual?n.virtual.options[(d=n.activeOptionIndex)!=null?d:0]:(P=(b=n.options[n.activeOptionIndex])==null?void 0:b.dataRef.current.value)!=null?P:null,value:I}},[n,e,I]),A=m(()=>{if(n.activeOptionIndex!==null){if(n.virtual)ae(n.virtual.options[n.activeOptionIndex]);else{let{dataRef:d}=n.options[n.activeOptionIndex];ae(d.current.value)}le.goToOption(y.Specific,n.activeOptionIndex)}}),h=m(()=>{E({type:0}),k.current=!0}),C=m(()=>{E({type:1}),k.current=!1}),D=m((d,b,P)=>(k.current=!1,d===y.Specific?E({type:2,focus:y.Specific,idx:b,trigger:P}):E({type:2,focus:d,trigger:P}))),N=m((d,b)=>(E({type:3,payload:{id:d,dataRef:b}}),()=>{n.isActive(b.current.value)&&(k.current=!0),E({type:4,id:d})})),ye=m(d=>(E({type:5,id:d}),()=>E({type:5,id:null}))),ae=m(d=>W(n.mode,{[0](){return V==null?void 0:V(d)},[1](){let b=n.value.slice(),P=b.findIndex(G=>x(G,d));return P===-1?b.push(d):b.splice(P,1),V==null?void 0:V(b)}})),Re=m(d=>{E({type:6,trigger:d})}),le=U(()=>({onChange:ae,registerOption:N,registerLabel:ye,goToOption:D,closeCombobox:C,openCombobox:h,setActivationTrigger:Re,selectActiveOption:A}),[]),Ae=r===null?{}:{ref:r},ne=B(null),Se=se();return Ve(()=>{ne.current&&a!==void 0&&Se.addEventListener(ne.current,\"reset\",()=>{V==null||V(a)})},[ne,V]),w.createElement(be.Provider,{value:le},w.createElement(ce.Provider,{value:n},w.createElement(Ne,{value:W(n.comboboxState,{[0]:re.Open,[1]:re.Closed})},p!=null&&I!=null&&Je({[p]:I}).map(([d,b],P)=>w.createElement(He,{features:Ue.Hidden,ref:P===0?G=>{var Y;ne.current=(Y=G==null?void 0:G.closest(\"form\"))!=null?Y:null}:void 0,...We({key:d,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:u,disabled:e,name:d,value:b})})),q({ourProps:Ae,theirProps:S,slot:F,defaultTag:tt,name:\"Combobox\"}))))}let nt=\"input\";function rt(t,r){var X,x,O,L,oe;let o=Q(),{id:a=`headlessui-combobox-input-${o}`,onChange:i,displayValue:u,type:p=\"text\",...c}=t,e=j(\"Combobox.Input\"),l=ee(\"Combobox.Input\"),T=Z(e.inputRef,r),g=he(e.inputRef),f=B(!1),v=se(),S=m(()=>{l.onChange(null),e.optionsRef.current&&(e.optionsRef.current.scrollTop=0),l.goToOption(y.Nothing)}),R=function(){var n;return typeof u==\"function\"&&e.value!==void 0?(n=u(e.value))!=null?n:\"\":typeof e.value==\"string\"?e.value:\"\"}();Te(([n,F],[A,h])=>{if(f.current)return;let C=e.inputRef.current;C&&((h===0&&F===1||n!==A)&&(C.value=n),requestAnimationFrame(()=>{if(f.current||!C||(g==null?void 0:g.activeElement)!==C)return;let{selectionStart:D,selectionEnd:N}=C;Math.abs((N!=null?N:0)-(D!=null?D:0))===0&&D===0&&C.setSelectionRange(C.value.length,C.value.length)}))},[R,e.comboboxState,g]),Te(([n],[F])=>{if(n===0&&F===1){if(f.current)return;let A=e.inputRef.current;if(!A)return;let h=A.value,{selectionStart:C,selectionEnd:D,selectionDirection:N}=A;A.value=\"\",A.value=h,N!==null?A.setSelectionRange(C,D,N):A.setSelectionRange(C,D)}},[e.comboboxState]);let s=B(!1),I=m(()=>{s.current=!0}),V=m(()=>{v.nextFrame(()=>{s.current=!1})}),_=m(n=>{switch(f.current=!0,n.key){case M.Enter:if(f.current=!1,e.comboboxState!==0||s.current)return;if(n.preventDefault(),n.stopPropagation(),e.activeOptionIndex===null){l.closeCombobox();return}l.selectActiveOption(),e.mode===0&&l.closeCombobox();break;case M.ArrowDown:return f.current=!1,n.preventDefault(),n.stopPropagation(),W(e.comboboxState,{[0]:()=>l.goToOption(y.Next),[1]:()=>l.openCombobox()});case M.ArrowUp:return f.current=!1,n.preventDefault(),n.stopPropagation(),W(e.comboboxState,{[0]:()=>l.goToOption(y.Previous),[1]:()=>{l.openCombobox(),v.nextFrame(()=>{e.value||l.goToOption(y.Last)})}});case M.Home:if(n.shiftKey)break;return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.First);case M.PageUp:return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.First);case M.End:if(n.shiftKey)break;return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.Last);case M.PageDown:return f.current=!1,n.preventDefault(),n.stopPropagation(),l.goToOption(y.Last);case M.Escape:return f.current=!1,e.comboboxState!==0?void 0:(n.preventDefault(),e.optionsRef.current&&!e.optionsPropsRef.current.static&&n.stopPropagation(),e.nullable&&e.mode===0&&e.value===null&&S(),l.closeCombobox());case M.Tab:if(f.current=!1,e.comboboxState!==0)return;e.mode===0&&e.activationTrigger!==1&&l.selectActiveOption(),l.closeCombobox();break}}),E=m(n=>{i==null||i(n),e.nullable&&e.mode===0&&n.target.value===\"\"&&S(),l.openCombobox()}),k=m(n=>{var A,h,C;let F=(A=n.relatedTarget)!=null?A:xe.find(D=>D!==n.currentTarget);if(f.current=!1,!((h=e.optionsRef.current)!=null&&h.contains(F))&&!((C=e.buttonRef.current)!=null&&C.contains(F))&&e.comboboxState===0)return n.preventDefault(),e.mode===0&&(e.nullable&&e.value===null?S():e.activationTrigger!==1&&l.selectActiveOption()),l.closeCombobox()}),J=m(n=>{var A,h,C;let F=(A=n.relatedTarget)!=null?A:xe.find(D=>D!==n.currentTarget);(h=e.buttonRef.current)!=null&&h.contains(F)||(C=e.optionsRef.current)!=null&&C.contains(F)||e.disabled||e.immediate&&e.comboboxState!==0&&(l.openCombobox(),v.nextFrame(()=>{l.setActivationTrigger(1)}))}),K=pe(()=>{if(e.labelId)return[e.labelId].join(\" \")},[e.labelId]),z=U(()=>({open:e.comboboxState===0,disabled:e.disabled}),[e]),te={ref:T,id:a,role:\"combobox\",type:p,\"aria-controls\":(X=e.optionsRef.current)==null?void 0:X.id,\"aria-expanded\":e.comboboxState===0,\"aria-activedescendant\":e.activeOptionIndex===null?void 0:e.virtual?(x=e.options.find(n=>{var F;return!((F=e.virtual)!=null&&F.disabled(n.dataRef.current.value))&&e.compare(n.dataRef.current.value,e.virtual.options[e.activeOptionIndex])}))==null?void 0:x.id:(O=e.options[e.activeOptionIndex])==null?void 0:O.id,\"aria-labelledby\":K,\"aria-autocomplete\":\"list\",defaultValue:(oe=(L=t.defaultValue)!=null?L:e.defaultValue!==void 0?u==null?void 0:u(e.defaultValue):null)!=null?oe:e.defaultValue,disabled:e.disabled,onCompositionStart:I,onCompositionEnd:V,onKeyDown:_,onChange:E,onFocus:J,onBlur:k};return q({ourProps:te,theirProps:c,slot:z,defaultTag:nt,name:\"Combobox.Input\"})}let at=\"button\";function lt(t,r){var S;let o=j(\"Combobox.Button\"),a=ee(\"Combobox.Button\"),i=Z(o.buttonRef,r),u=Q(),{id:p=`headlessui-combobox-button-${u}`,...c}=t,e=se(),l=m(R=>{switch(R.key){case M.ArrowDown:return R.preventDefault(),R.stopPropagation(),o.comboboxState===1&&a.openCombobox(),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})});case M.ArrowUp:return R.preventDefault(),R.stopPropagation(),o.comboboxState===1&&(a.openCombobox(),e.nextFrame(()=>{o.value||a.goToOption(y.Last)})),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})});case M.Escape:return o.comboboxState!==0?void 0:(R.preventDefault(),o.optionsRef.current&&!o.optionsPropsRef.current.static&&R.stopPropagation(),a.closeCombobox(),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})}));default:return}}),T=m(R=>{if(Xe(R.currentTarget))return R.preventDefault();o.comboboxState===0?a.closeCombobox():(R.preventDefault(),a.openCombobox()),e.nextFrame(()=>{var s;return(s=o.inputRef.current)==null?void 0:s.focus({preventScroll:!0})})}),g=pe(()=>{if(o.labelId)return[o.labelId,p].join(\" \")},[o.labelId,p]),f=U(()=>({open:o.comboboxState===0,disabled:o.disabled,value:o.value}),[o]),v={ref:i,id:p,type:Be(t,o.buttonRef),tabIndex:-1,\"aria-haspopup\":\"listbox\",\"aria-controls\":(S=o.optionsRef.current)==null?void 0:S.id,\"aria-expanded\":o.comboboxState===0,\"aria-labelledby\":g,disabled:o.disabled,onClick:T,onKeyDown:l};return q({ourProps:v,theirProps:c,slot:f,defaultTag:at,name:\"Combobox.Button\"})}let it=\"label\";function ut(t,r){let o=Q(),{id:a=`headlessui-combobox-label-${o}`,...i}=t,u=j(\"Combobox.Label\"),p=ee(\"Combobox.Label\"),c=Z(u.labelRef,r);H(()=>p.registerLabel(a),[a]);let e=m(()=>{var g;return(g=u.inputRef.current)==null?void 0:g.focus({preventScroll:!0})}),l=U(()=>({open:u.comboboxState===0,disabled:u.disabled}),[u]);return q({ourProps:{ref:c,id:a,onClick:e},theirProps:i,slot:l,defaultTag:it,name:\"Combobox.Label\"})}let pt=\"ul\",st=Oe.RenderStrategy|Oe.Static;function dt(t,r){let o=Q(),{id:a=`headlessui-combobox-options-${o}`,hold:i=!1,...u}=t,p=j(\"Combobox.Options\"),c=Z(p.optionsRef,r),e=Ge(),l=(()=>e!==null?(e&re.Open)===re.Open:p.comboboxState===0)();H(()=>{var v;p.optionsPropsRef.current.static=(v=t.static)!=null?v:!1},[p.optionsPropsRef,t.static]),H(()=>{p.optionsPropsRef.current.hold=i},[p.optionsPropsRef,i]),we({container:p.optionsRef.current,enabled:p.comboboxState===0,accept(v){return v.getAttribute(\"role\")===\"option\"?NodeFilter.FILTER_REJECT:v.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(v){v.setAttribute(\"role\",\"none\")}});let T=pe(()=>{var v,S;return(S=p.labelId)!=null?S:(v=p.buttonRef.current)==null?void 0:v.id},[p.labelId,p.buttonRef.current]),g=U(()=>({open:p.comboboxState===0,option:void 0}),[p]),f={\"aria-labelledby\":T,role:\"listbox\",\"aria-multiselectable\":p.mode===1?!0:void 0,id:a,ref:c};return p.virtual&&p.comboboxState===0&&Object.assign(u,{children:w.createElement(Ze,null,u.children)}),q({ourProps:f,theirProps:u,slot:g,defaultTag:pt,features:st,visible:l,name:\"Combobox.Options\"})}let bt=\"li\";function ct(t,r){var X;let o=Q(),{id:a=`headlessui-combobox-option-${o}`,disabled:i=!1,value:u,order:p=null,...c}=t,e=j(\"Combobox.Option\"),l=ee(\"Combobox.Option\"),T=e.virtual?e.activeOptionIndex===e.calculateIndex(u):e.activeOptionIndex===null?!1:((X=e.options[e.activeOptionIndex])==null?void 0:X.id)===a,g=e.isSelected(u),f=B(null),v=De({disabled:i,value:u,domRef:f,order:p}),S=ue(Ce),R=Z(r,f,S?S.measureElement:null),s=m(()=>l.onChange(u));H(()=>l.registerOption(a,v),[v,a]);let I=B(!(e.virtual||e.__demoMode));H(()=>{if(!e.virtual||!e.__demoMode)return;let x=ve();return x.requestAnimationFrame(()=>{I.current=!0}),x.dispose},[e.virtual,e.__demoMode]),H(()=>{if(!I.current||e.comboboxState!==0||!T||e.activationTrigger===0)return;let x=ve();return x.requestAnimationFrame(()=>{var O,L;(L=(O=f.current)==null?void 0:O.scrollIntoView)==null||L.call(O,{block:\"nearest\"})}),x.dispose},[f,T,e.comboboxState,e.activationTrigger,e.activeOptionIndex]);let V=m(x=>{var O;if(i||(O=e.virtual)!=null&&O.disabled(u))return x.preventDefault();s(),Ke()||requestAnimationFrame(()=>{var L;return(L=e.inputRef.current)==null?void 0:L.focus({preventScroll:!0})}),e.mode===0&&requestAnimationFrame(()=>l.closeCombobox())}),_=m(()=>{var O;if(i||(O=e.virtual)!=null&&O.disabled(u))return l.goToOption(y.Nothing);let x=e.calculateIndex(u);l.goToOption(y.Specific,x)}),E=ke(),k=m(x=>E.update(x)),J=m(x=>{var L;if(!E.wasMoved(x)||i||(L=e.virtual)!=null&&L.disabled(u)||T)return;let O=e.calculateIndex(u);l.goToOption(y.Specific,O,0)}),K=m(x=>{var O;E.wasMoved(x)&&(i||(O=e.virtual)!=null&&O.disabled(u)||T&&(e.optionsPropsRef.current.hold||l.goToOption(y.Nothing)))}),z=U(()=>({active:T,selected:g,disabled:i}),[T,g,i]);return q({ourProps:{id:a,ref:R,role:\"option\",tabIndex:i===!0?void 0:-1,\"aria-disabled\":i===!0?!0:void 0,\"aria-selected\":g,disabled:void 0,onClick:V,onFocus:_,onPointerEnter:k,onMouseEnter:k,onPointerMove:J,onMouseMove:J,onPointerLeave:K,onMouseLeave:K},theirProps:c,slot:z,defaultTag:bt,name:\"Combobox.Option\"})}let ft=$(ot),mt=$(lt),Tt=$(rt),xt=$(ut),gt=$(dt),vt=$(ct),qt=Object.assign(ft,{Input:Tt,Button:mt,Label:xt,Options:gt,Option:vt});export{qt as Combobox};\n","let a=/([\\u2700-\\u27BF]|[\\uE000-\\uF8FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDFFF]|[\\u2011-\\u26FF]|\\uD83E[\\uDD10-\\uDDFF])/g;function o(e){var r,i;let n=(r=e.innerText)!=null?r:\"\",t=e.cloneNode(!0);if(!(t instanceof HTMLElement))return n;let u=!1;for(let f of t.querySelectorAll('[hidden],[aria-hidden],[role=\"img\"]'))f.remove(),u=!0;let l=u?(i=t.innerText)!=null?i:\"\":n;return a.test(l)&&(l=l.replace(a,\"\")),l}function g(e){let n=e.getAttribute(\"aria-label\");if(typeof n==\"string\")return n.trim();let t=e.getAttribute(\"aria-labelledby\");if(t){let u=t.split(\" \").map(l=>{let r=document.getElementById(l);if(r){let i=r.getAttribute(\"aria-label\");return typeof i==\"string\"?i.trim():o(r).trim()}return null}).filter(Boolean);if(u.length>0)return u.join(\", \")}return o(e).trim()}export{g as getTextValue};\n","import{useRef as l}from\"react\";import{getTextValue as i}from'../utils/get-text-value.js';import{useEvent as o}from'./use-event.js';function s(c){let t=l(\"\"),r=l(\"\");return o(()=>{let e=c.current;if(!e)return\"\";let u=e.innerText;if(t.current===u)return r.current;let n=i(e).trim().toLowerCase();return t.current=u,r.current=n,n})}export{s as useTextValue};\n","import G,{createContext as X,createRef as N,Fragment as H,useContext as $,useEffect as q,useMemo as v,useReducer as z,useRef as K}from\"react\";import{useDisposables as j}from'../../hooks/use-disposables.js';import{useEvent as d}from'../../hooks/use-event.js';import{useId as O}from'../../hooks/use-id.js';import{useIsoMorphicEffect as L}from'../../hooks/use-iso-morphic-effect.js';import{useOutsideClick as Y}from'../../hooks/use-outside-click.js';import{useOwnerDocument as Z}from'../../hooks/use-owner.js';import{useResolveButtonType as ee}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as h}from'../../hooks/use-sync-refs.js';import{useTextValue as te}from'../../hooks/use-text-value.js';import{useTrackedPointer as ne}from'../../hooks/use-tracked-pointer.js';import{useTreeWalker as re}from'../../hooks/use-tree-walker.js';import{OpenClosedProvider as oe,State as D,useOpenClosed as ae}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as ie}from'../../utils/bugs.js';import{calculateActiveIndex as se,Focus as y}from'../../utils/calculate-active-index.js';import{disposables as k}from'../../utils/disposables.js';import{Focus as Q,FocusableMode as ue,focusFrom as le,isFocusableElement as pe,restoreFocusIfNecessary as W,sortByDomNode as ce}from'../../utils/focus-management.js';import{match as V}from'../../utils/match.js';import{Features as J,forwardRefWithAs as F,render as _}from'../../utils/render.js';import{Keys as c}from'../keyboard.js';var me=(r=>(r[r.Open=0]=\"Open\",r[r.Closed=1]=\"Closed\",r))(me||{}),de=(r=>(r[r.Pointer=0]=\"Pointer\",r[r.Other=1]=\"Other\",r))(de||{}),fe=(a=>(a[a.OpenMenu=0]=\"OpenMenu\",a[a.CloseMenu=1]=\"CloseMenu\",a[a.GoToItem=2]=\"GoToItem\",a[a.Search=3]=\"Search\",a[a.ClearSearch=4]=\"ClearSearch\",a[a.RegisterItem=5]=\"RegisterItem\",a[a.UnregisterItem=6]=\"UnregisterItem\",a))(fe||{});function w(e,u=r=>r){let r=e.activeItemIndex!==null?e.items[e.activeItemIndex]:null,s=ce(u(e.items.slice()),t=>t.dataRef.current.domRef.current),i=r?s.indexOf(r):null;return i===-1&&(i=null),{items:s,activeItemIndex:i}}let Te={[1](e){return e.menuState===1?e:{...e,activeItemIndex:null,menuState:1}},[0](e){return e.menuState===0?e:{...e,__demoMode:!1,menuState:0}},[2]:(e,u)=>{var i;let r=w(e),s=se(u,{resolveItems:()=>r.items,resolveActiveIndex:()=>r.activeItemIndex,resolveId:t=>t.id,resolveDisabled:t=>t.dataRef.current.disabled});return{...e,...r,searchQuery:\"\",activeItemIndex:s,activationTrigger:(i=u.trigger)!=null?i:1}},[3]:(e,u)=>{let s=e.searchQuery!==\"\"?0:1,i=e.searchQuery+u.value.toLowerCase(),o=(e.activeItemIndex!==null?e.items.slice(e.activeItemIndex+s).concat(e.items.slice(0,e.activeItemIndex+s)):e.items).find(l=>{var m;return((m=l.dataRef.current.textValue)==null?void 0:m.startsWith(i))&&!l.dataRef.current.disabled}),a=o?e.items.indexOf(o):-1;return a===-1||a===e.activeItemIndex?{...e,searchQuery:i}:{...e,searchQuery:i,activeItemIndex:a,activationTrigger:1}},[4](e){return e.searchQuery===\"\"?e:{...e,searchQuery:\"\",searchActiveItemIndex:null}},[5]:(e,u)=>{let r=w(e,s=>[...s,{id:u.id,dataRef:u.dataRef}]);return{...e,...r}},[6]:(e,u)=>{let r=w(e,s=>{let i=s.findIndex(t=>t.id===u.id);return i!==-1&&s.splice(i,1),s});return{...e,...r,activationTrigger:1}}},U=X(null);U.displayName=\"MenuContext\";function C(e){let u=$(U);if(u===null){let r=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,C),r}return u}function ye(e,u){return V(u.type,Te,e,u)}let Ie=H;function Me(e,u){let{__demoMode:r=!1,...s}=e,i=z(ye,{__demoMode:r,menuState:r?0:1,buttonRef:N(),itemsRef:N(),items:[],searchQuery:\"\",activeItemIndex:null,activationTrigger:1}),[{menuState:t,itemsRef:o,buttonRef:a},l]=i,m=h(u);Y([a,o],(g,R)=>{var p;l({type:1}),pe(R,ue.Loose)||(g.preventDefault(),(p=a.current)==null||p.focus())},t===0);let I=d(()=>{l({type:1})}),A=v(()=>({open:t===0,close:I}),[t,I]),f={ref:m};return G.createElement(U.Provider,{value:i},G.createElement(oe,{value:V(t,{[0]:D.Open,[1]:D.Closed})},_({ourProps:f,theirProps:s,slot:A,defaultTag:Ie,name:\"Menu\"})))}let ge=\"button\";function Re(e,u){var R;let r=O(),{id:s=`headlessui-menu-button-${r}`,...i}=e,[t,o]=C(\"Menu.Button\"),a=h(t.buttonRef,u),l=j(),m=d(p=>{switch(p.key){case c.Space:case c.Enter:case c.ArrowDown:p.preventDefault(),p.stopPropagation(),o({type:0}),l.nextFrame(()=>o({type:2,focus:y.First}));break;case c.ArrowUp:p.preventDefault(),p.stopPropagation(),o({type:0}),l.nextFrame(()=>o({type:2,focus:y.Last}));break}}),I=d(p=>{switch(p.key){case c.Space:p.preventDefault();break}}),A=d(p=>{if(ie(p.currentTarget))return p.preventDefault();e.disabled||(t.menuState===0?(o({type:1}),l.nextFrame(()=>{var M;return(M=t.buttonRef.current)==null?void 0:M.focus({preventScroll:!0})})):(p.preventDefault(),o({type:0})))}),f=v(()=>({open:t.menuState===0}),[t]),g={ref:a,id:s,type:ee(e,t.buttonRef),\"aria-haspopup\":\"menu\",\"aria-controls\":(R=t.itemsRef.current)==null?void 0:R.id,\"aria-expanded\":t.menuState===0,onKeyDown:m,onKeyUp:I,onClick:A};return _({ourProps:g,theirProps:i,slot:f,defaultTag:ge,name:\"Menu.Button\"})}let Ae=\"div\",be=J.RenderStrategy|J.Static;function Ee(e,u){var M,b;let r=O(),{id:s=`headlessui-menu-items-${r}`,...i}=e,[t,o]=C(\"Menu.Items\"),a=h(t.itemsRef,u),l=Z(t.itemsRef),m=j(),I=ae(),A=(()=>I!==null?(I&D.Open)===D.Open:t.menuState===0)();q(()=>{let n=t.itemsRef.current;n&&t.menuState===0&&n!==(l==null?void 0:l.activeElement)&&n.focus({preventScroll:!0})},[t.menuState,t.itemsRef,l]),re({container:t.itemsRef.current,enabled:t.menuState===0,accept(n){return n.getAttribute(\"role\")===\"menuitem\"?NodeFilter.FILTER_REJECT:n.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(n){n.setAttribute(\"role\",\"none\")}});let f=d(n=>{var E,x;switch(m.dispose(),n.key){case c.Space:if(t.searchQuery!==\"\")return n.preventDefault(),n.stopPropagation(),o({type:3,value:n.key});case c.Enter:if(n.preventDefault(),n.stopPropagation(),o({type:1}),t.activeItemIndex!==null){let{dataRef:S}=t.items[t.activeItemIndex];(x=(E=S.current)==null?void 0:E.domRef.current)==null||x.click()}W(t.buttonRef.current);break;case c.ArrowDown:return n.preventDefault(),n.stopPropagation(),o({type:2,focus:y.Next});case c.ArrowUp:return n.preventDefault(),n.stopPropagation(),o({type:2,focus:y.Previous});case c.Home:case c.PageUp:return n.preventDefault(),n.stopPropagation(),o({type:2,focus:y.First});case c.End:case c.PageDown:return n.preventDefault(),n.stopPropagation(),o({type:2,focus:y.Last});case c.Escape:n.preventDefault(),n.stopPropagation(),o({type:1}),k().nextFrame(()=>{var S;return(S=t.buttonRef.current)==null?void 0:S.focus({preventScroll:!0})});break;case c.Tab:n.preventDefault(),n.stopPropagation(),o({type:1}),k().nextFrame(()=>{le(t.buttonRef.current,n.shiftKey?Q.Previous:Q.Next)});break;default:n.key.length===1&&(o({type:3,value:n.key}),m.setTimeout(()=>o({type:4}),350));break}}),g=d(n=>{switch(n.key){case c.Space:n.preventDefault();break}}),R=v(()=>({open:t.menuState===0}),[t]),p={\"aria-activedescendant\":t.activeItemIndex===null||(M=t.items[t.activeItemIndex])==null?void 0:M.id,\"aria-labelledby\":(b=t.buttonRef.current)==null?void 0:b.id,id:s,onKeyDown:f,onKeyUp:g,role:\"menu\",tabIndex:0,ref:a};return _({ourProps:p,theirProps:i,slot:R,defaultTag:Ae,features:be,visible:A,name:\"Menu.Items\"})}let Se=H;function xe(e,u){let r=O(),{id:s=`headlessui-menu-item-${r}`,disabled:i=!1,...t}=e,[o,a]=C(\"Menu.Item\"),l=o.activeItemIndex!==null?o.items[o.activeItemIndex].id===s:!1,m=K(null),I=h(u,m);L(()=>{if(o.__demoMode||o.menuState!==0||!l||o.activationTrigger===0)return;let T=k();return T.requestAnimationFrame(()=>{var P,B;(B=(P=m.current)==null?void 0:P.scrollIntoView)==null||B.call(P,{block:\"nearest\"})}),T.dispose},[o.__demoMode,m,l,o.menuState,o.activationTrigger,o.activeItemIndex]);let A=te(m),f=K({disabled:i,domRef:m,get textValue(){return A()}});L(()=>{f.current.disabled=i},[f,i]),L(()=>(a({type:5,id:s,dataRef:f}),()=>a({type:6,id:s})),[f,s]);let g=d(()=>{a({type:1})}),R=d(T=>{if(i)return T.preventDefault();a({type:1}),W(o.buttonRef.current)}),p=d(()=>{if(i)return a({type:2,focus:y.Nothing});a({type:2,focus:y.Specific,id:s})}),M=ne(),b=d(T=>M.update(T)),n=d(T=>{M.wasMoved(T)&&(i||l||a({type:2,focus:y.Specific,id:s,trigger:0}))}),E=d(T=>{M.wasMoved(T)&&(i||l&&a({type:2,focus:y.Nothing}))}),x=v(()=>({active:l,disabled:i,close:g}),[l,i,g]);return _({ourProps:{id:s,ref:I,role:\"menuitem\",tabIndex:i===!0?void 0:-1,\"aria-disabled\":i===!0?!0:void 0,disabled:void 0,onClick:R,onFocus:p,onPointerEnter:b,onMouseEnter:b,onPointerMove:n,onMouseMove:n,onPointerLeave:E,onMouseLeave:E},theirProps:t,slot:x,defaultTag:Se,name:\"Menu.Item\"})}let Pe=F(Me),ve=F(Re),he=F(Ee),De=F(xe),qe=Object.assign(Pe,{Button:ve,Items:he,Item:De});export{qe as Menu};\n","import O,{createContext as J,useContext as V,useEffect as se,useMemo as D,useReducer as ue,useRef as j}from\"react\";import{Description as de,useDescriptions as X}from'../../components/description/description.js';import{Keys as _}from'../../components/keyboard.js';import{Label as ce,useLabels as q}from'../../components/label/label.js';import{useControllable as fe}from'../../hooks/use-controllable.js';import{useDisposables as Te}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useFlags as me}from'../../hooks/use-flags.js';import{useId as Q}from'../../hooks/use-id.js';import{useIsoMorphicEffect as ye}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Re}from'../../hooks/use-latest-value.js';import{useSyncRefs as Y}from'../../hooks/use-sync-refs.js';import{useTreeWalker as be}from'../../hooks/use-tree-walker.js';import{Features as ge,Hidden as Oe}from'../../internal/hidden.js';import{isDisabledReactIssue7711 as Z}from'../../utils/bugs.js';import{Focus as S,focusIn as z,FocusResult as ee,sortByDomNode as Ee}from'../../utils/focus-management.js';import{attemptSubmit as ve,objectToFormEntries as Pe}from'../../utils/form.js';import{match as Ae}from'../../utils/match.js';import{getOwnerDocument as De}from'../../utils/owner.js';import{compact as _e,forwardRefWithAs as te,render as re}from'../../utils/render.js';var Ge=(t=>(t[t.RegisterOption=0]=\"RegisterOption\",t[t.UnregisterOption=1]=\"UnregisterOption\",t))(Ge||{});let Ce={[0](o,r){let t=[...o.options,{id:r.id,element:r.element,propsRef:r.propsRef}];return{...o,options:Ee(t,p=>p.element.current)}},[1](o,r){let t=o.options.slice(),p=o.options.findIndex(T=>T.id===r.id);return p===-1?o:(t.splice(p,1),{...o,options:t})}},B=J(null);B.displayName=\"RadioGroupDataContext\";function oe(o){let r=V(B);if(r===null){let t=new Error(`<${o} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,oe),t}return r}let $=J(null);$.displayName=\"RadioGroupActionsContext\";function ne(o){let r=V($);if(r===null){let t=new Error(`<${o} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,ne),t}return r}function ke(o,r){return Ae(r.type,Ce,o,r)}let Le=\"div\";function he(o,r){let t=Q(),{id:p=`headlessui-radiogroup-${t}`,value:T,defaultValue:v,form:M,name:m,onChange:H,by:G=(e,i)=>e===i,disabled:P=!1,...N}=o,y=E(typeof G==\"string\"?(e,i)=>{let n=G;return(e==null?void 0:e[n])===(i==null?void 0:i[n])}:G),[A,L]=ue(ke,{options:[]}),a=A.options,[h,R]=q(),[C,U]=X(),k=j(null),W=Y(k,r),[l,s]=fe(T,H,v),b=D(()=>a.find(e=>!e.propsRef.current.disabled),[a]),x=D(()=>a.some(e=>y(e.propsRef.current.value,l)),[a,l]),d=E(e=>{var n;if(P||y(e,l))return!1;let i=(n=a.find(f=>y(f.propsRef.current.value,e)))==null?void 0:n.propsRef.current;return i!=null&&i.disabled?!1:(s==null||s(e),!0)});be({container:k.current,accept(e){return e.getAttribute(\"role\")===\"radio\"?NodeFilter.FILTER_REJECT:e.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(e){e.setAttribute(\"role\",\"none\")}});let F=E(e=>{let i=k.current;if(!i)return;let n=De(i),f=a.filter(u=>u.propsRef.current.disabled===!1).map(u=>u.element.current);switch(e.key){case _.Enter:ve(e.currentTarget);break;case _.ArrowLeft:case _.ArrowUp:if(e.preventDefault(),e.stopPropagation(),z(f,S.Previous|S.WrapAround)===ee.Success){let g=a.find(K=>K.element.current===(n==null?void 0:n.activeElement));g&&d(g.propsRef.current.value)}break;case _.ArrowRight:case _.ArrowDown:if(e.preventDefault(),e.stopPropagation(),z(f,S.Next|S.WrapAround)===ee.Success){let g=a.find(K=>K.element.current===(n==null?void 0:n.activeElement));g&&d(g.propsRef.current.value)}break;case _.Space:{e.preventDefault(),e.stopPropagation();let u=a.find(g=>g.element.current===(n==null?void 0:n.activeElement));u&&d(u.propsRef.current.value)}break}}),c=E(e=>(L({type:0,...e}),()=>L({type:1,id:e.id}))),w=D(()=>({value:l,firstOption:b,containsCheckedOption:x,disabled:P,compare:y,...A}),[l,b,x,P,y,A]),ie=D(()=>({registerOption:c,change:d}),[c,d]),ae={ref:W,id:p,role:\"radiogroup\",\"aria-labelledby\":h,\"aria-describedby\":C,onKeyDown:F},pe=D(()=>({value:l}),[l]),I=j(null),le=Te();return se(()=>{I.current&&v!==void 0&&le.addEventListener(I.current,\"reset\",()=>{d(v)})},[I,d]),O.createElement(U,{name:\"RadioGroup.Description\"},O.createElement(R,{name:\"RadioGroup.Label\"},O.createElement($.Provider,{value:ie},O.createElement(B.Provider,{value:w},m!=null&&l!=null&&Pe({[m]:l}).map(([e,i],n)=>O.createElement(Oe,{features:ge.Hidden,ref:n===0?f=>{var u;I.current=(u=f==null?void 0:f.closest(\"form\"))!=null?u:null}:void 0,..._e({key:e,as:\"input\",type:\"radio\",checked:i!=null,hidden:!0,readOnly:!0,form:M,disabled:P,name:e,value:i})})),re({ourProps:ae,theirProps:N,slot:pe,defaultTag:Le,name:\"RadioGroup\"})))))}var xe=(t=>(t[t.Empty=1]=\"Empty\",t[t.Active=2]=\"Active\",t))(xe||{});let Fe=\"div\";function we(o,r){var F;let t=Q(),{id:p=`headlessui-radiogroup-option-${t}`,value:T,disabled:v=!1,...M}=o,m=j(null),H=Y(m,r),[G,P]=q(),[N,y]=X(),{addFlag:A,removeFlag:L,hasFlag:a}=me(1),h=Re({value:T,disabled:v}),R=oe(\"RadioGroup.Option\"),C=ne(\"RadioGroup.Option\");ye(()=>C.registerOption({id:p,element:m,propsRef:h}),[p,C,m,h]);let U=E(c=>{var w;if(Z(c.currentTarget))return c.preventDefault();C.change(T)&&(A(2),(w=m.current)==null||w.focus())}),k=E(c=>{if(Z(c.currentTarget))return c.preventDefault();A(2)}),W=E(()=>L(2)),l=((F=R.firstOption)==null?void 0:F.id)===p,s=R.disabled||v,b=R.compare(R.value,T),x={ref:H,id:p,role:\"radio\",\"aria-checked\":b?\"true\":\"false\",\"aria-labelledby\":G,\"aria-describedby\":N,\"aria-disabled\":s?!0:void 0,tabIndex:(()=>s?-1:b||!R.containsCheckedOption&&l?0:-1)(),onClick:s?void 0:U,onFocus:s?void 0:k,onBlur:s?void 0:W},d=D(()=>({checked:b,disabled:s,active:a(2)}),[b,s,a]);return O.createElement(y,{name:\"RadioGroup.Description\"},O.createElement(P,{name:\"RadioGroup.Label\"},re({ourProps:x,theirProps:M,slot:d,defaultTag:Fe,name:\"RadioGroup.Option\"})))}let Ie=te(he),Se=te(we),it=Object.assign(Ie,{Option:Se,Label:ce,Description:de});export{it as RadioGroup};\n","import{disposables as f}from'../../../utils/disposables.js';import{match as d}from'../../../utils/match.js';import{once as s}from'../../../utils/once.js';function g(t,...e){t&&e.length>0&&t.classList.add(...e)}function v(t,...e){t&&e.length>0&&t.classList.remove(...e)}function b(t,e){let n=f();if(!t)return n.dispose;let{transitionDuration:m,transitionDelay:a}=getComputedStyle(t),[u,p]=[m,a].map(l=>{let[r=0]=l.split(\",\").filter(Boolean).map(i=>i.includes(\"ms\")?parseFloat(i):parseFloat(i)*1e3).sort((i,T)=>T-i);return r}),o=u+p;if(o!==0){n.group(r=>{r.setTimeout(()=>{e(),r.dispose()},o),r.addEventListener(t,\"transitionrun\",i=>{i.target===i.currentTarget&&r.dispose()})});let l=n.addEventListener(t,\"transitionend\",r=>{r.target===r.currentTarget&&(e(),l())})}else e();return n.add(()=>e()),n.dispose}function M(t,e,n,m){let a=n?\"enter\":\"leave\",u=f(),p=m!==void 0?s(m):()=>{};a===\"enter\"&&(t.removeAttribute(\"hidden\"),t.style.display=\"\");let o=d(a,{enter:()=>e.enter,leave:()=>e.leave}),l=d(a,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),r=d(a,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return v(t,...e.base,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),g(t,...e.base,...o,...r),u.nextFrame(()=>{v(t,...e.base,...o,...r),g(t,...e.base,...o,...l),b(t,()=>(v(t,...e.base,...o),g(t,...e.base,...e.entered),p()))}),u.dispose}export{M as transition};\n","function l(r){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,r(...t)}}export{l as once};\n","import m,{createContext as Z,Fragment as $,useContext as J,useEffect as F,useMemo as ee,useRef as c,useState as X}from\"react\";import{useDisposables as pe}from'../../hooks/use-disposables.js';import{useEvent as E}from'../../hooks/use-event.js';import{useFlags as he}from'../../hooks/use-flags.js';import{useIsMounted as ve}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as ge}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as A}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as te}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as ne}from'../../hooks/use-sync-refs.js';import{useTransition as Ce}from'../../hooks/use-transition.js';import{OpenClosedProvider as Ee,State as b,useOpenClosed as re}from'../../internal/open-closed.js';import{classNames as ie}from'../../utils/class-names.js';import{match as _}from'../../utils/match.js';import{Features as be,forwardRefWithAs as W,render as oe,RenderStrategy as y}from'../../utils/render.js';function S(t=\"\"){return t.split(/\\s+/).filter(n=>n.length>1)}let I=Z(null);I.displayName=\"TransitionContext\";var Se=(r=>(r.Visible=\"visible\",r.Hidden=\"hidden\",r))(Se||{});function ye(){let t=J(I);if(t===null)throw new Error(\"A is used but it is missing a parent or .\");return t}function xe(){let t=J(M);if(t===null)throw new Error(\"A is used but it is missing a parent or .\");return t}let M=Z(null);M.displayName=\"NestingContext\";function U(t){return\"children\"in t?U(t.children):t.current.filter(({el:n})=>n.current!==null).filter(({state:n})=>n===\"visible\").length>0}function se(t,n){let r=A(t),s=c([]),R=ve(),D=pe(),p=E((i,e=y.Hidden)=>{let a=s.current.findIndex(({el:o})=>o===i);a!==-1&&(_(e,{[y.Unmount](){s.current.splice(a,1)},[y.Hidden](){s.current[a].state=\"hidden\"}}),D.microTask(()=>{var o;!U(s)&&R.current&&((o=r.current)==null||o.call(r))}))}),x=E(i=>{let e=s.current.find(({el:a})=>a===i);return e?e.state!==\"visible\"&&(e.state=\"visible\"):s.current.push({el:i,state:\"visible\"}),()=>p(i,y.Unmount)}),h=c([]),v=c(Promise.resolve()),u=c({enter:[],leave:[],idle:[]}),g=E((i,e,a)=>{h.current.splice(0),n&&(n.chains.current[e]=n.chains.current[e].filter(([o])=>o!==i)),n==null||n.chains.current[e].push([i,new Promise(o=>{h.current.push(o)})]),n==null||n.chains.current[e].push([i,new Promise(o=>{Promise.all(u.current[e].map(([f,N])=>N)).then(()=>o())})]),e===\"enter\"?v.current=v.current.then(()=>n==null?void 0:n.wait.current).then(()=>a(e)):a(e)}),d=E((i,e,a)=>{Promise.all(u.current[e].splice(0).map(([o,f])=>f)).then(()=>{var o;(o=h.current.shift())==null||o()}).then(()=>a(e))});return ee(()=>({children:s,register:x,unregister:p,onStart:g,onStop:d,wait:v,chains:u}),[x,p,s,g,d,u,v])}function Ne(){}let Pe=[\"beforeEnter\",\"afterEnter\",\"beforeLeave\",\"afterLeave\"];function ae(t){var r;let n={};for(let s of Pe)n[s]=(r=t[s])!=null?r:Ne;return n}function Re(t){let n=c(ae(t));return F(()=>{n.current=ae(t)},[t]),n}let De=\"div\",le=be.RenderStrategy;function He(t,n){var Q,Y;let{beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D,enter:p,enterFrom:x,enterTo:h,entered:v,leave:u,leaveFrom:g,leaveTo:d,...i}=t,e=c(null),a=ne(e,n),o=(Q=i.unmount)==null||Q?y.Unmount:y.Hidden,{show:f,appear:N,initial:T}=ye(),[l,j]=X(f?\"visible\":\"hidden\"),z=xe(),{register:L,unregister:O}=z;F(()=>L(e),[L,e]),F(()=>{if(o===y.Hidden&&e.current){if(f&&l!==\"visible\"){j(\"visible\");return}return _(l,{[\"hidden\"]:()=>O(e),[\"visible\"]:()=>L(e)})}},[l,e,L,O,f,o]);let k=A({base:S(i.className),enter:S(p),enterFrom:S(x),enterTo:S(h),entered:S(v),leave:S(u),leaveFrom:S(g),leaveTo:S(d)}),V=Re({beforeEnter:r,afterEnter:s,beforeLeave:R,afterLeave:D}),G=te();F(()=>{if(G&&l===\"visible\"&&e.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[e,l,G]);let Te=T&&!N,K=N&&f&&T,de=(()=>!G||Te?\"idle\":f?\"enter\":\"leave\")(),H=he(0),fe=E(C=>_(C,{enter:()=>{H.addFlag(b.Opening),V.current.beforeEnter()},leave:()=>{H.addFlag(b.Closing),V.current.beforeLeave()},idle:()=>{}})),me=E(C=>_(C,{enter:()=>{H.removeFlag(b.Opening),V.current.afterEnter()},leave:()=>{H.removeFlag(b.Closing),V.current.afterLeave()},idle:()=>{}})),w=se(()=>{j(\"hidden\"),O(e)},z),B=c(!1);Ce({immediate:K,container:e,classes:k,direction:de,onStart:A(C=>{B.current=!0,w.onStart(e,C,fe)}),onStop:A(C=>{B.current=!1,w.onStop(e,C,me),C===\"leave\"&&!U(w)&&(j(\"hidden\"),O(e))})});let P=i,ce={ref:a};return K?P={...P,className:ie(i.className,...k.current.enter,...k.current.enterFrom)}:B.current&&(P.className=ie(i.className,(Y=e.current)==null?void 0:Y.className),P.className===\"\"&&delete P.className),m.createElement(M.Provider,{value:w},m.createElement(Ee,{value:_(l,{[\"visible\"]:b.Open,[\"hidden\"]:b.Closed})|H.flags},oe({ourProps:ce,theirProps:P,defaultTag:De,features:le,visible:l===\"visible\",name:\"Transition.Child\"})))}function Fe(t,n){let{show:r,appear:s=!1,unmount:R=!0,...D}=t,p=c(null),x=ne(p,n);te();let h=re();if(r===void 0&&h!==null&&(r=(h&b.Open)===b.Open),![!0,!1].includes(r))throw new Error(\"A is used but it is missing a `show={true | false}` prop.\");let[v,u]=X(r?\"visible\":\"hidden\"),g=se(()=>{u(\"hidden\")}),[d,i]=X(!0),e=c([r]);ge(()=>{d!==!1&&e.current[e.current.length-1]!==r&&(e.current.push(r),i(!1))},[e,r]);let a=ee(()=>({show:r,appear:s,initial:d}),[r,s,d]);F(()=>{if(r)u(\"visible\");else if(!U(g))u(\"hidden\");else{let T=p.current;if(!T)return;let l=T.getBoundingClientRect();l.x===0&&l.y===0&&l.width===0&&l.height===0&&u(\"hidden\")}},[r,g]);let o={unmount:R},f=E(()=>{var T;d&&i(!1),(T=t.beforeEnter)==null||T.call(t)}),N=E(()=>{var T;d&&i(!1),(T=t.beforeLeave)==null||T.call(t)});return m.createElement(M.Provider,{value:g},m.createElement(I.Provider,{value:a},oe({ourProps:{...o,as:$,children:m.createElement(ue,{ref:x,...o,...D,beforeEnter:f,beforeLeave:N})},theirProps:{},defaultTag:$,features:le,visible:v===\"visible\",name:\"Transition\"})))}function _e(t,n){let r=J(I)!==null,s=re()!==null;return m.createElement(m.Fragment,null,!r&&s?m.createElement(q,{ref:n,...t}):m.createElement(ue,{ref:n,...t}))}let q=W(Fe),ue=W(He),Le=W(_e),qe=Object.assign(q,{Child:Le,Root:q});export{qe as Transition};\n","import{transition as f}from'../components/transitions/utils/transition.js';import{disposables as m}from'../utils/disposables.js';import{useDisposables as p}from'./use-disposables.js';import{useIsMounted as b}from'./use-is-mounted.js';import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';import{useLatestValue as g}from'./use-latest-value.js';function D({immediate:t,container:s,direction:n,classes:u,onStart:a,onStop:c}){let l=b(),d=p(),e=g(n);o(()=>{t&&(e.current=\"enter\")},[t]),o(()=>{let r=m();d.add(r.dispose);let i=s.current;if(i&&e.current!==\"idle\"&&l.current)return r.dispose(),a.current(e.current),r.add(f(i,u.current,e.current===\"enter\",()=>{r.dispose(),c.current(e.current)})),r.dispose},[n])}export{D as useTransition};\n","import{useCallback as n,useState as f}from\"react\";import{useIsMounted as i}from'./use-is-mounted.js';function c(a=0){let[l,r]=f(a),t=i(),o=n(e=>{t.current&&r(u=>u|e)},[l,t]),m=n(e=>Boolean(l&e),[l]),s=n(e=>{t.current&&r(u=>u&~e)},[r,t]),g=n(e=>{t.current&&r(u=>u^e)},[r]);return{flags:l,addFlag:o,hasFlag:m,removeFlag:s,toggleFlag:g}}export{c as useFlags};\n","import{useRef as r}from\"react\";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};\n","import{useEffect as m}from\"react\";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};\n","import{useEffect as d,useRef as f}from\"react\";import{FocusableMode as p,isFocusableElement as C}from'../utils/focus-management.js';import{isMobile as M}from'../utils/platform.js';import{useDocumentEvent as l}from'./use-document-event.js';import{useWindowEvent as T}from'./use-window-event.js';function y(s,m,a=!0){let i=f(!1);d(()=>{requestAnimationFrame(()=>{i.current=a})},[a]);function c(e,r){if(!i.current||e.defaultPrevented)return;let t=r(e);if(t===null||!t.getRootNode().contains(t)||!t.isConnected)return;let E=function u(n){return typeof n==\"function\"?u(n()):Array.isArray(n)||n instanceof Set?n:[n]}(s);for(let u of E){if(u===null)continue;let n=u instanceof HTMLElement?u:u.current;if(n!=null&&n.contains(t)||e.composed&&e.composedPath().includes(n))return}return!C(t,p.Loose)&&t.tabIndex!==-1&&e.preventDefault(),m(e,t)}let o=f(null);l(\"pointerdown\",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l(\"mousedown\",e=>{var r,t;i.current&&(o.current=((t=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:t[0])||e.target)},!0),l(\"click\",e=>{M()||o.current&&(c(e,()=>o.current),o.current=null)},!0),l(\"touchend\",e=>c(e,()=>e.target instanceof HTMLElement?e.target:null),!0),T(\"blur\",e=>c(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{y as useOutsideClick};\n","import{useEffect as d}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function s(e,r,n){let o=a(r);d(()=>{function t(i){o.current(i)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)},[e,n])}export{s as useWindowEvent};\n","import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n","import{useRef as o}from\"react\";function t(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(r){let n=t(r);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(r){e.current=t(r)}}}export{u as useTrackedPointer};\n","import{useEffect as m,useRef as E}from\"react\";import{getOwnerDocument as T}from'../utils/owner.js';import{useIsoMorphicEffect as N}from'./use-iso-morphic-effect.js';function F({container:e,accept:t,walk:r,enabled:c=!0}){let o=E(t),l=E(r);m(()=>{o.current=t,l.current=r},[t,r]),N(()=>{if(!e||!c)return;let n=T(e);if(!n)return;let f=o.current,p=l.current,d=Object.assign(i=>f(i),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,d,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};\n","import t,{createContext as l,useContext as p}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var d=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(d||{});function u(){return p(n)}function s({value:o,children:r}){return t.createElement(n.Provider,{value:o},r)}export{s as OpenClosedProvider,d as State,u as useOpenClosed};\n","function u(l){throw new Error(\"Unexpected object: \"+l)}var c=(i=>(i[i.First=0]=\"First\",i[i.Previous=1]=\"Previous\",i[i.Next=2]=\"Next\",i[i.Last=3]=\"Last\",i[i.Specific=4]=\"Specific\",i[i.Nothing=5]=\"Nothing\",i))(c||{});function f(l,n){let t=n.resolveItems();if(t.length<=0)return null;let r=n.resolveActiveIndex(),s=r!=null?r:-1;switch(l.focus){case 0:{for(let e=0;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 2:{for(let e=s+1;e=0;--e)if(!n.resolveDisabled(t[e],e,t))return e;return r}case 4:{for(let e=0;e`${e}:not([tabindex='-1'])`).join(\",\");var M=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(M||{}),N=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(N||{}),F=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(F||{});function f(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(c)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var T=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(T||{});function h(e,r=0){var t;return e===((t=m(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(c)},[1](){let l=e;for(;l!==null;){if(l.matches(c))return!0;l=l.parentElement}return!1}})}function D(e){let r=m(e);b().nextFrame(()=>{r&&!h(r.activeElement,0)&&y(e)})}var w=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(w||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function y(e){e==null||e.focus({preventScroll:!0})}let S=[\"textarea\",\"input\"].join(\",\");function H(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,S))!=null?t:!1}function I(e,r=t=>t){return e.slice().sort((t,l)=>{let o=r(t),i=r(l);if(o===null||i===null)return 0;let n=o.compareDocumentPosition(i);return n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function _(e,r){return O(f(),r,{relativeTo:e})}function O(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:o=[]}={}){let i=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,n=Array.isArray(e)?t?I(e):e:f(e);o.length>0&&n.length>1&&(n=n.filter(s=>!o.includes(s))),l=l!=null?l:i.activeElement;let E=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,n.indexOf(l))-1;if(r&4)return Math.max(0,n.indexOf(l))+1;if(r&8)return n.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),p=r&32?{preventScroll:!0}:{},d=0,a=n.length,u;do{if(d>=a||d+a<=0)return 0;let s=x+d;if(r&16)s=(s+a)%a;else{if(s<0)return 3;if(s>=a)return 1}u=n[s],u==null||u.focus(p),d+=E}while(u!==i.activeElement);return r&6&&H(u)&&u.select(),2}export{M as Focus,N as FocusResult,T as FocusableMode,y as focusElement,_ as focusFrom,O as focusIn,f as getFocusableElements,h as isFocusableElement,D as restoreFocusIfNecessary,I as sortByDomNode};\n","import{env as n}from'./env.js';function o(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{o as getOwnerDocument};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import * as React from \"react\";\nfunction ChatBubbleBottomCenterIcon({\n title,\n titleId,\n ...props\n}, svgRef) {\n return /*#__PURE__*/React.createElement(\"svg\", Object.assign({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n d: \"M4.848 2.771A49.144 49.144 0 0112 2.25c2.43 0 4.817.178 7.152.52 1.978.292 3.348 2.024 3.348 3.97v6.02c0 1.946-1.37 3.678-3.348 3.97a48.901 48.901 0 01-3.476.383.39.39 0 00-.297.17l-2.755 4.133a.75.75 0 01-1.248 0l-2.755-4.133a.39.39 0 00-.297-.17 48.9 48.9 0 01-3.476-.384c-1.978-.29-3.348-2.024-3.348-3.97V6.741c0-1.946 1.37-3.68 3.348-3.97z\",\n clipRule: \"evenodd\"\n }));\n}\nconst ForwardRef = React.forwardRef(ChatBubbleBottomCenterIcon);\nexport default ForwardRef;","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n function Provider(props) {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + \"Provider\";\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n function Provider(props) {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName][index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n }\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName][index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n Provider.displayName = rootComponentName + \"Provider\";\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/presence/src/Presence.tsx\nimport * as React2 from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// packages/react/presence/src/useStateMachine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n return React.useReducer((state, event) => {\n const nextState = machine[state][event];\n return nextState ?? state;\n }, initialState);\n}\n\n// packages/react/presence/src/Presence.tsx\nvar Presence = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === \"function\";\n return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n const [node, setNode] = React2.useState();\n const stylesRef = React2.useRef({});\n const prevPresentRef = React2.useRef(present);\n const prevAnimationNameRef = React2.useRef(\"none\");\n const initialState = present ? \"mounted\" : \"unmounted\";\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\"\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\"\n },\n unmounted: {\n MOUNT: \"mounted\"\n }\n });\n React2.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n }, [state]);\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n if (present) {\n send(\"MOUNT\");\n } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n send(\"UNMOUNT\");\n } else {\n const isAnimating = prevAnimationName !== currentAnimationName;\n if (wasPresent && isAnimating) {\n send(\"ANIMATION_OUT\");\n } else {\n send(\"UNMOUNT\");\n }\n }\n prevPresentRef.current = present;\n }\n }, [present, send]);\n useLayoutEffect(() => {\n if (node) {\n const handleAnimationEnd = (event) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n const isCurrentAnimation = currentAnimationName.includes(event.animationName);\n if (event.target === node && isCurrentAnimation) {\n ReactDOM.flushSync(() => send(\"ANIMATION_END\"));\n }\n };\n const handleAnimationStart = (event) => {\n if (event.target === node) {\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener(\"animationstart\", handleAnimationStart);\n node.addEventListener(\"animationcancel\", handleAnimationEnd);\n node.addEventListener(\"animationend\", handleAnimationEnd);\n return () => {\n node.removeEventListener(\"animationstart\", handleAnimationStart);\n node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n node.removeEventListener(\"animationend\", handleAnimationEnd);\n };\n } else {\n send(\"ANIMATION_END\");\n }\n }, [node, send]);\n return {\n isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n ref: React2.useCallback((node2) => {\n if (node2) stylesRef.current = getComputedStyle(node2);\n setNode(node2);\n }, [])\n };\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Presence\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/checkbox/src/Checkbox.tsx\nimport * as React from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar CHECKBOX_NAME = \"Checkbox\";\nvar [createCheckboxContext, createCheckboxScope] = createContextScope(CHECKBOX_NAME);\nvar [CheckboxProvider, useCheckboxContext] = createCheckboxContext(CHECKBOX_NAME);\nvar Checkbox = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeCheckbox,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n ...checkboxProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? Boolean(button.closest(\"form\")) : true;\n const [checked = false, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked,\n onChange: onCheckedChange\n });\n const initialCheckedStateRef = React.useRef(checked);\n React.useEffect(() => {\n const form = button?.form;\n if (form) {\n const reset = () => setChecked(initialCheckedStateRef.current);\n form.addEventListener(\"reset\", reset);\n return () => form.removeEventListener(\"reset\", reset);\n }\n }, [button, setChecked]);\n return /* @__PURE__ */ jsxs(CheckboxProvider, { scope: __scopeCheckbox, state: checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"checkbox\",\n \"aria-checked\": isIndeterminate(checked) ? \"mixed\" : checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...checkboxProps,\n ref: composedRefs,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Enter\") event.preventDefault();\n }),\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => isIndeterminate(prevChecked) ? true : !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nCheckbox.displayName = CHECKBOX_NAME;\nvar INDICATOR_NAME = \"CheckboxIndicator\";\nvar CheckboxIndicator = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeCheckbox, forceMount, ...indicatorProps } = props;\n const context = useCheckboxContext(INDICATOR_NAME, __scopeCheckbox);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.state),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...indicatorProps,\n ref: forwardedRef,\n style: { pointerEvents: \"none\", ...props.style }\n }\n ) });\n }\n);\nCheckboxIndicator.displayName = INDICATOR_NAME;\nvar BubbleInput = (props) => {\n const { control, checked, bubbles = true, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"checked\");\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n input.indeterminate = isIndeterminate(checked);\n setChecked.call(input, isIndeterminate(checked) ? false : checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: isIndeterminate(checked) ? false : checked,\n ...inputProps,\n tabIndex: -1,\n ref,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n};\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction getState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Checkbox;\nvar Indicator = CheckboxIndicator;\nexport {\n Checkbox,\n CheckboxIndicator,\n Indicator,\n Root,\n createCheckboxScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","import {useLayoutEffect as $dxlwH$useLayoutEffect} from \"react\";\n\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */ const $9f79659886946c16$export$e5c5a5f917a5871c = Boolean(globalThis === null || globalThis === void 0 ? void 0 : globalThis.document) ? $dxlwH$useLayoutEffect : ()=>{};\n\n\n\n\nexport {$9f79659886946c16$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=index.mjs.map\n","import $73KQ4$babelruntimehelpersesmextends from \"@babel/runtime/helpers/esm/extends\";\nimport {forwardRef as $73KQ4$forwardRef, createElement as $73KQ4$createElement, useCallback as $73KQ4$useCallback, useState as $73KQ4$useState, useRef as $73KQ4$useRef, useEffect as $73KQ4$useEffect} from \"react\";\nimport {composeEventHandlers as $73KQ4$composeEventHandlers} from \"@radix-ui/primitive\";\nimport {createContextScope as $73KQ4$createContextScope} from \"@radix-ui/react-context\";\nimport {useControllableState as $73KQ4$useControllableState} from \"@radix-ui/react-use-controllable-state\";\nimport {useLayoutEffect as $73KQ4$useLayoutEffect} from \"@radix-ui/react-use-layout-effect\";\nimport {useComposedRefs as $73KQ4$useComposedRefs} from \"@radix-ui/react-compose-refs\";\nimport {Primitive as $73KQ4$Primitive} from \"@radix-ui/react-primitive\";\nimport {Presence as $73KQ4$Presence} from \"@radix-ui/react-presence\";\nimport {useId as $73KQ4$useId} from \"@radix-ui/react-id\";\n\n\n\n\n\n\n\n\n\n\n\n/* -------------------------------------------------------------------------------------------------\n * Collapsible\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$COLLAPSIBLE_NAME = 'Collapsible';\nconst [$409067139f391064$var$createCollapsibleContext, $409067139f391064$export$952b32dcbe73087a] = $73KQ4$createContextScope($409067139f391064$var$COLLAPSIBLE_NAME);\nconst [$409067139f391064$var$CollapsibleProvider, $409067139f391064$var$useCollapsibleContext] = $409067139f391064$var$createCollapsibleContext($409067139f391064$var$COLLAPSIBLE_NAME);\nconst $409067139f391064$export$6eb0f7ddcda6131f = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , open: openProp , defaultOpen: defaultOpen , disabled: disabled , onOpenChange: onOpenChange , ...collapsibleProps } = props;\n const [open = false, setOpen] = $73KQ4$useControllableState({\n prop: openProp,\n defaultProp: defaultOpen,\n onChange: onOpenChange\n });\n return /*#__PURE__*/ $73KQ4$createElement($409067139f391064$var$CollapsibleProvider, {\n scope: __scopeCollapsible,\n disabled: disabled,\n contentId: $73KQ4$useId(),\n open: open,\n onOpenToggle: $73KQ4$useCallback(()=>setOpen((prevOpen)=>!prevOpen\n )\n , [\n setOpen\n ])\n }, /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.div, $73KQ4$babelruntimehelpersesmextends({\n \"data-state\": $409067139f391064$var$getState(open),\n \"data-disabled\": disabled ? '' : undefined\n }, collapsibleProps, {\n ref: forwardedRef\n })));\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$6eb0f7ddcda6131f, {\n displayName: $409067139f391064$var$COLLAPSIBLE_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleTrigger\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$TRIGGER_NAME = 'CollapsibleTrigger';\nconst $409067139f391064$export$c135dce7b15bbbdc = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , ...triggerProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$TRIGGER_NAME, __scopeCollapsible);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.button, $73KQ4$babelruntimehelpersesmextends({\n type: \"button\",\n \"aria-controls\": context.contentId,\n \"aria-expanded\": context.open || false,\n \"data-state\": $409067139f391064$var$getState(context.open),\n \"data-disabled\": context.disabled ? '' : undefined,\n disabled: context.disabled\n }, triggerProps, {\n ref: forwardedRef,\n onClick: $73KQ4$composeEventHandlers(props.onClick, context.onOpenToggle)\n }));\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$c135dce7b15bbbdc, {\n displayName: $409067139f391064$var$TRIGGER_NAME\n});\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleContent\n * -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$CONTENT_NAME = 'CollapsibleContent';\nconst $409067139f391064$export$aadde00976f34151 = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { forceMount: forceMount , ...contentProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, props.__scopeCollapsible);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Presence, {\n present: forceMount || context.open\n }, ({ present: present })=>/*#__PURE__*/ $73KQ4$createElement($409067139f391064$var$CollapsibleContentImpl, $73KQ4$babelruntimehelpersesmextends({}, contentProps, {\n ref: forwardedRef,\n present: present\n }))\n );\n});\n/*#__PURE__*/ Object.assign($409067139f391064$export$aadde00976f34151, {\n displayName: $409067139f391064$var$CONTENT_NAME\n});\n/* -----------------------------------------------------------------------------------------------*/ const $409067139f391064$var$CollapsibleContentImpl = /*#__PURE__*/ $73KQ4$forwardRef((props, forwardedRef)=>{\n const { __scopeCollapsible: __scopeCollapsible , present: present , children: children , ...contentProps } = props;\n const context = $409067139f391064$var$useCollapsibleContext($409067139f391064$var$CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = $73KQ4$useState(present);\n const ref = $73KQ4$useRef(null);\n const composedRefs = $73KQ4$useComposedRefs(forwardedRef, ref);\n const heightRef = $73KQ4$useRef(0);\n const height = heightRef.current;\n const widthRef = $73KQ4$useRef(0);\n const width = widthRef.current; // when opening we want it to immediately open to retrieve dimensions\n // when closing we delay `present` to retrieve dimensions before closing\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = $73KQ4$useRef(isOpen);\n const originalStylesRef = $73KQ4$useRef();\n $73KQ4$useEffect(()=>{\n const rAF = requestAnimationFrame(()=>isMountAnimationPreventedRef.current = false\n );\n return ()=>cancelAnimationFrame(rAF)\n ;\n }, []);\n $73KQ4$useLayoutEffect(()=>{\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName\n }; // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s';\n node.style.animationName = 'none'; // get width and height from full dimensions\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width; // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n node.style.animationName = originalStylesRef.current.animationName;\n }\n setIsPresent(present);\n }\n /**\n * depends on `context.open` because it will change to `false`\n * when a close is triggered but `present` will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */ }, [\n context.open,\n present\n ]);\n return /*#__PURE__*/ $73KQ4$createElement($73KQ4$Primitive.div, $73KQ4$babelruntimehelpersesmextends({\n \"data-state\": $409067139f391064$var$getState(context.open),\n \"data-disabled\": context.disabled ? '' : undefined,\n id: context.contentId,\n hidden: !isOpen\n }, contentProps, {\n ref: composedRefs,\n style: {\n [`--radix-collapsible-content-height`]: height ? `${height}px` : undefined,\n [`--radix-collapsible-content-width`]: width ? `${width}px` : undefined,\n ...props.style\n }\n }), isOpen && children);\n});\n/* -----------------------------------------------------------------------------------------------*/ function $409067139f391064$var$getState(open) {\n return open ? 'open' : 'closed';\n}\nconst $409067139f391064$export$be92b6f5f03c0fe9 = $409067139f391064$export$6eb0f7ddcda6131f;\nconst $409067139f391064$export$41fb9f06171c75f4 = $409067139f391064$export$c135dce7b15bbbdc;\nconst $409067139f391064$export$7c6e2c02157bb7d2 = $409067139f391064$export$aadde00976f34151;\n\n\n\n\nexport {$409067139f391064$export$952b32dcbe73087a as createCollapsibleScope, $409067139f391064$export$6eb0f7ddcda6131f as Collapsible, $409067139f391064$export$c135dce7b15bbbdc as CollapsibleTrigger, $409067139f391064$export$aadde00976f34151 as CollapsibleContent, $409067139f391064$export$be92b6f5f03c0fe9 as Root, $409067139f391064$export$41fb9f06171c75f4 as Trigger, $409067139f391064$export$7c6e2c02157bb7d2 as Content};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/number/src/number.ts\nfunction clamp(value, [min, max]) {\n return Math.min(max, Math.max(min, value));\n}\nexport {\n clamp\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/direction/src/Direction.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DirectionContext = React.createContext(void 0);\nvar DirectionProvider = (props) => {\n const { dir, children } = props;\n return /* @__PURE__ */ jsx(DirectionContext.Provider, { value: dir, children });\n};\nfunction useDirection(localDir) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || \"ltr\";\n}\nvar Provider = DirectionProvider;\nexport {\n DirectionProvider,\n Provider,\n useDirection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/slider/src/Slider.tsx\nimport * as React from \"react\";\nimport { clamp } from \"@radix-ui/number\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar PAGE_KEYS = [\"PageUp\", \"PageDown\"];\nvar ARROW_KEYS = [\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"];\nvar BACK_KEYS = {\n \"from-left\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-right\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowRight\"],\n \"from-bottom\": [\"Home\", \"PageDown\", \"ArrowDown\", \"ArrowLeft\"],\n \"from-top\": [\"Home\", \"PageDown\", \"ArrowUp\", \"ArrowLeft\"]\n};\nvar SLIDER_NAME = \"Slider\";\nvar [Collection, useCollection, createCollectionScope] = createCollection(SLIDER_NAME);\nvar [createSliderContext, createSliderScope] = createContextScope(SLIDER_NAME, [\n createCollectionScope\n]);\nvar [SliderProvider, useSliderContext] = createSliderContext(SLIDER_NAME);\nvar Slider = React.forwardRef(\n (props, forwardedRef) => {\n const {\n name,\n min = 0,\n max = 100,\n step = 1,\n orientation = \"horizontal\",\n disabled = false,\n minStepsBetweenThumbs = 0,\n defaultValue = [min],\n value,\n onValueChange = () => {\n },\n onValueCommit = () => {\n },\n inverted = false,\n form,\n ...sliderProps\n } = props;\n const thumbRefs = React.useRef(/* @__PURE__ */ new Set());\n const valueIndexToChangeRef = React.useRef(0);\n const isHorizontal = orientation === \"horizontal\";\n const SliderOrientation = isHorizontal ? SliderHorizontal : SliderVertical;\n const [values = [], setValues] = useControllableState({\n prop: value,\n defaultProp: defaultValue,\n onChange: (value2) => {\n const thumbs = [...thumbRefs.current];\n thumbs[valueIndexToChangeRef.current]?.focus();\n onValueChange(value2);\n }\n });\n const valuesBeforeSlideStartRef = React.useRef(values);\n function handleSlideStart(value2) {\n const closestIndex = getClosestValueIndex(values, value2);\n updateValues(value2, closestIndex);\n }\n function handleSlideMove(value2) {\n updateValues(value2, valueIndexToChangeRef.current);\n }\n function handleSlideEnd() {\n const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current];\n const nextValue = values[valueIndexToChangeRef.current];\n const hasChanged = nextValue !== prevValue;\n if (hasChanged) onValueCommit(values);\n }\n function updateValues(value2, atIndex, { commit } = { commit: false }) {\n const decimalCount = getDecimalCount(step);\n const snapToStep = roundValue(Math.round((value2 - min) / step) * step + min, decimalCount);\n const nextValue = clamp(snapToStep, [min, max]);\n setValues((prevValues = []) => {\n const nextValues = getNextSortedValues(prevValues, nextValue, atIndex);\n if (hasMinStepsBetweenValues(nextValues, minStepsBetweenThumbs * step)) {\n valueIndexToChangeRef.current = nextValues.indexOf(nextValue);\n const hasChanged = String(nextValues) !== String(prevValues);\n if (hasChanged && commit) onValueCommit(nextValues);\n return hasChanged ? nextValues : prevValues;\n } else {\n return prevValues;\n }\n });\n }\n return /* @__PURE__ */ jsx(\n SliderProvider,\n {\n scope: props.__scopeSlider,\n name,\n disabled,\n min,\n max,\n valueIndexToChangeRef,\n thumbs: thumbRefs.current,\n values,\n orientation,\n form,\n children: /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n SliderOrientation,\n {\n \"aria-disabled\": disabled,\n \"data-disabled\": disabled ? \"\" : void 0,\n ...sliderProps,\n ref: forwardedRef,\n onPointerDown: composeEventHandlers(sliderProps.onPointerDown, () => {\n if (!disabled) valuesBeforeSlideStartRef.current = values;\n }),\n min,\n max,\n inverted,\n onSlideStart: disabled ? void 0 : handleSlideStart,\n onSlideMove: disabled ? void 0 : handleSlideMove,\n onSlideEnd: disabled ? void 0 : handleSlideEnd,\n onHomeKeyDown: () => !disabled && updateValues(min, 0, { commit: true }),\n onEndKeyDown: () => !disabled && updateValues(max, values.length - 1, { commit: true }),\n onStepKeyDown: ({ event, direction: stepDirection }) => {\n if (!disabled) {\n const isPageKey = PAGE_KEYS.includes(event.key);\n const isSkipKey = isPageKey || event.shiftKey && ARROW_KEYS.includes(event.key);\n const multiplier = isSkipKey ? 10 : 1;\n const atIndex = valueIndexToChangeRef.current;\n const value2 = values[atIndex];\n const stepInDirection = step * multiplier * stepDirection;\n updateValues(value2 + stepInDirection, atIndex, { commit: true });\n }\n }\n }\n ) }) })\n }\n );\n }\n);\nSlider.displayName = SLIDER_NAME;\nvar [SliderOrientationProvider, useSliderOrientationContext] = createSliderContext(SLIDER_NAME, {\n startEdge: \"left\",\n endEdge: \"right\",\n size: \"width\",\n direction: 1\n});\nvar SliderHorizontal = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n dir,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const [slider, setSlider] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setSlider(node));\n const rectRef = React.useRef(void 0);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const isSlidingFromLeft = isDirectionLTR && !inverted || !isDirectionLTR && inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || slider.getBoundingClientRect();\n const input = [0, rect.width];\n const output = isSlidingFromLeft ? [min, max] : [max, min];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.left);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromLeft ? \"left\" : \"right\",\n endEdge: isSlidingFromLeft ? \"right\" : \"left\",\n direction: isSlidingFromLeft ? 1 : -1,\n size: \"width\",\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n dir: direction,\n \"data-orientation\": \"horizontal\",\n ...sliderProps,\n ref: composedRefs,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateX(-50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientX);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromLeft ? \"from-left\" : \"from-right\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderVertical = React.forwardRef(\n (props, forwardedRef) => {\n const {\n min,\n max,\n inverted,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const sliderRef = React.useRef(null);\n const ref = useComposedRefs(forwardedRef, sliderRef);\n const rectRef = React.useRef(void 0);\n const isSlidingFromBottom = !inverted;\n function getValueFromPointer(pointerPosition) {\n const rect = rectRef.current || sliderRef.current.getBoundingClientRect();\n const input = [0, rect.height];\n const output = isSlidingFromBottom ? [max, min] : [min, max];\n const value = linearScale(input, output);\n rectRef.current = rect;\n return value(pointerPosition - rect.top);\n }\n return /* @__PURE__ */ jsx(\n SliderOrientationProvider,\n {\n scope: props.__scopeSlider,\n startEdge: isSlidingFromBottom ? \"bottom\" : \"top\",\n endEdge: isSlidingFromBottom ? \"top\" : \"bottom\",\n size: \"height\",\n direction: isSlidingFromBottom ? 1 : -1,\n children: /* @__PURE__ */ jsx(\n SliderImpl,\n {\n \"data-orientation\": \"vertical\",\n ...sliderProps,\n ref,\n style: {\n ...sliderProps.style,\n [\"--radix-slider-thumb-transform\"]: \"translateY(50%)\"\n },\n onSlideStart: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideStart?.(value);\n },\n onSlideMove: (event) => {\n const value = getValueFromPointer(event.clientY);\n onSlideMove?.(value);\n },\n onSlideEnd: () => {\n rectRef.current = void 0;\n onSlideEnd?.();\n },\n onStepKeyDown: (event) => {\n const slideDirection = isSlidingFromBottom ? \"from-bottom\" : \"from-top\";\n const isBackKey = BACK_KEYS[slideDirection].includes(event.key);\n onStepKeyDown?.({ event, direction: isBackKey ? -1 : 1 });\n }\n }\n )\n }\n );\n }\n);\nvar SliderImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSlider,\n onSlideStart,\n onSlideMove,\n onSlideEnd,\n onHomeKeyDown,\n onEndKeyDown,\n onStepKeyDown,\n ...sliderProps\n } = props;\n const context = useSliderContext(SLIDER_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n ...sliderProps,\n ref: forwardedRef,\n onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {\n if (event.key === \"Home\") {\n onHomeKeyDown(event);\n event.preventDefault();\n } else if (event.key === \"End\") {\n onEndKeyDown(event);\n event.preventDefault();\n } else if (PAGE_KEYS.concat(ARROW_KEYS).includes(event.key)) {\n onStepKeyDown(event);\n event.preventDefault();\n }\n }),\n onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {\n const target = event.target;\n target.setPointerCapture(event.pointerId);\n event.preventDefault();\n if (context.thumbs.has(target)) {\n target.focus();\n } else {\n onSlideStart(event);\n }\n }),\n onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) onSlideMove(event);\n }),\n onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {\n const target = event.target;\n if (target.hasPointerCapture(event.pointerId)) {\n target.releasePointerCapture(event.pointerId);\n onSlideEnd(event);\n }\n })\n }\n );\n }\n);\nvar TRACK_NAME = \"SliderTrack\";\nvar SliderTrack = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...trackProps } = props;\n const context = useSliderContext(TRACK_NAME, __scopeSlider);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-disabled\": context.disabled ? \"\" : void 0,\n \"data-orientation\": context.orientation,\n ...trackProps,\n ref: forwardedRef\n }\n );\n }\n);\nSliderTrack.displayName = TRACK_NAME;\nvar RANGE_NAME = \"SliderRange\";\nvar SliderRange = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, ...rangeProps } = props;\n const context = useSliderContext(RANGE_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(RANGE_NAME, __scopeSlider);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const valuesCount = context.values.length;\n const percentages = context.values.map(\n (value) => convertValueToPercentage(value, context.min, context.max)\n );\n const offsetStart = valuesCount > 1 ? Math.min(...percentages) : 0;\n const offsetEnd = 100 - Math.max(...percentages);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...rangeProps,\n ref: composedRefs,\n style: {\n ...props.style,\n [orientation.startEdge]: offsetStart + \"%\",\n [orientation.endEdge]: offsetEnd + \"%\"\n }\n }\n );\n }\n);\nSliderRange.displayName = RANGE_NAME;\nvar THUMB_NAME = \"SliderThumb\";\nvar SliderThumb = React.forwardRef(\n (props, forwardedRef) => {\n const getItems = useCollection(props.__scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const index = React.useMemo(\n () => thumb ? getItems().findIndex((item) => item.ref.current === thumb) : -1,\n [getItems, thumb]\n );\n return /* @__PURE__ */ jsx(SliderThumbImpl, { ...props, ref: composedRefs, index });\n }\n);\nvar SliderThumbImpl = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSlider, index, name, ...thumbProps } = props;\n const context = useSliderContext(THUMB_NAME, __scopeSlider);\n const orientation = useSliderOrientationContext(THUMB_NAME, __scopeSlider);\n const [thumb, setThumb] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setThumb(node));\n const isFormControl = thumb ? context.form || !!thumb.closest(\"form\") : true;\n const size = useSize(thumb);\n const value = context.values[index];\n const percent = value === void 0 ? 0 : convertValueToPercentage(value, context.min, context.max);\n const label = getLabel(index, context.values.length);\n const orientationSize = size?.[orientation.size];\n const thumbInBoundsOffset = orientationSize ? getThumbInBoundsOffset(orientationSize, percent, orientation.direction) : 0;\n React.useEffect(() => {\n if (thumb) {\n context.thumbs.add(thumb);\n return () => {\n context.thumbs.delete(thumb);\n };\n }\n }, [thumb, context.thumbs]);\n return /* @__PURE__ */ jsxs(\n \"span\",\n {\n style: {\n transform: \"var(--radix-slider-thumb-transform)\",\n position: \"absolute\",\n [orientation.startEdge]: `calc(${percent}% + ${thumbInBoundsOffset}px)`\n },\n children: [\n /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: props.__scopeSlider, children: /* @__PURE__ */ jsx(\n Primitive.span,\n {\n role: \"slider\",\n \"aria-label\": props[\"aria-label\"] || label,\n \"aria-valuemin\": context.min,\n \"aria-valuenow\": value,\n \"aria-valuemax\": context.max,\n \"aria-orientation\": context.orientation,\n \"data-orientation\": context.orientation,\n \"data-disabled\": context.disabled ? \"\" : void 0,\n tabIndex: context.disabled ? void 0 : 0,\n ...thumbProps,\n ref: composedRefs,\n style: value === void 0 ? { display: \"none\" } : props.style,\n onFocus: composeEventHandlers(props.onFocus, () => {\n context.valueIndexToChangeRef.current = index;\n })\n }\n ) }),\n isFormControl && /* @__PURE__ */ jsx(\n BubbleInput,\n {\n name: name ?? (context.name ? context.name + (context.values.length > 1 ? \"[]\" : \"\") : void 0),\n form: context.form,\n value\n },\n index\n )\n ]\n }\n );\n }\n);\nSliderThumb.displayName = THUMB_NAME;\nvar BubbleInput = (props) => {\n const { value, ...inputProps } = props;\n const ref = React.useRef(null);\n const prevValue = usePrevious(value);\n React.useEffect(() => {\n const input = ref.current;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(inputProto, \"value\");\n const setValue = descriptor.set;\n if (prevValue !== value && setValue) {\n const event = new Event(\"input\", { bubbles: true });\n setValue.call(input, value);\n input.dispatchEvent(event);\n }\n }, [prevValue, value]);\n return /* @__PURE__ */ jsx(\"input\", { style: { display: \"none\" }, ...inputProps, ref, defaultValue: value });\n};\nfunction getNextSortedValues(prevValues = [], nextValue, atIndex) {\n const nextValues = [...prevValues];\n nextValues[atIndex] = nextValue;\n return nextValues.sort((a, b) => a - b);\n}\nfunction convertValueToPercentage(value, min, max) {\n const maxSteps = max - min;\n const percentPerStep = 100 / maxSteps;\n const percentage = percentPerStep * (value - min);\n return clamp(percentage, [0, 100]);\n}\nfunction getLabel(index, totalValues) {\n if (totalValues > 2) {\n return `Value ${index + 1} of ${totalValues}`;\n } else if (totalValues === 2) {\n return [\"Minimum\", \"Maximum\"][index];\n } else {\n return void 0;\n }\n}\nfunction getClosestValueIndex(values, nextValue) {\n if (values.length === 1) return 0;\n const distances = values.map((value) => Math.abs(value - nextValue));\n const closestDistance = Math.min(...distances);\n return distances.indexOf(closestDistance);\n}\nfunction getThumbInBoundsOffset(width, left, direction) {\n const halfWidth = width / 2;\n const halfPercent = 50;\n const offset = linearScale([0, halfPercent], [0, halfWidth]);\n return (halfWidth - offset(left) * direction) * direction;\n}\nfunction getStepsBetweenValues(values) {\n return values.slice(0, -1).map((value, index) => values[index + 1] - value);\n}\nfunction hasMinStepsBetweenValues(values, minStepsBetweenValues) {\n if (minStepsBetweenValues > 0) {\n const stepsBetweenValues = getStepsBetweenValues(values);\n const actualMinStepsBetweenValues = Math.min(...stepsBetweenValues);\n return actualMinStepsBetweenValues >= minStepsBetweenValues;\n }\n return true;\n}\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction getDecimalCount(value) {\n return (String(value).split(\".\")[1] || \"\").length;\n}\nfunction roundValue(value, decimalCount) {\n const rounder = Math.pow(10, decimalCount);\n return Math.round(value * rounder) / rounder;\n}\nvar Root = Slider;\nvar Track = SliderTrack;\nvar Range = SliderRange;\nvar Thumb = SliderThumb;\nexport {\n Range,\n Root,\n Slider,\n SliderRange,\n SliderThumb,\n SliderTrack,\n Thumb,\n Track,\n createSliderScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/collection/src/Collection.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createCollection(name) {\n const PROVIDER_NAME = name + \"CollectionProvider\";\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: /* @__PURE__ */ new Map() }\n );\n const CollectionProvider = (props) => {\n const { scope, children } = props;\n const ref = React.useRef(null);\n const itemMap = React.useRef(/* @__PURE__ */ new Map()).current;\n return /* @__PURE__ */ jsx(CollectionProviderImpl, { scope, itemMap, collectionRef: ref, children });\n };\n CollectionProvider.displayName = PROVIDER_NAME;\n const COLLECTION_SLOT_NAME = name + \"CollectionSlot\";\n const CollectionSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return /* @__PURE__ */ jsx(Slot, { ref: composedRefs, children });\n }\n );\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n const ITEM_SLOT_NAME = name + \"CollectionItemSlot\";\n const ITEM_DATA_ATTR = \"data-radix-collection-item\";\n const CollectionItemSlot = React.forwardRef(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...itemData });\n return () => void context.itemMap.delete(ref);\n });\n return /* @__PURE__ */ jsx(Slot, { ...{ [ITEM_DATA_ATTR]: \"\" }, ref: composedRefs, children });\n }\n );\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n function useCollection(scope) {\n const context = useCollectionContext(name + \"CollectionConsumer\", scope);\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current) - orderedNodes.indexOf(b.ref.current)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n return getItems;\n }\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope\n ];\n}\nexport {\n createCollection\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-previous/src/usePrevious.tsx\nimport * as React from \"react\";\nfunction usePrevious(value) {\n const ref = React.useRef({ value, previous: value });\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\nexport {\n usePrevious\n};\n//# sourceMappingURL=index.mjs.map\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default x => () => x;\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function number(x) {\n return +x;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import { addDays } from \"./addDays.mjs\";\nimport { addMonths } from \"./addMonths.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param duration - The object with years, months, weeks, days, hours, minutes and seconds to be added.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\\\\-7\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport function add(date, duration) {\n const {\n years = 0,\n months = 0,\n weeks = 0,\n days = 0,\n hours = 0,\n minutes = 0,\n seconds = 0,\n } = duration;\n\n // Add years and months\n const _date = toDate(date);\n const dateWithMonths =\n months || years ? addMonths(_date, months + years * 12) : _date;\n\n // Add weeks and days\n const dateWithDays =\n days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths;\n\n // Add days, hours, minutes and seconds\n const minutesToAdd = minutes + hours * 60;\n const secondsToAdd = seconds + minutesToAdd * 60;\n const msToAdd = secondsToAdd * 1000;\n const finalDate = constructFrom(date, dateWithDays.getTime() + msToAdd);\n\n return finalDate;\n}\n\n// Fallback for modularized imports:\nexport default add;\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nexport function differenceInDays(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const sign = compareLocalAsc(_dateLeft, _dateRight);\n const difference = Math.abs(differenceInCalendarDays(_dateLeft, _dateRight));\n\n _dateLeft.setDate(_dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastDayNotFull = Number(\n compareLocalAsc(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n const diff =\n dateLeft.getFullYear() - dateRight.getFullYear() ||\n dateLeft.getMonth() - dateRight.getMonth() ||\n dateLeft.getDate() - dateRight.getDate() ||\n dateLeft.getHours() - dateRight.getHours() ||\n dateLeft.getMinutes() - dateRight.getMinutes() ||\n dateLeft.getSeconds() - dateRight.getSeconds() ||\n dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n// Fallback for modularized imports:\nexport default differenceInDays;\n","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount) {\n return addDays(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","var objectConstructor = {}.constructor;\nexport default function isObject(object) {\n return object !== undefined && object !== null && object.constructor === objectConstructor;\n}\n//# sourceMappingURL=isObject.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isObject from './helpers/isObject.js'; // Extracts the following properties from function arguments:\n// * input `text`\n// * `options` object\n// * `metadata` JSON\n\nexport default function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n}\n//# sourceMappingURL=normalizeArguments.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// https://stackoverflow.com/a/46971044/970769\n// \"Breaking changes in Typescript 2.1\"\n// \"Extending built-ins like Error, Array, and Map may no longer work.\"\n// \"As a recommendation, you can manually adjust the prototype immediately after any super(...) calls.\"\n// https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\nvar ParseError = /*#__PURE__*/function (_Error) {\n _inherits(ParseError, _Error);\n\n var _super = _createSuper(ParseError);\n\n function ParseError(code) {\n var _this;\n\n _classCallCheck(this, ParseError);\n\n _this = _super.call(this, code); // Set the prototype explicitly.\n // Any subclass of FooError will have to manually set the prototype as well.\n\n Object.setPrototypeOf(_assertThisInitialized(_this), ParseError.prototype);\n _this.name = _this.constructor.name;\n return _this;\n }\n\n return _createClass(ParseError);\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nexport { ParseError as default };\n//# sourceMappingURL=ParseError.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport compare from './tools/semver-compare.js';\nimport isObject from './helpers/isObject.js'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata = /*#__PURE__*/function () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n // The test case could be found by searching for \"nonGeographical\".\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n // In that metadata, there was no concept of \"non-geographic\" metadata\n // so metadata for `001` country code was stored along with other countries.\n // The test case can be found by searching for:\n // \"should work around `nonGeographic` metadata not existing\".\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan = /*#__PURE__*/function () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n } // Is always present.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n } // Is only present when a country supports multiple IDD prefixes.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n } // \"possible length\" data is always present in Google's metadata.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format = /*#__PURE__*/function () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type = /*#__PURE__*/function () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!isObject(metadata) || !isObject(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(isObject(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + typeOf(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar typeOf = function typeOf(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries.hasOwnProperty(country);\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants.js'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants.js';\nimport createExtensionPattern from './extension/createExtensionPattern.js'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; // This regular expression isn't present in Google's `libphonenumber`\n// and is only used to determine whether the phone number being input\n// is too short for it to even consider it a \"valid\" number.\n// This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nvar VALID_PHONE_NUMBER_START_REG_EXP = new RegExp('^' + '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){1,2}' + '$', 'i');\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n} // This is just a way to differentiate between a really invalid phone\n// number like \"abcde\" and a valid phone number that a user has just\n// started inputting, like \"+1\" or \"1\": both these cases would be\n// considered `NOT_A_NUMBER` by Google's `libphonenumber`, but this\n// library can provide a more detailed error message — whether it's\n// really \"not a number\", or is it just a start of a valid phone number.\n\nexport function isViablePhoneNumberStart(number) {\n return VALID_PHONE_NUMBER_START_REG_EXP.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern.js'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { parseDigit } from './helpers/parseDigits.js';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {function?} emitEvent - An optional \"emit event\" function.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters, emitEvent) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n // `emitEvent` argument was added to this `export`ed function on Dec 26th, 2023.\n // Any 3rd-party code that used to `import` and call this function before that\n // won't be passing any `emitEvent` argument.\n //\n // The addition of the `emitEvent` argument was to fix the slightly-weird behavior\n // of parsing an input string when the user inputs something like `\"2+7\"\n // https://github.com/catamphetamine/react-phone-number-input/issues/437\n //\n // If the parser encounters an unexpected `+` in a string being parsed\n // then it simply discards that out-of-place `+` and any following characters.\n //\n if (typeof emitEvent === 'function') {\n emitEvent('end');\n }\n\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = _createForOfIteratorHelperLoose(b), _step; !(_step = _iterator()).done;) {\n var element = _step.value;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays.js';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\n/**\r\n * Checks if a phone number is \"possible\" (basically just checks its length).\r\n *\r\n * isPossible(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n } // Old metadata (< 1.0.18) had no \"possible length\" data.\n\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossible.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returns an empty object — `{}` —\n // that means that the phone number is malformed,\n // so it can't possibly be valid.\n\n if (!input.country && !input.countryCallingCode) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // `MOBILE` type pattern isn't included if it matched `FIXED_LINE` one.\n // For example, for \"US\" country.\n // Old metadata (< `1.0.18`) had a specific \"types\" data structure\n // that happened to be `undefined` for `MOBILE` in that case.\n // Newer metadata (>= `1.0.18`) has another data structure that is\n // not `undefined` for `MOBILE` in that case (it's just an empty array).\n // So this `if` is just for backwards compatibility with old metadata.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _iterator = _createForOfIteratorHelperLoose(NON_FIXED_LINE_PHONE_TYPES), _step; !(_step = _iterator()).done;) {\n var type = _step.value;\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from '../metadata.js';\n/**\r\n * Returns a list of countries that the phone number could potentially belong to.\r\n * @param {string} callingCode — Calling code.\r\n * @param {string} nationalNumber — National (significant) number.\r\n * @param {object} metadata — Metadata.\r\n * @return {string[]} A list of possible countries.\r\n */\n\nexport default function getPossibleCountriesForNumber(callingCode, nationalNumber, metadata) {\n var _metadata = new Metadata(metadata);\n\n var possibleCountries = _metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return [];\n }\n\n return possibleCountries.filter(function (country) {\n return couldNationalNumberBelongToCountry(nationalNumber, country, metadata);\n });\n}\n\nfunction couldNationalNumberBelongToCountry(nationalNumber, country, metadata) {\n var _metadata = new Metadata(metadata);\n\n _metadata.selectNumberingPlan(country);\n\n if (_metadata.numberingPlan.possibleLengths().indexOf(nationalNumber.length) >= 0) {\n return true;\n }\n\n return false;\n}\n//# sourceMappingURL=getPossibleCountriesForNumber.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle.js'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import { VALID_PUNCTUATION } from '../constants.js'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import Metadata from '../metadata.js';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (countryMetadata.defaultIDDPrefix()) {\n return countryMetadata.defaultIDDPrefix();\n }\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nimport Metadata, { getCountryCallingCode } from './metadata.js';\nimport getIddPrefix from './helpers/getIddPrefix.js';\nimport { formatRFC3966 } from './helpers/RFC3966.js';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n }\n};\n/**\r\n * Formats a phone number.\r\n *\r\n * format(phoneNumberInstance, 'INTERNATIONAL', { ..., v2: true }, metadata)\r\n * format(phoneNumberInstance, 'NATIONAL', { ..., v2: true }, metadata)\r\n *\r\n * format({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', { ... }, metadata)\r\n * format({ phone: '8005553535', country: 'RU' }, 'NATIONAL', undefined, metadata)\r\n *\r\n * @param {object|PhoneNumber} input — If `options.v2: true` flag is passed, the `input` should be a `PhoneNumber` instance. Otherwise, it should be an object of shape `{ phone: '...', country: '...' }`.\r\n * @param {string} format\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {string}\r\n */\n\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread(_objectSpread({}, DEFAULT_OPTIONS), options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nexport function chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = _createForOfIteratorHelperLoose(availableFormats), _step; !(_step = _iterator()).done;) {\n var format = _step.value;\n\n // Validate leading digits.\n // The test case for \"else path\" could be found by searching for\n // \"format.leadingDigitsPatterns().length === 0\".\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber.js'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = _createForOfIteratorHelperLoose(text.split(';')), _step; !(_step = _iterator()).done;) {\n var part = _step.value;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref) {\n var number = _ref.number,\n ext = _ref.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Metadata from './metadata.js';\nimport isPossibleNumber from './isPossible.js';\nimport isValidNumber from './isValid.js'; // import checkNumberLength from './helpers/checkNumberLength.js'\n\nimport getNumberType from './helpers/getNumberType.js';\nimport getPossibleCountriesForNumber from './helpers/getPossibleCountriesForNumber.js';\nimport formatNumber from './format.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber = /*#__PURE__*/function () {\n /**\r\n * @param {string} countryOrCountryCallingCode\r\n * @param {string} nationalNumber\r\n * @param {object} metadata — Metadata JSON\r\n * @return {PhoneNumber}\r\n */\n function PhoneNumber(countryOrCountryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryOrCountryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n if (!metadata) {\n throw new TypeError('`metadata` not passed');\n }\n\n var _getCountryAndCountry = getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadata),\n country = _getCountryAndCountry.country,\n countryCallingCode = _getCountryAndCountry.countryCallingCode;\n\n this.country = country;\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber; // Exclude `metadata` property output from `PhoneNumber.toString()`\n // so that it doesn't clutter the console output of Node.js.\n // Previously, when Node.js did `console.log(new PhoneNumber(...))`,\n // it would output the whole internal structure of the `metadata` object.\n\n this.getMetadata = function () {\n return metadata;\n };\n }\n\n _createClass(PhoneNumber, [{\n key: \"setExt\",\n value: function setExt(ext) {\n this.ext = ext;\n }\n }, {\n key: \"getPossibleCountries\",\n value: function getPossibleCountries() {\n if (this.country) {\n return [this.country];\n }\n\n return getPossibleCountriesForNumber(this.countryCallingCode, this.nationalNumber, this.getMetadata());\n }\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.getMetadata());\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // This function was originally meant to be an equivalent for `validatePhoneNumberLength()`,\n // but later it was found out that it doesn't include the possible `TOO_SHORT` result\n // returned from `parsePhoneNumberWithError()` in the original `validatePhoneNumberLength()`,\n // so eventually I simply commented out this method from the `PhoneNumber` class\n // and just left the `validatePhoneNumberLength()` function, even though that one would require\n // and additional step to also validate the actual country / calling code of the phone number.\n // validateLength() {\n // \tconst metadata = new Metadata(this.getMetadata())\n // \tmetadata.selectNumberingPlan(this.countryCallingCode)\n // \tconst result = checkNumberLength(this.nationalNumber, metadata)\n // \tif (result !== 'IS_POSSIBLE') {\n // \t\treturn result\n // \t}\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }) : {\n v2: true\n }, this.getMetadata());\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n\nfunction getCountryAndCountryCallingCode(countryOrCountryCallingCode, metadataJson) {\n var country;\n var countryCallingCode;\n var metadata = new Metadata(metadataJson); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n if (isCountryCode(countryOrCountryCallingCode)) {\n country = countryOrCountryCallingCode;\n metadata.selectNumberingPlan(country);\n countryCallingCode = metadata.countryCallingCode();\n } else {\n countryCallingCode = countryOrCountryCallingCode;\n /* istanbul ignore if */\n\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(countryCallingCode)) {\n country = '001';\n }\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode\n };\n}\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport getNumberType from './helpers/getNumberType.js';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * isValid(phoneNumberInstance, { ..., v2: true }, metadata)\r\n *\r\n * isPossible({ phone: '8005553535', country: 'RU' }, { ... }, metadata)\r\n * isPossible({ phone: '8005553535', country: 'RU' }, undefined, metadata)\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(nationalNumber, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=isValid.js.map","import Metadata from '../metadata.js';\nimport { VALID_DIGITS } from '../constants.js';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport checkNumberLength from './checkNumberLength.js';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n carrierCode = _extractNationalNumbe.carrierCode,\n nationalNumber = _extractNationalNumbe.nationalNumber;\n\n if (nationalNumber !== number) {\n if (!shouldHaveExtractedNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // Check the national (significant) number length after extracting national prefix and carrier code.\n // Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature.\n\n\n if (metadata.possibleLengths()) {\n // The number remaining after stripping the national prefix and carrier code\n // should be long enough to have a possible length for the country.\n // Otherwise, don't strip the national prefix and carrier code,\n // since the original number could be a valid number.\n // This check has been copy-pasted \"as is\" from Google's original library:\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n // It doesn't check for the \"possibility\" of the original `number`.\n // I guess it's fine not checking that one. It works as is anyway.\n if (!isPossibleIncompleteNationalNumber(nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldHaveExtractedNationalPrefix(nationalNumberBefore, nationalNumberAfter, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(nationalNumberBefore, metadata.nationalNumberPattern()) && !matchesEntirely(nationalNumberAfter, metadata.nationalNumberPattern())) {\n return false;\n } // This \"is possible\" national number (length) check has been commented out\n // because it's superceded by the (effectively) same check done in the\n // `extractNationalNumber()` function after it calls `shouldHaveExtractedNationalPrefix()`.\n // In other words, why run the same check twice if it could only be run once.\n // // Check the national (significant) number length after extracting national prefix and carrier code.\n // // Fixes a minor \"weird behavior\" bug: https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/57\n // // (Legacy generated metadata (before `1.0.18`) didn't support the \"possible lengths\" feature).\n // if (metadata.possibleLengths()) {\n // \tif (isPossibleIncompleteNationalNumber(nationalNumberBefore, metadata) &&\n // \t\t!isPossibleIncompleteNationalNumber(nationalNumberAfter, metadata)) {\n // \t\treturn false\n // \t}\n // }\n\n\n return true;\n}\n\nfunction isPossibleIncompleteNationalNumber(nationalNumber, metadata) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n return false;\n\n default:\n return true;\n }\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. Even if a national prefix was extracted, it's not necessarily present in the returned object, so don't rely on its presence in the returned object in order to find out whether a national prefix has been extracted or not.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import stripIddPrefix from './stripIddPrefix.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport Metadata from '../metadata.js';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants.js';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCodeSource: string?, countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n }\n\n var isNumberWithIddPrefix; // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n isNumberWithIddPrefix = true;\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCodeSource: 'FROM_NUMBER_WITHOUT_PLUS_SIGN',\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n // No need to set it to `UNSPECIFIED`. It can be just `undefined`.\n // countryCallingCodeSource: 'UNSPECIFIED',\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCodeSource: isNumberWithIddPrefix ? 'FROM_NUMBER_WITH_IDD' : 'FROM_NUMBER_WITH_PLUS_SIGN',\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n} // The possible values for the returned `countryCallingCodeSource` are:\n//\n// Copy-pasted from:\n// https://github.com/google/libphonenumber/blob/master/resources/phonenumber.proto\n//\n// // The source from which the country_code is derived. This is not set in the\n// // general parsing method, but in the method that parses and keeps raw_input.\n// // New fields could be added upon request.\n// enum CountryCodeSource {\n// // Default value returned if this is not set, because the phone number was\n// // created using parse, not parseAndKeepRawInput. hasCountryCodeSource will\n// // return false if this is the case.\n// UNSPECIFIED = 0;\n//\n// // The country_code is derived based on a phone number with a leading \"+\",\n// // e.g. the French number \"+33 1 42 68 53 00\".\n// FROM_NUMBER_WITH_PLUS_SIGN = 1;\n//\n// // The country_code is derived based on a phone number with a leading IDD,\n// // e.g. the French number \"011 33 1 42 68 53 00\", as it is dialled from US.\n// FROM_NUMBER_WITH_IDD = 5;\n//\n// // The country_code is derived based on a phone number without a leading\n// // \"+\", e.g. the French number \"33 1 42 68 53 00\" when defaultCountry is\n// // supplied as France.\n// FROM_NUMBER_WITHOUT_PLUS_SIGN = 10;\n//\n// // The country_code is derived NOT based on the phone number itself, but\n// // from the defaultCountry parameter provided in the parsing function by the\n// // clients. This happens mostly for numbers written in the national format\n// // (without country code). For example, this would be set when parsing the\n// // French number \"01 42 68 53 00\", when defaultCountry is supplied as\n// // France.\n// FROM_DEFAULT_COUNTRY = 20;\n// }\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata.js';\nimport matchesEntirely from './matchesEntirely.js';\nimport extractNationalNumber from './extractNationalNumber.js';\nimport checkNumberLength from './checkNumberLength.js';\nimport getCountryCallingCode from '../getCountryCallingCode.js';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport Metadata from '../metadata.js';\nimport getNumberType from './getNumberType.js';\nexport default function getCountryByNationalNumber(nationalPhoneNumber, _ref) {\n var countries = _ref.countries,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata); // const matchingCountries = []\n\n for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done;) {\n var country = _step.value;\n metadata.country(country); // \"Leading digits\" patterns are only defined for about 20% of all countries.\n // By definition, matching \"leading digits\" is a sufficient but not a necessary\n // condition for a phone number to belong to a country.\n // The point of \"leading digits\" check is that it's the fastest one to get a match.\n // https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md#leading_digits\n // I'd suppose that \"leading digits\" patterns are mutually exclusive for different countries\n // because of the intended use of that feature.\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n // If both the `defaultCountry` and the \"main\" one match the phone number,\n // don't prefer the `defaultCountry` over the \"main\" one.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/154\n return country; // // If the `defaultCountry` is among the `matchingCountries` then return it.\n // if (defaultCountry) {\n // \tif (country === defaultCountry) {\n // \t\treturn country\n // \t}\n // \tmatchingCountries.push(country)\n // } else {\n // \treturn country\n // }\n }\n } // // Return the first (\"main\") one of the `matchingCountries`.\n // if (matchingCountries.length > 0) {\n // \treturn matchingCountries[0]\n // }\n\n}\n//# sourceMappingURL=getCountryByNationalNumber.js.map","import getCountryByNationalNumber from './getCountryByNationalNumber.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, _ref) {\n var nationalPhoneNumber = _ref.nationalNumber,\n defaultCountry = _ref.defaultCountry,\n metadata = _ref.metadata;\n\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n }\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return getCountryByNationalNumber(nationalPhoneNumber, {\n countries: possibleCountries,\n defaultCountry: defaultCountry,\n metadata: metadata.metadata\n });\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// When phone numbers are written in `RFC3966` format — `\"tel:+12133734253\"` —\n// they can have their \"calling code\" part written separately in a `phone-context` parameter.\n// Example: `\"tel:12133734253;phone-context=+1\"`.\n// This function parses the full phone number from the local number and the `phone-context`\n// when the `phone-context` contains a `+` sign.\nimport { VALID_DIGITS // PLUS_CHARS\n} from '../constants.js';\nexport var PLUS_SIGN = '+';\nvar RFC3966_VISUAL_SEPARATOR_ = '[\\\\-\\\\.\\\\(\\\\)]?';\nvar RFC3966_PHONE_DIGIT_ = '(' + '[' + VALID_DIGITS + ']' + '|' + RFC3966_VISUAL_SEPARATOR_ + ')';\nvar RFC3966_GLOBAL_NUMBER_DIGITS_ = '^' + '\\\\' + PLUS_SIGN + RFC3966_PHONE_DIGIT_ + '*' + '[' + VALID_DIGITS + ']' + RFC3966_PHONE_DIGIT_ + '*' + '$';\n/**\r\n * Regular expression of valid global-number-digits for the phone-context\r\n * parameter, following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_ = new RegExp(RFC3966_GLOBAL_NUMBER_DIGITS_, 'g'); // In this port of Google's library, we don't accept alpha characters in phone numbers.\n// const ALPHANUM_ = VALID_ALPHA_ + VALID_DIGITS\n\nvar ALPHANUM_ = VALID_DIGITS;\nvar RFC3966_DOMAINLABEL_ = '[' + ALPHANUM_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar VALID_ALPHA_ = 'a-zA-Z';\nvar RFC3966_TOPLABEL_ = '[' + VALID_ALPHA_ + ']+((\\\\-)*[' + ALPHANUM_ + '])*';\nvar RFC3966_DOMAINNAME_ = '^(' + RFC3966_DOMAINLABEL_ + '\\\\.)*' + RFC3966_TOPLABEL_ + '\\\\.?$';\n/**\r\n * Regular expression of valid domainname for the phone-context parameter,\r\n * following the syntax defined in RFC3966.\r\n */\n\nvar RFC3966_DOMAINNAME_PATTERN_ = new RegExp(RFC3966_DOMAINNAME_, 'g');\nexport var RFC3966_PREFIX_ = 'tel:';\nexport var RFC3966_PHONE_CONTEXT_ = ';phone-context=';\nexport var RFC3966_ISDN_SUBADDRESS_ = ';isub=';\n/**\r\n * Extracts the value of the phone-context parameter of `numberToExtractFrom`,\r\n * following the syntax defined in RFC3966.\r\n *\r\n * @param {string} numberToExtractFrom\r\n * @return {string|null} the extracted string (possibly empty), or `null` if no phone-context parameter is found.\r\n */\n\nexport default function extractPhoneContext(numberToExtractFrom) {\n var indexOfPhoneContext = numberToExtractFrom.indexOf(RFC3966_PHONE_CONTEXT_); // If no phone-context parameter is present\n\n if (indexOfPhoneContext < 0) {\n return null;\n }\n\n var phoneContextStart = indexOfPhoneContext + RFC3966_PHONE_CONTEXT_.length; // If phone-context parameter is empty\n\n if (phoneContextStart >= numberToExtractFrom.length) {\n return '';\n }\n\n var phoneContextEnd = numberToExtractFrom.indexOf(';', phoneContextStart); // If phone-context is not the last parameter\n\n if (phoneContextEnd >= 0) {\n return numberToExtractFrom.substring(phoneContextStart, phoneContextEnd);\n } else {\n return numberToExtractFrom.substring(phoneContextStart);\n }\n}\n/**\r\n * Returns whether the value of phoneContext follows the syntax defined in RFC3966.\r\n *\r\n * @param {string|null} phoneContext\r\n * @return {boolean}\r\n */\n\nexport function isPhoneContextValid(phoneContext) {\n if (phoneContext === null) {\n return true;\n }\n\n if (phoneContext.length === 0) {\n return false;\n } // Does phone-context value match pattern of global-number-digits or domainname.\n\n\n return RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_.test(phoneContext) || RFC3966_DOMAINNAME_PATTERN_.test(phoneContext);\n}\n//# sourceMappingURL=extractPhoneContext.js.map","import extractPhoneContext, { isPhoneContextValid, PLUS_SIGN, RFC3966_PREFIX_, RFC3966_PHONE_CONTEXT_, RFC3966_ISDN_SUBADDRESS_ } from './extractPhoneContext.js';\nimport ParseError from '../ParseError.js';\n/**\r\n * @param {string} numberToParse\r\n * @param {string} nationalNumber\r\n * @return {}\r\n */\n\nexport default function extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(numberToParse, _ref) {\n var extractFormattedPhoneNumber = _ref.extractFormattedPhoneNumber;\n var phoneContext = extractPhoneContext(numberToParse);\n\n if (!isPhoneContextValid(phoneContext)) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n var phoneNumberString;\n\n if (phoneContext === null) {\n // Extract a possible number from the string passed in.\n // (this strips leading characters that could not be the start of a phone number)\n phoneNumberString = extractFormattedPhoneNumber(numberToParse) || '';\n } else {\n phoneNumberString = ''; // If the phone context contains a phone number prefix, we need to capture\n // it, whereas domains will be ignored.\n\n if (phoneContext.charAt(0) === PLUS_SIGN) {\n phoneNumberString += phoneContext;\n } // Now append everything between the \"tel:\" prefix and the phone-context.\n // This should include the national number, an optional extension or\n // isdn-subaddress component. Note we also handle the case when \"tel:\" is\n // missing, as we have seen in some of the phone number inputs.\n // In that case, we append everything from the beginning.\n\n\n var indexOfRfc3966Prefix = numberToParse.indexOf(RFC3966_PREFIX_);\n var indexOfNationalNumber; // RFC 3966 \"tel:\" prefix is preset at this stage because\n // `isPhoneContextValid()` requires it to be present.\n\n /* istanbul ignore else */\n\n if (indexOfRfc3966Prefix >= 0) {\n indexOfNationalNumber = indexOfRfc3966Prefix + RFC3966_PREFIX_.length;\n } else {\n indexOfNationalNumber = 0;\n }\n\n var indexOfPhoneContext = numberToParse.indexOf(RFC3966_PHONE_CONTEXT_);\n phoneNumberString += numberToParse.substring(indexOfNationalNumber, indexOfPhoneContext);\n } // Delete the isdn-subaddress and everything after it if it is present.\n // Note extension won't appear at the same time with isdn-subaddress\n // according to paragraph 5.3 of the RFC3966 spec.\n\n\n var indexOfIsdn = phoneNumberString.indexOf(RFC3966_ISDN_SUBADDRESS_);\n\n if (indexOfIsdn > 0) {\n phoneNumberString = phoneNumberString.substring(0, indexOfIsdn);\n } // If both phone context and isdn-subaddress are absent but other\n // parameters are present, the parameters are left in nationalNumber.\n // This is because we are concerned about deleting content from a potential\n // number string when there is no strong evidence that the number is\n // actually written in RFC3966.\n\n\n if (phoneNumberString !== '') {\n return phoneNumberString;\n }\n}\n//# sourceMappingURL=extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants.js';\nimport ParseError from './ParseError.js';\nimport Metadata from './metadata.js';\nimport isViablePhoneNumber, { isViablePhoneNumberStart } from './helpers/isViablePhoneNumber.js';\nimport extractExtension from './helpers/extension/extractExtension.js';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber.js';\nimport getCountryCallingCode from './getCountryCallingCode.js';\nimport { isPossibleNumber } from './isPossible.js'; // import { parseRFC3966 } from './helpers/RFC3966.js'\n\nimport PhoneNumber from './PhoneNumber.js';\nimport matchesEntirely from './helpers/matchesEntirely.js';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractNationalNumber from './helpers/extractNationalNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport extractFormattedPhoneNumberFromPossibleRfc3966NumberUri from './helpers/extractFormattedPhoneNumberFromPossibleRfc3966NumberUri.js'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // Examples:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\n/**\r\n * Parses a phone number.\r\n *\r\n * parse('123456789', { defaultCountry: 'RU', v2: true }, metadata)\r\n * parse('123456789', { defaultCountry: 'RU' }, metadata)\r\n * parse('123456789', undefined, metadata)\r\n *\r\n * @param {string} input\r\n * @param {object} [options]\r\n * @param {object} metadata\r\n * @return {object|PhoneNumber?} If `options.v2: true` flag is passed, it returns a `PhoneNumber?` instance. Otherwise, returns an object of shape `{ phone: '...', country: '...' }` (or just `{}` if no phone number was parsed).\r\n */\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2, options.extract),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext,\n error = _parseInput.error; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n if (error === 'TOO_SHORT') {\n throw new ParseError('TOO_SHORT');\n }\n\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n countryCallingCodeSource = _parsePhoneNumber.countryCallingCodeSource,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n phoneNumber.__countryCallingCodeSource = countryCallingCodeSource;\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} [extract] — If `false`, then will parse the entire `text` as a phone number.\r\n * @param {boolean} [throwOnError] — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nfunction _extractFormattedPhoneNumber(text, extract, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n }\n\n if (extract === false) {\n return text;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @param {boolean} v2 - Legacy API functions don't pass `v2: true` flag.\r\n * @param {boolean} [extract] - Whether to extract a phone number from `text`, or attempt to parse the entire text as a phone number.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\n\nfunction parseInput(text, v2, extract) {\n // // Parse RFC 3966 phone number URI.\n // if (text && text.indexOf('tel:') === 0) {\n // \treturn parseRFC3966(text)\n // }\n // let number = extractFormattedPhoneNumber(text, extract, v2)\n var number = extractFormattedPhoneNumberFromPossibleRfc3966NumberUri(text, {\n extractFormattedPhoneNumber: function extractFormattedPhoneNumber(text) {\n return _extractFormattedPhoneNumber(text, extract, v2);\n }\n }); // If the phone number is not viable, then abort.\n\n if (!number) {\n return {};\n }\n\n if (!isViablePhoneNumber(number)) {\n if (isViablePhoneNumberStart(number)) {\n return {\n error: 'TOO_SHORT'\n };\n }\n\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCodeSource = _extractCountryCallin.countryCallingCodeSource,\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is passed in \"national\" format\n // then `number` is defined and `countryCallingCode` is `undefined`.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCodeSource: countryCallingCodeSource,\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, {\n nationalNumber: nationalNumber,\n defaultCountry: defaultCountry,\n metadata: metadata\n });\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n countryCallingCodeSource: countryCallingCodeSource,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parse from './parse.js';\nexport default function parsePhoneNumberWithError(text, options, metadata) {\n return parse(text, _objectSpread(_objectSpread({}, options), {}, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumberWithError_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumberWithError from './parsePhoneNumberWithError_.js';\nimport ParseError from './ParseError.js';\nimport { isSupportedCountry } from './metadata.js';\nexport default function parsePhoneNumber(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread(_objectSpread({}, options), {}, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumberWithError(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isPossiblePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = parsePhoneNumber(text, options, metadata);\n return phoneNumber && phoneNumber.isPossible() || false;\n}\n//# sourceMappingURL=isPossiblePhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isPossiblePhoneNumber as _isPossiblePhoneNumber } from '../../core/index.js'\r\n\r\nexport function isPossiblePhoneNumber() {\r\n\treturn withMetadataArgument(_isPossiblePhoneNumber, arguments)\r\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport normalizeArguments from './normalizeArguments.js';\nimport parsePhoneNumber from './parsePhoneNumber_.js';\nexport default function isValidPhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n options = _objectSpread(_objectSpread({}, options), {}, {\n extract: false\n });\n var phoneNumber = parsePhoneNumber(text, options, metadata);\n return phoneNumber && phoneNumber.isValid() || false;\n}\n//# sourceMappingURL=isValidPhoneNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { isValidPhoneNumber as _isValidPhoneNumber } from '../../core/index.js'\r\n\r\nexport function isValidPhoneNumber() {\r\n\treturn withMetadataArgument(_isValidPhoneNumber, arguments)\r\n}","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([457]\\\\d{6})$|1\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2457]\\\\d{6})$|1\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"(?:11|[89]\\\\d\\\\d)\\\\d{8}|[2368]\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"([267]\\\\d{6})$|1\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7}(?:\\\\d(?:\\\\d{2})?)?|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"(183[12])|0\",0,0,0,[[\"(?:(?:(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\\\d|2[0-8]))\\\\d|3(?:(?:[0-3589]\\\\d|6[1-9]|7[0-35-9])\\\\d|4(?:[0-578]\\\\d|90)))\\\\d\\\\d|8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\\\d|7[89]|9[0-4])|3\\\\d\\\\d)|(?:6[0-8]|[78]\\\\d)\\\\d{3}|9(?:[02-9]\\\\d{3}|1(?:(?:[0-58]\\\\d|6[0135-9])\\\\d|7(?:0[0-24-9]|[1-9]\\\\d)|9(?:[0-46-9]\\\\d|5[0-79])))))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365[45]|46\",\"1[28]|2|365(?:4|5[02])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"[1-469]\\\\d{9}|8[0-79]\\\\d{7,8}|[2-79]\\\\d{8}|[2-9]\\\\d{7}|[3-9]\\\\d{6}|[57-9]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]|2[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"00800\\\\d{7}|[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9,12],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[02-4679]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:01\\\\d|[24-689])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"0\"]]]],\"BL\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|3[3-7]|5[12]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"8001\\\\d{5}|(?:[2-467]\\\\d|50)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[235]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-46-9]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([3-8]\\\\d{6})$|1\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"(?:0800|(?:[37]|800)\\\\d)\\\\d{6}|(?:[2-6]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[24-6]|3[15-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[7,10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\\\d{6}\",[10]],[\"\",[10]],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\",[10]],[\"900[2-9]\\\\d{6}\",[10]],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\\\d{6}\",[10]],0,[\"310\\\\d{4}\",[7]],0,[\"600[2-9]\\\\d{6}\",[10]]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CD\":[\"243\",\"00\",\"(?:(?:[189]|5\\\\d)\\\\d|2)\\\\d{7}|[1-68]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"5\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d)(\\\\d{5})\",\"$1 $2 $3 $4\",[\"2\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"0\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-36]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"[26]\\\\d{8}|88\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]|88\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"(?:(?:1[03-689]|2\\\\d)\\\\d\\\\d|6)\\\\d{8}|1\\\\d{10}|[126]\\\\d{6}(?:\\\\d(?:\\\\d{2})?)?|86\\\\d{5,6}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{5,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]\",\"(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\",\"10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\\\d|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"(1(?:[12]\\\\d|79)\\\\d\\\\d)|0\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:46|60\\\\d\\\\d)\\\\d{6}|(?:1\\\\d|[39])\\\\d{9}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"46\"]],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"6|90\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3[0-357]|91\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"(?:[2-7]|8\\\\d\\\\d)\\\\d{7}|[2-47]\\\\d{6}|[34]\\\\d{5}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[56]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{8}(?:\\\\d{2})?|8[0-24-9]\\\\d{7})|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10,12],0,\"0\",0,\"([59]\\\\d{7})$|0\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:79[01]|83[0-389]|94[0-4])\\\\d{5}|4(?:[0-36]\\\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{6}(?:\\\\d{2})?|45[0-4]\\\\d{3})|13\\\\d{4}\",[6,8,10,12]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"96\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[34]0|69|8\\\\d)\\\\d\\\\d?|49(?:37|49|60|7[089]|9\\\\d)\\\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\\\d{1,8}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}|49(?:[015]\\\\d|2[13]|31|[46][1-8])\\\\d{1,9}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[03568]\",\"15(?:[0568]|31)\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8001|8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{8})\",\"$1 $2\",[\"1\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-579]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-579]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{5})\",\"$1\",[\"20[2-59]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"(?:[1-3]0|[68])0|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[14]|2[09]|50|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"]],0,0,\"0(11\\\\d{6}|60\\\\d{6}|61\\\\d{6}|6[256]\\\\d{6}|7[467]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[0-35])|4(?:(?:[0-5]\\\\d|70)\\\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\\\d|6(?:[0-4]\\\\d|50))\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[0-3]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94\\\\d|7093)\\\\d{5}|(?:80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]|9[47]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[89]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"([25-9]\\\\d{5})$|0\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"(?:[25]\\\\d|60)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d|70)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-9]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\\\d)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|8\\\\d{9,11}|(?:[269]\\\\d|70)\\\\d{8}\",[10,11,12],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{5})\",\"$1 $2 $3\",[\"8\"]]]],\"GT\":[\"502\",\"00\",\"80\\\\d{6}|(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-8]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:[2-8]\\\\d{3}|9008)\\\\d{3}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4,7}|(?:[2-7]|9\\\\d{3})\\\\d{7}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6|7[245]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-57]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"(?:[2-489]\\\\d|55)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"00[1-9]\\\\d{9,14}|(?:[1-36]|8\\\\d{5})\\\\d{6}|00\\\\d{9}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([25-8]\\\\d{5})$|0\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|1\\\\d{8,10}|3(?:[0-8]\\\\d{7,10}|9\\\\d{7,8})|(?:43|55|70)\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?\",[6,7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[2-5])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1(?:44|[679])|[378]|43\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]|14\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\",[6,7,8,9,10,11]],[\"3[2-9]\\\\d{7,8}|(?:31|43)\\\\d{8}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d{3}|89(?:2\\\\d|3[04]|4(?:[0-4]|[5-9]\\\\d\\\\d)|5[0-4]))\\\\d\\\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],[\"3[2-8]\\\\d{9,10}\",[11,12]],0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"([0-24-8]\\\\d{5})$|0\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97\\\\d))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\",0,\"(000[259]\\\\d{6})$|(?:(?:003768)0?)|0\",\"$1\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|[235-9]\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"18\\\\d{5}|(?:[2569]\\\\d|41)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[245]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"(?:33622|8\\\\d{8})\\\\d{5}|[78]\\\\d{9}\",[10,14],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[0135-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[27-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-8]\\\\d{6})$|1\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"[68]\\\\d{8}|(?:[2378]\\\\d|90)\\\\d{5}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2379]|8(?:0[09]|7)\",\"[2379]|8(?:0(?:02|9)|7)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"(1001)|0\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:[245]\\\\d|33|77|88)\\\\d{7}|(?:2\\\\d|[4-6])\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4[67]|[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(0-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(0-$1)\",1]],\"0\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:2(?:[0-25-79]\\\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:[0167]\\\\d|2[0-4]|5[01]|8[0-3]))\\\\d{6}\"],[\"80[0-7]\\\\d{6}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"(?:592(?:4[0-2]|93)|80[89]\\\\d\\\\d)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"(?:[3489]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[389]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590\\\\d|7090)\\\\d{5}|(?:69|80|9\\\\d)\\\\d{7}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\\\d{4}\"],[\"(?:69(?:0\\\\d\\\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\\\d)|6(?:1[016-9]|5[0-4]|[67]\\\\d))|7090[0-4])\\\\d{4}\"],[\"80[0-5]\\\\d{6}\"],0,0,0,0,0,[\"9(?:(?:39[5-7]|76[018])\\\\d|475[0-5])\\\\d{4}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"([24-9]\\\\d{6})$|0\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2|34[47]|4(?:[37]7|5[47]|64)\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|452|678|86\",\"[12]|452|6788|86\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[5-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"0800\\\\d{3}|(?:28|[68]\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"(?:596\\\\d|7091)\\\\d{5}|(?:69|[89]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-79]|8(?:0[6-9]|[36])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"([34]\\\\d{6})$|1\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[57]|8\\\\d\\\\d)\\\\d{7}|[2-468]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57]\"]],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"8\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[34679]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"(?:[1289]\\\\d|31|77)\\\\d{7}|1\\\\d{6}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9]|53)|8\",\"1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1(?:[367]|80)\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"(?:050|[2-57-9]\\\\d\\\\d)\\\\d{3}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[02-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[0467]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"38\\\\d{6}|[78]\\\\d{9,13}|(?:20|9\\\\d)\\\\d{8}\",[8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"20[129]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|8\\\\d{6,9}|9\\\\d{6,10}|1\\\\d{4,5}\",[5,6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-578]|91\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-59]|[67][2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[4-7]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[1289]\\\\d{9}|50\\\\d{5}(?:\\\\d{2,3})?|[27-9]\\\\d{7,8}|(?:[34]\\\\d|6[0-35-9])\\\\d{6}|8\\\\d{4,6}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-79]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|8|90\",\"50(?:[0367]|88)|8|90\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[589]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|800\\\\d{5,6}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"(?:00800|8\\\\d{3})\\\\d{6}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"00|19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,\"00\",\" Anexo \"],\"PF\":[\"689\",\"00\",\"4\\\\d{5}(?:\\\\d{2})?|8\\\\d{7,8}\",[6,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4|8[7-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"(?:[2-7]|9\\\\d)\\\\d{8}|2\\\\d{5}|(?:1800|8)\\\\d{7,9}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"(?:6|8\\\\d\\\\d)\\\\d{7}|[1-9]\\\\d{6}(?:\\\\d{2})?|[26]\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|20|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}|(?:708|8\\\\d\\\\d)\\\\d{6}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"1693\\\\d{5}|(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"16|[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"800\\\\d{4}|(?:2|800)\\\\d{6}|(?:0080|[3-7])\\\\d{7}\",[7,8,9,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[16]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[3-7]\"]]]],\"RE\":[\"262\",\"00\",\"709\\\\d{6}|(?:26|[689]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"26(?:2\\\\d\\\\d|3(?:0\\\\d|1[0-6]))\\\\d{4}\"],[\"(?:69(?:2\\\\d\\\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\\\d{4}\"],[\"80\\\\d{7}\"],[\"89[1-37-9]\\\\d{6}\"],0,0,0,0,[\"9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\\\d{4}\"],[\"8(?:1[019]|2[0156]|84|90)\\\\d{6}\"]]],\"RO\":[\"40\",\"00\",\"(?:[236-8]\\\\d|90)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"8\\\\d{13}|[347-9]\\\\d{9}\",[10,14],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[349]|8(?:[02-7]|1[1-8])\"],\"8 ($1)\",1],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"8\"],\"8 ($1)\"]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"[6-9]\\\\d{6}|[1-6]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"(?:[2489]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10,12],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44|9)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-9]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[489]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[237-9]\\\\d|66)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d|93)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"(?:2|90)4|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[348]|64|79|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[0-35-9]|77|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|(?:80\\\\d|900)\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"(5\\\\d{6})$|1\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-359]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-4]|5[1-3]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[59]\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-479]\\\\d{6})$|1\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[689]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[26-9]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"(?:001800|[2-57]|[689]\\\\d)\\\\d{7}|1\\\\d{7,9}\",[8,9,10,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"[0-57-9]\\\\d{8}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"44[02-479]|[34]7\"]],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[1245]|3[12])\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[0-57-9]\"]]],0,0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"(?:[1-6]\\\\d|71)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[67]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|(?:[5-8]\\\\d\\\\d|999)\\\\d)\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-9]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[01589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|61[06])\",\"5(?:[0-59]|61[06]1)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-46-8]\\\\d{6})$|1\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[25-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])\",\"3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|89|9[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}|3\\\\d{6}\",[10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"310\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:3052(?:0[0-8]|[1-9]\\\\d)|5056(?:[0-35-9]\\\\d|4[468])|7302[0-4]\\\\d)\\\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\\\d{6}\"],0,0,0,[\"305209\\\\d{4}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"0004\\\\d{2,9}|[1249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[6,7,8,9,10,11,12,13],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[49]0|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[124]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3 $4\",[\"0\"]]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"00\",\"(?:20|33|[5-79]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-9]\"]]]],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11,12],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-7]\\\\d{6})$|1\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"([2-578]\\\\d{6})$|1\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"([2-9]\\\\d{6})$|1\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[357-9]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"[57-9]\\\\d{6}|(?:[238]\\\\d|48)\\\\d{3}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]]]],\"WF\":[\"681\",\"00\",\"(?:40|72|8\\\\d{4})\\\\d{4}|[89]\\\\d{5}\",[6,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[47-9]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"2\\\\d{7,8}|3\\\\d{7,11}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2|39\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7,10})\",\"$1 $2\",[\"3\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7(?:[24-6]|8[0-7])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"7093\\\\d{5}|(?:80|9\\\\d)\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"269(?:0[0-467]|15|5[0-4]|6\\\\d|[78]0)\\\\d{4}\"],[\"(?:639(?:0[0-79]|1[019]|[267]\\\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\\\d{4}\"],[\"80\\\\d{7}\"],0,0,0,0,0,[\"9(?:(?:39|47)8[01]|769\\\\d)\\\\d{4}\"]]],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"800\\\\d{6}|(?:21|63|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"(?:00|[1-9]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"\\\\d\"]]],0,0,0,0,0,0,[0,0,[\"(?:00|[1-9]\\\\d)\\\\d{6}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"7\\\\d{11}|[235-7]\\\\d{8}\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]|774[45])\\\\d{8}|7[6-8]\\\\d{7}\"],0,0,0,0,0,0,[\"2\\\\d{8}\",[9]]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"6\\\\d{9}|[0-36-9]\\\\d{8}\",[9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-37-9]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{5,6})\",\"$1 $2 $3\",[\"6\"]]],0,0,0,0,0,0,[0,[\"6\\\\d{9}|[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|[19]\\\\d{7}|(?:[25]\\\\d\\\\d|4)\\\\d{7}(?:\\\\d{2})?\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"49\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"1[36]|9\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"16\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|23|3(?:[15]|4[57])|4|51\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-35]\"]]],0,0,0,0,0,0,[0,[\"342\\\\d{4}|(?:337|49)\\\\d{6}|(?:3(?:2|47|7\\\\d{3})|50\\\\d{3})\\\\d{7}\",[7,8,9,10,12]],0,0,0,[\"348[57]\\\\d{7}\",[11]],0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:345\\\\d|9[89])\\\\d{6}|(?:10|2(?:3|85\\\\d)|3(?:[15]|[69]\\\\d\\\\d)|4[15-8]|51)\\\\d{8}\"]]],\"883\":[\"883\",0,\"(?:[1-4]\\\\d|51)\\\\d{6,10}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,8})\",\"$1 $2 $3\",[\"[14]|2[24-689]|3[02-689]|51[24-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"21\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"51[13]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[235]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"(?:2(?:00\\\\d\\\\d|10)|(?:370[1-9]|51\\\\d0)\\\\d)\\\\d{7}|51(?:00\\\\d{5}|[24-9]0\\\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\\\d{5,9}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.min.json.js'\r\n\r\nexport default function withMetadataArgument(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","import React from 'react';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isDateObject = (value) => value instanceof Date;\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\nvar isObject = (value) => !isNullOrUndefined(value) &&\n !Array.isArray(value) &&\n isObjectType(value) &&\n !isDateObject(value);\n\nvar getEventValue = (event) => isObject(event) && event.target\n ? isCheckBoxInput(event.target)\n ? event.target.checked\n : event.target.value\n : event;\n\nvar getNodeParentName = (name) => name.substring(0, name.search(/\\.\\d+(\\.|$)/)) || name;\n\nvar isNameInFieldArray = (names, name) => names.has(getNodeParentName(name));\n\nvar isPlainObject = (tempObject) => {\n const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;\n return (isObject(prototypeCopy) && prototypeCopy.hasOwnProperty('isPrototypeOf'));\n};\n\nvar isWeb = typeof window !== 'undefined' &&\n typeof window.HTMLElement !== 'undefined' &&\n typeof document !== 'undefined';\n\nfunction cloneObject(data) {\n let copy;\n const isArray = Array.isArray(data);\n const isFileListInstance = typeof FileList !== 'undefined' ? data instanceof FileList : false;\n if (data instanceof Date) {\n copy = new Date(data);\n }\n else if (data instanceof Set) {\n copy = new Set(data);\n }\n else if (!(isWeb && (data instanceof Blob || isFileListInstance)) &&\n (isArray || isObject(data))) {\n copy = isArray ? [] : {};\n if (!isArray && !isPlainObject(data)) {\n copy = data;\n }\n else {\n for (const key in data) {\n if (data.hasOwnProperty(key)) {\n copy[key] = cloneObject(data[key]);\n }\n }\n }\n }\n else {\n return data;\n }\n return copy;\n}\n\nvar compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (object, path, defaultValue) => {\n if (!path || !isObject(object)) {\n return defaultValue;\n }\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);\n return isUndefined(result) || result === object\n ? isUndefined(object[path])\n ? defaultValue\n : object[path]\n : result;\n};\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar stringToPath = (input) => compact(input.replace(/[\"|']|\\]/g, '').split(/\\.|\\[/));\n\nvar set = (object, path, value) => {\n let index = -1;\n const tempPath = isKey(path) ? [path] : stringToPath(path);\n const length = tempPath.length;\n const lastIndex = length - 1;\n while (++index < length) {\n const key = tempPath[index];\n let newValue = value;\n if (index !== lastIndex) {\n const objValue = object[key];\n newValue =\n isObject(objValue) || Array.isArray(objValue)\n ? objValue\n : !isNaN(+tempPath[index + 1])\n ? []\n : {};\n }\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return;\n }\n object[key] = newValue;\n object = object[key];\n }\n return object;\n};\n\nconst EVENTS = {\n BLUR: 'blur',\n FOCUS_OUT: 'focusout',\n CHANGE: 'change',\n};\nconst VALIDATION_MODE = {\n onBlur: 'onBlur',\n onChange: 'onChange',\n onSubmit: 'onSubmit',\n onTouched: 'onTouched',\n all: 'all',\n};\nconst INPUT_VALIDATION_RULES = {\n max: 'max',\n min: 'min',\n maxLength: 'maxLength',\n minLength: 'minLength',\n pattern: 'pattern',\n required: 'required',\n validate: 'validate',\n};\n\nconst HookFormContext = React.createContext(null);\n/**\n * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @returns return all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst useFormContext = () => React.useContext(HookFormContext);\n/**\n * A provider component that propagates the `useForm` methods to all children components via [React Context](https://reactjs.org/docs/context.html) API. To be used with {@link useFormContext}.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformcontext) • [Demo](https://codesandbox.io/s/react-hook-form-v7-form-context-ytudi)\n *\n * @param props - all useForm methods\n *\n * @example\n * ```tsx\n * function App() {\n * const methods = useForm();\n * const onSubmit = data => console.log(data);\n *\n * return (\n * \n *
\n * \n * \n * \n *
\n * );\n * }\n *\n * function NestedInput() {\n * const { register } = useFormContext(); // retrieve all hook methods\n * return ;\n * }\n * ```\n */\nconst FormProvider = (props) => {\n const { children, ...data } = props;\n return (React.createElement(HookFormContext.Provider, { value: data }, children));\n};\n\nvar getProxyFormState = (formState, control, localProxyFormState, isRoot = true) => {\n const result = {\n defaultValues: control._defaultValues,\n };\n for (const key in formState) {\n Object.defineProperty(result, key, {\n get: () => {\n const _key = key;\n if (control._proxyFormState[_key] !== VALIDATION_MODE.all) {\n control._proxyFormState[_key] = !isRoot || VALIDATION_MODE.all;\n }\n localProxyFormState && (localProxyFormState[_key] = true);\n return formState[_key];\n },\n });\n }\n return result;\n};\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar shouldRenderFormState = (formStateData, _proxyFormState, updateFormState, isRoot) => {\n updateFormState(formStateData);\n const { name, ...formState } = formStateData;\n return (isEmptyObject(formState) ||\n Object.keys(formState).length >= Object.keys(_proxyFormState).length ||\n Object.keys(formState).find((key) => _proxyFormState[key] ===\n (!isRoot || VALIDATION_MODE.all)));\n};\n\nvar convertToArrayPayload = (value) => (Array.isArray(value) ? value : [value]);\n\nvar shouldSubscribeByName = (name, signalName, exact) => !name ||\n !signalName ||\n name === signalName ||\n convertToArrayPayload(name).some((currentName) => currentName &&\n (exact\n ? currentName === signalName\n : currentName.startsWith(signalName) ||\n signalName.startsWith(currentName)));\n\nfunction useSubscribe(props) {\n const _props = React.useRef(props);\n _props.current = props;\n React.useEffect(() => {\n const subscription = !props.disabled &&\n _props.current.subject &&\n _props.current.subject.subscribe({\n next: _props.current.next,\n });\n return () => {\n subscription && subscription.unsubscribe();\n };\n }, [props.disabled]);\n}\n\n/**\n * This custom hook allows you to subscribe to each form state, and isolate the re-render at the custom hook level. It has its scope in terms of form state subscription, so it would not affect other useFormState and useForm. Using this hook can reduce the re-render impact on large and complex form application.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useformstate) • [Demo](https://codesandbox.io/s/useformstate-75xly)\n *\n * @param props - include options on specify fields to subscribe. {@link UseFormStateReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, control } = useForm({\n * defaultValues: {\n * firstName: \"firstName\"\n * }});\n * const { dirtyFields } = useFormState({\n * control\n * });\n * const onSubmit = (data) => console.log(data);\n *\n * return (\n *
\n * \n * {dirtyFields.firstName &&

Field is dirty.

}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useFormState(props) {\n const methods = useFormContext();\n const { control = methods.control, disabled, name, exact } = props || {};\n const [formState, updateFormState] = React.useState(control._formState);\n const _mounted = React.useRef(true);\n const _localProxyFormState = React.useRef({\n isDirty: false,\n isLoading: false,\n dirtyFields: false,\n touchedFields: false,\n validatingFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n });\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n next: (value) => _mounted.current &&\n shouldSubscribeByName(_name.current, value.name, exact) &&\n shouldRenderFormState(value, _localProxyFormState.current, control._updateFormState) &&\n updateFormState({\n ...control._formState,\n ...value,\n }),\n subject: control._subjects.state,\n });\n React.useEffect(() => {\n _mounted.current = true;\n _localProxyFormState.current.isValid && control._updateValid(true);\n return () => {\n _mounted.current = false;\n };\n }, [control]);\n return React.useMemo(() => getProxyFormState(formState, control, _localProxyFormState.current, false), [formState, control]);\n}\n\nvar isString = (value) => typeof value === 'string';\n\nvar generateWatchOutput = (names, _names, formValues, isGlobal, defaultValue) => {\n if (isString(names)) {\n isGlobal && _names.watch.add(names);\n return get(formValues, names, defaultValue);\n }\n if (Array.isArray(names)) {\n return names.map((fieldName) => (isGlobal && _names.watch.add(fieldName), get(formValues, fieldName)));\n }\n isGlobal && (_names.watchAll = true);\n return formValues;\n};\n\n/**\n * Custom hook to subscribe to field change and isolate re-rendering at the component level.\n *\n * @remarks\n *\n * [API](https://react-hook-form.com/docs/usewatch) • [Demo](https://codesandbox.io/s/react-hook-form-v7-ts-usewatch-h9i5e)\n *\n * @example\n * ```tsx\n * const { control } = useForm();\n * const values = useWatch({\n * name: \"fieldName\"\n * control,\n * })\n * ```\n */\nfunction useWatch(props) {\n const methods = useFormContext();\n const { control = methods.control, name, defaultValue, disabled, exact, } = props || {};\n const _name = React.useRef(name);\n _name.current = name;\n useSubscribe({\n disabled,\n subject: control._subjects.values,\n next: (formState) => {\n if (shouldSubscribeByName(_name.current, formState.name, exact)) {\n updateValue(cloneObject(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)));\n }\n },\n });\n const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));\n React.useEffect(() => control._removeUnmounted());\n return value;\n}\n\n/**\n * Custom hook to work with controlled component, this function provide you with both form and field level state. Re-render is isolated at the hook level.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller) • [Demo](https://codesandbox.io/s/usecontroller-0o8px)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns field properties, field and form state. {@link UseControllerReturn}\n *\n * @example\n * ```tsx\n * function Input(props) {\n * const { field, fieldState, formState } = useController(props);\n * return (\n *
\n * \n *

{fieldState.isTouched && \"Touched\"}

\n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *
\n * );\n * }\n * ```\n */\nfunction useController(props) {\n const methods = useFormContext();\n const { name, disabled, control = methods.control, shouldUnregister } = props;\n const isArrayField = isNameInFieldArray(control._names.array, name);\n const value = useWatch({\n control,\n name,\n defaultValue: get(control._formValues, name, get(control._defaultValues, name, props.defaultValue)),\n exact: true,\n });\n const formState = useFormState({\n control,\n name,\n exact: true,\n });\n const _registerProps = React.useRef(control.register(name, {\n ...props.rules,\n value,\n ...(isBoolean(props.disabled) ? { disabled: props.disabled } : {}),\n }));\n const fieldState = React.useMemo(() => Object.defineProperties({}, {\n invalid: {\n enumerable: true,\n get: () => !!get(formState.errors, name),\n },\n isDirty: {\n enumerable: true,\n get: () => !!get(formState.dirtyFields, name),\n },\n isTouched: {\n enumerable: true,\n get: () => !!get(formState.touchedFields, name),\n },\n isValidating: {\n enumerable: true,\n get: () => !!get(formState.validatingFields, name),\n },\n error: {\n enumerable: true,\n get: () => get(formState.errors, name),\n },\n }), [formState, name]);\n const field = React.useMemo(() => ({\n name,\n value,\n ...(isBoolean(disabled) || formState.disabled\n ? { disabled: formState.disabled || disabled }\n : {}),\n onChange: (event) => _registerProps.current.onChange({\n target: {\n value: getEventValue(event),\n name: name,\n },\n type: EVENTS.CHANGE,\n }),\n onBlur: () => _registerProps.current.onBlur({\n target: {\n value: get(control._formValues, name),\n name: name,\n },\n type: EVENTS.BLUR,\n }),\n ref: (elm) => {\n const field = get(control._fields, name);\n if (field && elm) {\n field._f.ref = {\n focus: () => elm.focus(),\n select: () => elm.select(),\n setCustomValidity: (message) => elm.setCustomValidity(message),\n reportValidity: () => elm.reportValidity(),\n };\n }\n },\n }), [\n name,\n control._formValues,\n disabled,\n formState.disabled,\n value,\n control._fields,\n ]);\n React.useEffect(() => {\n const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;\n const updateMounted = (name, value) => {\n const field = get(control._fields, name);\n if (field && field._f) {\n field._f.mount = value;\n }\n };\n updateMounted(name, true);\n if (_shouldUnregisterField) {\n const value = cloneObject(get(control._options.defaultValues, name));\n set(control._defaultValues, name, value);\n if (isUndefined(get(control._formValues, name))) {\n set(control._formValues, name, value);\n }\n }\n !isArrayField && control.register(name);\n return () => {\n (isArrayField\n ? _shouldUnregisterField && !control._state.action\n : _shouldUnregisterField)\n ? control.unregister(name)\n : updateMounted(name, false);\n };\n }, [name, control, isArrayField, shouldUnregister]);\n React.useEffect(() => {\n control._updateDisabledField({\n disabled,\n fields: control._fields,\n name,\n });\n }, [disabled, name, control]);\n return React.useMemo(() => ({\n field,\n formState,\n fieldState,\n }), [field, formState, fieldState]);\n}\n\n/**\n * Component based on `useController` hook to work with controlled component.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usecontroller/controller) • [Demo](https://codesandbox.io/s/react-hook-form-v6-controller-ts-jwyzw) • [Video](https://www.youtube.com/watch?v=N2UNk_UCVyA)\n *\n * @param props - the path name to the form field value, and validation rules.\n *\n * @returns provide field handler functions, field and form state.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control } = useForm({\n * defaultValues: {\n * test: \"\"\n * }\n * });\n *\n * return (\n *
\n * (\n * <>\n * \n *

{formState.isSubmitted ? \"submitted\" : \"\"}

\n *

{fieldState.isTouched ? \"touched\" : \"\"}

\n * \n * )}\n * />\n * \n * );\n * }\n * ```\n */\nconst Controller = (props) => props.render(useController(props));\n\nconst flatten = (obj) => {\n const output = {};\n for (const key of Object.keys(obj)) {\n if (isObjectType(obj[key]) && obj[key] !== null) {\n const nested = flatten(obj[key]);\n for (const nestedKey of Object.keys(nested)) {\n output[`${key}.${nestedKey}`] = nested[nestedKey];\n }\n }\n else {\n output[key] = obj[key];\n }\n }\n return output;\n};\n\nconst POST_REQUEST = 'post';\n/**\n * Form component to manage submission.\n *\n * @param props - to setup submission detail. {@link FormProps}\n *\n * @returns form component or headless render prop.\n *\n * @example\n * ```tsx\n * function App() {\n * const { control, formState: { errors } } = useForm();\n *\n * return (\n *
\n * \n *

{errors?.root?.server && 'Server error'}

\n * \n *
\n * );\n * }\n * ```\n */\nfunction Form(props) {\n const methods = useFormContext();\n const [mounted, setMounted] = React.useState(false);\n const { control = methods.control, onSubmit, children, action, method = POST_REQUEST, headers, encType, onError, render, onSuccess, validateStatus, ...rest } = props;\n const submit = async (event) => {\n let hasError = false;\n let type = '';\n await control.handleSubmit(async (data) => {\n const formData = new FormData();\n let formDataJson = '';\n try {\n formDataJson = JSON.stringify(data);\n }\n catch (_a) { }\n const flattenFormValues = flatten(control._formValues);\n for (const key in flattenFormValues) {\n formData.append(key, flattenFormValues[key]);\n }\n if (onSubmit) {\n await onSubmit({\n data,\n event,\n method,\n formData,\n formDataJson,\n });\n }\n if (action) {\n try {\n const shouldStringifySubmissionData = [\n headers && headers['Content-Type'],\n encType,\n ].some((value) => value && value.includes('json'));\n const response = await fetch(String(action), {\n method,\n headers: {\n ...headers,\n ...(encType ? { 'Content-Type': encType } : {}),\n },\n body: shouldStringifySubmissionData ? formDataJson : formData,\n });\n if (response &&\n (validateStatus\n ? !validateStatus(response.status)\n : response.status < 200 || response.status >= 300)) {\n hasError = true;\n onError && onError({ response });\n type = String(response.status);\n }\n else {\n onSuccess && onSuccess({ response });\n }\n }\n catch (error) {\n hasError = true;\n onError && onError({ error });\n }\n }\n })(event);\n if (hasError && props.control) {\n props.control._subjects.state.next({\n isSubmitSuccessful: false,\n });\n props.control.setError('root.server', {\n type,\n });\n }\n };\n React.useEffect(() => {\n setMounted(true);\n }, []);\n return render ? (React.createElement(React.Fragment, null, render({\n submit,\n }))) : (React.createElement(\"form\", { noValidate: mounted, action: action, method: method, encType: encType, onSubmit: submit, ...rest }, children));\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\n ? {\n ...errors[name],\n types: {\n ...(errors[name] && errors[name].types ? errors[name].types : {}),\n [type]: message || true,\n },\n }\n : {};\n\nvar generateId = () => {\n const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16 + d) % 16 | 0;\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nvar getFocusFieldName = (name, index, options = {}) => options.shouldFocus || isUndefined(options.shouldFocus)\n ? options.focusName ||\n `${name}.${isUndefined(options.focusIndex) ? index : options.focusIndex}.`\n : '';\n\nvar getValidationModes = (mode) => ({\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\n isOnBlur: mode === VALIDATION_MODE.onBlur,\n isOnChange: mode === VALIDATION_MODE.onChange,\n isOnAll: mode === VALIDATION_MODE.all,\n isOnTouch: mode === VALIDATION_MODE.onTouched,\n});\n\nvar isWatched = (name, _names, isBlurEvent) => !isBlurEvent &&\n (_names.watchAll ||\n _names.watch.has(name) ||\n [..._names.watch].some((watchName) => name.startsWith(watchName) &&\n /^\\.\\w+/.test(name.slice(watchName.length))));\n\nconst iterateFieldsByAction = (fields, action, fieldsNames, abortEarly) => {\n for (const key of fieldsNames || Object.keys(fields)) {\n const field = get(fields, key);\n if (field) {\n const { _f, ...currentField } = field;\n if (_f) {\n if (_f.refs && _f.refs[0] && action(_f.refs[0], key) && !abortEarly) {\n return true;\n }\n else if (_f.ref && action(_f.ref, _f.name) && !abortEarly) {\n return true;\n }\n else {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n else if (isObject(currentField)) {\n if (iterateFieldsByAction(currentField, action)) {\n break;\n }\n }\n }\n }\n return;\n};\n\nvar updateFieldArrayRootError = (errors, error, name) => {\n const fieldArrayErrors = convertToArrayPayload(get(errors, name));\n set(fieldArrayErrors, 'root', error[name]);\n set(errors, name, fieldArrayErrors);\n return errors;\n};\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isHTMLElement = (value) => {\n if (!isWeb) {\n return false;\n }\n const owner = value ? value.ownerDocument : 0;\n return (value instanceof\n (owner && owner.defaultView ? owner.defaultView.HTMLElement : HTMLElement));\n};\n\nvar isMessage = (value) => isString(value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isRegex = (value) => value instanceof RegExp;\n\nconst defaultResult = {\n value: false,\n isValid: false,\n};\nconst validResult = { value: true, isValid: true };\nvar getCheckboxValue = (options) => {\n if (Array.isArray(options)) {\n if (options.length > 1) {\n const values = options\n .filter((option) => option && option.checked && !option.disabled)\n .map((option) => option.value);\n return { value: values, isValid: !!values.length };\n }\n return options[0].checked && !options[0].disabled\n ? // @ts-expect-error expected to work in the browser\n options[0].attributes && !isUndefined(options[0].attributes.value)\n ? isUndefined(options[0].value) || options[0].value === ''\n ? validResult\n : { value: options[0].value, isValid: true }\n : validResult\n : defaultResult;\n }\n return defaultResult;\n};\n\nconst defaultReturn = {\n isValid: false,\n value: null,\n};\nvar getRadioValue = (options) => Array.isArray(options)\n ? options.reduce((previous, option) => option && option.checked && !option.disabled\n ? {\n isValid: true,\n value: option.value,\n }\n : previous, defaultReturn)\n : defaultReturn;\n\nfunction getValidateError(result, ref, type = 'validate') {\n if (isMessage(result) ||\n (Array.isArray(result) && result.every(isMessage)) ||\n (isBoolean(result) && !result)) {\n return {\n type,\n message: isMessage(result) ? result : '',\n ref,\n };\n }\n}\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\n ? validationData\n : {\n value: validationData,\n message: '',\n };\n\nvar validateField = async (field, disabledFieldNames, formValues, validateAllFieldCriteria, shouldUseNativeValidation, isFieldArray) => {\n const { ref, refs, required, maxLength, minLength, min, max, pattern, validate, name, valueAsNumber, mount, } = field._f;\n const inputValue = get(formValues, name);\n if (!mount || disabledFieldNames.has(name)) {\n return {};\n }\n const inputRef = refs ? refs[0] : ref;\n const setCustomValidity = (message) => {\n if (shouldUseNativeValidation && inputRef.reportValidity) {\n inputRef.setCustomValidity(isBoolean(message) ? '' : message || '');\n inputRef.reportValidity();\n }\n };\n const error = {};\n const isRadio = isRadioInput(ref);\n const isCheckBox = isCheckBoxInput(ref);\n const isRadioOrCheckbox = isRadio || isCheckBox;\n const isEmpty = ((valueAsNumber || isFileInput(ref)) &&\n isUndefined(ref.value) &&\n isUndefined(inputValue)) ||\n (isHTMLElement(ref) && ref.value === '') ||\n inputValue === '' ||\n (Array.isArray(inputValue) && !inputValue.length);\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\n error[name] = {\n type: exceedMax ? maxType : minType,\n message,\n ref,\n ...appendErrorsCurry(exceedMax ? maxType : minType, message),\n };\n };\n if (isFieldArray\n ? !Array.isArray(inputValue) || !inputValue.length\n : required &&\n ((!isRadioOrCheckbox && (isEmpty || isNullOrUndefined(inputValue))) ||\n (isBoolean(inputValue) && !inputValue) ||\n (isCheckBox && !getCheckboxValue(refs).isValid) ||\n (isRadio && !getRadioValue(refs).isValid))) {\n const { value, message } = isMessage(required)\n ? { value: !!required, message: required }\n : getValueAndMessage(required);\n if (value) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.required,\n message,\n ref: inputRef,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.required, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (!isEmpty && (!isNullOrUndefined(min) || !isNullOrUndefined(max))) {\n let exceedMax;\n let exceedMin;\n const maxOutput = getValueAndMessage(max);\n const minOutput = getValueAndMessage(min);\n if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {\n const valueNumber = ref.valueAsNumber ||\n (inputValue ? +inputValue : inputValue);\n if (!isNullOrUndefined(maxOutput.value)) {\n exceedMax = valueNumber > maxOutput.value;\n }\n if (!isNullOrUndefined(minOutput.value)) {\n exceedMin = valueNumber < minOutput.value;\n }\n }\n else {\n const valueDate = ref.valueAsDate || new Date(inputValue);\n const convertTimeToDate = (time) => new Date(new Date().toDateString() + ' ' + time);\n const isTime = ref.type == 'time';\n const isWeek = ref.type == 'week';\n if (isString(maxOutput.value) && inputValue) {\n exceedMax = isTime\n ? convertTimeToDate(inputValue) > convertTimeToDate(maxOutput.value)\n : isWeek\n ? inputValue > maxOutput.value\n : valueDate > new Date(maxOutput.value);\n }\n if (isString(minOutput.value) && inputValue) {\n exceedMin = isTime\n ? convertTimeToDate(inputValue) < convertTimeToDate(minOutput.value)\n : isWeek\n ? inputValue < minOutput.value\n : valueDate < new Date(minOutput.value);\n }\n }\n if (exceedMax || exceedMin) {\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if ((maxLength || minLength) &&\n !isEmpty &&\n (isString(inputValue) || (isFieldArray && Array.isArray(inputValue)))) {\n const maxLengthOutput = getValueAndMessage(maxLength);\n const minLengthOutput = getValueAndMessage(minLength);\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\n inputValue.length > +maxLengthOutput.value;\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\n inputValue.length < +minLengthOutput.value;\n if (exceedMax || exceedMin) {\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\n if (!validateAllFieldCriteria) {\n setCustomValidity(error[name].message);\n return error;\n }\n }\n }\n if (pattern && !isEmpty && isString(inputValue)) {\n const { value: patternValue, message } = getValueAndMessage(pattern);\n if (isRegex(patternValue) && !inputValue.match(patternValue)) {\n error[name] = {\n type: INPUT_VALIDATION_RULES.pattern,\n message,\n ref,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(message);\n return error;\n }\n }\n }\n if (validate) {\n if (isFunction(validate)) {\n const result = await validate(inputValue, formValues);\n const validateError = getValidateError(result, inputRef);\n if (validateError) {\n error[name] = {\n ...validateError,\n ...appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message),\n };\n if (!validateAllFieldCriteria) {\n setCustomValidity(validateError.message);\n return error;\n }\n }\n }\n else if (isObject(validate)) {\n let validationResult = {};\n for (const key in validate) {\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\n break;\n }\n const validateError = getValidateError(await validate[key](inputValue, formValues), inputRef, key);\n if (validateError) {\n validationResult = {\n ...validateError,\n ...appendErrorsCurry(key, validateError.message),\n };\n setCustomValidity(validateError.message);\n if (validateAllFieldCriteria) {\n error[name] = validationResult;\n }\n }\n }\n if (!isEmptyObject(validationResult)) {\n error[name] = {\n ref: inputRef,\n ...validationResult,\n };\n if (!validateAllFieldCriteria) {\n return error;\n }\n }\n }\n }\n setCustomValidity(true);\n return error;\n};\n\nvar appendAt = (data, value) => [\n ...data,\n ...convertToArrayPayload(value),\n];\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? value.map(() => undefined) : undefined;\n\nfunction insert(data, index, value) {\n return [\n ...data.slice(0, index),\n ...convertToArrayPayload(value),\n ...data.slice(index),\n ];\n}\n\nvar moveArrayAt = (data, from, to) => {\n if (!Array.isArray(data)) {\n return [];\n }\n if (isUndefined(data[to])) {\n data[to] = undefined;\n }\n data.splice(to, 0, data.splice(from, 1)[0]);\n return data;\n};\n\nvar prependAt = (data, value) => [\n ...convertToArrayPayload(value),\n ...convertToArrayPayload(data),\n];\n\nfunction removeAtIndexes(data, indexes) {\n let i = 0;\n const temp = [...data];\n for (const index of indexes) {\n temp.splice(index - i, 1);\n i++;\n }\n return compact(temp).length ? temp : [];\n}\nvar removeArrayAt = (data, index) => isUndefined(index)\n ? []\n : removeAtIndexes(data, convertToArrayPayload(index).sort((a, b) => a - b));\n\nvar swapArrayAt = (data, indexA, indexB) => {\n [data[indexA], data[indexB]] = [data[indexB], data[indexA]];\n};\n\nfunction baseGet(object, updatePath) {\n const length = updatePath.slice(0, -1).length;\n let index = 0;\n while (index < length) {\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\n }\n return object;\n}\nfunction isEmptyArray(obj) {\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && !isUndefined(obj[key])) {\n return false;\n }\n }\n return true;\n}\nfunction unset(object, path) {\n const paths = Array.isArray(path)\n ? path\n : isKey(path)\n ? [path]\n : stringToPath(path);\n const childObject = paths.length === 1 ? object : baseGet(object, paths);\n const index = paths.length - 1;\n const key = paths[index];\n if (childObject) {\n delete childObject[key];\n }\n if (index !== 0 &&\n ((isObject(childObject) && isEmptyObject(childObject)) ||\n (Array.isArray(childObject) && isEmptyArray(childObject)))) {\n unset(object, paths.slice(0, -1));\n }\n return object;\n}\n\nvar updateAt = (fieldValues, index, value) => {\n fieldValues[index] = value;\n return fieldValues;\n};\n\n/**\n * A custom hook that exposes convenient methods to perform operations with a list of dynamic inputs that need to be appended, updated, removed etc. • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn) • [Video](https://youtu.be/4MrbfGSFY2A)\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/usefieldarray) • [Demo](https://codesandbox.io/s/react-hook-form-usefieldarray-ssugn)\n *\n * @param props - useFieldArray props\n *\n * @returns methods - functions to manipulate with the Field Arrays (dynamic inputs) {@link UseFieldArrayReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, control, handleSubmit, reset, trigger, setError } = useForm({\n * defaultValues: {\n * test: []\n * }\n * });\n * const { fields, append } = useFieldArray({\n * control,\n * name: \"test\"\n * });\n *\n * return (\n *
console.log(data))}>\n * {fields.map((item, index) => (\n * \n * ))}\n * \n * \n *
\n * );\n * }\n * ```\n */\nfunction useFieldArray(props) {\n const methods = useFormContext();\n const { control = methods.control, name, keyName = 'id', shouldUnregister, rules, } = props;\n const [fields, setFields] = React.useState(control._getFieldArray(name));\n const ids = React.useRef(control._getFieldArray(name).map(generateId));\n const _fieldIds = React.useRef(fields);\n const _name = React.useRef(name);\n const _actioned = React.useRef(false);\n _name.current = name;\n _fieldIds.current = fields;\n control._names.array.add(name);\n rules &&\n control.register(name, rules);\n useSubscribe({\n next: ({ values, name: fieldArrayName, }) => {\n if (fieldArrayName === _name.current || !fieldArrayName) {\n const fieldValues = get(values, _name.current);\n if (Array.isArray(fieldValues)) {\n setFields(fieldValues);\n ids.current = fieldValues.map(generateId);\n }\n }\n },\n subject: control._subjects.array,\n });\n const updateValues = React.useCallback((updatedFieldArrayValues) => {\n _actioned.current = true;\n control._updateFieldArray(name, updatedFieldArrayValues);\n }, [control, name]);\n const append = (value, options) => {\n const appendValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = appendAt(control._getFieldArray(name), appendValue);\n control._names.focus = getFocusFieldName(name, updatedFieldArrayValues.length - 1, options);\n ids.current = appendAt(ids.current, appendValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, appendAt, {\n argA: fillEmptyArray(value),\n });\n };\n const prepend = (value, options) => {\n const prependValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = prependAt(control._getFieldArray(name), prependValue);\n control._names.focus = getFocusFieldName(name, 0, options);\n ids.current = prependAt(ids.current, prependValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, prependAt, {\n argA: fillEmptyArray(value),\n });\n };\n const remove = (index) => {\n const updatedFieldArrayValues = removeArrayAt(control._getFieldArray(name), index);\n ids.current = removeArrayAt(ids.current, index);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n !Array.isArray(get(control._fields, name)) &&\n set(control._fields, name, undefined);\n control._updateFieldArray(name, updatedFieldArrayValues, removeArrayAt, {\n argA: index,\n });\n };\n const insert$1 = (index, value, options) => {\n const insertValue = convertToArrayPayload(cloneObject(value));\n const updatedFieldArrayValues = insert(control._getFieldArray(name), index, insertValue);\n control._names.focus = getFocusFieldName(name, index, options);\n ids.current = insert(ids.current, index, insertValue.map(generateId));\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, insert, {\n argA: index,\n argB: fillEmptyArray(value),\n });\n };\n const swap = (indexA, indexB) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n swapArrayAt(updatedFieldArrayValues, indexA, indexB);\n swapArrayAt(ids.current, indexA, indexB);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, swapArrayAt, {\n argA: indexA,\n argB: indexB,\n }, false);\n };\n const move = (from, to) => {\n const updatedFieldArrayValues = control._getFieldArray(name);\n moveArrayAt(updatedFieldArrayValues, from, to);\n moveArrayAt(ids.current, from, to);\n updateValues(updatedFieldArrayValues);\n setFields(updatedFieldArrayValues);\n control._updateFieldArray(name, updatedFieldArrayValues, moveArrayAt, {\n argA: from,\n argB: to,\n }, false);\n };\n const update = (index, value) => {\n const updateValue = cloneObject(value);\n const updatedFieldArrayValues = updateAt(control._getFieldArray(name), index, updateValue);\n ids.current = [...updatedFieldArrayValues].map((item, i) => !item || i === index ? generateId() : ids.current[i]);\n updateValues(updatedFieldArrayValues);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, updatedFieldArrayValues, updateAt, {\n argA: index,\n argB: updateValue,\n }, true, false);\n };\n const replace = (value) => {\n const updatedFieldArrayValues = convertToArrayPayload(cloneObject(value));\n ids.current = updatedFieldArrayValues.map(generateId);\n updateValues([...updatedFieldArrayValues]);\n setFields([...updatedFieldArrayValues]);\n control._updateFieldArray(name, [...updatedFieldArrayValues], (data) => data, {}, true, false);\n };\n React.useEffect(() => {\n control._state.action = false;\n isWatched(name, control._names) &&\n control._subjects.state.next({\n ...control._formState,\n });\n if (_actioned.current &&\n (!getValidationModes(control._options.mode).isOnSubmit ||\n control._formState.isSubmitted)) {\n if (control._options.resolver) {\n control._executeSchema([name]).then((result) => {\n const error = get(result.errors, name);\n const existingError = get(control._formState.errors, name);\n if (existingError\n ? (!error && existingError.type) ||\n (error &&\n (existingError.type !== error.type ||\n existingError.message !== error.message))\n : error && error.type) {\n error\n ? set(control._formState.errors, name, error)\n : unset(control._formState.errors, name);\n control._subjects.state.next({\n errors: control._formState.errors,\n });\n }\n });\n }\n else {\n const field = get(control._fields, name);\n if (field &&\n field._f &&\n !(getValidationModes(control._options.reValidateMode).isOnSubmit &&\n getValidationModes(control._options.mode).isOnSubmit)) {\n validateField(field, control._names.disabled, control._formValues, control._options.criteriaMode === VALIDATION_MODE.all, control._options.shouldUseNativeValidation, true).then((error) => !isEmptyObject(error) &&\n control._subjects.state.next({\n errors: updateFieldArrayRootError(control._formState.errors, error, name),\n }));\n }\n }\n }\n control._subjects.values.next({\n name,\n values: { ...control._formValues },\n });\n control._names.focus &&\n iterateFieldsByAction(control._fields, (ref, key) => {\n if (control._names.focus &&\n key.startsWith(control._names.focus) &&\n ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n });\n control._names.focus = '';\n control._updateValid();\n _actioned.current = false;\n }, [fields, name, control]);\n React.useEffect(() => {\n !get(control._formValues, name) && control._updateFieldArray(name);\n return () => {\n (control._options.shouldUnregister || shouldUnregister) &&\n control.unregister(name);\n };\n }, [name, control, keyName, shouldUnregister]);\n return {\n swap: React.useCallback(swap, [updateValues, name, control]),\n move: React.useCallback(move, [updateValues, name, control]),\n prepend: React.useCallback(prepend, [updateValues, name, control]),\n append: React.useCallback(append, [updateValues, name, control]),\n remove: React.useCallback(remove, [updateValues, name, control]),\n insert: React.useCallback(insert$1, [updateValues, name, control]),\n update: React.useCallback(update, [updateValues, name, control]),\n replace: React.useCallback(replace, [updateValues, name, control]),\n fields: React.useMemo(() => fields.map((field, index) => ({\n ...field,\n [keyName]: ids.current[index] || generateId(),\n })), [fields, keyName]),\n };\n}\n\nvar createSubject = () => {\n let _observers = [];\n const next = (value) => {\n for (const observer of _observers) {\n observer.next && observer.next(value);\n }\n };\n const subscribe = (observer) => {\n _observers.push(observer);\n return {\n unsubscribe: () => {\n _observers = _observers.filter((o) => o !== observer);\n },\n };\n };\n const unsubscribe = () => {\n _observers = [];\n };\n return {\n get observers() {\n return _observers;\n },\n next,\n subscribe,\n unsubscribe,\n };\n};\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepEqual(object1, object2) {\n if (isPrimitive(object1) || isPrimitive(object2)) {\n return object1 === object2;\n }\n if (isDateObject(object1) && isDateObject(object2)) {\n return object1.getTime() === object2.getTime();\n }\n const keys1 = Object.keys(object1);\n const keys2 = Object.keys(object2);\n if (keys1.length !== keys2.length) {\n return false;\n }\n for (const key of keys1) {\n const val1 = object1[key];\n if (!keys2.includes(key)) {\n return false;\n }\n if (key !== 'ref') {\n const val2 = object2[key];\n if ((isDateObject(val1) && isDateObject(val2)) ||\n (isObject(val1) && isObject(val2)) ||\n (Array.isArray(val1) && Array.isArray(val2))\n ? !deepEqual(val1, val2)\n : val1 !== val2) {\n return false;\n }\n }\n }\n return true;\n}\n\nvar isMultipleSelect = (element) => element.type === `select-multiple`;\n\nvar isRadioOrCheckbox = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nvar live = (ref) => isHTMLElement(ref) && ref.isConnected;\n\nvar objectHasFunction = (data) => {\n for (const key in data) {\n if (isFunction(data[key])) {\n return true;\n }\n }\n return false;\n};\n\nfunction markFieldsDirty(data, fields = {}) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n fields[key] = Array.isArray(data[key]) ? [] : {};\n markFieldsDirty(data[key], fields[key]);\n }\n else if (!isNullOrUndefined(data[key])) {\n fields[key] = true;\n }\n }\n }\n return fields;\n}\nfunction getDirtyFieldsFromDefaultValues(data, formValues, dirtyFieldsFromValues) {\n const isParentNodeArray = Array.isArray(data);\n if (isObject(data) || isParentNodeArray) {\n for (const key in data) {\n if (Array.isArray(data[key]) ||\n (isObject(data[key]) && !objectHasFunction(data[key]))) {\n if (isUndefined(formValues) ||\n isPrimitive(dirtyFieldsFromValues[key])) {\n dirtyFieldsFromValues[key] = Array.isArray(data[key])\n ? markFieldsDirty(data[key], [])\n : { ...markFieldsDirty(data[key]) };\n }\n else {\n getDirtyFieldsFromDefaultValues(data[key], isNullOrUndefined(formValues) ? {} : formValues[key], dirtyFieldsFromValues[key]);\n }\n }\n else {\n dirtyFieldsFromValues[key] = !deepEqual(data[key], formValues[key]);\n }\n }\n }\n return dirtyFieldsFromValues;\n}\nvar getDirtyFields = (defaultValues, formValues) => getDirtyFieldsFromDefaultValues(defaultValues, formValues, markFieldsDirty(formValues));\n\nvar getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)\n ? value\n : valueAsNumber\n ? value === ''\n ? NaN\n : value\n ? +value\n : value\n : valueAsDate && isString(value)\n ? new Date(value)\n : setValueAs\n ? setValueAs(value)\n : value;\n\nfunction getFieldValue(_f) {\n const ref = _f.ref;\n if (isFileInput(ref)) {\n return ref.files;\n }\n if (isRadioInput(ref)) {\n return getRadioValue(_f.refs).value;\n }\n if (isMultipleSelect(ref)) {\n return [...ref.selectedOptions].map(({ value }) => value);\n }\n if (isCheckBoxInput(ref)) {\n return getCheckboxValue(_f.refs).value;\n }\n return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);\n}\n\nvar getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {\n const fields = {};\n for (const name of fieldsNames) {\n const field = get(_fields, name);\n field && set(fields, name, field._f);\n }\n return {\n criteriaMode,\n names: [...fieldsNames],\n fields,\n shouldUseNativeValidation,\n };\n};\n\nvar getRuleValue = (rule) => isUndefined(rule)\n ? rule\n : isRegex(rule)\n ? rule.source\n : isObject(rule)\n ? isRegex(rule.value)\n ? rule.value.source\n : rule.value\n : rule;\n\nconst ASYNC_FUNCTION = 'AsyncFunction';\nvar hasPromiseValidation = (fieldReference) => !!fieldReference &&\n !!fieldReference.validate &&\n !!((isFunction(fieldReference.validate) &&\n fieldReference.validate.constructor.name === ASYNC_FUNCTION) ||\n (isObject(fieldReference.validate) &&\n Object.values(fieldReference.validate).find((validateFunction) => validateFunction.constructor.name === ASYNC_FUNCTION)));\n\nvar hasValidation = (options) => options.mount &&\n (options.required ||\n options.min ||\n options.max ||\n options.maxLength ||\n options.minLength ||\n options.pattern ||\n options.validate);\n\nfunction schemaErrorLookup(errors, _fields, name) {\n const error = get(errors, name);\n if (error || isKey(name)) {\n return {\n error,\n name,\n };\n }\n const names = name.split('.');\n while (names.length) {\n const fieldName = names.join('.');\n const field = get(_fields, fieldName);\n const foundError = get(errors, fieldName);\n if (field && !Array.isArray(field) && name !== fieldName) {\n return { name };\n }\n if (foundError && foundError.type) {\n return {\n name: fieldName,\n error: foundError,\n };\n }\n names.pop();\n }\n return {\n name,\n };\n}\n\nvar skipValidation = (isBlurEvent, isTouched, isSubmitted, reValidateMode, mode) => {\n if (mode.isOnAll) {\n return false;\n }\n else if (!isSubmitted && mode.isOnTouch) {\n return !(isTouched || isBlurEvent);\n }\n else if (isSubmitted ? reValidateMode.isOnBlur : mode.isOnBlur) {\n return !isBlurEvent;\n }\n else if (isSubmitted ? reValidateMode.isOnChange : mode.isOnChange) {\n return isBlurEvent;\n }\n return true;\n};\n\nvar unsetEmptyArray = (ref, name) => !compact(get(ref, name)).length && unset(ref, name);\n\nconst defaultOptions = {\n mode: VALIDATION_MODE.onSubmit,\n reValidateMode: VALIDATION_MODE.onChange,\n shouldFocusError: true,\n};\nfunction createFormControl(props = {}) {\n let _options = {\n ...defaultOptions,\n ...props,\n };\n let _formState = {\n submitCount: 0,\n isDirty: false,\n isLoading: isFunction(_options.defaultValues),\n isValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n touchedFields: {},\n dirtyFields: {},\n validatingFields: {},\n errors: _options.errors || {},\n disabled: _options.disabled || false,\n };\n let _fields = {};\n let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)\n ? cloneObject(_options.defaultValues || _options.values) || {}\n : {};\n let _formValues = _options.shouldUnregister\n ? {}\n : cloneObject(_defaultValues);\n let _state = {\n action: false,\n mount: false,\n watch: false,\n };\n let _names = {\n mount: new Set(),\n disabled: new Set(),\n unMount: new Set(),\n array: new Set(),\n watch: new Set(),\n };\n let delayErrorCallback;\n let timer = 0;\n const _proxyFormState = {\n isDirty: false,\n dirtyFields: false,\n validatingFields: false,\n touchedFields: false,\n isValidating: false,\n isValid: false,\n errors: false,\n };\n const _subjects = {\n values: createSubject(),\n array: createSubject(),\n state: createSubject(),\n };\n const validationModeBeforeSubmit = getValidationModes(_options.mode);\n const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);\n const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;\n const debounce = (callback) => (wait) => {\n clearTimeout(timer);\n timer = setTimeout(callback, wait);\n };\n const _updateValid = async (shouldUpdateValid) => {\n if (!_options.disabled && (_proxyFormState.isValid || shouldUpdateValid)) {\n const isValid = _options.resolver\n ? isEmptyObject((await _executeSchema()).errors)\n : await executeBuiltInValidation(_fields, true);\n if (isValid !== _formState.isValid) {\n _subjects.state.next({\n isValid,\n });\n }\n }\n };\n const _updateIsValidating = (names, isValidating) => {\n if (!_options.disabled &&\n (_proxyFormState.isValidating || _proxyFormState.validatingFields)) {\n (names || Array.from(_names.mount)).forEach((name) => {\n if (name) {\n isValidating\n ? set(_formState.validatingFields, name, isValidating)\n : unset(_formState.validatingFields, name);\n }\n });\n _subjects.state.next({\n validatingFields: _formState.validatingFields,\n isValidating: !isEmptyObject(_formState.validatingFields),\n });\n }\n };\n const _updateFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {\n if (args && method && !_options.disabled) {\n _state.action = true;\n if (shouldUpdateFieldsAndState && Array.isArray(get(_fields, name))) {\n const fieldValues = method(get(_fields, name), args.argA, args.argB);\n shouldSetValues && set(_fields, name, fieldValues);\n }\n if (shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.errors, name))) {\n const errors = method(get(_formState.errors, name), args.argA, args.argB);\n shouldSetValues && set(_formState.errors, name, errors);\n unsetEmptyArray(_formState.errors, name);\n }\n if (_proxyFormState.touchedFields &&\n shouldUpdateFieldsAndState &&\n Array.isArray(get(_formState.touchedFields, name))) {\n const touchedFields = method(get(_formState.touchedFields, name), args.argA, args.argB);\n shouldSetValues && set(_formState.touchedFields, name, touchedFields);\n }\n if (_proxyFormState.dirtyFields) {\n _formState.dirtyFields = getDirtyFields(_defaultValues, _formValues);\n }\n _subjects.state.next({\n name,\n isDirty: _getDirty(name, values),\n dirtyFields: _formState.dirtyFields,\n errors: _formState.errors,\n isValid: _formState.isValid,\n });\n }\n else {\n set(_formValues, name, values);\n }\n };\n const updateErrors = (name, error) => {\n set(_formState.errors, name, error);\n _subjects.state.next({\n errors: _formState.errors,\n });\n };\n const _setErrors = (errors) => {\n _formState.errors = errors;\n _subjects.state.next({\n errors: _formState.errors,\n isValid: false,\n });\n };\n const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {\n const field = get(_fields, name);\n if (field) {\n const defaultValue = get(_formValues, name, isUndefined(value) ? get(_defaultValues, name) : value);\n isUndefined(defaultValue) ||\n (ref && ref.defaultChecked) ||\n shouldSkipSetValueAs\n ? set(_formValues, name, shouldSkipSetValueAs ? defaultValue : getFieldValue(field._f))\n : setFieldValue(name, defaultValue);\n _state.mount && _updateValid();\n }\n };\n const updateTouchAndDirty = (name, fieldValue, isBlurEvent, shouldDirty, shouldRender) => {\n let shouldUpdateField = false;\n let isPreviousDirty = false;\n const output = {\n name,\n };\n if (!_options.disabled) {\n const disabledField = !!(get(_fields, name) &&\n get(_fields, name)._f &&\n get(_fields, name)._f.disabled);\n if (!isBlurEvent || shouldDirty) {\n if (_proxyFormState.isDirty) {\n isPreviousDirty = _formState.isDirty;\n _formState.isDirty = output.isDirty = _getDirty();\n shouldUpdateField = isPreviousDirty !== output.isDirty;\n }\n const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);\n isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));\n isCurrentFieldPristine || disabledField\n ? unset(_formState.dirtyFields, name)\n : set(_formState.dirtyFields, name, true);\n output.dirtyFields = _formState.dirtyFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.dirtyFields &&\n isPreviousDirty !== !isCurrentFieldPristine);\n }\n if (isBlurEvent) {\n const isPreviousFieldTouched = get(_formState.touchedFields, name);\n if (!isPreviousFieldTouched) {\n set(_formState.touchedFields, name, isBlurEvent);\n output.touchedFields = _formState.touchedFields;\n shouldUpdateField =\n shouldUpdateField ||\n (_proxyFormState.touchedFields &&\n isPreviousFieldTouched !== isBlurEvent);\n }\n }\n shouldUpdateField && shouldRender && _subjects.state.next(output);\n }\n return shouldUpdateField ? output : {};\n };\n const shouldRenderByError = (name, isValid, error, fieldState) => {\n const previousFieldError = get(_formState.errors, name);\n const shouldUpdateValid = _proxyFormState.isValid &&\n isBoolean(isValid) &&\n _formState.isValid !== isValid;\n if (_options.delayError && error) {\n delayErrorCallback = debounce(() => updateErrors(name, error));\n delayErrorCallback(_options.delayError);\n }\n else {\n clearTimeout(timer);\n delayErrorCallback = null;\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n if ((error ? !deepEqual(previousFieldError, error) : previousFieldError) ||\n !isEmptyObject(fieldState) ||\n shouldUpdateValid) {\n const updatedFormState = {\n ...fieldState,\n ...(shouldUpdateValid && isBoolean(isValid) ? { isValid } : {}),\n errors: _formState.errors,\n name,\n };\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n _subjects.state.next(updatedFormState);\n }\n };\n const _executeSchema = async (name) => {\n _updateIsValidating(name, true);\n const result = await _options.resolver(_formValues, _options.context, getResolverOptions(name || _names.mount, _fields, _options.criteriaMode, _options.shouldUseNativeValidation));\n _updateIsValidating(name);\n return result;\n };\n const executeSchemaAndUpdateState = async (names) => {\n const { errors } = await _executeSchema(names);\n if (names) {\n for (const name of names) {\n const error = get(errors, name);\n error\n ? set(_formState.errors, name, error)\n : unset(_formState.errors, name);\n }\n }\n else {\n _formState.errors = errors;\n }\n return errors;\n };\n const executeBuiltInValidation = async (fields, shouldOnlyCheckValid, context = {\n valid: true,\n }) => {\n for (const name in fields) {\n const field = fields[name];\n if (field) {\n const { _f, ...fieldValue } = field;\n if (_f) {\n const isFieldArrayRoot = _names.array.has(_f.name);\n const isPromiseFunction = field._f && hasPromiseValidation(field._f);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name], true);\n }\n const fieldError = await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation && !shouldOnlyCheckValid, isFieldArrayRoot);\n if (isPromiseFunction && _proxyFormState.validatingFields) {\n _updateIsValidating([name]);\n }\n if (fieldError[_f.name]) {\n context.valid = false;\n if (shouldOnlyCheckValid) {\n break;\n }\n }\n !shouldOnlyCheckValid &&\n (get(fieldError, _f.name)\n ? isFieldArrayRoot\n ? updateFieldArrayRootError(_formState.errors, fieldError, _f.name)\n : set(_formState.errors, _f.name, fieldError[_f.name])\n : unset(_formState.errors, _f.name));\n }\n !isEmptyObject(fieldValue) &&\n (await executeBuiltInValidation(fieldValue, shouldOnlyCheckValid, context));\n }\n }\n return context.valid;\n };\n const _removeUnmounted = () => {\n for (const name of _names.unMount) {\n const field = get(_fields, name);\n field &&\n (field._f.refs\n ? field._f.refs.every((ref) => !live(ref))\n : !live(field._f.ref)) &&\n unregister(name);\n }\n _names.unMount = new Set();\n };\n const _getDirty = (name, data) => !_options.disabled &&\n (name && data && set(_formValues, name, data),\n !deepEqual(getValues(), _defaultValues));\n const _getWatch = (names, defaultValue, isGlobal) => generateWatchOutput(names, _names, {\n ...(_state.mount\n ? _formValues\n : isUndefined(defaultValue)\n ? _defaultValues\n : isString(names)\n ? { [names]: defaultValue }\n : defaultValue),\n }, isGlobal, defaultValue);\n const _getFieldArray = (name) => compact(get(_state.mount ? _formValues : _defaultValues, name, _options.shouldUnregister ? get(_defaultValues, name, []) : []));\n const setFieldValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n let fieldValue = value;\n if (field) {\n const fieldReference = field._f;\n if (fieldReference) {\n !fieldReference.disabled &&\n set(_formValues, name, getFieldValueAs(value, fieldReference));\n fieldValue =\n isHTMLElement(fieldReference.ref) && isNullOrUndefined(value)\n ? ''\n : value;\n if (isMultipleSelect(fieldReference.ref)) {\n [...fieldReference.ref.options].forEach((optionRef) => (optionRef.selected = fieldValue.includes(optionRef.value)));\n }\n else if (fieldReference.refs) {\n if (isCheckBoxInput(fieldReference.ref)) {\n fieldReference.refs.length > 1\n ? fieldReference.refs.forEach((checkboxRef) => (!checkboxRef.defaultChecked || !checkboxRef.disabled) &&\n (checkboxRef.checked = Array.isArray(fieldValue)\n ? !!fieldValue.find((data) => data === checkboxRef.value)\n : fieldValue === checkboxRef.value))\n : fieldReference.refs[0] &&\n (fieldReference.refs[0].checked = !!fieldValue);\n }\n else {\n fieldReference.refs.forEach((radioRef) => (radioRef.checked = radioRef.value === fieldValue));\n }\n }\n else if (isFileInput(fieldReference.ref)) {\n fieldReference.ref.value = '';\n }\n else {\n fieldReference.ref.value = fieldValue;\n if (!fieldReference.ref.type) {\n _subjects.values.next({\n name,\n values: { ..._formValues },\n });\n }\n }\n }\n }\n (options.shouldDirty || options.shouldTouch) &&\n updateTouchAndDirty(name, fieldValue, options.shouldTouch, options.shouldDirty, true);\n options.shouldValidate && trigger(name);\n };\n const setValues = (name, value, options) => {\n for (const fieldKey in value) {\n const fieldValue = value[fieldKey];\n const fieldName = `${name}.${fieldKey}`;\n const field = get(_fields, fieldName);\n (_names.array.has(name) ||\n isObject(fieldValue) ||\n (field && !field._f)) &&\n !isDateObject(fieldValue)\n ? setValues(fieldName, fieldValue, options)\n : setFieldValue(fieldName, fieldValue, options);\n }\n };\n const setValue = (name, value, options = {}) => {\n const field = get(_fields, name);\n const isFieldArray = _names.array.has(name);\n const cloneValue = cloneObject(value);\n set(_formValues, name, cloneValue);\n if (isFieldArray) {\n _subjects.array.next({\n name,\n values: { ..._formValues },\n });\n if ((_proxyFormState.isDirty || _proxyFormState.dirtyFields) &&\n options.shouldDirty) {\n _subjects.state.next({\n name,\n dirtyFields: getDirtyFields(_defaultValues, _formValues),\n isDirty: _getDirty(name, cloneValue),\n });\n }\n }\n else {\n field && !field._f && !isNullOrUndefined(cloneValue)\n ? setValues(name, cloneValue, options)\n : setFieldValue(name, cloneValue, options);\n }\n isWatched(name, _names) && _subjects.state.next({ ..._formState });\n _subjects.values.next({\n name: _state.mount ? name : undefined,\n values: { ..._formValues },\n });\n };\n const onChange = async (event) => {\n _state.mount = true;\n const target = event.target;\n let name = target.name;\n let isFieldValueUpdated = true;\n const field = get(_fields, name);\n const getCurrentFieldValue = () => target.type ? getFieldValue(field._f) : getEventValue(event);\n const _updateIsFieldValueUpdated = (fieldValue) => {\n isFieldValueUpdated =\n Number.isNaN(fieldValue) ||\n (isDateObject(fieldValue) && isNaN(fieldValue.getTime())) ||\n deepEqual(fieldValue, get(_formValues, name, fieldValue));\n };\n if (field) {\n let error;\n let isValid;\n const fieldValue = getCurrentFieldValue();\n const isBlurEvent = event.type === EVENTS.BLUR || event.type === EVENTS.FOCUS_OUT;\n const shouldSkipValidation = (!hasValidation(field._f) &&\n !_options.resolver &&\n !get(_formState.errors, name) &&\n !field._f.deps) ||\n skipValidation(isBlurEvent, get(_formState.touchedFields, name), _formState.isSubmitted, validationModeAfterSubmit, validationModeBeforeSubmit);\n const watched = isWatched(name, _names, isBlurEvent);\n set(_formValues, name, fieldValue);\n if (isBlurEvent) {\n field._f.onBlur && field._f.onBlur(event);\n delayErrorCallback && delayErrorCallback(0);\n }\n else if (field._f.onChange) {\n field._f.onChange(event);\n }\n const fieldState = updateTouchAndDirty(name, fieldValue, isBlurEvent, false);\n const shouldRender = !isEmptyObject(fieldState) || watched;\n !isBlurEvent &&\n _subjects.values.next({\n name,\n type: event.type,\n values: { ..._formValues },\n });\n if (shouldSkipValidation) {\n if (_proxyFormState.isValid) {\n if (_options.mode === 'onBlur' && isBlurEvent) {\n _updateValid();\n }\n else if (!isBlurEvent) {\n _updateValid();\n }\n }\n return (shouldRender &&\n _subjects.state.next({ name, ...(watched ? {} : fieldState) }));\n }\n !isBlurEvent && watched && _subjects.state.next({ ..._formState });\n if (_options.resolver) {\n const { errors } = await _executeSchema([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n const previousErrorLookupResult = schemaErrorLookup(_formState.errors, _fields, name);\n const errorLookupResult = schemaErrorLookup(errors, _fields, previousErrorLookupResult.name || name);\n error = errorLookupResult.error;\n name = errorLookupResult.name;\n isValid = isEmptyObject(errors);\n }\n }\n else {\n _updateIsValidating([name], true);\n error = (await validateField(field, _names.disabled, _formValues, shouldDisplayAllAssociatedErrors, _options.shouldUseNativeValidation))[name];\n _updateIsValidating([name]);\n _updateIsFieldValueUpdated(fieldValue);\n if (isFieldValueUpdated) {\n if (error) {\n isValid = false;\n }\n else if (_proxyFormState.isValid) {\n isValid = await executeBuiltInValidation(_fields, true);\n }\n }\n }\n if (isFieldValueUpdated) {\n field._f.deps &&\n trigger(field._f.deps);\n shouldRenderByError(name, isValid, error, fieldState);\n }\n }\n };\n const _focusInput = (ref, key) => {\n if (get(_formState.errors, key) && ref.focus) {\n ref.focus();\n return 1;\n }\n return;\n };\n const trigger = async (name, options = {}) => {\n let isValid;\n let validationResult;\n const fieldNames = convertToArrayPayload(name);\n if (_options.resolver) {\n const errors = await executeSchemaAndUpdateState(isUndefined(name) ? name : fieldNames);\n isValid = isEmptyObject(errors);\n validationResult = name\n ? !fieldNames.some((name) => get(errors, name))\n : isValid;\n }\n else if (name) {\n validationResult = (await Promise.all(fieldNames.map(async (fieldName) => {\n const field = get(_fields, fieldName);\n return await executeBuiltInValidation(field && field._f ? { [fieldName]: field } : field);\n }))).every(Boolean);\n !(!validationResult && !_formState.isValid) && _updateValid();\n }\n else {\n validationResult = isValid = await executeBuiltInValidation(_fields);\n }\n _subjects.state.next({\n ...(!isString(name) ||\n (_proxyFormState.isValid && isValid !== _formState.isValid)\n ? {}\n : { name }),\n ...(_options.resolver || !name ? { isValid } : {}),\n errors: _formState.errors,\n });\n options.shouldFocus &&\n !validationResult &&\n iterateFieldsByAction(_fields, _focusInput, name ? fieldNames : _names.mount);\n return validationResult;\n };\n const getValues = (fieldNames) => {\n const values = {\n ...(_state.mount ? _formValues : _defaultValues),\n };\n return isUndefined(fieldNames)\n ? values\n : isString(fieldNames)\n ? get(values, fieldNames)\n : fieldNames.map((name) => get(values, name));\n };\n const getFieldState = (name, formState) => ({\n invalid: !!get((formState || _formState).errors, name),\n isDirty: !!get((formState || _formState).dirtyFields, name),\n error: get((formState || _formState).errors, name),\n isValidating: !!get(_formState.validatingFields, name),\n isTouched: !!get((formState || _formState).touchedFields, name),\n });\n const clearErrors = (name) => {\n name &&\n convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName));\n _subjects.state.next({\n errors: name ? _formState.errors : {},\n });\n };\n const setError = (name, error, options) => {\n const ref = (get(_fields, name, { _f: {} })._f || {}).ref;\n const currentError = get(_formState.errors, name) || {};\n // Don't override existing error messages elsewhere in the object tree.\n const { ref: currentRef, message, type, ...restOfErrorTree } = currentError;\n set(_formState.errors, name, {\n ...restOfErrorTree,\n ...error,\n ref,\n });\n _subjects.state.next({\n name,\n errors: _formState.errors,\n isValid: false,\n });\n options && options.shouldFocus && ref && ref.focus && ref.focus();\n };\n const watch = (name, defaultValue) => isFunction(name)\n ? _subjects.values.subscribe({\n next: (payload) => name(_getWatch(undefined, defaultValue), payload),\n })\n : _getWatch(name, defaultValue, true);\n const unregister = (name, options = {}) => {\n for (const fieldName of name ? convertToArrayPayload(name) : _names.mount) {\n _names.mount.delete(fieldName);\n _names.array.delete(fieldName);\n if (!options.keepValue) {\n unset(_fields, fieldName);\n unset(_formValues, fieldName);\n }\n !options.keepError && unset(_formState.errors, fieldName);\n !options.keepDirty && unset(_formState.dirtyFields, fieldName);\n !options.keepTouched && unset(_formState.touchedFields, fieldName);\n !options.keepIsValidating &&\n unset(_formState.validatingFields, fieldName);\n !_options.shouldUnregister &&\n !options.keepDefaultValue &&\n unset(_defaultValues, fieldName);\n }\n _subjects.values.next({\n values: { ..._formValues },\n });\n _subjects.state.next({\n ..._formState,\n ...(!options.keepDirty ? {} : { isDirty: _getDirty() }),\n });\n !options.keepIsValid && _updateValid();\n };\n const _updateDisabledField = ({ disabled, name, field, fields, }) => {\n if ((isBoolean(disabled) && _state.mount) ||\n !!disabled ||\n _names.disabled.has(name)) {\n disabled ? _names.disabled.add(name) : _names.disabled.delete(name);\n updateTouchAndDirty(name, getFieldValue(field ? field._f : get(fields, name)._f), false, false, true);\n }\n };\n const register = (name, options = {}) => {\n let field = get(_fields, name);\n const disabledIsDefined = isBoolean(options.disabled) || isBoolean(_options.disabled);\n set(_fields, name, {\n ...(field || {}),\n _f: {\n ...(field && field._f ? field._f : { ref: { name } }),\n name,\n mount: true,\n ...options,\n },\n });\n _names.mount.add(name);\n if (field) {\n _updateDisabledField({\n field,\n disabled: isBoolean(options.disabled)\n ? options.disabled\n : _options.disabled,\n name,\n });\n }\n else {\n updateValidAndValue(name, true, options.value);\n }\n return {\n ...(disabledIsDefined\n ? { disabled: options.disabled || _options.disabled }\n : {}),\n ...(_options.progressive\n ? {\n required: !!options.required,\n min: getRuleValue(options.min),\n max: getRuleValue(options.max),\n minLength: getRuleValue(options.minLength),\n maxLength: getRuleValue(options.maxLength),\n pattern: getRuleValue(options.pattern),\n }\n : {}),\n name,\n onChange,\n onBlur: onChange,\n ref: (ref) => {\n if (ref) {\n register(name, options);\n field = get(_fields, name);\n const fieldRef = isUndefined(ref.value)\n ? ref.querySelectorAll\n ? ref.querySelectorAll('input,select,textarea')[0] || ref\n : ref\n : ref;\n const radioOrCheckbox = isRadioOrCheckbox(fieldRef);\n const refs = field._f.refs || [];\n if (radioOrCheckbox\n ? refs.find((option) => option === fieldRef)\n : fieldRef === field._f.ref) {\n return;\n }\n set(_fields, name, {\n _f: {\n ...field._f,\n ...(radioOrCheckbox\n ? {\n refs: [\n ...refs.filter(live),\n fieldRef,\n ...(Array.isArray(get(_defaultValues, name)) ? [{}] : []),\n ],\n ref: { type: fieldRef.type, name },\n }\n : { ref: fieldRef }),\n },\n });\n updateValidAndValue(name, false, undefined, fieldRef);\n }\n else {\n field = get(_fields, name, {});\n if (field._f) {\n field._f.mount = false;\n }\n (_options.shouldUnregister || options.shouldUnregister) &&\n !(isNameInFieldArray(_names.array, name) && _state.action) &&\n _names.unMount.add(name);\n }\n },\n };\n };\n const _focusError = () => _options.shouldFocusError &&\n iterateFieldsByAction(_fields, _focusInput, _names.mount);\n const _disableForm = (disabled) => {\n if (isBoolean(disabled)) {\n _subjects.state.next({ disabled });\n iterateFieldsByAction(_fields, (ref, name) => {\n const currentField = get(_fields, name);\n if (currentField) {\n ref.disabled = currentField._f.disabled || disabled;\n if (Array.isArray(currentField._f.refs)) {\n currentField._f.refs.forEach((inputRef) => {\n inputRef.disabled = currentField._f.disabled || disabled;\n });\n }\n }\n }, 0, false);\n }\n };\n const handleSubmit = (onValid, onInvalid) => async (e) => {\n let onValidError = undefined;\n if (e) {\n e.preventDefault && e.preventDefault();\n e.persist && e.persist();\n }\n let fieldValues = cloneObject(_formValues);\n if (_names.disabled.size) {\n for (const name of _names.disabled) {\n set(fieldValues, name, undefined);\n }\n }\n _subjects.state.next({\n isSubmitting: true,\n });\n if (_options.resolver) {\n const { errors, values } = await _executeSchema();\n _formState.errors = errors;\n fieldValues = values;\n }\n else {\n await executeBuiltInValidation(_fields);\n }\n unset(_formState.errors, 'root');\n if (isEmptyObject(_formState.errors)) {\n _subjects.state.next({\n errors: {},\n });\n try {\n await onValid(fieldValues, e);\n }\n catch (error) {\n onValidError = error;\n }\n }\n else {\n if (onInvalid) {\n await onInvalid({ ..._formState.errors }, e);\n }\n _focusError();\n setTimeout(_focusError);\n }\n _subjects.state.next({\n isSubmitted: true,\n isSubmitting: false,\n isSubmitSuccessful: isEmptyObject(_formState.errors) && !onValidError,\n submitCount: _formState.submitCount + 1,\n errors: _formState.errors,\n });\n if (onValidError) {\n throw onValidError;\n }\n };\n const resetField = (name, options = {}) => {\n if (get(_fields, name)) {\n if (isUndefined(options.defaultValue)) {\n setValue(name, cloneObject(get(_defaultValues, name)));\n }\n else {\n setValue(name, options.defaultValue);\n set(_defaultValues, name, cloneObject(options.defaultValue));\n }\n if (!options.keepTouched) {\n unset(_formState.touchedFields, name);\n }\n if (!options.keepDirty) {\n unset(_formState.dirtyFields, name);\n _formState.isDirty = options.defaultValue\n ? _getDirty(name, cloneObject(get(_defaultValues, name)))\n : _getDirty();\n }\n if (!options.keepError) {\n unset(_formState.errors, name);\n _proxyFormState.isValid && _updateValid();\n }\n _subjects.state.next({ ..._formState });\n }\n };\n const _reset = (formValues, keepStateOptions = {}) => {\n const updatedValues = formValues ? cloneObject(formValues) : _defaultValues;\n const cloneUpdatedValues = cloneObject(updatedValues);\n const isEmptyResetValues = isEmptyObject(formValues);\n const values = isEmptyResetValues ? _defaultValues : cloneUpdatedValues;\n if (!keepStateOptions.keepDefaultValues) {\n _defaultValues = updatedValues;\n }\n if (!keepStateOptions.keepValues) {\n if (keepStateOptions.keepDirtyValues) {\n const fieldsToCheck = new Set([\n ..._names.mount,\n ...Object.keys(getDirtyFields(_defaultValues, _formValues)),\n ]);\n for (const fieldName of Array.from(fieldsToCheck)) {\n get(_formState.dirtyFields, fieldName)\n ? set(values, fieldName, get(_formValues, fieldName))\n : setValue(fieldName, get(values, fieldName));\n }\n }\n else {\n if (isWeb && isUndefined(formValues)) {\n for (const name of _names.mount) {\n const field = get(_fields, name);\n if (field && field._f) {\n const fieldReference = Array.isArray(field._f.refs)\n ? field._f.refs[0]\n : field._f.ref;\n if (isHTMLElement(fieldReference)) {\n const form = fieldReference.closest('form');\n if (form) {\n form.reset();\n break;\n }\n }\n }\n }\n }\n _fields = {};\n }\n _formValues = _options.shouldUnregister\n ? keepStateOptions.keepDefaultValues\n ? cloneObject(_defaultValues)\n : {}\n : cloneObject(values);\n _subjects.array.next({\n values: { ...values },\n });\n _subjects.values.next({\n values: { ...values },\n });\n }\n _names = {\n mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),\n unMount: new Set(),\n array: new Set(),\n disabled: new Set(),\n watch: new Set(),\n watchAll: false,\n focus: '',\n };\n _state.mount =\n !_proxyFormState.isValid ||\n !!keepStateOptions.keepIsValid ||\n !!keepStateOptions.keepDirtyValues;\n _state.watch = !!_options.shouldUnregister;\n _subjects.state.next({\n submitCount: keepStateOptions.keepSubmitCount\n ? _formState.submitCount\n : 0,\n isDirty: isEmptyResetValues\n ? false\n : keepStateOptions.keepDirty\n ? _formState.isDirty\n : !!(keepStateOptions.keepDefaultValues &&\n !deepEqual(formValues, _defaultValues)),\n isSubmitted: keepStateOptions.keepIsSubmitted\n ? _formState.isSubmitted\n : false,\n dirtyFields: isEmptyResetValues\n ? {}\n : keepStateOptions.keepDirtyValues\n ? keepStateOptions.keepDefaultValues && _formValues\n ? getDirtyFields(_defaultValues, _formValues)\n : _formState.dirtyFields\n : keepStateOptions.keepDefaultValues && formValues\n ? getDirtyFields(_defaultValues, formValues)\n : keepStateOptions.keepDirty\n ? _formState.dirtyFields\n : {},\n touchedFields: keepStateOptions.keepTouched\n ? _formState.touchedFields\n : {},\n errors: keepStateOptions.keepErrors ? _formState.errors : {},\n isSubmitSuccessful: keepStateOptions.keepIsSubmitSuccessful\n ? _formState.isSubmitSuccessful\n : false,\n isSubmitting: false,\n });\n };\n const reset = (formValues, keepStateOptions) => _reset(isFunction(formValues)\n ? formValues(_formValues)\n : formValues, keepStateOptions);\n const setFocus = (name, options = {}) => {\n const field = get(_fields, name);\n const fieldReference = field && field._f;\n if (fieldReference) {\n const fieldRef = fieldReference.refs\n ? fieldReference.refs[0]\n : fieldReference.ref;\n if (fieldRef.focus) {\n fieldRef.focus();\n options.shouldSelect &&\n isFunction(fieldRef.select) &&\n fieldRef.select();\n }\n }\n };\n const _updateFormState = (updatedFormState) => {\n _formState = {\n ..._formState,\n ...updatedFormState,\n };\n };\n const _resetDefaultValues = () => isFunction(_options.defaultValues) &&\n _options.defaultValues().then((values) => {\n reset(values, _options.resetOptions);\n _subjects.state.next({\n isLoading: false,\n });\n });\n return {\n control: {\n register,\n unregister,\n getFieldState,\n handleSubmit,\n setError,\n _executeSchema,\n _getWatch,\n _getDirty,\n _updateValid,\n _removeUnmounted,\n _updateFieldArray,\n _updateDisabledField,\n _getFieldArray,\n _reset,\n _resetDefaultValues,\n _updateFormState,\n _disableForm,\n _subjects,\n _proxyFormState,\n _setErrors,\n get _fields() {\n return _fields;\n },\n get _formValues() {\n return _formValues;\n },\n get _state() {\n return _state;\n },\n set _state(value) {\n _state = value;\n },\n get _defaultValues() {\n return _defaultValues;\n },\n get _names() {\n return _names;\n },\n set _names(value) {\n _names = value;\n },\n get _formState() {\n return _formState;\n },\n set _formState(value) {\n _formState = value;\n },\n get _options() {\n return _options;\n },\n set _options(value) {\n _options = {\n ..._options,\n ...value,\n };\n },\n },\n trigger,\n register,\n handleSubmit,\n watch,\n setValue,\n getValues,\n reset,\n resetField,\n clearErrors,\n unregister,\n setError,\n setFocus,\n getFieldState,\n };\n}\n\n/**\n * Custom hook to manage the entire form.\n *\n * @remarks\n * [API](https://react-hook-form.com/docs/useform) • [Demo](https://codesandbox.io/s/react-hook-form-get-started-ts-5ksmm) • [Video](https://www.youtube.com/watch?v=RkXv4AXXC_4)\n *\n * @param props - form configuration and validation parameters.\n *\n * @returns methods - individual functions to manage the form state. {@link UseFormReturn}\n *\n * @example\n * ```tsx\n * function App() {\n * const { register, handleSubmit, watch, formState: { errors } } = useForm();\n * const onSubmit = data => console.log(data);\n *\n * console.log(watch(\"example\"));\n *\n * return (\n *
\n * \n * \n * {errors.exampleRequired && This field is required}\n * \n *
\n * );\n * }\n * ```\n */\nfunction useForm(props = {}) {\n const _formControl = React.useRef(undefined);\n const _values = React.useRef(undefined);\n const [formState, updateFormState] = React.useState({\n isDirty: false,\n isValidating: false,\n isLoading: isFunction(props.defaultValues),\n isSubmitted: false,\n isSubmitting: false,\n isSubmitSuccessful: false,\n isValid: false,\n submitCount: 0,\n dirtyFields: {},\n touchedFields: {},\n validatingFields: {},\n errors: props.errors || {},\n disabled: props.disabled || false,\n defaultValues: isFunction(props.defaultValues)\n ? undefined\n : props.defaultValues,\n });\n if (!_formControl.current) {\n _formControl.current = {\n ...createFormControl(props),\n formState,\n };\n }\n const control = _formControl.current.control;\n control._options = props;\n useSubscribe({\n subject: control._subjects.state,\n next: (value) => {\n if (shouldRenderFormState(value, control._proxyFormState, control._updateFormState, true)) {\n updateFormState({ ...control._formState });\n }\n },\n });\n React.useEffect(() => control._disableForm(props.disabled), [control, props.disabled]);\n React.useEffect(() => {\n if (control._proxyFormState.isDirty) {\n const isDirty = control._getDirty();\n if (isDirty !== formState.isDirty) {\n control._subjects.state.next({\n isDirty,\n });\n }\n }\n }, [control, formState.isDirty]);\n React.useEffect(() => {\n if (props.values && !deepEqual(props.values, _values.current)) {\n control._reset(props.values, control._options.resetOptions);\n _values.current = props.values;\n updateFormState((state) => ({ ...state }));\n }\n else {\n control._resetDefaultValues();\n }\n }, [props.values, control]);\n React.useEffect(() => {\n if (props.errors) {\n control._setErrors(props.errors);\n }\n }, [props.errors, control]);\n React.useEffect(() => {\n if (!control._state.mount) {\n control._updateValid();\n control._state.mount = true;\n }\n if (control._state.watch) {\n control._state.watch = false;\n control._subjects.state.next({ ...control._formState });\n }\n control._removeUnmounted();\n });\n React.useEffect(() => {\n props.shouldUnregister &&\n control._subjects.values.next({\n values: control._getWatch(),\n });\n }, [props.shouldUnregister, control]);\n _formControl.current.formState = getProxyFormState(formState, control);\n return _formControl.current;\n}\n\nexport { Controller, Form, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };\n//# sourceMappingURL=index.esm.mjs.map\n","import B,{useMemo as Ve,useRef as je,useState as Oe}from\"react\";var R=[[\"Afghanistan\",\"af\",\"93\"],[\"Albania\",\"al\",\"355\"],[\"Algeria\",\"dz\",\"213\"],[\"Andorra\",\"ad\",\"376\"],[\"Angola\",\"ao\",\"244\"],[\"Antigua and Barbuda\",\"ag\",\"1268\"],[\"Argentina\",\"ar\",\"54\",\"(..) ........\",0],[\"Armenia\",\"am\",\"374\",\".. ......\"],[\"Aruba\",\"aw\",\"297\"],[\"Australia\",\"au\",\"61\",{default:\". .... ....\",\"/^4/\":\"... ... ...\",\"/^5(?!50)/\":\"... ... ...\",\"/^1(3|8)00/\":\".... ... ...\",\"/^13/\":\".. .. ..\",\"/^180/\":\"... ....\"},0,[]],[\"Austria\",\"at\",\"43\"],[\"Azerbaijan\",\"az\",\"994\",\"(..) ... .. ..\"],[\"Bahamas\",\"bs\",\"1242\"],[\"Bahrain\",\"bh\",\"973\"],[\"Bangladesh\",\"bd\",\"880\"],[\"Barbados\",\"bb\",\"1246\"],[\"Belarus\",\"by\",\"375\",\"(..) ... .. ..\"],[\"Belgium\",\"be\",\"32\",\"... .. .. ..\"],[\"Belize\",\"bz\",\"501\"],[\"Benin\",\"bj\",\"229\"],[\"Bhutan\",\"bt\",\"975\"],[\"Bolivia\",\"bo\",\"591\"],[\"Bosnia and Herzegovina\",\"ba\",\"387\"],[\"Botswana\",\"bw\",\"267\"],[\"Brazil\",\"br\",\"55\",\"(..) .........\"],[\"British Indian Ocean Territory\",\"io\",\"246\"],[\"Brunei\",\"bn\",\"673\"],[\"Bulgaria\",\"bg\",\"359\"],[\"Burkina Faso\",\"bf\",\"226\"],[\"Burundi\",\"bi\",\"257\"],[\"Cambodia\",\"kh\",\"855\"],[\"Cameroon\",\"cm\",\"237\"],[\"Canada\",\"ca\",\"1\",\"(...) ...-....\",1,[\"204\",\"226\",\"236\",\"249\",\"250\",\"289\",\"306\",\"343\",\"365\",\"387\",\"403\",\"416\",\"418\",\"431\",\"437\",\"438\",\"450\",\"506\",\"514\",\"519\",\"548\",\"579\",\"581\",\"587\",\"604\",\"613\",\"639\",\"647\",\"672\",\"705\",\"709\",\"742\",\"778\",\"780\",\"782\",\"807\",\"819\",\"825\",\"867\",\"873\",\"902\",\"905\"]],[\"Cape Verde\",\"cv\",\"238\"],[\"Caribbean Netherlands\",\"bq\",\"599\",\"\",1],[\"Cayman Islands\",\"ky\",\"1\",\"... ... ....\",4,[\"345\"]],[\"Central African Republic\",\"cf\",\"236\"],[\"Chad\",\"td\",\"235\"],[\"Chile\",\"cl\",\"56\"],[\"China\",\"cn\",\"86\",\"... .... ....\"],[\"Colombia\",\"co\",\"57\",\"... ... ....\"],[\"Comoros\",\"km\",\"269\"],[\"Congo\",\"cd\",\"243\"],[\"Congo\",\"cg\",\"242\"],[\"Costa Rica\",\"cr\",\"506\",\"....-....\"],[\"C\\xF4te d'Ivoire\",\"ci\",\"225\",\".. .. .. .. ..\"],[\"Croatia\",\"hr\",\"385\"],[\"Cuba\",\"cu\",\"53\"],[\"Cura\\xE7ao\",\"cw\",\"599\",\"\",0],[\"Cyprus\",\"cy\",\"357\",\".. ......\"],[\"Czech Republic\",\"cz\",\"420\",\"... ... ...\"],[\"Denmark\",\"dk\",\"45\",\".. .. .. ..\"],[\"Djibouti\",\"dj\",\"253\"],[\"Dominica\",\"dm\",\"1767\"],[\"Dominican Republic\",\"do\",\"1\",\"(...) ...-....\",2,[\"809\",\"829\",\"849\"]],[\"Ecuador\",\"ec\",\"593\"],[\"Egypt\",\"eg\",\"20\"],[\"El Salvador\",\"sv\",\"503\",\"....-....\"],[\"Equatorial Guinea\",\"gq\",\"240\"],[\"Eritrea\",\"er\",\"291\"],[\"Estonia\",\"ee\",\"372\",\".... ......\"],[\"Ethiopia\",\"et\",\"251\"],[\"Fiji\",\"fj\",\"679\"],[\"Finland\",\"fi\",\"358\",\".. ... .. ..\"],[\"France\",\"fr\",\"33\",\". .. .. .. ..\"],[\"French Guiana\",\"gf\",\"594\"],[\"French Polynesia\",\"pf\",\"689\"],[\"Gabon\",\"ga\",\"241\"],[\"Gambia\",\"gm\",\"220\"],[\"Georgia\",\"ge\",\"995\"],[\"Germany\",\"de\",\"49\",\"... .........\"],[\"Ghana\",\"gh\",\"233\"],[\"Greece\",\"gr\",\"30\"],[\"Greenland\",\"gl\",\"299\",\".. .. ..\"],[\"Grenada\",\"gd\",\"1473\"],[\"Guadeloupe\",\"gp\",\"590\",\"\",0],[\"Guam\",\"gu\",\"1671\"],[\"Guatemala\",\"gt\",\"502\",\"....-....\"],[\"Guinea\",\"gn\",\"224\"],[\"Guinea-Bissau\",\"gw\",\"245\"],[\"Guyana\",\"gy\",\"592\"],[\"Haiti\",\"ht\",\"509\",\"....-....\"],[\"Honduras\",\"hn\",\"504\"],[\"Hong Kong\",\"hk\",\"852\",\".... ....\"],[\"Hungary\",\"hu\",\"36\"],[\"Iceland\",\"is\",\"354\",\"... ....\"],[\"India\",\"in\",\"91\",\".....-.....\"],[\"Indonesia\",\"id\",\"62\"],[\"Iran\",\"ir\",\"98\",\"... ... ....\"],[\"Iraq\",\"iq\",\"964\"],[\"Ireland\",\"ie\",\"353\",\".. .......\"],[\"Israel\",\"il\",\"972\",\"... ... ....\"],[\"Italy\",\"it\",\"39\",\"... .......\",0],[\"Jamaica\",\"jm\",\"1876\"],[\"Japan\",\"jp\",\"81\",\".. .... ....\"],[\"Jordan\",\"jo\",\"962\"],[\"Kazakhstan\",\"kz\",\"7\",\"... ...-..-..\",0],[\"Kenya\",\"ke\",\"254\"],[\"Kiribati\",\"ki\",\"686\"],[\"Kosovo\",\"xk\",\"383\"],[\"Kuwait\",\"kw\",\"965\"],[\"Kyrgyzstan\",\"kg\",\"996\",\"... ... ...\"],[\"Laos\",\"la\",\"856\"],[\"Latvia\",\"lv\",\"371\",\".. ... ...\"],[\"Lebanon\",\"lb\",\"961\"],[\"Lesotho\",\"ls\",\"266\"],[\"Liberia\",\"lr\",\"231\"],[\"Libya\",\"ly\",\"218\"],[\"Liechtenstein\",\"li\",\"423\"],[\"Lithuania\",\"lt\",\"370\"],[\"Luxembourg\",\"lu\",\"352\"],[\"Macau\",\"mo\",\"853\"],[\"Macedonia\",\"mk\",\"389\"],[\"Madagascar\",\"mg\",\"261\"],[\"Malawi\",\"mw\",\"265\"],[\"Malaysia\",\"my\",\"60\",\"..-....-....\"],[\"Maldives\",\"mv\",\"960\"],[\"Mali\",\"ml\",\"223\"],[\"Malta\",\"mt\",\"356\"],[\"Marshall Islands\",\"mh\",\"692\"],[\"Martinique\",\"mq\",\"596\"],[\"Mauritania\",\"mr\",\"222\"],[\"Mauritius\",\"mu\",\"230\"],[\"Mexico\",\"mx\",\"52\",\"... ... ....\",0],[\"Micronesia\",\"fm\",\"691\"],[\"Moldova\",\"md\",\"373\",\"(..) ..-..-..\"],[\"Monaco\",\"mc\",\"377\"],[\"Mongolia\",\"mn\",\"976\"],[\"Montenegro\",\"me\",\"382\"],[\"Morocco\",\"ma\",\"212\"],[\"Mozambique\",\"mz\",\"258\"],[\"Myanmar\",\"mm\",\"95\"],[\"Namibia\",\"na\",\"264\"],[\"Nauru\",\"nr\",\"674\"],[\"Nepal\",\"np\",\"977\"],[\"Netherlands\",\"nl\",\"31\",{\"/^06/\":\"(.). .........\",\"/^6/\":\". .........\",\"/^0(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\"(.).. ........\",\"/^(10|13|14|15|20|23|24|26|30|33|35|36|38|40|43|44|45|46|50|53|55|58|70|71|72|73|74|75|76|77|78|79|82|84|85|87|88|91)/\":\".. ........\",\"/^0/\":\"(.)... .......\",default:\"... .......\"}],[\"New Caledonia\",\"nc\",\"687\"],[\"New Zealand\",\"nz\",\"64\",\"...-...-....\"],[\"Nicaragua\",\"ni\",\"505\"],[\"Niger\",\"ne\",\"227\"],[\"Nigeria\",\"ng\",\"234\"],[\"North Korea\",\"kp\",\"850\"],[\"Norway\",\"no\",\"47\",\"... .. ...\"],[\"Oman\",\"om\",\"968\"],[\"Pakistan\",\"pk\",\"92\",\"...-.......\"],[\"Palau\",\"pw\",\"680\"],[\"Palestine\",\"ps\",\"970\"],[\"Panama\",\"pa\",\"507\"],[\"Papua New Guinea\",\"pg\",\"675\"],[\"Paraguay\",\"py\",\"595\"],[\"Peru\",\"pe\",\"51\"],[\"Philippines\",\"ph\",\"63\",\".... .......\"],[\"Poland\",\"pl\",\"48\",\"...-...-...\"],[\"Portugal\",\"pt\",\"351\"],[\"Puerto Rico\",\"pr\",\"1\",\"(...) ...-....\",3,[\"787\",\"939\"]],[\"Qatar\",\"qa\",\"974\"],[\"R\\xE9union\",\"re\",\"262\"],[\"Romania\",\"ro\",\"40\"],[\"Russia\",\"ru\",\"7\",\"(...) ...-..-..\",1],[\"Rwanda\",\"rw\",\"250\"],[\"Saint Kitts and Nevis\",\"kn\",\"1869\"],[\"Saint Lucia\",\"lc\",\"1758\"],[\"Saint Vincent and the Grenadines\",\"vc\",\"1784\"],[\"Samoa\",\"ws\",\"685\"],[\"San Marino\",\"sm\",\"378\"],[\"S\\xE3o Tom\\xE9 and Pr\\xEDncipe\",\"st\",\"239\"],[\"Saudi Arabia\",\"sa\",\"966\"],[\"Senegal\",\"sn\",\"221\"],[\"Serbia\",\"rs\",\"381\"],[\"Seychelles\",\"sc\",\"248\"],[\"Sierra Leone\",\"sl\",\"232\"],[\"Singapore\",\"sg\",\"65\",\"....-....\"],[\"Slovakia\",\"sk\",\"421\"],[\"Slovenia\",\"si\",\"386\"],[\"Solomon Islands\",\"sb\",\"677\"],[\"Somalia\",\"so\",\"252\"],[\"South Africa\",\"za\",\"27\"],[\"South Korea\",\"kr\",\"82\",\"... .... ....\"],[\"South Sudan\",\"ss\",\"211\"],[\"Spain\",\"es\",\"34\",\"... ... ...\"],[\"Sri Lanka\",\"lk\",\"94\"],[\"Sudan\",\"sd\",\"249\"],[\"Suriname\",\"sr\",\"597\"],[\"Swaziland\",\"sz\",\"268\"],[\"Sweden\",\"se\",\"46\",\"... ... ...\"],[\"Switzerland\",\"ch\",\"41\",\".. ... .. ..\"],[\"Syria\",\"sy\",\"963\"],[\"Taiwan\",\"tw\",\"886\"],[\"Tajikistan\",\"tj\",\"992\"],[\"Tanzania\",\"tz\",\"255\"],[\"Thailand\",\"th\",\"66\"],[\"Timor-Leste\",\"tl\",\"670\"],[\"Togo\",\"tg\",\"228\"],[\"Tonga\",\"to\",\"676\"],[\"Trinidad and Tobago\",\"tt\",\"1868\"],[\"Tunisia\",\"tn\",\"216\"],[\"Turkey\",\"tr\",\"90\",\"... ... .. ..\"],[\"Turkmenistan\",\"tm\",\"993\"],[\"Tuvalu\",\"tv\",\"688\"],[\"Uganda\",\"ug\",\"256\"],[\"Ukraine\",\"ua\",\"380\",\"(..) ... .. ..\"],[\"United Arab Emirates\",\"ae\",\"971\"],[\"United Kingdom\",\"gb\",\"44\",\".... ......\"],[\"United States\",\"us\",\"1\",\"(...) ...-....\",0],[\"Uruguay\",\"uy\",\"598\"],[\"Uzbekistan\",\"uz\",\"998\",\".. ... .. ..\"],[\"Vanuatu\",\"vu\",\"678\"],[\"Vatican City\",\"va\",\"39\",\".. .... ....\",1],[\"Venezuela\",\"ve\",\"58\"],[\"Vietnam\",\"vn\",\"84\"],[\"Yemen\",\"ye\",\"967\"],[\"Zambia\",\"zm\",\"260\"],[\"Zimbabwe\",\"zw\",\"263\"]];var xe=\"react-international-phone-\",se=(...t)=>t.filter(e=>!!e).join(\" \").trim(),Se=(...t)=>se(...t).split(\" \").map(e=>`${xe}${e}`).join(\" \"),P=({addPrefix:t,rawClassNames:e})=>se(Se(...t),...e);var le=({value:t,mask:e,maskSymbol:a,offset:s=0,trimNonMaskCharsLeftover:r=!1})=>{if(t.length=c.length){if(!r&&l!==a){i+=l;continue}break}l===a?(i+=c[n],n+=1):i+=l}return i};var F=t=>t?/^\\d+$/.test(t):!1;var z=t=>t.replace(/\\D/g,\"\");var ue=(t,e)=>{let a=t.style.display;a!==\"block\"&&(t.style.display=\"block\");let s=t.getBoundingClientRect(),r=e.getBoundingClientRect(),o=r.top-s.top,c=s.bottom-r.bottom;o>=0&&c>=0||(Math.abs(o){let{name:e,iso2:a,dialCode:s,format:r,priority:o,areaCodes:c}=t,i=[e,a,s,r,o,c];for(let n=0;ng===void 0?\"__undefined\":g).replace(/\"__undefined\"/g,\"undefined\");throw new Error(`[react-international-phone] invalid country values passed to buildCountryData. Check ${l} in: ${m}`)}}return i.filter(n=>n!==void 0)};import{useCallback as Ne,useEffect as be,useMemo as Me,useRef as Re,useState as _e}from\"react\";var de=()=>typeof window>\"u\"?!1:window.navigator.userAgent.toLowerCase().includes(\"macintosh\");var ce=({phone:t,dialCode:e,prefix:a=\"+\",charAfterDialCode:s=\" \"})=>{if(!t||!e)return t;let r=t;return r.startsWith(a)&&(r=r.replace(a,\"\")),r.startsWith(e)?(r=r.replace(e,\"\"),r.startsWith(s)&&(r=r.replace(s,\"\")),r):t};var pe=(t,e)=>{let a=e.disableDialCodeAndPrefix?!1:e.forceDialCode,s=e.disableDialCodeAndPrefix?!1:e.insertDialCodeOnEmpty,r=t,o=l=>e.trimNonDigitsEnd?l.trim():l;if(!r)return s&&!r.length||a?o(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`):o(r);if(r=z(r),r===e.dialCode&&!e.disableDialCodeAndPrefix)return o(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(e.dialCode.startsWith(r)&&!e.disableDialCodeAndPrefix)return o(a?`${e.prefix}${e.dialCode}${e.charAfterDialCode}`:`${e.prefix}${r}`);if(!r.startsWith(e.dialCode)&&!e.disableDialCodeAndPrefix){if(a)return o(`${e.prefix}${e.dialCode}${e.charAfterDialCode}`);if(r.length{let l=e.dialCode.length,d=r.slice(0,l),m=r.slice(l);return{phoneLeftSide:d,phoneRightSide:m}},{phoneLeftSide:i,phoneRightSide:n}=c();return i=`${e.prefix}${i}${e.charAfterDialCode}`,n=le({value:n,mask:e.mask,maskSymbol:e.maskChar,trimNonMaskCharsLeftover:e.trimNonDigitsEnd||e.disableDialCodeAndPrefix&&n.length===0}),e.disableDialCodeAndPrefix&&(i=\"\"),o(`${i}${n}`)};var me=({phoneBeforeInput:t,phoneAfterInput:e,phoneAfterFormatted:a,cursorPositionAfterInput:s,leftOffset:r=0,deletion:o})=>{if(s=0;d-=1)if(F(e[d])){c=d;break}if(c===null){for(let d=0;d=i+1));d+=1);if(o!==\"backward\")for(;!F(a[n])&&nt?`${e}${z(t)}`:\"\";function W({value:t,country:e,insertDialCodeOnEmpty:a,trimNonDigitsEnd:s,countries:r,prefix:o,charAfterDialCode:c,forceDialCode:i,disableDialCodeAndPrefix:n,defaultMask:l,countryGuessingEnabled:d,disableFormatting:m}){let f=t;n&&(f=f.startsWith(`${o}`)?f:`${o}${e.dialCode}${f}`);let g=d?X({phone:f,countries:r,currentCountryIso2:e?.iso2}):void 0,S=g?.country??e,p=pe(f,{prefix:o,mask:Q({phone:f,country:S,defaultMask:l,disableFormatting:m}),maskChar:J,dialCode:S.dialCode,trimNonDigitsEnd:s,charAfterDialCode:c,forceDialCode:i,insertDialCodeOnEmpty:a,disableDialCodeAndPrefix:n}),h=d&&!g?.fullDialCodeMatch?e:S;return{phone:O({phone:n?`${h.dialCode}${p}`:p,prefix:o}),inputValue:p,country:h}}var ke=t=>{if(t?.toLocaleLowerCase().includes(\"delete\")??!1)return t?.toLocaleLowerCase().includes(\"forward\")?\"forward\":\"backward\"},fe=(t,{country:e,insertDialCodeOnEmpty:a,phoneBeforeInput:s,prefix:r,charAfterDialCode:o,forceDialCode:c,disableDialCodeAndPrefix:i,countryGuessingEnabled:n,defaultMask:l,disableFormatting:d,countries:m})=>{let f=t.nativeEvent,g=f.inputType,S=ke(g),p=!!g?.startsWith(\"insertFrom\"),h=g===\"insertText\",D=f?.data||void 0,k=t.target.value,_=t.target.selectionStart??0;if(g?.includes(\"history\"))return{inputValue:s,phone:O({phone:s,prefix:r}),cursorPosition:s.length,country:e};if(h&&!F(D)&&k!==r)return{inputValue:s,phone:O({phone:i?`${e.dialCode}${s}`:s,prefix:r}),cursorPosition:_-(D?.length??0),country:e};if(c&&!k.startsWith(`${r}${e.dialCode}`)&&!p){let b=k?s:`${r}${e.dialCode}${o}`;return{inputValue:b,phone:O({phone:b,prefix:r}),cursorPosition:r.length+e.dialCode.length+o.length,country:e}}let{phone:N,inputValue:u,country:C}=W({value:k,country:e,trimNonDigitsEnd:S===\"backward\",insertDialCodeOnEmpty:a,countryGuessingEnabled:n,countries:m,prefix:r,charAfterDialCode:o,forceDialCode:c,disableDialCodeAndPrefix:i,disableFormatting:d,defaultMask:l}),y=me({cursorPositionAfterInput:_,phoneBeforeInput:s,phoneAfterInput:k,phoneAfterFormatted:u,leftOffset:c?r.length+e.dialCode.length+o.length:0,deletion:S});return{phone:N,inputValue:u,cursorPosition:y,country:C}};import{useState as Y}from\"react\";var he=(t,e)=>{let a=Object.keys(t),s=Object.keys(e);if(a.length!==s.length)return!1;for(let r of a)if(t[r]!==e[r])return!1;return!0};import{useRef as Ce}from\"react\";var ye=()=>{let t=Ce(),e=Ce(Date.now());return{check:()=>{let s=Date.now(),r=t.current?s-e.current:void 0;return t.current=e.current,e.current=s,r}}};var Ie={size:20,overrideLastItemDebounceMS:-1};function ge(t,e){let{size:a,overrideLastItemDebounceMS:s,onChange:r}={...Ie,...e},[o,c]=Y(t),[i,n]=Y([o]),[l,d]=Y(0),m=ye();return[o,(p,h)=>{if(typeof p==\"object\"&&typeof o==\"object\"&&he(p,o)||p===o)return;let I=s>0,D=m.check(),k=I&&D!==void 0?D>s:!0;if(h?.overrideLastItem!==void 0?h.overrideLastItem:!k)n(N=>[...N.slice(0,l),p]);else{let N=i.length>=a;n(u=>[...u.slice(N?1:0,l+1),p]),N||d(u=>u+1)}c(p),r?.(p)},()=>{if(l<=0)return{success:!1};let p=i[l-1];return c(p),d(h=>h-1),r?.(p),{success:!0,value:p}},()=>{if(l+1>=i.length)return{success:!1};let p=i[l+1];return c(p),d(h=>h+1),r?.(p),{success:!0,value:p}}]}var J=\".\",E={defaultCountry:\"us\",value:\"\",prefix:\"+\",defaultMask:\"............\",charAfterDialCode:\" \",historySaveDebounceMS:200,disableCountryGuess:!1,disableDialCodePrefill:!1,forceDialCode:!1,disableDialCodeAndPrefix:!1,disableFormatting:!1,countries:R,preferredCountries:[]},ee=({defaultCountry:t=E.defaultCountry,value:e=E.value,countries:a=E.countries,prefix:s=E.prefix,defaultMask:r=E.defaultMask,charAfterDialCode:o=E.charAfterDialCode,historySaveDebounceMS:c=E.historySaveDebounceMS,disableCountryGuess:i=E.disableCountryGuess,disableDialCodePrefill:n=E.disableDialCodePrefill,forceDialCode:l=E.forceDialCode,disableDialCodeAndPrefix:d=E.disableDialCodeAndPrefix,disableFormatting:m=E.disableFormatting,onChange:f,inputRef:g})=>{let h={countries:a,prefix:s,charAfterDialCode:o,forceDialCode:d?!1:l,disableDialCodeAndPrefix:d,defaultMask:r,countryGuessingEnabled:!i,disableFormatting:m},I=Re(null),D=g||I,k=w=>{Promise.resolve().then(()=>{typeof window>\"u\"||D.current!==document?.activeElement||D.current?.setSelectionRange(w,w)})},[{phone:_,inputValue:N,country:u},C,y,b]=ge(()=>{let w=$({value:t,field:\"iso2\",countries:a});w||console.error(`[react-international-phone]: can not find a country with \"${t}\" iso2 code`);let T=w||$({value:\"us\",field:\"iso2\",countries:a}),{phone:x,inputValue:L,country:U}=W({value:e,country:T,insertDialCodeOnEmpty:!n,...h});return k(L.length),{phone:x,inputValue:L,country:U.iso2}},{overrideLastItemDebounceMS:c,onChange:({inputValue:w,phone:T,country:x})=>{if(!f)return;let L=v(x);f({phone:T,inputValue:w,country:L})}}),v=Ne(w=>$({value:w,field:\"iso2\",countries:a}),[a]),A=Me(()=>v(u),[u,v]);be(()=>{let w=D.current;if(!w)return;let T=x=>{if(!x.key)return;let L=x.ctrlKey,U=x.metaKey,ve=x.shiftKey;if(x.key.toLowerCase()===\"z\"){if(de()){if(!U)return}else if(!L)return;ve?b():y()}};return w.addEventListener(\"keydown\",T),()=>{w.removeEventListener(\"keydown\",T)}},[D,y,b]);let V=w=>{w.preventDefault();let{phone:T,inputValue:x,country:L,cursorPosition:U}=fe(w,{country:A,phoneBeforeInput:N,insertDialCodeOnEmpty:!1,...h});return C({inputValue:x,phone:T,country:L.iso2}),k(U),e},K=(w,T={focusOnInput:!1})=>{let x=$({value:w,field:\"iso2\",countries:a});if(!x){console.error(`[react-international-phone]: can not find a country with \"${w}\" iso2 code`);return}let L=d?\"\":`${s}${x.dialCode}${o}`;C({inputValue:L,phone:`${s}${x.dialCode}`,country:x.iso2}),T.focusOnInput&&Promise.resolve().then(()=>{D.current?.focus()})},[G,j]=_e(!1);return be(()=>{if(!G){j(!0),e!==_&&f?.({inputValue:N,phone:_,country:A});return}if(e===_)return;let{phone:w,inputValue:T,country:x}=W({value:e,country:A,insertDialCodeOnEmpty:!n,...h});C({phone:w,inputValue:T,country:x.iso2})},[e]),{phone:_,inputValue:N,country:A,setCountry:K,handlePhoneValueChange:V,inputRef:D}};var Q=({phone:t,country:e,defaultMask:a=\"............\",disableFormatting:s=!1})=>{let r=e.format,o=i=>s?i.replace(new RegExp(`[^${J}]`,\"g\"),\"\"):i;if(!r)return o(a);if(typeof r==\"string\")return o(r);if(!r.default)return console.error(`[react-international-phone]: default mask for ${e.iso2} is not provided`),o(a);let c=Object.keys(r).find(i=>{if(i===\"default\")return!1;if(!(i.charAt(0)===\"/\"&&i.charAt(i.length-1)===\"/\"))return console.error(`[react-international-phone]: format regex \"${i}\" for ${e.iso2} is not valid`),!1;let l=new RegExp(i.substring(1,i.length-1)),d=t.replace(e.dialCode,\"\");return l.test(z(d))});return o(c?r[c]:r.default)};var M=t=>{let[e,a,s,r,o,c]=t;return{name:e,iso2:a,dialCode:s,format:r,priority:o,areaCodes:c}};var Ae=t=>`Field \"${t}\" is not supported`,$=({field:t,value:e,countries:a=R})=>{if([\"priority\"].includes(t))throw new Error(Ae(t));let s=a.find(r=>{let o=M(r);return e===o[t]});if(s)return M(s)};var X=({phone:t,countries:e=R,currentCountryIso2:a})=>{let s={country:void 0,fullDialCodeMatch:!1};if(!t)return s;let r=z(t);if(!r)return s;let o=s,c=({country:i,fullDialCodeMatch:n})=>{let l=i.dialCode===o.country?.dialCode,d=(i.priority??0)<(o.country?.priority??0);(!l||d)&&(o={country:i,fullDialCodeMatch:n})};for(let i of e){let n=M(i),{dialCode:l,areaCodes:d}=n;if(r.startsWith(l)){let m=o.country?Number(l)>=Number(o.country.dialCode):!0;if(d){let f=r.substring(l.length);for(let g of d)if(f.startsWith(g))return{country:n,fullDialCodeMatch:!0}}(m||l===r||!o.fullDialCodeMatch)&&c({country:n,fullDialCodeMatch:!0})}o.fullDialCodeMatch||r.length{if(!m?.areaCodes)return!1;let f=r.substring(m.dialCode.length);return m.areaCodes.some(g=>g.startsWith(f))})(i):!1;!!o&&o.country?.dialCode===i.dialCode&&o.country!==i&&o.fullDialCodeMatch&&(!i.areaCodes||l)&&(o={country:i,fullDialCodeMatch:!0})}return o};import we from\"react\";var Te=(t,e)=>{let a=parseInt(t,16);return Number(a+e).toString(16)},Ee=\"abcdefghijklmnopqrstuvwxyz\",Le=\"1f1e6\",Pe=Ee.split(\"\").reduce((t,e,a)=>({...t,[e]:Te(Le,a)}),{}),$e=t=>[Pe[t[0]],Pe[t[1]]].join(\"-\"),q=({iso2:t,size:e,src:a,protocol:s=\"https\",disableLazyLoading:r,className:o,style:c,...i})=>{if(!t)return we.createElement(\"img\",{className:P({addPrefix:[\"flag-emoji\"],rawClassNames:[o]}),width:e,height:e,...i});let n=()=>{if(a)return a;let l=$e(t);return`${s}://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/${l}.svg`};return we.createElement(\"img\",{className:P({addPrefix:[\"flag-emoji\"],rawClassNames:[o]}),src:n(),width:e,height:e,draggable:!1,\"data-country\":t,loading:r?void 0:\"lazy\",style:{width:e,height:e,...c},alt:\"\",...i})};import H,{useCallback as te,useEffect as re,useMemo as Fe,useRef as oe,useState as ze}from\"react\";var He=1e3,ne=({show:t,dialCodePrefix:e=\"+\",selectedCountry:a,countries:s=R,preferredCountries:r=[],flags:o,onSelect:c,onClose:i,...n})=>{let l=oe(null),d=oe(),m=Fe(()=>{if(!r||!r.length)return s;let u=[],C=[...s];for(let y of r){let b=C.findIndex(v=>M(v).iso2===y);if(b!==-1){let v=C.splice(b,1)[0];u.push(v)}}return u.concat(C)},[s,r]),f=oe({updatedAt:void 0,value:\"\"}),g=u=>{let C=f.current.updatedAt&&new Date().getTime()-f.current.updatedAt.getTime()>He;f.current={value:C?u:`${f.current.value}${u}`,updatedAt:new Date};let y=m.findIndex(b=>M(b).name.toLowerCase().startsWith(f.current.value));y!==-1&&h(y)},S=te(u=>m.findIndex(C=>M(C).iso2===u),[m]),[p,h]=ze(S(a)),I=()=>{d.current!==a&&h(S(a))},D=te(u=>{h(S(u.iso2)),c?.(u)},[c,S]),k=u=>{let C=m.length-1,y=b=>u===\"prev\"?b-1:u===\"next\"?b+1:u===\"last\"?C:0;h(b=>{let v=y(b);return v<0?0:v>C?C:v})},_=u=>{if(u.stopPropagation(),u.key===\"Enter\"){u.preventDefault();let C=M(m[p]);D(C);return}if(u.key===\"Escape\"){i?.();return}if(u.key===\"ArrowUp\"){u.preventDefault(),k(\"prev\");return}if(u.key===\"ArrowDown\"){u.preventDefault(),k(\"next\");return}if(u.key===\"PageUp\"){u.preventDefault(),k(\"first\");return}if(u.key===\"PageDown\"){u.preventDefault(),k(\"last\");return}u.key===\" \"&&u.preventDefault(),u.key.length===1&&!u.altKey&&!u.ctrlKey&&!u.metaKey&&g(u.key.toLocaleLowerCase())},N=te(()=>{if(!l.current||p===void 0)return;let u=M(m[p]).iso2;if(u===d.current)return;let C=l.current.querySelector(`[data-country=\"${u}\"]`);C&&(ue(l.current,C),d.current=u)},[p,m]);return re(()=>{N()},[p,N]),re(()=>{l.current&&(t?l.current.focus():I())},[t]),re(()=>{I()},[a]),H.createElement(\"ul\",{ref:l,role:\"listbox\",className:P({addPrefix:[\"country-selector-dropdown\"],rawClassNames:[n.className]}),style:{display:t?\"block\":\"none\",...n.style},onKeyDown:_,onBlur:i,tabIndex:-1,\"aria-activedescendant\":`react-international-phone__${M(m[p]).iso2}-option`},m.map((u,C)=>{let y=M(u),b=y.iso2===a,v=C===p,A=r.includes(y.iso2),V=C===r.length-1,K=o?.find(G=>G.iso2===y.iso2);return H.createElement(H.Fragment,{key:y.iso2},H.createElement(\"li\",{\"data-country\":y.iso2,role:\"option\",\"aria-selected\":b,\"aria-label\":`${y.name} ${e}${y.dialCode}`,id:`react-international-phone__${y.iso2}-option`,className:P({addPrefix:[\"country-selector-dropdown__list-item\",A&&\"country-selector-dropdown__list-item--preferred\",b&&\"country-selector-dropdown__list-item--selected\",v&&\"country-selector-dropdown__list-item--focused\"],rawClassNames:[n.listItemClassName]}),onClick:()=>D(y),style:n.listItemStyle,title:y.name},H.createElement(q,{iso2:y.iso2,src:K?.src,className:P({addPrefix:[\"country-selector-dropdown__list-item-flag-emoji\"],rawClassNames:[n.listItemFlagClassName]}),style:n.listItemFlagStyle}),H.createElement(\"span\",{className:P({addPrefix:[\"country-selector-dropdown__list-item-country-name\"],rawClassNames:[n.listItemCountryNameClassName]}),style:n.listItemCountryNameStyle},y.name),H.createElement(\"span\",{className:P({addPrefix:[\"country-selector-dropdown__list-item-dial-code\"],rawClassNames:[n.listItemDialCodeClassName]}),style:n.listItemDialCodeStyle},e,y.dialCode)),V?H.createElement(\"hr\",{className:P({addPrefix:[\"country-selector-dropdown__preferred-list-divider\"],rawClassNames:[n.preferredListDividerClassName]}),style:n.preferredListDividerStyle}):null)}))};var ae=({selectedCountry:t,onSelect:e,disabled:a,hideDropdown:s,countries:r=R,preferredCountries:o=[],flags:c,renderButtonWrapper:i,...n})=>{let[l,d]=Oe(!1),m=Ve(()=>{if(t)return $({value:t,field:\"iso2\",countries:r})},[r,t]),f=je(null),g=p=>{p.key&&[\"ArrowUp\",\"ArrowDown\"].includes(p.key)&&(p.preventDefault(),d(!0))},S=()=>{let p={title:m?.name,onClick:()=>d(I=>!I),onMouseDown:I=>I.preventDefault(),onKeyDown:g,disabled:s||a,role:\"combobox\",\"aria-label\":\"Country selector\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":l},h=B.createElement(\"div\",{className:P({addPrefix:[\"country-selector-button__button-content\"],rawClassNames:[n.buttonContentWrapperClassName]}),style:n.buttonContentWrapperStyle},B.createElement(q,{iso2:t,src:c?.find(I=>I.iso2===t)?.src,className:P({addPrefix:[\"country-selector-button__flag-emoji\",a&&\"country-selector-button__flag-emoji--disabled\"],rawClassNames:[n.flagClassName]}),style:{visibility:t?\"visible\":\"hidden\",...n.flagStyle}}),!s&&B.createElement(\"div\",{className:P({addPrefix:[\"country-selector-button__dropdown-arrow\",a&&\"country-selector-button__dropdown-arrow--disabled\",l&&\"country-selector-button__dropdown-arrow--active\"],rawClassNames:[n.dropdownArrowClassName]}),style:n.dropdownArrowStyle}));return i?i({children:h,rootProps:p}):B.createElement(\"button\",{...p,type:\"button\",className:P({addPrefix:[\"country-selector-button\",l&&\"country-selector-button--active\",a&&\"country-selector-button--disabled\",s&&\"country-selector-button--hide-dropdown\"],rawClassNames:[n.buttonClassName]}),\"data-country\":t,style:n.buttonStyle},h)};return B.createElement(\"div\",{className:P({addPrefix:[\"country-selector\"],rawClassNames:[n.className]}),style:n.style,ref:f},S(),B.createElement(ne,{show:l,countries:r,preferredCountries:o,flags:c,onSelect:p=>{d(!1),e?.(p)},selectedCountry:t,onClose:()=>{d(!1)},...n.dropdownStyleProps}))};import Be from\"react\";var ie=({dialCode:t,prefix:e,disabled:a,style:s,className:r})=>Be.createElement(\"div\",{className:P({addPrefix:[\"dial-code-preview\",a&&\"dial-code-preview--disabled\"],rawClassNames:[r]}),style:s},`${e}${t}`);import Z,{forwardRef as Ke,useImperativeHandle as Ge}from\"react\";var Ue=Ke(({value:t,onChange:e,countries:a=R,preferredCountries:s=[],hideDropdown:r,showDisabledDialCodeAndPrefix:o,disableFocusAfterCountrySelect:c,flags:i,style:n,className:l,inputStyle:d,inputClassName:m,countrySelectorStyleProps:f,dialCodePreviewStyleProps:g,inputProps:S,placeholder:p,disabled:h,name:I,onFocus:D,onBlur:k,required:_,autoFocus:N,...u},C)=>{let{phone:y,inputValue:b,inputRef:v,country:A,setCountry:V,handlePhoneValueChange:K}=ee({value:t,countries:a,...u,onChange:j=>{e?.(j.phone,{country:j.country,inputValue:j.inputValue})}}),G=u.disableDialCodeAndPrefix&&o&&A?.dialCode;return Ge(C,()=>v.current?Object.assign(v.current,{setCountry:V,state:{phone:y,inputValue:b,country:A}}):null,[v,V,y,b,A]),Z.createElement(\"div\",{ref:C,className:P({addPrefix:[\"input-container\"],rawClassNames:[l]}),style:n},Z.createElement(ae,{onSelect:j=>V(j.iso2,{focusOnInput:!c}),flags:i,selectedCountry:A.iso2,countries:a,preferredCountries:s,disabled:h,hideDropdown:r,...f}),G&&Z.createElement(ie,{dialCode:A.dialCode,prefix:u.prefix??\"+\",disabled:h,...g}),Z.createElement(\"input\",{onChange:K,value:b,type:\"tel\",ref:v,className:P({addPrefix:[\"input\",h&&\"input--disabled\"],rawClassNames:[m]}),placeholder:p,disabled:h,style:d,name:I,onFocus:D,onBlur:k,autoFocus:N,required:_,...S}))});export{ae as CountrySelector,ne as CountrySelectorDropdown,ie as DialCodePreview,q as FlagImage,Ue as PhoneInput,De as buildCountryData,R as defaultCountries,Q as getActiveFormattingMask,$ as getCountry,X as guessCountryByPartialPhoneNumber,M as parseCountry,ce as removeDialCode,ee as usePhoneInput};\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nimport { jsxs, jsx } from \"react/jsx-runtime\";\nimport { forwardRef, useRef, useEffect, useCallback, useState } from \"react\";\nimport cx from \"classnames\";\nimport jsonp from \"jsonp\";\nfunction createIcon(iconConfig) {\n const Icon = (_a) => {\n var _b = _a, {\n bgStyle = {},\n borderRadius = 0,\n iconFillColor = \"white\",\n round = false,\n size = 64\n } = _b, rest = __objRest(_b, [\n \"bgStyle\",\n \"borderRadius\",\n \"iconFillColor\",\n \"round\",\n \"size\"\n ]);\n return /* @__PURE__ */ jsxs(\"svg\", __spreadProps(__spreadValues({ viewBox: \"0 0 64 64\", width: size, height: size }, rest), { children: [\n round ? /* @__PURE__ */ jsx(\"circle\", { cx: \"32\", cy: \"32\", r: \"32\", fill: iconConfig.color, style: bgStyle }) : /* @__PURE__ */ jsx(\n \"rect\",\n {\n width: \"64\",\n height: \"64\",\n rx: borderRadius,\n ry: borderRadius,\n fill: iconConfig.color,\n style: bgStyle\n }\n ),\n /* @__PURE__ */ jsx(\"path\", { d: iconConfig.path, fill: iconFillColor })\n ] }));\n };\n return Icon;\n}\nconst EmailIcon = createIcon({\n color: \"#7f7f7f\",\n networkName: \"email\",\n path: \"M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z\"\n});\nconst EmailIcon$1 = EmailIcon;\nfunction objectToGetParams(object) {\n const params = Object.entries(object).filter(([, value]) => value !== void 0 && value !== null).map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n return params.length > 0 ? `?${params.join(\"&\")}` : \"\";\n}\nconst isPromise = (obj) => !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\nconst getBoxPositionOnWindowCenter = (width, height) => ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2\n});\nconst getBoxPositionOnScreenCenter = (width, height) => ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2\n});\nfunction windowOpen(url, _a, onClose) {\n var _b = _a, { height, width } = _b, configRest = __objRest(_b, [\"height\", \"width\"]);\n const config = __spreadValues({\n height,\n width,\n location: \"no\",\n toolbar: \"no\",\n status: \"no\",\n directories: \"no\",\n menubar: \"no\",\n scrollbars: \"yes\",\n resizable: \"no\",\n centerscreen: \"yes\",\n chrome: \"yes\"\n }, configRest);\n const shareDialog = window.open(\n url,\n \"\",\n Object.keys(config).map((key) => `${key}=${config[key]}`).join(\", \")\n );\n if (onClose) {\n const interval = window.setInterval(() => {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval);\n onClose(shareDialog);\n }\n } catch (e) {\n console.error(e);\n }\n }, 1e3);\n }\n return shareDialog;\n}\nfunction ShareButton(_c) {\n var _d = _c, {\n beforeOnClick,\n children,\n className,\n disabled,\n disabledStyle = { opacity: 0.6 },\n forwardedRef,\n htmlTitle,\n networkLink,\n networkName,\n onClick,\n onShareWindowClose,\n openShareDialogOnClick = true,\n opts,\n resetButtonStyle = true,\n style,\n url,\n windowHeight = 400,\n windowPosition = \"windowCenter\",\n windowWidth = 550\n } = _d, rest = __objRest(_d, [\n \"beforeOnClick\",\n \"children\",\n \"className\",\n \"disabled\",\n \"disabledStyle\",\n \"forwardedRef\",\n \"htmlTitle\",\n \"networkLink\",\n \"networkName\",\n \"onClick\",\n \"onShareWindowClose\",\n \"openShareDialogOnClick\",\n \"opts\",\n \"resetButtonStyle\",\n \"style\",\n \"url\",\n \"windowHeight\",\n \"windowPosition\",\n \"windowWidth\"\n ]);\n const handleClick = async (event) => {\n const link = networkLink(url, opts);\n if (disabled) {\n return;\n }\n event.preventDefault();\n if (beforeOnClick) {\n const returnVal = beforeOnClick();\n if (isPromise(returnVal)) {\n await returnVal;\n }\n }\n if (openShareDialogOnClick) {\n const windowConfig = __spreadValues({\n height: windowHeight,\n width: windowWidth\n }, windowPosition === \"windowCenter\" ? getBoxPositionOnWindowCenter(windowWidth, windowHeight) : getBoxPositionOnScreenCenter(windowWidth, windowHeight));\n windowOpen(link, windowConfig, onShareWindowClose);\n }\n if (onClick) {\n onClick(event, link);\n }\n };\n const newClassName = cx(\n \"react-share__ShareButton\",\n {\n \"react-share__ShareButton--disabled\": !!disabled,\n disabled: !!disabled\n },\n className\n );\n const newStyle = resetButtonStyle ? __spreadValues(__spreadValues({\n backgroundColor: \"transparent\",\n border: \"none\",\n padding: 0,\n font: \"inherit\",\n color: \"inherit\",\n cursor: \"pointer\"\n }, style), disabled && disabledStyle) : __spreadValues(__spreadValues({}, style), disabled && disabledStyle);\n return /* @__PURE__ */ jsx(\n \"button\",\n __spreadProps(__spreadValues({}, rest), {\n className: newClassName,\n onClick: handleClick,\n ref: forwardedRef,\n style: newStyle,\n title: htmlTitle,\n children\n })\n );\n}\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n const opts = optsMap(props);\n const passedProps = __spreadValues({}, props);\n const optsKeys = Object.keys(opts);\n optsKeys.forEach((key) => {\n delete passedProps[key];\n });\n return /* @__PURE__ */ jsx(\n ShareButton,\n __spreadProps(__spreadValues(__spreadValues({}, defaultProps), passedProps), {\n forwardedRef: ref,\n networkName,\n networkLink: link,\n opts: optsMap(props)\n })\n );\n }\n CreatedButton.displayName = `ShareButton-${networkName}`;\n return forwardRef(CreatedButton);\n}\nfunction emailLink(url, { subject, body, separator }) {\n return \"mailto:\" + objectToGetParams({ subject, body: body ? body + separator + url : url });\n}\nconst EmailShareButton = createShareButton(\n \"email\",\n emailLink,\n (props) => ({\n subject: props.subject,\n body: props.body,\n separator: props.separator || \" \"\n }),\n {\n openShareDialogOnClick: false,\n onClick: (_, link) => {\n window.location.href = link;\n }\n }\n);\nconst EmailShareButton$1 = EmailShareButton;\nconst FacebookIcon = createIcon({\n color: \"#0965FE\",\n networkName: \"facebook\",\n path: \"M34.1,47V33.3h4.6l0.7-5.3h-5.3v-3.4c0-1.5,0.4-2.6,2.6-2.6l2.8,0v-4.8c-0.5-0.1-2.2-0.2-4.1-0.2 c-4.1,0-6.9,2.5-6.9,7V28H24v5.3h4.6V47H34.1z\"\n});\nconst FacebookIcon$1 = FacebookIcon;\nconst FacebookMessengerIcon = createIcon({\n color: \"#0A7CFF\",\n networkName: \"facebookmessenger\",\n path: \"M 53.066406 21.871094 C 52.667969 21.339844 51.941406 21.179688 51.359375 21.496094 L 37.492188 29.058594 L 28.867188 21.660156 C 28.339844 21.207031 27.550781 21.238281 27.054688 21.730469 L 11.058594 37.726562 C 10.539062 38.25 10.542969 39.09375 11.0625 39.613281 C 11.480469 40.027344 12.121094 40.121094 12.640625 39.839844 L 26.503906 32.28125 L 35.136719 39.679688 C 35.667969 40.132812 36.457031 40.101562 36.949219 39.609375 L 52.949219 23.613281 C 53.414062 23.140625 53.464844 22.398438 53.066406 21.871094 Z M 53.066406 21.871094\"\n});\nconst FacebookMessengerIcon$1 = FacebookMessengerIcon;\nfunction facebookMessengerLink(url, { appId, redirectUri, to }) {\n return \"https://www.facebook.com/dialog/send\" + objectToGetParams({\n link: url,\n redirect_uri: redirectUri || url,\n app_id: appId,\n to\n });\n}\nconst FacebookMessengerShareButton = createShareButton(\n \"facebookmessenger\",\n facebookMessengerLink,\n (props) => ({\n appId: props.appId,\n redirectUri: props.redirectUri,\n to: props.to\n }),\n {\n windowWidth: 1e3,\n windowHeight: 820\n }\n);\nconst FacebookMessengerShareButton$1 = FacebookMessengerShareButton;\nclass AssertionError extends Error {\n constructor(message) {\n super(message);\n this.name = \"AssertionError\";\n }\n}\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\nfunction facebookLink(url, { hashtag }) {\n assert(url, \"facebook.url\");\n return \"https://www.facebook.com/sharer/sharer.php\" + objectToGetParams({ u: url, hashtag });\n}\nconst FacebookShareButton = createShareButton(\n \"facebook\",\n facebookLink,\n (props) => ({ hashtag: props.hashtag }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst FacebookShareButton$1 = FacebookShareButton;\nfunction useIsMounted() {\n const isMounted = useRef(false);\n useEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n return useCallback(() => isMounted.current, []);\n}\nfunction SocialMediaShareCount(_e) {\n var _f = _e, {\n children = (shareCount) => shareCount,\n className,\n getCount,\n url\n } = _f, rest = __objRest(_f, [\n \"children\",\n \"className\",\n \"getCount\",\n \"url\"\n ]);\n const isMounted = useIsMounted();\n const [count, setCount] = useState(void 0);\n const [isLoading, setIsLoading] = useState(false);\n useEffect(() => {\n setIsLoading(true);\n getCount(url, (count2) => {\n if (isMounted()) {\n setCount(count2);\n setIsLoading(false);\n }\n });\n }, [url]);\n return /* @__PURE__ */ jsx(\"span\", __spreadProps(__spreadValues({ className: cx(\"react-share__ShareCount\", className) }, rest), { children: !isLoading && count !== void 0 && children(count) }));\n}\nfunction createShareCount(getCount) {\n const ShareCount = (props) => /* @__PURE__ */ jsx(SocialMediaShareCount, __spreadValues({ getCount }, props));\n ShareCount.displayName = `ShareCount(${getCount.name})`;\n return ShareCount;\n}\nfunction getFacebookShareCount(shareUrl, callback) {\n const endpoint = `https://graph.facebook.com/?id=${shareUrl}&fields=og_object{engagement}`;\n jsonp(endpoint, (err, data) => {\n callback(\n !err && data && data.og_object && data.og_object.engagement ? data.og_object.engagement.count : void 0\n );\n });\n}\nconst FacebookShareCount = createShareCount(getFacebookShareCount);\nconst HatenaIcon = createIcon({\n color: \"#009ad9\",\n networkName: \"hatena\",\n path: \"M 36.164062 33.554688 C 34.988281 32.234375 33.347656 31.5 31.253906 31.34375 C 33.125 30.835938 34.476562 30.09375 35.335938 29.09375 C 36.191406 28.09375 36.609375 26.78125 36.609375 25.101562 C 36.628906 23.875 36.332031 22.660156 35.75 21.578125 C 35.160156 20.558594 34.292969 19.71875 33.253906 19.160156 C 32.304688 18.640625 31.175781 18.265625 29.847656 18.042969 C 28.523438 17.824219 26.195312 17.730469 22.867188 17.730469 L 14.769531 17.730469 L 14.769531 47.269531 L 23.113281 47.269531 C 26.46875 47.269531 28.886719 47.15625 30.367188 46.929688 C 31.851562 46.695312 33.085938 46.304688 34.085938 45.773438 C 35.289062 45.148438 36.28125 44.179688 36.933594 42.992188 C 37.597656 41.796875 37.933594 40.402344 37.933594 38.816406 C 37.933594 36.621094 37.347656 34.867188 36.164062 33.554688 Z M 22.257812 24.269531 L 23.984375 24.269531 C 25.988281 24.269531 27.332031 24.496094 28.015625 24.945312 C 28.703125 25.402344 29.042969 26.183594 29.042969 27.285156 C 29.042969 28.390625 28.664062 29.105469 27.9375 29.550781 C 27.210938 29.992188 25.84375 30.199219 23.855469 30.199219 L 22.257812 30.199219 Z M 29.121094 41.210938 C 28.328125 41.691406 26.976562 41.925781 25.078125 41.925781 L 22.257812 41.925781 L 22.257812 35.488281 L 25.195312 35.488281 C 27.144531 35.488281 28.496094 35.738281 29.210938 36.230469 C 29.925781 36.726562 30.304688 37.582031 30.304688 38.832031 C 30.304688 40.078125 29.914062 40.742188 29.105469 41.222656 Z M 29.121094 41.210938 M 46.488281 39.792969 C 44.421875 39.792969 42.742188 41.46875 42.742188 43.535156 C 42.742188 45.605469 44.421875 47.28125 46.488281 47.28125 C 48.554688 47.28125 50.230469 45.605469 50.230469 43.535156 C 50.230469 41.46875 48.554688 39.792969 46.488281 39.792969 Z M 46.488281 39.792969 M 43.238281 17.730469 L 49.738281 17.730469 L 49.738281 37.429688 L 43.238281 37.429688 Z M 43.238281 17.730469 \"\n});\nconst HatenaIcon$1 = HatenaIcon;\nfunction hatenaLink(url, { title }) {\n assert(url, \"hatena.url\");\n return `http://b.hatena.ne.jp/add?mode=confirm&url=${url}&title=${title}`;\n}\nconst HatenaShareButton = createShareButton(\n \"hatena\",\n hatenaLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nconst HatenaShareButton$1 = HatenaShareButton;\nfunction getHatenaShareCount(shareUrl, callback) {\n const url = \"https://bookmark.hatenaapis.com/count/entry\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data != null ? data : void 0);\n }\n );\n}\nconst HatenaShareCount = createShareCount(getHatenaShareCount);\nconst InstapaperIcon = createIcon({\n color: \"#1F1F1F\",\n networkName: \"instapaper\",\n path: \"M35.688 43.012c0 2.425.361 2.785 3.912 3.056V48H24.401v-1.932c3.555-.27 3.912-.63 3.912-3.056V20.944c0-2.379-.36-2.785-3.912-3.056V16H39.6v1.888c-3.55.27-3.912.675-3.912 3.056v22.068h.001z\"\n});\nconst InstapaperIcon$1 = InstapaperIcon;\nfunction instapaperLink(url, { title, description }) {\n assert(url, \"instapaper.url\");\n return \"http://www.instapaper.com/hello2\" + objectToGetParams({\n url,\n title,\n description\n });\n}\nconst InstapaperShareButton = createShareButton(\n \"instapaper\",\n instapaperLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 500,\n windowHeight: 500,\n windowPosition: \"windowCenter\"\n }\n);\nconst InstapaperShareButton$1 = InstapaperShareButton;\nconst LineIcon = createIcon({\n color: \"#00b800\",\n networkName: \"line\",\n path: \"M52.62 30.138c0 3.693-1.432 7.019-4.42 10.296h.001c-4.326 4.979-14 11.044-16.201 11.972-2.2.927-1.876-.591-1.786-1.112l.294-1.765c.069-.527.142-1.343-.066-1.865-.232-.574-1.146-.872-1.817-1.016-9.909-1.31-17.245-8.238-17.245-16.51 0-9.226 9.251-16.733 20.62-16.733 11.37 0 20.62 7.507 20.62 16.733zM27.81 25.68h-1.446a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-8.985a.402.402 0 0 0-.402-.401zm9.956 0H36.32a.402.402 0 0 0-.402.401v5.338L31.8 25.858a.39.39 0 0 0-.031-.04l-.002-.003-.024-.025-.008-.007a.313.313 0 0 0-.032-.026.255.255 0 0 1-.021-.014l-.012-.007-.021-.012-.013-.006-.023-.01-.013-.005-.024-.008-.014-.003-.023-.005-.017-.002-.021-.003-.021-.002h-1.46a.402.402 0 0 0-.402.401v8.985c0 .221.18.4.402.4h1.446a.401.401 0 0 0 .402-.4v-5.337l4.123 5.568c.028.04.063.072.101.099l.004.003a.236.236 0 0 0 .025.015l.012.006.019.01a.154.154 0 0 1 .019.008l.012.004.028.01.005.001a.442.442 0 0 0 .104.013h1.446a.4.4 0 0 0 .401-.4v-8.985a.402.402 0 0 0-.401-.401zm-13.442 7.537h-3.93v-7.136a.401.401 0 0 0-.401-.401h-1.447a.4.4 0 0 0-.401.401v8.984a.392.392 0 0 0 .123.29c.072.068.17.111.278.111h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401zm21.429-5.287c.222 0 .401-.18.401-.402v-1.446a.401.401 0 0 0-.401-.402h-5.778a.398.398 0 0 0-.279.113l-.005.004-.006.008a.397.397 0 0 0-.111.276v8.984c0 .108.043.206.112.278l.005.006a.401.401 0 0 0 .284.117h5.778a.4.4 0 0 0 .401-.401v-1.447a.401.401 0 0 0-.401-.401h-3.93v-1.519h3.93c.222 0 .401-.18.401-.402V29.85a.401.401 0 0 0-.401-.402h-3.93V27.93h3.93z\"\n});\nconst LineIcon$1 = LineIcon;\nfunction lineLink(url, { title }) {\n assert(url, \"line.url\");\n return \"https://social-plugins.line.me/lineit/share\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst LineShareButton = createShareButton(\n \"line\",\n lineLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst LineShareButton$1 = LineShareButton;\nconst LinkedinIcon = createIcon({\n color: \"#0077B5\",\n networkName: \"linkedin\",\n path: \"M20.4,44h5.4V26.6h-5.4V44z M23.1,18c-1.7,0-3.1,1.4-3.1,3.1c0,1.7,1.4,3.1,3.1,3.1 c1.7,0,3.1-1.4,3.1-3.1C26.2,19.4,24.8,18,23.1,18z M39.5,26.2c-2.6,0-4.4,1.4-5.1,2.8h-0.1v-2.4h-5.2V44h5.4v-8.6 c0-2.3,0.4-4.5,3.2-4.5c2.8,0,2.8,2.6,2.8,4.6V44H46v-9.5C46,29.8,45,26.2,39.5,26.2z\"\n});\nconst LinkedinIcon$1 = LinkedinIcon;\nfunction linkedinLink(url, { title, summary, source }) {\n assert(url, \"linkedin.url\");\n return \"https://linkedin.com/shareArticle\" + objectToGetParams({ url, mini: \"true\", title, summary, source });\n}\nconst LinkedinShareButton = createShareButton(\n \"linkedin\",\n linkedinLink,\n ({ title, summary, source }) => ({ title, summary, source }),\n {\n windowWidth: 750,\n windowHeight: 600\n }\n);\nconst LinkedinShareButton$1 = LinkedinShareButton;\nconst LivejournalIcon = createIcon({\n color: \"#21A5D8\",\n networkName: \"livejournal\",\n path: \"M18.3407821,28.1764706 L21.9441341,31.789916 L33.0055865,42.882353 C33.0055865,42.882353 33.0893855,42.9663866 33.0893855,42.9663866 L46.6648046,47 C46.6648046,47 46.6648046,47 46.7486034,47 C46.8324022,47 46.8324022,47 46.9162012,46.9159664 C47,46.8319327 47,46.8319327 47,46.7478991 L42.9776536,33.1344537 C42.9776536,33.1344537 42.9776536,33.1344537 42.8938548,33.0504202 L31.1620111,21.3697479 L31.1620111,21.3697479 L28.1452514,18.2605042 C27.3072626,17.4201681 26.5530726,17 25.7150838,17 C24.2905028,17 23.0335195,18.3445378 21.5251397,19.8571429 C21.273743,20.1092437 20.9385475,20.4453781 20.6871508,20.697479 C20.3519553,21.0336134 20.1005586,21.2857143 19.849162,21.5378151 C18.3407821,22.9663866 17.0837989,24.2268908 17,25.7394958 C17.0837989,26.4957983 17.5027933,27.3361345 18.3407821,28.1764706 Z M39.9012319,39.6134454 C39.7336341,39.4453781 39.4822374,37.6806724 40.2364275,36.8403362 C40.9906174,36.0840337 41.6610084,36 42.1638017,36 C42.3313995,36 42.4989973,36 42.5827961,36 L44.8453659,43.5630253 L43.5883828,44.8235295 L36.0464833,42.5546218 C35.9626843,42.2184874 35.8788855,41.2100841 36.8844722,40.2016807 C37.2196676,39.8655463 37.8900587,39.6134454 38.5604498,39.6134454 C39.147042,39.6134454 39.5660364,39.7815126 39.5660364,39.7815126 C39.6498353,39.8655463 39.8174331,39.8655463 39.8174331,39.7815126 C39.9850307,39.7815126 39.9850307,39.697479 39.9012319,39.6134454 Z\"\n});\nconst LivejournalIcon$1 = LivejournalIcon;\nfunction livejournalLink(url, { title, description }) {\n assert(url, \"livejournal.url\");\n return \"https://www.livejournal.com/update.bml\" + objectToGetParams({\n subject: title,\n event: description\n });\n}\nconst LivejournalShareButton = createShareButton(\n \"livejournal\",\n livejournalLink,\n (props) => ({\n title: props.title,\n description: props.description\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst LivejournalShareButton$1 = LivejournalShareButton;\nconst MailruIcon = createIcon({\n color: \"#168DE2\",\n networkName: \"mailru\",\n path: \"M39.7107745,17 C41.6619755,17 43.3204965,18.732852 43.3204965,21.0072202 C43.3204965,23.2815885 41.7595357,25.0144404 39.7107745,25.0144404 C37.7595732,25.0144404 36.1010522,23.2815885 36.1010522,21.0072202 C36.1010522,18.732852 37.7595732,17 39.7107745,17 Z M24.3938451,17 C26.3450463,17 28.0035672,18.732852 28.0035672,21.0072202 C28.0035672,23.2815885 26.4426063,25.0144404 24.3938451,25.0144404 C22.4426439,25.0144404 20.7841229,23.2815885 20.7841229,21.0072202 C20.7841229,18.732852 22.4426439,17 24.3938451,17 Z M51.9057817,43.4259928 C51.7106617,44.0758123 51.4179815,44.6173285 50.9301812,44.9422383 C50.637501,45.1588448 50.2472607,45.267148 49.8570205,45.267148 C49.07654,45.267148 48.3936197,44.833935 48.0033795,44.0758123 L46.2472985,40.7184115 L45.759498,41.2599278 C42.5400162,44.9422383 37.466893,47 32.0035297,47 C26.5401664,47 21.5646034,44.9422383 18.2475614,41.2599278 L17.7597611,40.7184115 L16.00368,44.0758123 C15.6134398,44.833935 14.9305194,45.267148 14.1500389,45.267148 C13.7597986,45.267148 13.3695584,45.1588448 13.0768782,44.9422383 C12.0037176,44.2924187 11.7110374,42.7761733 12.2963978,41.5848375 L16.7841605,33.0288807 C17.1744007,32.270758 17.8573211,31.8375453 18.6378016,31.8375453 C19.0280418,31.8375453 19.4182821,31.9458485 19.7109623,32.1624548 C20.7841229,32.8122743 21.0768031,34.3285197 20.4914427,35.5198555 L20.1012025,36.2779783 L20.2963226,36.602888 C22.4426439,39.9602888 27.0279667,42.234657 31.9059697,42.234657 C36.7839727,42.234657 41.3692955,40.068592 43.5156167,36.602888 L43.7107367,36.2779783 L43.3204965,35.6281587 C43.0278165,35.0866425 42.9302562,34.436823 43.1253765,33.7870035 C43.3204965,33.137184 43.6131767,32.5956678 44.100977,32.270758 C44.3936572,32.0541515 44.7838975,31.9458485 45.1741377,31.9458485 C45.9546182,31.9458485 46.6375385,32.3790613 47.0277787,33.137184 L51.5155415,41.6931408 C52.003342,42.234657 52.100902,42.8844765 51.9057817,43.4259928 Z\"\n});\nconst MailruIcon$1 = MailruIcon;\nfunction mailruLink(url, { title, description, imageUrl }) {\n assert(url, \"mailru.url\");\n return \"https://connect.mail.ru/share\" + objectToGetParams({\n url,\n title,\n description,\n image_url: imageUrl\n });\n}\nconst MailruShareButton = createShareButton(\n \"mailru\",\n mailruLink,\n (props) => ({\n title: props.title,\n description: props.description,\n imageUrl: props.imageUrl\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst MailruShareButton$1 = MailruShareButton;\nconst OKIcon = createIcon({\n color: \"#F97400\",\n networkName: \"ok\",\n path: \"M39,30c-1,0-3,2-7,2s-6-2-7-2c-1.1,0-2,0.9-2,2c0,1,0.6,1.5,1,1.7c1.2,0.7,5,2.3,5,2.3l-4.3,5.4 c0,0-0.8,0.9-0.8,1.6c0,1.1,0.9,2,2,2c1,0,1.5-0.7,1.5-0.7S32,39,32,39c0,0,4.5,5.3,4.5,5.3S37,45,38,45c1.1,0,2-0.9,2-2 c0-0.6-0.8-1.6-0.8-1.6L35,36c0,0,3.8-1.6,5-2.3c0.4-0.3,1-0.7,1-1.7C41,30.9,40.1,30,39,30z M32,15c-3.9,0-7,3.1-7,7s3.1,7,7,7c3.9,0,7-3.1,7-7S35.9,15,32,15z M32,25.5 c-1.9,0-3.5-1.6-3.5-3.5c0-1.9,1.6-3.5,3.5-3.5c1.9,0,3.5,1.6,3.5,3.5C35.5,23.9,33.9,22.5,35,22.5z \"\n});\nconst OKIcon$1 = OKIcon;\nfunction okLink(url, { title, description, image }) {\n assert(url, \"ok.url\");\n return \"https://connect.ok.ru/offer\" + objectToGetParams({\n url,\n title,\n description,\n imageUrl: image\n });\n}\nconst OKShareButton = createShareButton(\n \"ok\",\n okLink,\n (props) => ({\n title: props.title,\n description: props.description,\n image: props.image\n }),\n {\n windowWidth: 588,\n windowHeight: 480,\n windowPosition: \"screenCenter\"\n }\n);\nconst OKShareButton$1 = OKShareButton;\nfunction getOKShareCount(shareUrl, callback) {\n if (!window.OK) {\n window.OK = {\n Share: {\n count: function count(index2, _count) {\n var _a, _b;\n (_b = (_a = window.OK.callbacks)[index2]) == null ? void 0 : _b.call(_a, _count);\n }\n },\n callbacks: []\n };\n }\n const url = \"https://connect.ok.ru/dk\";\n const index = window.OK.callbacks.length;\n window.ODKL = {\n updateCount(index2, count) {\n var _a, _b;\n const callbackIndex = index2 === \"\" ? 0 : parseInt(index2.replace(\"react-share-\", \"\"), 10);\n (_b = (_a = window.OK.callbacks)[callbackIndex]) == null ? void 0 : _b.call(_a, count === \"\" ? void 0 : parseInt(count, 10));\n }\n };\n window.OK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n \"st.cmd\": \"extLike\",\n uid: `react-share-${index}`,\n ref: shareUrl\n })\n );\n}\nconst OKShareCount = createShareCount(getOKShareCount);\nconst PinterestIcon = createIcon({\n color: \"#E60023\",\n networkName: \"pinterest\",\n path: \"M32,16c-8.8,0-16,7.2-16,16c0,6.6,3.9,12.2,9.6,14.7c0-1.1,0-2.5,0.3-3.7 c0.3-1.3,2.1-8.7,2.1-8.7s-0.5-1-0.5-2.5c0-2.4,1.4-4.1,3.1-4.1c1.5,0,2.2,1.1,2.2,2.4c0,1.5-0.9,3.7-1.4,5.7 c-0.4,1.7,0.9,3.1,2.5,3.1c3,0,5.1-3.9,5.1-8.5c0-3.5-2.4-6.1-6.7-6.1c-4.9,0-7.9,3.6-7.9,7.7c0,1.4,0.4,2.4,1.1,3.1 c0.3,0.3,0.3,0.5,0.2,0.9c-0.1,0.3-0.3,1-0.3,1.3c-0.1,0.4-0.4,0.6-0.8,0.4c-2.2-0.9-3.3-3.4-3.3-6.1c0-4.5,3.8-10,11.4-10 c6.1,0,10.1,4.4,10.1,9.2c0,6.3-3.5,11-8.6,11c-1.7,0-3.4-0.9-3.9-2c0,0-0.9,3.7-1.1,4.4c-0.3,1.2-1,2.5-1.6,3.4 c1.4,0.4,3,0.7,4.5,0.7c8.8,0,16-7.2,16-16C48,23.2,40.8,16,32,16z\"\n});\nconst PinterestIcon$1 = PinterestIcon;\nfunction pinterestLink(url, { media, description, pinId }) {\n if (pinId) {\n return `https://pinterest.com/pin/${pinId}/repin/x/`;\n }\n assert(url, \"pinterest.url\");\n assert(media, \"pinterest.media\");\n return \"https://pinterest.com/pin/create/button/\" + objectToGetParams({\n url,\n media,\n description\n });\n}\nconst PinterestShareButton = createShareButton(\n \"pinterest\",\n pinterestLink,\n (props) => ({\n media: props.media,\n description: props.description,\n pinId: props.pinId\n }),\n {\n windowWidth: 1e3,\n windowHeight: 730\n }\n);\nconst PinterestShareButton$1 = PinterestShareButton;\nfunction getPinterestShareCount(shareUrl, callback) {\n const url = \"https://api.pinterest.com/v1/urls/count.json\";\n jsonp(\n url + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(data ? data.count : void 0);\n }\n );\n}\nconst PinterestShareCount = createShareCount(getPinterestShareCount);\nconst PocketIcon = createIcon({\n color: \"#EF3F56\",\n networkName: \"pocket\",\n path: \"M41.084 29.065l-7.528 7.882a2.104 2.104 0 0 1-1.521.666 2.106 2.106 0 0 1-1.522-.666l-7.528-7.882c-.876-.914-.902-2.43-.065-3.384.84-.955 2.228-.987 3.1-.072l6.015 6.286 6.022-6.286c.88-.918 2.263-.883 3.102.071.841.938.82 2.465-.06 3.383l-.015.002zm6.777-10.976C47.463 16.84 46.361 16 45.14 16H18.905c-1.2 0-2.289.82-2.716 2.044-.125.363-.189.743-.189 1.125v10.539l.112 2.096c.464 4.766 2.73 8.933 6.243 11.838.06.053.125.102.19.153l.04.033c1.882 1.499 3.986 2.514 6.259 3.014a14.662 14.662 0 0 0 6.13.052c.118-.042.235-.065.353-.087.03 0 .065-.022.098-.042a15.395 15.395 0 0 0 6.011-2.945l.039-.045.18-.153c3.502-2.902 5.765-7.072 6.248-11.852L48 29.674v-10.52c0-.366-.041-.728-.161-1.08l.022.015z\"\n});\nconst PocketIcon$1 = PocketIcon;\nfunction pocketLink(url, { title }) {\n assert(url, \"pocket.url\");\n return \"https://getpocket.com/save\" + objectToGetParams({\n url,\n title\n });\n}\nconst PocketShareButton = createShareButton(\n \"pocket\",\n pocketLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 500,\n windowHeight: 500\n }\n);\nconst PocketShareButton$1 = PocketShareButton;\nconst RedditIcon = createIcon({\n color: \"#FF5700\",\n networkName: \"reddit\",\n path: \"M 53.34375 32 C 53.277344 30.160156 52.136719 28.53125 50.429688 27.839844 C 48.722656 27.148438 46.769531 27.523438 45.441406 28.800781 C 41.800781 26.324219 37.519531 24.957031 33.121094 24.863281 L 35.199219 14.878906 L 42.046875 16.320312 C 42.214844 17.882812 43.496094 19.09375 45.066406 19.171875 C 46.636719 19.253906 48.03125 18.183594 48.359375 16.644531 C 48.6875 15.105469 47.847656 13.558594 46.382812 12.992188 C 44.914062 12.425781 43.253906 13.007812 42.464844 14.367188 L 34.625 12.800781 C 34.363281 12.742188 34.09375 12.792969 33.871094 12.9375 C 33.648438 13.082031 33.492188 13.308594 33.441406 13.566406 L 31.070312 24.671875 C 26.617188 24.738281 22.277344 26.105469 18.59375 28.609375 C 17.242188 27.339844 15.273438 26.988281 13.570312 27.707031 C 11.863281 28.429688 10.746094 30.089844 10.71875 31.941406 C 10.691406 33.789062 11.757812 35.484375 13.441406 36.257812 C 13.402344 36.726562 13.402344 37.195312 13.441406 37.664062 C 13.441406 44.832031 21.792969 50.65625 32.097656 50.65625 C 42.398438 50.65625 50.753906 44.832031 50.753906 37.664062 C 50.789062 37.195312 50.789062 36.726562 50.753906 36.257812 C 52.363281 35.453125 53.371094 33.800781 53.34375 32 Z M 21.34375 35.199219 C 21.34375 33.433594 22.777344 32 24.542969 32 C 26.3125 32 27.742188 33.433594 27.742188 35.199219 C 27.742188 36.96875 26.3125 38.398438 24.542969 38.398438 C 22.777344 38.398438 21.34375 36.96875 21.34375 35.199219 Z M 39.9375 44 C 37.664062 45.710938 34.871094 46.582031 32.03125 46.464844 C 29.191406 46.582031 26.398438 45.710938 24.128906 44 C 23.847656 43.65625 23.871094 43.15625 24.183594 42.839844 C 24.5 42.527344 25 42.503906 25.34375 42.785156 C 27.269531 44.195312 29.617188 44.90625 32 44.800781 C 34.386719 44.929688 36.746094 44.242188 38.6875 42.847656 C 39.042969 42.503906 39.605469 42.511719 39.953125 42.863281 C 40.296875 43.21875 40.289062 43.785156 39.9375 44.128906 Z M 39.359375 38.527344 C 37.59375 38.527344 36.160156 37.09375 36.160156 35.328125 C 36.160156 33.5625 37.59375 32.128906 39.359375 32.128906 C 41.128906 32.128906 42.558594 33.5625 42.558594 35.328125 C 42.59375 36.203125 42.269531 37.054688 41.65625 37.6875 C 41.046875 38.316406 40.203125 38.664062 39.328125 38.65625 Z M 39.359375 38.527344\"\n});\nconst RedditIcon$1 = RedditIcon;\nfunction redditLink(url, { title }) {\n assert(url, \"reddit.url\");\n return \"https://www.reddit.com/web/submit\" + objectToGetParams({\n url,\n title\n });\n}\nconst RedditShareButton = createShareButton(\n \"reddit\",\n redditLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 460,\n windowPosition: \"windowCenter\"\n }\n);\nconst RedditShareButton$1 = RedditShareButton;\nfunction gabLink(url, { title }) {\n assert(url, \"gab.url\");\n return \"https://gab.com/compose\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst GabShareButton = createShareButton(\n \"gab\",\n gabLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 660,\n windowHeight: 640,\n windowPosition: \"windowCenter\"\n }\n);\nconst GabShareButton$1 = GabShareButton;\nconst GabIcon = createIcon({\n color: \"#00d178\",\n networkName: \"gab\",\n path: \"m17.0506,23.97457l5.18518,0l0,14.23933c0,6.82699 -3.72695,10.09328 -9.33471,10.09328c-2.55969,0 -4.82842,-0.87286 -6.22084,-2.0713l2.07477,-3.88283c1.19844,0.81051 2.33108,1.29543 3.85511,1.29543c2.75366,0 4.44049,-1.97432 4.44049,-4.82149l0,-0.87286c-1.16728,1.39242 -2.81947,2.0713 -4.63446,2.0713c-4.44048,0 -7.81068,-3.68885 -7.81068,-8.28521c0,-4.59289 3.37019,-8.28174 7.81068,-8.28174c1.81499,0 3.46718,0.67888 4.63446,2.0713l0,-1.55521zm-3.62997,11.39217c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm25.7077,4.13913l-5.18518,0l0,-1.29197c-1.00448,1.13264 -2.3969,1.81152 -4.21188,1.81152c-3.62997,0 -5.63893,-2.52504 -5.63893,-5.4034c0,-4.27076 5.251,-5.85715 9.78846,-4.49937c-0.09698,-1.39241 -0.9733,-2.39343 -2.78829,-2.39343c-1.26426,0 -2.72248,0.48492 -3.62997,1.00102l-1.5552,-3.72003c1.19844,-0.77587 3.40136,-1.55174 5.96452,-1.55174c3.78931,0 7.25648,2.13365 7.25648,7.95962l0,8.08777zm-5.18518,-6.14809c-2.42806,-0.77587 -4.66563,-0.3533 -4.66563,1.36124c0,1.00101 0.84168,1.6799 1.84616,1.6799c1.20191,0 2.56315,-0.96984 2.81947,-3.04115zm13.00626,-17.66495l0,9.83695c1.16727,-1.39242 2.81946,-2.0713 4.63445,-2.0713c4.44048,0 7.81068,3.68885 7.81068,8.28174c0,4.59636 -3.37019,8.28521 -7.81068,8.28521c-1.81499,0 -3.46718,-0.67888 -4.63445,-2.0713l0,1.55174l-5.18519,0l0,-23.81304l5.18519,0zm3.62997,19.67391c1.97777,0 3.62997,-1.6522 3.62997,-3.62652c0,-1.97432 -1.6522,-3.62305 -3.62997,-3.62305c-1.97778,0 -3.62997,1.64873 -3.62997,3.62305c0,1.97432 1.65219,3.62652 3.62997,3.62652zm0,0\"\n});\nconst GabIcon$1 = GabIcon;\nfunction getRedditShareCount(shareUrl, callback) {\n const endpoint = `https://www.reddit.com/api/info.json?limit=1&url=${shareUrl}`;\n jsonp(endpoint, { param: \"jsonp\" }, (err, response) => {\n callback(\n !err && response && response.data && response.data.children.length > 0 && response.data.children[0].data.score ? response.data.children[0].data.score : void 0\n );\n });\n}\nconst RedditShareCount = createShareCount(getRedditShareCount);\nconst TelegramIcon = createIcon({\n color: \"#25A3E3\",\n networkName: \"telegram\",\n path: \"m45.90873,15.44335c-0.6901,-0.0281 -1.37668,0.14048 -1.96142,0.41265c-0.84989,0.32661 -8.63939,3.33986 -16.5237,6.39174c-3.9685,1.53296 -7.93349,3.06593 -10.98537,4.24067c-3.05012,1.1765 -5.34694,2.05098 -5.4681,2.09312c-0.80775,0.28096 -1.89996,0.63566 -2.82712,1.72788c-0.23354,0.27218 -0.46884,0.62161 -0.58825,1.10275c-0.11941,0.48114 -0.06673,1.09222 0.16682,1.5716c0.46533,0.96052 1.25376,1.35737 2.18443,1.71383c3.09051,0.99037 6.28638,1.93508 8.93263,2.8236c0.97632,3.44171 1.91401,6.89571 2.84116,10.34268c0.30554,0.69185 0.97105,0.94823 1.65764,0.95525l-0.00351,0.03512c0,0 0.53908,0.05268 1.06412,-0.07375c0.52679,-0.12292 1.18879,-0.42846 1.79109,-0.99212c0.662,-0.62161 2.45836,-2.38812 3.47683,-3.38552l7.6736,5.66477l0.06146,0.03512c0,0 0.84989,0.59703 2.09312,0.68132c0.62161,0.04214 1.4399,-0.07726 2.14229,-0.59176c0.70766,-0.51626 1.1765,-1.34683 1.396,-2.29506c0.65673,-2.86224 5.00979,-23.57745 5.75257,-27.00686l-0.02107,0.08077c0.51977,-1.93157 0.32837,-3.70159 -0.87096,-4.74991c-0.60054,-0.52152 -1.2924,-0.7498 -1.98425,-0.77965l0,0.00176zm-0.2072,3.29069c0.04741,0.0439 0.0439,0.0439 0.00351,0.04741c-0.01229,-0.00351 0.14048,0.2072 -0.15804,1.32576l-0.01229,0.04214l-0.00878,0.03863c-0.75858,3.50668 -5.15554,24.40802 -5.74203,26.96472c-0.08077,0.34417 -0.11414,0.31959 -0.09482,0.29852c-0.1756,-0.02634 -0.50045,-0.16506 -0.52679,-0.1756l-13.13468,-9.70175c4.4988,-4.33199 9.09945,-8.25307 13.744,-12.43229c0.8218,-0.41265 0.68483,-1.68573 -0.29852,-1.70681c-1.04305,0.24584 -1.92279,0.99564 -2.8798,1.47502c-5.49971,3.2626 -11.11882,6.13186 -16.55882,9.49279c-2.792,-0.97105 -5.57873,-1.77704 -8.15298,-2.57601c2.2336,-0.89555 4.00889,-1.55579 5.75608,-2.23009c3.05188,-1.1765 7.01687,-2.7042 10.98537,-4.24067c7.94051,-3.06944 15.92667,-6.16346 16.62028,-6.43037l0.05619,-0.02283l0.05268,-0.02283c0.19316,-0.0878 0.30378,-0.09658 0.35471,-0.10009c0,0 -0.01756,-0.05795 -0.00351,-0.04566l-0.00176,0zm-20.91715,22.0638l2.16687,1.60145c-0.93418,0.91311 -1.81743,1.77353 -2.45485,2.38812l0.28798,-3.98957\"\n});\nconst TelegramIcon$1 = TelegramIcon;\nfunction telegramLink(url, { title }) {\n assert(url, \"telegram.url\");\n return \"https://telegram.me/share/url\" + objectToGetParams({\n url,\n text: title\n });\n}\nconst TelegramShareButton = createShareButton(\n \"telegram\",\n telegramLink,\n (props) => ({\n title: props.title\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst TelegramShareButton$1 = TelegramShareButton;\nconst TumblrIcon = createIcon({\n color: \"#34526f\",\n networkName: \"tumblr\",\n path: \"M39.2,41c-0.6,0.3-1.6,0.5-2.4,0.5c-2.4,0.1-2.9-1.7-2.9-3v-9.3h6v-4.5h-6V17c0,0-4.3,0-4.4,0 c-0.1,0-0.2,0.1-0.2,0.2c-0.3,2.3-1.4,6.4-5.9,8.1v3.9h3V39c0,3.4,2.5,8.1,9,8c2.2,0,4.7-1,5.2-1.8L39.2,41z\"\n});\nconst TumblrIcon$1 = TumblrIcon;\nfunction tumblrLink(url, {\n title,\n caption,\n tags,\n posttype\n}) {\n assert(url, \"tumblr.url\");\n return \"https://www.tumblr.com/widgets/share/tool\" + objectToGetParams({\n canonicalUrl: url,\n title,\n caption,\n tags,\n posttype\n });\n}\nconst TumblrShareButton = createShareButton(\n \"tumblr\",\n tumblrLink,\n (props) => ({\n title: props.title,\n tags: (props.tags || []).join(\",\"),\n caption: props.caption,\n posttype: props.posttype || \"link\"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst TumblrShareButton$1 = TumblrShareButton;\nfunction getTumblrShareCount(shareUrl, callback) {\n const endpoint = \"https://api.tumblr.com/v2/share/stats\";\n return jsonp(\n endpoint + objectToGetParams({\n url: shareUrl\n }),\n (err, data) => {\n callback(!err && data && data.response ? data.response.note_count : void 0);\n }\n );\n}\nconst TumblrShareCount = createShareCount(getTumblrShareCount);\nconst TwitterIcon = createIcon({\n color: \"#00aced\",\n networkName: \"twitter\",\n path: \"M48,22.1c-1.2,0.5-2.4,0.9-3.8,1c1.4-0.8,2.4-2.1,2.9-3.6c-1.3,0.8-2.7,1.3-4.2,1.6 C41.7,19.8,40,19,38.2,19c-3.6,0-6.6,2.9-6.6,6.6c0,0.5,0.1,1,0.2,1.5c-5.5-0.3-10.3-2.9-13.5-6.9c-0.6,1-0.9,2.1-0.9,3.3 c0,2.3,1.2,4.3,2.9,5.5c-1.1,0-2.1-0.3-3-0.8c0,0,0,0.1,0,0.1c0,3.2,2.3,5.8,5.3,6.4c-0.6,0.1-1.1,0.2-1.7,0.2c-0.4,0-0.8,0-1.2-0.1 c0.8,2.6,3.3,4.5,6.1,4.6c-2.2,1.8-5.1,2.8-8.2,2.8c-0.5,0-1.1,0-1.6-0.1c2.9,1.9,6.4,2.9,10.1,2.9c12.1,0,18.7-10,18.7-18.7 c0-0.3,0-0.6,0-0.8C46,24.5,47.1,23.4,48,22.1z\"\n});\nconst TwitterIcon$1 = TwitterIcon;\nfunction twitterLink(url, {\n title,\n via,\n hashtags = [],\n related = []\n}) {\n assert(url, \"twitter.url\");\n assert(Array.isArray(hashtags), \"twitter.hashtags is not an array\");\n assert(Array.isArray(related), \"twitter.related is not an array\");\n return \"https://twitter.com/intent/tweet\" + objectToGetParams({\n url,\n text: title,\n via,\n hashtags: hashtags.length > 0 ? hashtags.join(\",\") : void 0,\n related: related.length > 0 ? related.join(\",\") : void 0\n });\n}\nconst TwitterShareButton = createShareButton(\n \"twitter\",\n twitterLink,\n (props) => ({\n hashtags: props.hashtags,\n title: props.title,\n via: props.via,\n related: props.related\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst TwitterShareButton$1 = TwitterShareButton;\nconst ViberIcon = createIcon({\n color: \"#7360f2\",\n networkName: \"viber\",\n path: \"m31.0,12.3c9.0,0.2 16.4,6.2 18.0,15.2c0.2,1.5 0.3,3.0 0.4,4.6a1.0,1.0 0 0 1 -0.8,1.2l-0.1,0a1.1,1.1 0 0 1 -1.0,-1.2l0,0c-0.0,-1.2 -0.1,-2.5 -0.3,-3.8a16.1,16.1 0 0 0 -13.0,-13.5c-1.0,-0.1 -2.0,-0.2 -3.0,-0.3c-0.6,-0.0 -1.4,-0.1 -1.6,-0.8a1.1,1.1 0 0 1 0.9,-1.2l0.6,0l0.0,-0.0zm10.6,39.2a19.9,19.9 0 0 1 -2.1,-0.6c-6.9,-2.9 -13.2,-6.6 -18.3,-12.2a47.5,47.5 0 0 1 -7.0,-10.7c-0.8,-1.8 -1.6,-3.7 -2.4,-5.6c-0.6,-1.7 0.3,-3.4 1.4,-4.7a11.3,11.3 0 0 1 3.7,-2.8a2.4,2.4 0 0 1 3.0,0.7a39.0,39.0 0 0 1 4.7,6.5a3.1,3.1 0 0 1 -0.8,4.2c-0.3,0.2 -0.6,0.5 -1.0,0.8a3.3,3.3 0 0 0 -0.7,0.7a2.1,2.1 0 0 0 -0.1,1.9c1.7,4.9 4.7,8.7 9.7,10.8a5.0,5.0 0 0 0 2.5,0.6c1.5,-0.1 2.0,-1.8 3.1,-2.7a2.9,2.9 0 0 1 3.5,-0.1c1.1,0.7 2.2,1.4 3.3,2.2a37.8,37.8 0 0 1 3.1,2.4a2.4,2.4 0 0 1 0.7,3.0a10.4,10.4 0 0 1 -4.4,4.8a10.8,10.8 0 0 1 -1.9,0.6c-0.7,-0.2 0.6,-0.2 0,0l0.0,0l0,-0.0zm3.1,-21.4a4.2,4.2 0 0 1 -0.0,0.6a1.0,1.0 0 0 1 -1.9,0.1a2.7,2.7 0 0 1 -0.1,-0.8a10.9,10.9 0 0 0 -1.4,-5.5a10.2,10.2 0 0 0 -4.2,-4.0a12.3,12.3 0 0 0 -3.4,-1.0c-0.5,-0.0 -1.0,-0.1 -1.5,-0.2a0.9,0.9 0 0 1 -0.9,-1.0l0,-0.1a0.9,0.9 0 0 1 0.9,-0.9l0.1,0a14.1,14.1 0 0 1 5.9,1.5a11.9,11.9 0 0 1 6.5,9.3c0,0.1 0.0,0.3 0.0,0.5c0,0.4 0.0,0.9 0.0,1.5l0,0l0.0,0.0zm-5.6,-0.2a1.1,1.1 0 0 1 -1.2,-0.9l0,-0.1a11.3,11.3 0 0 0 -0.2,-1.4a4.0,4.0 0 0 0 -1.5,-2.3a3.9,3.9 0 0 0 -1.2,-0.5c-0.5,-0.1 -1.1,-0.1 -1.6,-0.2a1.0,1.0 0 0 1 -0.8,-1.1l0,0l0,0a1.0,1.0 0 0 1 1.1,-0.8c3.4,0.2 6.0,2.0 6.3,6.2a2.8,2.8 0 0 1 0,0.8a0.8,0.8 0 0 1 -0.8,0.7l0,0l0.0,-0.0z\"\n});\nconst ViberIcon$1 = ViberIcon;\nfunction viberLink(url, { title, separator }) {\n assert(url, \"viber.url\");\n return \"viber://forward\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst ViberShareButton = createShareButton(\n \"viber\",\n viberLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst ViberShareButton$1 = ViberShareButton;\nconst VKIcon = createIcon({\n color: \"#4C75A3\",\n networkName: \"vk\",\n path: \"M44.94,44.84h-0.2c-2.17-.36-3.66-1.92-4.92-3.37C39.1,40.66,38,38.81,36.7,39c-1.85.3-.93,3.52-1.71,4.9-0.62,1.11-3.29.91-5.12,0.71-5.79-.62-8.75-3.77-11.35-7.14A64.13,64.13,0,0,1,11.6,26a10.59,10.59,0,0,1-1.51-4.49C11,20.7,12.56,21,14.11,21c1.31,0,3.36-.29,4.32.2C19,21.46,19.57,23,20,24a37.18,37.18,0,0,0,3.31,5.82c0.56,0.81,1.41,2.35,2.41,2.14s1.06-2.63,1.1-4.18c0-1.77,0-4-.5-4.9S25,22,24.15,21.47c0.73-1.49,2.72-1.63,5.12-1.63,2,0,4.84-.23,5.62,1.12s0.25,3.85.2,5.71c-0.06,2.09-.41,4.25,1,5.21,1.09-.12,1.68-1.2,2.31-2A28,28,0,0,0,41.72,24c0.44-1,.91-2.65,1.71-3,1.21-.47,3.15-0.1,4.92-0.1,1.46,0,4.05-.41,4.52.61,0.39,0.85-.75,3-1.1,3.57a61.88,61.88,0,0,1-4.12,5.61c-0.58.78-1.78,2-1.71,3.27,0.05,0.94,1,1.67,1.71,2.35a33.12,33.12,0,0,1,3.92,4.18c0.47,0.62,1.5,2,1.4,2.76C52.66,45.81,46.88,44.24,44.94,44.84Z\"\n});\nconst VKIcon$1 = VKIcon;\nfunction vkLink(url, { title, image, noParse, noVkLinks }) {\n assert(url, \"vk.url\");\n return \"https://vk.com/share.php\" + objectToGetParams({\n url,\n title,\n image,\n noparse: noParse ? 1 : 0,\n no_vk_links: noVkLinks ? 1 : 0\n });\n}\nconst VKShareButton = createShareButton(\n \"vk\",\n vkLink,\n (props) => ({\n title: props.title,\n image: props.image,\n noParse: props.noParse,\n noVkLinks: props.noVkLinks\n }),\n {\n windowWidth: 660,\n windowHeight: 460\n }\n);\nconst VKShareButton$1 = VKShareButton;\nfunction getVKShareCount(shareUrl, callback) {\n if (!window.VK)\n window.VK = {};\n window.VK.Share = {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n count: (index2, count) => {\n var _a, _b;\n return (_b = (_a = window.VK.callbacks) == null ? void 0 : _a[index2]) == null ? void 0 : _b.call(_a, count);\n }\n };\n window.VK.callbacks = [];\n const url = \"https://vk.com/share.php\";\n const index = window.VK.callbacks.length;\n window.VK.callbacks.push(callback);\n return jsonp(\n url + objectToGetParams({\n act: \"count\",\n index,\n url: shareUrl\n })\n );\n}\nconst VKShareCount = createShareCount(getVKShareCount);\nconst WeiboIcon = createIcon({\n color: \"#DF2029\",\n networkName: \"weibo\",\n path: \"M40.9756152,15.0217119 C40.5000732,15.0546301 39.9999314,15.1204666 39.5325878,15.2192213 C38.6634928,15.4085016 38.0977589,16.2643757 38.2863368,17.1284787 C38.4667163,18.0008129 39.3194143,18.5686519 40.1885094,18.3793715 C42.8613908,17.8115326 45.7720411,18.6427174 47.7316073,20.8153207 C49.6911735,22.996153 50.2077122,25.975254 49.3714112,28.5840234 C49.1008441,29.4316684 49.5763861,30.3533789 50.4208857,30.6249537 C51.2653852,30.8965286 52.1754769,30.4192153 52.4542425,29.5715703 C53.6349013,25.9011885 52.9133876,21.7699494 50.1585171,18.7085538 C48.0923641,16.4042776 45.2063093,15.1533848 42.3530505,15.0217119 C41.8775084,14.9970227 41.4511594,14.9887937 40.9756152,15.0217119 Z M27.9227762,19.8277737 C24.9957268,20.140498 20.863421,22.4365431 17.2312548,26.0822378 C13.2711279,30.0571148 11,34.2871065 11,37.9328012 C11,44.9032373 19.8713401,49.125 28.5786978,49.125 C39.9917329,49.125 47.600423,42.4261409 47.600423,37.1427636 C47.600423,33.9496952 44.9603397,32.1638816 42.549827,31.4149913 C41.9594976,31.2339421 41.5167516,31.1434164 41.8283133,30.3616079 C42.5006339,28.66632 42.6236176,27.1932286 41.8939054,26.1480742 C40.5328692,24.1894405 36.7203236,24.2881952 32.448635,26.0822378 C32.448635,26.0822378 31.1203949,26.6912261 31.4647526,25.6213825 C32.1206742,23.4981576 32.0304845,21.712342 31.0056075,20.6836478 C30.2840938,19.9512176 29.2510184,19.6878718 27.9227762,19.8277737 Z M42.0906819,20.6836478 C41.6233383,20.6589586 41.1723917,20.716566 40.7132466,20.8153207 C39.9671353,20.9716828 39.4997917,21.7781784 39.6637721,22.5270687 C39.8277525,23.275959 40.5574647,23.7450433 41.303576,23.5804521 C42.1972686,23.3911718 43.2057485,23.6380596 43.8616701,24.3704897 C44.5175916,25.1029198 44.6733735,26.0657797 44.3864073,26.9381118 C44.1486363,27.6705419 44.5093932,28.4770397 45.2391054,28.7156963 C45.9688176,28.9461239 46.780521,28.5922524 47.0100936,27.8598223 C47.584026,26.0740087 47.2396661,24.0248493 45.8950269,22.5270687 C44.886547,21.4078489 43.4845162,20.7494842 42.0906819,20.6836478 Z M29.496988,29.9665891 C35.3100922,30.1723275 39.9917329,33.0691319 40.3852858,37.0769272 C40.8362324,41.6607904 35.5970585,45.9319315 28.6442899,46.6232144 C21.6915214,47.3144973 15.6488446,44.154347 15.197898,39.5787128 C14.7469514,34.9948495 20.059916,30.7237084 27.004486,30.0324256 C27.8735831,29.950131 28.6688875,29.9336709 29.496988,29.9665891 Z M25.5614586,34.3776322 C23.183744,34.5916017 20.9372116,35.9577073 19.9205332,37.9328012 C18.5348994,40.6238672 19.9041362,43.6029661 23.0689567,44.582284 C26.340366,45.5945202 30.1857056,44.0638213 31.5303448,41.1587879 C32.8503864,38.3195909 31.1613894,35.3734082 27.9227762,34.5751416 C27.1438688,34.3776322 26.356763,34.3035667 25.5614586,34.3776322 Z M24.052839,38.7228388 C24.3316067,38.7310678 24.5857748,38.8215935 24.8399449,38.9203482 C25.8648218,39.3400561 26.1845841,40.4428158 25.5614586,41.4221338 C24.9219361,42.3932227 23.5690963,42.8623069 22.5442194,42.4096807 C21.5357395,41.9652856 21.2487754,40.8542948 21.8882979,39.9078951 C22.3638421,39.2001542 23.2247386,38.7146097 24.052839,38.7228388 Z\"\n});\nconst WeiboIcon$1 = WeiboIcon;\nfunction weiboLink(url, { title, image }) {\n assert(url, \"weibo.url\");\n return \"http://service.weibo.com/share/share.php\" + objectToGetParams({\n url,\n title,\n pic: image\n });\n}\nconst WeiboShareButton = createShareButton(\n \"weibo\",\n weiboLink,\n (props) => ({\n title: props.title,\n image: props.image\n }),\n {\n windowWidth: 660,\n windowHeight: 550,\n windowPosition: \"screenCenter\"\n }\n);\nconst WeiboShareButton$1 = WeiboShareButton;\nconst WhatsappIcon = createIcon({\n color: \"#25D366\",\n networkName: \"whatsapp\",\n path: \"m42.32286,33.93287c-0.5178,-0.2589 -3.04726,-1.49644 -3.52105,-1.66732c-0.4712,-0.17346 -0.81554,-0.2589 -1.15987,0.2589c-0.34175,0.51004 -1.33075,1.66474 -1.63108,2.00648c-0.30032,0.33658 -0.60064,0.36247 -1.11327,0.12945c-0.5178,-0.2589 -2.17994,-0.80259 -4.14759,-2.56312c-1.53269,-1.37217 -2.56312,-3.05503 -2.86603,-3.57283c-0.30033,-0.5178 -0.03366,-0.80259 0.22524,-1.06149c0.23301,-0.23301 0.5178,-0.59547 0.7767,-0.90616c0.25372,-0.31068 0.33657,-0.5178 0.51262,-0.85437c0.17088,-0.36246 0.08544,-0.64725 -0.04402,-0.90615c-0.12945,-0.2589 -1.15987,-2.79613 -1.58964,-3.80584c-0.41424,-1.00971 -0.84142,-0.88027 -1.15987,-0.88027c-0.29773,-0.02588 -0.64208,-0.02588 -0.98382,-0.02588c-0.34693,0 -0.90616,0.12945 -1.37736,0.62136c-0.4712,0.5178 -1.80194,1.76053 -1.80194,4.27186c0,2.51134 1.84596,4.945 2.10227,5.30747c0.2589,0.33657 3.63497,5.51458 8.80262,7.74113c1.23237,0.5178 2.1903,0.82848 2.94111,1.08738c1.23237,0.38836 2.35599,0.33657 3.24402,0.20712c0.99159,-0.15534 3.04985,-1.24272 3.47963,-2.45956c0.44013,-1.21683 0.44013,-2.22654 0.31068,-2.45955c-0.12945,-0.23301 -0.46601,-0.36247 -0.98382,-0.59548m-9.40068,12.84407l-0.02589,0c-3.05503,0 -6.08417,-0.82849 -8.72495,-2.38189l-0.62136,-0.37023l-6.47252,1.68286l1.73463,-6.29129l-0.41424,-0.64725c-1.70875,-2.71846 -2.6149,-5.85116 -2.6149,-9.07706c0,-9.39809 7.68934,-17.06155 17.15993,-17.06155c4.58253,0 8.88029,1.78642 12.11655,5.02268c3.23625,3.21036 5.02267,7.50812 5.02267,12.06476c-0.0078,9.3981 -7.69712,17.06155 -17.14699,17.06155m14.58906,-31.58846c-3.93529,-3.80584 -9.1133,-5.95471 -14.62789,-5.95471c-11.36055,0 -20.60848,9.2065 -20.61625,20.52564c0,3.61684 0.94757,7.14565 2.75211,10.26282l-2.92557,10.63564l10.93337,-2.85309c3.0136,1.63108 6.4052,2.4958 9.85634,2.49839l0.01037,0c11.36574,0 20.61884,-9.2091 20.62403,-20.53082c0,-5.48093 -2.14111,-10.64081 -6.03239,-14.51915\"\n});\nconst WhatsappIcon$1 = WhatsappIcon;\nfunction isMobileOrTablet() {\n return /(android|iphone|ipad|mobile)/i.test(navigator.userAgent);\n}\nfunction whatsappLink(url, { title, separator }) {\n assert(url, \"whatsapp.url\");\n return \"https://\" + (isMobileOrTablet() ? \"api\" : \"web\") + \".whatsapp.com/send\" + objectToGetParams({\n text: title ? title + separator + url : url\n });\n}\nconst WhatsappShareButton = createShareButton(\n \"whatsapp\",\n whatsappLink,\n (props) => ({\n title: props.title,\n separator: props.separator || \" \"\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst WhatsappShareButton$1 = WhatsappShareButton;\nconst WorkplaceIcon = createIcon({\n color: \"#4326c4\",\n networkName: \"workplace\",\n path: \"M34.019,10.292c0.21,0.017,0.423,0.034,0.636,0.049 c3.657,0.262,6.976,1.464,9.929,3.635c3.331,2.448,5.635,5.65,6.914,9.584c0.699,2.152,0.983,4.365,0.885,6.623 c-0.136,3.171-1.008,6.13-2.619,8.867c-0.442,0.75-0.908,1.492-1.495,2.141c-0.588,0.651-1.29,1.141-2.146,1.383 c-1.496,0.426-3.247-0.283-3.961-1.642c-0.26-0.494-0.442-1.028-0.654-1.548c-1.156-2.838-2.311-5.679-3.465-8.519 c-0.017-0.042-0.037-0.082-0.065-0.145c-0.101,0.245-0.192,0.472-0.284,0.698c-1.237,3.051-2.475,6.103-3.711,9.155 c-0.466,1.153-1.351,1.815-2.538,2.045c-1.391,0.267-2.577-0.154-3.496-1.247c-0.174-0.209-0.31-0.464-0.415-0.717 c-2.128-5.22-4.248-10.442-6.37-15.665c-0.012-0.029-0.021-0.059-0.036-0.104c0.054-0.003,0.103-0.006,0.15-0.006 c1.498-0.001,2.997,0,4.495-0.004c0.12-0.001,0.176,0.03,0.222,0.146c1.557,3.846,3.117,7.691,4.679,11.536 c0.018,0.046,0.039,0.091,0.067,0.159c0.273-0.673,0.536-1.32,0.797-1.968c1.064-2.627,2.137-5.25,3.19-7.883 c0.482-1.208,1.376-1.917,2.621-2.135c1.454-0.255,2.644,0.257,3.522,1.449c0.133,0.18,0.229,0.393,0.313,0.603 c1.425,3.495,2.848,6.991,4.269,10.488c0.02,0.047,0.04,0.093,0.073,0.172c0.196-0.327,0.385-0.625,0.559-0.935 c0.783-1.397,1.323-2.886,1.614-4.461c0.242-1.312,0.304-2.634,0.187-3.962c-0.242-2.721-1.16-5.192-2.792-7.38 c-2.193-2.939-5.086-4.824-8.673-5.625c-1.553-0.346-3.124-0.405-4.705-0.257c-3.162,0.298-6.036,1.366-8.585,3.258 c-3.414,2.534-5.638,5.871-6.623,10.016c-0.417,1.76-0.546,3.547-0.384,5.348c0.417,4.601,2.359,8.444,5.804,11.517 c2.325,2.073,5.037,3.393,8.094,3.989c1.617,0.317,3.247,0.395,4.889,0.242c1-0.094,1.982-0.268,2.952-0.529 c0.04-0.01,0.081-0.018,0.128-0.028c0,1.526,0,3.047,0,4.586c-0.402,0.074-0.805,0.154-1.21,0.221 c-0.861,0.14-1.728,0.231-2.601,0.258c-0.035,0.002-0.071,0.013-0.108,0.021c-0.493,0-0.983,0-1.476,0 c-0.049-0.007-0.1-0.018-0.149-0.022c-0.315-0.019-0.629-0.033-0.945-0.058c-1.362-0.105-2.702-0.346-4.017-0.716 c-3.254-0.914-6.145-2.495-8.66-4.752c-2.195-1.971-3.926-4.29-5.176-6.963c-1.152-2.466-1.822-5.057-1.993-7.774 c-0.014-0.226-0.033-0.451-0.05-0.676c0-0.502,0-1.003,0-1.504c0.008-0.049,0.02-0.099,0.022-0.148 c0.036-1.025,0.152-2.043,0.338-3.052c0.481-2.616,1.409-5.066,2.8-7.331c2.226-3.625,5.25-6.386,9.074-8.254 c2.536-1.24,5.217-1.947,8.037-2.126c0.23-0.015,0.461-0.034,0.691-0.051C33.052,10.292,33.535,10.292,34.019,10.292z\"\n});\nconst WorkplaceIcon$1 = WorkplaceIcon;\nfunction workplaceLink(url, { quote, hashtag }) {\n assert(url, \"workplace.url\");\n return \"https://work.facebook.com/sharer.php\" + objectToGetParams({\n u: url,\n quote,\n hashtag\n });\n}\nconst WorkplaceShareButton = createShareButton(\n \"workplace\",\n workplaceLink,\n (props) => ({\n quote: props.quote,\n hashtag: props.hashtag\n }),\n {\n windowWidth: 550,\n windowHeight: 400\n }\n);\nconst WorkplaceShareButton$1 = WorkplaceShareButton;\nconst XIcon = createIcon({\n color: \"#000000\",\n networkName: \"X\",\n path: \"M 41.116 18.375 h 4.962 l -10.8405 12.39 l 12.753 16.86 H 38.005 l -7.821 -10.2255 L 21.235 47.625 H 16.27 l 11.595 -13.2525 L 15.631 18.375 H 25.87 l 7.0695 9.3465 z m -1.7415 26.28 h 2.7495 L 24.376 21.189 H 21.4255 z\"\n});\nconst XIcon$1 = XIcon;\nexport {\n EmailIcon$1 as EmailIcon,\n EmailShareButton$1 as EmailShareButton,\n FacebookIcon$1 as FacebookIcon,\n FacebookMessengerIcon$1 as FacebookMessengerIcon,\n FacebookMessengerShareButton$1 as FacebookMessengerShareButton,\n FacebookShareButton$1 as FacebookShareButton,\n FacebookShareCount,\n GabIcon$1 as GabIcon,\n GabShareButton$1 as GabShareButton,\n HatenaIcon$1 as HatenaIcon,\n HatenaShareButton$1 as HatenaShareButton,\n HatenaShareCount,\n InstapaperIcon$1 as InstapaperIcon,\n InstapaperShareButton$1 as InstapaperShareButton,\n LineIcon$1 as LineIcon,\n LineShareButton$1 as LineShareButton,\n LinkedinIcon$1 as LinkedinIcon,\n LinkedinShareButton$1 as LinkedinShareButton,\n LivejournalIcon$1 as LivejournalIcon,\n LivejournalShareButton$1 as LivejournalShareButton,\n MailruIcon$1 as MailruIcon,\n MailruShareButton$1 as MailruShareButton,\n OKIcon$1 as OKIcon,\n OKShareButton$1 as OKShareButton,\n OKShareCount,\n PinterestIcon$1 as PinterestIcon,\n PinterestShareButton$1 as PinterestShareButton,\n PinterestShareCount,\n PocketIcon$1 as PocketIcon,\n PocketShareButton$1 as PocketShareButton,\n RedditIcon$1 as RedditIcon,\n RedditShareButton$1 as RedditShareButton,\n RedditShareCount,\n TelegramIcon$1 as TelegramIcon,\n TelegramShareButton$1 as TelegramShareButton,\n TumblrIcon$1 as TumblrIcon,\n TumblrShareButton$1 as TumblrShareButton,\n TumblrShareCount,\n TwitterIcon$1 as TwitterIcon,\n TwitterShareButton$1 as TwitterShareButton,\n VKIcon$1 as VKIcon,\n VKShareButton$1 as VKShareButton,\n VKShareCount,\n ViberIcon$1 as ViberIcon,\n ViberShareButton$1 as ViberShareButton,\n WeiboIcon$1 as WeiboIcon,\n WeiboShareButton$1 as WeiboShareButton,\n WhatsappIcon$1 as WhatsappIcon,\n WhatsappShareButton$1 as WhatsappShareButton,\n WorkplaceIcon$1 as WorkplaceIcon,\n WorkplaceShareButton$1 as WorkplaceShareButton,\n XIcon$1 as XIcon\n};\n//# sourceMappingURL=index.js.map\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n"],"names":["hiddenStyles","display","HiddenText","_ref","id","value","style","LiveRegion","announcement","ariaLiveType","position","width","height","margin","border","padding","overflow","clip","clipPath","whiteSpace","role","DndMonitorContext","createContext","defaultScreenReaderInstructions","draggable","defaultAnnouncements","onDragStart","active","onDragOver","_ref2","over","onDragEnd","_ref3","onDragCancel","_ref4","Accessibility","announcements","container","hiddenTextDescribedById","screenReaderInstructions","announce","setAnnouncement","useState","useCallback","useAnnouncement","liveRegionId","mounted","setMounted","useEffect","listener","registerListener","useContext","Error","useDndMonitor","useMemo","onDragMove","_ref5","_ref6","markup","createPortal","Action","noop","useSensor","sensor","options","useSensors","_len","arguments","length","sensors","Array","_key","filter","defaultCoordinates","Object","freeze","x","y","distanceBetween","p1","p2","Math","sqrt","pow","getRelativeTransformOrigin","event","rect","eventCoordinates","left","top","sortCollisionsAsc","data","a","b","sortCollisionsDesc","cornersOfRectangle","getFirstCollision","collisions","property","firstCollision","centerOfRectangle","closestCenter","collisionRect","droppableRects","droppableContainers","centerRect","droppableContainer","get","distBetween","push","sort","closestCorners","corners","rectCorners","distances","reduce","accumulator","corner","index","effectiveDistance","Number","toFixed","getIntersectionRatio","entry","target","max","right","min","bottom","targetArea","entryArea","intersectionArea","rectIntersection","intersectionRatio","getRectDelta","rect1","rect2","createRectAdjustmentFn","modifier","adjustments","acc","adjustment","getAdjustedRect","parseTransform","transform","startsWith","transformArray","slice","split","scaleX","scaleY","defaultOptions","ignoreTransform","getClientRect","element","getBoundingClientRect","transformOrigin","getComputedStyle","parsedTransform","translateX","translateY","parseFloat","indexOf","w","h","inverseTransform","getTransformAgnosticClientRect","getScrollableAncestors","limit","scrollParents","findScrollableAncestors","node","scrollingElement","includes","computedStyle","overflowRegex","some","test","isScrollable","isFixed","parentNode","getFirstScrollableAncestor","firstScrollableAncestor","getScrollableElement","window","getScrollXCoordinate","scrollX","scrollLeft","getScrollYCoordinate","scrollY","scrollTop","getScrollCoordinates","Direction","isDocumentScrollingElement","document","getScrollPosition","scrollingContainer","minScroll","dimensions","innerHeight","innerWidth","clientHeight","clientWidth","maxScroll","scrollWidth","scrollHeight","isTop","isLeft","isBottom","isRight","defaultThreshold","getScrollDirectionAndSpeed","scrollContainer","scrollContainerRect","acceleration","thresholdPercentage","direction","speed","threshold","Backward","abs","Forward","getScrollElementRect","getScrollOffsets","scrollableAncestors","scrollIntoViewIfNeeded","measure","scrollIntoView","block","inline","properties","Rect","constructor","this","scrollOffsets","axis","keys","getScrollOffset","key","defineProperty","currentOffsets","scrollOffsetsDeltla","enumerable","Listeners","listeners","removeAll","forEach","_this$target","removeEventListener","add","eventName","handler","_this$target2","addEventListener","hasExceededDistance","delta","measurement","dx","dy","EventName","KeyboardCode","preventDefault","stopPropagation","defaultKeyboardCodes","start","Space","Enter","cancel","Esc","end","defaultKeyboardCoordinateGetter","currentCoordinates","code","Right","Left","Down","Up","KeyboardSensor","props","autoScrollEnabled","referenceCoordinates","windowListeners","handleKeyDown","bind","handleCancel","attach","handleStart","Resize","VisibilityChange","setTimeout","Keydown","activeNode","onStart","current","context","keyboardCodes","coordinateGetter","scrollBehavior","handleEnd","newCoordinates","coordinatesDelta","scrollDelta","scrollElementRect","clampedCoordinates","canScrollX","canScrollY","newScrollCoordinates","canScrollToNewCoordinates","scrollTo","behavior","scrollBy","handleMove","coordinates","onMove","onEnd","detach","onCancel","isDistanceConstraint","constraint","Boolean","isDelayConstraint","activators","onActivation","nativeEvent","activator","activatorNode","AbstractPointerSensor","events","listenerTarget","_getEventCoordinates","EventTarget","getEventListenerTarget","activated","initialCoordinates","timeoutId","documentListeners","handleKeydown","removeTextSelection","activationConstraint","bypassActivationConstraint","move","name","passive","DragStart","ContextMenu","delay","clearTimeout","Click","capture","SelectionChange","_getEventCoordinates2","tolerance","distance","cancelable","_this$document$getSel","getSelection","removeAllRanges","PointerSensor","super","isPrimary","button","events$1","MouseButton","MouseSensor","RightClick","events$2","TouchSensor","setup","AutoScrollActivator","TraversalOrder","useAutoScroller","Pointer","canScroll","draggingRect","enabled","interval","order","TreeOrder","pointerCoordinates","scrollableAncestorRects","scrollIntent","disabled","previousDelta","previousIntent","defaultScrollIntent","sign","useScrollIntent","setAutoScrollInterval","clearAutoScrollInterval","scrollSpeed","useRef","scrollDirection","DraggableRect","scrollContainerRef","autoScroll","sortedScrollableAncestors","reverse","JSON","stringify","touches","MeasuringStrategy","MeasuringFrequency","defaultValue","Map","useInitialValue","computeFn","previousValue","useResizeObserver","callback","handleResize","resizeObserver","ResizeObserver","disconnect","defaultMeasure","useRect","fallbackRect","measureRect","useReducer","currentRect","isConnected","newRect","mutationObserver","handleMutations","MutationObserver","useMutationObserver","records","record","type","HTMLElement","contains","observe","body","childList","subtree","defaultValue$1","useScrollOffsetsDelta","dependencies","initialScrollOffsets","hasScrollOffsets","useWindowRect","getWindowClientRect","defaultValue$2","getMeasurableNode","children","firstChild","defaultSensors","defaultData","defaultMeasuringConfiguration","droppable","strategy","WhileDragging","frequency","Optimized","dragOverlay","DroppableContainersMap","_super$get","undefined","toArray","from","values","getEnabled","getNodeFor","_this$get$node$curren","_this$get","defaultPublicContext","activatorEvent","activeNodeRect","containerNodeRect","draggableNodes","nodeRef","setRef","measuringConfiguration","measureDroppableContainers","windowRect","measuringScheduled","defaultInternalContext","ariaDescribedById","dispatch","InternalContext","PublicContext","getInitialState","nodes","translate","containers","reducer","state","action","DragMove","DragEnd","DragCancel","RegisterDroppable","set","SetDroppableDisabled","UnregisterDroppable","delete","RestoreFocus","previousActivatorEvent","previousActiveId","activeElement","draggableNode","requestAnimationFrame","focusableNode","focus","applyModifiers","modifiers","args","ActiveDraggableContext","Status","DndContext","memo","_sensorContext$curren","_dragOverlay$nodeRef$","_dragOverlay$rect","_over$rect","accessibility","collisionDetection","measuring","store","dispatchMonitorEvent","registerMonitorListener","Set","_listener$type","call","useDndMonitorProvider","status","setStatus","Uninitialized","isInitialized","Initialized","activeId","activeRects","initial","translated","_node$data","activeRef","activeSensor","setActiveSensor","setActivatorEvent","latestProps","draggableDescribedById","enabledDroppableContainers","config","dragging","queue","setQueue","containersRef","Always","BeforeDragging","isDisabled","disabledRef","ids","concat","map","useDroppableMeasuring","cachedNode","useCachedNode","activationCoordinates","autoScrollOptions","activeSensorDisablesAutoscroll","autoScrollGloballyDisabled","getAutoScrollerOptions","initialActiveNodeRect","useInitialRect","initialRect","initialized","rectDelta","useLayoutShiftScrollCompensation","layoutShiftCompensation","parentElement","sensorContext","draggingNode","draggingNodeRect","scrollAdjustedTranslate","overNode","setRect","entries","handleNodeChange","useDragOverlayMeasuring","usesDragOverlay","nodeRectDelta","previousNode","ancestors","useScrollableAncestors","elements","firstElement","rects","measureRects","useRects","modifiedTranslate","overlayNodeRect","scrollCoordinates","setScrollCoordinates","prevElements","handleScroll","previousElements","cleanup","scrollableElement","useScrollOffsets","scrollAdjustment","activeNodeScrollDelta","overId","setOver","adjustScale","instantiateSensor","Sensor","sensorInstance","unstable_batchedUpdates","Initializing","createHandler","async","cancelDrop","Promise","resolve","bindActivatorToSensorInstantiator","activeDraggableNode","dndKit","defaultPrevented","activationContext","capturedBy","getSyntheticHandler","useCombineActivators","teardownFns","teardown","useSensorSetup","overContainer","publicContext","internalContext","Provider","restoreFocus","NullContext","defaultRole","ID_PREFIX","useDraggable","attributes","roleDescription","tabIndex","isDragging","setNodeRef","setActivatorNodeRef","useSyntheticListeners","dataRef","useDndContext","ID_PREFIX$1","defaultResizeObserverConfig","timeout","useDroppable","resizeObserverConfig","previous","resizeObserverConnected","callbackId","resizeObserverDisabled","updateMeasurementsFor","resizeObserverTimeout","isArray","newElement","previousElement","unobserve","isOver","AnimationManager","animation","clonedChildren","setClonedChildren","setElement","previousChildren","then","cloneElement","ref","defaultTransform","NullifiedContextProvider","baseStyles","touchAction","defaultTransition","PositionedOverlay","forwardRef","as","className","transition","scaleAdjustedTransform","styles","Transform","toString","defaultDropAnimationSideEffects","originalStyles","getPropertyValue","setProperty","classList","remove","defaultDropAnimationConfiguration","duration","easing","keyframes","final","sideEffects","opacity","useDropAnimation","activeDraggable","measurableNode","rest","scale","finalTransform","animationKeyframes","firstKeyframe","lastKeyframe","animate","fill","onfinish","createDefaultDropAnimation","useKey","DragOverlay","dropAnimation","dropAnimationConfig","wrapperElement","zIndex","modifiedTransform","restrictToBoundingRect","boundingRect","restrictToParentElement","arrayMove","array","to","newArray","splice","getSortedRects","items","isValidIndex","rectSortingStrategy","activeIndex","overIndex","newRects","oldRect","defaultScale$1","verticalListSortingStrategy","_rects$activeIndex","fallbackActiveRect","overIndexRect","itemGap","clientRects","previousRect","nextRect","getItemGap$1","Context","containerId","disableTransforms","useDragOverlay","sortedRects","SortableContext","userDefinedItems","disabledProp","item","previousItemsRef","itemsHaveChanged","i","itemsEqual","normalizeDisabled","contextValue","defaultNewIndexGetter","defaultAnimateLayoutChanges","isSorting","wasDragging","newIndex","previousItems","previousContainerId","transitionProperty","disabledTransition","Transition","defaultAttributes","useSortable","animateLayoutChanges","userDefinedAttributes","localDisabled","customData","getNewIndex","localStrategy","globalDisabled","globalStrategy","_localDisabled$dragga","_localDisabled$droppa","normalizeLocalDisabled","sortable","itemsAfterCurrentSortable","setDroppableNodeRef","setDraggableNodeRef","displaceItem","shouldDisplaceDragSource","dragSourceDisplacement","shouldAnimateLayoutChanges","derivedTransform","setDerivedtransform","previousIndex","useDerivedTransform","getTransition","hasSortableData","directions","sortableKeyboardCoordinates","filteredContainers","closestId","activeDroppable","newDroppable","newNode","hasDifferentScrollAncestors","hasSameContainer","isSameContainer","isAfterActive","isAfter","offset","rectCoordinates","useCombinedRefs","refs","canUseDOM","createElement","isWindow","elementString","prototype","isNode","getWindow","_target$ownerDocument","_target$ownerDocument2","ownerDocument","defaultView","isDocument","Document","isHTMLElement","isSVGElement","SVGElement","getOwnerDocument","useIsomorphicLayoutEffect","useLayoutEffect","useEvent","handlerRef","useInterval","intervalRef","setInterval","clearInterval","useLatestValue","valueRef","useLazyMemo","newValue","useNodeRef","onChange","onChangeHandler","usePrevious","useUniqueId","prefix","createAdjustmentFn","object","valueAdjustment","subtract","isKeyboardEvent","KeyboardEvent","getEventCoordinates","TouchEvent","isTouchEvent","clientX","clientY","changedTouches","hasViewportRelativeCoordinates","CSS","Translate","round","Scale","join","SELECTOR","findFirstFocusableNode","matches","querySelector","f","r","e","c","m","write","d","onFrame","p","onFinish","t","now","o","F","findIndex","z","u","s","time","v","sync","T","batchedUpdates","throttle","use","performance","Date","catch","console","error","frameLoop","advance","warn","l","Q","flush","has","size","ze","Y","Le","assign","U","colors","createStringInterpolator","k","skipAnimation","ee","J","willAdvance","arr","obj","fun","str","num","und","bt","Ve","xt","n","hasOwnProperty","ht","Pe","clear","yt","navigator","userAgent","E","H","A","qe","idle","priority","$e","te","B","re","Ge","M","C","oe","RegExp","fe","ae","ie","se","ue","le","ce","j","de","parseInt","pe","me","D","exec","be","W","range","output","extrapolate","extrapolateLeft","extrapolateRight","He","Ue","P","L","xe","he","PI","ye","V","Lt","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","sin","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInBack","easeOutBack","easeInOutBack","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","steps","ne","floor","ceil","g","Symbol","for","Pt","ve","$t","eventObserved","je","De","Ee","Gt","observerAdded","Qt","observerRemoved","_","writable","configurable","O","Oe","K","source","we","N","We","documentElement","trim","Ke","Xt","replace","match","find","Z","Te","TypeError","Ne","_e","WeakMap","Ce","Mr","random","$r","ut","Ur","getPayload","payload","_value","lastPosition","done","elapsedTime","lastVelocity","v0","durationProgress","create","getValue","setValue","reset","_string","_toString","_makePayload","_addToPayload","isReactComponent","createAnimatedStyle","applyAnimatedValues","deps","update","S","$","getComponentProps","I","displayName","et","default","nn","rn","on","loop","pause","immediate","onProps","onPause","onResume","onRest","onResolve","trail","expires","enter","leave","onDestroyed","callId","parentId","sn","tt","tension","friction","mass","damping","clamp","velocity","restVelocity","precision","progress","bounce","decay","changed","toValues","fromValues","defaultProps","actions","paused","resumeQueue","resume","timeouts","delayed","pauseQueue","cancelId","cancelled","every","nt","finished","asyncTo","promise","asyncId","result","stop","all","Sn","_priority","_onPriorityChange","interpolate","toJSON","_attach","_detach","_onChange","parent","st","rt","_state","_pendingCalls","_lastCallId","_lastToId","_memoizedDuration","goal","hasAnimated","isAnimating","isPaused","isDelayed","exp","isNaN","_stop","_focus","_set","_update","finish","_onStart","_start","_prepareNode","_t","isFrozen","_resume","_merge","at","gt","_n","Vt","Ot","Fn","kn","springs","_flush","_initialProps","_lastAsyncId","_active","_changed","_started","_item","_events","_onFrame","each","jt","wt","Mt","pt","inputs","it","_context","Consumer","_getProps","ctrls","exitBeforeEnter","ctrl","expired","expirationId","phase","tr","Jt","Wt","Fe","Ze","ft","calc","_get","Yt","ct","vr","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","charAt","toUpperCase","substring","transforms","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","animated","nodeType","setAttribute","nodeName","viewBox","hasAttribute","toLowerCase","textContent","_excluded","_extends","apply","Line","_ref$from","_ref$to","_ref$fill","innerRef","restProps","excluded","sourceKeys","_objectWithoutPropertiesLoose","isRectilinear","x1","y1","x2","y2","shapeRendering","isNumber","val","isXOrYInValid","xOrY","isFinite","useText","_props$verticalAnchor","verticalAnchor","_props$scaleToFit","scaleToFit","angle","_props$lineHeight","_props$capHeight","capHeight","textProps","_textProps$x","_textProps$y","isXOrYNotValid","_useMemo","wordsWithWidth","word","wordWidth","getStringWidth","spaceWidth","wordsByLines","currentLine","words","newLine","startDy","lineWidth","sx","sy","originX","originY","SVG_STYLE","Text","_props$dx","_props$dy","_props$textAnchor","textAnchor","innerTextRef","fontSize","_useText","line","Ticks","hideTicks","horizontal","orientation","tickClassName","tickComponent","allTickLabelProps","tickLabelProps","_ref$tickStroke","tickStroke","tickTransform","ticks","tickLineProps","_allTickLabelProps$in","formattedValue","tickLabelFontSize","tickYCoord","Group","stroke","strokeLinecap","defaultTextProps","fontFamily","AxisRenderer","axisFromPoint","axisLineClassName","axisToPoint","hideAxisLine","_ref$label","label","labelClassName","_ref$labelOffset","labelOffset","labelProps","_ref$orientation","_ref$stroke","_ref$strokeWidth","_ref$tickLength","tickLength","_ref$ticksComponent","ticksComponent","combinedLabelProps","tickLabelPropsDefault","maxTickLabelFontSize","yBottomOffset","getLabelTransform","createPoint","Point","defaultAxisRangePadding","Axis","originalRangePadding","_ref$children","axisClassName","_ref$hideAxisLine","_ref$hideTicks","_ref$hideZero","hideZero","_ref$left","_ref$numTicks","numTicks","_ref$rangePadding","rangePadding","tickFormat","tickValues","_ref$top","format","getTickFormatter","tickPosition","align","bandwidth","scaledValue","getTickPosition","tickSign","rangePaddingConfig","filteredTickValues","getTicks","coerceNumber","bottomTickLabelProps","AxisBottom","tickLabelPropsFinal","leftTickLabelProps","AxisLeft","LinearGradient","_x1","_y1","_x2","_y2","_ref$fromOffset","fromOffset","_ref$fromOpacity","fromOpacity","_ref$toOffset","toOffset","_ref$toOpacity","toOpacity","rotate","_ref$vertical","vertical","gradientTransform","stopColor","propTypes","isRequired","GridRows","lineStyle","scaleOffset","getScaleBandwidth","tickLines","_coerceNumber","lines","LegendItem","_ref$flexDirection","flexDirection","_ref$alignItems","alignItems","_ref$margin","_ref$display","LegendLabel","_ref$flex","_ref$align","justifyContent","ShapeRect","background","ShapeCircle","cleanWidth","cleanHeight","radius","ShapeLine","lineThickness","NO_OP","LegendShape","_ref$shape","shape","itemIndex","shapeStyle","_ref$size","_ref$shapeStyle","renderShape","valueOrIdentity","valueOrIdentityString","String","labelTransformFactory","labelFormat","datum","text","defaultStyle","Legend","_ref$style","inputDomain","domain","_ref$labelFormat","_ref$labelTransform","labelTransform","_ref$shapeWidth","shapeWidth","_ref$shapeHeight","shapeHeight","_ref$shapeMargin","shapeMargin","_ref$labelAlign","labelAlign","_ref$labelFlex","labelFlex","_ref$labelMargin","labelMargin","_ref$itemMargin","itemMargin","_ref$direction","_ref$itemDirection","itemDirection","legendLabelProps","legendItemProps","labelFormatter","labels","Ordinal","_ref$x","_ref$y","_proto","defaultIgnoreDimensions","defaultInitialSize","_excluded2","defaultParentSizeStyles","ParentSize","debounceTime","ignoreDimensions","initialSize","_ref$parentSizeStyles","parentSizeStyles","_ref$enableDebounceLe","enableDebounceLeadingCall","resizeObserverPolyfill","_useParentSize","_temp","_ref$initialSize","_ref$debounceTime","_ref$ignoreDimensions","parentRef","animationFrameID","_useState","setState","resize","normalized","incoming","existing","leading","observer","_entry$contentRect","contentRect","cancelAnimationFrame","useParentSize","radians","degrees","Xn","Yn","Zn","t0","t1","t2","t3","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","NaN","atan2","hcl","brighter","darker","rgb","hue","hclLong","hsl","color","hslLong","ED","EB","BC_DA","Cubehelix","bl","cubehelixConvert","cubehelix","cubehelixGamma","gamma","cosh","sinh","interpolatorMap","TEST_TIME","UTC","TEST_FORMAT","localTimeIntervals","day","hour","minute","month","second","week","year","utcIntervals","ALL_OPERATORS","operators","nice","timeScale","isUtc","isUtcScale","step","parsedInterval","zero","isDescending","domainWithZero","interpolator","createColorInterpolator","base","constant","exponent","paddingInner","paddingOuter","reversedRange","unknown","scaleOperator","ops","selection","selectedOps","op","updateBandScale","createBandScale","updateLinearScale","createLinearScale","updateOrdinalScale","createOrdinalScale","valueOf","Bar","BarGroup","x0","x0Scale","x1Scale","yScale","barWidth","getBandwidth","barGroups","group","bars","barGroup","bar","BarRounded","_ref2$all","_ref2$top","_ref2$bottom","_ref2$left","_ref2$right","_ref2$topLeft","topLeft","_ref2$topRight","topRight","_ref2$bottomLeft","bottomLeft","_ref2$bottomRight","bottomRight","path","diameter","useBarRoundedPath","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","cw","da","Linear","func","_temp3","defined","curve","buffer","defined0","lineStart","lineEnd","point","areaStart","_line","areaEnd","_point","LinePath","_ref$data","_ref$defined","exports","_react","_classnames","_interopRequireDefault","__esModule","MEASUREMENT_ELEMENT_ID","textEl","getElementById","svg","createElementNS","appendChild","getComputedTextLength","useTooltip","initialTooltipState","tooltipOpen","tooltipState","setTooltipState","showTooltip","showArgs","show","tooltipLeft","tooltipTop","tooltipData","hideTooltip","updateTooltip","defaultStyles","backgroundColor","borderRadius","boxShadow","pointerEvents","Tooltip","_ref$offsetLeft","offsetLeft","_ref$offsetTop","offsetTop","_ref$unstyled","unstyled","_ref$applyPositionSty","applyPositionStyle","balanced","maybeMatch","pre","post","reg","begs","beg","ai","bi","pop","module","delimiters","delimiter","input","CLEAVE_ZEN_cursor_tracker","inputType","selectionEnd","CLEAVE_ZEN_cleanCursorIndex","dirtyCursorIndex","cleanCursorIndex","setSelectionRange","UATP","AMEX","DINERS","DISCOVER","MASTERCARD","DANKORT","INSTAPAYMENT","JCB15","JCB","MAESTRO","VISA","MIR","UNIONPAY","GENERAL","THOUSAND","LAKH","WAN","NONE","numeralThousandsGroupStyle","numeralIntegerScale","numeralDecimalMark","numeralDecimalScale","stripLeadingZeroes","numeralPositiveOnly","tailPrefix","signBeforePrefix","slope3","that","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","_t0","factory","self","__webpack_modules__","__unused_webpack_exports","isObject","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","unicode","Constructor","ArrayBuffer","DataView","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","classof","createNonEnumerableProperty","redefine","getPrototypeOf","setPrototypeOf","uid","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","isPrototypeOf","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isTypedArray","klass","Function","aTypedArray","aTypedArrayConstructor","ARRAY","TypedArrayConstructor","exportTypedArrayMethod","KEY","forced","exportTypedArrayStaticMethod","isView","redefineAll","fails","anInstance","toInteger","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","setToStringTag","InternalStateModule","getInternalState","setInternalState","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","RangeError","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","byteLength","bytes","byteOffset","conversion","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","copyWithin","len","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIteratorMethod","arrayLike","iterator","next","mapfn","mapping","iteratorMethod","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","specificCreate","boundFunction","filterOut","nativeLastIndexOf","lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","foo","argument","method","aFunction","IS_RIGHT","originalArray","anObject","iteratorClose","fn","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tag","tryGet","callee","ownKeys","getOwnPropertyDescriptorModule","getOwnPropertyDescriptor","IteratorPrototype","createPropertyDescriptor","Iterators","returnThis","IteratorConstructor","bitmap","toPrimitive","propertyKey","createIteratorConstructor","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","getBuiltIn","version","process","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","groups","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","flags","nativeRegExpMethod","nativeMethod","regexp","arg2","forceStringMethod","stringMethod","regexMethod","string","arg","variable","namespace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","check","globalThis","log","LN2","mantissaLength","mantissa","exponentLength","eMax","eBias","Infinity","nBits","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","feature","detection","normalize","POLYFILL","NATIVE","MATCH","isRegExp","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","getOwnPropertySymbols","url","URL","searchParams","pathname","href","URLSearchParams","username","host","hash","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","nativeAssign","symbol","alphabet","chr","activeXDocument","defineProperties","enumBugKeys","html","documentCreateElement","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","close","temp","parentWindow","NullProtoObjectViaActiveX","src","contentWindow","open","Properties","__unused_webpack_module","IE8_DOM_DEFINE","nativeDefineProperty","Attributes","nativeGetOwnPropertyDescriptor","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","names","nativePropertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","setter","CORRECT_SETTER","__proto__","getOwnPropertyNamesModule","enforceInternalState","TEMPLATE","simple","R","re1","re2","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","RE","CONSTRUCTOR_NAME","TAG","SHARED","mode","copyright","defaultConstructor","requireObjectCoercible","CONVERT_TO_STRING","pos","first","charCodeAt","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","fromCharCode","digitToBasic","digit","adapt","numPoints","firstTime","baseMinusTMin","encode","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","encoded","whitespaces","whitespace","ltrim","rtrim","integer","toPositiveInteger","BYTES","PREFERRED_STRING","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","typedArrayFrom","setSpecies","inheritIfRequired","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","list","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","wrapper","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","exported","addElement","getter","typedArrayOffset","$length","$len","checkCorrectnessOfIteration","iterable","speciesConstructor","instance","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","arrayBufferModule","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","$filter","$indexOf","nativeIndexOf","addToUnscopables","defineIterator","ARRAY_ITERATOR","iterated","kind","Arguments","$map","HAS_SPECIES_SUPPORT","nativeSlice","fin","deleteCount","insertCount","actualDeleteCount","actualStart","FunctionPrototype","FunctionPrototypeToString","nameRE","nativeGetPrototypeOf","TO_STRING","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","STRING_ITERATOR","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","res","rx","fullUnicode","matchStr","getSubstitution","reason","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","callRegExpExec","arrayPush","MAX_UINT32","SUPPORTS_Y","SPLIT","nativeSplit","internalSplit","separator","lim","lastLength","lastLastIndex","separatorCopy","splitter","unicodeMatching","$trim","forcedStringTrimMethod","$copyWithin","$every","$fill","fromSpeciesAndList","$findIndex","predicate","$find","$includes","ArrayIterators","arrayValues","arrayKeys","arrayEntries","nativeTypedArrayIterator","CORRECT_ITER_NAME","typedArrayValues","$join","$lastIndexOf","$reduceRight","$reduce","middle","$slice","$some","$sort","comparefn","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","arrayJoin","IS_NOT_ARRAY_METHOD","createTypedArrayConstructor","init","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","ArrayIteratorMethods","ArrayValues","USE_NATIVE_URL","hasOwn","getIterator","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","percentDecode","sequence","decodeURIComponent","deserialize","serialize","encodeURIComponent","parseSearchParams","query","attribute","shift","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","params","URLSearchParamsConstructor","entryIterator","entryNext","updateURL","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","fetch","headers","getState","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","parts","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","port","fragment","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","origin","getOrigin","protocol","getProtocol","getUsername","getPassword","getHost","hostname","getHostname","getPort","getPathname","search","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","__webpack_module_cache__","moduleId","definition","prop","toStringTag","_createForOfIteratorHelper","allowArrayLike","minLen","_arrayLikeToArray","_unsupportedIterableToArray","err","normalCompletion","didErr","_e2","return","arr2","_defineProperties","Dropzone","dropzone_dist","Emitter","_classCallCheck","protoProps","staticProps","_callbacks","callbacks","_step","_iterator","dispatchEvent","makeEvent","detail","bubbles","CustomEvent","evt","createEvent","initCustomEvent","options_createForOfIteratorHelper","options_arrayLikeToArray","options_unsupportedIterableToArray","src_options","withCredentials","parallelUploads","uploadMultiple","chunking","forceChunking","chunkSize","parallelChunkUploads","retryChunks","retryChunksLimit","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailMethod","resizeWidth","resizeHeight","resizeMimeType","resizeQuality","resizeMethod","filesizeBase","maxFiles","clickable","ignoreHiddenFiles","acceptedFiles","acceptedMimeTypes","autoProcessQueue","autoQueue","addRemoveLinks","previewsContainer","disablePreviews","hiddenInputContainer","renameFilename","renameFile","forceFallback","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictUploadCanceled","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","dictFileSizeUnits","tb","gb","mb","kb","files","xhr","chunk","dzuuid","upload","uuid","dzchunkindex","dztotalfilesize","dzchunksize","dztotalchunkcount","totalChunkCount","dzchunkbyteoffset","accept","chunksUploaded","fallback","messageElement","getElementsByTagName","child","span","innerText","getFallbackForm","info","srcX","srcY","srcWidth","srcHeight","srcRatio","trgRatio","trgWidth","trgHeight","transformFile","resizeImage","previewTemplate","drop","dragstart","dragend","dragenter","dragover","dragleave","paste","addedfile","_this","previewElement","_step2","_iterator2","querySelectorAll","_step3","_iterator3","innerHTML","filesize","_removeLink","_step4","removeFileEvent","UPLOADING","confirm","removeFile","_iterator4","removedfile","removeChild","_updateMaxFilesReachedClass","thumbnail","dataUrl","_step5","_iterator5","thumbnailElement","alt","message","_step6","_iterator6","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","_step7","_iterator7","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","emit","canceledmultiple","complete","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","_typeof","dropzone_createForOfIteratorHelper","dropzone_arrayLikeToArray","dropzone_unsupportedIterableToArray","dropzone_classCallCheck","dropzone_defineProperties","dropzone_createClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","_Emitter","subClass","superClass","_inherits","_super","clickableElements","dropzone","instances","elementOptions","optionsForElement","extend","isBrowserSupported","getAttribute","getExistingFallback","getElement","getElements","accepted","getFilesWithStatus","QUEUED","ADDED","_this2","tagName","setupHiddenFileInput","hiddenFileInput","visibility","addFile","webkitURL","updateTotalUploadProgress","getAddedFiles","getUploadingFiles","getQueuedFiles","noPropagation","dataTransfer","types","containsFiles","returnValue","efct","effectAllowed","dropEffect","clickableElement","click","elementInside","enable","disable","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","getActiveFiles","total","existingFallback","form","fieldsString","_getParamName","fields","getFallback","_i","_arr","elementListeners","_this3","removeEventListeners","cancelUpload","setupEventListeners","selectedSize","selectedUnit","units","unit","getAcceptedFiles","webkitGetAsEntry","_addFilesFromItems","handleFiles","clipboardData","_this4","isFile","getAsFile","isDirectory","_addFilesFromDirectory","directory","_this5","dirReader","createReader","errorHandler","methodName","readEntries","fullPath","isValidFile","_this6","uuidv4","filename","_renameFile","_enqueueThumbnail","_errorProcessing","enqueueFile","_step8","_iterator8","_this7","processQueue","_this8","_thumbnailQueue","_processThumbnailQueue","_this9","_processingThumbnail","createThumbnail","without","cancelIfNecessary","_step9","_iterator9","_this10","canvas","resizedDataURL","toDataURL","ExifRestore","restore","dataURL","dataURItoBlob","fixOrientation","_this11","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","mockFile","imageUrl","crossOrigin","_this12","resizeThumbnail","_this13","img","loadExif","EXIF","getData","getTag","resizeInfo","ctx","getContext","drawImageIOSFix","trgX","trgY","onerror","processingLength","queuedFiles","processFiles","processFile","_step10","_iterator10","uploadFiles","_step11","groupedFiles","_getFilesWithXhr","_iterator11","CANCELED","abort","_step12","_iterator12","_groupedFile","option","_this14","_transformFiles","transformedFiles","transformedFile","chunked","_transformedFile","chunks","handleNextChunk","chunkIndex","dataBlock","webkitSlice","retries","_uploadData","finishedChunkUpload","response","allFinished","SUCCESS","_finished","dataBlocks","_i2","_step13","_this15","XMLHttpRequest","_iterator13","resolveOption","_finishedUploading","ontimeout","_handleUploadError","onprogress","_updateFilesUploadProgress","Accept","headerName","headerValue","setRequestHeader","formData","FormData","additionalParams","_getChunk","_step14","_iterator14","_file","_addFormElementData","_i3","submitRequest","_this16","doneCounter","_loop","_step15","_iterator15","inputName","_step16","_iterator16","selected","checked","_file2","loaded","_step17","_iterator17","readyState","responseType","responseText","getResponseHeader","parse","send","_step18","_iterator18","_step19","_iterator19","ERROR","_len2","objects","_key2","_i4","_objects","initClass","camelize","forElement","autoDiscover","discover","dropzones","checkElements","_step20","_iterator20","_step21","_iterator21","blockedBrowsers","capableBrowser","File","Blob","blacklistedBrowsers","_step22","_iterator22","dataURI","byteString","atob","mimeString","ab","ia","asc","rejectedItem","div","childNodes","els","_step23","_iterator23","_step24","_iterator24","question","rejected","_step25","mimeType","baseMimeType","_iterator25","validType","jQuery","ACCEPTED","PROCESSING","sw","sh","dw","dh","vertSquashRatio","naturalWidth","ih","naturalHeight","drawImage","getImageData","ey","py","ratio","detectVerticalSquash","KEY_STR","chr1","chr2","chr3","enc1","enc2","enc3","enc4","origFileBase64","resizedFileBase64","rawImage","decode64","segments","slice2Segments","image","exifManipulation","encode64","exifArray","getExifArray","newImageArray","insertExif","seg","imageData","buf","separatePoint","mae","ato","rawImageArray","head","endPoint","_autoDiscoverFunction","win","doc","root","rem","createEventObject","doScroll","frameElement","poll","contentLoaded","_processKeys","pascalize","decamelize","_isFunction","_isObject","_isArray","_isDate","_isRegExp","_isBoolean","_isNumerical","_processor","humps","convert","substr","camelized","separateWords","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","serializer","cycleReplacer","stack","thisPos","spaces","getSerialize","debug","opts","script","timer","param","enc","insertBefore","load","storage","env","DEBUG","formatArgs","useColors","humanize","diff","lastC","save","namespaces","removeItem","WebkitAppearance","firebug","exception","table","$1","chrome","local","localStorage","localstorage","formatters","prevTime","createDebug","curr","ms","prev","coerce","formatter","selectColor","skips","plural","long","fmtShort","iteratee","baseEach","collection","copyObject","keysIn","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","initCloneArray","initCloneByTag","initCloneObject","isBuffer","isMap","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isArr","isFunc","stacked","subValue","baseGetTag","isObjectLike","basePickBy","hasIn","paths","baseGet","baseSet","castPath","isIndex","toKey","nested","objValue","eq","resIndex","computed","seen","cloneArrayBuffer","dataView","reFlags","symbolProto","symbolValueOf","getSymbols","getSymbolsIn","arrayAggregator","baseAggregator","baseIteratee","initializer","flatten","overRest","setToString","baseGetAllKeys","getPrototype","stubArray","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","toNumber","nativeMax","nativeMin","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","maxing","trailing","invokeFunc","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","baseRest","isIterateeCall","objectProto","defaults","sources","guard","propsIndex","propsLength","baseFlatten","pairs","pair","baseAssignValue","createAggregator","groupBy","baseIsDate","baseUnary","nodeUtil","nodeIsDate","isDate","baseKeys","isArguments","isArrayLike","isPrototype","baseIsEqual","other","baseIsMap","nodeIsMap","baseIsSet","nodeIsSet","negate","pickBy","baseOrderBy","iteratees","orders","basePick","pick","flatRest","arrayMap","baseSortedUniq","debounce","baseUniq","idCounter","Mexp","formulaEval","pop1","pop2","pop3","disp","tokens","token","math","anchor","asin","atan","acosh","fact","tanh","atanh","mod","mul","asinh","sub","sigma","Pi","numberOfArguments","and","preced","precedence","type0","type1","type1Asterick","empty","type3Asterick","type6","newAr","str1","str2","indexOfToken","tokenize","Exception","tokenTypes","FUNCTION_WITH_ONE_ARG","NUMBER","BINARY_OPERATOR_HIGH_PRECENDENCE","CONSTANT","OPENING_PARENTHESIS","CLOSING_PARENTHESIS","DECIMAL","POSTFIX_FUNCTION_WITH_ONE_ARG","FUNCTION_WITH_N_ARGS","BINARY_OPERATOR_LOW_PRECENDENCE","BINARY_OPERATOR_PERMUTATION","COMMA","EVALUATED_FUNCTION","EVALUATED_FUNCTION_PARAMETER","SPACE","addToken","newTokens","changeSignObj","changeSign","closingParObj","openingParObj","lex","inp","ptc","inpStr","allowed","bracToClose","asterick","prevKey","cToken","cType","cEv","cPre","cShow","hasDec","parsed","isDegree","pro","choice","toRadian","inverse","low","high","ex","postfixEval","pow10x","sum","sinha","cosha","toPostfix","elem","popped","prep","ele","flag","UserDefined","bool","eval","QR8bitByte","MODE_8BIT_BYTE","getLength","put","QRBitBuffer","bufIndex","putBit","getLengthInBits","bit","QRPolynomial","multiply","gexp","glog","BitByte","RSBlock","BitBuffer","util","Polynomial","QRCode","typeNumber","errorCorrectLevel","modules","moduleCount","dataCache","dataList","addData","newData","isDark","row","col","getModuleCount","make","rsBlocks","getRSBlocks","totalDataCount","dataCount","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","pattern","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","beginFill","endFill","getPatternPosition","bits","getBCHTypeNumber","getBCHTypeInfo","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","rsPoly","getErrorCorrectPolynomial","modPoly","modIndex","totalCodeCount","ECL","QRRSBlock","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","QRMath","LOG_TABLE","EXP_TABLE","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","Mode","QRMaskPattern","QRUtil","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","errorCorrectLength","qrCode","sameCount","darkCount","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","equal","$$typeof","isStyleObject","OTPInput","_a","_b","_c","numInputs","renderInput","_d","shouldAutoFocus","renderSeparator","placeholder","containerStyle","inputStyle","_f","activeInput","setActiveInput","inputRefs","getOTPValue","isInputNum","getPlaceholderValue","isInputValueValid","handleChange","changeCodeAtFocus","focusInput","handleInputChange","handleBlur","otp","select","handleOTPChange","otpValue","handlePaste","nextActiveInput","pastedData","onFocus","handleFocus","onBlur","onKeyDown","onPaste","autoComplete","textAlign","inputMode","onInput","_propTypes2","_react2","bgColor","oneOfType","bgD","fgColor","fgD","title","viewBoxSize","xmlns","QRCodeSvg","_ref$xmlns","_objectWithoutProperties","_ErrorCorrectLevel2","_QRCode2","_QRCodeSvg2","level","_ref$bgColor","_ref$fgColor","_ref$level","qrcode","cells","rowIndex","cell","cellIndex","particles","lifetime","updateParticle","wobble","angle2D","angle3D","tiltAngle","differentiator","physics","elementCount","elementSize","spread","startVelocity","onAnimationComplete","emoji","X","once","reward","updateRef","libRef","userRef","prevUserRef","HIDDEN_TEXTAREA_STYLE","forceHiddenStyles","hiddenTextarea","getHeight","sizingData","sizingStyle","boxSizing","borderSize","paddingSize","SIZING_STYLE","isIE","currentStyle","useListener","latestListener","ev","TextareaAutosize","cacheMeasurements","maxRows","minRows","_ref$onChange","_ref$onHeightChange","onHeightChange","isControlled","heightRef","measurementsCacheRef","resizeTextarea","nodeSizingData","borderRightWidth","borderLeftWidth","paddingRight","paddingLeft","paddingBottom","paddingTop","borderBottomWidth","borderTopWidth","getSizingData","_calculateNodeHeight","rowHeight","minHeight","maxHeight","calculateNodeHeight","fonts","useFontsLoadedListener","reduceFunctionCall","mexp","NESTED_CALC_RE","decimalPrecision","evaluateExpression","expression","functionIdentifier","evaluatedPart","nonEvaluatedPart","balancedExpr","evaluated","evaluateNestedExpression","uniqueUnits","uniqueLowerCaseUnits","unitRegEx","getUnitsInExpression","percent","toEvaluate","functionRE","expressions","fnRE","searchMatch","startIndex","SyntaxError","getFunctionCalls","evalFunctionCall","getCalculatedValues","polar","getDefaultMin","defaultZero","minY","maxY","defaultMin","_y","_x","getDataWithBaseline","getXAccessor","getYAccessor","getY0Accessor","getAreaFunction","interpolationFunction","getAngleAccessor","outerRadius","innerRadius","getCartesianArea","groupComponent","pathComponent","Area","initialProps","ariaLabel","desc","evaluateProps","userProps","renderLine","areaFunction","lineFunction","areaStroke","sharedProps","area","fallbackProps","interpolation","VictoryAreaBase","static","containerComponent","dataComponent","labelComponent","renderInPortal","samples","sortKey","sortOrder","standalone","theme","grayscale","getBaseProps","modifiedProps","sharedEvents","disableInlineStyles","initialChildProps","childProps","eventKey","shouldAnimate","render","animationWhitelist","animateComponent","renderContinuousData","component","renderContainer","VictoryArea","components","orientationSign","exists","getStyles","styleObject","axisLabel","grid","tickLabels","getTickProps","layout","getTickLabelProps","anchors","getGridProps","edge","getDefaultOrientations","originSign","positive","negative","isEqual","getTime","getTransform","calculatedValues","axisValue","isVertical","tickStyle","labelStyle","tickSpacing","getTickTransform","tick","globalTransform","getGridEdge","getGridOffset","crossAxis","xPadding","yPadding","getLayoutProps","orientations","calculatedOrientation","orientationOffset","originOffset","originPosition","offsetX","offsetY","getHorizontalOffset","getOffset","stringTicks","labelPadding","tickSizes","totalPadding","minimumPadding","getStandaloneOffset","gridOffset","gridEdge","dependentAxis","generalAxisStyle","axisType","specificAxisStyle","getStyleObject","getLabelPadding","axisDomain","axisScale","currentAxis","getCurrentAxis","getScale","xAxisDomain","yAxisDomain","xAxisScale","yAxisScale","defaultOrientations","dependent","independent","getOrientation","getAnchors","otherAxis","axisProps","getAxisProps","axisLabelProps","hPadding","vPadding","getAxisLabelProps","gridProps","dimension","tickValue","gridStyle","getEvaluatedStyles","tickLayout","gridLayout","VictoryAxisBase","onExit","onEnter","axisComponent","axisLabelComponent","tickLabelComponent","gridComponent","fixLabelOverlap","renderLabel","renderGridAndTicks","shouldRender","componentProps","dataKeys","tickProps","BaseTickComponent","TickComponent","BaseGridComponent","GridComponent","gridAndTicks","isVictoryLabel","gridAndTick","childArr","labelsSumSize","paddingToObject","labelSize","letterSpacing","availiableLabelCount","divider","getLabelCoord","VictoryAxis","modifiedGridAndTicks","alignment","barRatio","cornerRadius","getPath","getBarPosition","dataProps","getCornerRadius","realCornerRadius","isCornerRadiusObject","updateCornerRadius","getCornerRadiusFromObject","scalarMult","scalarDivide","equals","circle","center","hasIntersection","circle1","P0","P1","r0","r1","intersection","P2","P3s","Point1","Point2","solveX","solveY","getPosition","getAngle","transformAngle","mapPointsToPath","coords","topLeftPath","topRightPath","command","getVerticalBarPath","points","cr","getHalfPoints","side","signL","bottomPoint","bottomMiddlePoint","topMiddlePoint","topPoint","topCenter","topCircle","bottomCenter","bottomCircle","circleIntersection","arcIntersection","newX","getVerticalBarPoints","getHorizontalBarPath","leftPoint","leftMiddlePoint","rightMiddlePoint","rightPoint","leftCenter","leftCircle","rightCenter","rightCircle","newY","topPoints","bottomPoints","getHorizontalBarPoints","getVerticalPolarBarPath","r2","currentAngle","angularRange","getAngularWidth","previousAngle","getStartAngle","lastAngle","nextAngle","getEndAngle","startAngle","endAngle","pathFunction","getPathData","rightPath","rightMoves","rightCoords","rightMiddle","leftPath","leftMoves","leftCoords","leftMiddle","topPath","arcLength","moves","isShort","rightOffset","leftOffset","defaultOffset","subMoves","subCoords","getTopPath","bottomPath","getBottomPath","getBarPath","getCustomBarPath","baseStyle","getStyle","extent","defaultWidth","getBarWidth","getPolarBarPath","VictoryBarBase","onLoad","before","after","yOffset","VictoryBar","renderData","shouldRenderDatum","transformTarget","matrix","isNativeTouchEvent","identifier","getParentSVG","getParent","getSVGEventCoordinates","locationX","locationY","location","isReactTouchEvent","getScreenCTM","getTransformationMatrix","getDomainCoordinates","domainObj","getDataCoordinates","invert","baseX","baseY","getBounds","point1","point2","makeBound","Helpers","getDimension","brushDimension","withinBounds","bounds","paddingValue","getDomainBox","fullDomain","selectedDomain","fullDomainObject","selectedDomainObject","fullCoords","selectedCoords","getHandles","domainBox","minX","maxX","handleWidth","getActiveHandles","handles","activeHandles","opt","getResizeMutation","box","mutations","getMinimumDomain","getDefaultBrushArea","targetProps","cachedDomain","allowResize","defaultBrushArea","brushBox","parentSVG","pannedBox","panBox","brushDomain","startX","startY","fullDomainBox","constrainBox","getSelectionMutation","constrainPoint","hasMoved","mouseMoveThreshold","xMoved","yMoved","onMouseDown","cachedBrushDomain","allowDrag","allowDraw","currentDomain","mutation","isSelecting","isPanning","cachedCurrentDomain","onGlobalMouseMove","onBrushDomainChange","constrainedBox","mutatedProps","onGlobalMouseUp","onBrushDomainChangeEnd","onBrushCleared","defaultDomain","BrushHelpers","VICTORY_BRUSH_CONTAINER_DEFAULT_PROPS","brushComponent","brushStyle","handleComponent","handleStyle","useVictoryBrushContainer","handleComponentStyle","cursors","yProps","xProps","getCursorPointers","cursor","handleProps","selectBox","brushComponentStyle","getSelectBox","getRect","VictoryBrushContainer","defaultEvents","createEventHandler","eventHandlers","onTouchStart","onGlobalTouchMove","onGlobalTouchEnd","onGlobalTouchCancel","circleComponent","rectComponent","Background","cx","cy","ry","getArcPath","closedPath","halfAngle","Arc","getAxisType","typicalType","invertedType","getRadius","getRange","getAxisAngle","axisAngle","tickPadding","padAngle","tickAngle","tickRadius","labelPlacement","labelAngle","textAngle","labelRadius","polarAxis","polarAxisType","standardAxisType","initialTicks","filterTicks","VictoryPolarAxisBase","circularAxisComponent","circularGridComponent","renderAxisLine","renderAxis","tickComponents","gridComponents","tickLabelComponents","renderGroup","VictoryPolarAxis","getCalculatedProps","childComponents","styleProps","userSelect","allStrings","categories","stringMap","createStringMap","getDomain","baseScale","getChildren","calculatedProps","getChildComponents","newCalculatedProps","parentName","axisChild","getChildProps","newProps","defaultAxes","axisComponents","prependDefaultAxes","invertAxis","backgroundComponent","defaultPolarAxes","VictoryChartImpl","propsWithDefaults","getAnimationProps","setAnimationState","getProps","externalEventMutations","axes","newChildren","mappedChildren","backgroundElement","xScale","xCoordinate","yCoordinate","backgroundProps","getBackgroundWithProps","containerProps","defaultContainerProps","previousProps","VictoryChart","expectedComponents","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","custom","polyOut","polyInOut","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b1","b2","b3","b4","b5","b6","b7","b8","b9","b0","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","elasticIn","amplitude","period","elasticOut","elasticInOut","isInterpolatable","POSITIVE_INFINITY","NEGATIVE_INFINITY","interpolateImmediate","when","interpolateFunction","aval","bval","interpolateObject","startValue","endValue","keyData","victoryInterpolator","interpolateString","DEFAULT_DURATION","VictoryAnimation","animationInfo","animating","animationTimer","loopID","ease","traverseQueue","unsubscribe","terminating","nextData","subscribe","functionToBeRunEachFrame","elapsed","ClipPath","clipId","VictoryClipContainer","clipPathComponent","componentDidMount","calculateAttributes","clipWidth","clipHeight","clipPadding","renderClippedGroup","clipComponent","renderClipComponent","groupProps","circleProps","rectProps","getClipValue","clipValues","getTranslateValue","translateValues","clipProps","Portal","PortalOutlet","portalComponent","portalContext","portalZIndex","responsive","VictoryContainer","ouiaId","ouiaSafe","ouiaType","ariaDescribedBy","ariaLabelledBy","preserveAspectRatio","titleId","descId","containerRef","localContainerRef","generatedId","getIdForElement","elName","useVictoryContainer","onWheel","handleWheel","svgProps","TSpan","getFontSize","baseSize","getSingleValue","shouldUseMultilineBackgrounds","backgroundStyle","backgroundPadding","getXCoordinate","labelSizeWidth","getYCoordinate","textHeight","originalDy","getBackgroundElement","tspanValues","textElements","textSize","totalLineHeight","prevPadding","xOffset","childDy","heightWithPadding","widthWithPadding","textElement","xCoord","widths","centerOffset","getInlineXOffset","yCoord","getChildBackgrounds","textSizes","tspan","capHeightAdjustment","getFullBackground","getTSpanDy","previousHeight","currentHeight","previousCaps","currentCaps","calculateSpanDy","getContent","getSingleStyle","getBackgroundStyles","getBackgroundPadding","getLineHeight","fontSizes","lineHeights","allHeights","getDy","defaultAngle","baseAngle","transformPart","rotatePart","textComponent","tspanComponent","VictoryLabel","capHeightPx","currentLineHeight","tspans","tspanProps","backgroundWithLabel","PortalContext","usePortalContext","PortalProvider","portalChildren","setPortalChildren","addChild","prevChildren","nextChildren","VictoryPortal","msg","standardProps","Circle","vectorEffect","lineComponent","LineSegment","square","diamond","triangleDown","triangleUp","cross","minus","star","colorScale","charcoal","baseProps","baseLabelStyles","centeredLabelStyles","palette","qualitative","heatmap","warm","cool","strokeLinejoin","boxplot","maxLabels","median","medianLabels","minLabels","q1","q1Labels","q3","q3Labels","boxWidth","candlestick","candleColors","chart","errorbar","borderWidth","histogram","legend","gutter","titleOrientation","pie","scatter","tooltip","flyoutStyle","flyoutPadding","pointerLength","voronoi","flyout","yellow200","deepOrange600","lightGreen500","teal700","cyan900","blueGrey50","blueGrey300","blueGrey700","grey900","material","polarDependentAxis","redPalette","greenPalette","bluePalette","defaultColor","VictoryTheme","clean","painterEvents","wickStrokeWidth","binSpacing","borderPadding","centerTitle","VictoryTransition","nodesShouldLoad","nodesDoneLoad","continuous","transitionTimer","shouldComponentUpdate","nextProps","bypassAnimation","getTransitionState","resumeAnimation","componentWillUnmount","parentState","oldProps","nodesWillExit","oldChildren","nodesWillEnter","childrenTransitions","nodesShouldEnter","getDomainFromChildren","getChildDomains","childDomain","childDomains","pickProps","pickDomainProps","getClipWidth","transitionProps","getDefaultClipWidth","getTransitionProps","getTransitions","newState","combinedProps","whitelist","propsToAnimate","datumHasXandY","defaultComponents","addEvents","WrappedComponent","cacheValues","getEventState","getScopedEvents","getEvents","externalMutations","getExternalMutations","calculatedState","getStateChanges","globalEvents","prevGlobalEventKeys","boundGlobalEvents","newMutation","applyExternalMutations","globalEventKeys","addGlobalListener","componentDidUpdate","prevProps","removeGlobalListener","boundListener","hasEvents","getSharedEventState","compiledCallbacks","componentEvents","getAllEvents","sharedParentState","baseParentProps","parentPropsList","parentControlledProps","parentProps","currentProps","baseEvents","defaultAnimationWhitelist","Comp","labelComponents","newMemo","validDataComponents","_dataKey","identity","getAxis","findAxisComponents","predicateFunction","findAxes","getAxisComponent","getAxisComponentsWithParent","findComponents","matchesType","getSingleOrigin","domainMin","domainMax","getOriginSign","getTickArray","ticksFromCategories","ticksFromStringMap","getStringTicks","tickArray","getTicksFromFormat","newTickArray","buildTickArray","getTickFormat","defaultTickFormat","fallbackFormat","invertedStringMap","dataTicks","getDefaultTickFormat","scaleTickFormat","tickArrayIndices","filteredTickFormat","stringTickArray","downsampleTicks","tickCount","filterZero","defaultTickCount","scaleTicks","filteredTicks","getDomainFromData","minDomain","maxDomain","tickStrings","defaultMax","initialDomain","inherentAxis","getAxisValue","scaleAxis","stringMapAxis","modifyProps","independentAxis","axisTheme","isNonEmptyArray","containsStrings","containsDates","containsOnlyStrings","difference","isArrayOfArrays","removeUndefined","getMaxValue","getMinValue","IMMUTABLE_ITERABLE","IMMUTABLE_RECORD","IMMUTABLE_LIST","isIterable","isImmutable","isRecord","shallowToJS","newCurr","isList","parseDatum","errorX","errorY","generateDataArray","sortData","dataset","formattedSortKey","cleanData","smallNumber","scaleType","rules","sanitize","addEventKeys","hasEventKeyAccessor","eventKeyAccessor","formatDataFromDomain","defaultBaseline","minDomainX","maxDomainX","minDomainY","maxDomainY","underMin","overMax","isUnderMinX","isUnderMinY","isOverMaxX","isOverMaxY","baseline","stringsFromAxes","getStringsFromAxes","stringsFromCategories","getStringsFromCategories","stringsFromData","isArrayOrIterable","accessor","sortedData","dataArr","parsedDatum","getStringsFromData","formatData","expectedKeys","defaultKeys","preformattedData","cleanedData","fallbackValues","processedValues","processedValue","formattedDatum","getCategories","xValues","yValues","generateData","tickValueArray","categoryStrings","isDataComponent","getRole","continuousTransitions","continuousPolarTransitions","adjacent","attr","discreteTransitions","getExtremeFromData","getExtreme","initialValue","containsDate","flat","current0","current1","padDomain","domainPadding","getMinFromProps","getMaxFromProps","formatPadding","getDomainPadding","rangeExtent","paddedRangeExtent","paddedDomainExtent","simplePadding","paddedDomain","singleQuadrantDomainPadding","adjust","initialPadding","adjustedDomain","finalPadding","finalDomain","getDomainFromMinMax","createDomainFunction","getDomainFromDataFunction","formatDomainFunction","getDomainFromDataFn","formatDomainFn","formatDomain","propsDomain","getDomainFromProps","categoriesArray","stringArray","categoryValues","categoryDomain","getSymmetricDomain","getDomainFromCategories","dom","almostZero","cleanDomain","datasetArray","axisKey","getFlatData","verySmallNumber","minVal","maxVal","getSinglePointDomain","getDomainWithZero","y0Min","maxDomainProp","minDomainProp","ensureZero","processedData","isDomainComponent","GLOBAL_EVENT_REGEX","getEventsByTarget","selectedEvents","targetEvents","targetKeys","getSelectedEvents","allEvents","ownEvents","getSharedEvents","childType","newBaseProps","getTargetProps","childName","baseType","parseEvent","eventReturn","childNames","getMutationObject","mutationTargetProps","mutationTargetState","childState","updateState","extendState","filterState","getReturnByChild","mutationKeys","getKeys","allChildNames","onEvent","getCallback","callbackArray","evtObj","compileCallbacks","parseEventReturn","getPartialEvents","getExternalMutationsWithChildren","keyState","keyProps","getExternalMutation","targets","filterMutations","scopedMutations","targetMutations","keyMutations","currentMutation","getComponentEvents","componentName","getGlobalEventNameFromKey","getGlobalEvents","omitGlobalEvents","emulateReactEvent","original","omit","originalObject","ks","newObject","getPoint","_voronoiX","_voronoiY","scalePoint","getPadding","paddingVal","paddingObj","isTooltip","getDefaultStyles","tooltipStyle","defaultParent","defaultLabels","evaluateProp","isFunction","evaluateStyle","degreesToRadians","radiansToDegrees","getPolarOrigin","offsetWidth","offsetHeight","getPolarRange","isNil","createAccessor","themeProps","traverseChildren","childArray","isHorizontal","defaultObject","mapValues","increment","endIndex","arrayLength","reduceChildren","initialMemo","combine","childRole","nestedChildren","nestedChildProps","nestedResults","validChildren","isValidElement","INITIAL_STATE","useAnimationState","initialState","_setState","oldState","filteredState","getFilteredState","childComponent","isContinuous","usePreviousProps","defaultPadding","polarPadding","getDegrees","getPolarPadding","getLabelPlacement","defaultLabelPlacement","getText","getPolarTextAnchor","getPolarVerticalAnchor","getPolarOrientation","getPolarAngle","getTextAnchor","getVerticalAnchor","tooltipTheme","Bump","BumpRadial","p0","pointRadial","p3","bumpX","bumpY","bumpRadial","linkSource","linkTarget","link","argv","linkHorizontal","linkVertical","linkRadial","sqrt3","draw","tan30","tan30_2","kr","kx","ky","symbolsFill","triangle","wye","symbolsStroke","times","triangle2","asterisk","square2","diamond2","Basis","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","_x3","_x4","_y3","_y4","bundle","_k","Cardinal","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","monotoneY","Natural","controlPoints","Step","stepBefore","stepAfter","series","stackValue","stackSeries","oz","sz","none","yp","yn","s2","si","sij0","s3","sk","peaks","peak","vi","vj","sums","ascending","appearance","tops","bottoms","px","i0","i1","toNewName","capitalize","getInterpolationFunction","openCurve","interpolationName","toNewNameClosed","getLineFunction","copy","transformLog","transformExp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","rescale","log10","log2","logp","powp","specifier","formatSpecifier","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","rangeRound","valueof","compareDefined","compare","sd","quantile","value0","subarray","quantileSorted","thresholds","bisect","invertExtent","quantiles","quantize","millisecond","date","setTime","ticker","tickIntervals","tickInterval","bisector","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","setFullYear","utcDate","setUTCFullYear","newDate","locale","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","parseUnixTimestampSeconds","formatDayOfMonth","getDate","formatHour24","getHours","formatHour12","formatDayOfYear","formatMilliseconds","getMilliseconds","formatMicroseconds","formatMonthNumber","getMonth","formatMinutes","getMinutes","formatSeconds","getSeconds","formatWeekdayNumberMonday","getDay","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","getFullYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","getTimezoneOffset","formatUTCDayOfMonth","getUTCDate","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","getUTCSeconds","formatUTCWeekdayNumberMonday","dow","getUTCDay","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","getUTCFullYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","utcTime","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newFormat","newParse","utcParse","formatLocale","transformer","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","piecewise","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","supportedScaleStrings","validScale","isScaleDefined","getScaleTypeFromData","axisData","getScaleFromName","getBaseScale","getScaleFromProps","getScaleFromDomain","getScaleType","getType","getScaleTypeFromProps","DUCK_TYPES","toTransformString","more","currentObj","getColorScale","scales","avg","Arial","Baskerville","Courier","cursive","fantasy","Geneva","Georgia","Helvetica","monospace","Overpass","Palatino","Seravek","serif","Tahoma","Verdana","absoluteMeasurementUnitsToPixels","mm","sm","pc","in","relativeMeasurementUnitsCoef","em","coefficients","_splitToLines","_getSizeWithRotate","axisSize","dependentSize","angleInRadian","_degreeToRadian","convertLengthToPixels","_prepareParams","_approximateTextWidthInternal","fontData","fontMatch","_getFontData","cur","_approximateDimensionsInternal","_approximateTextHeightInternal","_getMeasurementContainer","containerElement","styleToKeyComponent","_measureDimensionsInternal","cache","heightAcc","_approximateTextSizeInternal","__debugForceApproximate","approximateTextSize","taskHead","taskTail","pokeDelay","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","_next","restart","wake","timerFlush","sleep","nap","poke","subscribers","activeSubscriptions","startTime","subscriptionID","TimerContext","getDatumKey","idx","getKeyedData","keyedData","getKeyedDataDifference","hasDifference","_difference","getChildData","getInitialTransitionState","oldChild","newChild","entering","exiting","oldData","oldDataKeyed","nextDataKeyed","getNodeTransitions","getTransitionsFromChildren","old","getTransitionPropsFactory","transitionDurations","exit","cb","newAnimate","getChildOnLoad","getChildBeforeLoad","exitingNodes","getChildPropsOnExit","enteringNodes","getChildPropsOnEnter","getChildPropsBeforeEnter","getChildTransitionDuration","defaultTransitions","defaultPolarTransitions","animationDuration","childTransitions","getInitialChildProps","USER_PROPS_SAFELIST","exactMatch","testIfSafeProp","starterString","doesPropStartWith","isExactMatch","assert","getSafeUserProps","propsToFilter","fromEntries","withSafeUserProps","getDataFromChildren","someChildrenAreHistograms","allChildrenAreHistograms","childBins","bins","combinedData","xAccessor","getFormattedHistogramData","getFormattedData","addBinsToParentPropsIfHistogram","datasets","childData","childElement","_stack","_group","getWidth","groupLength","seriesLength","seriesLengthValue","dataLength","nestedChild","getDefaultDomainPadding","dataDomain","parentData","childScale","getChildStyle","childStyle","defaultFill","getColor","dataWidth","dataStyle","labelsStyle","getCategoryAndAxisStringsFromChildren","axisStrings","getStringsFromChildrenCategories","getStringsFromChildren","xStrings","yStrings","dataStrings","xName","yName","xPropCategories","yPropCategories","xCategories","yCategories","getLabelStyles","getColumn","itemsPerRow","getRow","groupData","labelStyles","symbolSpacer","column","getColumnWidths","gutterWidth","dataByColumn","lengths","getRowHeights","rowGutter","gutterHeight","dataByRow","getTitleDimensions","getTitleProps","borderProps","titleComponent","componentStyle","standardAnchors","getTitleStyle","yOrientation","standardPadding","getDimensions","groupedData","columnWidths","rowHeights","titleDimensions","titleOffset","gutterOffset","contentHeight","contentWidth","getBorderProps","titleProps","Border","defaultLegendData","VictoryLegendBase","borderComponent","renderChildren","dataComponents","comp","VictoryLegend","Curve","VictoryLineBase","VictoryLine","getDataSortedByCategories","sorted","getCategoriesFromProps","category","defaultRadius","slices","layoutFunction","getSlices","getSliceStyle","getLabelText","checkForValidText","getLabelProps","labelPosition","calculatedLabelRadius","getCalculatedLabelRadius","labelArc","getLabelArc","clonedArc","centroid","getLabelPosition","getBaseLabelAngle","getLabelAngle","degree","getLabelOrientation","getXOffset","getXOffsetMultiplayerByAngle","getYOffset","getYOffsetMultiplayerByAngle","getAverage","labelIndicator","evaluatedText","labelIndicators","labelIndicatorInnerOffset","labelIndicatorOuterOffset","middleRadius","midAngle","centerX","centerY","innerOffset","outerOffset","labelIndicatorProps","getLabelIndicatorPropsForLineSegment","sliceStartAngle","sliceEndAngle","Slice","VictoryPieBase","y_","renderComponents","showIndicator","labelIndicatorComponent","labelIndicatorComponents","VictoryPie","getSymbol","bubbleProperty","getSize","maxBubbleSize","minBubbleSize","zData","zMin","zMax","maxRadius","minPadding","getMaxRadius","minRadius","maxArea","minArea","pointArea","getBubbleSize","VictoryScatterBase","VictoryScatter","VictorySharedEvents","sharedEventsCache","cacheSharedEvents","getCachedSharedEvents","prevCacheValues","childBaseProps","getBasePropsFromChildren","parentBaseProps","getNewChildren","alterChildren","childEvents","sharedEventsCacheValues","evts","getContainer","parents","boundGetEvents","parentEvents","containerEvents","localEvents","addLayoutData","firstDatasetBaseline","previousPoints","previousDatum","getY0","stackData","dataFromChildren","filledDatasets","fillInMissingData","xMap","xKeys","xArr","indexOffset","parsedX","fillData","useMemoizedProps","modifiedChildren","_child","withoutSharedEvents","setProps","colorScaleOptions","getLabels","VictoryStackBase","VictoryStack","componentConfig","getFlyoutPath","pointerWidth","pointerEdge","oppositeEdge","bottomEdge","topEdge","getHorizontalPath","rightEdge","leftEdge","getVerticalPath","Flyout","flyoutPathProps","VictoryTooltip","flyoutComponent","activate","activateData","deactivate","onMouseOver","onMouseOut","onTouchEnd","getDefaultOrientation","placement","getVerticalOrientations","defaultLabelStyles","baseLabelStyle","defaultFlyoutStyles","baseFlyoutStyle","getEvaluatedProps","flyoutHeight","flyoutWidth","evaluatedProps","flyoutDimensions","flyoutCenter","getFlyoutCenter","getDefaultAngle","constrainTooltip","flyoutExtent","constrainToVisibleArea","xSign","ySign","centerWithOffset","paddings","calculatedHeight","calculatedWidth","minWidth","activePoints","getLabelX","getPointerOrientation","edges","gaps","getFlyoutProps","pointerOrientation","renderTooltip","getDeps","initialDeps","depTime","newDeps","dep","resultTime","depEndTime","resultEndTime","resultFpsPercentage","notUndefined","targetWindow","defaultKeyExtractor","defaultRangeExtractor","overscan","observeElementRect","scrollElement","borderBoxSize","inlineSize","blockSize","addEventListenerOptions","supportsScrollend","observeElementOffset","isScrollingResetDelay","isScrolling","endHandler","measureElement","elementScroll","Virtualizer","unsubs","scrollToIndexTimeoutId","measurementsCache","itemSizeCache","pendingMeasuredCacheIndexes","scrollRect","scrollOffset","scrollAdjustments","elementsCache","_ro","_measureElement","setOptions","opts2","initialOffset","paddingStart","paddingEnd","scrollPaddingStart","scrollPaddingEnd","getItemKey","rangeExtractor","scrollMargin","gap","indexAttribute","initialMeasurementsCache","lanes","notify","force","calculateRange","_didMount","_willUpdate","getScrollElement","_scrollToOffset","prevIsScrolling","getFurthestMeasurement","measurements","furthestMeasurementsFound","furthestMeasurements","lane","previousFurthestMeasurement","getMeasurementOptions","getMeasurements","measureElement2","key2","prevNode","resizeItem","furthestMeasurement","measuredSize","estimateSize","outerSize","findNearestBinarySearch","getIndexes","indexFromElement","attributeName","indexStr","cached","shouldAdjustScrollPositionOnItemSizeChange","getVirtualItems","indexes","virtualItems","getVirtualItemForOffset","getOffsetForAlignment","scrollSizeProp","maxOffset","getOffsetForIndex","isDynamicMode","cancelScrollToIndex","scrollToOffset","scrollToIndex","initialAlign","offsetAndAlign","latestOffset","getTotalSize","scrollToFn","getCurrentValue","useVirtualizerBase","rerender","resolvedOptions","instance2","flushSync","Open","Closed","Single","Multi","Focus","Other","Ye","OpenCombobox","CloseCombobox","GoToOption","RegisterOption","UnregisterOption","RegisterLabel","SetActivationTrigger","UpdateVirtualOptions","activeOptionIndex","domRef","Qe","comboboxState","calculateIndex","optionsRef","optionsPropsRef","virtual","Specific","resolveItems","resolveActiveIndex","resolveDisabled","resolveId","trigger","activationTrigger","isSelected","__demoMode","labelId","captureStackTrace","paddingBlockStart","paddingBlockEnd","JEST_WORKER_ID","overflowAnchor","RenderStrategy","Static","by","nullable","multiple","hold","labelRef","inputRef","buttonRef","isActive","closeCombobox","activeOption","goToOption","G","Re","registerOption","registerLabel","openCombobox","setActivationTrigger","selectActiveOption","Ae","Se","features","Hidden","closest","hidden","readOnly","ourProps","theirProps","slot","defaultTag","mt","ArrowDown","nextFrame","preventScroll","ArrowUp","Last","Escape","currentTarget","onClick","Tt","displayValue","Nothing","selectionStart","selectionDirection","Next","Previous","Home","shiftKey","First","PageUp","End","PageDown","Tab","relatedTarget","onCompositionStart","onCompositionEnd","NodeFilter","FILTER_REJECT","FILTER_SKIP","FILTER_ACCEPT","walk","visible","vt","dispose","wasMoved","onPointerEnter","onMouseEnter","onPointerMove","onMouseMove","onPointerLeave","onMouseLeave","qt","Input","Button","Label","Options","Option","cloneNode","OpenMenu","CloseMenu","GoToItem","Search","ClearSearch","RegisterItem","UnregisterItem","activeItemIndex","menuState","searchQuery","textValue","searchActiveItemIndex","Ie","itemsRef","Loose","onKeyUp","Items","Item","propsRef","ke","Empty","Active","ArrowLeft","WrapAround","Success","ArrowRight","firstOption","containsCheckedOption","change","addFlag","removeFlag","hasFlag","Description","removeAttribute","enterTo","leaveTo","enterFrom","leaveFrom","entered","transitionDuration","transitionDelay","Visible","Unmount","microTask","chains","register","unregister","onStop","appear","unmount","beforeEnter","beforeLeave","afterEnter","afterLeave","Opening","Closing","classes","Child","Root","toggleFlag","getRootNode","composed","composedPath","HTMLIFrameElement","screenX","screenY","acceptNode","createTreeWalker","SHOW_ELEMENT","nextNode","currentNode","NoScroll","Overflow","Underflow","Strict","Keyboard","Mouse","metaKey","altKey","ctrlKey","headlessuiFocusVisible","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","relativeTo","skipElements","isServer","platform","maxTouchPoints","ForwardRef","svgRef","fillRule","clipRule","composeRefs","useComposedRefs","composeContextScopes","scopes","baseScope","createScope","scopeHooks","createScope2","useScope","scopeName","overrideScopes","nextScopes","nextScopes2","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","useCallbackRef","callbackRef","useControllableState","defaultProp","uncontrolledProp","setUncontrolledProp","uncontrolledState","prevValueRef","useUncontrolledState","nextValue","value2","Presence","present","presence","setNode","stylesRef","prevPresentRef","prevAnimationNameRef","machine","useStateMachine","UNMOUNT","ANIMATION_OUT","unmountSuspended","MOUNT","ANIMATION_END","unmounted","currentAnimationName","getAnimationName","wasPresent","prevAnimationName","handleAnimationEnd","isCurrentAnimation","animationName","handleAnimationStart","isPresent","node2","usePresence","only","mayWarn","isReactWarning","getElementRef","Slot","forwardedRef","slotProps","childrenArray","slottable","isSlottable","jsx","SlotClone","childrenRef","mergeProps","Slottable","Fragment","overrideProps","propName","slotPropValue","childPropValue","Primitive","primitive","asChild","primitiveProps","CHECKBOX_NAME","createCheckboxContext","createCheckboxScope","createContextScopeDeps","defaultContexts","scopeContexts","defaultContext","scope","contexts","rootComponentName","BaseContext","consumerName","createContextScope","CheckboxProvider","useCheckboxContext","Checkbox","__scopeCheckbox","checkedProp","defaultChecked","onCheckedChange","checkboxProps","setButton","composedRefs","hasConsumerStoppedPropagationRef","isFormControl","setChecked","initialCheckedStateRef","jsxs","isIndeterminate","prevChecked","isPropagationStopped","BubbleInput","control","INDICATOR_NAME","CheckboxIndicator","forceMount","indicatorProps","inputProps","controlSize","inputProto","HTMLInputElement","Event","indeterminate","Indicator","$9f79659886946c16$export$e5c5a5f917a5871c","$409067139f391064$var$COLLAPSIBLE_NAME","$409067139f391064$var$createCollapsibleContext","$409067139f391064$export$952b32dcbe73087a","$409067139f391064$var$CollapsibleProvider","$409067139f391064$var$useCollapsibleContext","$409067139f391064$export$6eb0f7ddcda6131f","__scopeCollapsible","openProp","defaultOpen","onOpenChange","collapsibleProps","setOpen","contentId","onOpenToggle","prevOpen","$409067139f391064$var$getState","$409067139f391064$var$TRIGGER_NAME","$409067139f391064$export$c135dce7b15bbbdc","triggerProps","$409067139f391064$var$CONTENT_NAME","$409067139f391064$export$aadde00976f34151","contentProps","$409067139f391064$var$CollapsibleContentImpl","setIsPresent","widthRef","isOpen","isMountAnimationPreventedRef","originalStylesRef","rAF","$409067139f391064$export$be92b6f5f03c0fe9","$409067139f391064$export$41fb9f06171c75f4","$409067139f391064$export$7c6e2c02157bb7d2","hasCleanup","cleanups","DirectionContext","PAGE_KEYS","ARROW_KEYS","BACK_KEYS","SLIDER_NAME","useCollection","createCollectionScope","PROVIDER_NAME","createCollectionContext","CollectionProviderImpl","useCollectionContext","collectionRef","itemMap","CollectionProvider","COLLECTION_SLOT_NAME","CollectionSlot","ITEM_SLOT_NAME","ITEM_DATA_ATTR","CollectionItemSlot","itemData","ItemSlot","collectionNode","orderedNodes","createCollection","createSliderContext","createSliderScope","SliderProvider","useSliderContext","Slider","minStepsBetweenThumbs","onValueChange","onValueCommit","inverted","sliderProps","thumbRefs","valueIndexToChangeRef","SliderOrientation","SliderHorizontal","SliderVertical","setValues","thumbs","valuesBeforeSlideStartRef","updateValues","atIndex","commit","decimalCount","getDecimalCount","snapToStep","rounder","roundValue","prevValues","nextValues","getNextSortedValues","minStepsBetweenValues","stepsBetweenValues","getStepsBetweenValues","hasMinStepsBetweenValues","hasChanged","__scopeSlider","onPointerDown","onSlideStart","closestIndex","closestDistance","getClosestValueIndex","onSlideMove","onSlideEnd","prevValue","onHomeKeyDown","onEndKeyDown","onStepKeyDown","stepDirection","multiplier","SliderOrientationProvider","useSliderOrientationContext","startEdge","endEdge","dir","slider","setSlider","rectRef","localDir","globalDir","useDirection","isDirectionLTR","isSlidingFromLeft","getValueFromPointer","pointerPosition","linearScale","SliderImpl","isBackKey","sliderRef","isSlidingFromBottom","setPointerCapture","pointerId","hasPointerCapture","onPointerUp","releasePointerCapture","TRACK_NAME","SliderTrack","trackProps","RANGE_NAME","SliderRange","rangeProps","valuesCount","percentages","convertValueToPercentage","offsetStart","offsetEnd","THUMB_NAME","SliderThumb","getItems","thumb","setThumb","SliderThumbImpl","thumbProps","totalValues","getLabel","orientationSize","thumbInBoundsOffset","halfWidth","getThumbInBoundsOffset","Track","Range","Thumb","ascendingBisect","bisectRight","descending","compare1","compare2","lo","hi","mid","e10","e5","e2","tickSpec","power","factor","i2","tickIncrement","tickStep","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color_formatHex","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","channels","displayable","formatHex8","formatHsl","prefixExponent","formatDecimal","coefficient","toExponential","toPrecision","formatRounded","formatPrefix","prefixes","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","nan","comma","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","formatDecimalParts","FormatSpecifier","nogamma","exponential","basis","v1","v2","v3","rgbGamma","rgbSpline","spline","genericArray","nb","na","reA","reB","am","bm","bs","one","band","ordinal","ordinalRange","pointish","bimap","d0","d1","polymap","untransform","initRange","initInterpolator","linearish","prestep","maxIter","InternMap","keyof","_intern","intern_get","intern_set","intern_delete","implicit","precisionPrefix","precisionRound","precisionFixed","timeDay","setHours","setDate","utcDay","setUTCHours","setUTCDate","unixDay","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeHour","utcHour","setUTCMinutes","timeInterval","floori","offseti","field","timeMinute","utcMinute","setUTCSeconds","timeMonth","setMonth","utcMonth","setUTCMonth","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeYear","utcYear","years","weeks","hours","minutes","seconds","_date","dateWithMonths","dateWithDays","msToAdd","differenceInDays","dateLeft","dateRight","_dateLeft","_dateRight","compareLocalAsc","subDays","amount","objectConstructor","enumerableOnly","sym","_defineProperty","_slicedToArray","_arrayWithHoles","_s","_iterableToArrayLimit","_nonIterableRest","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","getOwnPropertyDescriptors","_objectSpread","defaultCountry","MIN_LENGTH_FOR_NSN","MAX_LENGTH_FOR_NSN","MAX_LENGTH_COUNTRY_CODE","VALID_DIGITS","VALID_PUNCTUATION","_wrapNativeSuper","Class","_cache","_construct","Parent","ParseError","_Error","pa","pb","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","countries","typeOf","validateMetadata","setVersion","countryCode","nonGeographic","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","_type2","Type","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","v4","getExtensionDigitsPattern","createExtensionPattern","purpose","possibleSeparatorsBetweenNumberAndExtLabel","possibleCharsAfterExtLabel","optionalExtnSuffix","possibleSeparatorsNumberExtLabelNoComma","MIN_LENGTH_PHONE_NUMBER_PATTERN","VALID_PHONE_NUMBER","VALID_PHONE_NUMBER_START_REG_EXP","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","EXTN_PATTERN","DIGITS","parseDigit","character","parseIncompletePhoneNumber","parsePhoneNumberCharacter","prevParsedCharacters","emitEvent","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","getPossibleCountriesForNumber","possibleCountries","_metadata","couldNationalNumberBelongToCountry","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","formattedNumber","carrierCode","internationalFormat","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","addExtension","formatNationalNumber","formatRFC3966","fromCountry","fromCountryCallingCode","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","countryOrCountryCallingCode","_getCountryAndCountry","metadataJson","isCountryCode","getCountryAndCountryCallingCode","getMetadata","isNonGeographicCallingCode","phoneNumber","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumberBefore","nationalNumberAfter","shouldHaveExtractedNationalPrefix","isPossibleIncompleteNationalNumber","extractCountryCallingCode","isNumberWithIddPrefix","numberWithoutIDD","IDDPrefixPattern","matchedGroups","stripIddPrefix","_extractCountryCallin","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","countryCallingCodeSource","_countryCallingCode","getCountryByCallingCode","nationalPhoneNumber","getCountryByNationalNumber","PLUS_SIGN","RFC3966_PHONE_DIGIT_","RFC3966_GLOBAL_NUMBER_DIGITS_PATTERN_","RFC3966_DOMAINNAME_PATTERN_","RFC3966_PREFIX_","RFC3966_PHONE_CONTEXT_","RFC3966_ISDN_SUBADDRESS_","extractFormattedPhoneNumberFromPossibleRfc3966NumberUri","numberToParse","phoneNumberString","extractFormattedPhoneNumber","phoneContext","numberToExtractFrom","indexOfPhoneContext","phoneContextStart","phoneContextEnd","extractPhoneContext","isPhoneContextValid","indexOfNationalNumber","indexOfRfc3966Prefix","indexOfIsdn","MAX_INPUT_STRING_LENGTH","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","_parseInput","extract","throwOnError","startsAt","_extractFormattedPhoneNumber","isViablePhoneNumberStart","withExtensionStripped","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","__countryCallingCodeSource","valid","extended","possible","isSupportedCountry","parsePhoneNumberWithError","isPossiblePhoneNumber","_normalizeArguments","isPossible","withMetadataArgument","isValidPhoneNumber","isValid","_arguments","isCheckBoxInput","isDateObject","isNullOrUndefined","isObjectType","getEventValue","isNameInFieldArray","getNodeParentName","isPlainObject","tempObject","prototypeCopy","isWeb","cloneObject","isFileListInstance","compact","isUndefined","isBoolean","isKey","stringToPath","tempPath","EVENTS","BLUR","FOCUS_OUT","CHANGE","VALIDATION_MODE","onSubmit","onTouched","INPUT_VALIDATION_RULES","HookFormContext","useFormContext","getProxyFormState","formState","localProxyFormState","isRoot","defaultValues","_defaultValues","_proxyFormState","isEmptyObject","shouldRenderFormState","formStateData","updateFormState","convertToArrayPayload","shouldSubscribeByName","signalName","exact","currentName","useSubscribe","_props","subscription","subject","isString","generateWatchOutput","_names","formValues","isGlobal","watch","fieldName","watchAll","useController","shouldUnregister","isArrayField","_name","_subjects","updateValue","_formValues","_getWatch","_removeUnmounted","useWatch","_formState","_mounted","_localProxyFormState","isDirty","isLoading","dirtyFields","touchedFields","validatingFields","isValidating","errors","_updateFormState","_updateValid","useFormState","_registerProps","fieldState","invalid","isTouched","elm","_fields","setCustomValidity","reportValidity","_shouldUnregisterField","_options","updateMounted","mount","_updateDisabledField","Controller","appendErrors","validateAllFieldCriteria","getValidationModes","isOnSubmit","isOnBlur","isOnChange","isOnAll","isOnTouch","isWatched","isBlurEvent","watchName","iterateFieldsByAction","fieldsNames","abortEarly","currentField","updateFieldArrayRootError","fieldArrayErrors","isFileInput","owner","isMessage","isRadioInput","isRegex","defaultResult","validResult","getCheckboxValue","defaultReturn","getRadioValue","getValidateError","getValueAndMessage","validationData","validateField","disabledFieldNames","shouldUseNativeValidation","isFieldArray","minLength","validate","valueAsNumber","inputValue","isRadio","isCheckBox","isRadioOrCheckbox","isEmpty","appendErrorsCurry","getMinMaxMessage","exceedMax","maxLengthMessage","minLengthMessage","maxType","minType","exceedMin","maxOutput","minOutput","valueDate","valueAsDate","convertTimeToDate","toDateString","isTime","isWeek","valueNumber","maxLengthOutput","minLengthOutput","patternValue","validateError","validationResult","unset","childObject","updatePath","isEmptyArray","createSubject","_observers","observers","isPrimitive","deepEqual","object1","object2","keys1","keys2","val1","val2","isMultipleSelect","live","objectHasFunction","markFieldsDirty","isParentNodeArray","getDirtyFieldsFromDefaultValues","dirtyFieldsFromValues","getDirtyFields","getFieldValueAs","setValueAs","getFieldValue","selectedOptions","getResolverOptions","criteriaMode","getRuleValue","rule","ASYNC_FUNCTION","hasPromiseValidation","fieldReference","validateFunction","hasValidation","schemaErrorLookup","foundError","skipValidation","isSubmitted","reValidateMode","unsetEmptyArray","shouldFocusError","createFormControl","delayErrorCallback","submitCount","isSubmitting","isSubmitSuccessful","unMount","validationModeBeforeSubmit","validationModeAfterSubmit","shouldDisplayAllAssociatedErrors","shouldUpdateValid","resolver","_executeSchema","executeBuiltInValidation","_updateIsValidating","updateValidAndValue","shouldSkipSetValueAs","setFieldValue","updateTouchAndDirty","fieldValue","shouldDirty","shouldUpdateField","isPreviousDirty","disabledField","_getDirty","isCurrentFieldPristine","isPreviousFieldTouched","shouldRenderByError","previousFieldError","delayError","updateErrors","updatedFormState","shouldOnlyCheckValid","isFieldArrayRoot","isPromiseFunction","fieldError","getValues","optionRef","checkboxRef","radioRef","shouldTouch","shouldValidate","fieldKey","cloneValue","isFieldValueUpdated","_updateIsFieldValueUpdated","shouldSkipValidation","watched","previousErrorLookupResult","errorLookupResult","_focusInput","fieldNames","executeSchemaAndUpdateState","shouldFocus","getFieldState","setError","currentError","currentRef","restOfErrorTree","keepValue","keepError","keepDirty","keepTouched","keepIsValidating","keepDefaultValue","keepIsValid","disabledIsDefined","progressive","fieldRef","radioOrCheckbox","_focusError","handleSubmit","onValid","onInvalid","onValidError","persist","fieldValues","_reset","keepStateOptions","updatedValues","cloneUpdatedValues","isEmptyResetValues","keepDefaultValues","keepValues","keepDirtyValues","fieldsToCheck","keepSubmitCount","keepIsSubmitted","keepErrors","keepIsSubmitSuccessful","_updateFieldArray","shouldSetValues","shouldUpdateFieldsAndState","argA","argB","_getFieldArray","_resetDefaultValues","resetOptions","_disableForm","_setErrors","resetField","clearErrors","setFocus","shouldSelect","useForm","_formControl","_values","addPrefix","rawClassNames","insertDialCodeOnEmpty","trimNonDigitsEnd","charAfterDialCode","forceDialCode","disableDialCodeAndPrefix","defaultMask","countryGuessingEnabled","disableFormatting","dialCode","currentCountryIso2","iso2","phoneLeftSide","phoneRightSide","mask","maskSymbol","trimNonMaskCharsLeftover","maskChar","fullDialCodeMatch","phoneBeforeInput","toLocaleLowerCase","cursorPosition","phoneAfterInput","phoneAfterFormatted","cursorPositionAfterInput","deletion","overrideLastItemDebounceMS","ge","overrideLastItem","historySaveDebounceMS","disableCountryGuess","disableDialCodePrefill","setCountry","focusOnInput","handlePhoneValueChange","areaCodes","disableLazyLoading","loading","dialCodePrefix","selectedCountry","preferredCountries","onSelect","onClose","updatedAt","listItemClassName","listItemStyle","listItemFlagClassName","listItemFlagStyle","listItemCountryNameClassName","listItemCountryNameStyle","listItemDialCodeClassName","listItemDialCodeStyle","preferredListDividerClassName","preferredListDividerStyle","hideDropdown","renderButtonWrapper","buttonContentWrapperClassName","buttonContentWrapperStyle","flagClassName","flagStyle","dropdownArrowClassName","dropdownArrowStyle","rootProps","buttonClassName","buttonStyle","dropdownStyleProps","showDisabledDialCodeAndPrefix","disableFocusAfterCountrySelect","inputClassName","countrySelectorStyleProps","dialCodePreviewStyleProps","autoFocus","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","__objRest","exclude","createIcon","iconConfig","bgStyle","iconFillColor","networkName","objectToGetParams","isPromise","getBoxPositionOnWindowCenter","outerWidth","screenLeft","outerHeight","screenTop","getBoxPositionOnScreenCenter","screen","ShareButton","beforeOnClick","disabledStyle","htmlTitle","networkLink","onShareWindowClose","openShareDialogOnClick","resetButtonStyle","windowHeight","windowPosition","windowWidth","newClassName","newStyle","font","returnVal","configRest","toolbar","directories","menubar","scrollbars","resizable","centerscreen","shareDialog","closed","windowOpen","createShareButton","optsMap","CreatedButton","passedProps","EmailShareButton$1","appId","redirectUri","redirect_uri","app_id","AssertionError","FacebookShareButton$1","hashtag","SocialMediaShareCount","shareCount","getCount","isMounted","useIsMounted","setCount","setIsLoading","count2","createShareCount","ShareCount","shareUrl","og_object","engagement","description","LinkedinShareButton$1","summary","mini","image_url","OK","Share","index2","_count","ODKL","updateCount","callbackIndex","media","pinId","score","caption","tags","posttype","canonicalUrl","note_count","TwitterShareButton$1","via","hashtags","related","noParse","noVkLinks","noparse","no_vk_links","VK","act","pic","quote","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","cornerTangents","rc","ox","oy","x11","y11","x10","y10","x00","y00","d2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","oc","x3","y3","x32","y32","intersect","ax","ay","bx","kc","lc","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","_curve","curveRadialLinear","curveRadial","Radial","lineRadial","strings","digits","_append","appendRound","withPath","sortValues","arcs"],"sourceRoot":""}