{"version":3,"sources":["../node_modules/react/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../../src/apiModels/MenuItemApiModel.ts","../../src/apiModels/ValidationApiModel.ts","../../src/enums/PermissionFlags.ts","../../src/enums/Severity.ts","../../src/helpers/NumberHelpers.ts","../../src/helpers/logic.ts","../../src/components/Financial.tsx","../../src/components/Unsafe.tsx","../../src/components/Icon.tsx","../../src/components/IconButton.tsx","../../src/helpers/Guid.ts","../../src/components/Modal.tsx","../../src/components/ValidationSummary.tsx","../../src/helpers/apiHelpers/ApiResponse.ts","../../src/helpers/apiHelpers/ApiErrorHandler.ts","../../src/helpers/apiHelpers/ApiRequest.ts","../../src/helpers/apiHelpers/Api.ts","../../src/helpers/ArrayHelpers.ts","../../src/helpers/DateHelpers.ts","../../src/helpers/DelimiterHelper.ts","../../src/helpers/ImageDataHelper.ts","../../src/helpers/Permissions.ts","../../src/helpers/Resources.tsx","../../src/enums/Filter.ts","../../src/helpers/StringHelpers.ts","../../src/helpers/Validator.tsx","../../src/enums/TextFilterOption.ts","../../src/components/gridview/Pager.tsx","../../src/components/DatePicker.tsx","../../src/filters/date/DateFilterComponent.tsx","../../src/filters/date/DateFilter.tsx","../../src/components/Checkbox.tsx","../../src/filters/bool/BoolFilterComponent.tsx","../../src/filters/bool/BoolFilter.tsx","../../src/filters/number/NumberFilterComponent.tsx","../../src/filters/number/NumberFilter.tsx","../../src/filters/text/TextFilterComponent.tsx","../../src/filters/text/TextFilter.tsx","../../src/components/Input.tsx","../../src/components/gridview/GridView.tsx","../../src/components/ToggleSwitch.tsx","../../src/components/sidemenu/SideMenuItem.tsx","../../src/components/sidemenu/SideMenuSubItem.tsx","../../src/components/sidemenu/SideMenu.tsx","../../src/components/AutoComplete.tsx","../../src/apiModels/AutoCompleteResult.ts","../../src/components/ColourPicker.tsx","../../src/components/ConfirmModal.tsx","../../src/components/Dropzone.tsx","../../src/apiModels/FileExtensionApiModel.ts","../../src/components/ExpandingPanel.tsx","../../src/components/FinancialInput.tsx","../../src/components/LoadingIndicator.tsx","../../src/apiModels/OmniBoxResultApiModel.ts","../../src/components/RioOmnibox.tsx","../../src/components/help/RioHelpButton.tsx","../../src/components/help/RioHelpDialog.tsx","../../src/components/QRCodeReader.tsx","../../src/components/Select.tsx","../../src/components/StatusIcon.tsx","../../src/components/TextArea.tsx","../../src/components/tree/TreeNode.tsx","../../src/components/tree/Tree.tsx","../../src/components/UserDropDownMenu.tsx","../../src/apiModels/audit/RioAuditApiModel.ts","../../src/constants/RioAuditContext.ts","../../src/components/audit/RioAuditButton.tsx","../../src/apiModels/audit/RioAuditContextModel.ts","../../src/apiModels/audit/RioAuditSearchEntityApiModel.ts","../../src/components/audit/RioAuditedComponent.tsx","../../src/components/pageheading/PageHeading.tsx","../../src/components/pageheading/Page.tsx","../../src/components/audit/RioAuditViewer.tsx","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/Prompt.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../../../src/core/NotFoundException.ts","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/isValid/index.js","../../../src/core/IllegalArgumentException.ts","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/addDays/index.js","../../../src/core/BarcodeFormat.ts","../../../src/core/ResultPoint.ts","../node_modules/connected-react-router/esm/actions.js","../node_modules/date-fns/esm/startOfISOWeek/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../../../src/core/DecodeHintType.ts","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../../../src/core/FormatException.ts","../node_modules/date-fns/esm/getISOWeekYear/index.js","../node_modules/date-fns/esm/startOfISOWeekYear/index.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../src/core/Exception.ts","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../../../core/util/System.ts","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../../../core/common/BitMatrix.ts","../../../src/core/Result.ts","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../../../core/oned/OneDReader.ts","../node_modules/lodash/_root.js","../node_modules/lodash/isArray.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfQuarter/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/invariant/browser.js","../../../core/util/StringBuilder.ts","../../../src/core/ChecksumException.ts","../../../../../src/core/common/detector/MathUtils.ts","../../../src/core/ResultMetadataType.ts","../node_modules/lodash/_getNative.js","../node_modules/react-dom/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/moment/moment.js","../node_modules/redux/es/redux.js","../../../core/common/BitArray.ts","../../../../../src/core/common/reedsolomon/GenericGF.ts","../node_modules/date-fns/esm/getQuarter/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../../../src/browser/BrowserCodeReader.ts","../../../src/core/InvertedLuminanceSource.ts","../../../src/core/LuminanceSource.ts","../../../src/core/IllegalStateException.ts","../../../core/common/CharacterSetECI.ts","../../../core/oned/UPCEANReader.ts","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/min/index.js","../node_modules/date-fns/esm/max/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/getISOWeek/index.js","../node_modules/date-fns/esm/getTime/index.js","../node_modules/date-fns/esm/subMonths/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameQuarter/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/components/connectAdvanced.js","../node_modules/react-redux/es/utils/shallowEqual.js","../node_modules/react-redux/es/connect/wrapMapToProps.js","../node_modules/react-redux/es/connect/mapDispatchToProps.js","../node_modules/react-redux/es/connect/mapStateToProps.js","../node_modules/react-redux/es/connect/mergeProps.js","../node_modules/react-redux/es/connect/selectorFactory.js","../node_modules/react-redux/es/connect/connect.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/index.js","../node_modules/webpack/buildin/global.js","../node_modules/webpack/buildin/module.js","../../../core/util/Integer.ts","../../../../../src/core/common/reedsolomon/GenericGFPoly.ts","../../../../../src/core/qrcode/decoder/ErrorCorrectionLevel.ts","../../../src/core/EncodeHintType.ts","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/react-is/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/connected-react-router/esm/selectors.js","../node_modules/connected-react-router/esm/ConnectedRouter.js","../node_modules/connected-react-router/esm/reducer.js","../node_modules/connected-react-router/esm/structure/plain/index.js","../node_modules/connected-react-router/esm/structure/plain/getIn.js","../node_modules/connected-react-router/esm/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/setQuarter/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/subHours/index.js","../node_modules/date-fns/esm/subMinutes/index.js","../node_modules/date-fns/esm/subWeeks/index.js","../node_modules/date-fns/esm/subYears/index.js","../../../src/core/UnsupportedOperationException.ts","../../../core/util/Arrays.ts","../../../src/core/ArgumentException.ts","../../../core/qrcode/QRCodeReader.ts","../../../../../src/core/common/reedsolomon/ReedSolomonDecoder.ts","../../../../../src/core/qrcode/decoder/Version.ts","../../../core/common/BitSource.ts","../../../core/common/DecoderResult.ts","../../../core/util/StringEncoding.ts","../../../core/common/DetectorResult.ts","../../../core/common/GridSamplerInstance.ts","../../../core/common/PerspectiveTransform.ts","../../../core/datamatrix/DataMatrixReader.ts","../../../../../src/core/qrcode/encoder/Encoder.ts","../../../../../src/core/qrcode/encoder/QRCode.ts","../../../src/core/WriterException.ts","../../../core/oned/MultiFormatOneDReader.ts","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/keys.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/classnames/index.js","../node_modules/chart.js/dist/Chart.js","../node_modules/symbol-observable/es/index.js","../node_modules/path-to-regexp/index.js","../node_modules/object-assign/index.js","../node_modules/connected-react-router/esm/middleware.js","../../src/index.ts","../../../src/browser/HTMLCanvasElementLuminanceSource.ts","../../../src/browser/VideoInputDevice.ts","../../../src/core/BinaryBitmap.ts","../../../core/common/HybridBinarizer.ts","../../../core/common/GlobalHistogramBinarizer.ts","../../../src/core/Binarizer.ts","../../../src/core/ArithmeticException.ts","../../../src/core/ReedSolomonException.ts","../../../../../src/core/qrcode/decoder/FormatInformation.ts","../../../../../src/core/qrcode/decoder/QRCodeDecoderMetaData.ts","../../../core/common/StringUtils.ts","../../../../../src/core/qrcode/decoder/Mode.ts","../../../core/common/DefaultGridSampler.ts","../../../core/common/GridSampler.ts","../../../../../src/core/common/detector/WhiteRectangleDetector.ts","../../../../../src/core/common/reedsolomon/ReedSolomonEncoder.ts","../../../../../src/core/qrcode/encoder/MaskUtil.ts","../../../core/oned/Code39Reader.ts","../../../core/oned/Code128Reader.ts","../../../../../src/core/oned/rss/RSS14Reader.ts","../../../../../src/core/oned/rss/DataCharacter.ts","../../../core/oned/ITFReader.ts","../../../core/oned/EAN13Reader.ts","../../../src/core/MultiFormatReader.ts","../../../src/core/ReaderException.ts","../../../core/qrcode/QRCodeWriter.ts","../node_modules/lodash/_Stack.js","../node_modules/lodash/eq.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_castPath.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/redux-thunk/es/index.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-fast-compare/index.js","../node_modules/warning/warning.js","../node_modules/react-chartjs-2/es/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/isarray/index.js","../node_modules/rio.react.all/node_modules/moment/moment.js","../node_modules/react-datepicker/dist/react-datepicker.min.js","../node_modules/react-onclickoutside/dist/react-onclickoutside.es.js","../../../src/browser/BrowserQRCodeReader.ts","../index.ts(original)","../../../core/util/Float.ts","../../../../../src/core/qrcode/decoder/Decoder.ts","../../../../../src/core/qrcode/decoder/BitMatrixParser.ts","../../../../../src/core/qrcode/decoder/ECBlocks.ts","../../../../../src/core/qrcode/decoder/ECB.ts","../../../../../src/core/qrcode/decoder/DataMask.ts","../../../../../src/core/qrcode/decoder/DataBlock.ts","../../../../../src/core/qrcode/decoder/DecodedBitStreamParser.ts","../../../../../src/core/qrcode/detector/Detector.ts","../../../../../src/core/qrcode/detector/FinderPatternFinder.ts","../../../../../src/core/qrcode/detector/FinderPattern.ts","../../../../../src/core/qrcode/detector/FinderPatternInfo.ts","../../../../../src/core/qrcode/detector/AlignmentPatternFinder.ts","../../../../../src/core/qrcode/detector/AlignmentPattern.ts","../../../src/browser/BrowserDatamatrixCodeReader.ts","../../../../../src/core/datamatrix/decoder/Decoder.ts","../../../../../src/core/datamatrix/decoder/BitMatrixParser.ts","../../../../../src/core/datamatrix/decoder/Version.ts","../../../../../src/core/datamatrix/decoder/DataBlock.ts","../../../../../src/core/datamatrix/decoder/DecodedBitStreamParser.ts","../../../../../src/core/datamatrix/detector/Detector.ts","../../../src/browser/BrowserQRCodeSvgWriter.ts","../../../../../src/core/qrcode/encoder/ByteMatrix.ts","../../../../../src/core/qrcode/encoder/MatrixUtil.ts","../../../../../src/core/qrcode/encoder/BlockPair.ts","../../../src/browser/BrowserBarcodeReader.ts","../../../../../src/core/oned/rss/AbstractRSSReader.ts","../../../../../src/core/oned/rss/Pair.ts","../../../../../src/core/oned/rss/FinderPattern.ts","../../../../../src/core/oned/rss/RSSUtils.ts","../../../core/oned/MultiFormatUPCEANReader.ts","../../../core/oned/UPCEANExtensionSupport.ts","../../../core/oned/UPCEANExtension5Support.ts","../../../core/oned/UPCEANExtension2Support.ts","../../../core/oned/EAN8Reader.ts","../../../src/browser/BrowserMultiFormatReader.ts","../../../src/core/MultiFormatWriter.ts","../../../src/core/PlanarYUVLuminanceSource.ts","../../../src/core/RGBLuminanceSource.ts","../node_modules/process/browser.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/keyBy.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/date-fns/esm/add/index.js","../node_modules/date-fns/esm/isWeekend/index.js","../node_modules/date-fns/esm/isSunday/index.js","../node_modules/date-fns/esm/isSaturday/index.js","../node_modules/date-fns/esm/addBusinessDays/index.js","../node_modules/date-fns/esm/setISOWeekYear/index.js","../node_modules/date-fns/esm/addISOWeekYears/index.js","../node_modules/date-fns/esm/addQuarters/index.js","../node_modules/date-fns/esm/addSeconds/index.js","../node_modules/date-fns/esm/areIntervalsOverlapping/index.js","../node_modules/date-fns/esm/clamp/index.js","../node_modules/date-fns/esm/closestIndexTo/index.js","../node_modules/date-fns/esm/closestTo/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/compareDesc/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/daysToWeeks/index.js","../node_modules/date-fns/esm/differenceInBusinessDays/index.js","../node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.js","../node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.js","../node_modules/date-fns/esm/differenceInCalendarQuarters/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","../node_modules/date-fns/esm/subISOWeekYears/index.js","../node_modules/date-fns/esm/differenceInISOWeekYears/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInQuarters/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/differenceInWeeks/index.js","../node_modules/date-fns/esm/differenceInYears/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/date-fns/esm/eachHourOfInterval/index.js","../node_modules/date-fns/esm/startOfMinute/index.js","../node_modules/date-fns/esm/eachMinuteOfInterval/index.js","../node_modules/date-fns/esm/eachMonthOfInterval/index.js","../node_modules/date-fns/esm/eachQuarterOfInterval/index.js","../node_modules/date-fns/esm/eachWeekOfInterval/index.js","../node_modules/date-fns/esm/eachWeekendOfInterval/index.js","../node_modules/date-fns/esm/eachWeekendOfMonth/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/eachWeekendOfYear/index.js","../node_modules/date-fns/esm/eachYearOfInterval/index.js","../node_modules/date-fns/esm/endOfDecade/index.js","../node_modules/date-fns/esm/endOfHour/index.js","../node_modules/date-fns/esm/endOfISOWeek/index.js","../node_modules/date-fns/esm/endOfISOWeekYear/index.js","../node_modules/date-fns/esm/endOfMinute/index.js","../node_modules/date-fns/esm/endOfQuarter/index.js","../node_modules/date-fns/esm/endOfSecond/index.js","../node_modules/date-fns/esm/endOfToday/index.js","../node_modules/date-fns/esm/endOfTomorrow/index.js","../node_modules/date-fns/esm/endOfYesterday/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../node_modules/date-fns/esm/formatDuration/index.js","../node_modules/date-fns/esm/formatISO/index.js","../node_modules/date-fns/esm/formatISO9075/index.js","../node_modules/date-fns/esm/formatISODuration/index.js","../node_modules/date-fns/esm/formatRFC3339/index.js","../node_modules/date-fns/esm/formatRFC7231/index.js","../node_modules/date-fns/esm/formatRelative/index.js","../node_modules/date-fns/esm/fromUnixTime/index.js","../node_modules/date-fns/esm/getDayOfYear/index.js","../node_modules/date-fns/esm/isLeapYear/index.js","../node_modules/date-fns/esm/getDaysInYear/index.js","../node_modules/date-fns/esm/getDecade/index.js","../node_modules/date-fns/esm/getISODay/index.js","../node_modules/date-fns/esm/getISOWeeksInYear/index.js","../node_modules/date-fns/esm/getMilliseconds/index.js","../node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js","../node_modules/date-fns/esm/getUnixTime/index.js","../node_modules/date-fns/esm/getWeekYear/index.js","../node_modules/date-fns/esm/startOfWeekYear/index.js","../node_modules/date-fns/esm/getWeek/index.js","../node_modules/date-fns/esm/getWeekOfMonth/index.js","../node_modules/date-fns/esm/lastDayOfMonth/index.js","../node_modules/date-fns/esm/getWeeksInMonth/index.js","../node_modules/date-fns/esm/hoursToMilliseconds/index.js","../node_modules/date-fns/esm/hoursToMinutes/index.js","../node_modules/date-fns/esm/hoursToSeconds/index.js","../node_modules/date-fns/esm/sub/index.js","../node_modules/date-fns/esm/intervalToDuration/index.js","../node_modules/date-fns/esm/intlFormat/index.js","../node_modules/date-fns/esm/isExists/index.js","../node_modules/date-fns/esm/isFirstDayOfMonth/index.js","../node_modules/date-fns/esm/isFriday/index.js","../node_modules/date-fns/esm/isFuture/index.js","../node_modules/date-fns/esm/isMatch/index.js","../node_modules/date-fns/esm/isMonday/index.js","../node_modules/date-fns/esm/isPast/index.js","../node_modules/date-fns/esm/startOfHour/index.js","../node_modules/date-fns/esm/isSameHour/index.js","../node_modules/date-fns/esm/isSameWeek/index.js","../node_modules/date-fns/esm/isSameISOWeek/index.js","../node_modules/date-fns/esm/isSameISOWeekYear/index.js","../node_modules/date-fns/esm/isSameMinute/index.js","../node_modules/date-fns/esm/startOfSecond/index.js","../node_modules/date-fns/esm/isSameSecond/index.js","../node_modules/date-fns/esm/isThisHour/index.js","../node_modules/date-fns/esm/isThisISOWeek/index.js","../node_modules/date-fns/esm/isThisMinute/index.js","../node_modules/date-fns/esm/isThisMonth/index.js","../node_modules/date-fns/esm/isThisQuarter/index.js","../node_modules/date-fns/esm/isThisSecond/index.js","../node_modules/date-fns/esm/isThisWeek/index.js","../node_modules/date-fns/esm/isThisYear/index.js","../node_modules/date-fns/esm/isThursday/index.js","../node_modules/date-fns/esm/isToday/index.js","../node_modules/date-fns/esm/isTomorrow/index.js","../node_modules/date-fns/esm/isTuesday/index.js","../node_modules/date-fns/esm/isWednesday/index.js","../node_modules/date-fns/esm/isYesterday/index.js","../node_modules/date-fns/esm/lastDayOfDecade/index.js","../node_modules/date-fns/esm/lastDayOfWeek/index.js","../node_modules/date-fns/esm/lastDayOfISOWeek/index.js","../node_modules/date-fns/esm/lastDayOfISOWeekYear/index.js","../node_modules/date-fns/esm/lastDayOfQuarter/index.js","../node_modules/date-fns/esm/lastDayOfYear/index.js","../node_modules/date-fns/esm/lightFormat/index.js","../node_modules/date-fns/esm/milliseconds/index.js","../node_modules/date-fns/esm/millisecondsToHours/index.js","../node_modules/date-fns/esm/millisecondsToMinutes/index.js","../node_modules/date-fns/esm/millisecondsToSeconds/index.js","../node_modules/date-fns/esm/minutesToHours/index.js","../node_modules/date-fns/esm/minutesToMilliseconds/index.js","../node_modules/date-fns/esm/minutesToSeconds/index.js","../node_modules/date-fns/esm/monthsToQuarters/index.js","../node_modules/date-fns/esm/monthsToYears/index.js","../node_modules/date-fns/esm/nextDay/index.js","../node_modules/date-fns/esm/nextFriday/index.js","../node_modules/date-fns/esm/nextMonday/index.js","../node_modules/date-fns/esm/nextSaturday/index.js","../node_modules/date-fns/esm/nextSunday/index.js","../node_modules/date-fns/esm/nextThursday/index.js","../node_modules/date-fns/esm/nextTuesday/index.js","../node_modules/date-fns/esm/nextWednesday/index.js","../node_modules/date-fns/esm/parseJSON/index.js","../node_modules/date-fns/esm/quartersToMonths/index.js","../node_modules/date-fns/esm/quartersToYears/index.js","../node_modules/date-fns/esm/roundToNearestMinutes/index.js","../node_modules/date-fns/esm/secondsToHours/index.js","../node_modules/date-fns/esm/secondsToMilliseconds/index.js","../node_modules/date-fns/esm/secondsToMinutes/index.js","../node_modules/date-fns/esm/set/index.js","../node_modules/date-fns/esm/setDate/index.js","../node_modules/date-fns/esm/setDay/index.js","../node_modules/date-fns/esm/setDayOfYear/index.js","../node_modules/date-fns/esm/setISODay/index.js","../node_modules/date-fns/esm/setISOWeek/index.js","../node_modules/date-fns/esm/setMilliseconds/index.js","../node_modules/date-fns/esm/setWeek/index.js","../node_modules/date-fns/esm/setWeekYear/index.js","../node_modules/date-fns/esm/startOfDecade/index.js","../node_modules/date-fns/esm/startOfToday/index.js","../node_modules/date-fns/esm/startOfTomorrow/index.js","../node_modules/date-fns/esm/startOfYesterday/index.js","../node_modules/date-fns/esm/subBusinessDays/index.js","../node_modules/date-fns/esm/subQuarters/index.js","../node_modules/date-fns/esm/subSeconds/index.js","../node_modules/date-fns/esm/weeksToDays/index.js","../node_modules/date-fns/esm/yearsToMonths/index.js","../node_modules/date-fns/esm/yearsToQuarters/index.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Manager.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/utils.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/popper.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/usePopper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Popper.js","../node_modules/react-datepicker/node_modules/react-popper/lib/esm/Reference.js","../node_modules/reactstrap/es/utils.js","../node_modules/reactstrap/es/Spinner.js"],"names":["module","exports","require","requiredArgs","required","args","length","TypeError","toDate","argument","arguments","argStr","Object","prototype","toString","call","Date","getTime","console","warn","Error","stack","NaN","RioPermissionFlags","RioSeverity","pad","input","width","replacer","inputAsString","Array","join","isNumeric","isNaN","parseFloat","isFinite","getMaxInt","roundCurrency","this","roundToDecimalPlaces","decimalplaces","Math","round","pow","Number","EPSILON","numberWithCommas","dp","toFixed","replace","React","render","props","condition","then","otherwise","Component","result","i","iterations","push","perform","items","map","item","index","state","applyExchangeRate","reverse","convertedInput","exchangeRate","RioNumberHelpers","currencySymbol","showOnlyPound","className","dangerouslySetInnerHTML","__html","value","RioIf","defaultProps","html","onClick","title","RioUnsafe","resource","image","text","handleMouseUp","bind","hideText","hasPermission","undefined","disabled","busy","e","handleClick","onMouseDown","button","preventDefault","onMouseUp","RioIfFunc","busyResource","Fragment","hideImage","stopPropagation","onMiddleClick","newGuid","c","r","random","id","RioGuid","visible","onBackgroundClicked","onContentClicked","children","componentDidMount","document","addEventListener","onKeyDown","keyCode","RioModal","componentWillUnmount","pop","removeEventListener","target","currentTarget","backgroundClickDisabled","closeModal","escapeKey","onCancel","blurred","getKey","name","getValue","getValidations","validations","validator","register","unregister","submitAttempted","getErrors","hideValidationText","RioForEach","error","key","xhrOnLoad","xhr","response","ApiResponse","statusCode","status","success","responseText","JSON","parse","ApiErrorHandler","onUnauthorised","onServiceUnavailable","errors","onDone","xhrOnLoadGetFile","type","contentTypeHeader","getResponseHeader","reader","FileReader","onload","fullBlob","Blob","readAsText","blob","header","filename","getFileNameByContentDisposition","downloadLink","window","createElement","href","URL","createObjectURL","download","body","appendChild","click","removeChild","contentDisposition","matches","exec","includes","endIndex","indexOf","substring","decodeURI","apiUri","uri","send","XMLHttpRequest","withCredentials","open","sendAndGetFile","responseType","setRequestHeader","asPromise","apiUrl","Promise","resolve","reject","RioApiGet","ApiRequest","stringify","RioApiPost","RioApiDelete","updateObject","itemAttributes","slice","assign","any","predicate","findIndex","contains","distinct","filter","self","except","copy","splice","exceptAny","currentItem","first","filtered","last","page","pageNumber","pageSize","take","skip","total","sum","moment","locale","navigator","language","toDateFormat","format","utc","local","toDisplayDate","toDisplayDateTime","toUtcDisplayDate","toUtcDisplayDateTime","toISODate","toISODateTime","toRelative","diff","RioDateHelpers","relativeTimeThreshold","outPutText","relativeTime","fromNow","toUnspecifiedDateTime","parseInputDate","parseOutputDate","output","dateFormat","parseDisplayDate","stringToArray","delimiter","valueArray","split","trim","RioArrayHelpers","dataUrl","minify","options","maxWidth","maxHeight","quality","message","Image","height","canvas","getContext","drawImage","canvasType","canvasDataUrl","toDataURL","RioImageDataHelper","src","toFile","File","toBlob","base64","buff","binaryStringToArrayBuffer","atob","createBlob","parts","properties","binary","len","buffer","ArrayBuffer","arr","Uint8Array","charCodeAt","checkPermissions","controllerName","requiredPermissions","None","RioPermissions","permissions","p","controller","find","RioResources","resources","Filter","removeDiacritics","normalize","splitNumeric","letters","numbers","char","parseInt","createRef","handleInputChanged","setState","onChange","handleInputBlurred","disableCheckOnBlur","validate","onBlur","handleInputLoaded","handleInputUnloaded","RioExtendedValidatedInput","registeredComponents","isValid","component","registeredComponent","allValid","valid","forceUpdate","manualCheckIsValid","addModelErrors","hasOwnProperty","currentComponent","concat","clearModelErrors","isArray","regex","expression","test","numeric","minValue","maxValue","minLength","maxLength","custom","ComponentState","TextFilterOption","totalPages","ceil","itemCount","RioIconButton","currentPage","handlePreviousClicked","handlePageChanged","RioIterate","handleNextClicked","onPageChanged","getTotalPages","startDate","from","time","endDate","to","displayDateFormat","calculateDisplayDateFormat","dataDateFormat","calculateDataDateFormat","minDate","maxDate","DatePicker","selected","date","handleInputValueChanged","selectsRange","range","showTimeSelect","readOnly","readonly","RioIcon","focus","current","clear","filterWrapperElement","dateFromPicker","dateToPicker","dateFrom","dateTo","ref","closeFilter","RioDatePicker","handleFromChanged","includeTime","asUtc","handleToChanged","onFromChanged","onToChanged","componentDidUpdate","checkIfOffScreen","filterWindowElement","parentElement","filterWindowElementPosition","getBoundingClientRect","tableRowElementPosition","right","classList","add","clearFilter","callback","dateFilterComponent","DateFilterComponent","filterActive","classNameString","checked","tabIndex","checkedResource","nullResource","checkBox","RioCheckbox","handleCheckboxChanged","newValue","changeValueTo","filterValue","boolFilterComponent","BoolFilterComponent","minvalue","maxvalue","onKeyUp","onMinValueBackSpace","onMaxValueBackSpace","minMaxFilterComponent","NumberFilterComponent","inputValue","dropdownValue","handleDropDownChanged","StartsWith","dropDownValue","startEndsWithFilterComponent","RioStringHelpers","toLowerCase","startsWith","EndsWith","endsWith","Contains","TextFilterComponent","hasValidationErrors","RioValidatedInput","activeFilterDiv","filteredItems","selectedItems","settledColumns","sortColumn","displayFilterColumn","searchableInputText","hasActions","actions","hasFilters","columns","x","renderedFilter","sortedArray","sortItems","pageItems","handleKeyDown","searchable","RioInput","handleSearchableInputTextChanged","rowIsSelectable","selectableRowTitle","column","hidden","disableSorting","titleClassName","handleColumnClicked","handleFilterClicked","renderSortState","customHeadingContent","blankHeader","clearAllFilters","rowKey","determineRowClassName","handleSelectedCheckClicked","onItemClick","handleRowClicked","displayValue","action","customDisplay","displayTotal","colSpan","noResults","RioPager","newPage","settleColumns","filterItems","componentWillReceiveProps","nextProps","forEach","TextFilter","filterClose","NumberFilter","DateFilter","filterDateFormat","DateTimeFilter","filterDateTimeFormat","BoolFilter","settledColumn","totalReducer","nextPropColumns","nextPropItems","isMounting","filteredArray","searchTerms","includeItem","j","valueToSearch","max","min","handleSelectedChanged","defaultAction","getDefaultAction","abs","sort","a","b","sortedA","sortedB","localeCompare","columnIndex","sortIndex","rowClassName","default","getSelectedItems","deselectAll","selectAll","onSelectedChanged","classes","on","enabled","toggleLabel","buttonText","resourceName","active","menuItem","itemClicked","childItems","RioSideMenuSubItem","itemMiddleClicked","menuItemID","pinnedMenuItem","menuItems","RioToggleSwitch","handlePinClick","RioSideMenuItem","currentMenuItem","handleSideMenuItemClicked","handleSideMenuItemMiddleClicked","handleSideMenuSubItemClicked","handleSideMenuSubItemMiddleClicked","loadMenu","menuEndpoint","element","setPinnedMenuItem","controllerAction","history","newCurrentMenuItem","RioSideMenuComponent","generateUrl","withRouter","focusedOptionLi","autoCompleteInput","focusedOption","prevProps","prevState","handleInputChange","suggestionMinimumChars","onGetOptions","v","handleItemSelected","keepTextOnSelect","label","onTextSelected","handleInputBlur","handleKeyPressed","newFocused","scrollToFocused","scrollIntoView","block","placeholder","onKeyPress","showIcon","colourOptions","colour","style","backgroundColor","onColourChanged","onConfirmModalClosed","formattedTitle","formattedText","fileInput","handleDropzoneClicked","onDrop","handleDropzoneDrop","cursor","hideFilesInDropZone","fileList","dropZoneWording","multiple","onInput","onFilesAdded","accept","fileInputAcceptString","removeFileClicked","getResourceIconForFile","files","array","fileListToArray","list","fileContainedInArray","dataTransfer","file","fileArray","size","lastModified","extension","fileExtensions","extensionInfo","headingElement","bodyElement","expanded","expandedDefault","headingClass","disableToggle","handleHeadingClicked","collapsedHeadingContent","$","slideToggle","decimalPlaces","focussed","handleInputFocussed","onFocus","baseCurrency","baseCurrencySymbol","getFormattedValue","textInput","valueAsNumber","class","rest","RioLoadingIndicator","focused","option","handleMouseDown","results","minCharactersToSearch","searchOptions","minSearchTermLength","searchValue","k","propertiesToSearch","itemValue","itemValueNoDiacritic","searchValueNoDiacritic","minMatchesRequired","RioOmniBoxResultApiModel","onSelectedItemChanged","showTop","handleSelectOption","onTabPressed","onEnterPressed","showDialog","parseCurrentUrl","location","pathname","ret","modules","toolbar","container","handlers","imageHandler","table","formats","editorBody","editing","saving","currentCultureId","currentRevision","availableContexts","availableHistory","availableCultures","currentContext","canEdit","showTableControls","fetchCanEdit","fetchHelpText","fetchAvailable","fetchAvailableHistory","fetchAvailableCultures","setAttribute","onchange","uploadImage","imageDropAndPasteHandler","imageDataUrl","imageData","formData","FormData","append","quill","editor","getSelection","insertEmbed","origin","setSelection","_this","deleteText","resp","data","handleDrop","caretRangeFromPoint","selection","clientX","clientY","setBaseAndExtent","startContainer","startOffset","readFiles","handlePaste","clipboardData","match","getAsFile","readAsDataURL","insert","getLength","renderLibrary","renderTitle","renderHistorySection","renderCulturesSection","renderEditor","renderActions","hasCurrentContext","formatPageTitle","renderTableControls","ReactQuill","el","root","tableModule","getModule","tableButton","querySelector","HTMLElement","onclick","theme","handleEditorChanged","insertTable","deleteTable","insertTableColumnLeft","insertTableColumnRight","deleteTableColumn","insertTableRowAbove","insertTableRowBelow","deleteTableRow","onSaveClicked","onCancelClicked","onEditClicked","rows","context","handleContextClicked","renderHistoryDropdown","renderCulturesDropdown","handleHistorySelectionChanged","cultureID","displayName","handleCultureSelectionChanged","onEditorChangedText","delta","old","source","event","confirmSwitchEditor","url","fetch","method","headers","json","helpText","requestOptions","toggleEdit","s","confirm","deleteRow","insertRowAbove","insertRowBelow","deleteColumn","insertColumnRight","insertColumnLeft","selectIsOpen","deviceID","stream","handleStartClicked","handleCameraStopped","poster","mediaDevices","enumerateDevices","getUserMedia","video","mediaStream","setUpDevices","catch","log","codeReader","ZXing","BrowserQRCodeReader","sourceSelect","getElementById","getVideoInputDevices","videoInputDevices","selectOption","sourceOption","deviceId","display","err","reset","getTracks","track","stop","handleCameraStarted","decodeFromInputVideoDevice","onResult","getText","onReset","focusedOptionDiv","suggestions","getCurrentText","autoComplete","renderOptions","defaultSelectOptionOverride","descriptionSelector","defaultMultipleSelectOptionOverride","shouldRenderCheckboxes","showCheckboxes","isMultiSelect","keySelector","handleSuggestionSelected","selectionStart","selectionEnd","getSuggestions","onSuggestionSelected","keepOptionsOpenOnSelected","fillColor","severity","warning","danger","info","lightBackground","expandedByDefault","itemKey","handleTitleClicked","content","RioTreeNode","show","handleMenuItemClicked","icon","menuItemEndpoint","RioAuditContext","createContext","Consumer","auditModel","buttonClicked","path","auditRoute","buildAuditParamsString","params","controllerID","key1Table","key1ColumnName","key1Value","key2Table","key2ColumnName","key2Value","key3Table","key3ColumnName","key3Value","key4Table","key4ColumnName","key4Value","ignoreAudit","model","RioAuditSearchEntityApiModel","setAuditContext","currentModelIsActive","setModel","contextModel","contextType","RioPageHeading","heading","description","dateTime","key1","oldValue","userName","screen","loading","RioLoadingIf","RioPage","hidePageImage","hidePageText","RioGridView","auditID","buildContextModel","rawParams","queryString","extractedParams","paramString","newPermissions","newResources","toInteger","dirtyNumber","number","floor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","apply","_objectSpread2","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","instance","Constructor","addLeadingZeros","targetLength","sign","_defineProperties","descriptor","configurable","writable","_createClass","protoProps","staticProps","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_typeof","obj","Symbol","iterator","constructor","_possibleConstructorReturn","assertThisInitialized","_createSuper","Derived","Super","NewTarget","_setPrototypeOf","_inherits","subClass","superClass","create","_extends","createNamedContext","Router","computeRootMatch","isExact","_pendingLocation","unlisten","RouterContext","staticContext","MemoryRouter","createHistory","Lifecycle","onMount","onUpdate","onUnmount","Prompt","when","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","createLocation","prevLocation","locationsAreEqual","matchPath","exact","strict","sensitive","matched","cacheKey","pathCache","regexp","end","values","memo","Route","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","StaticRouter","handlePush","handleReplace","handleListen","handleBlock","navigateTo","addBasename","createHref","go","goBack","goForward","listen","Switch","child","C","wrappedComponentRef","remainingProps","hoistStatics","useContext","useHistory","useLocation","useParams","useRouteMatch","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","dirtyDate","startOfWeek","dirtyOptions","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","RangeError","day","getDay","setDate","setHours","addDays","dirtyAmount","amount","BarcodeFormat","MathUtils_1","Float_1","patterns","LOCATION_CHANGE","onLocationChanged","isFirstRendering","payload","CALL_HISTORY_METHOD","updateLocation","_len","_key","startOfISOWeek","_objectWithoutPropertiesLoose","excluded","sourceKeys","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDay","startOfDayRight","timestampLeft","timestampRight","DecodeHintType","isAbsolute","charAt","spliceOne","n","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","substr","valueOf","valueEqual","every","aValue","bValue","stripLeadingSlash","prefix","hasBasename","stripTrailingSlash","search","hash","currentLocation","hashIndex","searchIndex","parsePath","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","fn","isActive","listener","notifyListeners","canUseDOM","getConfirmation","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","revertPop","initialLocation","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","unblock","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","lastIndexOf","baseTag","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","canGo","getISOWeekYear","year","fourthOfJanuaryOfNextYear","setFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfISOWeekYear","fourthOfJanuary","_inheritsLoose","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","buildFormatLongFn","String","defaultWidth","formatLong","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","pattern","findKey","valueCallback","code","formatDistance","token","count","addSuffix","comparison","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","_dirtyOptions","rem100","era","narrow","abbreviated","wide","quarter","month","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","parsePattern","parseResult","firstWeekContainsDate","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","daysInMonth","isSameDay","dateLeftStartOfDay","dateRightStartOfDay","subMilliseconds","addMilliseconds","startOfUTCWeek","getUTCDay","setUTCDate","getUTCDate","setUTCHours","formatters","y","signedYear","getUTCFullYear","M","getUTCMonth","d","dayPeriodEnumValue","getUTCHours","toUpperCase","h","H","m","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","fractionalSeconds","bit","Int32Array","ResultPoint_1","timestamp","startOfUTCISOWeek","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","freeGlobal","freeSelf","Function","addWeeks","days","startOfMonth","startOfQuarter","currentMonth","_arrayLikeToArray","arr2","_toConsumableArray","iter","minLen","f","argIndex","framesToPop","MathUtils","length_1","ResultMetadataType","baseIsNative","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","process","addHours","addMinutes","endOfDay","endOfMonth","startOfYear","cleanDate","subDays","dirtyMonth","dateWithDesiredMonth","getDaysInMonth","hookCallback","some","hooks","isObject","isUndefined","isNumber","isDate","res","hasOwnProp","extend","createUTC","createLocalOrUTC","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","_isValid","flags","parsedParts","isNowValid","_d","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","t","momentProperties","copyConfig","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","deprecations","deprecateSimple","isFunction","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","get","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","lastDay","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","names","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","setUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","l","allowTime","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","extractFromRFC2822Strings","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","isObjectEmpty","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","weeks","isoWeek","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","offset","separator","utcOffset","offsetFromString","chunkOffset","matcher","cloneWithOffset","clone","setTime","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","inputString","postformat","withoutSuffix","humanize","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","isoWeekday","toArray","toObject","toISOString","keepOffset","inspect","zone","isLocal","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","factory","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","getState","subscribe","isSubscribed","dispatch","replaceReducer","nextReducer","observable","outerSubscribe","observer","observeState","unsubscribe","$$observable","getUndefinedStateErrorMessage","actionType","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","errorMessage","bindActionCreator","actionCreator","bindActionCreators","actionCreators","boundActionCreators","_defineProperty","compose","funcs","reduce","applyMiddleware","middlewares","store","_dispatch","middlewareAPI","chain","middleware","GenericGFPoly_1","getQuarter","_assertThisInitialized","ReferenceError","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","NotFoundException_1","ArgumentException_1","CharacterSetValueIdentifiers","CharacterSetECI","UPCEANReader","getRawTag","objectToString","symToStringTag","toStringTag","addYears","dirtyDatesArray","datesArray","differenceInCalendarMonths","dateLeft","dateRight","yearDiff","differenceInCalendarWeeks","startOfWeekLeft","startOfWeekRight","differenceInCalendarYears","endOfWeek","getISOWeek","subMonths","isSameMonth","isSameQuarter","dateLeftStartOfQuarter","dateRightStartOfQuarter","isSameYear","setUTCDay","dirtyDay","currentDay","remainder","dayIndex","numericPatterns","timezonePatterns","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","enumValue","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","parsers","G","incompatibleTokens","isTwoDigitYear","normalizedTwoDigitYear","R","_match","_flags","firstWeekOfYear","Q","setUTCMonth","q","dirtyWeek","getUTCWeek","setUTCWeek","I","dirtyISOWeek","getUTCISOWeek","setUTCISOWeek","subPriority","wholeWeekDays","setUTCISODay","B","K","setUTCSeconds","setUTCMilliseconds","X","timestampIsSet","_token","T","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","dateString","formatString","defaultLocale","subFnOptions","setters","dateToSystemTimezone","firstCharacter","longFormatter","longFormatters","usedTokens","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleToken","usedToken","fullToken","cleanEscapedString","uniquePrioritySetters","setterArray","convertedDate","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","formatTimezoneWithOptionalMinutes","formatTimezone","lightFormatters","signedWeekYear","getUTCISOWeekYear","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","_originalDate","O","z","originalDate","dirtyFormatStr","formatStr","formatterOptions","formatter","reactIs","REACT_STATICS","childContextTypes","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ReactReduxContext","batch","nullListeners","notify","createListenerCollection","Subscription","parentSub","handleChangeWrapper","_proto","addNestedSub","trySubscribe","notifyNestedSubs","onStateChange","Boolean","tryUnsubscribe","Provider","contextValue","useMemo","subscription","previousState","useEffect","Context","PropTypes","shape","isRequired","EMPTY_ARRAY","NO_SUBSCRIPTION_ARRAY","storeStateUpdatesReducer","updateCount","initStateUpdates","useIsomorphicLayoutEffect","useLayoutEffect","connectAdvanced","selectorFactory","_ref2$getDisplayName","getDisplayName","_ref2$methodName","_ref2$renderCountProp","renderCountProp","_ref2$shouldHandleSta","shouldHandleStateChanges","_ref2$storeKey","storeKey","_ref2$withRef","withRef","_ref2$forwardRef","forwardRef","_ref2$context","connectOptions","WrappedComponent","wrappedComponentName","selectorFactoryOptions","pure","usePureOnlyMemo","ConnectFunction","_useMemo","forwardedRef","wrapperProps","propsContext","ContextToUse","isContextConsumer","didStoreComeFromProps","didStoreComeFromContext","childPropsSelector","createChildSelector","_useMemo2","overriddenContextValue","_useReducer","useReducer","previousStateUpdateResult","forceComponentUpdateDispatch","lastChildProps","useRef","lastWrapperProps","childPropsFromStoreUpdate","renderIsScheduled","actualChildProps","didUnsubscribe","lastThrownError","checkForUpdates","newChildProps","latestStoreState","renderedWrappedComponent","Connect","forwarded","hasOwn","is","shallowEqual","objA","objB","keysA","keysB","wrapMapToPropsConstant","getConstant","constant","constantSelector","dependsOnOwnProps","getDependsOnOwnProps","mapToProps","wrapMapToPropsFunc","proxy","stateOrDispatch","ownProps","mapDispatchToProps","mapStateToProps","defaultMergeProps","stateProps","dispatchProps","mergeProps","mergedProps","areMergedPropsEqual","hasRunOnce","nextMergedProps","wrapMergePropsFunc","impureFinalPropsSelectorFactory","pureFinalPropsSelectorFactory","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","hasRunAtLeastOnce","handleSubsequentCalls","nextOwnProps","propsChanged","stateChanged","nextStateProps","statePropsChanged","handleNewState","finalPropsSelectorFactory","initMapStateToProps","initMapDispatchToProps","initMergeProps","factories","strictEqual","createConnect","_temp","_ref$connectHOC","connectHOC","_ref$mapStateToPropsF","mapStateToPropsFactories","defaultMapStateToPropsFactories","_ref$mapDispatchToPro","mapDispatchToPropsFactories","defaultMapDispatchToPropsFactories","_ref$mergePropsFactor","mergePropsFactories","defaultMergePropsFactories","_ref$selectorFactory","defaultSelectorFactory","_ref3","_ref3$pure","_ref3$areStatesEqual","_ref3$areOwnPropsEqua","_ref3$areStatePropsEq","_ref3$areMergedPropsE","extraOptions","useReduxContext","createStoreHook","useDefaultReduxContext","useStore","useDefaultStore","createDispatchHook","refEquality","createSelectorHook","newBatch","g","webpackPolyfill","paths","GenericGF_1","getZero","ErrorCorrectionLevelValues","EncodeHintType","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","has","eq","nativeCreate","getNative","isKeyable","__data__","isSymbol","monthIndex","lastDayOfMonth","BrowserRouter","HashRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","innerRef","navigate","ex","isModifiedEvent","Link","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","dateLongFormatter","timeLongFormatter","P","dateTimeFormat","datePattern","timePattern","dirtyObject","property","createSelectors","structure","getIn","toJS","getRouter","router","getLocation","getAction","getSearch","getHash","createMatchSelector","lastPathname","lastMatch","createConnectRouter","fromJS","merge","initialRouterState","_objectSpread","ConnectedRouter","_PureComponent","inTimeTravelling","_getLocation","pathnameInStore","searchInStore","hashInStore","_history$location","pathnameInHistory","searchInHistory","hashInHistory","handleLocationChange","_this$props","PureComponent","oneOfType","node","ConnectedRouterWithContext","connect","_onLocationChanged","createConnectedRouter","plainStructure","connectRouter","_createSelectors","startOfUTCWeekYear","firstWeek","startOfUTCISOWeekYear","getYear","dirtyDateToCompare","dateToCompare","isEqual","dirtyLeftDate","dirtyRightDate","isWithinInterval","interval","startTime","start","endTime","dateTimeDelimiter","timeZoneDelimiter","timezone","dateRegex","timeRegex","timezoneRegex","parseISO","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","parseTimezone","timeString","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","validateDate","validateDayOfYearDate","parseTimeUnit","validateTime","timezoneString","_hours","validateTimezone","dirtyHours","setMinutes","dirtyMinutes","setQuarter","dirtyQuarter","oldQuarter","setSeconds","dirtySeconds","setYear","dirtyYear","subHours","subMinutes","subWeeks","subYears","comparator","Arrays","numberComparator","ar","cmp","BarcodeFormat_1","decoderResult","BitMatrix_1","Version","TextDecoder","decodeFallback","bytes","encodingName","TextEncoder","characterSet","equals","CharacterSetECI_1","GridSamplerInstance","PerspectiveTransform","Decoder_1","Result_1","EncodeHintType_1","BitArray_1","ReedSolomonEncoder_1","QRCode","baseIsEqualDeep","isObjectLike","baseIsEqual","bitmask","customizer","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","arrayLikeKeys","baseKeys","isArrayLike","reIsDeepProp","reIsPlainProp","baseGetTag","classNames","argType","inner","colorName","conversions","createCommonjsModule","reverseKeywords","convert","rgb","channels","labels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","Infinity","distance","t1","t2","t3","smin","lmin","hi","sl","vmin","wh","bl","ratio","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","ansi","color","mult","rem","colorString","integer","hue","chroma","mg","deriveBFS","fromModel","graph","models","parent","buildGraph","queue","adjacents","adjacent","link","wrapConversion","toModel","cur","conversion","routes","route","wrappedFn","wrapRounded","raw","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","scale","num","str","Color","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","w1","w2","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","uid","isNullOrUndef","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","each","loopable","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","dst","inherits","extensions","me","ChartElement","Surrogate","__super__","_deprecated","scope","previous","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","ctx","clearRect","roundedRect","radius","left","top","bottom","moveTo","arc","closePath","rect","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","point","area","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","global","fontSize","font","family","fontFamily","lineHeight","fontStyle","toFontString","inputs","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","helpers$1","easing","math","rtl","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","original","getPropertyValue","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","Element","configuration","initialize","_type","pivot","_view","_model","_start","transition","ease","view","actual","c0","c1","interpolate","tooltipPosition","hasValue","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","animation","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","animating","requestAnimationFrame","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","meta","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","destroy","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","update","easingValue","elements","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","borderColor","hover","readKey","datasetOpts","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","borderWidth","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","borderAlign","lineWidth","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","line","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","padding","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderWidth","maxW","maxH","edge","borderSkipped","horizontal","parseBorderSkipped","skipX","skipY","bounds","rectangle","element_rectangle","rects","border","outer","boundingRects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","curr","pixels","_length","getTicks","getPixelForTick","computeMinSampleSize","categoryPercentage","barPercentage","chunk","mode","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","head","center","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","percent","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","position","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","createTextNode","outerHTML","legend","generateLabels","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","opts","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","metadata","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","layout","newWidth","newHeight","box","getPadding","boxPadding","outerWidth","outerHeight","sizes","getMargins","marginForPositions","positions","margin","fitBoxes","boxes","refit","changed","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableWidth","availableHeight","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","change","handleMaxPadding","stylesheet","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","supports","passive","addListener","removeListener","createEvent","nativeEvent","createDiv","cls","addResizeListener","expando","resizer","CSS_PREFIX","expand","CSS_SIZE_MONITOR","shrink","_reset","scrollLeft","scrollTop","onScroll","createResizer","ticking","throttled","maintainAspectRatio","parentNode","clientWidth","renderProxy","animationName","reflow","offsetParent","watchForRender","insertBefore","firstChild","removeResizeListener","remove","unwatchForRender","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","rootNode","css","containsStyles","injectCSS","host","acquireContext","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","removeAttribute","proxies","fromNativeEvent","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","plugin","idx","getAll","hook","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","before","after","getAfterBody","getFooter","existingModel","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","tooltip","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","animationDuration","responsive","responsiveAnimationDuration","Chart","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","abstract","DateAdapter","Controller","types","configMerge","scaleMerge","_create","override","members","core_adapters","core_ticks","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","offsets","widestLabelSize","highestLabelSize","major","minor","gc","valueAt","gcLen","garbageCollect","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","spacing","majorStart","majorEnd","tick","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","paddingLeft","paddingTop","paddingRight","paddingBottom","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","increment","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetLeft","offsetRight","labelWidth","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","maxTicksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","maxTicks","stepSize","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","param","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","getMin","getMax","interpolate$1","skey","tkey","mid","i0","i1","lo","lookup","span","toTimestamp","adapter","_adapter","determineUnitForAutoTicks","minUnit","capacity","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","adapters","displayFormats","labelsAdded","timestamps","dataLabels","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","unitStepSize","generate","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","_id","filler","propagate","mappers","boundary","decodeFill","computeBoundary","cx","cy","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","loop","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","alignmentOffset","dimension","blockSize","itemHeight","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","defaultView","_getParentNode","constrainedNode","getComputedStyle","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","findNextWhere","arrayToSearch","startIndex","findPreviousWhere","epsilon","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","setTimeout","evt","originalEvent","srcElement","boundingRect","touches","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","clientHeight","ch","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","ponyfill","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","capture","group","modifier","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encode","encodeURIComponent","segment","attachKeys","re","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","propIsEnumerable","propertyIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","routerMiddleware","_action$payload","__export","tempCanvasElement","tempContext","BinaryBitmap","matrix","HybridBinarizer","MINIMUM_DIMENSION","subWidth","BLOCK_SIZE_POWER","BLOCK_SIZE_MASK","subHeight","_super","BLOCK_SIZE","GlobalHistogramBinarizer","row","localBuckets","initArrays","getRow","luminances","LUMINANCE_SHIFT","Binarizer","ErrorCorrectionLevel_1","Integer_1","sjisCurKatakanaWordLength","canBeUTF8","canBeShiftJIS","ModeValues","sampleGridWithTransform","dimensionX","dimensionY","transform","intermediate","decodedChar","Code128Reader","checkDigit","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","tag","funcToString","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","baseIsArguments","objectProto","isArguments","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","reIsUint","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","isLength","srcValue","castPath","toKey","isKey","stringToPath","symbolObservablePonyfill","createThunkMiddleware","extraArgument","thunk","withExtraArgument","commonjsGlobal","globalThis","createEventEmitter","off","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","getChildContext","_Component2","_this2","observedBits","_proto2","hasElementType","hasMap","hasSet","Set","hasArrayBuffer","isView","equal","it","done","$$typeof","Scatter","Bubble","Polar","Radar","HorizontalBar","Bar","Pie","Doughnut","_react","_interopRequireDefault","_propTypes","_isEqual","_keyBy","__esModule","_objectWithoutProperties","sourceSymbolKeys","hasNativeReflectConstruct","NODE_ENV","ChartComponent","_React$Component","chartInstance","onElementsClick","renderChart","redraw","destroyChart","updateChart","_this$props2","nextData","transformDataProp","shadowDataProp","saveCurrentDatasets","isDev","usingCustomKeyProvider","datasetKeyProvider","getLabelAsKey","multipleDatasets","shouldWarn","getCurrentDatasets","_this3","memoizeDataProps","currentDatasets","nextDatasets","checkDatasets","currentDatasetsIndexed","pid","otherProps","_this$props3","_this$props4","handleOnClick","arrayOf","bool","propName","componentName","_default","_React$Component2","_super2","_this4","_React$Component3","_super3","_this5","_React$Component4","_super4","_this6","_React$Component5","_super5","_this7","_ref4","_React$Component6","_super6","_this8","_ref5","_React$Component7","_super7","_this9","_ref6","_React$Component8","_super8","_this10","_ref7","_React$Component9","_super9","_this11","_ref8","_React$Component10","_super10","_this12","_ref9","for","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","F","refs","updater","isReactComponent","isPureReactComponent","J","__self","__source","_owner","keyPrefix","V","U","escape","aa","N","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","isValidElement","_ctor","_status","_result","useCallback","useDebugValue","useImperativeHandle","useState","onError","da","ea","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","nodeName","xb","_valueTracker","setValue","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","defaultSelected","Ib","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","Rb","lastChild","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","WeakMap","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","nd","menuitem","br","col","embed","img","keygen","wbr","od","pd","qd","rd","sd","td","ud","vd","nextSibling","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","Hd","Id","clearTimeout","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ge","he","ie","je","ke","documentMode","le","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","detail","se","ve","which","te","ctrlKey","altKey","metaKey","ue","we","email","password","tel","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","pageX","pageY","shiftKey","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","anchorNode","anchorOffset","focusNode","focusOffset","kf","onSelect","elapsedTime","pseudoElement","mf","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","sf","tf","targetTouches","changedTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","documentElement","tagName","eh","fh","gh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","timeout","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","form","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","ReactPropTypes","symbol","instanceOf","objectOf","oneOf","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","originalModule","shiftWeekdays","ws","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","asQuarters","_","_e","Ze","et","tt","rt","at","nt","ot","st","lt","ct","dt","ut","Dt","ft","ht","mt","yt","vt","wt","gt","kt","bt","Ct","St","_t","Mt","Pt","Et","Nt","Yt","xt","It","Tt","Xt","Jt","awareOfUnicodeTokens","Lt","Ft","Rt","qt","At","Wt","Bt","Kt","jt","Ht","Qt","Vt","Ut","$t","zt","Gt","__localeId__","__localeData__","Zt","er","tr","rr","excludeDates","includeDates","filterDate","lr","nr","or","sr","ir","pr","cr","dr","excludeTimes","includeTimes","filterTime","ur","minTime","maxTime","fr","mr","yr","Dr","vr","wr","kr","gr","startPeriod","endPeriod","Cr","Sr","yearsList","incrementYears","decrementYears","shiftYears","yearDropdownItemNumber","scrollableYearDropdown","_r","Mr","dropdownVisible","onSelectChange","renderSelectOptions","visibility","toggleDropdown","renderReadView","renderDropdown","adjustDateOnChange","handleYearChange","setOpen","dropdownMode","renderScrollMode","renderSelectMode","Pr","monthNames","Er","Nr","useShortMonthInDropdown","Or","Yr","monthYearsList","scrollableMonthYearDropdown","xr","Tr","Ir","onMouseEnter","handleOnKeyDown","disabledKeyboardNavigation","preSelection","highlightDates","selectsStart","selectsEnd","selectingDate","isInSelectingRange","dayClassName","isExcluded","isKeyboardSelected","isRangeStart","isRangeEnd","isInRange","isSelectingRangeStart","isSelectingRangeEnd","isWeekend","isOutsideMonth","getHighLightedClass","ariaLabelPrefixWhenEnabled","ariaLabelPrefixWhenDisabled","getTabIndex","isInputFocused","inline","shouldFocusDayInline","containerRef","dayEl","preventScroll","monthShowsDuplicateDaysEnd","monthShowsDuplicateDaysStart","renderDayContents","getClassNames","handleMouseEnter","getAriaLabel","role","handleFocusDay","Lr","weekNumber","ariaLabelPrefix","Fr","onDayClick","onDayMouseEnter","onWeekSelect","shouldCloseOnSelect","formatWeekNumber","calendarStartDay","showWeekNumber","handleWeekClick","chooseDayAriaLabelPrefix","disabledDayAriaLabelPrefix","handleDayClick","handleDayMouseEnter","renderDays","Rr","orderInDisplay","onMouseLeave","fixedHeight","weekAriaLabelPrefix","showWeekNumbers","isWeekInMonth","peekNextMonth","setPreSelection","MONTH_REFS","onMonthClick","handleMonthNavigation","monthClassName","isRangeStartMonth","isRangeEndMonth","isRangeStartQuarter","isRangeEndQuarter","showFullMonthYearPicker","showTwoColumnMonthYearPicker","showFourColumnMonthYearPicker","onMonthKeyDown","getMonthClassNames","onQuarterClick","getQuarterClassNames","showMonthYearPicker","showQuarterYearPicker","handleMouseLeave","renderMonths","renderQuarters","renderWeeks","qr","timeClassName","injectTimes","intervals","openToDate","liClasses","centerLi","calcCenterPosition","monthRef","todayButton","showTimeSelectOnly","timeCaption","renderTimes","onTimeChange","offsetTop","Ar","handleYearClick","yearItemNumber","onYearClick","getYearClassNames","Wr","customTimeInput","timeInputLabel","renderTimeInput","Br","showPopperArrow","arrowProps","Kr","jr","onClickOutside","onDropdownFocus","handleMonthChange","onMonthMouseLeave","onYearChange","onMonthChange","handleMonthYearChange","weekLabel","formatWeekday","weekDayClassName","formatWeekDay","useWeekdaysShort","showYearPicker","renderCustomHeader","forceShowMonthNavigation","showDisabledMonthNavigation","decreaseMonth","decreaseYear","previousMonthAriaLabel","previousYearAriaLabel","previousYearButtonLabel","previousMonthButtonLabel","increaseMonth","increaseYear","nextMonthAriaLabel","nextYearAriaLabel","nextYearButtonLabel","nextMonthButtonLabel","showYearDropdown","showMonthDropdown","showMonthYearDropdown","changeYear","changeMonth","changeMonthYear","monthDate","renderCurrentMonth","handleDropdownFocus","renderMonthDropdown","renderMonthYearDropdown","renderYearDropdown","monthContainer","customHeaderCount","prevMonthButtonDisabled","nextMonthButtonDisabled","prevYearButtonDisabled","nextYearButtonDisabled","renderYearHeader","renderDefaultHeader","showPreviousMonths","monthsShown","monthSelectedIn","renderHeader","handleMonthMouseLeave","timeIntervals","withPortal","handleTimeKeyDown","showTimeInput","getDateInView","assignMonthContainer","renderPreviousButton","renderNextButton","renderYears","renderTodayButton","renderTimeSection","renderInputTimeSection","Hr","Qr","tabLoopRef","getTabChildren","enableTabLoop","handleFocusStart","handleFocusEnd","Vr","portalRoot","portalId","Ur","wrapperClassName","hidePopper","popperComponent","popperModifiers","popperPlacement","popperProps","popperOnKeyDown","Popper","modifiers","placement","popperContainer","Manager","Reference","$r","zr","Gr","Jr","getPreSelection","startOpen","preventFocus","preventFocusTimeout","blur","cancelFocusInput","calcInitialState","lastPreSelectChange","Zr","setBlur","preventOpenOnFocus","inputFocusTimeout","setFocus","onChangeRaw","Xr","strictParsing","setSelected","allowSameDay","focusSelectedMonth","onInputClick","componentNode","inputOk","handleSelect","onInputError","onClearClick","closeOnScroll","isCalendarOpen","dateFormatCalendar","handleCalendarClickOutside","outsideClickIgnoreClass","handleTimeChange","calendarClassName","calendarContainer","excludeScrollbar","onDayKeyDown","customInput","customInputRef","handleBlur","handleChange","handleFocus","onInputKeyDown","placeholderText","ariaDescribedBy","ariaInvalid","ariaLabelledBy","ariaRequired","isClearable","clearButtonTitle","clearButtonClassName","ariaLabelClose","onCalendarOpen","onCalendarClose","clearPreventFocusTimeout","renderCalendar","renderDateInput","renderClearButton","popperClassName","onPopperKeyDown","CalendarContainer","getDefaultLocale","registerLocale","setDefaultLocale","isNodeFound","ignoreClass","correspondingElement","seed","passiveEventSupport","handlersMap","enabledInstances","touchEvents","IGNORE_CLASS_NAME","getEventHandlerOptions","eventName","handlerOptions","onClickOutsideHOC","_class","__outsideClickHandler","__clickOutsideHandlerProp","getInstance","handleClickOutside","__getComponentNode","setClickOutsideRef","enableOnClickOutside","_uid","testPassiveEventSupport","findHighest","disableOnClickOutside","getRef","instanceRef","wrappedRef","getClass","ECBlocks","ecBlocks","ECB","DataMaskValues","codewords","Mode_1","bits","available","FormatException_1","DecodeHintType_1","startI","stateCount","maxCount","FinderPatternInfo","BitMatrixParser_1","DataBlock_1","currentByte","IllegalArgumentException_1","Mode","BrowserQRCodeSvgWriter","hints","BlockPair","errorCorrectionBytes","FinderPattern","resultPoints","minDenom","maxDenom","UPCEANReader_1","UPCEANExtension5Support_1","UPCEANExtension2Support_1","System_1","inputOffset","dataWidth","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","once","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","equalArrays","equalByTag","equalObjects","getTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","assocIndexOf","pairs","LARGE_ARRAY_SIZE","isMasked","toSource","reIsHostCtor","funcProto","reIsNative","nativeObjectToString","isOwn","unmasked","coreJsData","maskSrcKey","IE_PROTO","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","getMapData","setCacheAdd","setCacheHas","mapToArray","setToArray","symbolProto","symbolValueOf","byteLength","byteOffset","getAllKeys","objProps","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","baseGetAllKeys","getSymbols","arrayPush","keysFunc","symbolsFunc","arrayFilter","stubArray","nativeGetSymbols","resIndex","baseTimes","isIndex","inherited","isArr","isArg","isBuff","isType","skipIndexes","iteratee","typedArrayTags","freeProcess","isPrototype","nativeKeys","Ctor","overArg","DataView","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","baseAssignValue","keyBy","createAggregator","arrayAggregator","baseAggregator","baseIteratee","initializer","accumulator","baseEach","baseForOwn","createBaseEach","baseFor","createBaseFor","fromRight","iterable","eachFunc","baseMatches","baseMatchesProperty","identity","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","isStrictComparable","hasIn","baseGet","memoizeCapped","rePropName","reEscapeChar","quote","subString","memoize","resolver","memoized","Cache","baseToString","arrayMap","symbolToString","baseHasIn","hasPath","hasFunc","baseProperty","basePropertyDeep","dateWithMonths","dateWithDays","minutesToAdd","secondsToAdd","msToAdd","finalDate","isSunday","isSaturday","addBusinessDays","startedOnWeekend","fullWeeks","restDays","setISOWeekYear","dirtyISOWeekYear","addISOWeekYears","addQuarters","addSeconds","areIntervalsOverlapping","dirtyIntervalLeft","dirtyIntervalRight","inclusive","intervalLeft","intervalRight","leftStartTime","leftEndTime","rightStartTime","rightEndTime","closestIndexTo","timeToCompare","closestTo","compareAsc","compareDesc","daysInWeek","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","minutesInHour","monthsInQuarter","monthsInYear","quartersInYear","secondsInHour","secondsInMinute","daysToWeeks","differenceInBusinessDays","calendarDifference","differenceInCalendarISOWeekYears","differenceInCalendarISOWeeks","startOfISOWeekLeft","startOfISOWeekRight","differenceInCalendarQuarters","quarterDiff","compareLocalAsc","differenceInDays","isLastDayNotFull","differenceInMilliseconds","differenceInHours","subISOWeekYears","differenceInISOWeekYears","isLastISOWeekYearNotFull","differenceInMinutes","isLastDayOfMonth","differenceInMonths","isLastMonthNotFull","differenceInQuarters","differenceInSeconds","differenceInWeeks","differenceInYears","isLastYearNotFull","eachDayOfInterval","dirtyInterval","step","eachHourOfInterval","startOfMinute","eachMinuteOfInterval","eachMonthOfInterval","eachQuarterOfInterval","startDateQuarter","endDateQuarter","currentQuarter","eachWeekOfInterval","startDateWeek","endDateWeek","currentWeek","eachWeekendOfInterval","dateInterval","weekends","eachWeekendOfMonth","endOfYear","eachWeekendOfYear","eachYearOfInterval","endOfDecade","decade","endOfHour","endOfISOWeek","endOfISOWeekYear","setMilliseconds","endOfMinute","endOfQuarter","endOfSecond","endOfToday","endOfTomorrow","endOfYesterday","cloneObject","dirtyBaseDate","localizeOptions","offsetInSeconds","includeSeconds","nearestMonth","monthsSinceStartOfYear","formatDistanceStrict","roundingMethodFn","roundingMethod","dstNormalizedMinutes","MINUTES_IN_DAY","roundedMinutes","formatDistanceToNow","distanceInWords","formatDistanceToNowStrict","formatDuration","zero","acc","formatISO","representation","tzOffset","dateDelimiter","timeDelimiter","absoluteOffset","hourOffset","minuteOffset","formatISO9075","formatISODuration","_duration$years","_duration$months","_duration$days","_duration$hours","_duration$minutes","_duration$seconds","formatRFC3339","fractionDigits","fractionalSecond","formatRFC7231","dayName","baseDate","_ref$locale","_ref$weekStartsOn","utcBaseDate","fromUnixTime","dirtyUnixTime","unixTime","getDayOfYear","getDaysInYear","getDecade","getISODay","getISOWeeksInYear","thisYear","nextYear","getOverlappingDaysInIntervals","isOverlapping","overlapStartDate","overlapEndDate","differenceInMs","getUnixTime","getWeekYear","_options$locale","_options$locale$optio","startOfWeekYear","getWeek","getWeekOfMonth","currentDayOfMonth","startWeekDay","lastDayOfFirstWeek","remainingDaysAfterFirstWeek","getWeeksInMonth","hoursToMilliseconds","hoursToMinutes","hoursToSeconds","sub","dateWithoutMonths","dateWithoutDays","minutestoSub","secondstoSub","mstoSub","intervalToDuration","remainingMonths","remainingDays","remainingHours","remainingMinutes","remainingSeconds","intlFormat","formatOrLocale","localeOptions","_localeOptions","formatOptions","isFormatOptions","Intl","DateTimeFormat","isExists","isFirstDayOfMonth","isFriday","isMatch","isMonday","isPast","startOfHour","isSameHour","dateLeftStartOfHour","dateRightStartOfHour","isSameWeek","dateLeftStartOfWeek","dateRightStartOfWeek","isSameISOWeek","isSameISOWeekYear","dateLeftStartOfYear","dateRightStartOfYear","isSameMinute","dateLeftStartOfMinute","dateRightStartOfMinute","startOfSecond","isSameSecond","dateLeftStartOfSecond","dateRightStartOfSecond","isThisHour","isThisISOWeek","isThisMinute","isThisMonth","isThisQuarter","isThisSecond","isThisWeek","isThisYear","isThursday","isToday","isTomorrow","isTuesday","isWednesday","isYesterday","lastDayOfDecade","lastDayOfWeek","lastDayOfISOWeek","lastDayOfISOWeekYear","lastDayOfQuarter","lastDayOfYear","lightFormat","totalDays","totalSeconds","millisecondsToHours","millisecondsToMinutes","millisecondsToSeconds","minutesToHours","minutesToMilliseconds","minutesToSeconds","monthsToQuarters","monthsToYears","nextFriday","nextMonday","nextSaturday","nextSunday","nextThursday","nextTuesday","nextWednesday","parseJSON","quartersToMonths","quartersToYears","roundToNearestMinutes","nearestTo","remainderMinutes","addedMinutes","secondsToHours","secondsToMilliseconds","secondsToMinutes","dirtyDayOfMonth","setDay","setDayOfYear","dirtyDayOfYear","setISODay","setISOWeek","dirtyMilliseconds","setWeek","setWeekYear","dirtyWeekYear","startOfDecade","startOfToday","startOfTomorrow","startOfYesterday","subBusinessDays","subQuarters","subSeconds","weeksToDays","yearsToMonths","yearsToQuarters","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$useState","referenceNode","setReferenceNode","hasUnmounted","handleSetReferenceNode","unwrapArray","safeInvoke","setRef","fromEntries","getWindow","getWindowScroll","win","pageXOffset","pageYOffset","isHTMLElement","isShadowRoot","ShadowRoot","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","scroll","getNodeScroll","clientLeft","clientTop","getLayoutRect","clientRect","offsetWidth","offsetHeight","getParentNode","assignedSlot","listScrollParents","_element$ownerDocumen","scrollParent","getScrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","willChange","getContainingBlock","basePlacements","variationPlacements","placements","modifierPhases","requires","requiresIfExists","dep","depModifier","debounce","DEFAULT_OPTIONS","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","popper","orderedModifiers","modifiersData","attributes","styles","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","_ref3$options","effect","cleanupFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","_options$scroll","_options$resize","getBasePlacement","getVariation","getMainAxisFromPlacement","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","dpr","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","getOppositePlacement","getOppositeVariationPlacement","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","referenceElement","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","mathMax","mathMin","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","createPopper","eventListeners","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","initialStyles","attribute","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_min","_max","_preventedOffset","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","EMPTY_MODIFIERS","usePopper","popperElement","prevOptions","optionsWithDefaults","updateStateModifier","popperOptions","popperInstanceRef","popperInstance","defaultCreatePopper","NOOP","NOOP_PROMISE","_ref$placement","_ref$strategy","_ref$modifiers","setPopperElement","_React$useState2","setArrowElement","_usePopper","childrenProps","hide","refHandler","globalCssModule","mapToCssModules","cssModule","tagPropType","Spinner","Tag"],"mappings":"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B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,EAAG,EA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AAI,IACzC,WAAW,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,IAAK,GAAI,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,IAAK,GAAI,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,IAAK,GAAI,IACzC,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,IAC1C,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,IAC1C,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,IAC1C,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,IAC1C,WAAW,KAAK,CAAC,EAAG,GAAI,GAAI,GAAI,KAAM,GAAI,IAC1C,WAAW,KAAK,CAAC,EA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","file":"static/js/2.238d28a5.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","export class RioMenuItemApiModel {\r\n menuItemID: number;\r\n areaName: string;\r\n controller: string;\r\n controllerAction: string;\r\n resourceName: string;\r\n newWindow: boolean;\r\n icon: string;\r\n label: string;\r\n\r\n childItems: Array;\r\n}","import { RioSeverity } from \"../enums/Severity\";\r\n\r\nexport class RioValidationApiModel {\r\n severity: RioSeverity;\r\n resourceName: string;\r\n}","export enum RioPermissionFlags {\r\n None = 0,\r\n Read = 1,\r\n Edit = 2,\r\n Add = 4,\r\n Delete = 8\r\n}","export enum RioSeverity {\r\n none = 0,\r\n success = 1,\r\n warning = 2,\r\n danger = 3,\r\n info = 4\r\n}","export class RioNumberHelpers {\r\n static pad(input: number, width: number, replacer?: string) {\r\n replacer = replacer || \"0\";\r\n const inputAsString = input + \"\";\r\n return inputAsString.length >= width\r\n ? inputAsString\r\n : new Array(width - inputAsString.length + 1).join(replacer) + inputAsString;\r\n }\r\n\r\n static isNumeric(input: any): boolean {\r\n return !isNaN(parseFloat(input)) && isFinite(input);\r\n }\r\n\r\n static getMaxInt() {\r\n return 2147483647;\r\n }\r\n\r\n static roundCurrency(input: number): number {\r\n if (input == null) {\r\n return null;\r\n } else {\r\n return this.roundToDecimalPlaces(input, 2);\r\n }\r\n }\r\n\r\n static roundToDecimalPlaces(input: number, decimalplaces: number): number {\r\n if (input == null) {\r\n return null;\r\n } else {\r\n return Math.round((input * Math.pow(10, decimalplaces)) + Number.EPSILON) / Math.pow(10, decimalplaces);\r\n }\r\n }\r\n\r\n static numberWithCommas(input: number, dp: number = 2): string {\r\n if (!input) return (0).toFixed(dp);\r\n return input.toFixed(dp).replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n}","import * as React from \"react\";\r\n\r\ninterface IIfProps {\r\n condition: boolean;\r\n then: JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n otherwise?: JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n}\r\n\r\nexport class RioIf extends React.Component {\r\n render() {\r\n if (this.props.condition) {\r\n return this.props.then;\r\n } else {\r\n if (!!this.props.otherwise) {\r\n return this.props.otherwise;\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface IIfFuncProps {\r\n condition: boolean;\r\n then: () => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n otherwise?: () => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n}\r\n\r\nexport class RioIfFunc extends React.Component {\r\n render() {\r\n if (this.props.condition) {\r\n return this.props.then();\r\n } else {\r\n if (!!this.props.otherwise) {\r\n return this.props.otherwise();\r\n } else {\r\n return null;\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface IIterateProps {\r\n iterations: number;\r\n perform: (iteration: number) => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n}\r\n\r\nexport class RioIterate extends React.Component {\r\n render() {\r\n const result: Array = [];\r\n for (let i = 1; i <= this.props.iterations; i++) {\r\n result.push(this.props.perform(i));\r\n }\r\n return result;\r\n }\r\n}\r\n\r\ninterface IForEachProps {\r\n items: Array;\r\n perform: (item: T, index: number) => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n}\r\n\r\nexport class RioForEach extends React.Component, null> {\r\n render() {\r\n if (!this.props.items || this.props.items.length === 0) return null;\r\n\r\n const result = this.props.items.map((item, index) => {\r\n if (!item) return null;\r\n return this.props.perform(item, index);\r\n });\r\n\r\n return result;\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioNumberHelpers } from \"../helpers/NumberHelpers\";\r\nimport { RioIf } from \"../helpers/logic\";\r\n\r\ninterface IFinancialProps {\r\n value: number;\r\n currencySymbol: string;\r\n exchangeRate: number;\r\n reverse: boolean;\r\n showOnlyPound?: boolean;\r\n}\r\n\r\n\r\ninterface IFinancialState {\r\n\r\n}\r\n\r\nclass RioSimpleFinancial extends React.Component {\r\n static defaultProps = {\r\n currencySymbol: \"£\",\r\n exchangeRate: 1,\r\n reverse: false,\r\n showOnlyPound: true\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {RioNumberHelpers.numberWithCommas(this.props.value)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport class RioFinancial extends RioSimpleFinancial {\r\n static defaultProps = {\r\n reverse: false,\r\n currencySymbol: \"\",\r\n exchangeRate: 1,\r\n showOnlyPound: false\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n\r\n };\r\n }\r\n\r\n applyExchangeRate(input: number, reverse: boolean = false): string {\r\n if (!input) return \"0.00\";\r\n\r\n let convertedInput = this.props.exchangeRate ? (reverse ? (input / this.props.exchangeRate) : (input * this.props.exchangeRate)) : input;\r\n return isNaN(convertedInput) ? \"0.00\" : RioNumberHelpers.numberWithCommas(convertedInput);\r\n }\r\n\r\n render() {\r\n if (!this.props.exchangeRate) {\r\n return (\r\n
\r\n No Exchange Rate Found!\r\n
\r\n );\r\n }\r\n\r\n var hide = (this.props.currencySymbol === \"£\");\r\n\r\n if (hide) {\r\n if (!!this.props.showOnlyPound) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
{this.props.value ? RioNumberHelpers.numberWithCommas(this.props.value) : \"0.00\"}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n
{this.applyExchangeRate(this.props.value)}
\r\n
\r\n }/>\r\n
\r\n (
£
\r\n
{RioNumberHelpers.numberWithCommas(this.props.value)}
)\r\n
\r\n
\r\n } otherwise={\r\n
\r\n \r\n
\r\n
{RioNumberHelpers.numberWithCommas(this.props.value)}
\r\n
\r\n } />\r\n
\r\n (
£
\r\n
{this.applyExchangeRate(this.props.value, this.props.reverse)}
)\r\n
\r\n
\r\n } />\r\n );\r\n }\r\n}","import * as React from \"react\";\r\n\r\ninterface IUnsafeProps {\r\n html: string;\r\n className?: string;\r\n title?: string;\r\n onClick?: () => void;\r\n}\r\n\r\n/**\r\n * Use for rendering plain HTML within a React component. SHOULD NOT BE USED for any unsanitised user input\r\n */\r\nexport class RioUnsafe extends React.Component {\r\n render() {\r\n if (!this.props.html) return null;\r\n\r\n return !!this.props.onClick && this.props.onClick()} title={this.props.title || \"\"} dangerouslySetInnerHTML={{ __html: this.props.html }}>;\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioResource } from \"../helpers/Resources\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\n\r\ninterface IIconProps {\r\n resource: IRioResource;\r\n className?: string;\r\n onClick?: () => void;\r\n}\r\n\r\nexport class RioIcon extends React.Component {\r\n render() {\r\n return (\r\n !!this.props.onClick && this.props.onClick()} />\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioIfFunc, RioIf } from \"../helpers/logic\";\r\nimport { IRioResource } from \"../helpers/Resources\";\r\nimport { RioUnsafe } from \"../components/Unsafe\";\r\n\r\ninterface IIconButtonProps {\r\n resource: IRioResource;\r\n\r\n busyResource?: IRioResource;\r\n busy?: boolean;\r\n\r\n hideText?: boolean;\r\n hideImage?: boolean;\r\n className?: string;\r\n disabled?: boolean;\r\n\r\n hasPermission: boolean;\r\n\r\n onClick: () => void;\r\n onMiddleClick?: () => void;\r\n}\r\n\r\nexport class RioIconButton extends React.Component {\r\n constructor(props: IIconButtonProps) {\r\n super(props);\r\n\r\n this.handleMouseUp = this.handleMouseUp.bind(this);\r\n }\r\n\r\n render() {\r\n let title = this.props.resource.text;\r\n if (!this.props.hideText) {\r\n title = \"\";\r\n }\r\n if (this.props.hasPermission == false) {\r\n return null;\r\n }\r\n return (\r\n ) => this.handleClick(e)}\r\n onMouseDown={(e: React.MouseEvent) => e.button === 1 && e.preventDefault()}\r\n onMouseUp={(e: React.MouseEvent) => this.handleMouseUp(e)}\r\n >\r\n \r\n \r\n \r\n } />\r\n {this.props.resource.text}\r\n } />\r\n \r\n } otherwise={() =>\r\n \r\n \r\n } />\r\n {this.props.busyResource.text}\r\n } />\r\n \r\n } />\r\n \r\n );\r\n }\r\n\r\n handleClick(e: React.MouseEvent) {\r\n e.stopPropagation();\r\n\r\n this.props.onClick();\r\n }\r\n\r\n handleMouseUp(e: React.MouseEvent) {\r\n if (e.button === 1 && !!this.props.onMiddleClick) {\r\n e.stopPropagation();\r\n this.props.onMiddleClick();\r\n }\r\n }\r\n}","export class RioGuid {\r\n static newGuid: () => string = () => {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioGuid } from \"../helpers/Guid\";\r\n\r\ninterface IModalProps {\r\n visible: boolean;\r\n className?: string;\r\n onCancel: () => void;\r\n backgroundClickDisabled?: boolean;\r\n}\r\n\r\n\r\nexport class RioModal extends React.Component {\r\n static stack: Array = [];\r\n\r\n private id = RioGuid.newGuid();\r\n private static escapeKey = 27;\r\n\r\n render() {\r\n if (!this.props.visible) return null;\r\n return (\r\n
) => this.onBackgroundClicked(e)}>\r\n
) => this.onContentClicked(e)}>\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n\r\n componentDidMount(): void {\r\n document.addEventListener(\"keydown\", (e) => this.onKeyDown(e.keyCode), false);\r\n RioModal.stack.push(this.id);\r\n }\r\n\r\n componentWillUnmount(): void {\r\n RioModal.stack.pop();\r\n document.removeEventListener(\"keydown\", (e) => this.onKeyDown(e.keyCode), false);\r\n }\r\n\r\n onBackgroundClicked(e: React.MouseEvent | React.TouchEvent): void {\r\n if (e.target !== e.currentTarget || !!this.props.backgroundClickDisabled) {\r\n return;\r\n }\r\n\r\n this.closeModal();\r\n }\r\n\r\n onContentClicked(e: React.MouseEvent): void {\r\n e.stopPropagation();\r\n }\r\n\r\n onKeyDown(keyCode: number): void {\r\n if (keyCode === RioModal.escapeKey) {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n closeModal(): void {\r\n if (RioModal.stack[RioModal.stack.length - 1] === this.id) {\r\n this.props.onCancel();\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioValidator, IRioValidatedInputProps, IRioValidatedInputState, IRioValidatedInput, IRioValidations } from \"../helpers/Validator\";\r\nimport { RioIfFunc, RioForEach } from \"../helpers/logic\";\r\n\r\ninterface IRioValidationSummaryProps {\r\n validator: RioValidator;\r\n name?: string;\r\n className?: string;\r\n}\r\n\r\ninterface IRioValidationSummaryState {\r\n\r\n}\r\n\r\nexport class RioValidationSummary extends React.Component implements IRioValidatedInput {\r\n getKey(): string {\r\n return !!this.props.name ? this.props.name : \"ValidationSummary\";\r\n }\r\n\r\n getValue(): any {\r\n return null;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false\r\n };\r\n }\r\n\r\n componentDidMount(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n componentWillUnmount(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n render() {\r\n const hasValidationErrors = !!this.props.validator && (this.props.validator.submitAttempted || this.state.blurred) && this.props.validator.getErrors(this).length > 0;\r\n var className = \"validationSummary\" + (!!this.props.className ? \" \" + this.props.className : \"\") + (this.props.validator.getErrors(this).length == 0 ? \" hide\" : \"\");\r\n return (\r\n \r\n
\r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import { IRioModelErrors } from \"../../apiModels/IModelErrors\";\r\n\r\nexport class ApiResponse {\r\n success: boolean;\r\n statusCode: number;\r\n item?: T;\r\n errors: IRioModelErrors;\r\n}","import { ApiResponse } from \"./ApiResponse\";\r\n\r\nexport class ApiErrorHandler{\r\n\r\n /**\r\n * Run if any api request in the application returns a 401, \r\n * typically so that the application can redirect to the login page\r\n */\r\n static onUnauthorised: (response: ApiResponse) => any;\r\n\r\n /**\r\n * Run if any api request in the application returns a 503, \r\n * typically so that the application can redirect to an app maintenance page\r\n */\r\n static onServiceUnavailable: (response: ApiResponse) => any;\r\n}","import { ApiResponse } from \"./ApiResponse\";\r\nimport { ApiErrorHandler } from \"./ApiErrorHandler\";\r\nimport { IRioModelErrors } from \"../../apiModels/IModelErrors\";\r\n\r\nexport abstract class ApiRequest{\r\n uri: string;\r\n abstract send(): void;\r\n onDone: (this: ApiRequest, response: ApiResponse) => any;\r\n\r\n xhrOnLoad(xhr: XMLHttpRequest) : any {\r\n var response = new ApiResponse();\r\n response.statusCode = xhr.status;\r\n response.success = xhr.status <= 300;\r\n if (response.success) {\r\n if (xhr.responseText) {\r\n response.item = JSON.parse(xhr.responseText) as T;\r\n }\r\n } else {\r\n if((xhr.status === 401 || xhr.status == 302) && !!ApiErrorHandler.onUnauthorised){\r\n ApiErrorHandler.onUnauthorised(response);\r\n }\r\n else if(xhr.status === 503 && !!ApiErrorHandler.onServiceUnavailable){\r\n ApiErrorHandler.onServiceUnavailable(response);\r\n }\r\n if (xhr.responseText) {\r\n response.errors = JSON.parse(xhr.responseText) as IRioModelErrors;\r\n }\r\n }\r\n !!this.onDone && this.onDone(response);\r\n }\r\n\r\n xhrOnLoadGetFile(xhr: XMLHttpRequest) : any {\r\n if (xhr.response.type === \"application/json\") {\r\n const response = new ApiResponse();\r\n const contentTypeHeader = xhr.getResponseHeader(\"Content-Type\");\r\n response.statusCode = xhr.status;\r\n response.success = xhr.status <= 300;\r\n if(!response.success){\r\n if((xhr.status === 401 || xhr.status == 302) && !!ApiErrorHandler.onUnauthorised){\r\n ApiErrorHandler.onUnauthorised(response);\r\n }\r\n else if(xhr.status === 503 && !!ApiErrorHandler.onServiceUnavailable){\r\n ApiErrorHandler.onServiceUnavailable(response);\r\n }\r\n }\r\n var reader = new FileReader();\r\n reader.onload = () => {\r\n response.item = JSON.parse(reader.result.toString()) as T;\r\n !!this.onDone && this.onDone(response);\r\n }\r\n const fullBlob = new Blob([xhr.response], { type: contentTypeHeader });\r\n reader.readAsText(fullBlob);\r\n\r\n } else {\r\n const blob = xhr.response;\r\n const header = xhr.getResponseHeader(\"Content-Disposition\");\r\n const response = new ApiResponse();\r\n response.statusCode = xhr.status;\r\n\r\n response.success = xhr.status <= 300;\r\n if (response.success) {\r\n const filename = this.getFileNameByContentDisposition(header);\r\n const downloadLink = window.document.createElement(\"a\");\r\n const contentTypeHeader = xhr.getResponseHeader(\"Content-Type\");\r\n downloadLink.href = window.URL.createObjectURL(new Blob([blob], { type: contentTypeHeader }));\r\n downloadLink.download = filename;\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n else{\r\n if((xhr.status === 401 || xhr.status == 302) && !!ApiErrorHandler.onUnauthorised){\r\n ApiErrorHandler.onUnauthorised(response);\r\n }\r\n else if(xhr.status === 503 && !!ApiErrorHandler.onServiceUnavailable){\r\n ApiErrorHandler.onServiceUnavailable(response);\r\n }\r\n }\r\n !!this.onDone && this.onDone(response);\r\n }\r\n \r\n }\r\n\r\n getFileNameByContentDisposition(contentDisposition: string): string {\r\n const regex = /filename[^;=\\n]*=(UTF-8(['\"]*))?(.*)/;\r\n const matches = regex.exec(contentDisposition);\r\n let filename: string = \"\";\r\n\r\n if (matches != null && matches[3]) {\r\n filename = matches[3].replace(/['\"]/g, \"\");\r\n }\r\n\r\n if (filename.includes(\"; filename\")) {\r\n const endIndex = filename.indexOf(\"; filename\");\r\n filename = filename.substring(0, endIndex);\r\n }\r\n return decodeURI(filename);\r\n }\r\n}","import { ApiRequest } from \"./ApiRequest\";\r\n\r\nexport class RioApiGet extends ApiRequest {\r\n constructor(apiUri: string) {\r\n super();\r\n this.uri = apiUri;\r\n }\r\n\r\n send() {\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = true;\r\n xhr.open(\"get\", this.uri, true);\r\n xhr.onload = () => { \r\n this.xhrOnLoad(xhr);\r\n }\r\n xhr.send();\r\n }\r\n\r\n sendAndGetFile() {\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = true;\r\n xhr.open(\"get\", this.uri, true);\r\n xhr.responseType = \"blob\";\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n xhr.onload = () => { \r\n this.xhrOnLoadGetFile(xhr);\r\n }\r\n xhr.send();\r\n }\r\n\r\n /**\r\n * Performs a GET but returns in the form of a Promise\r\n */\r\n static asPromise(apiUrl: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n var call = new RioApiGet(apiUrl);\r\n call.onDone = response => {\r\n if (response.success) {\r\n resolve(response.item);\r\n } else {\r\n reject(response.errors);\r\n }\r\n }\r\n call.send();\r\n });\r\n }\r\n}\r\n\r\nexport class RioApiPost extends ApiRequest {\r\n constructor(apiUri: string, item: Object) {\r\n super();\r\n this.uri = apiUri;\r\n this.item = item;\r\n }\r\n item: Object;\r\n\r\n send() {\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = true;\r\n xhr.open(\"post\", this.uri, true);\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n xhr.onload = () => { \r\n this.xhrOnLoad(xhr);\r\n }\r\n xhr.send(JSON.stringify(this.item));\r\n }\r\n\r\n sendAndGetFile() {\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = true;\r\n xhr.open(\"post\", this.uri, true);\r\n xhr.responseType = \"blob\";\r\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\r\n xhr.onload = () => { \r\n this.xhrOnLoadGetFile(xhr);\r\n }\r\n xhr.send(JSON.stringify(this.item));\r\n }\r\n\r\n /**\r\n * Performs a POST but returns in the form of a Promise\r\n */\r\n static asPromise(apiUrl: string, item: Object): Promise {\r\n return new Promise((resolve, reject) => {\r\n var call = new RioApiPost(apiUrl, item);\r\n call.onDone = response => {\r\n if (response.success) {\r\n resolve(response.item);\r\n } else {\r\n reject(response.errors);\r\n }\r\n }\r\n call.send();\r\n });\r\n }\r\n}\r\n\r\nexport class RioApiDelete extends ApiRequest {\r\n constructor(apiUri: string) {\r\n super();\r\n this.uri = apiUri;\r\n }\r\n\r\n uri: string;\r\n\r\n send() {\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = true;\r\n xhr.open(\"delete\", this.uri, true);\r\n xhr.onload = () => { \r\n this.xhrOnLoad(xhr);\r\n }\r\n xhr.send();\r\n }\r\n\r\n /**\r\n * Performs a DELETE but returns in the form of a Promise\r\n */\r\n static asPromise(apiUrl: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n var call = new RioApiDelete(apiUrl);\r\n call.onDone = response => {\r\n if (response.success) {\r\n resolve(response.item);\r\n } else {\r\n reject(response.errors);\r\n }\r\n }\r\n call.send();\r\n });\r\n }\r\n}","/**\r\n * Used for updating an object in an array without mutation.\r\n * Useful for updating an object in an array in React state\r\n * @example this.setState({ items: ArrayHelpers.updateObject(this.state.items, item, { field: newValue }) });\r\n */\r\nexport class RioArrayHelpers {\r\n static updateObject(items: Array, item: T, itemAttributes: Partial): Array {\r\n const index = items.indexOf(item);\r\n if (index === -1) {\r\n throw \"Item not found in array\";\r\n }\r\n\r\n return [\r\n ...items.slice(0, index),\r\n Object.assign({}, items[index], itemAttributes),\r\n ...items.slice(index + 1)\r\n ];\r\n }\r\n\r\n static any(items: Array, predicate?: (item: T) => boolean): boolean {\r\n if (predicate == null) return items.length > 0;\r\n return (items.findIndex(predicate) > -1);\r\n }\r\n\r\n static contains(items: Array, item: T): boolean {\r\n return items.indexOf(item) > -1;\r\n }\r\n\r\n static distinct(items: Array): Array {\r\n return items.filter((value: T, index: number, self: Array) => { return self.indexOf(value) === index });\r\n }\r\n\r\n static except(items: Array, item: T): Array {\r\n if (!this.contains(items, item)) return items;\r\n\r\n const copy = [...items];\r\n\r\n copy.splice(items.indexOf(item), 1);\r\n\r\n return copy;\r\n }\r\n\r\n static exceptAny(items: Array, predicate: (item: T) => boolean): Array {\r\n const copy: Array = [];\r\n\r\n for (let currentItem of items) {\r\n if (!predicate(currentItem)) {\r\n copy.push(currentItem);\r\n }\r\n }\r\n\r\n return copy;\r\n }\r\n\r\n static first(items: Array, predicate: (item: T) => boolean): T {\r\n if (predicate == null) return items[0];\r\n\r\n const filtered = items.filter((i: T) => predicate(i));\r\n if (filtered.length === 0) return null;\r\n return filtered[0];\r\n }\r\n\r\n static last(items: Array, predicate: (item: T) => boolean): T {\r\n if (predicate == null) return items[items.length - 1];\r\n\r\n const filtered = items.filter((i: T) => predicate(i));\r\n if (filtered.length === 0) return null;\r\n return filtered[filtered.length - 1];\r\n }\r\n\r\n static page(items: Array, pageNumber: number, pageSize: number): Array {\r\n return this.take(this.skip(items, (pageNumber - 1) * pageSize), pageSize);\r\n }\r\n\r\n static skip(items: Array, total: number): Array {\r\n if (total > items.length) return [];\r\n return items.slice(total, items.length);\r\n }\r\n\r\n static sum(items: Array, predicate: (item: T) => number): number {\r\n let total = 0;\r\n\r\n for (let currentItem of items) {\r\n total += predicate(currentItem);\r\n }\r\n\r\n return total;\r\n }\r\n\r\n static take(items: Array, total: number): Array {\r\n if (items.length <= total) return [...items];\r\n return items.slice(0, total);\r\n }\r\n}","import moment from 'moment';\r\nimport { format } from 'date-fns';\r\n\r\nmoment.locale(navigator.language);\r\n\r\nexport class RioDateHelpers {\r\n // --- Moment Date helpers --- //\r\n\r\n static toDateFormat(input: string, format: string): string {\r\n if (!input || !format) return input;\r\n\r\n return moment.utc(input).local().format(format);\r\n }\r\n\r\n static toDisplayDate(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment.utc(input).local().format(\"L\");\r\n }\r\n\r\n static toDisplayDateTime(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment.utc(input).local().format(\"L LTS Z\");\r\n }\r\n\r\n static toUtcDisplayDate(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment.utc(input).format(\"L\");\r\n }\r\n\r\n static toUtcDisplayDateTime(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment.utc(input).format(\"L LTS Z\");\r\n }\r\n\r\n static toISODate(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment.utc(input).format(\"Y-MM-DD\");\r\n }\r\n\r\n static toISODateTime(input: string): string {\r\n if (!input) return input;\r\n\r\n return moment(input).utc().format(\"Y-MM-DDTHH:mm:ss[Z]\");\r\n }\r\n\r\n static toRelative(input: string): string {\r\n if (!input) return input;\r\n\r\n if (moment().diff(input, \"days\") > 0) {\r\n return RioDateHelpers.toDisplayDateTime(input);\r\n }\r\n\r\n moment.relativeTimeThreshold(\"s\", 60);\r\n moment.relativeTimeThreshold(\"ss\", 1);\r\n moment.relativeTimeThreshold(\"m\", 60);\r\n moment.relativeTimeThreshold(\"h\", 24);\r\n\r\n const relativeTime = moment.utc(input).fromNow();\r\n let outPutText: string;\r\n switch (relativeTime) {\r\n case \"a few seconds ago\":\r\n outPutText = \"1 second ago\";\r\n break;\r\n case \"a minute ago\":\r\n outPutText = \"1 minute ago\";\r\n break;\r\n case \"an hour ago\":\r\n outPutText = \"1 hour ago\";\r\n break;\r\n default:\r\n outPutText = relativeTime;\r\n break;\r\n }\r\n return outPutText;\r\n }\r\n\r\n static toUnspecifiedDateTime(input: string): string {\r\n if (!input) return input;\r\n\r\n return this.toISODateTime(input).slice(0, -1);\r\n }\r\n\r\n\r\n // --- Intl Date helpers --- //\r\n\r\n static parseInputDate(input?: string, utc: boolean = false): Date {\r\n return !!input ? new Date(input + (utc ? \"Z\": \"\")) : null;\r\n }\r\n\r\n static parseOutputDate(output?: Date, dateFormat: string = \"yyyy-MM-dd'T'HH:mm:ss\"): string {\r\n if (output === null) {\r\n return null;\r\n }\r\n\r\n //output = new Date(output.getTime() - (output.getTimezoneOffset() * 60 * 1000));\r\n\r\n return format(output, dateFormat);\r\n }\r\n\r\n static parseDisplayDate(input: string, dateFormat: string, utc: boolean = false): string {\r\n if (input === null) {\r\n return \"\";\r\n }\r\n\r\n return format(RioDateHelpers.parseInputDate(input, utc), dateFormat);\r\n }\r\n}","import { RioArrayHelpers } from \"./ArrayHelpers\";\r\n\r\nexport class RioDelimiterHelper {\r\n static stringToArray(input: string, delimiter: string = \",\"): Array {\r\n const valueArray = input.split(delimiter);\r\n for (let i = 0; i < valueArray.length; i++) {\r\n valueArray[i] = valueArray[i].trim();\r\n }\r\n return RioArrayHelpers.exceptAny(valueArray, value => value === \"\");\r\n }\r\n}","export class RioImageDataHelper {\r\n\r\n dataUrl: string;\r\n type: string;\r\n\r\n constructor(dataUrl: string, type: string) {\r\n this.dataUrl = dataUrl\r\n this.type = type\r\n }\r\n\r\n /* minify the image\r\n */\r\n minify(options: any = {}) {\r\n return new Promise((resolve, reject) => {\r\n const maxWidth = options.maxWidth || 800\r\n const maxHeight = options.maxHeight || 800\r\n const quality = options.quality || .8\r\n if (!this.dataUrl) {\r\n return reject({ message: '[error] QuillImageDropAndPaste: Fail to minify the image, dataUrl should not be empty.' })\r\n }\r\n const image = new Image()\r\n image.onload = () => {\r\n const width = image.width\r\n const height = image.height\r\n if (width > height) {\r\n if (width > maxWidth) {\r\n image.height = height * maxWidth / width\r\n image.width = maxWidth\r\n }\r\n } else {\r\n if (height > maxHeight) {\r\n image.width = width * maxHeight / height\r\n image.height = maxHeight\r\n }\r\n }\r\n const canvas = document.createElement('canvas')\r\n canvas.width = image.width\r\n canvas.height = image.height\r\n var ctx = canvas.getContext('2d')\r\n ctx.drawImage(image, 0, 0, image.width, image.height)\r\n const canvasType = this.type || 'image/png'\r\n const canvasDataUrl = canvas.toDataURL(canvasType, quality)\r\n resolve(new RioImageDataHelper(canvasDataUrl, canvasType))\r\n }\r\n image.src = this.dataUrl\r\n })\r\n\r\n }\r\n\r\n /* convert blob to file\r\n */\r\n toFile(filename: string) {\r\n if (!window.File) {\r\n console.error('[error] QuillImageDropAndPaste: Your browser didnot support File API.')\r\n return null\r\n }\r\n return new File([this.toBlob()], filename, { type: this.type })\r\n }\r\n\r\n /* convert dataURL to blob\r\n*/\r\n toBlob() {\r\n const base64 = this.dataUrl.replace(/^[^,]+,/, '')\r\n const buff = this.binaryStringToArrayBuffer(atob(base64))\r\n return this.createBlob([buff], { type: this.type })\r\n }\r\n\r\n /* create blob\r\n*/\r\n createBlob(parts: any = [], properties: any = {}) {\r\n if (typeof properties === 'string') properties = { type: properties }\r\n\r\n return new Blob(parts, properties)\r\n\r\n }\r\n\r\n /* generate array buffer from binary string\r\n */\r\n binaryStringToArrayBuffer(binary: string) {\r\n const len = binary.length\r\n const buffer = new ArrayBuffer(len)\r\n const arr = new Uint8Array(buffer)\r\n let i = -1\r\n while (++i < len) arr[i] = binary.charCodeAt(i)\r\n return buffer\r\n }\r\n}","import { RioPermissionFlags } from \"../enums/PermissionFlags\";\r\nimport { RioArrayHelpers } from \"./ArrayHelpers\";\r\nimport { IRioPermission } from \"../apiModels/IRioPermission\"\r\n\r\nexport class RioPermissions {\r\n static permissions: Array;\r\n\r\n static checkPermissions(controllerName: string, requiredPermissions: RioPermissionFlags): boolean {\r\n return requiredPermissions == RioPermissionFlags.None ||\r\n !controllerName ||\r\n RioArrayHelpers.any(RioPermissions.permissions, (p: IRioPermission) => p.controller === controllerName && (requiredPermissions === (p.permissions & requiredPermissions)));\r\n }\r\n}\r\n\r\nexport function setRioPermissions(newPermissions: Array) {\r\n RioPermissions.permissions = newPermissions;\r\n}","export class RioResources {\r\n static resources: IRioResources;\r\n\r\n static find(key: string): IRioResource {\r\n if (RioResources.resources != undefined && key in RioResources.resources) {\r\n return RioResources.resources[key];\r\n } else {\r\n return { text: `**${key}**`, image: \"\" }\r\n }\r\n }\r\n}\r\n\r\nexport function setRioResources(newResources: IRioResources) {\r\n RioResources.resources = newResources;\r\n}\r\n\r\nexport interface IRioResources {\r\n [key: string]: IRioResource;\r\n}\r\n\r\nexport interface IRioResource {\r\n text: string;\r\n image: string;\r\n}\r\n","export enum Filter {\r\n TextFilter = 1,\r\n NumberFilter = 2,\r\n DateFilter = 3,\r\n DateTimeFilter = 4,\r\n BoolFilter = 5,\r\n None = 6\r\n};","import { RioNumberHelpers } from \"./NumberHelpers\";\r\n\r\ninterface ISplitNumeric {\r\n text: string;\r\n value: number;\r\n}\r\n\r\nexport class RioStringHelpers {\r\n static removeDiacritics(input: string): string {\r\n return input.normalize('NFD').replace(/[\\u0300-\\u036f]/g, \"\");\r\n }\r\n\r\n static splitNumeric(input: string): ISplitNumeric {\r\n let letters: string = \"\";\r\n let numbers: string = \"\";\r\n\r\n for (let char of input) {\r\n if (RioNumberHelpers.isNumeric(char)) {\r\n numbers += char;\r\n } else {\r\n letters += char;\r\n }\r\n }\r\n\r\n return {\r\n text: letters,\r\n value: parseInt(numbers)\r\n };\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioResources } from \"./Resources\";\r\nimport { IRioModelErrors } from \"../apiModels/IModelErrors\";\r\nimport { RioArrayHelpers } from \"./ArrayHelpers\";\r\n\r\nexport interface IRioValidationComponentProps {\r\n validator?: RioValidator;\r\n name: string;\r\n}\r\n\r\nexport interface IRioValidatedInputProps {\r\n validations?: IRioValidations;\r\n hideValidationText?: boolean;\r\n disableCheckOnBlur?: boolean;\r\n}\r\n\r\nexport interface IRioValidatedInputState {\r\n blurred: boolean;\r\n}\r\n\r\nexport interface IRioValidatedInput {\r\n getKey: () => string;\r\n getValue: () => any;\r\n getValidations: () => IRioValidations;\r\n}\r\n\r\nexport interface IRioValidations {\r\n required?: boolean;\r\n numeric?: boolean;\r\n minValue?: number;\r\n maxValue?: number;\r\n minLength?: number;\r\n maxLength?: number;\r\n regex?: { expression: RegExp, message: string };\r\n custom?: (value: any) => Array;\r\n}\r\n\r\nexport abstract class RioExtendedValidatedInput extends React.Component & React.InputHTMLAttributes & IRioValidationComponentProps & IRioValidatedInputProps & TExtendedProps, IRioValidatedInputState> implements IRioValidatedInput {\r\n protected constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false\r\n };\r\n }\r\n\r\n target = React.createRef();\r\n\r\n getKey(): string {\r\n return this.props.name;\r\n }\r\n\r\n getValue(): any {\r\n return this.props.value;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n handleInputChanged(e: React.ChangeEvent): void {\r\n this.setState({ blurred: false });\r\n !!this.props.onChange && this.props.onChange(e);\r\n }\r\n\r\n handleInputBlurred(e: React.FocusEvent): void {\r\n if (this.props.disableCheckOnBlur) return;\r\n\r\n this.setState({ blurred: true });\r\n !!this.props.validator && this.props.validator.validate(this);\r\n !!this.props.onBlur && this.props.onBlur(e);\r\n }\r\n\r\n handleInputLoaded(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n handleInputUnloaded(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n this.handleInputLoaded();\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.handleInputUnloaded();\r\n }\r\n}\r\n\r\nexport abstract class RioValidatedInput extends RioExtendedValidatedInput { }\r\n\r\nexport class RioValidator {\r\n constructor() {\r\n }\r\n\r\n private registeredComponents: Array = [];\r\n submitAttempted = false;\r\n\r\n\r\n isValid(component: React.Component): boolean {\r\n this.submitAttempted = true;\r\n for (let registeredComponent of this.registeredComponents) {\r\n this.validate(registeredComponent.input);\r\n }\r\n const allValid = !RioArrayHelpers.any(this.registeredComponents, c => !c.valid());\r\n if (!allValid) component.forceUpdate();\r\n return allValid;\r\n }\r\n\r\n manualCheckIsValid(component: React.Component): boolean {\r\n return !RioArrayHelpers.any(this.registeredComponents, c => !c.valid());\r\n }\r\n\r\n addModelErrors(component: React.Component, errors: IRioModelErrors) {\r\n this.submitAttempted = true;\r\n for (var key in errors) {\r\n if (errors.hasOwnProperty(key)) {\r\n const currentComponent = this.registeredComponents.find(c => c.input.getKey() === key);\r\n if (currentComponent != undefined) {\r\n currentComponent.errors = currentComponent.errors.concat(errors[key]);\r\n }\r\n }\r\n }\r\n\r\n component.forceUpdate();\r\n }\r\n\r\n clearModelErrors(component: React.Component) {\r\n for (let i = 0; i < this.registeredComponents.length; i++) {\r\n if (this.registeredComponents[i] != undefined) {\r\n this.registeredComponents[i].errors = [];\r\n }\r\n }\r\n component.forceUpdate();\r\n }\r\n\r\n getErrors(input: IRioValidatedInput): Array {\r\n const component = this.registeredComponents.find(c => c.input === input);\r\n if (component == undefined) return [];\r\n return component.errors;\r\n }\r\n\r\n validate(input: IRioValidatedInput): void {\r\n const validations = input.getValidations();\r\n const value = input.getValue();\r\n\r\n let component = this.registeredComponents.find(c => c.input === input);\r\n if (component == undefined) {\r\n this.register(input);\r\n } else {\r\n component.errors = [];\r\n }\r\n\r\n if (validations == undefined) return;\r\n\r\n let errors: Array = [];\r\n\r\n if (validations.required) {\r\n if (value == null || (Array.isArray(value) && value == []) || value.toString().trim().length <= 0) {\r\n errors.push(RioResources.find(\"FieldRequired\").text);\r\n }\r\n } else {\r\n if (value == null || (Array.isArray(value) && value == []) || value.toString().trim().length === 0) {\r\n component.errors = errors;\r\n return;\r\n }\r\n }\r\n\r\n if (!!validations.regex && !!validations.regex.expression) {\r\n if (!validations.regex.expression.test(value)) {\r\n errors.push(validations.regex.message);\r\n }\r\n }\r\n\r\n if (validations.numeric) {\r\n if (!this.isNumeric(value)) {\r\n errors.push(RioResources.find(\"NotANumber\").text);\r\n }\r\n }\r\n\r\n if (!!validations.minValue || !!validations.maxValue) {\r\n if (!this.isNumeric(value)) {\r\n errors.push(RioResources.find(\"NotANumber\").text);\r\n }\r\n }\r\n\r\n if (this.isNumeric(value) && !!validations.minValue) {\r\n if (parseFloat(value) < validations.minValue) {\r\n errors.push(RioResources.find(\"NumberTooSmall\").text.replace(\"{minValue}\", validations.minValue.toString()));\r\n }\r\n }\r\n\r\n if (this.isNumeric(value) && !!validations.maxValue) {\r\n if (parseFloat(value) > validations.maxValue) {\r\n errors.push(RioResources.find(\"NumberTooLarge\").text.replace(\"{maxValue}\", validations.maxValue.toString()));\r\n }\r\n }\r\n\r\n if (!!validations.minLength) {\r\n if (value == null || value.toString().length < validations.minLength) {\r\n errors.push(RioResources.find(\"TooShort\").text.replace(\"{minLength}\", validations.minLength.toString()));\r\n }\r\n }\r\n\r\n if (!!validations.maxLength) {\r\n if (value == null || value.toString().length > validations.maxLength) {\r\n errors.push(RioResources.find(\"TooLong\").text.replace(\"{maxLength}\", validations.maxLength.toString()));\r\n }\r\n }\r\n\r\n if (!!validations.custom) {\r\n errors = errors.concat(validations.custom(value));\r\n }\r\n\r\n component.errors = errors;\r\n }\r\n\r\n isNumeric(value: any): boolean {\r\n return (!isNaN(parseFloat(value)) && isFinite(value));\r\n }\r\n\r\n register(input: IRioValidatedInput): void {\r\n const component = new ComponentState(input);\r\n this.registeredComponents.push(component);\r\n }\r\n\r\n unregister(input: IRioValidatedInput): void {\r\n const component = this.registeredComponents.find(c => c.input === input);\r\n if (component != undefined) {\r\n this.registeredComponents = RioArrayHelpers.except(this.registeredComponents, component);\r\n }\r\n }\r\n}\r\n\r\nclass ComponentState {\r\n constructor(input: IRioValidatedInput) {\r\n this.input = input;\r\n }\r\n\r\n input: IRioValidatedInput;\r\n errors: Array = [];\r\n valid: () => boolean = () => this.errors.length === 0;\r\n}","export enum TextFilterOption {\r\n StartsWith = 0,\r\n EndsWith = 1,\r\n Contains = 2\r\n}","import * as React from \"react\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioIterate } from \"../../helpers/logic\";\r\nimport { RioIconButton } from \"../IconButton\";\r\n\r\ninterface IPagerProps {\r\n itemCount: number;\r\n pageSize: number;\r\n currentPage: number;\r\n\r\n onPageChanged: (page: number) => void;\r\n}\r\n\r\ninterface IPagerState {\r\n\r\n}\r\n\r\nexport class RioPager extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n if (this.props.pageSize === 0) return null;\r\n\r\n const totalPages = Math.ceil(this.props.itemCount / this.props.pageSize);\r\n\r\n if (totalPages <= 1) return null;\r\n\r\n return (\r\n
\r\n this.handlePreviousClicked()} hasPermission={true} />\r\n \r\n this.handleNextClicked()} hasPermission={true} />\r\n
\r\n );\r\n }\r\n\r\n handlePageChanged(e: React.ChangeEvent): void {\r\n this.props.onPageChanged(parseInt(e.target.value));\r\n }\r\n\r\n handlePreviousClicked(): void {\r\n this.props.onPageChanged(this.props.currentPage - 1);\r\n }\r\n\r\n handleNextClicked(): void {\r\n this.props.onPageChanged(this.props.currentPage + 1);\r\n }\r\n\r\n getTotalPages() {\r\n return this.props.itemCount / this.props.pageSize;\r\n }\r\n}","import * as React from \"react\";\r\nimport moment from \"moment\";\r\nimport { RioIcon } from \"../components/Icon\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioIfFunc, RioForEach } from \"../helpers/logic\";\r\nimport { IRioValidationComponentProps, IRioValidatedInputProps, IRioValidatedInputState, IRioValidatedInput, IRioValidations } from \"../helpers/Validator\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport { RioDateHelpers } from \"../helpers/DateHelpers\";\r\n\r\ninterface IDatePickerProps {\r\n /** Enables the user to pick two values which are set in from and to*/\r\n range?: boolean;\r\n\r\n //** Is this a time picker or a date picker? */\r\n time?: boolean;\r\n\r\n nullable?: boolean;\r\n from?: string;\r\n to?: string;\r\n minDate?: string;\r\n maxDate?: string;\r\n utc?: boolean;\r\n timePickerIncrement?: number; //Time picker increment in minutes\r\n disabled?: boolean;\r\n readonly?: boolean;\r\n dateFormat?: string;\r\n\r\n onChange: (from: string, to: string) => void;\r\n}\r\n\r\ninterface IDatePickerState {\r\n startDate: Date;\r\n endDate?: Date;\r\n}\r\n\r\nexport class RioDatePicker extends React.Component implements IRioValidatedInput {\r\n private input = React.createRef();\r\n private displayDateFormat: string;\r\n private dataDateFormat: string;\r\n private minDate: Date;\r\n private maxDate: Date;\r\n \r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false,\r\n startDate: RioDateHelpers.parseInputDate(this.props.from, this.props.utc && this.props.time),\r\n endDate: RioDateHelpers.parseInputDate(this.props.to, this.props.utc && this.props.time)\r\n };\r\n\r\n this.displayDateFormat = this.calculateDisplayDateFormat();\r\n this.dataDateFormat = this.calculateDataDateFormat();\r\n this.minDate = RioDateHelpers.parseInputDate(this.props.minDate, this.props.utc && this.props.time);\r\n this.maxDate = RioDateHelpers.parseInputDate(this.props.maxDate, this.props.utc && this.props.time);\r\n }\r\n\r\n getKey(): string {\r\n return this.props.name;\r\n }\r\n\r\n getValue(): any {\r\n return this.props.from;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n this.handleInputValueChanged(date)}\r\n selectsRange={this.props.range}\r\n showTimeSelect={this.props.time}\r\n minDate={this.minDate}\r\n maxDate={this.maxDate}\r\n readOnly={this.props.readonly}\r\n disabled={this.props.disabled}\r\n />\r\n
\r\n\r\n \r\n\r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n );\r\n }\r\n\r\n componentDidMount(): void {\r\n this.handleInputLoaded();\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.handleInputUnloaded();\r\n }\r\n\r\n handleInputLoaded(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n handleInputUnloaded(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n focus(): void {\r\n this.input.current.focus();\r\n }\r\n\r\n clear() {\r\n this.handleInputValueChanged(null);\r\n }\r\n\r\n handleInputValueChanged(value: Date | [Date, Date] | /* for selectsRange */ null) {\r\n if (value === null) {\r\n this.setState({\r\n startDate: null,\r\n endDate: null\r\n });\r\n\r\n this.props.onChange(null, null);\r\n } else if (value instanceof Date) {\r\n this.setState({\r\n startDate: value,\r\n endDate: null\r\n });\r\n\r\n this.props.onChange(RioDateHelpers.parseOutputDate(value, this.dataDateFormat), null);\r\n } else if (value instanceof Array) {\r\n this.setState({\r\n startDate: value[0],\r\n endDate: null\r\n });\r\n\r\n this.props.onChange(RioDateHelpers.parseOutputDate(value[0], this.dataDateFormat), RioDateHelpers.parseOutputDate(value[1], this.dataDateFormat));\r\n }\r\n }\r\n\r\n calculateDisplayDateFormat(): string {\r\n if (!!this.props.dateFormat) {\r\n return this.props.dateFormat;\r\n } else if (this.props.time) {\r\n return \"dd/MM/yyyy HH:mm:ss\";\r\n } else {\r\n return \"dd/MM/yyyy\";\r\n }\r\n }\r\n \r\n calculateDataDateFormat(): string {\r\n return \"yyyy-MM-dd'T'HH:mm:ss\";\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioDatePicker } from \"../../components/DatePicker\";\r\nimport { RioIconButton } from \"../../components/IconButton\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioIcon } from \"../../components/Icon\";\r\nimport { RioDateHelpers } from \"../../helpers/DateHelpers\";\r\n \r\n\r\ninterface IDateFilterComponentProps {\r\n onFromChanged: (dateFrom: Date) => void;\r\n onToChanged: (dateTo: Date) => void; //Need 2 functions because of race conditions when clearing filters\r\n dateFormat: string;\r\n includeTime: boolean;\r\n closeFilter: () => void;\r\n}\r\n\r\ninterface IDateFilterComponentState {\r\n dateFrom?: Date;\r\n dateTo?: Date;\r\n}\r\n\r\nexport class DateFilterComponent extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n dateFrom: new Date(),\r\n dateTo: new Date()\r\n };\r\n }\r\n\r\n private filterWrapperElement = React.createRef();\r\n private dateFromPicker = React.createRef();\r\n private dateToPicker = React.createRef();\r\n private dateFormat = !!this.props.dateFormat ? this.props.dateFormat : \"DD/MM/YYYY\"\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.props.closeFilter()} hasPermission={true} />\r\n
\r\n {RioResources.find(\"From\").text}:\r\n \r\n { this.handleFromChanged(from) }} time={this.props.includeTime} dateFormat={this.dateFormat} asUtc={true} />\r\n \r\n \r\n
\r\n {RioResources.find(\"To\").text}:\r\n \r\n { this.handleToChanged(from) }} time={this.props.includeTime} dateFormat={this.dateFormat} asUtc={true} />\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n handleFromChanged(date: Date) {\r\n this.setState({\r\n dateFrom: date\r\n });\r\n this.props.onFromChanged(date);\r\n if (!!date && !!this.state.dateTo && date > this.state.dateTo) { //if from > to, set to to be from\r\n this.dateToPicker.current.handleInputValueChanged(date);\r\n }\r\n }\r\n\r\n handleToChanged(date: Date) {\r\n this.setState({\r\n dateTo: date,\r\n });\r\n\r\n this.props.onToChanged(date);\r\n \r\n if (!!date && !!this.state.dateFrom && this.state.dateFrom > date) { //if from > to, set from to be to\r\n this.dateFromPicker.current.handleInputValueChanged(date);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkIfOffScreen();\r\n }\r\n\r\n checkIfOffScreen() {\r\n if (!!this.filterWrapperElement.current) {\r\n const filterWindowElement = this.filterWrapperElement.current.parentElement;\r\n const filterWindowElementPosition = filterWindowElement.getBoundingClientRect();\r\n\r\n const tableRowElement = filterWindowElement.parentElement.parentElement;\r\n const tableRowElementPosition = tableRowElement.getBoundingClientRect();\r\n\r\n if (filterWindowElementPosition.right > tableRowElementPosition.right) {\r\n filterWindowElement.classList.add(\"right\");\r\n }\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.dateFromPicker.current.clear();\r\n this.dateToPicker.current.clear();\r\n }\r\n}","import * as React from \"react\";\r\nimport moment from \"moment\";\r\nimport { IGridViewFilter } from \"../IGridViewFilter\";\r\nimport { DateFilterComponent } from \"./DateFilterComponent\";\r\n\r\n\r\nexport class DateFilter implements IGridViewFilter {\r\n constructor(private callback: () => void, private closeFilter: () => void, private dateFormat: string, private includeTime: boolean) {\r\n }\r\n\r\n dateFrom: Date;\r\n dateTo: Date;\r\n\r\n validate(value: string | number): boolean {\r\n return true;\r\n }\r\n\r\n private dateFilterComponent = React.createRef();\r\n\r\n render() {\r\n return (\r\n {\r\n this.dateFrom = dateFrom\r\n this.callback();\r\n }}\r\n onToChanged={(dateTo) => {\r\n this.dateTo = dateTo;\r\n this.callback();\r\n }}\r\n includeTime={this.includeTime}\r\n closeFilter={this.closeFilter}\r\n />\r\n );\r\n }\r\n\r\n clearFilter() {\r\n this.dateFilterComponent.current.clearFilter();\r\n }\r\n\r\n filterActive(): boolean {\r\n if (!!this.dateFrom || !!this.dateTo) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { RioResources, IRioResource } from \"../helpers/Resources\";\r\nimport { RioIf } from \"../helpers/logic\";\r\nimport { RioIcon } from \"../components/Icon\";\r\n\r\n\r\ninterface ICheckboxProps {\r\n checkedResource?: IRioResource;\r\n nullResource?: IRioResource;\r\n onChange: () => void;\r\n checked?: boolean;\r\n readonly?: boolean;\r\n}\r\n\r\nexport class RioCheckbox extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n var classNameString = \"rioCheckBoxWrapper\";\r\n if (!!this.props.readonly) {\r\n classNameString += \" readOnly\";\r\n }\r\n if (!!this.props.checked) {\r\n classNameString += \" checked\";\r\n }\r\n \r\n return (\r\n \r\n this.onKeyDown(e)} onClick={!!this.props.readonly ? null : this.props.onChange}>\r\n \r\n \r\n } otherwise={\r\n this.onKeyDown(e)} onClick={!!this.props.readonly ? null : this.props.onChange}>\r\n \r\n \r\n } otherwise={\r\n
this.onKeyDown(e)} onClick={!!this.props.readonly ? null : this.props.onChange}>
\r\n }/> \r\n } />\r\n \r\n
\r\n );\r\n }\r\n\r\n onKeyDown(e: React.KeyboardEvent) {\r\n switch (e.key) {\r\n case \" \":\r\n this.props.onChange();\r\n break;\r\n case \"Enter\":\r\n this.props.onChange();\r\n break;\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioCheckbox } from \"../../components/Checkbox\";\r\nimport { RioIconButton } from \"../../components/IconButton\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\n\r\n\r\ninterface IBoolFilterComponentProps {\r\n onChange: (value: boolean) => void;\r\n closeFilter: () => void;\r\n}\r\n\r\ninterface IBoolFilterComponentState {\r\n checked: boolean;\r\n}\r\n\r\nexport class BoolFilterComponent extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n checked: null\r\n };\r\n }\r\n\r\n private filterWrapperElement = React.createRef();\r\n private checkBox = React.createRef();\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.props.closeFilter()} hasPermission={true} />\r\n
\r\n {RioResources.find(\"Filter\").text}:\r\n \r\n this.handleCheckboxChanged()} />\r\n
\r\n );\r\n }\r\n\r\n handleCheckboxChanged() {\r\n let newValue: boolean;\r\n if (this.state.checked == null) {\r\n newValue = true\r\n } else if (this.state.checked) {\r\n newValue = false\r\n } else {\r\n newValue = null\r\n }\r\n\r\n this.changeValueTo(newValue);\r\n }\r\n\r\n changeValueTo(newValue: boolean) {\r\n this.setState({\r\n checked: newValue\r\n });\r\n this.props.onChange(newValue);\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkIfOffScreen();\r\n }\r\n\r\n checkIfOffScreen() {\r\n if (!!this.filterWrapperElement.current) {\r\n const filterWindowElement = this.filterWrapperElement.current.parentElement;\r\n const filterWindowElementPosition = filterWindowElement.getBoundingClientRect();\r\n\r\n const tableRowElement = filterWindowElement.parentElement.parentElement;\r\n const tableRowElementPosition = tableRowElement.getBoundingClientRect();\r\n\r\n if (filterWindowElementPosition.right > tableRowElementPosition.right) {\r\n filterWindowElement.classList.add(\"right\");\r\n }\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.changeValueTo(null);\r\n }\r\n\r\n}","import * as React from \"react\";\r\nimport { IGridViewFilter } from \"../IGridViewFilter\"\r\nimport { BoolFilterComponent } from \"./BoolFilterComponent\";\r\n\r\nexport class BoolFilter implements IGridViewFilter {\r\n constructor(private callback: () => void, private closeFilter: () => void) {\r\n }\r\n\r\n filterValue: boolean = null;\r\n\r\n validate(value: boolean): boolean {\r\n if (this.filterValue == null) {\r\n return true; //if filter cleared show all\r\n } else if (value != null && (value == this.filterValue)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private boolFilterComponent = React.createRef();\r\n\r\n render() {\r\n return (\r\n {\r\n this.filterValue = value;\r\n this.callback();\r\n }}\r\n closeFilter={this.closeFilter}\r\n />\r\n );\r\n }\r\n\r\n clearFilter() {\r\n this.boolFilterComponent.current.clearFilter();\r\n }\r\n\r\n filterActive(): boolean {\r\n if (this.filterValue == null) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { RioIcon } from \"../../components/Icon\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioIconButton } from \"../../components/IconButton\";\r\n\r\n\r\ninterface INumberFilterComponentProps {\r\n onChange: (minvalue: number, maxvalue: number) => void;\r\n closeFilter: () => void;\r\n}\r\n\r\ninterface INumberFilterComponentState {\r\n minvalue: number;\r\n maxvalue: number;\r\n}\r\n\r\nexport class NumberFilterComponent extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n minvalue: null,\r\n maxvalue: null\r\n };\r\n }\r\n\r\n private filterWrapperElement = React.createRef();\r\n\r\n render() {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.props.closeFilter()} hasPermission={true} />\r\n
\r\n {RioResources.find(\"From\").text}:\r\n \r\n ) => this.onMinValueBackSpace(e)} onChange={(e: React.ChangeEvent) => { this.setState({ minvalue: parseFloat(e.target.value) }); this.props.onChange(parseFloat(e.target.value), this.state.maxvalue); }}>\r\n \r\n \r\n
\r\n {RioResources.find(\"To\").text}:\r\n \r\n ) => this.onMaxValueBackSpace(e)} onChange={(e: React.ChangeEvent) => { this.setState({ maxvalue: parseFloat(e.target.value) }); this.props.onChange(this.state.minvalue, parseFloat(e.target.value)); }}>\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkIfOffScreen();\r\n }\r\n\r\n checkIfOffScreen() {\r\n if (!!this.filterWrapperElement.current) {\r\n const filterWindowElement = this.filterWrapperElement.current.parentElement;\r\n const filterWindowElementPosition = filterWindowElement.getBoundingClientRect();\r\n\r\n const tableRowElement = filterWindowElement.parentElement.parentElement;\r\n const tableRowElementPosition = tableRowElement.getBoundingClientRect();\r\n\r\n if (filterWindowElementPosition.right > tableRowElementPosition.right) {\r\n filterWindowElement.classList.add(\"right\");\r\n }\r\n }\r\n }\r\n\r\n onMinValueBackSpace(e: React.KeyboardEvent) {\r\n if (e.keyCode === 8) {\r\n if (e.currentTarget.value === \"\") {\r\n this.setState({ minvalue: null }); this.props.onChange(null, this.state.maxvalue);\r\n }\r\n }\r\n }\r\n\r\n onMaxValueBackSpace(e: React.KeyboardEvent) {\r\n if (e.keyCode === 8) {\r\n if (e.currentTarget.value === \"\") {\r\n this.setState({ maxvalue: null }); this.props.onChange(this.state.minvalue, null);\r\n }\r\n }\r\n }\r\n\r\n clearFilter() {\r\n this.setState({\r\n minvalue: null,\r\n maxvalue: null\r\n });\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { IGridViewFilter } from \"../IGridViewFilter\";\r\nimport { NumberFilterComponent } from \"./NumberFilterComponent\";\r\n\r\n\r\nexport class NumberFilter implements IGridViewFilter {\r\n constructor(private callback: () => void, private closeFilter: () => void) {\r\n }\r\n\r\n minvalue: number = null;\r\n maxvalue: number = null;\r\n\r\n validate(value: string | number): boolean {\r\n if (value !== null &&\r\n ((value >= this.minvalue && value <= this.maxvalue) ||\r\n (value >= this.minvalue && this.maxvalue === null) ||\r\n (this.minvalue === null && value <= this.maxvalue) ||\r\n (this.minvalue === null && this.maxvalue === null))) {\r\n return true;\r\n } else if (value === null && this.minvalue === null && this.maxvalue === null) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private minMaxFilterComponent = React.createRef();\r\n\r\n render() {\r\n return {\r\n if (maxvalue >= minvalue || maxvalue === null || minvalue === null) {\r\n this.minvalue = minvalue;\r\n this.maxvalue = maxvalue;\r\n this.callback();\r\n }\r\n }}\r\n closeFilter={this.closeFilter}\r\n />;\r\n }\r\n\r\n clearFilter() {\r\n this.minvalue = null;\r\n this.maxvalue = null;\r\n this.minMaxFilterComponent.current.clearFilter();\r\n this.callback();\r\n }\r\n\r\n filterActive(): boolean {\r\n if (this.minvalue === null && this.maxvalue === null) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { TextFilterOption } from \"../../enums/TextFilterOption\";\r\nimport { RioIconButton } from \"../../components/IconButton\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioIcon } from \"../../components/Icon\";\r\n\r\n\r\ninterface ITextFilterComponentProps {\r\n onChange: (inputValue: string, dropdownValue: TextFilterOption) => void;\r\n closeFilter: () => void;\r\n}\r\n\r\ninterface ITextFilterComponentState {\r\n inputValue: string;\r\n dropdownValue: TextFilterOption;\r\n}\r\n\r\nexport class TextFilterComponent extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n inputValue: \"\",\r\n dropdownValue: 0\r\n };\r\n }\r\n\r\n private filterWrapperElement = React.createRef();\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.props.closeFilter()} hasPermission={true} />\r\n
\r\n {RioResources.find(\"FilterType\").text}:\r\n \r\n \r\n \r\n { /* empty to make sure filter button lines up */}\r\n
\r\n {RioResources.find(\"Text\").text}:\r\n \r\n ) => { this.setState({ inputValue: e.target.value }); this.props.onChange(e.target.value, this.state.dropdownValue); }}>\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n componentDidUpdate() {\r\n this.checkIfOffScreen();\r\n }\r\n\r\n checkIfOffScreen() {\r\n if (!!this.filterWrapperElement.current) {\r\n const filterWindowElement = this.filterWrapperElement.current.parentElement;\r\n const filterWindowElementPosition = filterWindowElement.getBoundingClientRect();\r\n\r\n const tableRowElement = filterWindowElement.parentElement.parentElement;\r\n const tableRowElementPosition = tableRowElement.getBoundingClientRect();\r\n\r\n if (filterWindowElementPosition.right > tableRowElementPosition.right) {\r\n filterWindowElement.classList.add(\"right\");\r\n }\r\n }\r\n }\r\n\r\n handleDropDownChanged(value: number) {\r\n let result = isNaN(value) ? TextFilterOption.StartsWith : value\r\n this.setState({\r\n dropdownValue: isNaN(value) ? TextFilterOption.StartsWith : value\r\n });\r\n\r\n this.props.onChange(this.state.inputValue, result)\r\n }\r\n\r\n clearFilter() {\r\n this.setState({\r\n inputValue: \"\"\r\n });\r\n this.props.onChange(\"\", this.state.dropdownValue);\r\n }\r\n}","import * as React from \"react\";\r\nimport { IGridViewFilter } from \"../IGridViewFilter\";\r\nimport { TextFilterOption } from \"../../enums/TextFilterOption\";\r\nimport { RioStringHelpers } from \"../../helpers/StringHelpers\";\r\nimport { TextFilterComponent } from \"./TextFilterComponent\";\r\n\r\nexport class TextFilter implements IGridViewFilter {\r\n constructor(private callback: () => void, private closeFilter: () => void) {\r\n }\r\n\r\n inputValue: string = \"\";\r\n dropDownValue: TextFilterOption = TextFilterOption.StartsWith;\r\n\r\n validate(value: string | number): boolean {\r\n if (!this.filterActive()) {\r\n return true;\r\n } else if (value == null) {\r\n return false;\r\n } else {\r\n switch (this.dropDownValue) {\r\n case TextFilterOption.StartsWith:\r\n return RioStringHelpers.removeDiacritics(value.toString().toLowerCase()).startsWith(RioStringHelpers.removeDiacritics(this.inputValue.toLowerCase()));\r\n case TextFilterOption.EndsWith:\r\n return RioStringHelpers.removeDiacritics(value.toString().toLowerCase()).endsWith(RioStringHelpers.removeDiacritics(this.inputValue.toLowerCase()));\r\n case TextFilterOption.Contains:\r\n return RioStringHelpers.removeDiacritics(value.toString().toLowerCase()).includes(RioStringHelpers.removeDiacritics(this.inputValue.toLowerCase()));\r\n default:\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n private startEndsWithFilterComponent = React.createRef();\r\n\r\n render() {\r\n return {\r\n this.inputValue = inputValue;\r\n this.dropDownValue = dropDownValue;\r\n this.callback();\r\n }}\r\n closeFilter={this.closeFilter}\r\n />;\r\n }\r\n\r\n clearFilter() {\r\n this.startEndsWithFilterComponent.current.clearFilter();\r\n }\r\n\r\n filterActive(): boolean {\r\n return !!this.inputValue\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { RioForEach, RioIfFunc } from \"../helpers/logic\";\r\nimport { RioValidatedInput } from \"../helpers/Validator\";\r\n\r\nexport class RioInput extends RioValidatedInput {\r\n render() {\r\n const hasValidationErrors = !!this.props.validator && (this.props.validator.submitAttempted || this.state.blurred) && this.props.validator.getErrors(this).length > 0;\r\n\r\n const p = { ...this.props };\r\n delete p['disableCheckOnBlur'];\r\n delete p['hideValidationText'];\r\n\r\n return (\r\n \r\n ) => this.handleInputChanged(e)}\r\n onBlur={(e: React.FocusEvent) => this.handleInputBlurred(e)}\r\n ref={this.target} />\r\n\r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { Filter } from \"../../enums/Filter\";\r\nimport { RioPager } from \"./Pager\";\r\nimport { DateFilter } from \"../../filters/date/DateFilter\";\r\nimport { BoolFilter } from \"../../filters/bool/BoolFilter\";\r\nimport { NumberFilter } from \"../../filters/number/NumberFilter\";\r\nimport { TextFilter } from \"../../filters/text/TextFilter\";\r\nimport { IGridViewFilter } from \"../../filters/IGridViewFilter\";\r\nimport { IGridViewAction } from \"./IGridViewAction\";\r\nimport { IGridViewColumn } from \"./IGridViewColumn\";\r\nimport { RioResources, IRioResource } from \"../../helpers/Resources\";\r\nimport { RioArrayHelpers } from \"../../helpers/ArrayHelpers\";\r\nimport { RioIf, RioForEach, RioIfFunc } from \"../../helpers/logic\";\r\nimport { RioStringHelpers } from \"../../helpers/StringHelpers\";\r\nimport { RioCheckbox } from \"../Checkbox\";\r\nimport { RioIcon } from \"../Icon\";\r\nimport { RioIconButton } from \"../IconButton\";\r\nimport { RioInput } from \"../Input\";\r\nimport { RioUnsafe } from \"../Unsafe\";\r\n\r\ninterface IGridViewProps {\r\n noResults: IRioResource;\r\n items: Array;\r\n columns: Array>;\r\n actions?: Array>;\r\n rowKey: (item: T, index: number) => number | string;\r\n rowClassName?: (item: T) => string;\r\n rowIsSelectable?: (item: T) => boolean;\r\n selectableRowTitle?: string;\r\n filterDateFormat?: string;\r\n filterDateTimeFormat?: string;\r\n onSelectedChanged?: (selected: Array) => void;\r\n}\r\n\r\ninterface IGridViewState {\r\n filteredItems: Array;\r\n selectedItems: Array;\r\n settledColumns: Array>;\r\n page: number;\r\n pageSize: number;\r\n sortColumn: number; /** 1-based index - value of 0 is no sort column, negative value is a reverse (descending) sort */\r\n displayFilterColumn: number;\r\n searchableInputText: string;\r\n}\r\n\r\nexport class RioGridView extends React.Component, IGridViewState> {\r\n constructor(props: Readonly>) {\r\n super(props);\r\n\r\n this.state = {\r\n filteredItems: [],\r\n selectedItems: [],\r\n settledColumns: [],\r\n page: 1,\r\n pageSize: 10,\r\n sortColumn: 0,\r\n displayFilterColumn: null,\r\n searchableInputText: \"\"\r\n };\r\n }\r\n\r\n private activeFilterDiv = React.createRef();\r\n\r\n\r\n render() {\r\n const hasActions = !!this.props.actions && this.props.actions.length > 0;\r\n const hasFilters = RioArrayHelpers.any(this.props.columns, x => x.renderedFilter != null);\r\n const sortedArray = this.sortItems();\r\n const pageItems = !sortedArray ? null : RioArrayHelpers.page(sortedArray, this.state.page, this.state.pageSize);\r\n\r\n return (\r\n \r\n { /* GridViewStart */}\r\n
this.handleKeyDown(e)}>\r\n { /* searchable combobox */}\r\n x.searchable)} then={\r\n
\r\n {RioResources.find(\"QuickSearch\").text}:\r\n this.handleSearchableInputTextChanged(e.currentTarget.value)} />\r\n \r\n
\r\n } />\r\n
\r\n \r\n \r\n \r\n { /* We add an extra column for checkboxes if a function to determine the row is selectable is provided */}\r\n \r\n {this.props.selectableRowTitle ?? \"\"}\r\n \r\n } />\r\n , index: number) => {\r\n if (column.hidden) return null;\r\n if (!!column.renderedFilter) {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n\r\n }} />\r\n { /* If an action or filter is provided we create another column for the actions or the clearfilters button */}\r\n \r\n this.clearAllFilters()} hasPermission={true} />\r\n } />\r\n \r\n } />\r\n \r\n \r\n \r\n 0} then={\r\n \r\n { /* We only want to show the paged items */}\r\n {\r\n return (\r\n \r\n \r\n this.handleSelectedCheckClicked(item)} />\r\n } />\r\n \r\n } />\r\n ) => {\r\n if (column.hidden) return null;\r\n return (\r\n \r\n );\r\n }} />\r\n { /* Display actions */}\r\n \r\n ) => {\r\n if (!!action.visible && !action.visible(item)) return null;\r\n if (!!action.customDisplay) {\r\n return (action.customDisplay(item));\r\n } else {\r\n return ( action.onClick(item)} onMiddleClick={() => !!action.onMiddleClick && action.onMiddleClick(item)} key={action.resource.text} hasPermission={action.hasPermission} disabled={!!action.disabled && !!action.disabled(item)} />);\r\n }\r\n }} />\r\n \r\n } />\r\n \r\n );\r\n }} />\r\n !!c.displayTotal)} then={\r\n \r\n , index: number) => {\r\n if (column.hidden) return null;\r\n return (\r\n \r\n );\r\n }} />\r\n \r\n } />\r\n \r\n } />\r\n \r\n } otherwise={\r\n \r\n \r\n \r\n } />\r\n \r\n
this.handleColumnClicked(index)}>\r\n {column.title}\r\n
\r\n this.handleFilterClicked(index)} hasPermission={true} />\r\n
\r\n {this.renderSortState(index)}\r\n
\r\n
\r\n
) => e.stopPropagation()}>\r\n {column.renderedFilter.render()}\r\n
\r\n {column.customHeadingContent && column.customHeadingContent()}\r\n } />\r\n
this.handleColumnClicked(index)}>\r\n \r\n {column.title}\r\n\r\n
\r\n {this.renderSortState(index)}\r\n
\r\n\r\n {column.customHeadingContent && column.customHeadingContent()}\r\n } />\r\n \r\n } />\r\n
column.onItemClick ? column.onItemClick(item) : this.handleRowClicked(item)}>\r\n {!!column.displayValue ? column.displayValue(item, index) : column.value(item)}\r\n
\r\n {\r\n return (\r\n \r\n\r\n \r\n );\r\n }} otherwise={() => {\r\n return (\r\n Total:\r\n } />\r\n );\r\n }} />\r\n
{ /* rowIsSelectable is a function, this is a check if the function is provided*/}\r\n {this.props.noResults.text}\r\n
\r\n
\r\n \r\n this.handlePageChanged(newPage)} />\r\n
\r\n } />\r\n \r\n
\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n this.settleColumns();\r\n this.filterItems(null, null, true);\r\n }\r\n\r\n componentWillReceiveProps(nextProps: IGridViewProps) {\r\n if (nextProps.items !== this.props.items) {\r\n this.filterItems(nextProps.columns, nextProps.items);\r\n }\r\n }\r\n\r\n //we need to build the filters into the columns based on the filter type\r\n settleColumns() {\r\n var settledColumns: Array> = [];\r\n\r\n this.props.columns.forEach((column, index) => {\r\n let filter: IGridViewFilter;\r\n switch (column.filter) {\r\n case Filter.TextFilter:\r\n filter = new TextFilter(() => this.filterItems(), () => this.filterClose());\r\n break;\r\n case Filter.NumberFilter:\r\n filter = new NumberFilter(() => this.filterItems(), () => this.filterClose());\r\n break;\r\n case Filter.DateFilter:\r\n filter = new DateFilter(() => this.filterItems(), () => this.filterClose(), this.props.filterDateFormat, false);\r\n break;\r\n case Filter.DateTimeFilter:\r\n filter = new DateFilter(() => this.filterItems(), () => this.filterClose(), this.props.filterDateTimeFormat, true);\r\n break;\r\n case Filter.BoolFilter:\r\n filter = new BoolFilter(() => this.filterItems(), () => this.filterClose());\r\n break;\r\n case Filter.None:\r\n filter = null;\r\n break;\r\n default:\r\n filter = null;\r\n break;\r\n }\r\n\r\n var settledColumn: IGridViewColumn = {\r\n title: column.title, displayValue: column.displayValue, value: column.value, className: column.className,\r\n titleClassName: column.titleClassName, disableSorting: column.disableSorting, hidden: column.hidden, blankHeader: column.blankHeader,\r\n customHeadingContent: column.customHeadingContent, displayTotal: column.displayTotal, onItemClick: column.onItemClick, totalReducer: column.totalReducer,\r\n filter: column.filter, renderedFilter: filter, searchable: column.searchable\r\n }\r\n\r\n settledColumns.push(settledColumn);\r\n });\r\n\r\n this.setState({\r\n settledColumns: settledColumns\r\n });\r\n }\r\n\r\n filterItems(nextPropColumns: Array> = null, nextPropItems: Array = null, isMounting = false) {\r\n let filteredArray: Array;\r\n let columns = nextPropColumns ?? this.state.settledColumns;\r\n let items = nextPropItems ?? this.props.items;\r\n let searchTerms = RioStringHelpers.removeDiacritics(this.state.searchableInputText).trim().toLowerCase().split(\" \");\r\n\r\n //filter by search input (only if there is at least 1 searchable column and search term)\r\n if (RioArrayHelpers.any(searchTerms, x => !!x.trim()) && RioArrayHelpers.any(columns, x => x.searchable)) {\r\n filteredArray = items.filter(item => {\r\n var includeItem = false;\r\n for (let i = 0; i < columns.length; i++) {\r\n if (!columns[i].searchable) {\r\n continue;\r\n }\r\n for (let j = 0; j < searchTerms.length; j++) {\r\n let valueToSearch = !!columns[i].displayValue ? RioStringHelpers.removeDiacritics(columns[i].displayValue(item)?.toString().toLowerCase() ?? \"\") : RioStringHelpers.removeDiacritics(columns[i].value(item)?.toString().toLowerCase() ?? \"\")\r\n if (!!searchTerms[j].trim() && valueToSearch.includes(searchTerms[j])) {\r\n includeItem = true;\r\n break;\r\n }\r\n }\r\n }\r\n return includeItem;\r\n });\r\n } else {\r\n filteredArray = items\r\n }\r\n\r\n //filter by filter control\r\n filteredArray = filteredArray.filter(item => {\r\n var includeItem = true;\r\n for (let i = 0; i < columns.length; i++) {\r\n if (!!columns[i].renderedFilter && !!columns[i].value && !columns[i].renderedFilter.validate(columns[i].value(item))) {\r\n includeItem = false;\r\n break;\r\n }\r\n }\r\n return includeItem;\r\n });\r\n\r\n let totalPages = Math.max(Math.ceil(filteredArray.length / this.state.pageSize), 1); //always at least 1 page\r\n\r\n this.setState({\r\n filteredItems: filteredArray,\r\n page: Math.min(this.state.page, totalPages, 1) //if we were on a page that no longer exists make sure we go to the latest.\r\n });\r\n\r\n if (!isMounting) {\r\n this.handleSelectedChanged([])\r\n }\r\n }\r\n\r\n clearAllFilters() {\r\n for (let i = 0; i < this.state.settledColumns.length; i++) {\r\n if (!!this.state.settledColumns[i].renderedFilter) {\r\n this.state.settledColumns[i].renderedFilter.clearFilter();\r\n }\r\n }\r\n }\r\n\r\n handlePageChanged(newPage: number): void {\r\n this.setState({\r\n page: newPage\r\n });\r\n }\r\n\r\n handleRowClicked(item: T): void {\r\n const defaultAction = this.getDefaultAction();\r\n\r\n if (defaultAction != undefined && (defaultAction.visible == undefined || defaultAction.visible(item))) {\r\n defaultAction.onClick(item);\r\n } else if (!!this.props.rowIsSelectable && this.props.rowIsSelectable(item)) {\r\n this.handleSelectedCheckClicked(item);\r\n }\r\n }\r\n\r\n handleColumnClicked(index: number): void {\r\n if (this.props.columns[index].disableSorting) return;\r\n if (Math.abs(this.state.sortColumn) !== (index + 1)) {\r\n this.setState({\r\n sortColumn: index + 1\r\n });\r\n } else {\r\n this.setState({\r\n sortColumn: -this.state.sortColumn\r\n });\r\n }\r\n }\r\n\r\n handleFilterClicked(index: number) {\r\n this.setState({\r\n displayFilterColumn: index\r\n });\r\n\r\n if (!!this.activeFilterDiv?.current) {\r\n this.activeFilterDiv.current.focus();\r\n }\r\n }\r\n\r\n handleKeyDown(e: React.KeyboardEvent) {\r\n if (e.keyCode === 27) { //escape\r\n this.filterClose();\r\n }\r\n }\r\n\r\n filterClose() {\r\n if (this.state.displayFilterColumn !== null) {\r\n this.setState({\r\n displayFilterColumn: null\r\n });\r\n }\r\n }\r\n\r\n sortItems(): Array {\r\n if (this.state.sortColumn === 0) return this.state.filteredItems;\r\n\r\n const sortColumn = this.props.columns[Math.abs(this.state.sortColumn) - 1];\r\n\r\n let sortedArray: Array;\r\n\r\n sortedArray = this.state.filteredItems.sort((a, b) => {\r\n if (typeof sortColumn.value(a) === \"number\" && typeof sortColumn.value(b) === \"number\") {\r\n return sortColumn.value(a) > sortColumn.value(b) ? 1 : -1;\r\n } else {\r\n var sortedA = sortColumn.value(a) == null ? \"\" : sortColumn.value(a);\r\n var sortedB = sortColumn.value(b) == null ? \"\" : sortColumn.value(b);;\r\n return sortedA.toString().localeCompare(sortedB.toString());\r\n }\r\n\r\n });\r\n\r\n if (this.state.sortColumn < 0) {\r\n sortedArray = sortedArray.reverse();\r\n }\r\n\r\n return sortedArray;\r\n }\r\n\r\n renderSortState(columnIndex: number): string | JSX.Element {\r\n // Sorting disabled\r\n if (this.props.columns[columnIndex].disableSorting) return \"\";\r\n\r\n const sortIndex: number = columnIndex + 1;\r\n\r\n if (Math.abs(this.state.sortColumn) === sortIndex) {\r\n // Sorting on this column\r\n if (this.state.sortColumn > 0) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n } else {\r\n // Sortable but not sorted\r\n return ;\r\n }\r\n }\r\n\r\n determineRowClassName(item: T): string {\r\n let className = \"\";\r\n const defaultAction = this.getDefaultAction();\r\n if (defaultAction != undefined && (defaultAction.visible == undefined || defaultAction.visible(item))) {\r\n className = className + \" clickable\";\r\n }\r\n\r\n if (!!this.props.rowClassName) {\r\n className = className + \" \" + this.props.rowClassName(item);\r\n }\r\n\r\n return className;\r\n }\r\n\r\n getDefaultAction(): IGridViewAction {\r\n if (this.props.actions == undefined) return null;\r\n return this.props.actions.find(action => action.default);\r\n }\r\n\r\n handleSelectedCheckClicked(item: T) {\r\n let index = this.state.selectedItems.findIndex(x => x == item);\r\n let items = this.state.selectedItems;\r\n if (index > -1) {\r\n items.splice(index, 1);\r\n } else {\r\n items.push(item);\r\n }\r\n\r\n this.handleSelectedChanged(items);\r\n }\r\n\r\n getSelectedItems(): Array {\r\n return this.state.selectedItems;\r\n }\r\n\r\n deselectAll() {\r\n this.handleSelectedChanged([]);\r\n }\r\n\r\n selectAll() {\r\n let items = [];\r\n for (let i = 0; i < this.state.filteredItems.length; i++) {\r\n items.push(this.state.filteredItems[i]);\r\n }\r\n this.handleSelectedChanged(items);\r\n }\r\n\r\n handleSearchableInputTextChanged(value: string) {\r\n this.setState({\r\n searchableInputText: value\r\n }, () => this.filterItems());\r\n }\r\n\r\n handleSelectedChanged(items: Array) {\r\n this.setState({\r\n selectedItems: items\r\n }, () => {\r\n if (this.props.onSelectedChanged) {\r\n this.props.onSelectedChanged(items);\r\n }\r\n });\r\n }\r\n}\r\n\r\n\r\n","import * as React from \"react\";\r\n\r\n\r\ninterface IRioToggleSwitchProps {\r\n on: boolean;\r\n enabled: boolean;\r\n className: string;\r\n id?: string;\r\n\r\n buttonText: string;\r\n toggleLabel: string;\r\n\r\n onClick: (e: any) => void;\r\n}\r\n\r\nexport class RioToggleSwitch extends React.Component {\r\n static defaultProps = {\r\n enabled: true,\r\n className: \"\",\r\n toggleLabel: \"Unpin\",\r\n buttonText: \"Pin Menu\"\r\n }\r\n\r\n render() {\r\n var classes = ['rioSwitch', this.props.className];\r\n if (this.props.on) classes.push('on');\r\n if (!this.props.enabled) classes.push('disabled');\r\n\r\n return (\r\n \r\n
this.props.enabled ? this.props.onClick(this) : null}>\r\n {this.props.toggleLabel}\r\n
{this.props.buttonText}
\r\n
\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioMenuItemApiModel } from \"../../apiModels/MenuItemApiModel\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioUnsafe } from \"../Unsafe\";\r\n\r\n\r\ninterface ISideMenuItemProps {\r\n item: RioMenuItemApiModel;\r\n active: Boolean;\r\n menuItem: string;\r\n itemClicked: (item: RioMenuItemApiModel) => void;\r\n itemMiddleClicked?: (item: RioMenuItemApiModel) => void;\r\n}\r\n\r\nexport class RioSideMenuItem extends React.Component {\r\n render() {\r\n let resource = RioResources.find(this.props.item.resourceName);\r\n if (!resource) return null;\r\n\r\n // Before\r\n var classes = \"sideMenuMainItem\" + (this.props.active ? \" active\" : \"\");\r\n\r\n // // After\r\n // var classes = classNames(\"sideMenuMainItem\", {\"active\": this.props.active});\r\n\r\n return (\r\n
this.props.itemClicked(this.props.item)}>\r\n
\r\n {resource.text}\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioMenuItemApiModel } from \"../../apiModels/MenuItemApiModel\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioForEach } from \"../../helpers/logic\";\r\n\r\n\r\ninterface ISideMenuSubItemProps {\r\n item: RioMenuItemApiModel;\r\n\r\n itemClicked: (item: RioMenuItemApiModel) => void;\r\n itemMiddleClicked?: (item: RioMenuItemApiModel) => void;\r\n}\r\n\r\nexport class RioSideMenuSubItem extends React.Component {\r\n constructor(props: ISideMenuSubItemProps) {\r\n super(props);\r\n\r\n this.handleMouseUp = this.handleMouseUp.bind(this);\r\n }\r\n \r\n render() {\r\n let resource = RioResources.find(this.props.item.resourceName);\r\n if (!resource) return null;\r\n\r\n if (!!this.props.item.childItems && this.props.item.childItems.length > 0) {\r\n return (\r\n \r\n
\r\n {resource.text}\r\n
\r\n\r\n {\r\n return this.props.itemClicked(item)} itemMiddleClicked={this.props.itemMiddleClicked} key={item.menuItemID} />;\r\n }} />\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n
this.props.itemClicked(this.props.item)} onMouseUp={this.handleMouseUp}>\r\n {resource.text}\r\n
\r\n
\r\n\t\t\t\t\t\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n handleMouseUp(e: React.MouseEvent) {\r\n if (e.button === 1 && !!this.props.itemMiddleClicked) {\r\n e.preventDefault();\r\n this.props.itemMiddleClicked(this.props.item);\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { RouteComponentProps } from \"react-router\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { ApiResponse } from \"../../helpers/apiHelpers/ApiResponse\";\r\nimport { RioForEach } from \"../../helpers/logic\";\r\nimport { RioApiGet } from \"../../helpers/apiHelpers/Api\";\r\nimport { RioMenuItemApiModel } from \"../../apiModels/MenuItemApiModel\";\r\nimport { RioToggleSwitch } from \"../ToggleSwitch\";\r\nimport { RioSideMenuItem } from \"./SideMenuItem\";\r\nimport { RioSideMenuSubItem } from \"./SideMenuSubItem\";\r\n\r\ninterface ILayoutParams {\r\n}\r\n\r\ninterface ISideMenuProps extends RouteComponentProps {\r\n menuEndpoint: string;\r\n pinnedMenuItem: string;\r\n\r\n setPinnedMenuItem: (currentMenuItem?: string) => void;\r\n}\r\n\r\ninterface ISideMenuState {\r\n open: boolean;\r\n menuItems: Array;\r\n currentMenuItem?: RioMenuItemApiModel;\r\n}\r\n\r\nexport class RioSideMenuComponent extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n open: !!this.props.pinnedMenuItem,\r\n menuItems: []\r\n };\r\n }\r\n\r\n render() {\r\n var classes = [\"sideMenu\"];\r\n if (!!this.props.pinnedMenuItem) classes.push('pinned');\r\n if (this.state.open) classes.push('open');\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n componentDidMount(): void {\r\n this.loadMenu();\r\n }\r\n\r\n loadMenu() {\r\n const call = new RioApiGet>(this.props.menuEndpoint);\r\n\r\n call.onDone = (response: ApiResponse) => {\r\n if (response.success) {\r\n this.setState({\r\n menuItems: response.item\r\n }, () => {\r\n if (!this.props.pinnedMenuItem) {\r\n return;\r\n }\r\n\r\n var pinnedMenuItem = this.props.pinnedMenuItem;\r\n\r\n if (!pinnedMenuItem) {\r\n return;\r\n }\r\n\r\n var currentMenuItem = this.state.menuItems.find(function (element) {\r\n return element.resourceName === pinnedMenuItem;\r\n });\r\n\r\n this.setState({\r\n currentMenuItem: currentMenuItem\r\n });\r\n });\r\n }\r\n };\r\n\r\n call.send();\r\n }\r\n\r\n handlePinClick() {\r\n this.props.setPinnedMenuItem(!!this.props.pinnedMenuItem ? null : this.state.currentMenuItem?.resourceName);\r\n }\r\n\r\n handleSideMenuItemClicked(item: RioMenuItemApiModel): void {\r\n if (!!item.controllerAction) {\r\n this.props.history.push(item.controllerAction.startsWith('/') ? item.controllerAction : '/' + item.controllerAction);\r\n return;\r\n }\r\n\r\n let newCurrentMenuItem: RioMenuItemApiModel = item;\r\n\r\n if (this.state.currentMenuItem === newCurrentMenuItem) {\r\n if (!!this.props.pinnedMenuItem) {\r\n return;\r\n }\r\n\r\n newCurrentMenuItem = null;\r\n }\r\n\r\n this.setState({\r\n open: newCurrentMenuItem !== null,\r\n currentMenuItem: newCurrentMenuItem\r\n }, () => {\r\n if (!!this.props.pinnedMenuItem) {\r\n this.props.setPinnedMenuItem(this.state.currentMenuItem?.resourceName);\r\n }\r\n });\r\n }\r\n\r\n handleSideMenuItemMiddleClicked(item: RioMenuItemApiModel): void {\r\n if (!!item.controllerAction) {\r\n window.open(RioSideMenuComponent.generateUrl(item), \"_blank\");\r\n }\r\n }\r\n\r\n handleSideMenuSubItemClicked(item: RioMenuItemApiModel): void {\r\n if (!!item.controllerAction) {\r\n this.props.history.push(item.controllerAction.startsWith('/') ? item.controllerAction : '/' + item.controllerAction);\r\n }\r\n }\r\n\r\n handleSideMenuSubItemMiddleClicked(item: RioMenuItemApiModel): void {\r\n if (!!item.controller) {\r\n window.open(RioSideMenuComponent.generateUrl(item), \"_blank\");\r\n }\r\n }\r\n\r\n static generateUrl(item: RioMenuItemApiModel): string {\r\n if (!item.controller) {\r\n return \"#\";\r\n }\r\n\r\n return \"/\" + item.controller.replace(\"Controller\", \"\") + \"/\" + (!!item.controllerAction ? item.controllerAction : \"\");\r\n }\r\n}\r\n\r\nexport default withRouter(RioSideMenuComponent);","import * as React from \"react\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\nimport { RioForEach, RioIf } from \"../helpers/logic\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioAutoCompleteResult } from \"../apiModels/AutoCompleteResult\";\r\n\r\n\r\ninterface IAutoCompleteProps {\r\n text?: string;\r\n placeholder?: string;\r\n keepTextOnSelect: boolean;\r\n suggestionMinimumChars: number;\r\n onGetOptions: (text: string) => Promise>;\r\n onTextSelected: (item: RioAutoCompleteResult) => void;\r\n onChange?: (text: string) => void;\r\n onEnterPress?: (text: string) => void;\r\n disabled?: boolean;\r\n showIcon?: boolean;\r\n}\r\n\r\ninterface IAutoCompleteState {\r\n text: string;\r\n value?: string;\r\n options: RioAutoCompleteResult[];\r\n focusedOption: RioAutoCompleteResult;\r\n}\r\n\r\nexport class RioAutoComplete extends React.Component {\r\n static defaultProps = {\r\n showIcon: false\r\n };\r\n\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n value: null,\r\n text: this.props.text ? this.props.text : \"\",\r\n options: [],\r\n focusedOption: null\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps: IAutoCompleteProps, prevState: IAutoCompleteState) {\r\n if (prevProps.text !== this.props.text) {\r\n this.setState({ text: this.props.text ? this.props.text : \"\" });\r\n }\r\n }\r\n\r\n handleInputChange(e: React.ChangeEvent): void {\r\n this.setState({ text: e.target.value });\r\n\r\n if (e.target.value.length >= this.props.suggestionMinimumChars) {\r\n this.props.onGetOptions(e.target.value).then(v => this.setState({ options: v }));\r\n }\r\n else {\r\n this.setState({ options: [] });\r\n }\r\n\r\n if (this.props.onChange) {\r\n this.props.onChange(e.target.value);\r\n }\r\n }\r\n\r\n handleItemSelected(item: RioAutoCompleteResult) {\r\n if (this.props.keepTextOnSelect) {\r\n this.setState({\r\n text: item.label,\r\n value: item.value,\r\n });\r\n }\r\n else {\r\n this.setState({\r\n text: \"\",\r\n value: item.value,\r\n });\r\n }\r\n\r\n this.props.onTextSelected(item);\r\n this.setState({ options: [] });\r\n }\r\n\r\n handleInputBlur(e: React.FocusEvent): void {\r\n this.setState({ options: [] });\r\n }\r\n\r\n handleKeyPressed(e: React.KeyboardEvent) {\r\n switch (e.keyCode) {\r\n case 38: //ArrowUp\r\n if (!!this.state.focusedOption) {\r\n let index = this.state.options.findIndex(x => x == this.state.focusedOption);\r\n let newFocused: RioAutoCompleteResult;\r\n if (index < 1) {\r\n newFocused = null;\r\n } else {\r\n newFocused = this.state.options[index - 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.state.options[this.state.options.length - 1]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 40: //ArrowDown\r\n if (!!this.state.focusedOption) {\r\n let index = this.state.options.findIndex(x => x == this.state.focusedOption);\r\n let newFocused: RioAutoCompleteResult;\r\n if (index >= this.state.options.length - 1) {\r\n newFocused = null;\r\n } else {\r\n newFocused = this.state.options[index + 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.state.options[0]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 9: //Tab\r\n if (!!this.state.focusedOption) {\r\n this.handleItemSelected(this.state.focusedOption);\r\n }\r\n break;\r\n case 13: //Enter\r\n if (!!this.state.focusedOption) {\r\n this.handleItemSelected(this.state.focusedOption);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n scrollToFocused() {\r\n if (!!this.focusedOptionLi.current) {\r\n this.focusedOptionLi.current.scrollIntoView({\r\n block: \"center\"\r\n });\r\n }\r\n }\r\n\r\n private focusedOptionLi: React.RefObject = React.createRef();\r\n private autoCompleteInput: React.RefObject = React.createRef();\r\n\r\n render() {\r\n return (\r\n
\r\n this.handleInputChange(e)}\r\n onBlur={(e) => this.handleInputBlur(e)}\r\n disabled={this.props.disabled}\r\n onKeyPress={(e) => this.handleKeyPressed(e)}\r\n />\r\n\r\n \r\n } />\r\n 0} then={\r\n
    \r\n {\r\n return (\r\n
  • this.handleItemSelected(item)}>{item.label}
  • \r\n );\r\n }} />\r\n
\r\n } />\r\n
\r\n );\r\n }\r\n}","export class RioAutoCompleteResult {\r\n label: string;\r\n value: string;\r\n data?: any;\r\n}","import * as React from \"react\";\r\nimport { IRioValidatedInputProps, IRioValidatedInputState, IRioValidatedInput, IRioValidations, RioValidator } from \"../helpers/Validator\";\r\nimport { RioForEach, RioIfFunc } from \"../helpers/logic\";\r\n\r\n\r\ninterface IColourPickerProps {\r\n onColourChanged: (colour: string) => void;\r\n value: string;\r\n name: string;\r\n validations?: IRioValidations;\r\n validator: RioValidator;\r\n}\r\n\r\nexport class RioColourPicker extends React.Component implements IRioValidatedInput {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false\r\n };\r\n }\r\n\r\n getKey(): string {\r\n return this.props.name;\r\n }\r\n\r\n getValue(): any {\r\n if (this.props.value && this.props.value.length === 0) {\r\n return null;\r\n }\r\n\r\n return this.props.value;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n handleInputLoaded(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n handleInputUnloaded(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n this.handleInputLoaded();\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.handleInputUnloaded();\r\n }\r\n\r\n private colourOptions: Array = [\"#4D4D4D\", \"#999999\", \"#D3D3D3\", \"#F44E3B\", \"#FE9200\", \"#FCDC00\", \"#DBDF00\", \"#A4DD00\", \"#68CCCA\", \"#73D8FF\", \"#AEA1FF\", \"#FDA1FF\",\r\n \"#333333\", \"#808080\", \"#CCCCCC\", \"#D33115\", \"#E27300\", \"#FCC400\", \"#B0BC00\", \"#68BC00\", \"#16A5A5\", \"#009CE0\", \"#7B64FF\", \"#FA28FF\",\r\n \"#000000\", \"#666666\", \"#B3B3B3\", \"#9F0500\", \"#C45100\", \"#FB9E00\", \"#808900\", \"#194D33\", \"#0C797D\", \"#0062B1\", \"#653294\", \"#AB149E\"]\r\n\r\n render() {\r\n const hasValidationErrors = !!this.props.validator && (this.props.validator.submitAttempted || this.state.blurred) && this.props.validator.getErrors(this).length > 0;\r\n\r\n return (\r\n \r\n
\r\n {\r\n return (\r\n
this.props.onColourChanged(colour)}>\r\n\r\n
\r\n );\r\n }} />\r\n
\r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioResource, RioResources } from \"../helpers/Resources\";\r\nimport { IRioAction } from \"../helpers/IAction\";\r\nimport { RioForEach, RioIf } from \"../helpers/logic\";\r\nimport { RioModal } from \"./Modal\";\r\nimport { RioIconButton } from \"./IconButton\";\r\n\r\n\r\ninterface IConfirmModalProps {\r\n text?: IRioResource;\r\n title?: IRioResource;\r\n formattedText?: string;\r\n formattedTitle?: string;\r\n onConfirmModalClosed: (confirmed: boolean) => void;\r\n className?: string;\r\n hideImage?: boolean;\r\n actions?: Array;\r\n}\r\n\r\nexport class RioConfirmModal extends React.Component {\r\n render() {\r\n return this.props.onConfirmModalClosed(false)} className={this.props.className}>\r\n
\r\n \r\n {this.props.formattedTitle ?? this.props.title?.text ?? \"Confirm\"}\r\n \r\n
\r\n
\r\n

\r\n {this.props.formattedText ?? this.props.text.text}\r\n

\r\n
\r\n \r\n {\r\n if (a.hidden) return null;\r\n\r\n if (!!a.customDisplay) {\r\n return (a.customDisplay());\r\n } else {\r\n return (\r\n a.onClick()} hideImage={!!a.hideImage} key={a.resource.text} hasPermission={a.hasPermission} disabled={a.disabled} />\r\n );\r\n }\r\n }}/>\r\n \r\n }\r\n otherwise={\r\n
\r\n this.props.onConfirmModalClosed(true)} hasPermission={true} hideImage={this.props.hideImage} />\r\n this.props.onConfirmModalClosed(false)} hasPermission={true} hideImage={this.props.hideImage} />\r\n
\r\n }/>\r\n
;\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport { RioForEach, RioIf } from \"../helpers/logic\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioIconButton } from \"./IconButton\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\nimport { RioFileExtensionApiModel } from \"../apiModels/FileExtensionApiModel\";\r\n\r\ninterface IFileDropZoneProps {\r\n disabled?: boolean;\r\n onFilesAdded: (files: Array) => void;\r\n removeFileClicked?: (index: number) => void;\r\n fileList: Array\r\n multiple?: boolean;\r\n fileExtensions?: Array;\r\n fileInputAcceptString?: string;\r\n hideFilesInDropZone?: boolean;\r\n dropZoneWording?: string;\r\n}\r\n\r\ninterface IFileDropZoneState {\r\n\r\n}\r\n\r\nexport class RioFileDropZone extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n };\r\n }\r\n\r\n private fileInput = React.createRef();\r\n\r\n render() {\r\n return (\r\n this.handleDropzoneClicked()}\r\n onDrop={(e: React.DragEvent) => this.handleDropzoneDrop(e)}\r\n style={{ cursor: this.props.disabled ? \"default\" : \"pointer\" }}\r\n >\r\n \r\n {this.props.dropZoneWording}\r\n \r\n } otherwise={\r\n
\r\n {RioResources.find(\"FileDropTarget\").text}\r\n
\r\n } />\r\n \r\n \r\n } />\r\n \r\n
\r\n ) => this.onFilesAdded(e)}\r\n accept={this.props.fileInputAcceptString}\r\n />\r\n {\r\n return (\r\n
\r\n this.props.removeFileClicked(index)} hasPermission={true} />\r\n } />\r\n\r\n
\r\n \r\n
\r\n {item.name}\r\n
\r\n );\r\n }} />\r\n } />\r\n \r\n
\r\n\r\n \r\n );\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n onFilesAdded(e: React.FormEvent) {\r\n if (this.props.disabled) return;\r\n\r\n const files = e.currentTarget.files;\r\n\r\n if (!!this.props.onFilesAdded) {\r\n const array = this.fileListToArray(files);\r\n this.props.onFilesAdded(array);\r\n }\r\n }\r\n\r\n fileListToArray(list: FileList): Array {\r\n const array: Array = [];\r\n for (let i = 0; i < list.length; i++) {\r\n if (!this.fileContainedInArray(list.item(i), this.props.fileList)) {\r\n array.push(list.item(i));\r\n }\r\n }\r\n return array;\r\n }\r\n\r\n handleDropzoneClicked() {\r\n if (this.props.disabled) return;\r\n\r\n this.fileInput.current.click();\r\n }\r\n\r\n handleDropzoneDrop(e: React.DragEvent) {\r\n e.preventDefault();\r\n if (this.props.disabled) return;\r\n\r\n const files = e.dataTransfer.files;\r\n if (this.props.onFilesAdded) {\r\n const array = this.fileListToArray(files);\r\n this.props.onFilesAdded(array);\r\n }\r\n }\r\n\r\n fileContainedInArray(file: File, fileArray: Array) {\r\n var result = false;\r\n for (let i = 0; i < fileArray.length; i++) {\r\n if ((file.name == fileArray[i].name\r\n && file.type == fileArray[i].type\r\n && file.size == fileArray[i].size\r\n && file.lastModified == fileArray[i].lastModified)) {\r\n result = true;\r\n break;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n getResourceIconForFile(file: File) {\r\n var extension = file.name.split('.').pop();\r\n if (extension != undefined && this.props.fileExtensions != undefined) {\r\n var extensionInfo = this.props.fileExtensions.find(x => x.extension == extension);\r\n if (extensionInfo != undefined && extensionInfo.resourceName != undefined) {\r\n return RioResources.find(extensionInfo.resourceName).image;\r\n } else {\r\n return RioResources.find(\"FileImage\").image;\r\n }\r\n } else {\r\n return RioResources.find(\"FileImage\").image;\r\n }\r\n }\r\n}","export class RioFileExtensionApiModel {\r\n extension: string;\r\n description: string;\r\n validImage: boolean;\r\n resourceID: number;\r\n resourceName: string;\r\n}","import * as React from \"react\";\r\nimport { IRioResource, RioResources } from \"../helpers/Resources\";\r\nimport { IRioAction } from \"../helpers/IAction\";\r\nimport { RioForEach, RioIf } from \"../helpers/logic\";\r\nimport { RioIconButton } from \"./IconButton\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\n\r\n\r\ninterface IExpandingPanelProps {\r\n /** Title of the panel. Appended resource if specified */\r\n title?: string | React.Component | React.Component[] | JSX.Element | JSX.Element[];\r\n /** Resource to use for the heading - overrides any value in the title property */\r\n resource?: IRioResource;\r\n /** Additional content for the heading when collapsed - NOTE: not rendered on small screens */\r\n collapsedHeadingContent?: string | React.Component | React.Component[] | JSX.Element | JSX.Element[];\r\n /** Array of actions which are displayed as buttons in the title of the panel */\r\n actions?: Array;\r\n /** Whether the panel is expanded by default */\r\n expandedDefault: boolean;\r\n /** Whether to disable toggling of the panel by clicking in the title of the panel */\r\n disableToggle?: boolean;\r\n /** Custom ClassName */\r\n className?: string;\r\n}\r\n\r\ninterface IExpandingPanelState {\r\n expanded: boolean;\r\n}\r\n\r\nexport class RioExpandingPanel extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n expanded: props.expandedDefault\r\n };\r\n }\r\n\r\n private headingElement = React.createRef();\r\n private bodyElement = React.createRef();\r\n\r\n render() {\r\n let headingClass = \"heading\";\r\n if (!this.props.disableToggle) {\r\n headingClass = headingClass + \" expandable\";\r\n }\r\n\r\n let title: JSX.Element;\r\n if (!!this.props.resource) {\r\n title = (\r\n \r\n {!!this.props.resource.image && }\r\n {`${this.props.resource.text} ${!!this.props.title ? this.props.title : \"\"}`}\r\n \r\n );\r\n } else {\r\n title = {this.props.title};\r\n }\r\n\r\n return (\r\n
\r\n
this.handleHeadingClicked()} ref={this.headingElement}>\r\n {title}\r\n \r\n } />\r\n \r\n {\r\n if (a.hidden) return null;\r\n\r\n if (!!a.customDisplay) {\r\n return (a.customDisplay());\r\n } else {\r\n return (\r\n a.onClick()} hideImage={!!a.hideImage} key={a.resource.text} hasPermission={a.hasPermission} disabled={a.disabled} />\r\n );\r\n }\r\n }}/>\r\n \r\n }/>\r\n \r\n {this.props.collapsedHeadingContent}\r\n \r\n } />\r\n
\r\n\r\n
\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n\r\n handleHeadingClicked(): void {\r\n if (!this.props.disableToggle) {\r\n $(this.bodyElement.current).slideToggle(0);\r\n this.setState({\r\n expanded: !this.state.expanded\r\n });\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioValidationComponentProps, IRioValidatedInputProps, IRioValidatedInput, IRioValidations } from \"../helpers/Validator\";\r\nimport { RioForEach, RioIf, RioIfFunc } from \"../helpers/logic\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\nimport { RioNumberHelpers } from \"../helpers/NumberHelpers\";\r\n\r\n\r\ninterface IFinancialInputProps {\r\n currencySymbol?: string;\r\n baseCurrencySymbol?: string;\r\n exchangeRate?: number;\r\n reverse?: boolean;\r\n decimalPlaces?: number;\r\n}\r\n\r\ninterface IFinancialInputState {\r\n blurred: boolean;\r\n focussed: boolean;\r\n displayValue: string;\r\n}\r\n\r\nexport class RioFinancialInput extends React.Component & IRioValidationComponentProps & IRioValidatedInputProps & IFinancialInputProps, IFinancialInputState> implements IRioValidatedInput { \r\n protected constructor(props: Readonly & IRioValidationComponentProps & IRioValidatedInputProps & IFinancialInputProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false,\r\n focussed: false,\r\n displayValue: props.value?.toString() ?? \"\"\r\n };\r\n }\r\n\r\n target = React.createRef();\r\n\r\n getKey(): string {\r\n return this.props.name;\r\n }\r\n\r\n getValue(): any {\r\n return this.props.value;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n handleInputChanged(e: React.ChangeEvent): void {\r\n this.setState({\r\n blurred: false,\r\n displayValue: e.currentTarget.value\r\n });\r\n !!this.props.onChange && this.props.onChange(e);\r\n }\r\n\r\n handleInputBlurred(e: React.FocusEvent): void {\r\n this.setState({\r\n blurred: true,\r\n focussed: false\r\n });\r\n if (this.props.disableCheckOnBlur) return;\r\n !!this.props.validator && this.props.validator.validate(this);\r\n !!this.props.onBlur && this.props.onBlur(e);\r\n }\r\n\r\n handleInputFocussed(e: React.FocusEvent): void {\r\n this.setState({ focussed: true });\r\n !!this.props.onFocus && this.props.onFocus(e);\r\n }\r\n\r\n handleInputLoaded(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n handleInputUnloaded(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n this.handleInputLoaded();\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.handleInputUnloaded();\r\n }\r\n\r\n private decimalPlaces = this.props.decimalPlaces ?? 2;\r\n\r\n render() {\r\n const hasValidationErrors = !!this.props.validator && (this.props.validator.submitAttempted || this.state.blurred) && this.props.validator.getErrors(this).length > 0;\r\n const baseCurrency = this.props.baseCurrencySymbol ?? \"£\";\r\n\r\n const p = { ...this.props };\r\n //remove all non standard input props to prevent console errors on the input\r\n delete p['exchangeRate'];\r\n delete p['baseCurrencySymbol'];\r\n delete p['currencySymbol'];\r\n delete p['reverse'];\r\n delete p['decimalPlaces'];\r\n delete p['value']; //remove value as it will be calculated as a display value\r\n delete p['className']; //remove className from the core input, the input can still be referred to as the class is on the parent\r\n delete p['type']; //remove type as it is manually set\r\n delete p['onChange']; //remove onChange as it is manually set\r\n delete p['onBlur']; //remove onBlur as it is manually set\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n } />\r\n
\r\n ) => this.handleInputChanged(e)}\r\n onBlur={(e: React.FocusEvent) => this.handleInputBlurred(e)}\r\n onFocus={(e: React.FocusEvent) => this.handleInputFocussed(e)}\r\n ref={this.target} />\r\n
\r\n \r\n ( {this.applyExchangeRate(this.getFormattedValue(this.target?.current?.value), this.props.reverse)})\r\n \r\n } />\r\n \r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n );\r\n }\r\n\r\n applyExchangeRate(textInput: string, reverse: boolean = false): string {\r\n let input = parseFloat(textInput);\r\n\r\n if (!this.props.exchangeRate) return \"\"\r\n if (!input) return RioNumberHelpers.numberWithCommas(0, this.decimalPlaces);\r\n\r\n let convertedInput = this.props.exchangeRate ? (!!reverse ? (input / this.props.exchangeRate) : (input * this.props.exchangeRate)) : input;\r\n if (isNaN(convertedInput)) {\r\n convertedInput = 0;\r\n }\r\n return RioNumberHelpers.numberWithCommas(convertedInput, this.decimalPlaces);\r\n }\r\n\r\n getFormattedValue(value: string | number | readonly string[]): string {\r\n let valueAsNumber: number;\r\n valueAsNumber = parseFloat(value?.toString());\r\n\r\n if (isNaN(valueAsNumber)) {\r\n return \"\";\r\n }\r\n\r\n return RioNumberHelpers.roundToDecimalPlaces(valueAsNumber, this.decimalPlaces).toFixed(this.decimalPlaces);\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\n\r\n\r\ninterface IRioLoadingIndicatorProps {\r\n /** Placeholder height. Defaults to 60px */\r\n height?: string;\r\n class?: string;\r\n}\r\n\r\nexport class RioLoadingIndicator extends React.Component {\r\n render() {\r\n const style: React.CSSProperties = {\r\n height: this.props.height || \"60px\"\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\ninterface IRioLoadingIfProps {\r\n condition: boolean;\r\n}\r\n\r\nexport class RioLoadingIf extends React.Component {\r\n render() {\r\n const { condition, children, ...rest } = this.props;\r\n if (condition) {\r\n return ;\r\n } else {\r\n return children;\r\n }\r\n }\r\n}\r\n\r\ninterface IRioLoadingIfFuncProps {\r\n otherwise: () => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n}\r\n\r\nexport class RioLoadingIfFunc extends React.Component {\r\n render() {\r\n const { condition, otherwise, ...rest } = this.props;\r\n if (condition) {\r\n return ;\r\n } else {\r\n return otherwise();\r\n }\r\n }\r\n}","export class RioOmniBoxResultApiModel {\r\n item: T;\r\n matches: number;\r\n}","import * as React from \"react\";\r\nimport { RioForEach, RioIf } from \"../helpers/logic\";\r\nimport { RioStringHelpers } from \"../helpers/StringHelpers\";\r\nimport { RioOmniBoxResultApiModel } from \"../apiModels/OmniBoxResultApiModel\";\r\n\r\n\r\ninterface IRioOmniboxProps {\r\n items: Array;\r\n value: T;\r\n propertiesToSearch: Array;\r\n minCharactersToSearch: number;\r\n minSearchTermLength: number;\r\n displayValue: (item: T) => string;\r\n onSelectedItemChanged: (item: T) => void;\r\n\r\n onMouseDown?: (item: RioOmniBoxResultApiModel) => void;\r\n onEnterPressed?: (item: RioOmniBoxResultApiModel) => void;\r\n onTabPressed?: (item: RioOmniBoxResultApiModel) => void;\r\n minMatchesRequired?: number;\r\n showTop?: number; \r\n}\r\n\r\ninterface IRioOmniboxState {\r\n text: string;\r\n options: Array>;\r\n focusedOption: RioOmniBoxResultApiModel;\r\n focused: boolean;\r\n}\r\n\r\nexport class RioOmnibox extends React.Component, IRioOmniboxState> {\r\n constructor(props: Readonly>) {\r\n super(props);\r\n\r\n this.state = {\r\n text: \"\",\r\n options: [],\r\n focusedOption: null,\r\n focused: false\r\n };\r\n }\r\n\r\n private focusedOptionLi: React.RefObject = React.createRef();\r\n\r\n render() {\r\n return (\r\n
this.setState({ focused: true })} onBlur={(e) => this.setState({focused: false})}>\r\n this.handleInputChange(e.currentTarget.value)}\r\n onKeyDown={(e) => this.handleKeyPressed(e)}\r\n \r\n />\r\n 0} then={\r\n
    \r\n {\r\n return (\r\n
  • this.handleMouseDown(option)}>{this.props.displayValue(option.item)}
  • \r\n );\r\n }} />\r\n
\r\n } />\r\n \r\n
\r\n );\r\n }\r\n\r\n handleInputChange(value: string) {\r\n let results: Array> = [];\r\n if (value.length >= this.props.minCharactersToSearch) {\r\n let searchOptions = value.split(\" \").filter(x => x.length >= this.props.minSearchTermLength);\r\n let items = this.props.items;\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n let matches = 0;\r\n let item: any = items[i]\r\n for (let j = 0; j < searchOptions.length; j++) {\r\n let searchValue = searchOptions[j];\r\n if (!!searchValue) {\r\n for (let k = 0; k < this.props.propertiesToSearch.length; k++) {\r\n let propToSearch = this.props.propertiesToSearch[k];\r\n let itemValue = item[propToSearch];\r\n if (!!itemValue) {\r\n switch (typeof itemValue) {\r\n case \"string\":\r\n let itemValueNoDiacritic = RioStringHelpers.removeDiacritics(itemValue).toLowerCase();\r\n let searchValueNoDiacritic = RioStringHelpers.removeDiacritics(searchValue).toLowerCase();\r\n if (itemValueNoDiacritic.includes(searchValueNoDiacritic)) {\r\n matches++;\r\n }\r\n break;\r\n case \"number\":\r\n if (itemValue == parseFloat(searchValue)) {\r\n matches++;\r\n }\r\n break;\r\n default:\r\n break;\r\n } \r\n }\r\n }\r\n }\r\n }\r\n\r\n let minMatchesRequired = this.props.minMatchesRequired ?? 1;\r\n\r\n if (matches >= minMatchesRequired) {\r\n let result = new RioOmniBoxResultApiModel();\r\n result.item = item;\r\n result.matches = matches;\r\n\r\n results.push(result);\r\n }\r\n }\r\n }\r\n\r\n if (!!this.props.value) {\r\n this.props.onSelectedItemChanged(null);\r\n }\r\n\r\n this.setState({\r\n text: value,\r\n options: results.sort((a, b) => (a.matches > b.matches) ? -1 : 1).slice(0, this.props.showTop ?? results.length),\r\n focusedOption: null\r\n });\r\n }\r\n\r\n handleKeyPressed(e: React.KeyboardEvent) {\r\n switch (e.keyCode) {\r\n case 38: //ArrowUp\r\n if (!!this.state.focusedOption) {\r\n let index = this.state.options.findIndex(x => x.item == this.state.focusedOption.item)\r\n let newFocused: RioOmniBoxResultApiModel;\r\n if (index < 1) {\r\n newFocused = null; //this.state.options[this.state.options.length - 1];\r\n } else {\r\n newFocused = this.state.options[index - 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.state.options[this.state.options.length - 1]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 40: //ArrowDown\r\n if (!!this.state.focusedOption) {\r\n let index = this.state.options.findIndex(x => x.item == this.state.focusedOption.item)\r\n let newFocused: RioOmniBoxResultApiModel;\r\n if (index >= this.state.options.length - 1) {\r\n newFocused = null; //this.state.options[0];\r\n } else {\r\n newFocused = this.state.options[index + 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.state.options[0]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 9: //Tab\r\n if (!!this.state.focusedOption) {\r\n this.handleSelectOption(this.state.focusedOption);\r\n if (!!this.props.onTabPressed) {\r\n this.props.onTabPressed(this.state.focusedOption);\r\n }\r\n }\r\n break;\r\n case 13: //Enter\r\n if (!!this.state.focusedOption) {\r\n this.handleSelectOption(this.state.focusedOption);\r\n if (!!this.props.onEnterPressed) {\r\n this.props.onEnterPressed(this.state.focusedOption);\r\n }\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n scrollToFocused() {\r\n if (!!this.focusedOptionLi.current) {\r\n this.focusedOptionLi.current.scrollIntoView({\r\n block: \"center\"\r\n });\r\n }\r\n }\r\n\r\n handleMouseDown(option: RioOmniBoxResultApiModel) {\r\n this.handleSelectOption(option)\r\n if (!!this.props.onMouseDown) {\r\n this.props.onMouseDown(option);\r\n }\r\n }\r\n\r\n handleSelectOption(option: RioOmniBoxResultApiModel) {\r\n this.props.onSelectedItemChanged(option.item);\r\n this.setState({\r\n focusedOption: null,\r\n text: this.props.displayValue(option.item),\r\n options: []\r\n });\r\n \r\n }\r\n}","import * as React from \"react\";\r\nimport { RioResources } from \"../../helpers/Resources\";\r\nimport { RioUnsafe } from \"../Unsafe\";\r\n\r\n\r\nexport class RioHelpButton extends React.Component {\r\n render() {\r\n return (\r\n
\r\n this.showDialog()}>\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n showDialog(): void {\r\n window.open('/HelpTool/' + this.parseCurrentUrl(), '', 'width=1000,height=500,left=100,top=100');\r\n }\r\n\r\n parseCurrentUrl(): string {\r\n let withoutQueryString = window.location.pathname.split(\"?\")[0];\r\n let split = withoutQueryString.split(\"/\");\r\n var ret = [];\r\n for (var i = 0; i < split.length; i++) {\r\n if (split[i].length > 0) {\r\n ret.push(split[i]);\r\n }\r\n }\r\n return ret.join(\"/\");\r\n }\r\n}","import * as React from \"react\";\r\ndeclare var ReactQuill: typeof import(\"react-quill-2\");\r\nimport moment from \"moment\";\r\nimport { RioImageDataHelper } from \"../../helpers/ImageDataHelper\";\r\n\r\ninterface IHelpDialogProps {\r\n title: string;\r\n}\r\n\r\ninterface IHelpDialogState {\r\n body: string;\r\n editorBody: string;\r\n editing: boolean;\r\n saving: boolean;\r\n currentContext: string;\r\n currentRevision: string;\r\n currentCultureId: number;\r\n availableContexts: string[];\r\n availableHistory: string[];\r\n availableCultures: HelpCulture[];\r\n canEdit: boolean;\r\n showTableControls: boolean;\r\n}\r\n\r\ninterface HelpCulture {\r\n cultureID: string;\r\n name: string;\r\n isDefault: boolean;\r\n displayName: boolean;\r\n}\r\n\r\nexport class RioHelpDialog extends React.Component {\r\n quill: any\r\n tableModule: any;\r\n\r\n constructor(props: IHelpDialogProps) {\r\n super(props);\r\n this.state = {\r\n body: \"\",\r\n editorBody: \"\",\r\n editing: false,\r\n saving: true,\r\n currentCultureId: -1,\r\n currentRevision: null,\r\n availableContexts: [],\r\n availableHistory: [],\r\n availableCultures: [],\r\n currentContext: props.title,\r\n canEdit: false,\r\n showTableControls: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchCanEdit();\r\n this.fetchHelpText();\r\n this.fetchAvailable();\r\n this.fetchAvailableHistory();\r\n this.fetchAvailableCultures();\r\n }\r\n\r\n modules = {\r\n toolbar: {\r\n container: [\r\n [{ \"size\": [\"small\", \"large\", \"huge\"] }],\r\n [\"bold\", \"italic\", \"underline\", \"strike\", \"blockquote\"],\r\n [{ \"align\": \"\" }, { \"align\": \"center\" }, { 'align': \"right\" }],\r\n [{ \"list\": \"ordered\" }, { \"list\": \"bullet\" }, { \"indent\": \"-1\" }, { \"indent\": \"+1\" }],\r\n [\"link\", \"image\"],\r\n [\"clean\"],\r\n [{ \"script\": \"sub\" }, { \"script\": \"super\" }],\r\n [\"table\"]\r\n ],\r\n handlers: {\r\n image: this.imageHandler\r\n }\r\n },\r\n table: true\r\n };\r\n\r\n imageHandler() {\r\n\r\n const input = document.createElement('input');\r\n\r\n input.setAttribute('type', 'file');\r\n input.setAttribute('accept', 'image/*');\r\n input.click();\r\n\r\n input.onchange = async () => {\r\n const file = input.files[0];\r\n this.uploadImage(file);\r\n };\r\n }\r\n\r\n imageDropAndPasteHandler(imageDataUrl: string, type: string, imageData: RioImageDataHelper) {\r\n\r\n var filename = 'image.png'\r\n var file = imageData.toFile(filename)\r\n this.uploadImage(file);\r\n }\r\n\r\n uploadImage(file: File) {\r\n const formData = new FormData();\r\n\r\n formData.append('image', file);\r\n\r\n // Save current cursor state\r\n const range = this.quill.editor.getSelection(true);\r\n\r\n // Insert temporary loading placeholder image\r\n this.quill.editor.insertEmbed(range.index, 'image', `${window.location.origin}/images/ajax-loader.gif`);\r\n\r\n // Move cursor to right side of image (easier to continue typing)\r\n this.quill.editor.setSelection(range.index + 1);\r\n\r\n\r\n var xhr = new XMLHttpRequest();\r\n xhr.withCredentials = false;\r\n xhr.open('POST', '/HelpTool/imageUpload/');\r\n let _this = this;\r\n xhr.onload = function () {\r\n\r\n _this.quill.editor.deleteText(range.index, 1);\r\n\r\n let resp = JSON.parse(xhr.responseText);\r\n\r\n // Insert uploaded image\r\n _this.quill.editor.insertEmbed(range.index, 'image', resp.data);\r\n\r\n };\r\n xhr.send(formData);\r\n }\r\n\r\n handleDrop(e: any) {\r\n e.preventDefault()\r\n if (e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files.length) {\r\n if (document.caretRangeFromPoint) {\r\n const selection = document.getSelection()\r\n const range = document.caretRangeFromPoint(e.clientX, e.clientY)\r\n if (selection && range) {\r\n selection.setBaseAndExtent(range.startContainer, range.startOffset, range.startContainer, range.startOffset)\r\n }\r\n }\r\n this.readFiles(e.dataTransfer.files, (dataUrl: string, type: string) => {\r\n type = type || 'image/png'\r\n this.imageDropAndPasteHandler(dataUrl, type, new RioImageDataHelper(dataUrl, type));\r\n }, e)\r\n }\r\n }\r\n\r\n\t/* handle image paste event\r\n\t*/\r\n handlePaste(e: any) {\r\n if (e.clipboardData && e.clipboardData.items && e.clipboardData.items.length) {\r\n this.readFiles(e.clipboardData.items, (dataUrl: string, type: string) => {\r\n type = type || 'image/png'\r\n this.imageDropAndPasteHandler(dataUrl, type, new RioImageDataHelper(dataUrl, type));\r\n }, e)\r\n }\r\n }\r\n\r\n /* read the files\r\n\t*/\r\n readFiles(files: File[], callback: any, e: any) {\r\n [].forEach.call(files, (file: { type: string; getAsFile: () => any; }) => {\r\n var type = file.type\r\n if (!type.match(/^image\\/(gif|jpe?g|a?png|svg|webp|bmp)/i)) return\r\n e.preventDefault()\r\n const reader = new FileReader()\r\n reader.onload = (e) => {\r\n callback(e.target.result, type)\r\n }\r\n const blob = file.getAsFile ? file.getAsFile() : file\r\n if (blob instanceof Blob) reader.readAsDataURL(blob)\r\n })\r\n }\r\n\r\n\t/* insert into the editor\r\n\t*/\r\n insert(dataUrl: string, type: string) {\r\n const index = (this.quill.getSelection() || {}).index || this.quill.getLength()\r\n this.quill.insertEmbed(index, 'image', dataUrl, 'user')\r\n }\r\n\r\n formats = [\r\n \"size\",\r\n \"bold\", \"italic\", \"underline\", \"strike\", \"blockquote\", \"code\", \"code-block\",\r\n \"align\",\r\n \"list\", \"bullet\", \"indent\",\r\n \"link\", \"size\", \"image\",\r\n \"clean\", \"script\"\r\n ];\r\n\r\n render() {\r\n return (\r\n
\r\n {this.renderLibrary()}\r\n
\r\n
\r\n {this.renderTitle()}\r\n
\r\n {this.renderHistorySection()}\r\n {this.renderCulturesSection()}\r\n
\r\n
\r\n {this.renderEditor()}\r\n {this.renderActions()}\r\n
\r\n
\r\n\r\n );\r\n }\r\n\r\n renderTitle() {\r\n if (this.hasCurrentContext()) {\r\n return (\r\n

{this.formatPageTitle(this.state.currentContext)}

\r\n );\r\n }\r\n }\r\n\r\n renderEditor() {\r\n if (this.state.editing) {\r\n\r\n return (\r\n
\r\n {this.renderTableControls()}\r\n \r\n {\r\n if (!this.quill) {\r\n this.quill = el;\r\n this.quill.editor.root.addEventListener('drop', this.handleDrop, false);\r\n this.quill.editor.root.addEventListener('paste', this.handlePaste, false);\r\n this.tableModule = this.quill.editor.getModule('table');\r\n let tableButton = document.body.querySelector('.ql-table');\r\n\r\n if (tableButton instanceof HTMLElement) {\r\n tableButton.onclick = () => {\r\n this.setState({\r\n showTableControls: true\r\n });\r\n };\r\n }\r\n\r\n }\r\n }}\r\n className=\"notesEditor\"\r\n theme=\"snow\"\r\n value={this.state.editorBody}\r\n modules={this.modules}\r\n formats={this.formats}\r\n onChange={(value: string) => this.handleEditorChanged(value)}\r\n\r\n />\r\n
);\r\n }\r\n return (\r\n
\r\n
\r\n );\r\n\r\n }\r\n\r\n renderTableControls() {\r\n if (this.state.showTableControls) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n return \"\";\r\n }\r\n\r\n renderActions() {\r\n if (this.state.saving) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n\r\n }\r\n\r\n if (this.state.editing) {\r\n return (\r\n
\r\n \r\n \r\n
\r\n\r\n );\r\n }\r\n\r\n if (this.state.canEdit) {\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n renderLibrary() {\r\n var rows = [];\r\n for (let i = 0; i < this.state.availableContexts.length; i++) {\r\n let context = this.state.availableContexts[i];\r\n let className = context == this.state.currentContext ? \"selected\" : \"\";\r\n rows.push(\r\n this.handleContextClicked(context)}>\r\n {this.formatPageTitle(context)}\r\n );\r\n }\r\n return (\r\n
\r\n

Help library

\r\n {rows}\r\n
\r\n );\r\n }\r\n\r\n renderHistorySection() {\r\n if (this.state.availableHistory && this.state.availableHistory.length && this.state.canEdit) {\r\n return (\r\n
\r\n

History:

\r\n {this.renderHistoryDropdown()}\r\n
\r\n\r\n );\r\n }\r\n }\r\n\r\n renderCulturesSection() {\r\n if (this.state.availableCultures && this.state.availableCultures.length) {\r\n return (\r\n
\r\n

Language:

\r\n {this.renderCulturesDropdown()}\r\n
\r\n\r\n );\r\n }\r\n }\r\n\r\n renderHistoryDropdown() {\r\n if (this.state.availableHistory && this.state.availableHistory.length) {\r\n var rows = [];\r\n for (let i = 0; i < this.state.availableHistory.length; i++) {\r\n let option = this.state.availableHistory[i];\r\n rows.push(\r\n );\r\n }\r\n return (\r\n );\r\n }\r\n }\r\n\r\n renderCulturesDropdown() {\r\n if (this.state.availableCultures && this.state.availableCultures.length) {\r\n var rows = [];\r\n for (let i = 0; i < this.state.availableCultures.length; i++) {\r\n let option = this.state.availableCultures[i];\r\n rows.push(\r\n );\r\n }\r\n return (\r\n );\r\n }\r\n }\r\n\r\n onEditorChangedText(delta: string, old: any, source: string) {\r\n if (source === 'user') {\r\n this.setState({\r\n editorBody: delta\r\n });\r\n }\r\n }\r\n\r\n handleEditorChanged(value: string) {\r\n this.setState({\r\n editorBody: value\r\n });\r\n }\r\n\r\n handleHistorySelectionChanged(event: React.FormEvent) {\r\n if (this.confirmSwitchEditor()) {\r\n this.setState({\r\n currentRevision: event.currentTarget.value\r\n }, () => {\r\n this.fetchHelpText();\r\n });\r\n }\r\n }\r\n\r\n handleCultureSelectionChanged(event: React.FormEvent) {\r\n if (this.confirmSwitchEditor()) {\r\n this.setState({\r\n currentCultureId: +event.currentTarget.value\r\n }, () => {\r\n this.fetchHelpText();\r\n this.fetchAvailableHistory();\r\n this.fetchAvailable();\r\n });\r\n }\r\n }\r\n\r\n handleContextClicked(value: string) {\r\n if (this.confirmSwitchEditor()) {\r\n this.setState({\r\n currentContext: value,\r\n editing: false,\r\n availableHistory: []\r\n }, () => {\r\n this.quill = null;\r\n this.fetchHelpText();\r\n this.fetchAvailableHistory();\r\n });\r\n }\r\n }\r\n\r\n fetchHelpText() {\r\n if (!this.hasCurrentContext()) {\r\n this.setState({\r\n saving: false\r\n });\r\n return;\r\n }\r\n\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json' }\r\n };\r\n\r\n let url = '/HelpTool/entry/' + this.state.currentContext + '?cultureId=' + this.state.currentCultureId;\r\n\r\n if (this.state.currentRevision) {\r\n url += '×tamp=' + this.state.currentRevision;\r\n }\r\n\r\n fetch(url, requestOptions)\r\n .then(\r\n response => response.json()\r\n )\r\n .then(data =>\r\n this.setState({\r\n body: data.data.helpText,\r\n editorBody: data.data.helpText,\r\n saving: false\r\n }));\r\n }\r\n\r\n fetchAvailable() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json' }\r\n };\r\n fetch('/HelpTool/availableContexts', requestOptions)\r\n .then(\r\n response => response.json()\r\n )\r\n .then(data => {\r\n if (data.data.indexOf(this.state.currentContext) == -1) {\r\n data.data.push(this.state.currentContext);\r\n }\r\n this.setState({\r\n availableContexts: data.data,\r\n });\r\n });\r\n\r\n }\r\n\r\n fetchAvailableHistory() {\r\n if (this.state.canEdit) {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json' }\r\n };\r\n fetch('/HelpTool/entry/' + this.state.currentContext + '/history?cultureId=' + this.state.currentCultureId, requestOptions)\r\n .then(\r\n response => response.json()\r\n )\r\n .then(data => {\r\n this.setState({\r\n availableHistory: data.data,\r\n });\r\n });\r\n }\r\n }\r\n\r\n fetchAvailableCultures() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json' }\r\n };\r\n fetch('/HelpTool/availableCultures', requestOptions)\r\n .then(\r\n response => response.json()\r\n )\r\n .then(data => {\r\n this.setState({\r\n availableCultures: data.data,\r\n });\r\n });\r\n\r\n }\r\n\r\n fetchCanEdit() {\r\n const requestOptions = {\r\n method: 'GET',\r\n headers: { 'Content-Type': 'application/json' }\r\n };\r\n fetch('/HelpTool/canEdit', requestOptions)\r\n .then(\r\n response => response.json()\r\n )\r\n .then(data => {\r\n this.setState({\r\n canEdit: data.data,\r\n });\r\n });\r\n }\r\n\r\n onSaveClicked() {\r\n this.setState({\r\n editing: false,\r\n saving: true,\r\n body: this.state.editorBody\r\n }, () => {\r\n this.quill = null;\r\n });\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(this.state.editorBody)\r\n };\r\n fetch('/HelpTool/entry/' + this.state.currentContext + '?cultureId=' + this.state.currentCultureId, requestOptions)\r\n .then(data => {\r\n this.setState({\r\n saving: false\r\n });\r\n this.fetchAvailable();\r\n this.fetchAvailableHistory();\r\n }\r\n );\r\n }\r\n\r\n onCancelClicked() {\r\n if (this.confirmSwitchEditor()) {\r\n this.toggleEdit();\r\n }\r\n }\r\n\r\n onEditClicked() {\r\n this.toggleEdit();\r\n }\r\n\r\n toggleEdit() {\r\n this.setState({\r\n editing: !this.state.editing\r\n });\r\n }\r\n\r\n hasCurrentContext() {\r\n return this.state.currentContext && this.state.currentContext.length;\r\n }\r\n\r\n formatPageTitle(s: string) {\r\n return s.replace(/([A-Z])/g, ' $1').trim()\r\n }\r\n\r\n confirmSwitchEditor(): boolean {\r\n return !this.state.editing || this.state.body == this.state.editorBody || confirm(\"You have unsaved changes. Would you like to discard them?\");\r\n }\r\n\r\n deleteTable() {\r\n this.quill.focus();\r\n this.tableModule.deleteTable();\r\n }\r\n\r\n deleteTableRow() {\r\n this.quill.focus();\r\n this.tableModule.deleteRow();\r\n }\r\n\r\n insertTableRowAbove() {\r\n this.quill.focus();\r\n this.tableModule.insertRowAbove();\r\n }\r\n\r\n insertTableRowBelow() {\r\n this.quill.focus();\r\n this.tableModule.insertRowBelow();\r\n }\r\n\r\n deleteTableColumn() {\r\n this.quill.focus();\r\n this.tableModule.deleteColumn();\r\n }\r\n\r\n insertTableColumnRight() {\r\n this.quill.focus();\r\n this.tableModule.insertColumnRight();\r\n }\r\n\r\n insertTableColumnLeft() {\r\n this.quill.focus();\r\n this.tableModule.insertColumnLeft();\r\n }\r\n\r\n insertTable() {\r\n this.quill.focus();\r\n this.tableModule.insertTable(3, 3);\r\n }\r\n} ","import * as React from \"react\"\r\nimport * as ZXing from \"@zxing/library/esm5\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioIf } from \"../helpers/logic\";\r\nimport { RioIcon } from \"./Icon\";\r\n\r\n\r\ninterface IQRCodeReaderProps {\r\n onResult: (result: string) => void;\r\n onReset: () => void;\r\n}\r\n\r\ninterface IQRCodeReaderState {\r\n reader: any;\r\n selectIsOpen: boolean;\r\n active: boolean;\r\n deviceID: string;\r\n stream: MediaStream;\r\n}\r\n\r\nexport class RioQRCodeReader extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n reader: null,\r\n selectIsOpen: false,\r\n active: false,\r\n deviceID: null,\r\n stream: null\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {RioResources.find(\"PleaseSelectVideoSource\").text}:\r\n } otherwise={\r\n \r\n this.handleStartClicked()} >\r\n

{RioResources.find(\"ClickEnableCamera\").text}

\r\n
\r\n } otherwise={\r\n \r\n } />\r\n } />\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {this.state.selectIsOpen ? : }\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {\r\n console.log(\"This browser does not support the API yet\");\r\n return;\r\n };\r\n\r\n //requests camera permissions\r\n const stream = navigator.mediaDevices.getUserMedia({\r\n video: true\r\n }).then((mediaStream) => {\r\n this.setUpDevices();\r\n this.setState({\r\n stream: mediaStream\r\n });\r\n }).catch((e) => {\r\n\r\n });\r\n }\r\n\r\n setUpDevices() {\r\n const codeReader = new ZXing.BrowserQRCodeReader();\r\n console.log('ZXing code reader initialized');\r\n const sourceSelect = document.getElementById('sourceSelect');\r\n\r\n codeReader.getVideoInputDevices()\r\n .then((videoInputDevices) => {\r\n let selectOption = document.createElement('option');\r\n selectOption.text = RioResources.find(\"DefaultSelectOption\").text;\r\n selectOption.value = \"\";\r\n sourceSelect.appendChild(selectOption);\r\n if (videoInputDevices.length >= 1) {\r\n videoInputDevices.forEach((element) => {\r\n const sourceOption = document.createElement('option');\r\n sourceOption.text = element.label;\r\n sourceOption.value = element.deviceId;\r\n sourceSelect.appendChild(sourceOption);\r\n })\r\n sourceSelect.onchange = (e: any) => {\r\n this.setState({\r\n deviceID: e.target.value\r\n });\r\n };\r\n const sourceSelectPanel = document.getElementById('sourceSelectPanel');\r\n sourceSelectPanel.style.display = 'block';\r\n }\r\n\r\n this.setState({\r\n reader: codeReader\r\n });\r\n })\r\n .catch((err: any) => {\r\n console.error(err)\r\n });\r\n }\r\n\r\n componentWillUnmount(): void {\r\n if (!!this.state.reader) {\r\n this.state.reader.reset();\r\n this.setState({\r\n reader: null\r\n });\r\n }\r\n\r\n if (!!this.state.stream) {\r\n this.state.stream.getTracks().forEach((track) => track.stop());\r\n }\r\n }\r\n\r\n handleStartClicked() {\r\n this.setState({\r\n active: true\r\n });\r\n this.handleCameraStarted();\r\n }\r\n\r\n handleCameraStarted() {\r\n this.state.reader.decodeFromInputVideoDevice(this.state.deviceID, 'video').then((result: any) => {\r\n console.log(result);\r\n this.props.onResult(result.getText());\r\n this.state.reader.reset();\r\n }).catch((err: any) => {\r\n console.error(err);\r\n });\r\n console.log(`Started continous decode from camera with id ${this.state.deviceID}`)\r\n }\r\n\r\n handleCameraStopped() {\r\n this.setState({\r\n active: false\r\n });\r\n this.state.reader.reset();\r\n this.props.onReset();\r\n console.log('Reset.');\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioValidationComponentProps, IRioValidatedInputProps, IRioValidatedInputState, IRioValidatedInput, IRioValidations } from \"../helpers/Validator\";\r\nimport { RioIf, RioIfFunc, RioForEach } from \"../helpers/logic\";\r\nimport { RioIcon } from \"./Icon\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioStringHelpers } from \"../helpers/StringHelpers\";\r\n\r\n\r\ninterface IRioSelectProps {\r\n items: Array;\r\n value: Array;\r\n keySelector: (item: T) => string;\r\n descriptionSelector: (item: T) => string;\r\n onSuggestionSelected: (value: T) => void;\r\n disabled?: boolean;\r\n keepOptionsOpenOnSelected?: boolean;\r\n defaultSelectOptionOverride?: string;\r\n defaultMultipleSelectOptionOverride?: string;\r\n isMultiSelect?: boolean;\r\n showCheckboxes?: boolean;\r\n}\r\n\r\ninterface IRioSelectState {\r\n focussed: boolean;\r\n suggestions: Array;\r\n text: string;\r\n focusedOption: T;\r\n}\r\n\r\nexport class RioSelect extends React.Component & IRioValidationComponentProps & IRioValidatedInputProps, \r\n IRioSelectState & IRioValidatedInputState> implements IRioValidatedInput {\r\n constructor(props: Readonly & IRioValidationComponentProps & IRioValidatedInputProps>) {\r\n super(props);\r\n\r\n this.state = {\r\n blurred: false,\r\n focussed: false,\r\n suggestions: [],\r\n text: \"\",\r\n focusedOption: null\r\n }\r\n }\r\n\r\n private input: React.RefObject = React.createRef();\r\n private focusedOptionDiv: React.RefObject = React.createRef();\r\n\r\n getKey(): string {\r\n return this.props.name;\r\n }\r\n\r\n getValue(): any {\r\n return this.props.value;\r\n }\r\n\r\n getValidations(): IRioValidations {\r\n return this.props.validations;\r\n }\r\n\r\n handleInputLoaded(): void {\r\n !!this.props.validator && this.props.validator.register(this);\r\n }\r\n\r\n handleInputUnloaded(): void {\r\n !!this.props.validator && this.props.validator.unregister(this);\r\n }\r\n\r\n componentDidMount(): void {\r\n this.handleInputLoaded();\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.handleInputUnloaded();\r\n }\r\n\r\n render() {\r\n let inputValue: string;\r\n if (this.state.focussed) {\r\n inputValue = this.state.text;\r\n\r\n } else {\r\n inputValue = this.getCurrentText(this.props);\r\n }\r\n\r\n const hasValidationErrors = !!this.props.validator && (this.props.validator.submitAttempted || this.state.blurred) && this.props.validator.getErrors(this).length > 0;\r\n\r\n return (\r\n \r\n
\r\n
this.input.current.focus()}>\r\n } \r\n otherwise={} />\r\n
\r\n this.handleInputFocussed()}\r\n onBlur={(e) => this.handleInputBlurred(true)}\r\n onChange={(e) => this.handleInputChanged(e)}\r\n disabled={this.props.disabled}\r\n autoComplete={\"new-password\"}\r\n onKeyDown={(e) => this.handleKeyPressed(e)}\r\n />\r\n {this.renderOptions()}\r\n
\r\n\r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }} />\r\n
\r\n );\r\n }\r\n\r\n getCurrentText(props: Readonly & IRioValidationComponentProps & IRioValidatedInputProps>): string {\r\n if (props.value.length == 0) {\r\n if (!!props.defaultSelectOptionOverride) {\r\n return props.defaultSelectOptionOverride;\r\n } else {\r\n return RioResources.find(\"DefaultSelectOption\").text;\r\n }\r\n } else if (props.value.length == 1) {\r\n return props.descriptionSelector(props.value[0]);\r\n } else {\r\n if (!!props.defaultMultipleSelectOptionOverride) {\r\n return props.defaultMultipleSelectOptionOverride;\r\n } else {\r\n return RioResources.find(\"DefaultMultipleSelected\")\r\n .text.replace(\"{selectedCount}\", props.value.length.toString()).replace(\"{totalCount}\", props.items.length.toString());\r\n }\r\n }\r\n }\r\n\r\n renderOptions() {\r\n if (!this.state.focussed) return null;\r\n var shouldRenderCheckboxes = (this.props.showCheckboxes || this.props.isMultiSelect) && this.props.showCheckboxes !== false;\r\n return (\r\n \r\n {\r\n return (\r\n
this.handleSuggestionSelected(item, e)}>\r\n
\r\n x == item) != null && shouldRenderCheckboxes} then={\r\n \r\n } \r\n otherwise={\r\n }\r\n />\r\n }/>\r\n {this.props.descriptionSelector(item)}\r\n
\r\n
\r\n );\r\n }} />\r\n \r\n );\r\n }\r\n\r\n handleInputFocussed(): void {\r\n this.setState({\r\n focussed: true\r\n });\r\n this.input.current.selectionStart = 0;\r\n this.input.current.selectionEnd = this.input.current.value.length;\r\n this.getSuggestions(this.state.text);\r\n }\r\n\r\n handleInputBlurred(validate: boolean): void {\r\n this.setState({\r\n focussed: false,\r\n text: \"\",\r\n blurred: true,\r\n focusedOption: null\r\n });\r\n if (validate) {\r\n !!this.props.validator && this.props.validator.validate(this);\r\n }\r\n \r\n }\r\n\r\n handleInputChanged(e: React.ChangeEvent): void {\r\n const newValue = e.currentTarget.value;\r\n this.setState({\r\n text: newValue\r\n });\r\n\r\n this.getSuggestions(newValue);\r\n }\r\n\r\n handleKeyPressed(e: React.KeyboardEvent) {\r\n switch (e.keyCode) {\r\n case 38: //ArrowUp\r\n if (!!this.state.focusedOption) {\r\n let index = this.props.items.findIndex((x: any) => x == this.state.focusedOption);\r\n let newFocused: T;\r\n if (index < 1) {\r\n newFocused = null;\r\n } else {\r\n newFocused = this.props.items[index - 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.props.items[this.props.items.length - 1]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 40: //ArrowDown\r\n if (!!this.state.focusedOption) {\r\n let index = this.props.items.findIndex((x: any) => x == this.state.focusedOption);\r\n let newFocused: T;\r\n if (index >= this.props.items.length - 1) {\r\n newFocused = null;\r\n } else {\r\n newFocused = this.props.items[index + 1];\r\n }\r\n this.setState({\r\n focusedOption: newFocused\r\n }, () => this.scrollToFocused());\r\n } else {\r\n this.setState({\r\n focusedOption: this.props.items[0]\r\n }, () => this.scrollToFocused());\r\n }\r\n break;\r\n case 9: //Tab\r\n break;\r\n case 13: //Enter\r\n if (!!this.state.focusedOption) {\r\n this.handleSuggestionSelected(this.state.focusedOption, null);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n scrollToFocused() {\r\n if (!!this.focusedOptionDiv.current) {\r\n this.focusedOptionDiv.current.scrollIntoView({\r\n block: \"center\"\r\n });\r\n }\r\n }\r\n\r\n getSuggestions(value: string) {\r\n if (value.trim() === \"\") {\r\n this.setState({\r\n suggestions: [...this.props.items]\r\n });\r\n } else {\r\n let searchValue = RioStringHelpers.removeDiacritics(value).toLowerCase();\r\n this.setState({\r\n suggestions: this.props.items.filter((i: any) => \r\n RioStringHelpers.removeDiacritics(this.props.descriptionSelector(i)).toLowerCase().includes(searchValue))\r\n });\r\n }\r\n }\r\n\r\n handleSuggestionSelected(item: T, e: React.MouseEvent) {\r\n if (e != null) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n this.props.onSuggestionSelected(item);\r\n\r\n //If explicitly set to keep open then do nothing \r\n if (this.props.keepOptionsOpenOnSelected === true)\r\n {\r\n return;\r\n }\r\n\r\n //If explicitly set to close then close\r\n if (this.props.keepOptionsOpenOnSelected === false)\r\n {\r\n this.handleInputBlurred(false);\r\n }\r\n\r\n //Not explicitly set to keep open or closed, but is a multi select, so keep open\r\n if(this.props.isMultiSelect){\r\n return;\r\n }\r\n\r\n //By default, close\r\n this.handleInputBlurred(false);\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioIcon } from \"./Icon\";\r\nimport { RioSeverity } from \"../enums/Severity\";\r\nimport { IRioResource } from \"../helpers/Resources\";\r\n\r\n\r\ninterface IStatusIconProps {\r\n resource: IRioResource;\r\n size: string;\r\n severity?: RioSeverity;\r\n lightBackground?: boolean;\r\n fillColor?: boolean;\r\n}\r\n\r\nexport class RioStatusIcon extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n var className = \"rioStatusIcon\";\r\n if (this.props.fillColor) {\r\n switch (this.props.severity) {\r\n case RioSeverity.success:\r\n className = className + \" okayFill\";\r\n break;\r\n case RioSeverity.warning:\r\n className = className + \" warningFill\";\r\n break;\r\n case RioSeverity.danger:\r\n className = className + \" dangerFill\";\r\n break;\r\n case RioSeverity.info:\r\n className = className + \" infoFill\";\r\n }\r\n } else {\r\n switch (this.props.severity) {\r\n case RioSeverity.success:\r\n className = className + (!this.props.lightBackground ? \" okay\" : \" okayLight\");\r\n break;\r\n case RioSeverity.warning:\r\n className = className + (!this.props.lightBackground ? \" warning\" : \" warningLight\");\r\n break;\r\n case RioSeverity.danger:\r\n className = className + (!this.props.lightBackground ? \" danger\" : \" dangerLight\");\r\n break;\r\n case RioSeverity.info:\r\n className = className + (!this.props.lightBackground ? \" info\" : \" infoLight\");\r\n }\r\n }\r\n \r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioValidatedInput } from \"../helpers/Validator\";\r\nimport { RioIfFunc, RioForEach } from \"../helpers/logic\";\r\n\r\n\r\nexport class RioTextArea extends RioValidatedInput {\r\n render() {\r\n const hasValidationErrors = !!this.props.validator &&\r\n (this.props.validator.submitAttempted || this.state.blurred) &&\r\n this.props.validator.getErrors(this).length > 0;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n return {\r\n return
{error}
;\r\n }} />;\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioIf, RioForEach } from \"../../helpers/logic\";\r\n\r\n\r\ninterface ITreeNodeProps {\r\n item: T;\r\n childItems?: (item: T) => Array;\r\n title: (item: T) => string;\r\n content?: (item: T) => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n expandedByDefault?: boolean;\r\n itemKey: (item: T) => string | number;\r\n}\r\n\r\ninterface ITreeNodeState {\r\n expanded: boolean;\r\n}\r\n\r\nexport class RioTreeNode extends React.Component, ITreeNodeState> {\r\n constructor(props: Readonly>) {\r\n super(props);\r\n\r\n this.state = {\r\n expanded: !!props.expandedByDefault\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
this.handleTitleClicked()}>\r\n {!!this.state.expanded ? : }\r\n {this.props.title(this.props.item)}\r\n
\r\n\r\n \r\n \r\n {this.props.content(this.props.item)}\r\n
\r\n } />\r\n \r\n {\r\n return \r\n }} />\r\n \r\n } />\r\n \r\n }/>\r\n \r\n );\r\n }\r\n\r\n handleTitleClicked(): void {\r\n this.setState({\r\n expanded: !this.state.expanded\r\n });\r\n }\r\n}","import * as React from \"react\";\r\nimport { RioForEach } from \"../../helpers/logic\";\r\nimport { RioTreeNode } from \"./TreeNode\";\r\n\r\n\r\ninterface ITreeProps {\r\n items: Array;\r\n childItems?: (item: T) => Array;\r\n title: (item: T) => string;\r\n content?: (item: T) => JSX.Element | JSX.Element[] | React.Component | React.Component[] | string;\r\n expandedByDefault?: boolean;\r\n itemKey: (item: T) => string | number;\r\n}\r\n\r\nexport class RioTree extends React.Component> {\r\n render() {\r\n return (\r\n
\r\n {\r\n return this.props.childItems && this.props.childItems(item)} title={(item: T) => this.props.title && this.props.title(item)} content={(item: T) => this.props.content && this.props.content(item)} expandedByDefault={this.props.expandedByDefault} itemKey={this.props.itemKey} key={this.props.itemKey(item)} />\r\n }} />\r\n
\r\n );\r\n }\r\n}\r\n\r\n","import * as React from \"react\";\r\nimport { RouteComponentProps } from \"react-router-dom\"\r\nimport { RioMenuItemApiModel } from \"../apiModels/MenuItemApiModel\";\r\nimport { RioForEach } from \"../helpers/logic\";\r\nimport { RioUnsafe } from \"./Unsafe\";\r\nimport { RioResources } from \"../helpers/Resources\";\r\nimport { RioApiGet } from \"../helpers/apiHelpers/Api\";\r\n\r\ninterface IUserDropDownMenuProps extends Partial {\r\n show: boolean;\r\n menuItemEndpoint: string;\r\n}\r\n\r\ninterface IUserDropDownMenuState {\r\n menuItems: Array;\r\n}\r\n\r\nexport class RioUserDropDownMenu extends React.Component {\r\n constructor(props: Readonly) {\r\n super(props);\r\n\r\n this.state = {\r\n menuItems: []\r\n };\r\n }\r\n\r\n render() {\r\n if (!this.props.show) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n componentDidMount(): void {\r\n this.loadMenu();\r\n }\r\n\r\n loadMenu() {\r\n RioApiGet.asPromise>(this.props.menuItemEndpoint)\r\n .then(response => {\r\n this.setState({\r\n menuItems: response,\r\n });\r\n });\r\n }\r\n\r\n handleMenuItemClicked(item: RioMenuItemApiModel): void {\r\n if (!item.controllerAction) {\r\n return;\r\n }\r\n\r\n this.props.history.push(item.controllerAction);\r\n }\r\n}","export class RioAuditApiModel {\r\n auditID: number;\r\n controllerID: number;\r\n userID: number;\r\n dateTime: Date;\r\n auditActionID: number;\r\n key1: number;\r\n key2: number;\r\n key3: number;\r\n key4: number;\r\n column: string;\r\n oldValue: string;\r\n newValue: string;\r\n userName: string;\r\n description: string;\r\n screen: string;\r\n}","import * as React from \"react\";\r\nimport { RioAuditContextModel } from \"../apiModels/audit/RioAuditContextModel\";\r\n\r\nexport const RioAuditContext = React.createContext(null);","import * as React from \"react\";\r\nimport { RioAuditContext } from \"../../constants/RioAuditContext\";\r\nimport { RioAuditContextModel } from \"../../apiModels/audit/RioAuditContextModel\";\r\nimport { RioAuditSearchEntityApiModel } from \"../../apiModels/audit/RioAuditSearchEntityApiModel\";\r\nimport { IRioResource, RioResources } from \"../../helpers/Resources\";\r\nimport { RioIconButton } from \"../IconButton\";\r\nimport { RioIfFunc } from \"../../helpers/logic\";\r\n\r\n\r\ninterface RioAuditButtonProps {\r\n hideImage?: boolean;\r\n hideText?: boolean;\r\n resource?: IRioResource;\r\n auditRoute?: string;\r\n}\r\n\r\nexport class RioAuditButton extends React.Component {\r\n render() {\r\n return (\r\n \r\n {(context: RioAuditContextModel) => (\r\n {\r\n return (\r\n
\r\n this.buttonClicked(context.auditModel)} \r\n hideImage={!!this.props.hideImage} \r\n hideText={!!this.props.hideText}\r\n />\r\n
\r\n );\r\n }} />\r\n )}\r\n
\r\n );\r\n }\r\n\r\n buttonClicked(auditModel: RioAuditSearchEntityApiModel) {\r\n if (!auditModel) {\r\n return;\r\n }\r\n\r\n let path: string = \"\";\r\n if (!!this.props.auditRoute) {\r\n if (!this.props.auditRoute.startsWith(\"/\")) {\r\n path = \"/\" + this.props.auditRoute;\r\n } else {\r\n path = this.props.auditRoute;\r\n }\r\n } else {\r\n path = \"/audit\";\r\n }\r\n\r\n path += this.buildAuditParamsString(auditModel);\r\n\r\n window.open(path, \"_blank\");\r\n }\r\n\r\n buildAuditParamsString(auditModel: RioAuditSearchEntityApiModel): string {\r\n let params = \"\";\r\n if (!!auditModel.controllerID) {\r\n params += `/controllerID=${auditModel.controllerID}`;\r\n } else if (!!auditModel.controllerName) {\r\n params += `/controllerName=${auditModel.controllerName}`;\r\n } else {\r\n return params; //no controller provided means no audit anyway\r\n }\r\n\r\n //nested to preserve order. It's not a necessity, but forces users to make sure it is.\r\n if (!!auditModel.key1Table && !!auditModel.key1ColumnName && !!auditModel.key1Value) {\r\n params += `&key1Table=${auditModel.key1Table}&key1ColumnName=${auditModel.key1ColumnName}&key1Value=${auditModel.key1Value}`;\r\n\r\n if (!!auditModel.key2Table && !!auditModel.key2ColumnName && !!auditModel.key2Value) {\r\n params += `&key2Table=${auditModel.key2Table}&key2ColumnName=${auditModel.key2ColumnName}&key2Value=${auditModel.key2Value}`;\r\n\r\n if (!!auditModel.key3Table && !!auditModel.key3ColumnName && !!auditModel.key3Value) {\r\n params += `&key3Table=${auditModel.key3Table}&key3ColumnName=${auditModel.key3ColumnName}&key3Value=${auditModel.key3Value}`;\r\n\r\n if (!!auditModel.key4Table && !!auditModel.key4ColumnName && !!auditModel.key4Value) {\r\n params += `&key4Table=${auditModel.key4Table}&key4ColumnName=${auditModel.key4ColumnName}&key4Value=${auditModel.key4Value}`;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n\r\nexport default RioAuditButton;","import { RioAuditSearchEntityApiModel } from \"./RioAuditSearchEntityApiModel\";\r\n\r\nexport class RioAuditContextModel {\r\n auditModel: RioAuditSearchEntityApiModel;\r\n setModel: (model: RioAuditSearchEntityApiModel) => void\r\n}","export class RioAuditSearchEntityApiModel {\r\n controllerID?: number;\r\n controllerName?: string;\r\n key1Table?: string;\r\n key1ColumnName?: string;\r\n key1Value?: number;\r\n key2Table?: string;\r\n key2ColumnName?: string;\r\n key2Value?: number;\r\n key3Table?: string;\r\n key3ColumnName?: string;\r\n key3Value?: number;\r\n key4Table?: string;\r\n key4ColumnName?: string;\r\n key4Value?: number;\r\n}","import * as React from \"react\";\r\nimport { RioAuditSearchEntityApiModel } from \"../../apiModels/audit/RioAuditSearchEntityApiModel\";\r\nimport { RioAuditContext } from \"../../constants/RioAuditContext\";\r\n\r\nexport interface IRioAuditedComponentProps {\r\n controllerID?: number;\r\n controllerName?: string;\r\n key1Table?: string;\r\n key1ColumnName?: string;\r\n key1Value?: number;\r\n key2Table?: string;\r\n key2ColumnName?: string;\r\n key2Value?: number;\r\n key3Table?: string;\r\n key3ColumnName?: string;\r\n key3Value?: number;\r\n key4Table?: string;\r\n key4ColumnName?: string;\r\n key4Value?: number;\r\n ignoreAudit?: boolean;\r\n}\r\n\r\nexport class RioAuditedComponent extends React.Component{\r\n protected constructor(props: Readonly) {\r\n super(props);\r\n\r\n }\r\n\r\n static contextType = RioAuditContext;\r\n\r\n componentDidMount() {\r\n if (!this.props.ignoreAudit) {\r\n if (this.context?.auditModel == null) {\r\n let model = new RioAuditSearchEntityApiModel();\r\n model.controllerID = this.props.controllerID;\r\n model.controllerName = this.props.controllerName;\r\n model.key1Table = this.props.key1Table;\r\n model.key1ColumnName = this.props.key1ColumnName;\r\n model.key1Value = this.props.key1Value;\r\n model.key2Table = this.props.key2Table;\r\n model.key2ColumnName = this.props.key2ColumnName;\r\n model.key2Value = this.props.key2Value;\r\n model.key3Table = this.props.key3Table;\r\n model.key3ColumnName = this.props.key3ColumnName;\r\n model.key3Value = this.props.key3Value;\r\n model.key4Table = this.props.key4Table;\r\n model.key4ColumnName = this.props.key4ColumnName;\r\n model.key4Value = this.props.key4Value;\r\n\r\n this.setAuditContext(model);\r\n }\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (!this.props.ignoreAudit && this.currentModelIsActive()) {\r\n this.setAuditContext(null);\r\n }\r\n }\r\n\r\n setAuditContext(model: RioAuditSearchEntityApiModel) {\r\n if (this.context != null) {\r\n this.context.setModel(model);\r\n }\r\n }\r\n\r\n currentModelIsActive() { //this exists to ensure we only clear the context on unmount if it is the active context\r\n let contextModel = this.context?.auditModel;\r\n return (contextModel === null ||\r\n (contextModel.controllerID === this.props.controllerID && contextModel.controllerName === this.props.controllerName &&\r\n contextModel.key1Table === this.props.key1Table && contextModel.key1ColumnName === this.props.key1ColumnName && contextModel.key1Value === this.props.key1Value &&\r\n contextModel.key2Table === this.props.key2Table && contextModel.key2ColumnName === this.props.key2ColumnName && contextModel.key2Value === this.props.key2Value &&\r\n contextModel.key3Table === this.props.key3Table && contextModel.key3ColumnName === this.props.key3ColumnName && contextModel.key3Value === this.props.key3Value &&\r\n contextModel.key4Table === this.props.key4Table && contextModel.key4ColumnName === this.props.key4ColumnName && contextModel.key4Value === this.props.key4Value));\r\n }\r\n\r\n render() {\r\n return (\r\n this.props.children\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioResource } from \"../../helpers/Resources\";\r\nimport { RioIf } from \"../../helpers/logic\";\r\nimport { RioUnsafe } from \"../Unsafe\";\r\n\r\n\r\ninterface IRioPageHeadingProps {\r\n resource: IRioResource;\r\n className?: string;\r\n hideImage?: boolean;\r\n hideText?: boolean;\r\n}\r\n\r\nexport class RioPageHeading extends React.Component {\r\n render() {\r\n return (\r\n
\r\n \r\n } />\r\n {this.props.resource.text}\r\n } />\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport { IRioResource } from \"../../helpers/Resources\";\r\nimport { RioPageHeading } from \"./PageHeading\";\r\n\r\n\r\ninterface IRioPageProps {\r\n heading: IRioResource;\r\n className?: string;\r\n hideImage?: boolean;\r\n hideText?: boolean;\r\n}\r\n\r\nexport class RioPage extends React.Component {\r\n render(): Object | string | number | {} | Object | Object | boolean {\r\n return (\r\n \r\n \r\n
\r\n {this.props.children}\r\n
\r\n
\r\n );\r\n }\r\n}","import * as React from \"react\";\r\nimport moment from \"moment\";\r\nimport { RouteComponentProps } from \"react-router\";\r\nimport { RioAuditApiModel } from \"../../apiModels/audit/RioAuditApiModel\";\r\nimport { RioAuditContext } from \"../../constants/RioAuditContext\";\r\nimport { RioAuditContextModel } from \"../../apiModels/audit/RioAuditContextModel\";\r\nimport { RioAuditSearchEntityApiModel } from \"../../apiModels/audit/RioAuditSearchEntityApiModel\";\r\nimport { IRioResource, RioResources } from \"../../helpers/Resources\";\r\nimport { IGridViewColumn } from \"../gridview/IGridViewColumn\";\r\nimport { IGridViewAction } from \"../gridview/IGridViewAction\";\r\nimport { Filter } from \"../../enums/Filter\";\r\nimport { RioApiPost } from \"../../helpers/apiHelpers/Api\";\r\nimport { RioPage } from \"../pageheading/Page\";\r\nimport { RioGridView } from \"../gridview/GridView\";\r\nimport { RioLoadingIf } from \"../LoadingIndicator\";\r\n\r\n\r\ninterface RioAuditViewerParams {\r\n queryString?: string;\r\n}\r\n\r\ninterface RioAuditViewerProps extends Partial> {\r\n resource?: IRioResource;\r\n hidePageImage?: boolean;\r\n hidePageText?: boolean;\r\n}\r\n\r\ninterface RioAuditViewerState {\r\n loading: boolean;\r\n items: RioAuditApiModel[];\r\n}\r\n\r\nexport class RioAuditViewer extends React.Component {\r\n constructor(props: RioAuditViewerProps) {\r\n super(props);\r\n\r\n this.state = {\r\n loading: true,\r\n items: []\r\n };\r\n }\r\n static contextType = RioAuditContext;\r\n\r\n columns: Array> = [\r\n {\r\n title: RioResources.find(\"Description\").text, value: (item) => item.description,\r\n filter: Filter.TextFilter\r\n },\r\n {\r\n title: RioResources.find(\"Date\").text,\r\n value: (item) => item.dateTime ? new Date(item.dateTime).getTime() : 0,\r\n displayValue: (item) => item.dateTime ? moment(item.dateTime).format(\"DD/MM/YYYY\") : \"\",\r\n filter: Filter.DateFilter\r\n },\r\n {\r\n title: RioResources.find(\"Key1\").text, value: (item) => item.key1,\r\n filter: Filter.NumberFilter\r\n },\r\n {\r\n title: RioResources.find(\"Column\").text, value: (item) => item.column,\r\n filter: Filter.TextFilter\r\n },\r\n {\r\n title: RioResources.find(\"OldValue\").text, value: (item) => item.oldValue,\r\n filter: Filter.TextFilter\r\n },\r\n {\r\n title: RioResources.find(\"NewValue\").text, value: (item) => item.newValue,\r\n filter: Filter.TextFilter\r\n },\r\n {\r\n title: RioResources.find(\"UserName\").text, value: (item) => item.userName,\r\n filter: Filter.TextFilter\r\n },\r\n {\r\n title: RioResources.find(\"Screen\").text, value: (item) => item.screen,\r\n filter: Filter.TextFilter\r\n }\r\n ];\r\n\r\n actions: Array> = [\r\n ];\r\n\r\n\r\n\r\n render() {\r\n return (\r\n \r\n {(context: RioAuditContextModel) => (\r\n \r\n \r\n \r\n noResults={RioResources.find(\"NoResultsFound\")}\r\n columns={this.columns}\r\n actions={this.actions}\r\n items={this.state.items}\r\n rowKey={(item: RioAuditApiModel) => item.auditID}\r\n />\r\n \r\n \r\n )}\r\n \r\n\r\n );\r\n }\r\n\r\n componentDidMount() {\r\n let contextModel = this.buildContextModel();\r\n if (!!contextModel) {\r\n RioApiPost.asPromise>(\"/api/auditviewer/search\", contextModel)\r\n .then(response => {\r\n this.setState({\r\n items: response,\r\n loading: false\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n }\r\n\r\n buildContextModel(): RioAuditSearchEntityApiModel {\r\n let rawParams = this.props.match.params.queryString.split(\"&\");\r\n let extractedParams: any = {};\r\n rawParams.forEach((paramString) => {\r\n let item = paramString.split(\"=\");\r\n extractedParams[item[0]] = item[1];\r\n });\r\n\r\n if (!extractedParams[\"controllerID\"] && !extractedParams[\"controllerName\"]) {\r\n return null;\r\n }\r\n\r\n let model = new RioAuditSearchEntityApiModel();\r\n model.controllerID = parseInt(extractedParams[\"controllerID\"]);\r\n model.controllerName = extractedParams[\"controllerName\"];\r\n model.key1Table = extractedParams[\"key1Table\"];\r\n model.key1ColumnName = extractedParams[\"key1ColumnName\"];\r\n model.key1Value = parseInt(extractedParams[\"key1Value\"]);\r\n model.key2Table = extractedParams[\"key2Table\"];\r\n model.key2ColumnName = extractedParams[\"key2ColumnName\"];\r\n model.key2Value = parseInt(extractedParams[\"key2Value\"]);\r\n model.key3Table = extractedParams[\"key3Table\"];\r\n model.key3ColumnName = extractedParams[\"key3ColumnName\"];\r\n model.key3Value = parseInt(extractedParams[\"key3Value)\"]);\r\n model.key4Table = extractedParams[\"key4Table\"];\r\n model.key4ColumnName = extractedParams[\"key4ColumnName\"];\r\n model.key4Value = parseInt(extractedParams[\"key4Value\"]);\r\n\r\n return model;\r\n }\r\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle\";\nimport RouterContext from \"./RouterContext\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport RouterContext from \"./RouterContext\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar NotFoundException = /** @class */ (function (_super) {\r\n __extends(NotFoundException, _super);\r\n function NotFoundException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return NotFoundException;\r\n}(Exception_1.default));\r\nexports.default = NotFoundException;\r\n//# sourceMappingURL=NotFoundException.js.map","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar IllegalArgumentException = /** @class */ (function (_super) {\r\n __extends(IllegalArgumentException, _super);\r\n function IllegalArgumentException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IllegalArgumentException;\r\n}(Exception_1.default));\r\nexports.default = IllegalArgumentException;\r\n//# sourceMappingURL=IllegalArgumentException.js.map","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","\"use strict\";\r\n/*\r\n * Direct port to TypeScript of ZXing by Adrian Toșcă\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*\r\n * Copyright 2009 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * Enumerates barcode formats known to this package. Please keep alphabetized.\r\n *\r\n * @author Sean Owen\r\n */\r\nvar BarcodeFormat;\r\n(function (BarcodeFormat) {\r\n /** Aztec 2D barcode format. */\r\n BarcodeFormat[BarcodeFormat[\"AZTEC\"] = 0] = \"AZTEC\";\r\n /** CODABAR 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"CODABAR\"] = 1] = \"CODABAR\";\r\n /** Code 39 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"CODE_39\"] = 2] = \"CODE_39\";\r\n /** Code 93 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"CODE_93\"] = 3] = \"CODE_93\";\r\n /** Code 128 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"CODE_128\"] = 4] = \"CODE_128\";\r\n /** Data Matrix 2D barcode format. */\r\n BarcodeFormat[BarcodeFormat[\"DATA_MATRIX\"] = 5] = \"DATA_MATRIX\";\r\n /** EAN-8 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"EAN_8\"] = 6] = \"EAN_8\";\r\n /** EAN-13 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"EAN_13\"] = 7] = \"EAN_13\";\r\n /** ITF (Interleaved Two of Five) 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"ITF\"] = 8] = \"ITF\";\r\n /** MaxiCode 2D barcode format. */\r\n BarcodeFormat[BarcodeFormat[\"MAXICODE\"] = 9] = \"MAXICODE\";\r\n /** PDF417 format. */\r\n BarcodeFormat[BarcodeFormat[\"PDF_417\"] = 10] = \"PDF_417\";\r\n /** QR Code 2D barcode format. */\r\n BarcodeFormat[BarcodeFormat[\"QR_CODE\"] = 11] = \"QR_CODE\";\r\n /** RSS 14 */\r\n BarcodeFormat[BarcodeFormat[\"RSS_14\"] = 12] = \"RSS_14\";\r\n /** RSS EXPANDED */\r\n BarcodeFormat[BarcodeFormat[\"RSS_EXPANDED\"] = 13] = \"RSS_EXPANDED\";\r\n /** UPC-A 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"UPC_A\"] = 14] = \"UPC_A\";\r\n /** UPC-E 1D format. */\r\n BarcodeFormat[BarcodeFormat[\"UPC_E\"] = 15] = \"UPC_E\";\r\n /** UPC/EAN extension format. Not a stand-alone format. */\r\n BarcodeFormat[BarcodeFormat[\"UPC_EAN_EXTENSION\"] = 16] = \"UPC_EAN_EXTENSION\";\r\n})(BarcodeFormat || (BarcodeFormat = {}));\r\nexports.default = BarcodeFormat;\r\n//# sourceMappingURL=BarcodeFormat.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing {*/\r\nvar MathUtils_1 = require(\"./common/detector/MathUtils\");\r\nvar Float_1 = require(\"./util/Float\");\r\n/**\r\n *

Encapsulates a point of interest in an image containing a barcode. Typically, this\r\n * would be the location of a finder pattern or the corner of the barcode, for example.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar ResultPoint = /** @class */ (function () {\r\n function ResultPoint(x /*float*/, y /*float*/) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n ResultPoint.prototype.getX = function () {\r\n return this.x;\r\n };\r\n ResultPoint.prototype.getY = function () {\r\n return this.y;\r\n };\r\n /*@Override*/\r\n ResultPoint.prototype.equals = function (other) {\r\n if (other instanceof ResultPoint) {\r\n var otherPoint = other;\r\n return this.x === otherPoint.x && this.y === otherPoint.y;\r\n }\r\n return false;\r\n };\r\n /*@Override*/\r\n ResultPoint.prototype.hashCode = function () {\r\n return 31 * Float_1.default.floatToIntBits(this.x) + Float_1.default.floatToIntBits(this.y);\r\n };\r\n /*@Override*/\r\n ResultPoint.prototype.toString = function () {\r\n return '(' + this.x + ',' + this.y + ')';\r\n };\r\n /**\r\n * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC\r\n * and BC is less than AC, and the angle between BC and BA is less than 180 degrees.\r\n *\r\n * @param patterns array of three {@code ResultPoint} to order\r\n */\r\n ResultPoint.orderBestPatterns = function (patterns) {\r\n // Find distances between pattern centers\r\n var zeroOneDistance = this.distance(patterns[0], patterns[1]);\r\n var oneTwoDistance = this.distance(patterns[1], patterns[2]);\r\n var zeroTwoDistance = this.distance(patterns[0], patterns[2]);\r\n var pointA;\r\n var pointB;\r\n var pointC;\r\n // Assume one closest to other two is B; A and C will just be guesses at first\r\n if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) {\r\n pointB = patterns[0];\r\n pointA = patterns[1];\r\n pointC = patterns[2];\r\n }\r\n else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) {\r\n pointB = patterns[1];\r\n pointA = patterns[0];\r\n pointC = patterns[2];\r\n }\r\n else {\r\n pointB = patterns[2];\r\n pointA = patterns[0];\r\n pointC = patterns[1];\r\n }\r\n // Use cross product to figure out whether A and C are correct or flipped.\r\n // This asks whether BC x BA has a positive z component, which is the arrangement\r\n // we want for A, B, C. If it's negative, then we've got it flipped around and\r\n // should swap A and C.\r\n if (this.crossProductZ(pointA, pointB, pointC) < 0.0) {\r\n var temp = pointA;\r\n pointA = pointC;\r\n pointC = temp;\r\n }\r\n patterns[0] = pointA;\r\n patterns[1] = pointB;\r\n patterns[2] = pointC;\r\n };\r\n /**\r\n * @param pattern1 first pattern\r\n * @param pattern2 second pattern\r\n * @return distance between two points\r\n */\r\n ResultPoint.distance = function (pattern1, pattern2) {\r\n return MathUtils_1.default.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y);\r\n };\r\n /**\r\n * Returns the z component of the cross product between vectors BC and BA.\r\n */\r\n ResultPoint.crossProductZ = function (pointA, pointB, pointC) {\r\n var bX = pointB.x;\r\n var bY = pointB.y;\r\n return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX));\r\n };\r\n return ResultPoint;\r\n}());\r\nexports.default = ResultPoint;\r\n//# sourceMappingURL=ResultPoint.js.map","/**\n * This action type will be dispatched when your history\n * receives a location change.\n */\nexport var LOCATION_CHANGE = '@@router/LOCATION_CHANGE';\nexport var onLocationChanged = function onLocationChanged(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n return {\n type: LOCATION_CHANGE,\n payload: {\n location: location,\n action: action,\n isFirstRendering: isFirstRendering\n }\n };\n};\n/**\n * This action type will be dispatched by the history actions below.\n * If you're writing a middleware to watch for navigation events, be sure to\n * look for actions of this type.\n */\n\nexport var CALL_HISTORY_METHOD = '@@router/CALL_HISTORY_METHOD';\n\nvar updateLocation = function updateLocation(method) {\n return 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 {\n type: CALL_HISTORY_METHOD,\n payload: {\n method: method,\n args: args\n }\n };\n };\n};\n/**\n * These actions correspond to the history API.\n * The associated routerMiddleware will capture these events before they get to\n * your reducer and reissue them as the matching function on your history.\n */\n\n\nexport var push = updateLocation('push');\nexport var replace = updateLocation('replace');\nexport var go = updateLocation('go');\nexport var goBack = updateLocation('goBack');\nexport var goForward = updateLocation('goForward');\nexport var routerActions = {\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward\n};","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","\"use strict\";\r\n/*\r\n * Copyright 2009 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * Encapsulates a type of hint that a caller may pass to a barcode reader to help it\r\n * more quickly or accurately decode it. It is up to implementations to decide what,\r\n * if anything, to do with the information that is supplied.\r\n *\r\n * @author Sean Owen\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n * @see Reader#decode(BinaryBitmap,java.util.Map)\r\n */\r\nvar DecodeHintType;\r\n(function (DecodeHintType) {\r\n /**\r\n * Unspecified, application-specific hint. Maps to an unspecified {@link Object}.\r\n */\r\n DecodeHintType[DecodeHintType[\"OTHER\"] = 0] = \"OTHER\"; /*(Object.class)*/\r\n /**\r\n * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to;\r\n * use {@link Boolean#TRUE}.\r\n */\r\n DecodeHintType[DecodeHintType[\"PURE_BARCODE\"] = 1] = \"PURE_BARCODE\"; /*(Void.class)*/\r\n /**\r\n * Image is known to be of one of a few possible formats.\r\n * Maps to a {@link List} of {@link BarcodeFormat}s.\r\n */\r\n DecodeHintType[DecodeHintType[\"POSSIBLE_FORMATS\"] = 2] = \"POSSIBLE_FORMATS\"; /*(List.class)*/\r\n /**\r\n * Spend more time to try to find a barcode; optimize for accuracy, not speed.\r\n * Doesn't matter what it maps to; use {@link Boolean#TRUE}.\r\n */\r\n DecodeHintType[DecodeHintType[\"TRY_HARDER\"] = 3] = \"TRY_HARDER\"; /*(Void.class)*/\r\n /**\r\n * Specifies what character encoding to use when decoding, where applicable (type String)\r\n */\r\n DecodeHintType[DecodeHintType[\"CHARACTER_SET\"] = 4] = \"CHARACTER_SET\"; /*(String.class)*/\r\n /**\r\n * Allowed lengths of encoded data -- reject anything else. Maps to an {@code Int32Array}.\r\n */\r\n DecodeHintType[DecodeHintType[\"ALLOWED_LENGTHS\"] = 5] = \"ALLOWED_LENGTHS\"; /*(Int32Array.class)*/\r\n /**\r\n * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to;\r\n * use {@link Boolean#TRUE}.\r\n */\r\n DecodeHintType[DecodeHintType[\"ASSUME_CODE_39_CHECK_DIGIT\"] = 6] = \"ASSUME_CODE_39_CHECK_DIGIT\"; /*(Void.class)*/\r\n /**\r\n * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed.\r\n * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to;\r\n * use {@link Boolean#TRUE}.\r\n */\r\n DecodeHintType[DecodeHintType[\"ASSUME_GS1\"] = 7] = \"ASSUME_GS1\"; /*(Void.class)*/\r\n /**\r\n * If true, return the start and end digits in a Codabar barcode instead of stripping them. They\r\n * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them\r\n * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}.\r\n */\r\n DecodeHintType[DecodeHintType[\"RETURN_CODABAR_START_END\"] = 8] = \"RETURN_CODABAR_START_END\"; /*(Void.class)*/\r\n /**\r\n * The caller needs to be notified via callback when a possible {@link ResultPoint}\r\n * is found. Maps to a {@link ResultPointCallback}.\r\n */\r\n DecodeHintType[DecodeHintType[\"NEED_RESULT_POINT_CALLBACK\"] = 9] = \"NEED_RESULT_POINT_CALLBACK\"; /*(ResultPointCallback.class)*/\r\n /**\r\n * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this.\r\n * Maps to an {@code Int32Array} of the allowed extension lengths, for example [2], [5], or [2, 5].\r\n * If it is optional to have an extension, do not set this hint. If this is set,\r\n * and a UPC or EAN barcode is found but an extension is not, then no result will be returned\r\n * at all.\r\n */\r\n DecodeHintType[DecodeHintType[\"ALLOWED_EAN_EXTENSIONS\"] = 10] = \"ALLOWED_EAN_EXTENSIONS\"; /*(Int32Array.class)*/\r\n // End of enumeration values.\r\n /**\r\n * Data type the hint is expecting.\r\n * Among the possible values the {@link Void} stands out as being used for\r\n * hints that do not expect a value to be supplied (flag hints). Such hints\r\n * will possibly have their value ignored, or replaced by a\r\n * {@link Boolean#TRUE}. Hint suppliers should probably use\r\n * {@link Boolean#TRUE} as directed by the actual hint documentation.\r\n */\r\n // private valueType: Class\r\n // DecodeHintType(valueType: Class) {\r\n // this.valueType = valueType\r\n // }\r\n // public getValueType(): Class {\r\n // return valueType\r\n // }\r\n})(DecodeHintType || (DecodeHintType = {}));\r\nexports.default = DecodeHintType;\r\n//# sourceMappingURL=DecodeHintType.js.map","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar FormatException = /** @class */ (function (_super) {\r\n __extends(FormatException, _super);\r\n function FormatException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return FormatException;\r\n}(Exception_1.default));\r\nexports.default = FormatException;\r\n//# sourceMappingURL=FormatException.js.map","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ts_custom_error_1 = require(\"ts-custom-error\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar Exception = /** @class */ (function (_super) {\r\n __extends(Exception, _super);\r\n /**\r\n * Allows Exception to be constructed directly\r\n * with some message and prototype definition.\r\n */\r\n function Exception(message) {\r\n if (message === void 0) { message = undefined; }\r\n var _this = _super.call(this, message) || this;\r\n _this.message = message;\r\n return _this;\r\n }\r\n return Exception;\r\n}(ts_custom_error_1.CustomError));\r\nexports.default = Exception;\r\n//# sourceMappingURL=Exception.js.map","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar System = /** @class */ (function () {\r\n function System() {\r\n }\r\n // public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)\r\n /**\r\n * Makes a copy of a array.\r\n */\r\n System.arraycopy = function (src, srcPos, dest, destPos, length) {\r\n // TODO: better use split or set?\r\n while (length--) {\r\n dest[destPos++] = src[srcPos++];\r\n }\r\n };\r\n /**\r\n * Returns the current time in milliseconds.\r\n */\r\n System.currentTimeMillis = function () {\r\n return Date.now();\r\n };\r\n return System;\r\n}());\r\nexports.default = System;\r\n//# sourceMappingURL=System.js.map","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\n/*import java.util.Arrays;*/\r\nvar BitArray_1 = require(\"./BitArray\");\r\nvar System_1 = require(\"../util/System\");\r\nvar Arrays_1 = require(\"../util/Arrays\");\r\nvar StringBuilder_1 = require(\"../util/StringBuilder\");\r\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\r\n/**\r\n *

Represents a 2D matrix of bits. In function arguments below, and throughout the common\r\n * module, x is the column position, and y is the row position. The ordering is always x, y.\r\n * The origin is at the top-left.

\r\n *\r\n *

Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins\r\n * with a new int. This is done intentionally so that we can copy out a row into a BitArray very\r\n * efficiently.

\r\n *\r\n *

The ordering of bits is row-major. Within each int, the least significant bits are used first,\r\n * meaning they represent lower x values. This is compatible with BitArray's implementation.

\r\n *\r\n * @author Sean Owen\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n */\r\nvar BitMatrix /*implements Cloneable*/ = /** @class */ (function () {\r\n /**\r\n * Creates an empty square {@link BitMatrix}.\r\n *\r\n * @param dimension height and width\r\n */\r\n // public constructor(dimension: number /*int*/) {\r\n // this(dimension, dimension)\r\n // }\r\n /**\r\n * Creates an empty {@link BitMatrix}.\r\n *\r\n * @param width bit matrix width\r\n * @param height bit matrix height\r\n */\r\n // public constructor(width: number /*int*/, height: number /*int*/) {\r\n // if (width < 1 || height < 1) {\r\n // throw new IllegalArgumentException(\"Both dimensions must be greater than 0\")\r\n // }\r\n // this.width = width\r\n // this.height = height\r\n // this.rowSize = (width + 31) / 32\r\n // bits = new int[rowSize * height];\r\n // }\r\n function BitMatrix(width /*int*/, height /*int*/, rowSize /*int*/, bits) {\r\n this.width = width;\r\n this.height = height;\r\n this.rowSize = rowSize;\r\n this.bits = bits;\r\n if (undefined === height || null === height) {\r\n height = width;\r\n }\r\n this.height = height;\r\n if (width < 1 || height < 1) {\r\n throw new IllegalArgumentException_1.default('Both dimensions must be greater than 0');\r\n }\r\n if (undefined === rowSize || null === rowSize) {\r\n rowSize = Math.floor((width + 31) / 32);\r\n }\r\n this.rowSize = rowSize;\r\n if (undefined === bits || null === bits) {\r\n this.bits = new Int32Array(this.rowSize * this.height);\r\n }\r\n }\r\n /**\r\n * Interprets a 2D array of booleans as a {@link BitMatrix}, where \"true\" means an \"on\" bit.\r\n *\r\n * @param image bits of the image, as a row-major 2D array. Elements are arrays representing rows\r\n * @return {@link BitMatrix} representation of image\r\n */\r\n BitMatrix.parseFromBooleanArray = function (image) {\r\n var height = image.length;\r\n var width = image[0].length;\r\n var bits = new BitMatrix(width, height);\r\n for (var i = 0; i < height; i++) {\r\n var imageI = image[i];\r\n for (var j = 0; j < width; j++) {\r\n if (imageI[j]) {\r\n bits.set(j, i);\r\n }\r\n }\r\n }\r\n return bits;\r\n };\r\n BitMatrix.parseFromString = function (stringRepresentation, setString, unsetString) {\r\n if (stringRepresentation === null) {\r\n throw new IllegalArgumentException_1.default('stringRepresentation cannot be null');\r\n }\r\n var bits = new Array(stringRepresentation.length);\r\n var bitsPos = 0;\r\n var rowStartPos = 0;\r\n var rowLength = -1;\r\n var nRows = 0;\r\n var pos = 0;\r\n while (pos < stringRepresentation.length) {\r\n if (stringRepresentation.charAt(pos) === '\\n' ||\r\n stringRepresentation.charAt(pos) === '\\r') {\r\n if (bitsPos > rowStartPos) {\r\n if (rowLength === -1) {\r\n rowLength = bitsPos - rowStartPos;\r\n }\r\n else if (bitsPos - rowStartPos !== rowLength) {\r\n throw new IllegalArgumentException_1.default('row lengths do not match');\r\n }\r\n rowStartPos = bitsPos;\r\n nRows++;\r\n }\r\n pos++;\r\n }\r\n else if (stringRepresentation.substring(pos, pos + setString.length) === setString) {\r\n pos += setString.length;\r\n bits[bitsPos] = true;\r\n bitsPos++;\r\n }\r\n else if (stringRepresentation.substring(pos, pos + unsetString.length) === unsetString) {\r\n pos += unsetString.length;\r\n bits[bitsPos] = false;\r\n bitsPos++;\r\n }\r\n else {\r\n throw new IllegalArgumentException_1.default('illegal character encountered: ' + stringRepresentation.substring(pos));\r\n }\r\n }\r\n // no EOL at end?\r\n if (bitsPos > rowStartPos) {\r\n if (rowLength === -1) {\r\n rowLength = bitsPos - rowStartPos;\r\n }\r\n else if (bitsPos - rowStartPos !== rowLength) {\r\n throw new IllegalArgumentException_1.default('row lengths do not match');\r\n }\r\n nRows++;\r\n }\r\n var matrix = new BitMatrix(rowLength, nRows);\r\n for (var i = 0; i < bitsPos; i++) {\r\n if (bits[i]) {\r\n matrix.set(Math.floor(i % rowLength), Math.floor(i / rowLength));\r\n }\r\n }\r\n return matrix;\r\n };\r\n /**\r\n *

Gets the requested bit, where true means black.

\r\n *\r\n * @param x The horizontal component (i.e. which column)\r\n * @param y The vertical component (i.e. which row)\r\n * @return value of given bit in matrix\r\n */\r\n BitMatrix.prototype.get = function (x /*int*/, y /*int*/) {\r\n var offset = y * this.rowSize + Math.floor(x / 32);\r\n return ((this.bits[offset] >>> (x & 0x1f)) & 1) !== 0;\r\n };\r\n /**\r\n *

Sets the given bit to true.

\r\n *\r\n * @param x The horizontal component (i.e. which column)\r\n * @param y The vertical component (i.e. which row)\r\n */\r\n BitMatrix.prototype.set = function (x /*int*/, y /*int*/) {\r\n var offset = y * this.rowSize + Math.floor(x / 32);\r\n this.bits[offset] |= (1 << (x & 0x1f)) & 0xFFFFFFFF;\r\n };\r\n BitMatrix.prototype.unset = function (x /*int*/, y /*int*/) {\r\n var offset = y * this.rowSize + Math.floor(x / 32);\r\n this.bits[offset] &= ~((1 << (x & 0x1f)) & 0xFFFFFFFF);\r\n };\r\n /**\r\n *

Flips the given bit.

\r\n *\r\n * @param x The horizontal component (i.e. which column)\r\n * @param y The vertical component (i.e. which row)\r\n */\r\n BitMatrix.prototype.flip = function (x /*int*/, y /*int*/) {\r\n var offset = y * this.rowSize + Math.floor(x / 32);\r\n this.bits[offset] ^= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\r\n };\r\n /**\r\n * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding\r\n * mask bit is set.\r\n *\r\n * @param mask XOR mask\r\n */\r\n BitMatrix.prototype.xor = function (mask) {\r\n if (this.width !== mask.getWidth() || this.height !== mask.getHeight()\r\n || this.rowSize !== mask.getRowSize()) {\r\n throw new IllegalArgumentException_1.default('input matrix dimensions do not match');\r\n }\r\n var rowArray = new BitArray_1.default(Math.floor(this.width / 32) + 1);\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n for (var y = 0, height = this.height; y < height; y++) {\r\n var offset = y * rowSize;\r\n var row = mask.getRow(y, rowArray).getBitArray();\r\n for (var x = 0; x < rowSize; x++) {\r\n bits[offset + x] ^= row[x];\r\n }\r\n }\r\n };\r\n /**\r\n * Clears all bits (sets to false).\r\n */\r\n BitMatrix.prototype.clear = function () {\r\n var bits = this.bits;\r\n var max = bits.length;\r\n for (var i = 0; i < max; i++) {\r\n bits[i] = 0;\r\n }\r\n };\r\n /**\r\n *

Sets a square region of the bit matrix to true.

\r\n *\r\n * @param left The horizontal position to begin at (inclusive)\r\n * @param top The vertical position to begin at (inclusive)\r\n * @param width The width of the region\r\n * @param height The height of the region\r\n */\r\n BitMatrix.prototype.setRegion = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\r\n if (top < 0 || left < 0) {\r\n throw new IllegalArgumentException_1.default('Left and top must be nonnegative');\r\n }\r\n if (height < 1 || width < 1) {\r\n throw new IllegalArgumentException_1.default('Height and width must be at least 1');\r\n }\r\n var right = left + width;\r\n var bottom = top + height;\r\n if (bottom > this.height || right > this.width) {\r\n throw new IllegalArgumentException_1.default('The region must fit inside the matrix');\r\n }\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n for (var y = top; y < bottom; y++) {\r\n var offset = y * rowSize;\r\n for (var x = left; x < right; x++) {\r\n bits[offset + Math.floor(x / 32)] |= ((1 << (x & 0x1f)) & 0xFFFFFFFF);\r\n }\r\n }\r\n };\r\n /**\r\n * A fast method to retrieve one row of data from the matrix as a BitArray.\r\n *\r\n * @param y The row to retrieve\r\n * @param row An optional caller-allocated BitArray, will be allocated if null or too small\r\n * @return The resulting BitArray - this reference should always be used even when passing\r\n * your own row\r\n */\r\n BitMatrix.prototype.getRow = function (y /*int*/, row) {\r\n if (row === null || row === undefined || row.getSize() < this.width) {\r\n row = new BitArray_1.default(this.width);\r\n }\r\n else {\r\n row.clear();\r\n }\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n var offset = y * rowSize;\r\n for (var x = 0; x < rowSize; x++) {\r\n row.setBulk(x * 32, bits[offset + x]);\r\n }\r\n return row;\r\n };\r\n /**\r\n * @param y row to set\r\n * @param row {@link BitArray} to copy from\r\n */\r\n BitMatrix.prototype.setRow = function (y /*int*/, row) {\r\n System_1.default.arraycopy(row.getBitArray(), 0, this.bits, y * this.rowSize, this.rowSize);\r\n };\r\n /**\r\n * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees\r\n */\r\n BitMatrix.prototype.rotate180 = function () {\r\n var width = this.getWidth();\r\n var height = this.getHeight();\r\n var topRow = new BitArray_1.default(width);\r\n var bottomRow = new BitArray_1.default(width);\r\n for (var i = 0, length_1 = Math.floor((height + 1) / 2); i < length_1; i++) {\r\n topRow = this.getRow(i, topRow);\r\n bottomRow = this.getRow(height - 1 - i, bottomRow);\r\n topRow.reverse();\r\n bottomRow.reverse();\r\n this.setRow(i, bottomRow);\r\n this.setRow(height - 1 - i, topRow);\r\n }\r\n };\r\n /**\r\n * This is useful in detecting the enclosing rectangle of a 'pure' barcode.\r\n *\r\n * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white\r\n */\r\n BitMatrix.prototype.getEnclosingRectangle = function () {\r\n var width = this.width;\r\n var height = this.height;\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n var left = width;\r\n var top = height;\r\n var right = -1;\r\n var bottom = -1;\r\n for (var y = 0; y < height; y++) {\r\n for (var x32 = 0; x32 < rowSize; x32++) {\r\n var theBits = bits[y * rowSize + x32];\r\n if (theBits !== 0) {\r\n if (y < top) {\r\n top = y;\r\n }\r\n if (y > bottom) {\r\n bottom = y;\r\n }\r\n if (x32 * 32 < left) {\r\n var bit = 0;\r\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\r\n bit++;\r\n }\r\n if ((x32 * 32 + bit) < left) {\r\n left = x32 * 32 + bit;\r\n }\r\n }\r\n if (x32 * 32 + 31 > right) {\r\n var bit = 31;\r\n while ((theBits >>> bit) === 0) {\r\n bit--;\r\n }\r\n if ((x32 * 32 + bit) > right) {\r\n right = x32 * 32 + bit;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (right < left || bottom < top) {\r\n return null;\r\n }\r\n return Int32Array.from([left, top, right - left + 1, bottom - top + 1]);\r\n };\r\n /**\r\n * This is useful in detecting a corner of a 'pure' barcode.\r\n *\r\n * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white\r\n */\r\n BitMatrix.prototype.getTopLeftOnBit = function () {\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n var bitsOffset = 0;\r\n while (bitsOffset < bits.length && bits[bitsOffset] === 0) {\r\n bitsOffset++;\r\n }\r\n if (bitsOffset === bits.length) {\r\n return null;\r\n }\r\n var y = bitsOffset / rowSize;\r\n var x = (bitsOffset % rowSize) * 32;\r\n var theBits = bits[bitsOffset];\r\n var bit = 0;\r\n while (((theBits << (31 - bit)) & 0xFFFFFFFF) === 0) {\r\n bit++;\r\n }\r\n x += bit;\r\n return Int32Array.from([x, y]);\r\n };\r\n BitMatrix.prototype.getBottomRightOnBit = function () {\r\n var rowSize = this.rowSize;\r\n var bits = this.bits;\r\n var bitsOffset = bits.length - 1;\r\n while (bitsOffset >= 0 && bits[bitsOffset] === 0) {\r\n bitsOffset--;\r\n }\r\n if (bitsOffset < 0) {\r\n return null;\r\n }\r\n var y = Math.floor(bitsOffset / rowSize);\r\n var x = Math.floor(bitsOffset % rowSize) * 32;\r\n var theBits = bits[bitsOffset];\r\n var bit = 31;\r\n while ((theBits >>> bit) === 0) {\r\n bit--;\r\n }\r\n x += bit;\r\n return Int32Array.from([x, y]);\r\n };\r\n /**\r\n * @return The width of the matrix\r\n */\r\n BitMatrix.prototype.getWidth = function () {\r\n return this.width;\r\n };\r\n /**\r\n * @return The height of the matrix\r\n */\r\n BitMatrix.prototype.getHeight = function () {\r\n return this.height;\r\n };\r\n /**\r\n * @return The row size of the matrix\r\n */\r\n BitMatrix.prototype.getRowSize = function () {\r\n return this.rowSize;\r\n };\r\n /*@Override*/\r\n BitMatrix.prototype.equals = function (o) {\r\n if (!(o instanceof BitMatrix)) {\r\n return false;\r\n }\r\n var other = o;\r\n return this.width === other.width && this.height === other.height && this.rowSize === other.rowSize &&\r\n Arrays_1.default.equals(this.bits, other.bits);\r\n };\r\n /*@Override*/\r\n BitMatrix.prototype.hashCode = function () {\r\n var hash = this.width;\r\n hash = 31 * hash + this.width;\r\n hash = 31 * hash + this.height;\r\n hash = 31 * hash + this.rowSize;\r\n hash = 31 * hash + Arrays_1.default.hashCode(this.bits);\r\n return hash;\r\n };\r\n /**\r\n * @return string representation using \"X\" for set and \" \" for unset bits\r\n */\r\n /*@Override*/\r\n // public toString(): string {\r\n // return toString(\": \"X, \" \")\r\n // }\r\n /**\r\n * @param setString representation of a set bit\r\n * @param unsetString representation of an unset bit\r\n * @return string representation of entire matrix utilizing given strings\r\n */\r\n // public toString(setString: string = \"X \", unsetString: string = \" \"): string {\r\n // return this.buildToString(setString, unsetString, \"\\n\")\r\n // }\r\n /**\r\n * @param setString representation of a set bit\r\n * @param unsetString representation of an unset bit\r\n * @param lineSeparator newline character in string representation\r\n * @return string representation of entire matrix utilizing given strings and line separator\r\n * @deprecated call {@link #toString(String,String)} only, which uses \\n line separator always\r\n */\r\n // @Deprecated\r\n BitMatrix.prototype.toString = function (setString, unsetString, lineSeparator) {\r\n if (setString === void 0) { setString = 'x'; }\r\n if (unsetString === void 0) { unsetString = ' '; }\r\n if (lineSeparator === void 0) { lineSeparator = '\\n'; }\r\n return this.buildToString(setString, unsetString, lineSeparator);\r\n };\r\n BitMatrix.prototype.buildToString = function (setString, unsetString, lineSeparator) {\r\n var result = new StringBuilder_1.default();\r\n result.append(lineSeparator);\r\n for (var y = 0, height = this.height; y < height; y++) {\r\n for (var x = 0, width = this.width; x < width; x++) {\r\n result.append(this.get(x, y) ? setString : unsetString);\r\n }\r\n result.append(lineSeparator);\r\n }\r\n return result.toString();\r\n };\r\n /*@Override*/\r\n BitMatrix.prototype.clone = function () {\r\n return new BitMatrix(this.width, this.height, this.rowSize, this.bits.slice());\r\n };\r\n return BitMatrix;\r\n}());\r\nexports.default = BitMatrix;\r\n//# sourceMappingURL=BitMatrix.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing {*/\r\n/*import java.util.EnumMap;*/\r\n/*import java.util.Map;*/\r\nvar ResultPoint_1 = require(\"./ResultPoint\");\r\nvar System_1 = require(\"./util/System\");\r\n/**\r\n *

Encapsulates the result of decoding a barcode within an image.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar Result = /** @class */ (function () {\r\n // public constructor(private text: string,\r\n // Uint8Array rawBytes,\r\n // ResultPoconst resultPoints: Int32Array,\r\n // BarcodeFormat format) {\r\n // this(text, rawBytes, resultPoints, format, System.currentTimeMillis())\r\n // }\r\n // public constructor(text: string,\r\n // Uint8Array rawBytes,\r\n // ResultPoconst resultPoints: Int32Array,\r\n // BarcodeFormat format,\r\n // long timestamp) {\r\n // this(text, rawBytes, rawBytes == null ? 0 : 8 * rawBytes.length,\r\n // resultPoints, format, timestamp)\r\n // }\r\n function Result(text, rawBytes, numBits /*int*/, resultPoints, format, timestamp /*long*/) {\r\n this.text = text;\r\n this.rawBytes = rawBytes;\r\n this.numBits = numBits;\r\n this.resultPoints = resultPoints;\r\n this.format = format;\r\n this.timestamp = timestamp;\r\n this.text = text;\r\n this.rawBytes = rawBytes;\r\n if (undefined === numBits || null === numBits) {\r\n this.numBits = (rawBytes === null || rawBytes === undefined) ? 0 : 8 * rawBytes.length;\r\n }\r\n else {\r\n this.numBits = numBits;\r\n }\r\n this.resultPoints = resultPoints;\r\n this.format = format;\r\n this.resultMetadata = null;\r\n if (undefined === timestamp || null === timestamp) {\r\n this.timestamp = System_1.default.currentTimeMillis();\r\n }\r\n else {\r\n this.timestamp = timestamp;\r\n }\r\n }\r\n /**\r\n * @return raw text encoded by the barcode\r\n */\r\n Result.prototype.getText = function () {\r\n return this.text;\r\n };\r\n /**\r\n * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null}\r\n */\r\n Result.prototype.getRawBytes = function () {\r\n return this.rawBytes;\r\n };\r\n /**\r\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\r\n * @since 3.3.0\r\n */\r\n Result.prototype.getNumBits = function () {\r\n return this.numBits;\r\n };\r\n /**\r\n * @return points related to the barcode in the image. These are typically points\r\n * identifying finder patterns or the corners of the barcode. The exact meaning is\r\n * specific to the type of barcode that was decoded.\r\n */\r\n Result.prototype.getResultPoints = function () {\r\n return this.resultPoints;\r\n };\r\n /**\r\n * @return {@link BarcodeFormat} representing the format of the barcode that was decoded\r\n */\r\n Result.prototype.getBarcodeFormat = function () {\r\n return this.format;\r\n };\r\n /**\r\n * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be\r\n * {@code null}. This contains optional metadata about what was detected about the barcode,\r\n * like orientation.\r\n */\r\n Result.prototype.getResultMetadata = function () {\r\n return this.resultMetadata;\r\n };\r\n Result.prototype.putMetadata = function (type, value) {\r\n if (this.resultMetadata === null) {\r\n this.resultMetadata = new Map();\r\n }\r\n this.resultMetadata.set(type, value);\r\n };\r\n Result.prototype.putAllMetadata = function (metadata) {\r\n if (metadata !== null) {\r\n if (this.resultMetadata === null) {\r\n this.resultMetadata = metadata;\r\n }\r\n else {\r\n this.resultMetadata = new Map(metadata);\r\n }\r\n }\r\n };\r\n Result.prototype.addResultPoints = function (newPoints) {\r\n var oldPoints = this.resultPoints;\r\n if (oldPoints === null) {\r\n this.resultPoints = newPoints;\r\n }\r\n else if (newPoints !== null && newPoints.length > 0) {\r\n var allPoints = new ResultPoint_1.default[oldPoints.length + newPoints.length];\r\n System_1.default.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length);\r\n System_1.default.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length);\r\n this.resultPoints = allPoints;\r\n }\r\n };\r\n Result.prototype.getTimestamp = function () {\r\n return this.timestamp;\r\n };\r\n /*@Override*/\r\n Result.prototype.toString = function () {\r\n return this.text;\r\n };\r\n return Result;\r\n}());\r\nexports.default = Result;\r\n//# sourceMappingURL=Result.js.map","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BitArray_1 = require(\"../common/BitArray\");\r\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\r\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\r\nvar ResultPoint_1 = require(\"../ResultPoint\");\r\nvar NotFoundException_1 = require(\"../NotFoundException\");\r\n/**\r\n * Encapsulates functionality and implementation that is common to all families\r\n * of one-dimensional barcodes.\r\n *\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n * @author Sean Owen\r\n */\r\nvar OneDReader = /** @class */ (function () {\r\n function OneDReader() {\r\n }\r\n /*\r\n @Override\r\n public Result decode(BinaryBitmap image) throws NotFoundException, FormatException {\r\n return decode(image, null);\r\n }\r\n */\r\n // Note that we don't try rotation without the try harder flag, even if rotation was supported.\r\n // @Override\r\n OneDReader.prototype.decode = function (image, hints) {\r\n try {\r\n return this.doDecode(image, hints);\r\n }\r\n catch (nfe) {\r\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\r\n if (tryHarder && image.isRotateSupported()) {\r\n var rotatedImage = image.rotateCounterClockwise();\r\n var result = this.doDecode(rotatedImage, hints);\r\n // Record that we found it rotated 90 degrees CCW / 270 degrees CW\r\n var metadata = result.getResultMetadata();\r\n var orientation_1 = 270;\r\n if (metadata !== null && (metadata.get(ResultMetadataType_1.default.ORIENTATION) === true)) {\r\n // But if we found it reversed in doDecode(), add in that result here:\r\n orientation_1 = (orientation_1 + metadata.get(ResultMetadataType_1.default.ORIENTATION) % 360);\r\n }\r\n result.putMetadata(ResultMetadataType_1.default.ORIENTATION, orientation_1);\r\n // Update result points\r\n var points = result.getResultPoints();\r\n if (points !== null) {\r\n var height = rotatedImage.getHeight();\r\n for (var i = 0; i < points.length; i++) {\r\n points[i] = new ResultPoint_1.default(height - points[i].getY() - 1, points[i].getX());\r\n }\r\n }\r\n return result;\r\n }\r\n else {\r\n throw new NotFoundException_1.default();\r\n }\r\n }\r\n };\r\n // @Override\r\n OneDReader.prototype.reset = function () {\r\n // do nothing\r\n };\r\n /**\r\n * We're going to examine rows from the middle outward, searching alternately above and below the\r\n * middle, and farther out each time. rowStep is the number of rows between each successive\r\n * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then\r\n * middle + rowStep, then middle - (2 * rowStep), etc.\r\n * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily\r\n * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the\r\n * image if \"trying harder\".\r\n *\r\n * @param image The image to decode\r\n * @param hints Any hints that were requested\r\n * @return The contents of the decoded barcode\r\n * @throws NotFoundException Any spontaneous errors which occur\r\n */\r\n OneDReader.prototype.doDecode = function (image, hints) {\r\n var width = image.getWidth();\r\n var height = image.getHeight();\r\n var row = new BitArray_1.default(width);\r\n var tryHarder = hints && (hints.get(DecodeHintType_1.default.TRY_HARDER) === true);\r\n var rowStep = Math.max(1, height >> (tryHarder ? 8 : 5));\r\n var maxLines;\r\n if (tryHarder) {\r\n maxLines = height; // Look at the whole image, not just the center\r\n }\r\n else {\r\n maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image\r\n }\r\n var middle = Math.trunc(height / 2);\r\n for (var x = 0; x < maxLines; x++) {\r\n // Scanning from the middle out. Determine which row we're looking at next:\r\n var rowStepsAboveOrBelow = Math.trunc((x + 1) / 2);\r\n var isAbove = (x & 0x01) === 0; // i.e. is x even?\r\n var rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow);\r\n if (rowNumber < 0 || rowNumber >= height) {\r\n // Oops, if we run off the top or bottom, stop\r\n break;\r\n }\r\n // Estimate black point for this row and load it:\r\n try {\r\n row = image.getBlackRow(rowNumber, row);\r\n }\r\n catch (ignored) {\r\n continue;\r\n }\r\n var _loop_1 = function (attempt) {\r\n if (attempt === 1) { // trying again?\r\n row.reverse(); // reverse the row and continue\r\n // This means we will only ever draw result points *once* in the life of this method\r\n // since we want to avoid drawing the wrong points after flipping the row, and,\r\n // don't want to clutter with noise from every single row scan -- just the scans\r\n // that start on the center line.\r\n if (hints && (hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK) === true)) {\r\n var newHints_1 = new Map();\r\n hints.forEach(function (hint, key) { return newHints_1.set(key, hint); });\r\n newHints_1.delete(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\r\n hints = newHints_1;\r\n }\r\n }\r\n try {\r\n // Look for a barcode\r\n var result = this_1.decodeRow(rowNumber, row, hints);\r\n // We found our barcode\r\n if (attempt === 1) {\r\n // But it was upside down, so note that\r\n result.putMetadata(ResultMetadataType_1.default.ORIENTATION, 180);\r\n // And remember to flip the result points horizontally.\r\n var points = result.getResultPoints();\r\n if (points !== null) {\r\n points[0] = new ResultPoint_1.default(width - points[0].getX() - 1, points[0].getY());\r\n points[1] = new ResultPoint_1.default(width - points[1].getX() - 1, points[1].getY());\r\n }\r\n }\r\n return { value: result };\r\n }\r\n catch (re) {\r\n // continue -- just couldn't decode this row\r\n }\r\n };\r\n var this_1 = this;\r\n // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to\r\n // handle decoding upside down barcodes.\r\n for (var attempt = 0; attempt < 2; attempt++) {\r\n var state_1 = _loop_1(attempt);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n }\r\n throw new NotFoundException_1.default();\r\n };\r\n /**\r\n * Records the size of successive runs of white and black pixels in a row, starting at a given point.\r\n * The values are recorded in the given array, and the number of runs recorded is equal to the size\r\n * of the array. If the row starts on a white pixel at the given start point, then the first count\r\n * recorded is the run of white pixels starting from that point; likewise it is the count of a run\r\n * of black pixels if the row begin on a black pixels at that point.\r\n *\r\n * @param row row to count from\r\n * @param start offset into row to start at\r\n * @param counters array into which to record counts\r\n * @throws NotFoundException if counters cannot be filled entirely from row before running out\r\n * of pixels\r\n */\r\n OneDReader.recordPattern = function (row, start, counters) {\r\n var numCounters = counters.length;\r\n for (var index = 0; index < numCounters; index++)\r\n counters[index] = 0;\r\n var end = row.getSize();\r\n if (start >= end) {\r\n throw new NotFoundException_1.default();\r\n }\r\n var isWhite = !row.get(start);\r\n var counterPosition = 0;\r\n var i = start;\r\n while (i < end) {\r\n if (row.get(i) !== isWhite) {\r\n counters[counterPosition]++;\r\n }\r\n else {\r\n if (++counterPosition === numCounters) {\r\n break;\r\n }\r\n else {\r\n counters[counterPosition] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n i++;\r\n }\r\n // If we read fully the last section of pixels and filled up our counters -- or filled\r\n // the last counter but ran off the side of the image, OK. Otherwise, a problem.\r\n if (!(counterPosition === numCounters || (counterPosition === numCounters - 1 && i === end))) {\r\n throw new NotFoundException_1.default();\r\n }\r\n };\r\n OneDReader.recordPatternInReverse = function (row, start, counters) {\r\n // This could be more efficient I guess\r\n var numTransitionsLeft = counters.length;\r\n var last = row.get(start);\r\n while (start > 0 && numTransitionsLeft >= 0) {\r\n if (row.get(--start) !== last) {\r\n numTransitionsLeft--;\r\n last = !last;\r\n }\r\n }\r\n if (numTransitionsLeft >= 0) {\r\n throw new NotFoundException_1.default();\r\n }\r\n OneDReader.recordPattern(row, start + 1, counters);\r\n };\r\n /**\r\n * Determines how closely a set of observed counts of runs of black/white values matches a given\r\n * target pattern. This is reported as the ratio of the total variance from the expected pattern\r\n * proportions across all pattern elements, to the length of the pattern.\r\n *\r\n * @param counters observed counters\r\n * @param pattern expected pattern\r\n * @param maxIndividualVariance The most any counter can differ before we give up\r\n * @return ratio of total variance between counters and pattern compared to total pattern size\r\n */\r\n OneDReader.patternMatchVariance = function (counters, pattern, maxIndividualVariance) {\r\n var numCounters = counters.length;\r\n var total = 0;\r\n var patternLength = 0;\r\n for (var i = 0; i < numCounters; i++) {\r\n total += counters[i];\r\n patternLength += pattern[i];\r\n }\r\n if (total < patternLength) {\r\n // If we don't even have one pixel per unit of bar width, assume this is too small\r\n // to reliably match, so fail:\r\n return Number.POSITIVE_INFINITY;\r\n }\r\n var unitBarWidth = total / patternLength;\r\n maxIndividualVariance *= unitBarWidth;\r\n var totalVariance = 0.0;\r\n for (var x = 0; x < numCounters; x++) {\r\n var counter = counters[x];\r\n var scaledPattern = pattern[x] * unitBarWidth;\r\n var variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter;\r\n if (variance > maxIndividualVariance) {\r\n return Number.POSITIVE_INFINITY;\r\n }\r\n totalVariance += variance;\r\n }\r\n return totalVariance / total;\r\n };\r\n return OneDReader;\r\n}());\r\nexports.default = OneDReader;\r\n//# sourceMappingURL=OneDReader.js.map","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is classified as an `Array` 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 an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringBuilder = /** @class */ (function () {\r\n function StringBuilder(value) {\r\n if (value === void 0) { value = ''; }\r\n this.value = value;\r\n }\r\n StringBuilder.prototype.append = function (s) {\r\n if (typeof s === 'string') {\r\n this.value += s.toString();\r\n }\r\n else {\r\n this.value += String.fromCharCode(s);\r\n }\r\n return this;\r\n };\r\n StringBuilder.prototype.length = function () {\r\n return this.value.length;\r\n };\r\n StringBuilder.prototype.charAt = function (n) {\r\n return this.value.charAt(n);\r\n };\r\n StringBuilder.prototype.deleteCharAt = function (n) {\r\n this.value = this.value.substr(0, n) + this.value.substring(n + 1);\r\n };\r\n StringBuilder.prototype.setCharAt = function (n, c) {\r\n this.value = this.value.substr(0, n) + c + this.value.substr(n + 1);\r\n };\r\n StringBuilder.prototype.toString = function () {\r\n return this.value;\r\n };\r\n StringBuilder.prototype.insert = function (n, c) {\r\n this.value = this.value.substr(0, n) + c + this.value.substr(n + c.length);\r\n };\r\n return StringBuilder;\r\n}());\r\nexports.default = StringBuilder;\r\n//# sourceMappingURL=StringBuilder.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar ChecksumException = /** @class */ (function (_super) {\r\n __extends(ChecksumException, _super);\r\n function ChecksumException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ChecksumException;\r\n}(Exception_1.default));\r\nexports.default = ChecksumException;\r\n//# sourceMappingURL=ChecksumException.js.map","\"use strict\";\r\n/*\r\n * Copyright 2012 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common.detector {*/\r\n/**\r\n * General math-related and numeric utility functions.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n MathUtils.prototype.MathUtils = function () {\r\n };\r\n /**\r\n * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its\r\n * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut\r\n * differ slightly from {@link Math#round(float)} in that half rounds down for negative\r\n * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference.\r\n *\r\n * @param d real value to round\r\n * @return nearest {@code int}\r\n */\r\n MathUtils.round = function (d /*float*/) {\r\n if (NaN === d)\r\n return 0;\r\n if (d <= Number.MIN_SAFE_INTEGER)\r\n return Number.MIN_SAFE_INTEGER;\r\n if (d >= Number.MAX_SAFE_INTEGER)\r\n return Number.MAX_SAFE_INTEGER;\r\n return /*(int) */ (d + (d < 0.0 ? -0.5 : 0.5)) | 0;\r\n };\r\n // TYPESCRIPTPORT: maybe remove round method and call directly Math.round, it looks like it doesn't make sense for js\r\n /**\r\n * @param aX point A x coordinate\r\n * @param aY point A y coordinate\r\n * @param bX point B x coordinate\r\n * @param bY point B y coordinate\r\n * @return Euclidean distance between points A and B\r\n */\r\n MathUtils.distance = function (aX /*float|int*/, aY /*float|int*/, bX /*float|int*/, bY /*float|int*/) {\r\n var xDiff = aX - bX;\r\n var yDiff = aY - bY;\r\n return /*(float) */ Math.sqrt(xDiff * xDiff + yDiff * yDiff);\r\n };\r\n /**\r\n * @param aX point A x coordinate\r\n * @param aY point A y coordinate\r\n * @param bX point B x coordinate\r\n * @param bY point B y coordinate\r\n * @return Euclidean distance between points A and B\r\n */\r\n // public static distance(aX: number /*int*/, aY: number /*int*/, bX: number /*int*/, bY: number /*int*/): float {\r\n // const xDiff = aX - bX\r\n // const yDiff = aY - bY\r\n // return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff);\r\n // }\r\n /**\r\n * @param array values to sum\r\n * @return sum of values in array\r\n */\r\n MathUtils.sum = function (array) {\r\n var count = 0;\r\n for (var i = 0, length_1 = array.length; i !== length_1; i++) {\r\n var a = array[i];\r\n count += a;\r\n }\r\n return count;\r\n };\r\n return MathUtils;\r\n}());\r\nexports.default = MathUtils;\r\n//# sourceMappingURL=MathUtils.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * Represents some type of metadata about the result of the decoding that the decoder\r\n * wishes to communicate back to the caller.\r\n *\r\n * @author Sean Owen\r\n */\r\nvar ResultMetadataType;\r\n(function (ResultMetadataType) {\r\n /**\r\n * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"OTHER\"] = 0] = \"OTHER\";\r\n /**\r\n * Denotes the likely approximate orientation of the barcode in the image. This value\r\n * is given as degrees rotated clockwise from the normal, upright orientation.\r\n * For example a 1D barcode which was found by reading top-to-bottom would be\r\n * said to have orientation \"90\". This key maps to an {@link Integer} whose\r\n * value is in the range [0,360).\r\n */\r\n ResultMetadataType[ResultMetadataType[\"ORIENTATION\"] = 1] = \"ORIENTATION\";\r\n /**\r\n *

2D barcode formats typically encode text, but allow for a sort of 'byte mode'\r\n * which is sometimes used to encode binary data. While {@link Result} makes available\r\n * the complete raw bytes in the barcode for these formats, it does not offer the bytes\r\n * from the byte segments alone.

\r\n *\r\n *

This maps to a {@link java.util.List} of byte arrays corresponding to the\r\n * raw bytes in the byte segments in the barcode, in order.

\r\n */\r\n ResultMetadataType[ResultMetadataType[\"BYTE_SEGMENTS\"] = 2] = \"BYTE_SEGMENTS\";\r\n /**\r\n * Error correction level used, if applicable. The value type depends on the\r\n * format, but is typically a String.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"ERROR_CORRECTION_LEVEL\"] = 3] = \"ERROR_CORRECTION_LEVEL\";\r\n /**\r\n * For some periodicals, indicates the issue number as an {@link Integer}.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"ISSUE_NUMBER\"] = 4] = \"ISSUE_NUMBER\";\r\n /**\r\n * For some products, indicates the suggested retail price in the barcode as a\r\n * formatted {@link String}.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"SUGGESTED_PRICE\"] = 5] = \"SUGGESTED_PRICE\";\r\n /**\r\n * For some products, the possible country of manufacture as a {@link String} denoting the\r\n * ISO country code. Some map to multiple possible countries, like \"US/CA\".\r\n */\r\n ResultMetadataType[ResultMetadataType[\"POSSIBLE_COUNTRY\"] = 6] = \"POSSIBLE_COUNTRY\";\r\n /**\r\n * For some products, the extension text\r\n */\r\n ResultMetadataType[ResultMetadataType[\"UPC_EAN_EXTENSION\"] = 7] = \"UPC_EAN_EXTENSION\";\r\n /**\r\n * PDF417-specific metadata\r\n */\r\n ResultMetadataType[ResultMetadataType[\"PDF417_EXTRA_METADATA\"] = 8] = \"PDF417_EXTRA_METADATA\";\r\n /**\r\n * If the code format supports structured append and the current scanned code is part of one then the\r\n * sequence number is given with it.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_SEQUENCE\"] = 9] = \"STRUCTURED_APPEND_SEQUENCE\";\r\n /**\r\n * If the code format supports structured append and the current scanned code is part of one then the\r\n * parity is given with it.\r\n */\r\n ResultMetadataType[ResultMetadataType[\"STRUCTURED_APPEND_PARITY\"] = 10] = \"STRUCTURED_APPEND_PARITY\";\r\n})(ResultMetadataType || (ResultMetadataType = {}));\r\nexports.default = ResultMetadataType;\r\n//# sourceMappingURL=ResultMetadataType.js.map","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\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 */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.23.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM' // \n };\n\n return hooks;\n\n})));\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribe(listener) for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\n/*import java.util.Arrays;*/\r\nvar System_1 = require(\"../util/System\");\r\nvar Integer_1 = require(\"../util/Integer\");\r\nvar Arrays_1 = require(\"../util/Arrays\");\r\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\r\n/**\r\n *

A simple, fast array of bits, represented compactly by an array of ints internally.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar BitArray /*implements Cloneable*/ = /** @class */ (function () {\r\n // public constructor() {\r\n // this.size = 0\r\n // this.bits = new Int32Array(1)\r\n // }\r\n // public constructor(size?: number /*int*/) {\r\n // if (undefined === size) {\r\n // this.size = 0\r\n // } else {\r\n // this.size = size\r\n // }\r\n // this.bits = this.makeArray(size)\r\n // }\r\n // For testing only\r\n function BitArray(size /*int*/, bits) {\r\n if (undefined === size) {\r\n this.size = 0;\r\n this.bits = new Int32Array(1);\r\n }\r\n else {\r\n this.size = size;\r\n if (undefined === bits || null === bits) {\r\n this.bits = BitArray.makeArray(size);\r\n }\r\n else {\r\n this.bits = bits;\r\n }\r\n }\r\n }\r\n BitArray.prototype.getSize = function () {\r\n return this.size;\r\n };\r\n BitArray.prototype.getSizeInBytes = function () {\r\n return Math.floor((this.size + 7) / 8);\r\n };\r\n BitArray.prototype.ensureCapacity = function (size /*int*/) {\r\n if (size > this.bits.length * 32) {\r\n var newBits = BitArray.makeArray(size);\r\n System_1.default.arraycopy(this.bits, 0, newBits, 0, this.bits.length);\r\n this.bits = newBits;\r\n }\r\n };\r\n /**\r\n * @param i bit to get\r\n * @return true iff bit i is set\r\n */\r\n BitArray.prototype.get = function (i /*int*/) {\r\n return (this.bits[Math.floor(i / 32)] & (1 << (i & 0x1F))) !== 0;\r\n };\r\n /**\r\n * Sets bit i.\r\n *\r\n * @param i bit to set\r\n */\r\n BitArray.prototype.set = function (i /*int*/) {\r\n this.bits[Math.floor(i / 32)] |= 1 << (i & 0x1F);\r\n };\r\n /**\r\n * Flips bit i.\r\n *\r\n * @param i bit to set\r\n */\r\n BitArray.prototype.flip = function (i /*int*/) {\r\n this.bits[Math.floor(i / 32)] ^= 1 << (i & 0x1F);\r\n };\r\n /**\r\n * @param from first bit to check\r\n * @return index of first bit that is set, starting from the given index, or size if none are set\r\n * at or beyond this given index\r\n * @see #getNextUnset(int)\r\n */\r\n BitArray.prototype.getNextSet = function (from /*int*/) {\r\n var size = this.size;\r\n if (from >= size) {\r\n return size;\r\n }\r\n var bits = this.bits;\r\n var bitsOffset = Math.floor(from / 32);\r\n var currentBits = bits[bitsOffset];\r\n // mask off lesser bits first\r\n currentBits &= ~((1 << (from & 0x1F)) - 1);\r\n var length = bits.length;\r\n while (currentBits === 0) {\r\n if (++bitsOffset === length) {\r\n return size;\r\n }\r\n currentBits = bits[bitsOffset];\r\n }\r\n var result = (bitsOffset * 32) + Integer_1.default.numberOfTrailingZeros(currentBits);\r\n return result > size ? size : result;\r\n };\r\n /**\r\n * @param from index to start looking for unset bit\r\n * @return index of next unset bit, or {@code size} if none are unset until the end\r\n * @see #getNextSet(int)\r\n */\r\n BitArray.prototype.getNextUnset = function (from /*int*/) {\r\n var size = this.size;\r\n if (from >= size) {\r\n return size;\r\n }\r\n var bits = this.bits;\r\n var bitsOffset = Math.floor(from / 32);\r\n var currentBits = ~bits[bitsOffset];\r\n // mask off lesser bits first\r\n currentBits &= ~((1 << (from & 0x1F)) - 1);\r\n var length = bits.length;\r\n while (currentBits === 0) {\r\n if (++bitsOffset === length) {\r\n return size;\r\n }\r\n currentBits = ~bits[bitsOffset];\r\n }\r\n var result = (bitsOffset * 32) + Integer_1.default.numberOfTrailingZeros(currentBits);\r\n return result > size ? size : result;\r\n };\r\n /**\r\n * Sets a block of 32 bits, starting at bit i.\r\n *\r\n * @param i first bit to set\r\n * @param newBits the new value of the next 32 bits. Note again that the least-significant bit\r\n * corresponds to bit i, the next-least-significant to i+1, and so on.\r\n */\r\n BitArray.prototype.setBulk = function (i /*int*/, newBits /*int*/) {\r\n this.bits[Math.floor(i / 32)] = newBits;\r\n };\r\n /**\r\n * Sets a range of bits.\r\n *\r\n * @param start start of range, inclusive.\r\n * @param end end of range, exclusive\r\n */\r\n BitArray.prototype.setRange = function (start /*int*/, end /*int*/) {\r\n if (end < start || start < 0 || end > this.size) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n if (end === start) {\r\n return;\r\n }\r\n end--; // will be easier to treat this as the last actually set bit -- inclusive\r\n var firstInt = Math.floor(start / 32);\r\n var lastInt = Math.floor(end / 32);\r\n var bits = this.bits;\r\n for (var i = firstInt; i <= lastInt; i++) {\r\n var firstBit = i > firstInt ? 0 : start & 0x1F;\r\n var lastBit = i < lastInt ? 31 : end & 0x1F;\r\n // Ones from firstBit to lastBit, inclusive\r\n var mask = (2 << lastBit) - (1 << firstBit);\r\n bits[i] |= mask;\r\n }\r\n };\r\n /**\r\n * Clears all bits (sets to false).\r\n */\r\n BitArray.prototype.clear = function () {\r\n var max = this.bits.length;\r\n var bits = this.bits;\r\n for (var i = 0; i < max; i++) {\r\n bits[i] = 0;\r\n }\r\n };\r\n /**\r\n * Efficient method to check if a range of bits is set, or not set.\r\n *\r\n * @param start start of range, inclusive.\r\n * @param end end of range, exclusive\r\n * @param value if true, checks that bits in range are set, otherwise checks that they are not set\r\n * @return true iff all bits are set or not set in range, according to value argument\r\n * @throws IllegalArgumentException if end is less than start or the range is not contained in the array\r\n */\r\n BitArray.prototype.isRange = function (start /*int*/, end /*int*/, value) {\r\n if (end < start || start < 0 || end > this.size) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n if (end === start) {\r\n return true; // empty range matches\r\n }\r\n end--; // will be easier to treat this as the last actually set bit -- inclusive\r\n var firstInt = Math.floor(start / 32);\r\n var lastInt = Math.floor(end / 32);\r\n var bits = this.bits;\r\n for (var i = firstInt; i <= lastInt; i++) {\r\n var firstBit = i > firstInt ? 0 : start & 0x1F;\r\n var lastBit = i < lastInt ? 31 : end & 0x1F;\r\n // Ones from firstBit to lastBit, inclusive\r\n var mask = (2 << lastBit) - (1 << firstBit) & 0xFFFFFFFF;\r\n // TYPESCRIPTPORT: & 0xFFFFFFFF added to discard anything after 32 bits, as ES has 53 bits\r\n // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (is: that,\r\n // equals the mask, or we're looking for 0s and the masked portion is not all 0s\r\n if ((bits[i] & mask) !== (value ? mask : 0)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n BitArray.prototype.appendBit = function (bit) {\r\n this.ensureCapacity(this.size + 1);\r\n if (bit) {\r\n this.bits[Math.floor(this.size / 32)] |= 1 << (this.size & 0x1F);\r\n }\r\n this.size++;\r\n };\r\n /**\r\n * Appends the least-significant bits, from value, in order from most-significant to\r\n * least-significant. For example, appending 6 bits from 0x000001E will append the bits\r\n * 0, 1, 1, 1, 1, 0 in that order.\r\n *\r\n * @param value {@code int} containing bits to append\r\n * @param numBits bits from value to append\r\n */\r\n BitArray.prototype.appendBits = function (value /*int*/, numBits /*int*/) {\r\n if (numBits < 0 || numBits > 32) {\r\n throw new IllegalArgumentException_1.default('Num bits must be between 0 and 32');\r\n }\r\n this.ensureCapacity(this.size + numBits);\r\n var appendBit = this.appendBit;\r\n for (var numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) {\r\n this.appendBit(((value >> (numBitsLeft - 1)) & 0x01) === 1);\r\n }\r\n };\r\n BitArray.prototype.appendBitArray = function (other) {\r\n var otherSize = other.size;\r\n this.ensureCapacity(this.size + otherSize);\r\n var appendBit = this.appendBit;\r\n for (var i = 0; i < otherSize; i++) {\r\n this.appendBit(other.get(i));\r\n }\r\n };\r\n BitArray.prototype.xor = function (other) {\r\n if (this.size !== other.size) {\r\n throw new IllegalArgumentException_1.default('Sizes don\\'t match');\r\n }\r\n var bits = this.bits;\r\n for (var i = 0, length_1 = bits.length; i < length_1; i++) {\r\n // The last int could be incomplete (i.e. not have 32 bits in\r\n // it) but there is no problem since 0 XOR 0 == 0.\r\n bits[i] ^= other.bits[i];\r\n }\r\n };\r\n /**\r\n *\r\n * @param bitOffset first bit to start writing\r\n * @param array array to write into. Bytes are written most-significant byte first. This is the opposite\r\n * of the internal representation, which is exposed by {@link #getBitArray()}\r\n * @param offset position in array to start writing\r\n * @param numBytes how many bytes to write\r\n */\r\n BitArray.prototype.toBytes = function (bitOffset /*int*/, array, offset /*int*/, numBytes /*int*/) {\r\n for (var i = 0; i < numBytes; i++) {\r\n var theByte = 0;\r\n for (var j = 0; j < 8; j++) {\r\n if (this.get(bitOffset)) {\r\n theByte |= 1 << (7 - j);\r\n }\r\n bitOffset++;\r\n }\r\n array[offset + i] = /*(byte)*/ theByte;\r\n }\r\n };\r\n /**\r\n * @return underlying array of ints. The first element holds the first 32 bits, and the least\r\n * significant bit is bit 0.\r\n */\r\n BitArray.prototype.getBitArray = function () {\r\n return this.bits;\r\n };\r\n /**\r\n * Reverses all bits in the array.\r\n */\r\n BitArray.prototype.reverse = function () {\r\n var newBits = new Int32Array(this.bits.length);\r\n // reverse all int's first\r\n var len = Math.floor((this.size - 1) / 32);\r\n var oldBitsLen = len + 1;\r\n var bits = this.bits;\r\n for (var i = 0; i < oldBitsLen; i++) {\r\n var x = bits[i];\r\n x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1);\r\n x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2);\r\n x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4);\r\n x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8);\r\n x = ((x >> 16) & 0x0000ffff) | ((x & 0x0000ffff) << 16);\r\n newBits[len - i] = /*(int)*/ x;\r\n }\r\n // now correct the int's if the bit size isn't a multiple of 32\r\n if (this.size !== oldBitsLen * 32) {\r\n var leftOffset = oldBitsLen * 32 - this.size;\r\n var currentInt = newBits[0] >>> leftOffset;\r\n for (var i = 1; i < oldBitsLen; i++) {\r\n var nextInt = newBits[i];\r\n currentInt |= nextInt << (32 - leftOffset);\r\n newBits[i - 1] = currentInt;\r\n currentInt = nextInt >>> leftOffset;\r\n }\r\n newBits[oldBitsLen - 1] = currentInt;\r\n }\r\n this.bits = newBits;\r\n };\r\n BitArray.makeArray = function (size /*int*/) {\r\n return new Int32Array(Math.floor((size + 31) / 32));\r\n };\r\n /*@Override*/\r\n BitArray.prototype.equals = function (o) {\r\n if (!(o instanceof BitArray)) {\r\n return false;\r\n }\r\n var other = o;\r\n return this.size === other.size && Arrays_1.default.equals(this.bits, other.bits);\r\n };\r\n /*@Override*/\r\n BitArray.prototype.hashCode = function () {\r\n return 31 * this.size + Arrays_1.default.hashCode(this.bits);\r\n };\r\n /*@Override*/\r\n BitArray.prototype.toString = function () {\r\n var result = '';\r\n for (var i = 0, size = this.size; i < size; i++) {\r\n if ((i & 0x07) === 0) {\r\n result += ' ';\r\n }\r\n result += this.get(i) ? 'X' : '.';\r\n }\r\n return result;\r\n };\r\n /*@Override*/\r\n BitArray.prototype.clone = function () {\r\n return new BitArray(this.size, this.bits.slice());\r\n };\r\n return BitArray;\r\n}());\r\nexports.default = BitArray;\r\n//# sourceMappingURL=BitArray.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common.reedsolomon {*/\r\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\r\nvar Integer_1 = require(\"../../util/Integer\");\r\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\r\nvar ArithmeticException_1 = require(\"../../ArithmeticException\");\r\n/**\r\n *

This class contains utility methods for performing mathematical operations over\r\n * the Galois Fields. Operations use a given primitive polynomial in calculations.

\r\n *\r\n *

Throughout this package, elements of the GF are represented as an {@code int}\r\n * for convenience and speed (but at the cost of memory).\r\n *

\r\n *\r\n * @author Sean Owen\r\n * @author David Olivier\r\n */\r\nvar GenericGF = /** @class */ (function () {\r\n /**\r\n * Create a representation of GF(size) using the given primitive polynomial.\r\n *\r\n * @param primitive irreducible polynomial whose coefficients are represented by\r\n * the bits of an int, where the least-significant bit represents the constant\r\n * coefficient\r\n * @param size the size of the field\r\n * @param b the factor b in the generator polynomial can be 0- or 1-based\r\n * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))).\r\n * In most cases it should be 1, but for QR code it is 0.\r\n */\r\n function GenericGF(primitive /*int*/, size /*int*/, generatorBase /*int*/) {\r\n this.primitive = primitive;\r\n this.size = size;\r\n this.generatorBase = generatorBase;\r\n var expTable = new Int32Array(size);\r\n var x = 1;\r\n for (var i = 0; i < size; i++) {\r\n expTable[i] = x;\r\n x *= 2; // we're assuming the generator alpha is 2\r\n if (x >= size) {\r\n x ^= primitive;\r\n x &= size - 1;\r\n }\r\n }\r\n this.expTable = expTable;\r\n var logTable = new Int32Array(size);\r\n for (var i = 0; i < size - 1; i++) {\r\n logTable[expTable[i]] = i;\r\n }\r\n this.logTable = logTable;\r\n // logTable[0] == 0 but this should never be used\r\n this.zero = new GenericGFPoly_1.default(this, Int32Array.from([0]));\r\n this.one = new GenericGFPoly_1.default(this, Int32Array.from([1]));\r\n }\r\n GenericGF.prototype.getZero = function () {\r\n return this.zero;\r\n };\r\n GenericGF.prototype.getOne = function () {\r\n return this.one;\r\n };\r\n /**\r\n * @return the monomial representing coefficient * x^degree\r\n */\r\n GenericGF.prototype.buildMonomial = function (degree /*int*/, coefficient /*int*/) {\r\n if (degree < 0) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n if (coefficient === 0) {\r\n return this.zero;\r\n }\r\n var coefficients = new Int32Array(degree + 1);\r\n coefficients[0] = coefficient;\r\n return new GenericGFPoly_1.default(this, coefficients);\r\n };\r\n /**\r\n * Implements both addition and subtraction -- they are the same in GF(size).\r\n *\r\n * @return sum/difference of a and b\r\n */\r\n GenericGF.addOrSubtract = function (a /*int*/, b /*int*/) {\r\n return a ^ b;\r\n };\r\n /**\r\n * @return 2 to the power of a in GF(size)\r\n */\r\n GenericGF.prototype.exp = function (a /*int*/) {\r\n return this.expTable[a];\r\n };\r\n /**\r\n * @return base 2 log of a in GF(size)\r\n */\r\n GenericGF.prototype.log = function (a /*int*/) {\r\n if (a === 0) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n return this.logTable[a];\r\n };\r\n /**\r\n * @return multiplicative inverse of a\r\n */\r\n GenericGF.prototype.inverse = function (a /*int*/) {\r\n if (a === 0) {\r\n throw new ArithmeticException_1.default();\r\n }\r\n return this.expTable[this.size - this.logTable[a] - 1];\r\n };\r\n /**\r\n * @return product of a and b in GF(size)\r\n */\r\n GenericGF.prototype.multiply = function (a /*int*/, b /*int*/) {\r\n if (a === 0 || b === 0) {\r\n return 0;\r\n }\r\n return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)];\r\n };\r\n GenericGF.prototype.getSize = function () {\r\n return this.size;\r\n };\r\n GenericGF.prototype.getGeneratorBase = function () {\r\n return this.generatorBase;\r\n };\r\n /*@Override*/\r\n GenericGF.prototype.toString = function () {\r\n return 'GF(0x' + Integer_1.default.toHexString(this.primitive) + ',' + this.size + ')';\r\n };\r\n GenericGF.prototype.equals = function (o) {\r\n return o === this;\r\n };\r\n GenericGF.AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1\r\n GenericGF.AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1\r\n GenericGF.AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1\r\n GenericGF.AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1\r\n GenericGF.QR_CODE_FIELD_256 = new GenericGF(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1\r\n GenericGF.DATA_MATRIX_FIELD_256 = new GenericGF(0x012D, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1\r\n GenericGF.AZTEC_DATA_8 = GenericGF.DATA_MATRIX_FIELD_256;\r\n GenericGF.MAXICODE_FIELD_64 = GenericGF.AZTEC_DATA_6;\r\n return GenericGF;\r\n}());\r\nexports.default = GenericGF;\r\n//# sourceMappingURL=GenericGF.js.map","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * const result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar HTMLCanvasElementLuminanceSource_1 = require(\"./HTMLCanvasElementLuminanceSource\");\r\nvar VideoInputDevice_1 = require(\"./VideoInputDevice\");\r\nvar BinaryBitmap_1 = require(\"../core/BinaryBitmap\");\r\nvar HybridBinarizer_1 = require(\"../core/common/HybridBinarizer\");\r\nvar NotFoundException_1 = require(\"../core/NotFoundException\");\r\nvar ArgumentException_1 = require(\"../core/ArgumentException\");\r\nvar ChecksumException_1 = require(\"../core/ChecksumException\");\r\nvar FormatException_1 = require(\"../core/FormatException\");\r\n/**\r\n * @deprecated Moving to @zxing/browser\r\n *\r\n * Base class for browser code reader.\r\n */\r\nvar BrowserCodeReader = /** @class */ (function () {\r\n /**\r\n * Creates an instance of BrowserCodeReader.\r\n * @param {Reader} reader The reader instance to decode the barcode\r\n * @param {number} [timeBetweenScansMillis=500] the time delay between subsequent decode tries\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n function BrowserCodeReader(reader, timeBetweenScansMillis, hints) {\r\n if (timeBetweenScansMillis === void 0) { timeBetweenScansMillis = 500; }\r\n this.reader = reader;\r\n this.timeBetweenScansMillis = timeBetweenScansMillis;\r\n this.hints = hints;\r\n }\r\n /**\r\n * Obtain the list of available devices with type 'videoinput'.\r\n *\r\n * @returns {Promise} an array of available video input devices\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n BrowserCodeReader.prototype.getVideoInputDevices = function () {\r\n return new Promise(function (resolve, reject) {\r\n navigator.mediaDevices.enumerateDevices()\r\n .then(function (devices) {\r\n var sources = new Array();\r\n var c = 0;\r\n for (var i = 0, length_1 = devices.length; i !== length_1; i++) {\r\n var device = devices[i];\r\n if (device.kind === 'videoinput') {\r\n sources.push(new VideoInputDevice_1.VideoInputDevice(device.deviceId, device.label || \"Video source \" + c));\r\n c++;\r\n }\r\n }\r\n resolve(sources);\r\n })\r\n .catch(function (err) {\r\n reject(err);\r\n });\r\n });\r\n };\r\n /**\r\n * Decodes the barcode from the device specified by deviceId while showing the video in the specified video element.\r\n *\r\n * @param {string} [deviceId] the id of one of the devices obtained after calling getVideoInputDevices. Can be undefined, in this case it will decode from one of the available devices, preffering the main camera (environment facing) if available.\r\n * @param {(string|HTMLVideoElement)} [videoElement] the video element in page where to show the video while decoding. Can be either an element id or directly an HTMLVideoElement. Can be undefined, in which case no video will be shown.\r\n * @returns {Promise} The decoding result.\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n BrowserCodeReader.prototype.decodeFromInputVideoDevice = function (deviceId, videoElement) {\r\n var _this = this;\r\n this.reset();\r\n this.prepareVideoElement(videoElement);\r\n var constraints;\r\n if (undefined === deviceId) {\r\n constraints = {\r\n video: { facingMode: 'environment' }\r\n };\r\n }\r\n else {\r\n constraints = {\r\n video: { deviceId: { exact: deviceId } }\r\n };\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var callback = function () {\r\n _this.decodeOnceWithDelay(resolve, reject);\r\n };\r\n navigator.mediaDevices.getUserMedia(constraints)\r\n .then(function (stream) { return _this.startDecodeFromStream(stream, callback); })\r\n .catch(function (error) { return reject(error); });\r\n });\r\n };\r\n /**\r\n * Sets the new stream and request a new decoding-with-delay.\r\n *\r\n * @param stream The stream to be shown in the video element.\r\n * @param callbackFn A callback for the decode method.\r\n *\r\n * @todo Return Promise\r\n */\r\n BrowserCodeReader.prototype.startDecodeFromStream = function (stream, callbackFn) {\r\n this.stream = stream;\r\n this.bindVideoSrc(this.videoElement, stream);\r\n this.bindEvents(this.videoElement, callbackFn);\r\n };\r\n /**\r\n * Binds listeners and callbacks to the videoElement.\r\n *\r\n * @param videoElement\r\n * @param callbackFn\r\n */\r\n BrowserCodeReader.prototype.bindEvents = function (videoElement, listener) {\r\n this.videoPlayingEventListener = listener;\r\n videoElement.addEventListener('playing', this.videoPlayingEventListener);\r\n this.videoLoadedMetadataEventListener = function () { return videoElement.play(); };\r\n videoElement.addEventListener('loadedmetadata', this.videoLoadedMetadataEventListener);\r\n };\r\n /**\r\n * Decodes a barcode form a video url.\r\n *\r\n * @param {string} videoUrl The video url to decode from, required.\r\n * @param {(string|HTMLVideoElement)} [videoElement] The video element where to play the video while decoding. Can be undefined in which case no video is shown.\r\n * @returns {Promise} The decoding result.\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n BrowserCodeReader.prototype.decodeFromVideoSource = function (videoUrl, videoElement) {\r\n var _this = this;\r\n this.reset();\r\n this.prepareVideoElement(videoElement);\r\n return new Promise(function (resolve, reject) {\r\n _this.videoPlayEndedEventListener = function () {\r\n _this.stopStreams();\r\n reject(new NotFoundException_1.default());\r\n };\r\n _this.videoElement.addEventListener('ended', _this.videoPlayEndedEventListener);\r\n _this.videoPlayingEventListener = function () {\r\n _this.decodeOnceWithDelay(resolve, reject);\r\n };\r\n _this.videoElement.addEventListener('playing', _this.videoPlayingEventListener);\r\n _this.videoElement.setAttribute('autoplay', 'true');\r\n _this.videoElement.setAttribute('src', videoUrl);\r\n });\r\n };\r\n /**\r\n * Sets a HTMLVideoElement for scanning or creates a new one.\r\n *\r\n * @param videoElement The HTMLVideoElement to be set.\r\n */\r\n BrowserCodeReader.prototype.prepareVideoElement = function (videoElement) {\r\n if (!videoElement && typeof document !== 'undefined') {\r\n videoElement = document.createElement('video');\r\n videoElement.width = 200;\r\n videoElement.height = 200;\r\n }\r\n if (typeof videoElement === 'string') {\r\n videoElement = this.getMediaElement(videoElement, 'video');\r\n }\r\n // Needed for iOS 11\r\n videoElement.setAttribute('autoplay', 'true');\r\n videoElement.setAttribute('muted', 'true');\r\n videoElement.setAttribute('playsinline', 'true');\r\n videoElement.setAttribute('autofocus', 'true');\r\n this.videoElement = videoElement;\r\n };\r\n BrowserCodeReader.prototype.getMediaElement = function (mediaElementId, type) {\r\n var mediaElement = document.getElementById(mediaElementId);\r\n if (null === mediaElement) {\r\n throw new ArgumentException_1.default(\"element with id '\" + mediaElementId + \"' not found\");\r\n }\r\n if (mediaElement.nodeName.toLowerCase() !== type.toLowerCase()) {\r\n throw new ArgumentException_1.default(\"element with id '\" + mediaElementId + \"' must be an \" + type + \" element\");\r\n }\r\n return mediaElement;\r\n };\r\n /**\r\n * Decodes the barcode from an image.\r\n *\r\n * @param {(string|HTMLImageElement)} [imageElement] The image element that can be either an element id or the element itself. Can be undefined in which case the decoding will be done from the imageUrl parameter.\r\n * @param {string} [imageUrl]\r\n * @returns {Promise} The decoding result.\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n BrowserCodeReader.prototype.decodeFromImage = function (imageElement, imageUrl) {\r\n var _this = this;\r\n this.reset();\r\n if (undefined === imageElement && undefined === imageUrl) {\r\n throw new ArgumentException_1.default('either imageElement with a src set or an url must be provided');\r\n }\r\n this.prepareImageElement(imageElement);\r\n return new Promise(function (resolve, reject) {\r\n if (undefined !== imageUrl) {\r\n _this.imageLoadedEventListener = function () {\r\n _this.decodeOnce(resolve, reject, false, true);\r\n };\r\n _this.imageElement.addEventListener('load', _this.imageLoadedEventListener);\r\n _this.imageElement.src = imageUrl;\r\n }\r\n else if (_this.isImageLoaded(_this.imageElement)) {\r\n _this.decodeOnce(resolve, reject, false, true);\r\n }\r\n else {\r\n throw new ArgumentException_1.default(\"either src or a loaded img should be provided\");\r\n }\r\n });\r\n };\r\n BrowserCodeReader.prototype.isImageLoaded = function (img) {\r\n // During the onload event, IE correctly identifies any images that\r\n // weren’t downloaded as not complete. Others should too. Gecko-based\r\n // browsers act like NS4 in that they report this incorrectly.\r\n if (!img.complete) {\r\n return false;\r\n }\r\n // However, they do have two very useful properties: naturalWidth and\r\n // naturalHeight. These give the true size of the image. If it failed\r\n // to load, either of these should be zero.\r\n if (img.naturalWidth === 0) {\r\n return false;\r\n }\r\n // No other way of checking: assume it’s ok.\r\n return true;\r\n };\r\n BrowserCodeReader.prototype.prepareImageElement = function (imageElement) {\r\n if (typeof imageElement === 'undefined') {\r\n imageElement = document.createElement('img');\r\n imageElement.width = 200;\r\n imageElement.height = 200;\r\n }\r\n if (typeof imageElement === 'string') {\r\n imageElement = this.getMediaElement(imageElement, 'img');\r\n }\r\n this.imageElement = imageElement;\r\n };\r\n BrowserCodeReader.prototype.decodeOnceWithDelay = function (resolve, reject) {\r\n this.timeoutHandler = window.setTimeout(this.decodeOnce.bind(this, resolve, reject), this.timeBetweenScansMillis);\r\n };\r\n BrowserCodeReader.prototype.decodeOnce = function (resolve, reject, retryIfNotFound, retryIfChecksumOrFormatError) {\r\n if (retryIfNotFound === void 0) { retryIfNotFound = true; }\r\n if (retryIfChecksumOrFormatError === void 0) { retryIfChecksumOrFormatError = true; }\r\n try {\r\n var result = this.decode();\r\n resolve(result);\r\n }\r\n catch (re) {\r\n if (retryIfNotFound && re instanceof NotFoundException_1.default) {\r\n // Not found, trying again\r\n this.decodeOnceWithDelay(resolve, reject);\r\n }\r\n else if (retryIfChecksumOrFormatError && (re instanceof ChecksumException_1.default || re instanceof FormatException_1.default)) {\r\n // checksum or format error, trying again\r\n this.decodeOnceWithDelay(resolve, reject);\r\n }\r\n else {\r\n reject(re);\r\n }\r\n }\r\n };\r\n /**\r\n * Gets the BinaryBitmap for ya! (and decodes it)\r\n */\r\n BrowserCodeReader.prototype.decode = function () {\r\n // get binary bitmap for decode function\r\n var binaryBitmap = this.createBinaryBitmap(this.videoElement || this.imageElement);\r\n return this.decodeBitmap(binaryBitmap);\r\n };\r\n /**\r\n * Creates a binaryBitmap based in some image source.\r\n *\r\n * @param mediaElement HTML element containing drawable image source.\r\n */\r\n BrowserCodeReader.prototype.createBinaryBitmap = function (mediaElement) {\r\n if (undefined === this.canvasElementContext) {\r\n this.prepareCaptureCanvas();\r\n }\r\n this.drawImageOnCanvas(this.canvasElementContext, mediaElement);\r\n var luminanceSource = new HTMLCanvasElementLuminanceSource_1.HTMLCanvasElementLuminanceSource(this.canvasElement);\r\n var hybridBinarizer = new HybridBinarizer_1.default(luminanceSource);\r\n return new BinaryBitmap_1.default(hybridBinarizer);\r\n };\r\n /**\r\n * Ovewriting this allows you to manipulate the snapshot image in anyway you want before decode.\r\n */\r\n BrowserCodeReader.prototype.drawImageOnCanvas = function (canvasElementContext, srcElement) {\r\n canvasElementContext.drawImage(srcElement, 0, 0);\r\n };\r\n /**\r\n * Call the encapsulated readers decode\r\n */\r\n BrowserCodeReader.prototype.decodeBitmap = function (binaryBitmap) {\r\n return this.reader.decode(binaryBitmap, this.hints);\r\n };\r\n /**\r\n * 🖌 Prepares the canvas for capture and scan frames.\r\n */\r\n BrowserCodeReader.prototype.prepareCaptureCanvas = function () {\r\n if (typeof document === 'undefined') {\r\n this.canvasElement = undefined;\r\n this.canvasElementContext = undefined;\r\n return;\r\n }\r\n var canvasElement = document.createElement('canvas');\r\n var width;\r\n var height;\r\n if (typeof this.videoElement !== 'undefined') {\r\n width = this.videoElement.videoWidth;\r\n height = this.videoElement.videoHeight;\r\n }\r\n if (!width && !height && typeof this.imageElement !== 'undefined') {\r\n width = this.imageElement.naturalWidth || this.imageElement.width;\r\n height = this.imageElement.naturalHeight || this.imageElement.height;\r\n }\r\n canvasElement.style.width = width + 'px';\r\n canvasElement.style.height = height + 'px';\r\n canvasElement.width = width;\r\n canvasElement.height = height;\r\n this.canvasElement = canvasElement;\r\n this.canvasElementContext = canvasElement.getContext('2d');\r\n };\r\n /**\r\n * Stops the continuous scan and cleans the stream.\r\n */\r\n BrowserCodeReader.prototype.stopStreams = function () {\r\n if (this.stream) {\r\n this.stream.getVideoTracks().forEach(function (t) { return t.stop(); });\r\n this.stream = undefined;\r\n }\r\n };\r\n /**\r\n * Resets the code reader to the initial state. Cancels any ongoing barcode scanning from video or camera.\r\n *\r\n * @memberOf BrowserCodeReader\r\n */\r\n BrowserCodeReader.prototype.reset = function () {\r\n window.clearTimeout(this.timeoutHandler);\r\n // stops the camera, preview and scan 🔴\r\n this.stopStreams();\r\n if (undefined !== this.videoPlayEndedEventListener && undefined !== this.videoElement) {\r\n this.videoElement.removeEventListener('ended', this.videoPlayEndedEventListener);\r\n }\r\n if (undefined !== this.videoPlayingEventListener && undefined !== this.videoElement) {\r\n this.videoElement.removeEventListener('playing', this.videoPlayingEventListener);\r\n }\r\n if (undefined !== this.videoElement) {\r\n this.unbindVideoSrc(this.videoElement);\r\n this.videoElement = undefined;\r\n }\r\n if (undefined !== this.videoPlayEndedEventListener && undefined !== this.imageElement) {\r\n this.imageElement.removeEventListener('load', this.imageLoadedEventListener);\r\n }\r\n if (undefined !== this.imageElement) {\r\n this.imageElement.src = undefined;\r\n this.imageElement.removeAttribute('src');\r\n this.imageElement = undefined;\r\n }\r\n this.canvasElementContext = undefined;\r\n this.canvasElement = undefined;\r\n };\r\n /**\r\n * Defines what the videoElement src will be.\r\n *\r\n * @param videoElement\r\n * @param stream\r\n */\r\n BrowserCodeReader.prototype.bindVideoSrc = function (videoElement, stream) {\r\n // Older browsers may not have `srcObject`\r\n try {\r\n // @NOTE Throws Exception if interrupted by a new loaded request\r\n videoElement.srcObject = stream;\r\n }\r\n catch (err) {\r\n // @NOTE Avoid using this in new browsers, as it is going away.\r\n videoElement.src = window.URL.createObjectURL(stream);\r\n }\r\n };\r\n /**\r\n * Unbinds a HTML video src property.\r\n *\r\n * @param videoElement\r\n */\r\n BrowserCodeReader.prototype.unbindVideoSrc = function (videoElement) {\r\n try {\r\n videoElement.srcObject = null;\r\n }\r\n catch (err) {\r\n videoElement.src = '';\r\n }\r\n };\r\n return BrowserCodeReader;\r\n}());\r\nexports.BrowserCodeReader = BrowserCodeReader;\r\n//# sourceMappingURL=BrowserCodeReader.js.map","\"use strict\";\r\n/*\r\n * Copyright 2009 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar LuminanceSource_1 = require(\"./LuminanceSource\");\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes\r\n * white and vice versa, and each value becomes (255-value).\r\n *\r\n * @author Sean Owen\r\n */\r\nvar InvertedLuminanceSource = /** @class */ (function (_super) {\r\n __extends(InvertedLuminanceSource, _super);\r\n function InvertedLuminanceSource(delegate) {\r\n var _this = _super.call(this, delegate.getWidth(), delegate.getHeight()) || this;\r\n _this.delegate = delegate;\r\n return _this;\r\n }\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.getRow = function (y /*int*/, row) {\r\n var sourceRow = this.delegate.getRow(y, row);\r\n var width = this.getWidth();\r\n for (var i = 0; i < width; i++) {\r\n sourceRow[i] = /*(byte)*/ (255 - (sourceRow[i] & 0xFF));\r\n }\r\n return sourceRow;\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.getMatrix = function () {\r\n var matrix = this.delegate.getMatrix();\r\n var length = this.getWidth() * this.getHeight();\r\n var invertedMatrix = new Uint8ClampedArray(length);\r\n for (var i = 0; i < length; i++) {\r\n invertedMatrix[i] = /*(byte)*/ (255 - (matrix[i] & 0xFF));\r\n }\r\n return invertedMatrix;\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.isCropSupported = function () {\r\n return this.delegate.isCropSupported();\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\r\n return new InvertedLuminanceSource(this.delegate.crop(left, top, width, height));\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.isRotateSupported = function () {\r\n return this.delegate.isRotateSupported();\r\n };\r\n /**\r\n * @return original delegate {@link LuminanceSource} since invert undoes itself\r\n */\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.invert = function () {\r\n return this.delegate;\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.rotateCounterClockwise = function () {\r\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise());\r\n };\r\n /*@Override*/\r\n InvertedLuminanceSource.prototype.rotateCounterClockwise45 = function () {\r\n return new InvertedLuminanceSource(this.delegate.rotateCounterClockwise45());\r\n };\r\n return InvertedLuminanceSource;\r\n}(LuminanceSource_1.default));\r\nexports.default = InvertedLuminanceSource;\r\n//# sourceMappingURL=InvertedLuminanceSource.js.map","\"use strict\";\r\n/*\r\n * Copyright 2009 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringBuilder_1 = require(\"./util/StringBuilder\");\r\nvar UnsupportedOperationException_1 = require(\"./UnsupportedOperationException\");\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * The purpose of this class hierarchy is to abstract different bitmap implementations across\r\n * platforms into a standard interface for requesting greyscale luminance values. The interface\r\n * only provides immutable methods; therefore crop and rotation create copies. This is to ensure\r\n * that one Reader does not modify the original luminance source and leave it in an unknown state\r\n * for other Readers in the chain.\r\n *\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n */\r\nvar LuminanceSource = /** @class */ (function () {\r\n function LuminanceSource(width /*int*/, height /*int*/) {\r\n this.width = width;\r\n this.height = height;\r\n }\r\n /**\r\n * @return The width of the bitmap.\r\n */\r\n LuminanceSource.prototype.getWidth = function () {\r\n return this.width;\r\n };\r\n /**\r\n * @return The height of the bitmap.\r\n */\r\n LuminanceSource.prototype.getHeight = function () {\r\n return this.height;\r\n };\r\n /**\r\n * @return Whether this subclass supports cropping.\r\n */\r\n LuminanceSource.prototype.isCropSupported = function () {\r\n return false;\r\n };\r\n /**\r\n * Returns a new object with cropped image data. Implementations may keep a reference to the\r\n * original data rather than a copy. Only callable if isCropSupported() is true.\r\n *\r\n * @param left The left coordinate, which must be in [0,getWidth())\r\n * @param top The top coordinate, which must be in [0,getHeight())\r\n * @param width The width of the rectangle to crop.\r\n * @param height The height of the rectangle to crop.\r\n * @return A cropped version of this object.\r\n */\r\n LuminanceSource.prototype.crop = function (left /*int*/, top /*int*/, width /*int*/, height /*int*/) {\r\n throw new UnsupportedOperationException_1.default('This luminance source does not support cropping.');\r\n };\r\n /**\r\n * @return Whether this subclass supports counter-clockwise rotation.\r\n */\r\n LuminanceSource.prototype.isRotateSupported = function () {\r\n return false;\r\n };\r\n /**\r\n * Returns a new object with rotated image data by 90 degrees counterclockwise.\r\n * Only callable if {@link #isRotateSupported()} is true.\r\n *\r\n * @return A rotated version of this object.\r\n */\r\n LuminanceSource.prototype.rotateCounterClockwise = function () {\r\n throw new UnsupportedOperationException_1.default('This luminance source does not support rotation by 90 degrees.');\r\n };\r\n /**\r\n * Returns a new object with rotated image data by 45 degrees counterclockwise.\r\n * Only callable if {@link #isRotateSupported()} is true.\r\n *\r\n * @return A rotated version of this object.\r\n */\r\n LuminanceSource.prototype.rotateCounterClockwise45 = function () {\r\n throw new UnsupportedOperationException_1.default('This luminance source does not support rotation by 45 degrees.');\r\n };\r\n /*@Override*/\r\n LuminanceSource.prototype.toString = function () {\r\n var row = new Uint8ClampedArray(this.width);\r\n var result = new StringBuilder_1.default();\r\n for (var y = 0; y < this.height; y++) {\r\n var sourceRow = this.getRow(y, row);\r\n for (var x = 0; x < this.width; x++) {\r\n var luminance = sourceRow[x] & 0xFF;\r\n var c = void 0;\r\n if (luminance < 0x40) {\r\n c = '#';\r\n }\r\n else if (luminance < 0x80) {\r\n c = '+';\r\n }\r\n else if (luminance < 0xC0) {\r\n c = '.';\r\n }\r\n else {\r\n c = ' ';\r\n }\r\n result.append(c);\r\n }\r\n result.append('\\n');\r\n }\r\n return result.toString();\r\n };\r\n return LuminanceSource;\r\n}());\r\nexports.default = LuminanceSource;\r\n//# sourceMappingURL=LuminanceSource.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar IllegalStateException = /** @class */ (function (_super) {\r\n __extends(IllegalStateException, _super);\r\n function IllegalStateException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return IllegalStateException;\r\n}(Exception_1.default));\r\nexports.default = IllegalStateException;\r\n//# sourceMappingURL=IllegalStateException.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\nvar FormatException_1 = require(\"../FormatException\");\r\n/*import java.util.HashMap;*/\r\n/*import java.util.Map;*/\r\nvar CharacterSetValueIdentifiers;\r\n(function (CharacterSetValueIdentifiers) {\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp437\"] = 0] = \"Cp437\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_1\"] = 1] = \"ISO8859_1\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_2\"] = 2] = \"ISO8859_2\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_3\"] = 3] = \"ISO8859_3\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_4\"] = 4] = \"ISO8859_4\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_5\"] = 5] = \"ISO8859_5\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_6\"] = 6] = \"ISO8859_6\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_7\"] = 7] = \"ISO8859_7\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_8\"] = 8] = \"ISO8859_8\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_9\"] = 9] = \"ISO8859_9\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_10\"] = 10] = \"ISO8859_10\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_11\"] = 11] = \"ISO8859_11\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_13\"] = 12] = \"ISO8859_13\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_14\"] = 13] = \"ISO8859_14\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_15\"] = 14] = \"ISO8859_15\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ISO8859_16\"] = 15] = \"ISO8859_16\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"SJIS\"] = 16] = \"SJIS\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1250\"] = 17] = \"Cp1250\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1251\"] = 18] = \"Cp1251\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1252\"] = 19] = \"Cp1252\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Cp1256\"] = 20] = \"Cp1256\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UnicodeBigUnmarked\"] = 21] = \"UnicodeBigUnmarked\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"UTF8\"] = 22] = \"UTF8\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"ASCII\"] = 23] = \"ASCII\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"Big5\"] = 24] = \"Big5\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"GB18030\"] = 25] = \"GB18030\";\r\n CharacterSetValueIdentifiers[CharacterSetValueIdentifiers[\"EUC_KR\"] = 26] = \"EUC_KR\";\r\n})(CharacterSetValueIdentifiers = exports.CharacterSetValueIdentifiers || (exports.CharacterSetValueIdentifiers = {}));\r\n/**\r\n * Encapsulates a Character Set ECI, according to \"Extended Channel Interpretations\" 5.3.1.1\r\n * of ISO 18004.\r\n *\r\n * @author Sean Owen\r\n */\r\nvar CharacterSetECI = /** @class */ (function () {\r\n function CharacterSetECI(valueIdentifier, valuesParam, name) {\r\n var otherEncodingNames = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n otherEncodingNames[_i - 3] = arguments[_i];\r\n }\r\n this.valueIdentifier = valueIdentifier;\r\n this.name = name;\r\n if (typeof valuesParam === 'number') {\r\n this.values = Int32Array.from([valuesParam]);\r\n }\r\n else {\r\n this.values = valuesParam;\r\n }\r\n this.otherEncodingNames = otherEncodingNames;\r\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI.set(valueIdentifier, this);\r\n CharacterSetECI.NAME_TO_ECI.set(name, this);\r\n var values = this.values;\r\n for (var i = 0, length_1 = values.length; i !== length_1; i++) {\r\n var v = values[i];\r\n CharacterSetECI.VALUES_TO_ECI.set(v, this);\r\n }\r\n for (var _a = 0, otherEncodingNames_1 = otherEncodingNames; _a < otherEncodingNames_1.length; _a++) {\r\n var otherName = otherEncodingNames_1[_a];\r\n CharacterSetECI.NAME_TO_ECI.set(otherName, this);\r\n }\r\n }\r\n // CharacterSetECI(value: number /*int*/) {\r\n // this(new Int32Array {value})\r\n // }\r\n // CharacterSetECI(value: number /*int*/, String... otherEncodingNames) {\r\n // this.values = new Int32Array {value}\r\n // this.otherEncodingNames = otherEncodingNames\r\n // }\r\n // CharacterSetECI(values: Int32Array, String... otherEncodingNames) {\r\n // this.values = values\r\n // this.otherEncodingNames = otherEncodingNames\r\n // }\r\n CharacterSetECI.prototype.getValueIdentifier = function () {\r\n return this.valueIdentifier;\r\n };\r\n CharacterSetECI.prototype.getName = function () {\r\n return this.name;\r\n };\r\n CharacterSetECI.prototype.getValue = function () {\r\n return this.values[0];\r\n };\r\n /**\r\n * @param value character set ECI value\r\n * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but\r\n * unsupported\r\n * @throws FormatException if ECI value is invalid\r\n */\r\n CharacterSetECI.getCharacterSetECIByValue = function (value /*int*/) {\r\n if (value < 0 || value >= 900) {\r\n throw new FormatException_1.default('incorect value');\r\n }\r\n var characterSet = CharacterSetECI.VALUES_TO_ECI.get(value);\r\n if (undefined === characterSet) {\r\n throw new FormatException_1.default('incorect value');\r\n }\r\n return characterSet;\r\n };\r\n /**\r\n * @param name character set ECI encoding name\r\n * @return CharacterSetECI representing ECI for character encoding, or null if it is legal\r\n * but unsupported\r\n */\r\n CharacterSetECI.getCharacterSetECIByName = function (name) {\r\n var characterSet = CharacterSetECI.NAME_TO_ECI.get(name);\r\n if (undefined === characterSet) {\r\n throw new FormatException_1.default('incorect value');\r\n }\r\n return characterSet;\r\n };\r\n CharacterSetECI.prototype.equals = function (o) {\r\n if (!(o instanceof CharacterSetECI)) {\r\n return false;\r\n }\r\n var other = o;\r\n return this.getName() === other.getName();\r\n };\r\n CharacterSetECI.VALUE_IDENTIFIER_TO_ECI = new Map();\r\n CharacterSetECI.VALUES_TO_ECI = new Map();\r\n CharacterSetECI.NAME_TO_ECI = new Map();\r\n // Enum name is a Java encoding valid for java.lang and java.io\r\n // TYPESCRIPTPORT: changed the main label for ISO as the TextEncoder did not recognized them in the form from java\r\n // (eg ISO8859_1 must be ISO88591 or ISO8859-1 or ISO-8859-1)\r\n // later on: well, except 16 wich does not work with ISO885916 so used ISO-8859-1 form for default\r\n CharacterSetECI.Cp437 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp437, Int32Array.from([0, 2]), 'Cp437');\r\n CharacterSetECI.ISO8859_1 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_1, Int32Array.from([1, 3]), 'ISO-8859-1', 'ISO88591', 'ISO8859_1');\r\n CharacterSetECI.ISO8859_2 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_2, 4, 'ISO-8859-2', 'ISO88592', 'ISO8859_2');\r\n CharacterSetECI.ISO8859_3 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_3, 5, 'ISO-8859-3', 'ISO88593', 'ISO8859_3');\r\n CharacterSetECI.ISO8859_4 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_4, 6, 'ISO-8859-4', 'ISO88594', 'ISO8859_4');\r\n CharacterSetECI.ISO8859_5 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_5, 7, 'ISO-8859-5', 'ISO88595', 'ISO8859_5');\r\n CharacterSetECI.ISO8859_6 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_6, 8, 'ISO-8859-6', 'ISO88596', 'ISO8859_6');\r\n CharacterSetECI.ISO8859_7 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_7, 9, 'ISO-8859-7', 'ISO88597', 'ISO8859_7');\r\n CharacterSetECI.ISO8859_8 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_8, 10, 'ISO-8859-8', 'ISO88598', 'ISO8859_8');\r\n CharacterSetECI.ISO8859_9 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_9, 11, 'ISO-8859-9', 'ISO88599', 'ISO8859_9');\r\n CharacterSetECI.ISO8859_10 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_10, 12, 'ISO-8859-10', 'ISO885910', 'ISO8859_10');\r\n CharacterSetECI.ISO8859_11 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_11, 13, 'ISO-8859-11', 'ISO885911', 'ISO8859_11');\r\n CharacterSetECI.ISO8859_13 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_13, 15, 'ISO-8859-13', 'ISO885913', 'ISO8859_13');\r\n CharacterSetECI.ISO8859_14 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_14, 16, 'ISO-8859-14', 'ISO885914', 'ISO8859_14');\r\n CharacterSetECI.ISO8859_15 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_15, 17, 'ISO-8859-15', 'ISO885915', 'ISO8859_15');\r\n CharacterSetECI.ISO8859_16 = new CharacterSetECI(CharacterSetValueIdentifiers.ISO8859_16, 18, 'ISO-8859-16', 'ISO885916', 'ISO8859_16');\r\n CharacterSetECI.SJIS = new CharacterSetECI(CharacterSetValueIdentifiers.SJIS, 20, 'SJIS', 'Shift_JIS');\r\n CharacterSetECI.Cp1250 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1250, 21, 'Cp1250', 'windows-1250');\r\n CharacterSetECI.Cp1251 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1251, 22, 'Cp1251', 'windows-1251');\r\n CharacterSetECI.Cp1252 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1252, 23, 'Cp1252', 'windows-1252');\r\n CharacterSetECI.Cp1256 = new CharacterSetECI(CharacterSetValueIdentifiers.Cp1256, 24, 'Cp1256', 'windows-1256');\r\n CharacterSetECI.UnicodeBigUnmarked = new CharacterSetECI(CharacterSetValueIdentifiers.UnicodeBigUnmarked, 25, 'UnicodeBigUnmarked', 'UTF-16BE', 'UnicodeBig');\r\n CharacterSetECI.UTF8 = new CharacterSetECI(CharacterSetValueIdentifiers.UTF8, 26, 'UTF8', 'UTF-8');\r\n CharacterSetECI.ASCII = new CharacterSetECI(CharacterSetValueIdentifiers.ASCII, Int32Array.from([27, 170]), 'ASCII', 'US-ASCII');\r\n CharacterSetECI.Big5 = new CharacterSetECI(CharacterSetValueIdentifiers.Big5, 28, 'Big5');\r\n CharacterSetECI.GB18030 = new CharacterSetECI(CharacterSetValueIdentifiers.GB18030, 29, 'GB18030', 'GB2312', 'EUC_CN', 'GBK');\r\n CharacterSetECI.EUC_KR = new CharacterSetECI(CharacterSetValueIdentifiers.EUC_KR, 30, 'EUC_KR', 'EUC-KR');\r\n return CharacterSetECI;\r\n}());\r\nexports.default = CharacterSetECI;\r\n//# sourceMappingURL=CharacterSetECI.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\r\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\r\nvar Result_1 = require(\"../Result\");\r\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\r\nvar ResultPoint_1 = require(\"../ResultPoint\");\r\nvar OneDReader_1 = require(\"./OneDReader\");\r\nvar UPCEANExtensionSupport_1 = require(\"./UPCEANExtensionSupport\");\r\nvar NotFoundException_1 = require(\"../NotFoundException\");\r\nvar FormatException_1 = require(\"../FormatException\");\r\nvar ChecksumException_1 = require(\"../ChecksumException\");\r\n/**\r\n *

Encapsulates functionality and implementation that is common to UPC and EAN families\r\n * of one-dimensional barcodes.

\r\n *\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n * @author Sean Owen\r\n * @author alasdair@google.com (Alasdair Mackintosh)\r\n */\r\nvar UPCEANReader = /** @class */ (function (_super) {\r\n __extends(UPCEANReader, _super);\r\n // private final UPCEANExtensionSupport extensionReader;\r\n // private final EANManufacturerOrgSupport eanManSupport;\r\n function UPCEANReader() {\r\n var _this = _super.call(this) || this;\r\n _this.decodeRowStringBuffer = '';\r\n _this.decodeRowStringBuffer = '';\r\n UPCEANReader.L_AND_G_PATTERNS = UPCEANReader.L_PATTERNS.map(function (arr) {\r\n return arr.slice();\r\n });\r\n for (var i = 10; i < 20; i++) {\r\n var widths = UPCEANReader.L_PATTERNS[i - 10];\r\n var reversedWidths = new Array(widths.length);\r\n for (var j = 0; j < widths.length; j++) {\r\n reversedWidths[j] = widths[widths.length - j - 1];\r\n }\r\n UPCEANReader.L_AND_G_PATTERNS[i] = reversedWidths;\r\n }\r\n return _this;\r\n }\r\n /*\r\n protected UPCEANReader() {\r\n decodeRowStringBuffer = new StringBuilder(20);\r\n extensionReader = new UPCEANExtensionSupport();\r\n eanManSupport = new EANManufacturerOrgSupport();\r\n }\r\n */\r\n UPCEANReader.findStartGuardPattern = function (row) {\r\n var foundStart = false;\r\n var startRange = null;\r\n var nextStart = 0;\r\n var counters = [0, 0, 0];\r\n while (!foundStart) {\r\n counters = [0, 0, 0];\r\n startRange = UPCEANReader.findGuardPattern(row, nextStart, false, this.START_END_PATTERN, counters);\r\n var start = startRange[0];\r\n nextStart = startRange[1];\r\n var quietStart = start - (nextStart - start);\r\n if (quietStart >= 0) {\r\n foundStart = row.isRange(quietStart, start, false);\r\n }\r\n }\r\n return startRange;\r\n };\r\n UPCEANReader.prototype.decodeRow = function (rowNumber, row, hints) {\r\n var startGuardRange = UPCEANReader.findStartGuardPattern(row);\r\n var resultPointCallback = hints == null ? null : hints.get(DecodeHintType_1.default.NEED_RESULT_POINT_CALLBACK);\r\n if (resultPointCallback != null) {\r\n var resultPoint_1 = new ResultPoint_1.default((startGuardRange[0] + startGuardRange[1]) / 2.0, rowNumber);\r\n resultPointCallback.foundPossibleResultPoint(resultPoint_1);\r\n }\r\n var budello = this.decodeMiddle(row, startGuardRange, this.decodeRowStringBuffer);\r\n var endStart = budello.rowOffset;\r\n var result = budello.resultString;\r\n if (resultPointCallback != null) {\r\n var resultPoint_2 = new ResultPoint_1.default(endStart, rowNumber);\r\n resultPointCallback.foundPossibleResultPoint(resultPoint_2);\r\n }\r\n var endRange = UPCEANReader.decodeEnd(row, endStart);\r\n if (resultPointCallback != null) {\r\n var resultPoint_3 = new ResultPoint_1.default((endRange[0] + endRange[1]) / 2.0, rowNumber);\r\n resultPointCallback.foundPossibleResultPoint(resultPoint_3);\r\n }\r\n // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The\r\n // spec might want more whitespace, but in practice this is the maximum we can count on.\r\n var end = endRange[1];\r\n var quietEnd = end + (end - endRange[0]);\r\n if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) {\r\n throw new NotFoundException_1.default();\r\n }\r\n var resultString = result.toString();\r\n // UPC/EAN should never be less than 8 chars anyway\r\n if (resultString.length < 8) {\r\n throw new FormatException_1.default();\r\n }\r\n if (!UPCEANReader.checkChecksum(resultString)) {\r\n throw new ChecksumException_1.default();\r\n }\r\n var left = (startGuardRange[1] + startGuardRange[0]) / 2.0;\r\n var right = (endRange[1] + endRange[0]) / 2.0;\r\n var format = this.getBarcodeFormat();\r\n var resultPoint = [new ResultPoint_1.default(left, rowNumber), new ResultPoint_1.default(right, rowNumber)];\r\n var decodeResult = new Result_1.default(resultString, null, 0, resultPoint, format, new Date().getTime());\r\n var extensionLength = 0;\r\n try {\r\n var extensionResult = UPCEANExtensionSupport_1.default.decodeRow(rowNumber, row, endRange[1]);\r\n decodeResult.putMetadata(ResultMetadataType_1.default.UPC_EAN_EXTENSION, extensionResult.getText());\r\n decodeResult.putAllMetadata(extensionResult.getResultMetadata());\r\n decodeResult.addResultPoints(extensionResult.getResultPoints());\r\n extensionLength = extensionResult.getText().length;\r\n }\r\n catch (err) {\r\n }\r\n var allowedExtensions = hints == null ? null : hints.get(DecodeHintType_1.default.ALLOWED_EAN_EXTENSIONS);\r\n if (allowedExtensions != null) {\r\n var valid = false;\r\n for (var length_1 in allowedExtensions) {\r\n if (extensionLength.toString() === length_1) { // check me\r\n valid = true;\r\n break;\r\n }\r\n }\r\n if (!valid) {\r\n throw new NotFoundException_1.default();\r\n }\r\n }\r\n if (format === BarcodeFormat_1.default.EAN_13 || format === BarcodeFormat_1.default.UPC_A) {\r\n // let countryID = eanManSupport.lookupContryIdentifier(resultString); todo\r\n // if (countryID != null) {\r\n // decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID);\r\n // }\r\n }\r\n return decodeResult;\r\n };\r\n UPCEANReader.checkChecksum = function (s) {\r\n return UPCEANReader.checkStandardUPCEANChecksum(s);\r\n };\r\n UPCEANReader.checkStandardUPCEANChecksum = function (s) {\r\n var length = s.length;\r\n if (length === 0)\r\n return false;\r\n var check = parseInt(s.charAt(length - 1), 10);\r\n return UPCEANReader.getStandardUPCEANChecksum(s.substring(0, length - 1)) === check;\r\n };\r\n UPCEANReader.getStandardUPCEANChecksum = function (s) {\r\n var length = s.length;\r\n var sum = 0;\r\n for (var i = length - 1; i >= 0; i -= 2) {\r\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\r\n if (digit < 0 || digit > 9) {\r\n throw new FormatException_1.default();\r\n }\r\n sum += digit;\r\n }\r\n sum *= 3;\r\n for (var i = length - 2; i >= 0; i -= 2) {\r\n var digit = s.charAt(i).charCodeAt(0) - '0'.charCodeAt(0);\r\n if (digit < 0 || digit > 9) {\r\n throw new FormatException_1.default();\r\n }\r\n sum += digit;\r\n }\r\n return (1000 - sum) % 10;\r\n };\r\n UPCEANReader.decodeEnd = function (row, endStart) {\r\n return UPCEANReader.findGuardPattern(row, endStart, false, UPCEANReader.START_END_PATTERN, new Array(UPCEANReader.START_END_PATTERN.length).fill(0));\r\n };\r\n UPCEANReader.findGuardPattern = function (row, rowOffset, whiteFirst, pattern, counters) {\r\n var width = row.getSize();\r\n rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset);\r\n var counterPosition = 0;\r\n var patternStart = rowOffset;\r\n var patternLength = pattern.length;\r\n var isWhite = whiteFirst;\r\n for (var x = rowOffset; x < width; x++) {\r\n if (row.get(x) !== isWhite) {\r\n counters[counterPosition]++;\r\n }\r\n else {\r\n if (counterPosition === patternLength - 1) {\r\n if (OneDReader_1.default.patternMatchVariance(counters, pattern, UPCEANReader.MAX_INDIVIDUAL_VARIANCE) < UPCEANReader.MAX_AVG_VARIANCE) {\r\n return [patternStart, x];\r\n }\r\n patternStart += counters[0] + counters[1];\r\n var slice = counters.slice(2, counters.length);\r\n for (var i = 0; i < counterPosition - 1; i++) {\r\n counters[i] = slice[i];\r\n }\r\n counters[counterPosition - 1] = 0;\r\n counters[counterPosition] = 0;\r\n counterPosition--;\r\n }\r\n else {\r\n counterPosition++;\r\n }\r\n counters[counterPosition] = 1;\r\n isWhite = !isWhite;\r\n }\r\n }\r\n throw new NotFoundException_1.default();\r\n };\r\n UPCEANReader.decodeDigit = function (row, counters, rowOffset, patterns) {\r\n this.recordPattern(row, rowOffset, counters);\r\n var bestVariance = this.MAX_AVG_VARIANCE;\r\n var bestMatch = -1;\r\n var max = patterns.length;\r\n for (var i = 0; i < max; i++) {\r\n var pattern = patterns[i];\r\n var variance = OneDReader_1.default.patternMatchVariance(counters, pattern, UPCEANReader.MAX_INDIVIDUAL_VARIANCE);\r\n if (variance < bestVariance) {\r\n bestVariance = variance;\r\n bestMatch = i;\r\n }\r\n }\r\n if (bestMatch >= 0) {\r\n return bestMatch;\r\n }\r\n else {\r\n throw new NotFoundException_1.default();\r\n }\r\n };\r\n // These two values are critical for determining how permissive the decoding will be.\r\n // We've arrived at these values through a lot of trial and error. Setting them any higher\r\n // lets false positives creep in quickly.\r\n UPCEANReader.MAX_AVG_VARIANCE = 0.48;\r\n UPCEANReader.MAX_INDIVIDUAL_VARIANCE = 0.7;\r\n /**\r\n * Start/end guard pattern.\r\n */\r\n UPCEANReader.START_END_PATTERN = [1, 1, 1];\r\n /**\r\n * Pattern marking the middle of a UPC/EAN pattern, separating the two halves.\r\n */\r\n UPCEANReader.MIDDLE_PATTERN = [1, 1, 1, 1, 1];\r\n /**\r\n * end guard pattern.\r\n */\r\n UPCEANReader.END_PATTERN = [1, 1, 1, 1, 1, 1];\r\n /**\r\n * \"Odd\", or \"L\" patterns used to encode UPC/EAN digits.\r\n */\r\n UPCEANReader.L_PATTERNS = [\r\n [3, 2, 1, 1],\r\n [2, 2, 2, 1],\r\n [2, 1, 2, 2],\r\n [1, 4, 1, 1],\r\n [1, 1, 3, 2],\r\n [1, 2, 3, 1],\r\n [1, 1, 1, 4],\r\n [1, 3, 1, 2],\r\n [1, 2, 1, 3],\r\n [3, 1, 1, 2],\r\n ];\r\n return UPCEANReader;\r\n}(OneDReader_1.default));\r\nexports.default = UPCEANReader;\r\n//# sourceMappingURL=UPCEANReader.js.map","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name min\n * @category Common Helpers\n * @summary Returns the earliest of the given dates.\n *\n * @description\n * Returns the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * const date1 = new Date(1989, 6, 10)\n * const date2 = new Date(1987, 1, 11)\n * const minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * const dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * const minDate = min(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} - the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * const result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate.getDate())) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(Number(currentDate))) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from \"../startOfQuarter/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from 'react';\nexport var ReactReduxContext = React.createContext(null);\nexport default ReactReduxContext;","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nvar batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport var setBatch = function setBatch(newBatch) {\n return batch = newBatch;\n}; // Supply a getter just to skip dealing with ESM bindings\n\nexport var getBatch = function getBatch() {\n return batch;\n};","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nvar CLEARED = null;\nvar nullListeners = {\n notify: function notify() {}\n};\n\nfunction createListenerCollection() {\n var batch = getBatch(); // the current/next pattern is copied from redux's createStore code.\n // TODO: refactor+expose that code to be reusable here?\n\n var current = [];\n var next = [];\n return {\n clear: function clear() {\n next = CLEARED;\n current = CLEARED;\n },\n notify: function notify() {\n var listeners = current = next;\n batch(function () {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i]();\n }\n });\n },\n get: function get() {\n return next;\n },\n subscribe: function subscribe(listener) {\n var isSubscribed = true;\n if (next === current) next = current.slice();\n next.push(listener);\n return function unsubscribe() {\n if (!isSubscribed || current === CLEARED) return;\n isSubscribed = false;\n if (next === current) next = current.slice();\n next.splice(next.indexOf(listener), 1);\n };\n }\n };\n}\n\nvar Subscription =\n/*#__PURE__*/\nfunction () {\n function Subscription(store, parentSub) {\n this.store = store;\n this.parentSub = parentSub;\n this.unsubscribe = null;\n this.listeners = nullListeners;\n this.handleChangeWrapper = this.handleChangeWrapper.bind(this);\n }\n\n var _proto = Subscription.prototype;\n\n _proto.addNestedSub = function addNestedSub(listener) {\n this.trySubscribe();\n return this.listeners.subscribe(listener);\n };\n\n _proto.notifyNestedSubs = function notifyNestedSubs() {\n this.listeners.notify();\n };\n\n _proto.handleChangeWrapper = function handleChangeWrapper() {\n if (this.onStateChange) {\n this.onStateChange();\n }\n };\n\n _proto.isSubscribed = function isSubscribed() {\n return Boolean(this.unsubscribe);\n };\n\n _proto.trySubscribe = function trySubscribe() {\n if (!this.unsubscribe) {\n this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);\n this.listeners = createListenerCollection();\n }\n };\n\n _proto.tryUnsubscribe = function tryUnsubscribe() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n this.listeners.clear();\n this.listeners = nullListeners;\n }\n };\n\n return Subscription;\n}();\n\nexport { Subscription as default };","import React, { useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { ReactReduxContext } from './Context';\nimport Subscription from '../utils/Subscription';\n\nfunction Provider(_ref) {\n var store = _ref.store,\n context = _ref.context,\n children = _ref.children;\n var contextValue = useMemo(function () {\n var subscription = new Subscription(store);\n subscription.onStateChange = subscription.notifyNestedSubs;\n return {\n store: store,\n subscription: subscription\n };\n }, [store]);\n var previousState = useMemo(function () {\n return store.getState();\n }, [store]);\n useEffect(function () {\n var subscription = contextValue.subscription;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return function () {\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n };\n }, [contextValue, previousState]);\n var Context = context || ReactReduxContext;\n return React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nProvider.propTypes = {\n store: PropTypes.shape({\n subscribe: PropTypes.func.isRequired,\n dispatch: PropTypes.func.isRequired,\n getState: PropTypes.func.isRequired\n }),\n context: PropTypes.object,\n children: PropTypes.any\n};\nexport default Provider;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport hoistStatics from 'hoist-non-react-statics';\nimport invariant from 'invariant';\nimport React, { useContext, useMemo, useEffect, useLayoutEffect, useRef, useReducer } from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport Subscription from '../utils/Subscription';\nimport { ReactReduxContext } from './Context'; // Define some constant arrays just to avoid re-creating these\n\nvar EMPTY_ARRAY = [];\nvar NO_SUBSCRIPTION_ARRAY = [null, null];\n\nvar stringifyComponent = function stringifyComponent(Comp) {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\nfunction storeStateUpdatesReducer(state, action) {\n var updateCount = state[1];\n return [action.payload, updateCount + 1];\n}\n\nvar initStateUpdates = function initStateUpdates() {\n return [null, 0];\n}; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect because we want\n// `connect` to perform sync updates to a ref to save the latest props after\n// a render is actually committed to the DOM.\n\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\nexport default function connectAdvanced(\n/*\n selectorFactory is a func that is responsible for returning the selector function used to\n compute new props from state, props, and dispatch. For example:\n export default connectAdvanced((dispatch, options) => (state, props) => ({\n thing: state.things[props.thingId],\n saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),\n }))(YourComponent)\n Access to dispatch is provided to the factory so selectorFactories can bind actionCreators\n outside of their selector as an optimization. Options passed to connectAdvanced are passed to\n the selectorFactory, along with displayName and WrappedComponent, as the second argument.\n Note that selectorFactory is responsible for all caching/memoization of inbound and outbound\n props. Do not use connectAdvanced directly without memoizing results between calls to your\n selector, otherwise the Connect component will re-render on every state or props change.\n*/\nselectorFactory, // options object:\n_ref) {\n if (_ref === void 0) {\n _ref = {};\n }\n\n var _ref2 = _ref,\n _ref2$getDisplayName = _ref2.getDisplayName,\n getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {\n return \"ConnectAdvanced(\" + name + \")\";\n } : _ref2$getDisplayName,\n _ref2$methodName = _ref2.methodName,\n methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,\n _ref2$renderCountProp = _ref2.renderCountProp,\n renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,\n _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,\n shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,\n _ref2$storeKey = _ref2.storeKey,\n storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,\n _ref2$withRef = _ref2.withRef,\n withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,\n _ref2$forwardRef = _ref2.forwardRef,\n forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,\n _ref2$context = _ref2.context,\n context = _ref2$context === void 0 ? ReactReduxContext : _ref2$context,\n connectOptions = _objectWithoutPropertiesLoose(_ref2, [\"getDisplayName\", \"methodName\", \"renderCountProp\", \"shouldHandleStateChanges\", \"storeKey\", \"withRef\", \"forwardRef\", \"context\"]);\n\n invariant(renderCountProp === undefined, \"renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension\");\n invariant(!withRef, 'withRef is removed. To access the wrapped instance, use a ref on the connected component');\n var customStoreWarningMessage = 'To use a custom Redux store for specific components, create a custom React context with ' + \"React.createContext(), and pass the context object to React Redux's Provider and specific components\" + ' like: . ' + 'You may also pass a {context : MyContext} option to connect';\n invariant(storeKey === 'store', 'storeKey has been removed and does not do anything. ' + customStoreWarningMessage);\n var Context = context;\n return function wrapWithConnect(WrappedComponent) {\n if (process.env.NODE_ENV !== 'production') {\n invariant(isValidElementType(WrappedComponent), \"You must pass a component to the function returned by \" + (methodName + \". Instead received \" + stringifyComponent(WrappedComponent)));\n }\n\n var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n var displayName = getDisplayName(wrappedComponentName);\n\n var selectorFactoryOptions = _extends({}, connectOptions, {\n getDisplayName: getDisplayName,\n methodName: methodName,\n renderCountProp: renderCountProp,\n shouldHandleStateChanges: shouldHandleStateChanges,\n storeKey: storeKey,\n displayName: displayName,\n wrappedComponentName: wrappedComponentName,\n WrappedComponent: WrappedComponent\n });\n\n var pure = connectOptions.pure;\n\n function createChildSelector(store) {\n return selectorFactory(store.dispatch, selectorFactoryOptions);\n } // If we aren't running in \"pure\" mode, we don't want to memoize values.\n // To avoid conditionally calling hooks, we fall back to a tiny wrapper\n // that just executes the given callback immediately.\n\n\n var usePureOnlyMemo = pure ? useMemo : function (callback) {\n return callback();\n };\n\n function ConnectFunction(props) {\n var _useMemo = useMemo(function () {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n var forwardedRef = props.forwardedRef,\n wrapperProps = _objectWithoutPropertiesLoose(props, [\"forwardedRef\"]);\n\n return [props.context, forwardedRef, wrapperProps];\n }, [props]),\n propsContext = _useMemo[0],\n forwardedRef = _useMemo[1],\n wrapperProps = _useMemo[2];\n\n var ContextToUse = useMemo(function () {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && isContextConsumer(React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n var contextValue = useContext(ContextToUse); // The store _must_ exist as either a prop or in context\n\n var didStoreComeFromProps = Boolean(props.store);\n var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n invariant(didStoreComeFromProps || didStoreComeFromContext, \"Could not find \\\"store\\\" in the context of \" + (\"\\\"\" + displayName + \"\\\". Either wrap the root component in a , \") + \"or pass a custom React context provider to and the corresponding \" + (\"React context consumer to \" + displayName + \" in connect options.\"));\n var store = props.store || contextValue.store;\n var childPropsSelector = useMemo(function () {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return createChildSelector(store);\n }, [store]);\n\n var _useMemo2 = useMemo(function () {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]),\n subscription = _useMemo2[0],\n notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n\n var overriddenContextValue = useMemo(function () {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription: subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update\n // causes a change to the calculated child component props (or we caught an error in mapState)\n\n var _useReducer = useReducer(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),\n _useReducer$ = _useReducer[0],\n previousStateUpdateResult = _useReducer$[0],\n forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards\n\n\n if (previousStateUpdateResult && previousStateUpdateResult.error) {\n throw previousStateUpdateResult.error;\n } // Set up refs to coordinate values between the subscription effect and the render logic\n\n\n var lastChildProps = useRef();\n var lastWrapperProps = useRef(wrapperProps);\n var childPropsFromStoreUpdate = useRef();\n var renderIsScheduled = useRef(false);\n var actualChildProps = usePureOnlyMemo(function () {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n useIsomorphicLayoutEffect(function () {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n lastChildProps.current = actualChildProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n }); // Our re-subscribe logic only runs when the store/subscription setup changes\n\n useIsomorphicLayoutEffect(function () {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts\n\n var didUnsubscribe = false;\n var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n var checkForUpdates = function checkForUpdates() {\n if (didUnsubscribe) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n }\n\n var latestStoreState = store.getState();\n var newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render\n\n forceComponentUpdateDispatch({\n type: 'STORE_UPDATED',\n payload: {\n latestStoreState: latestStoreState,\n error: error\n }\n });\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n var unsubscribeWrapper = function unsubscribeWrapper() {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n }, [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n var renderedWrappedComponent = useMemo(function () {\n return React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: forwardedRef\n }));\n }, [forwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n var renderedChild = useMemo(function () {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n } // If we're in \"pure\" mode, ensure our wrapper component only re-renders when incoming props have changed.\n\n\n var Connect = pure ? React.memo(ConnectFunction) : ConnectFunction;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = displayName;\n\n if (forwardRef) {\n var forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n return React.createElement(Connect, _extends({}, props, {\n forwardedRef: ref\n }));\n });\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n}","var hasOwn = Object.prototype.hasOwnProperty;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant(getConstant) {\n return function initConstantSelector(dispatch, options) {\n var constant = getConstant(dispatch, options);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, _ref) {\n var displayName = _ref.displayName;\n\n var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n var props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","import { bindActionCreators } from 'redux';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {\n return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;\n}\nexport function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {\n return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {\n return {\n dispatch: dispatch\n };\n }) : undefined;\n}\nexport function whenMapDispatchToPropsIsObject(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {\n return bindActionCreators(mapDispatchToProps, dispatch);\n }) : undefined;\n}\nexport default [whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject];","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nexport function whenMapStateToPropsIsFunction(mapStateToProps) {\n return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;\n}\nexport function whenMapStateToPropsIsMissing(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(function () {\n return {};\n }) : undefined;\n}\nexport default [whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n return _extends({}, ownProps, {}, stateProps, {}, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, _ref) {\n var displayName = _ref.displayName,\n pure = _ref.pure,\n areMergedPropsEqual = _ref.areMergedPropsEqual;\n var hasRunOnce = false;\n var mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function whenMergePropsIsFunction(mergeProps) {\n return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;\n}\nexport function whenMergePropsIsOmitted(mergeProps) {\n return !mergeProps ? function () {\n return defaultMergeProps;\n } : undefined;\n}\nexport default [whenMergePropsIsFunction, whenMergePropsIsOmitted];","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport verifySubselectors from './verifySubselectors';\nexport function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {\n return function impureFinalPropsSelector(state, ownProps) {\n return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);\n };\n}\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {\n var areStatesEqual = _ref.areStatesEqual,\n areOwnPropsEqual = _ref.areOwnPropsEqual,\n areStatePropsEqual = _ref.areStatePropsEqual;\n var hasRunAtLeastOnce = false;\n var state;\n var ownProps;\n var stateProps;\n var dispatchProps;\n var mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n var nextStateProps = mapStateToProps(state, ownProps);\n var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n var stateChanged = !areStatesEqual(nextState, state);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n} // TODO: Add more comments\n// If pure is true, the selector returned by selectorFactory will memoize its results,\n// allowing connectAdvanced's shouldComponentUpdate to return false if final\n// props have not changed. If false, the selector will always return a new\n// object and shouldComponentUpdate will always return true.\n\nexport default function finalPropsSelectorFactory(dispatch, _ref2) {\n var initMapStateToProps = _ref2.initMapStateToProps,\n initMapDispatchToProps = _ref2.initMapDispatchToProps,\n initMergeProps = _ref2.initMergeProps,\n options = _objectWithoutPropertiesLoose(_ref2, [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"]);\n\n var mapStateToProps = initMapStateToProps(dispatch, options);\n var mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n var mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps, options.displayName);\n }\n\n var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;\n return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport connectAdvanced from '../components/connectAdvanced';\nimport shallowEqual from '../utils/shallowEqual';\nimport defaultMapDispatchToPropsFactories from './mapDispatchToProps';\nimport defaultMapStateToPropsFactories from './mapStateToProps';\nimport defaultMergePropsFactories from './mergeProps';\nimport defaultSelectorFactory from './selectorFactory';\n/*\n connect is a facade over connectAdvanced. It turns its args into a compatible\n selectorFactory, which has the signature:\n\n (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps\n \n connect passes its args to connectAdvanced as options, which will in turn pass them to\n selectorFactory each time a Connect component instance is instantiated or hot reloaded.\n\n selectorFactory returns a final props selector from its mapStateToProps,\n mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,\n mergePropsFactories, and pure args.\n\n The resulting final props selector is called by the Connect component instance whenever\n it receives new props or store state.\n */\n\nfunction match(arg, factories, name) {\n for (var i = factories.length - 1; i >= 0; i--) {\n var result = factories[i](arg);\n if (result) return result;\n }\n\n return function (dispatch, options) {\n throw new Error(\"Invalid value of type \" + typeof arg + \" for \" + name + \" argument when connecting component \" + options.wrappedComponentName + \".\");\n };\n}\n\nfunction strictEqual(a, b) {\n return a === b;\n} // createConnect with default args builds the 'official' connect behavior. Calling it with\n// different options opens up some testing and extensibility scenarios\n\n\nexport function createConnect(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$connectHOC = _ref.connectHOC,\n connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,\n _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,\n mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? defaultMapStateToPropsFactories : _ref$mapStateToPropsF,\n _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,\n mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? defaultMapDispatchToPropsFactories : _ref$mapDispatchToPro,\n _ref$mergePropsFactor = _ref.mergePropsFactories,\n mergePropsFactories = _ref$mergePropsFactor === void 0 ? defaultMergePropsFactories : _ref$mergePropsFactor,\n _ref$selectorFactory = _ref.selectorFactory,\n selectorFactory = _ref$selectorFactory === void 0 ? defaultSelectorFactory : _ref$selectorFactory;\n\n return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {\n if (_ref2 === void 0) {\n _ref2 = {};\n }\n\n var _ref3 = _ref2,\n _ref3$pure = _ref3.pure,\n pure = _ref3$pure === void 0 ? true : _ref3$pure,\n _ref3$areStatesEqual = _ref3.areStatesEqual,\n areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,\n _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,\n areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,\n _ref3$areStatePropsEq = _ref3.areStatePropsEqual,\n areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,\n _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,\n areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,\n extraOptions = _objectWithoutPropertiesLoose(_ref3, [\"pure\", \"areStatesEqual\", \"areOwnPropsEqual\", \"areStatePropsEqual\", \"areMergedPropsEqual\"]);\n\n var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');\n var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');\n var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');\n return connectHOC(selectorFactory, _extends({\n // used in error messages\n methodName: 'connect',\n // used to compute Connect's displayName from the wrapped component's displayName.\n getDisplayName: function getDisplayName(name) {\n return \"Connect(\" + name + \")\";\n },\n // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes\n shouldHandleStateChanges: Boolean(mapStateToProps),\n // passed through to selectorFactory\n initMapStateToProps: initMapStateToProps,\n initMapDispatchToProps: initMapDispatchToProps,\n initMergeProps: initMergeProps,\n pure: pure,\n areStatesEqual: areStatesEqual,\n areOwnPropsEqual: areOwnPropsEqual,\n areStatePropsEqual: areStatePropsEqual,\n areMergedPropsEqual: areMergedPropsEqual\n }, extraOptions));\n };\n}\nexport default createConnect();","import { useContext } from 'react';\nimport invariant from 'invariant';\nimport { ReactReduxContext } from '../components/Context';\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const { store } = useReduxContext()\n * return
{store.getState()}
\n * }\n */\n\nexport function useReduxContext() {\n var contextValue = useContext(ReactReduxContext);\n invariant(contextValue, 'could not find react-redux context value; please ensure the component is wrapped in a ');\n return contextValue;\n}","import { useContext } from 'react';\nimport { ReactReduxContext } from '../components/Context';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\n\nexport function createStoreHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useStore() {\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store;\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return
{store.getState()}
\n * }\n */\n\nexport var useStore = createStoreHook();","import { ReactReduxContext } from '../components/Context';\nimport { useStore as useDefaultStore, createStoreHook } from './useStore';\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\n\nexport function createDispatchHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);\n return function useDispatch() {\n var store = useStore();\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n *
\n * {value}\n * \n *
\n * )\n * }\n */\n\nexport var useDispatch = createDispatchHook();","import { useReducer, useRef, useEffect, useMemo, useLayoutEffect, useContext } from 'react';\nimport invariant from 'invariant';\nimport { useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport Subscription from '../utils/Subscription';\nimport { ReactReduxContext } from '../components/Context'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nvar refEquality = function refEquality(a, b) {\n return a === b;\n};\n\nfunction useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {\n var _useReducer = useReducer(function (s) {\n return s + 1;\n }, 0),\n forceRender = _useReducer[1];\n\n var subscription = useMemo(function () {\n return new Subscription(store, contextSub);\n }, [store, contextSub]);\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef();\n var latestSelectedState = useRef();\n var selectedState;\n\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(store.getState());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n var errorMessage = \"An error occured while selecting the store state: \" + err.message + \".\";\n\n if (latestSubscriptionCallbackError.current) {\n errorMessage += \"\\nThe error may be correlated with this previous error:\\n\" + latestSubscriptionCallbackError.current.stack + \"\\n\\nOriginal stack trace:\";\n }\n\n throw new Error(errorMessage);\n }\n\n useIsomorphicLayoutEffect(function () {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(function () {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(store.getState());\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err;\n }\n\n forceRender({});\n }\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe();\n checkForUpdates();\n return function () {\n return subscription.tryUnsubscribe();\n };\n }, [store, subscription]);\n return selectedState;\n}\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {Function} [context=ReactReduxContext] Context passed to your ``.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nexport function createSelectorHook(context) {\n if (context === void 0) {\n context = ReactReduxContext;\n }\n\n var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {\n return useContext(context);\n };\n return function useSelector(selector, equalityFn) {\n if (equalityFn === void 0) {\n equalityFn = refEquality;\n }\n\n invariant(selector, \"You must pass a selector to useSelectors\");\n\n var _useReduxContext = useReduxContext(),\n store = _useReduxContext.store,\n contextSub = _useReduxContext.subscription;\n\n return useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return
{counter}
\n * }\n */\n\nexport var useSelector = createSelectorHook();","import Provider from './components/Provider';\nimport connectAdvanced from './components/connectAdvanced';\nimport { ReactReduxContext } from './components/Context';\nimport connect from './connect/connect';\nimport { useDispatch, createDispatchHook } from './hooks/useDispatch';\nimport { useSelector, createSelectorHook } from './hooks/useSelector';\nimport { useStore, createStoreHook } from './hooks/useStore';\nimport { setBatch } from './utils/batch';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport shallowEqual from './utils/shallowEqual';\nsetBatch(batch);\nexport { Provider, connectAdvanced, ReactReduxContext, connect, batch, useDispatch, createDispatchHook, useSelector, createSelectorHook, useStore, createStoreHook, shallowEqual };","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Integer = /** @class */ (function () {\r\n function Integer() {\r\n }\r\n Integer.numberOfTrailingZeros = function (i) {\r\n var y;\r\n if (i === 0)\r\n return 32;\r\n var n = 31;\r\n y = i << 16;\r\n if (y !== 0) {\r\n n -= 16;\r\n i = y;\r\n }\r\n y = i << 8;\r\n if (y !== 0) {\r\n n -= 8;\r\n i = y;\r\n }\r\n y = i << 4;\r\n if (y !== 0) {\r\n n -= 4;\r\n i = y;\r\n }\r\n y = i << 2;\r\n if (y !== 0) {\r\n n -= 2;\r\n i = y;\r\n }\r\n return n - ((i << 1) >>> 31);\r\n };\r\n Integer.numberOfLeadingZeros = function (i) {\r\n // HD, Figure 5-6\r\n if (i === 0) {\r\n return 32;\r\n }\r\n var n = 1;\r\n if (i >>> 16 === 0) {\r\n n += 16;\r\n i <<= 16;\r\n }\r\n if (i >>> 24 === 0) {\r\n n += 8;\r\n i <<= 8;\r\n }\r\n if (i >>> 28 === 0) {\r\n n += 4;\r\n i <<= 4;\r\n }\r\n if (i >>> 30 === 0) {\r\n n += 2;\r\n i <<= 2;\r\n }\r\n n -= i >>> 31;\r\n return n;\r\n };\r\n Integer.toHexString = function (i) {\r\n return i.toString(16);\r\n };\r\n // Returns the number of one-bits in the two's complement binary representation of the specified int value. This function is sometimes referred to as the population count.\r\n // Returns:\r\n // the number of one-bits in the two's complement binary representation of the specified int value.\r\n Integer.bitCount = function (i) {\r\n // HD, Figure 5-2\r\n i = i - ((i >>> 1) & 0x55555555);\r\n i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\r\n i = (i + (i >>> 4)) & 0x0f0f0f0f;\r\n i = i + (i >>> 8);\r\n i = i + (i >>> 16);\r\n return i & 0x3f;\r\n };\r\n Integer.MIN_VALUE_32_BITS = -2147483648;\r\n return Integer;\r\n}());\r\nexports.default = Integer;\r\n//# sourceMappingURL=Integer.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common.reedsolomon {*/\r\nvar GenericGF_1 = require(\"./GenericGF\");\r\nvar System_1 = require(\"../../util/System\");\r\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\r\n/**\r\n *

Represents a polynomial whose coefficients are elements of a GF.\r\n * Instances of this class are immutable.

\r\n *\r\n *

Much credit is due to William Rucklidge since portions of this code are an indirect\r\n * port of his C++ Reed-Solomon implementation.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar GenericGFPoly = /** @class */ (function () {\r\n /**\r\n * @param field the {@link GenericGF} instance representing the field to use\r\n * to perform computations\r\n * @param coefficients coefficients as ints representing elements of GF(size), arranged\r\n * from most significant (highest-power term) coefficient to least significant\r\n * @throws IllegalArgumentException if argument is null or empty,\r\n * or if leading coefficient is 0 and this is not a\r\n * constant polynomial (that is, it is not the monomial \"0\")\r\n */\r\n function GenericGFPoly(field, coefficients) {\r\n if (coefficients.length === 0) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n this.field = field;\r\n var coefficientsLength = coefficients.length;\r\n if (coefficientsLength > 1 && coefficients[0] === 0) {\r\n // Leading term must be non-zero for anything except the constant polynomial \"0\"\r\n var firstNonZero = 1;\r\n while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) {\r\n firstNonZero++;\r\n }\r\n if (firstNonZero === coefficientsLength) {\r\n this.coefficients = Int32Array.from([0]);\r\n }\r\n else {\r\n this.coefficients = new Int32Array(coefficientsLength - firstNonZero);\r\n System_1.default.arraycopy(coefficients, firstNonZero, this.coefficients, 0, this.coefficients.length);\r\n }\r\n }\r\n else {\r\n this.coefficients = coefficients;\r\n }\r\n }\r\n GenericGFPoly.prototype.getCoefficients = function () {\r\n return this.coefficients;\r\n };\r\n /**\r\n * @return degree of this polynomial\r\n */\r\n GenericGFPoly.prototype.getDegree = function () {\r\n return this.coefficients.length - 1;\r\n };\r\n /**\r\n * @return true iff this polynomial is the monomial \"0\"\r\n */\r\n GenericGFPoly.prototype.isZero = function () {\r\n return this.coefficients[0] === 0;\r\n };\r\n /**\r\n * @return coefficient of x^degree term in this polynomial\r\n */\r\n GenericGFPoly.prototype.getCoefficient = function (degree /*int*/) {\r\n return this.coefficients[this.coefficients.length - 1 - degree];\r\n };\r\n /**\r\n * @return evaluation of this polynomial at a given point\r\n */\r\n GenericGFPoly.prototype.evaluateAt = function (a /*int*/) {\r\n if (a === 0) {\r\n // Just return the x^0 coefficient\r\n return this.getCoefficient(0);\r\n }\r\n var coefficients = this.coefficients;\r\n var result;\r\n if (a === 1) {\r\n // Just the sum of the coefficients\r\n result = 0;\r\n for (var i = 0, length_1 = coefficients.length; i !== length_1; i++) {\r\n var coefficient = coefficients[i];\r\n result = GenericGF_1.default.addOrSubtract(result, coefficient);\r\n }\r\n return result;\r\n }\r\n result = coefficients[0];\r\n var size = coefficients.length;\r\n var field = this.field;\r\n for (var i = 1; i < size; i++) {\r\n result = GenericGF_1.default.addOrSubtract(field.multiply(a, result), coefficients[i]);\r\n }\r\n return result;\r\n };\r\n GenericGFPoly.prototype.addOrSubtract = function (other) {\r\n if (!this.field.equals(other.field)) {\r\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\r\n }\r\n if (this.isZero()) {\r\n return other;\r\n }\r\n if (other.isZero()) {\r\n return this;\r\n }\r\n var smallerCoefficients = this.coefficients;\r\n var largerCoefficients = other.coefficients;\r\n if (smallerCoefficients.length > largerCoefficients.length) {\r\n var temp = smallerCoefficients;\r\n smallerCoefficients = largerCoefficients;\r\n largerCoefficients = temp;\r\n }\r\n var sumDiff = new Int32Array(largerCoefficients.length);\r\n var lengthDiff = largerCoefficients.length - smallerCoefficients.length;\r\n // Copy high-order terms only found in higher-degree polynomial's coefficients\r\n System_1.default.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff);\r\n for (var i = lengthDiff; i < largerCoefficients.length; i++) {\r\n sumDiff[i] = GenericGF_1.default.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]);\r\n }\r\n return new GenericGFPoly(this.field, sumDiff);\r\n };\r\n GenericGFPoly.prototype.multiply = function (other) {\r\n if (!this.field.equals(other.field)) {\r\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\r\n }\r\n if (this.isZero() || other.isZero()) {\r\n return this.field.getZero();\r\n }\r\n var aCoefficients = this.coefficients;\r\n var aLength = aCoefficients.length;\r\n var bCoefficients = other.coefficients;\r\n var bLength = bCoefficients.length;\r\n var product = new Int32Array(aLength + bLength - 1);\r\n var field = this.field;\r\n for (var i = 0; i < aLength; i++) {\r\n var aCoeff = aCoefficients[i];\r\n for (var j = 0; j < bLength; j++) {\r\n product[i + j] = GenericGF_1.default.addOrSubtract(product[i + j], field.multiply(aCoeff, bCoefficients[j]));\r\n }\r\n }\r\n return new GenericGFPoly(field, product);\r\n };\r\n GenericGFPoly.prototype.multiplyScalar = function (scalar /*int*/) {\r\n if (scalar === 0) {\r\n return this.field.getZero();\r\n }\r\n if (scalar === 1) {\r\n return this;\r\n }\r\n var size = this.coefficients.length;\r\n var field = this.field;\r\n var product = new Int32Array(size);\r\n var coefficients = this.coefficients;\r\n for (var i = 0; i < size; i++) {\r\n product[i] = field.multiply(coefficients[i], scalar);\r\n }\r\n return new GenericGFPoly(field, product);\r\n };\r\n GenericGFPoly.prototype.multiplyByMonomial = function (degree /*int*/, coefficient /*int*/) {\r\n if (degree < 0) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n if (coefficient === 0) {\r\n return this.field.getZero();\r\n }\r\n var coefficients = this.coefficients;\r\n var size = coefficients.length;\r\n var product = new Int32Array(size + degree);\r\n var field = this.field;\r\n for (var i = 0; i < size; i++) {\r\n product[i] = field.multiply(coefficients[i], coefficient);\r\n }\r\n return new GenericGFPoly(field, product);\r\n };\r\n GenericGFPoly.prototype.divide = function (other) {\r\n if (!this.field.equals(other.field)) {\r\n throw new IllegalArgumentException_1.default('GenericGFPolys do not have same GenericGF field');\r\n }\r\n if (other.isZero()) {\r\n throw new IllegalArgumentException_1.default('Divide by 0');\r\n }\r\n var field = this.field;\r\n var quotient = field.getZero();\r\n var remainder = this;\r\n var denominatorLeadingTerm = other.getCoefficient(other.getDegree());\r\n var inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm);\r\n while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) {\r\n var degreeDifference = remainder.getDegree() - other.getDegree();\r\n var scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm);\r\n var term = other.multiplyByMonomial(degreeDifference, scale);\r\n var iterationQuotient = field.buildMonomial(degreeDifference, scale);\r\n quotient = quotient.addOrSubtract(iterationQuotient);\r\n remainder = remainder.addOrSubtract(term);\r\n }\r\n return [quotient, remainder];\r\n };\r\n /*@Override*/\r\n GenericGFPoly.prototype.toString = function () {\r\n var result = '';\r\n for (var degree = this.getDegree(); degree >= 0; degree--) {\r\n var coefficient = this.getCoefficient(degree);\r\n if (coefficient !== 0) {\r\n if (coefficient < 0) {\r\n result += ' - ';\r\n coefficient = -coefficient;\r\n }\r\n else {\r\n if (result.length > 0) {\r\n result += ' + ';\r\n }\r\n }\r\n if (degree === 0 || coefficient !== 1) {\r\n var alphaPower = this.field.log(coefficient);\r\n if (alphaPower === 0) {\r\n result += '1';\r\n }\r\n else if (alphaPower === 1) {\r\n result += 'a';\r\n }\r\n else {\r\n result += 'a^';\r\n result += alphaPower;\r\n }\r\n }\r\n if (degree !== 0) {\r\n if (degree === 1) {\r\n result += 'x';\r\n }\r\n else {\r\n result += 'x^';\r\n result += degree;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n return GenericGFPoly;\r\n}());\r\nexports.default = GenericGFPoly;\r\n//# sourceMappingURL=GenericGFPoly.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.qrcode.decoder {*/\r\nvar ArgumentException_1 = require(\"../../ArgumentException\");\r\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\r\nvar ErrorCorrectionLevelValues;\r\n(function (ErrorCorrectionLevelValues) {\r\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"L\"] = 0] = \"L\";\r\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"M\"] = 1] = \"M\";\r\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"Q\"] = 2] = \"Q\";\r\n ErrorCorrectionLevelValues[ErrorCorrectionLevelValues[\"H\"] = 3] = \"H\";\r\n})(ErrorCorrectionLevelValues = exports.ErrorCorrectionLevelValues || (exports.ErrorCorrectionLevelValues = {}));\r\n/**\r\n *

See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels\r\n * defined by the QR code standard.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar ErrorCorrectionLevel = /** @class */ (function () {\r\n function ErrorCorrectionLevel(value, stringValue, bits /*int*/) {\r\n this.value = value;\r\n this.stringValue = stringValue;\r\n this.bits = bits;\r\n ErrorCorrectionLevel.FOR_BITS.set(bits, this);\r\n ErrorCorrectionLevel.FOR_VALUE.set(value, this);\r\n }\r\n ErrorCorrectionLevel.prototype.getValue = function () {\r\n return this.value;\r\n };\r\n ErrorCorrectionLevel.prototype.getBits = function () {\r\n return this.bits;\r\n };\r\n ErrorCorrectionLevel.fromString = function (s) {\r\n switch (s) {\r\n case 'L': return ErrorCorrectionLevel.L;\r\n case 'M': return ErrorCorrectionLevel.M;\r\n case 'Q': return ErrorCorrectionLevel.Q;\r\n case 'H': return ErrorCorrectionLevel.H;\r\n default: throw new ArgumentException_1.default(s + 'not available');\r\n }\r\n };\r\n ErrorCorrectionLevel.prototype.toString = function () {\r\n return this.stringValue;\r\n };\r\n ErrorCorrectionLevel.prototype.equals = function (o) {\r\n if (!(o instanceof ErrorCorrectionLevel)) {\r\n return false;\r\n }\r\n var other = o;\r\n return this.value === other.value;\r\n };\r\n /**\r\n * @param bits int containing the two bits encoding a QR Code's error correction level\r\n * @return ErrorCorrectionLevel representing the encoded error correction level\r\n */\r\n ErrorCorrectionLevel.forBits = function (bits /*int*/) {\r\n if (bits < 0 || bits >= ErrorCorrectionLevel.FOR_BITS.size) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n return ErrorCorrectionLevel.FOR_BITS.get(bits);\r\n };\r\n ErrorCorrectionLevel.FOR_BITS = new Map();\r\n ErrorCorrectionLevel.FOR_VALUE = new Map();\r\n /** L = ~7% correction */\r\n ErrorCorrectionLevel.L = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.L, 'L', 0x01);\r\n /** M = ~15% correction */\r\n ErrorCorrectionLevel.M = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.M, 'M', 0x00);\r\n /** Q = ~25% correction */\r\n ErrorCorrectionLevel.Q = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.Q, 'Q', 0x03);\r\n /** H = ~30% correction */\r\n ErrorCorrectionLevel.H = new ErrorCorrectionLevel(ErrorCorrectionLevelValues.H, 'H', 0x02);\r\n return ErrorCorrectionLevel;\r\n}());\r\nexports.default = ErrorCorrectionLevel;\r\n//# sourceMappingURL=ErrorCorrectionLevel.js.map","\"use strict\";\r\n/*\r\n * Copyright 2009 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing {*/\r\n/**\r\n * These are a set of hints that you may pass to Writers to specify their behavior.\r\n *\r\n * @author dswitkin@google.com (Daniel Switkin)\r\n */\r\nvar EncodeHintType;\r\n(function (EncodeHintType) {\r\n /**\r\n * Specifies what degree of error correction to use, for example in QR Codes.\r\n * Type depends on the encoder. For example for QR codes it's type\r\n * {@link com.google.zxing.qrcode.decoder.ErrorCorrectionLevel ErrorCorrectionLevel}.\r\n * For Aztec it is of type {@link Integer}, representing the minimal percentage of error correction words.\r\n * For PDF417 it is of type {@link Integer}, valid values being 0 to 8.\r\n * In all cases, it can also be a {@link String} representation of the desired value as well.\r\n * Note: an Aztec symbol should have a minimum of 25% EC words.\r\n */\r\n EncodeHintType[EncodeHintType[\"ERROR_CORRECTION\"] = 0] = \"ERROR_CORRECTION\";\r\n /**\r\n * Specifies what character encoding to use where applicable (type {@link String})\r\n */\r\n EncodeHintType[EncodeHintType[\"CHARACTER_SET\"] = 1] = \"CHARACTER_SET\";\r\n /**\r\n * Specifies the matrix shape for Data Matrix (type {@link com.google.zxing.datamatrix.encoder.SymbolShapeHint})\r\n */\r\n EncodeHintType[EncodeHintType[\"DATA_MATRIX_SHAPE\"] = 2] = \"DATA_MATRIX_SHAPE\";\r\n /**\r\n * Specifies a minimum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\r\n *\r\n * @deprecated use width/height params in\r\n * {@link com.google.zxing.datamatrix.DataMatrixWriter#encode(String, BarcodeFormat, int, int)}\r\n */\r\n /*@Deprecated*/\r\n EncodeHintType[EncodeHintType[\"MIN_SIZE\"] = 3] = \"MIN_SIZE\";\r\n /**\r\n * Specifies a maximum barcode size (type {@link Dimension}). Only applicable to Data Matrix now.\r\n *\r\n * @deprecated without replacement\r\n */\r\n /*@Deprecated*/\r\n EncodeHintType[EncodeHintType[\"MAX_SIZE\"] = 4] = \"MAX_SIZE\";\r\n /**\r\n * Specifies margin, in pixels, to use when generating the barcode. The meaning can vary\r\n * by format; for example it controls margin before and after the barcode horizontally for\r\n * most 1D formats. (Type {@link Integer}, or {@link String} representation of the integer value).\r\n */\r\n EncodeHintType[EncodeHintType[\"MARGIN\"] = 5] = \"MARGIN\";\r\n /**\r\n * Specifies whether to use compact mode for PDF417 (type {@link Boolean}, or \"true\" or \"false\"\r\n * {@link String} value).\r\n */\r\n EncodeHintType[EncodeHintType[\"PDF417_COMPACT\"] = 6] = \"PDF417_COMPACT\";\r\n /**\r\n * Specifies what compaction mode to use for PDF417 (type\r\n * {@link com.google.zxing.pdf417.encoder.Compaction Compaction} or {@link String} value of one of its\r\n * enum values).\r\n */\r\n EncodeHintType[EncodeHintType[\"PDF417_COMPACTION\"] = 7] = \"PDF417_COMPACTION\";\r\n /**\r\n * Specifies the minimum and maximum number of rows and columns for PDF417 (type\r\n * {@link com.google.zxing.pdf417.encoder.Dimensions Dimensions}).\r\n */\r\n EncodeHintType[EncodeHintType[\"PDF417_DIMENSIONS\"] = 8] = \"PDF417_DIMENSIONS\";\r\n /**\r\n * Specifies the required number of layers for an Aztec code.\r\n * A negative number (-1, -2, -3, -4) specifies a compact Aztec code.\r\n * 0 indicates to use the minimum number of layers (the default).\r\n * A positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code.\r\n * (Type {@link Integer}, or {@link String} representation of the integer value).\r\n */\r\n EncodeHintType[EncodeHintType[\"AZTEC_LAYERS\"] = 9] = \"AZTEC_LAYERS\";\r\n /**\r\n * Specifies the exact version of QR code to be encoded.\r\n * (Type {@link Integer}, or {@link String} representation of the integer value).\r\n */\r\n EncodeHintType[EncodeHintType[\"QR_VERSION\"] = 10] = \"QR_VERSION\";\r\n})(EncodeHintType || (EncodeHintType = {}));\r\nexports.default = EncodeHintType;\r\n//# sourceMappingURL=EncodeHintType.js.map","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","function _typeof(obj) { 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\nimport { matchPath } from \"react-router\";\n\nvar createSelectors = function createSelectors(structure) {\n var getIn = structure.getIn,\n toJS = structure.toJS;\n\n var isRouter = function isRouter(value) {\n return value != null && _typeof(value) === 'object' && getIn(value, ['location']) && getIn(value, ['action']);\n };\n\n var getRouter = function getRouter(state) {\n var router = toJS(getIn(state, ['router']));\n\n if (!isRouter(router)) {\n throw 'Could not find router reducer in state tree, it must be mounted under \"router\"';\n }\n\n return router;\n };\n\n var getLocation = function getLocation(state) {\n return toJS(getIn(getRouter(state), ['location']));\n };\n\n var getAction = function getAction(state) {\n return toJS(getIn(getRouter(state), ['action']));\n };\n\n var getSearch = function getSearch(state) {\n return toJS(getIn(getRouter(state), ['location', 'search']));\n };\n\n var getHash = function getHash(state) {\n return toJS(getIn(getRouter(state), ['location', 'hash']));\n }; // It only makes sense to recalculate the `matchPath` whenever the pathname\n // of the location changes. That's why `createMatchSelector` memoizes\n // the latest result based on the location's pathname.\n\n\n var createMatchSelector = function createMatchSelector(path) {\n var lastPathname = null;\n var lastMatch = null;\n return function (state) {\n var _ref = getLocation(state) || {},\n pathname = _ref.pathname;\n\n if (pathname === lastPathname) {\n return lastMatch;\n }\n\n lastPathname = pathname;\n var match = matchPath(pathname, path);\n\n if (!match || !lastMatch || match.url !== lastMatch.url) {\n lastMatch = match;\n }\n\n return lastMatch;\n };\n };\n\n return {\n getLocation: getLocation,\n getAction: getAction,\n getRouter: getRouter,\n getSearch: getSearch,\n getHash: getHash,\n createMatchSelector: createMatchSelector\n };\n};\n\nexport default createSelectors;","function _typeof(obj) { 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\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\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\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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect, ReactReduxContext } from 'react-redux';\nimport { Router } from 'react-router';\nimport { onLocationChanged as _onLocationChanged } from './actions';\nimport createSelectors from './selectors';\n\nvar createConnectedRouter = function createConnectedRouter(structure) {\n var _createSelectors = createSelectors(structure),\n getLocation = _createSelectors.getLocation;\n /*\n * ConnectedRouter listens to a history object passed from props.\n * When history is changed, it dispatches action to redux store.\n * Then, store will pass props to component to render.\n * This creates uni-directional flow from history->store->router->components.\n */\n\n\n var ConnectedRouter =\n /*#__PURE__*/\n function (_PureComponent) {\n _inherits(ConnectedRouter, _PureComponent);\n\n function ConnectedRouter(props) {\n var _this;\n\n _classCallCheck(this, ConnectedRouter);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ConnectedRouter).call(this, props));\n var store = props.store,\n history = props.history,\n onLocationChanged = props.onLocationChanged;\n _this.inTimeTravelling = false; // Subscribe to store changes to check if we are in time travelling\n\n _this.unsubscribe = store.subscribe(function () {\n // Extract store's location\n var _getLocation = getLocation(store.getState()),\n pathnameInStore = _getLocation.pathname,\n searchInStore = _getLocation.search,\n hashInStore = _getLocation.hash; // Extract history's location\n\n\n var _history$location = history.location,\n pathnameInHistory = _history$location.pathname,\n searchInHistory = _history$location.search,\n hashInHistory = _history$location.hash; // If we do time travelling, the location in store is changed but location in history is not changed\n\n if (pathnameInHistory !== pathnameInStore || searchInHistory !== searchInStore || hashInHistory !== hashInStore) {\n _this.inTimeTravelling = true; // Update history's location to match store's location\n\n history.push({\n pathname: pathnameInStore,\n search: searchInStore,\n hash: hashInStore\n });\n }\n });\n\n var handleLocationChange = function handleLocationChange(location, action) {\n var isFirstRendering = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Dispatch onLocationChanged except when we're in time travelling\n if (!_this.inTimeTravelling) {\n onLocationChanged(location, action, isFirstRendering);\n } else {\n _this.inTimeTravelling = false;\n }\n }; // Listen to history changes\n\n\n _this.unlisten = history.listen(handleLocationChange); // Dispatch a location change action for the initial location.\n // This makes it backward-compatible with react-router-redux.\n // But, we add `isFirstRendering` to `true` to prevent double-rendering.\n\n handleLocationChange(history.location, history.action, true);\n return _this;\n }\n\n _createClass(ConnectedRouter, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unlisten();\n this.unsubscribe();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n history = _this$props.history,\n children = _this$props.children;\n return React.createElement(Router, {\n history: history\n }, children);\n }\n }]);\n\n return ConnectedRouter;\n }(PureComponent);\n\n ConnectedRouter.propTypes = {\n store: PropTypes.shape({\n getState: PropTypes.func.isRequired,\n subscribe: PropTypes.func.isRequired\n }).isRequired,\n history: PropTypes.shape({\n action: PropTypes.string.isRequired,\n listen: PropTypes.func.isRequired,\n location: PropTypes.object.isRequired,\n push: PropTypes.func.isRequired\n }).isRequired,\n basename: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n onLocationChanged: PropTypes.func.isRequired\n };\n\n var mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onLocationChanged: function onLocationChanged(location, action, isFirstRendering) {\n return dispatch(_onLocationChanged(location, action, isFirstRendering));\n }\n };\n };\n\n var ConnectedRouterWithContext = function ConnectedRouterWithContext(props) {\n var Context = props.context || ReactReduxContext;\n\n if (Context == null) {\n throw 'Please upgrade to react-redux v6';\n }\n\n return React.createElement(Context.Consumer, null, function (_ref) {\n var store = _ref.store;\n return React.createElement(ConnectedRouter, _extends({\n store: store\n }, props));\n });\n };\n\n ConnectedRouterWithContext.propTypes = {\n context: PropTypes.object\n };\n return connect(null, mapDispatchToProps)(ConnectedRouterWithContext);\n};\n\nexport default createConnectedRouter;","import { LOCATION_CHANGE } from './actions';\n\nvar createConnectRouter = function createConnectRouter(structure) {\n var fromJS = structure.fromJS,\n merge = structure.merge;\n\n var createRouterReducer = function createRouterReducer(history) {\n var initialRouterState = fromJS({\n location: history.location,\n action: history.action\n });\n /*\n * This reducer will update the state with the most recent location history\n * has transitioned to.\n */\n\n return function () {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialRouterState;\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n type = _ref.type,\n payload = _ref.payload;\n\n if (type === LOCATION_CHANGE) {\n var location = payload.location,\n action = payload.action,\n isFirstRendering = payload.isFirstRendering; // Don't update the state ref for the first rendering\n // to prevent the double-rendering issue on initilization\n\n return isFirstRendering ? state : merge(state, {\n location: fromJS(location),\n action: action\n });\n }\n\n return state;\n };\n };\n\n return createRouterReducer;\n};\n\nexport default createConnectRouter;","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, 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 getIn from './getIn';\nvar structure = {\n fromJS: function fromJS(value) {\n return value;\n },\n getIn: getIn,\n merge: function merge(state, payload) {\n return _objectSpread({}, state, payload);\n },\n toJS: function toJS(value) {\n return value;\n }\n};\nexport default structure;","/* Code from github.com/erikras/redux-form by Erik Rasmussen */\nvar getIn = function getIn(state, path) {\n if (!state) {\n return state;\n }\n\n var length = path.length;\n\n if (!length) {\n return undefined;\n }\n\n var result = state;\n\n for (var i = 0; i < length && !!result; ++i) {\n result = result[path[i]];\n }\n\n return result;\n};\n\nexport default getIn;","import createConnectedRouter from \"./ConnectedRouter\";\nimport createConnectRouter from \"./reducer\";\nimport createSelectors from \"./selectors\";\nimport plainStructure from \"./structure/plain\";\nexport { LOCATION_CHANGE, CALL_HISTORY_METHOD, onLocationChanged, push, replace, go, goBack, goForward, routerActions } from \"./actions\";\nexport { default as routerMiddleware } from \"./middleware\";\nexport var ConnectedRouter =\n/*#__PURE__*/\ncreateConnectedRouter(plainStructure);\nexport var connectRouter =\n/*#__PURE__*/\ncreateConnectRouter(plainStructure);\n\nvar _createSelectors =\n/*#__PURE__*/\ncreateSelectors(plainStructure),\n getLocation = _createSelectors.getLocation,\n getAction = _createSelectors.getAction,\n getHash = _createSelectors.getHash,\n getSearch = _createSelectors.getSearch,\n createMatchSelector = _createSelectors.createMatchSelector;\n\nexport { getLocation, getAction, getHash, getSearch, createMatchSelector };","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addHours from \"../addHours/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMinutes from \"../addMinutes/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addWeeks from \"../addWeeks/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar UnsupportedOperationException = /** @class */ (function (_super) {\r\n __extends(UnsupportedOperationException, _super);\r\n function UnsupportedOperationException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return UnsupportedOperationException;\r\n}(Exception_1.default));\r\nexports.default = UnsupportedOperationException;\r\n//# sourceMappingURL=UnsupportedOperationException.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar System_1 = require(\"./System\");\r\nvar Arrays = /** @class */ (function () {\r\n function Arrays() {\r\n }\r\n Arrays.equals = function (first, second) {\r\n if (!first) {\r\n return false;\r\n }\r\n if (!second) {\r\n return false;\r\n }\r\n if (!first.length) {\r\n return false;\r\n }\r\n if (!second.length) {\r\n return false;\r\n }\r\n if (first.length !== second.length) {\r\n return false;\r\n }\r\n for (var i = 0, length_1 = first.length; i < length_1; i++) {\r\n if (first[i] !== second[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n Arrays.hashCode = function (a) {\r\n if (a === null) {\r\n return 0;\r\n }\r\n var result = 1;\r\n for (var _i = 0, a_1 = a; _i < a_1.length; _i++) {\r\n var element = a_1[_i];\r\n result = 31 * result + element;\r\n }\r\n return result;\r\n };\r\n Arrays.fillUint8Array = function (a, value) {\r\n for (var i = 0; i !== a.length; i++) {\r\n a[i] = value;\r\n }\r\n };\r\n Arrays.copyOf = function (original, newLength) {\r\n var copy = new Int32Array(newLength);\r\n System_1.default.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength));\r\n return copy;\r\n };\r\n /*\r\n * Returns the index of of the element in a sorted array or (-n-1) where n is the insertion point\r\n * for the new element.\r\n * Parameters:\r\n * ar - A sorted array\r\n * el - An element to search for\r\n * comparator - A comparator function. The function takes two arguments: (a, b) and returns:\r\n * a negative number if a is less than b;\r\n * 0 if a is equal to b;\r\n * a positive number of a is greater than b.\r\n * The array may contain duplicate elements. If there are more than one equal elements in the array,\r\n * the returned value can be the index of any one of the equal elements.\r\n *\r\n * http://jsfiddle.net/aryzhov/pkfst550/\r\n */\r\n Arrays.binarySearch = function (ar, el, comparator) {\r\n if (undefined === comparator) {\r\n comparator = Arrays.numberComparator;\r\n }\r\n var m = 0;\r\n var n = ar.length - 1;\r\n while (m <= n) {\r\n var k = (n + m) >> 1;\r\n var cmp = comparator(el, ar[k]);\r\n if (cmp > 0) {\r\n m = k + 1;\r\n }\r\n else if (cmp < 0) {\r\n n = k - 1;\r\n }\r\n else {\r\n return k;\r\n }\r\n }\r\n return -m - 1;\r\n };\r\n Arrays.numberComparator = function (a, b) {\r\n return a - b;\r\n };\r\n return Arrays;\r\n}());\r\nexports.default = Arrays;\r\n//# sourceMappingURL=Arrays.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar ArgumentException = /** @class */ (function (_super) {\r\n __extends(ArgumentException, _super);\r\n function ArgumentException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ArgumentException;\r\n}(Exception_1.default));\r\nexports.default = ArgumentException;\r\n//# sourceMappingURL=ArgumentException.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.qrcode {*/\r\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\r\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\r\nvar Result_1 = require(\"../Result\");\r\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\r\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\r\nvar Decoder_1 = require(\"./decoder/Decoder\");\r\nvar QRCodeDecoderMetaData_1 = require(\"./decoder/QRCodeDecoderMetaData\");\r\nvar Detector_1 = require(\"./detector/Detector\");\r\nvar NotFoundException_1 = require(\"../NotFoundException\");\r\n/*import java.util.List;*/\r\n/*import java.util.Map;*/\r\n/**\r\n * This implementation can detect and decode QR Codes in an image.\r\n *\r\n * @author Sean Owen\r\n */\r\nvar QRCodeReader = /** @class */ (function () {\r\n function QRCodeReader() {\r\n this.decoder = new Decoder_1.default();\r\n }\r\n QRCodeReader.prototype.getDecoder = function () {\r\n return this.decoder;\r\n };\r\n /**\r\n * Locates and decodes a QR code in an image.\r\n *\r\n * @return a representing: string the content encoded by the QR code\r\n * @throws NotFoundException if a QR code cannot be found\r\n * @throws FormatException if a QR code cannot be decoded\r\n * @throws ChecksumException if error correction fails\r\n */\r\n /*@Override*/\r\n // public decode(image: BinaryBitmap): Result /*throws NotFoundException, ChecksumException, FormatException */ {\r\n // return this.decode(image, null)\r\n // }\r\n /*@Override*/\r\n QRCodeReader.prototype.decode = function (image, hints) {\r\n var decoderResult;\r\n var points;\r\n if (hints !== undefined && hints !== null && undefined !== hints.get(DecodeHintType_1.default.PURE_BARCODE)) {\r\n var bits = QRCodeReader.extractPureBits(image.getBlackMatrix());\r\n decoderResult = this.decoder.decodeBitMatrix(bits, hints);\r\n points = QRCodeReader.NO_POINTS;\r\n }\r\n else {\r\n var detectorResult = new Detector_1.default(image.getBlackMatrix()).detect(hints);\r\n decoderResult = this.decoder.decodeBitMatrix(detectorResult.getBits(), hints);\r\n points = detectorResult.getPoints();\r\n }\r\n // If the code was mirrored: swap the bottom-left and the top-right points.\r\n if (decoderResult.getOther() instanceof QRCodeDecoderMetaData_1.default) {\r\n decoderResult.getOther().applyMirroredCorrection(points);\r\n }\r\n var result = new Result_1.default(decoderResult.getText(), decoderResult.getRawBytes(), undefined, points, BarcodeFormat_1.default.QR_CODE, undefined);\r\n var byteSegments = decoderResult.getByteSegments();\r\n if (byteSegments !== null) {\r\n result.putMetadata(ResultMetadataType_1.default.BYTE_SEGMENTS, byteSegments);\r\n }\r\n var ecLevel = decoderResult.getECLevel();\r\n if (ecLevel !== null) {\r\n result.putMetadata(ResultMetadataType_1.default.ERROR_CORRECTION_LEVEL, ecLevel);\r\n }\r\n if (decoderResult.hasStructuredAppend()) {\r\n result.putMetadata(ResultMetadataType_1.default.STRUCTURED_APPEND_SEQUENCE, decoderResult.getStructuredAppendSequenceNumber());\r\n result.putMetadata(ResultMetadataType_1.default.STRUCTURED_APPEND_PARITY, decoderResult.getStructuredAppendParity());\r\n }\r\n return result;\r\n };\r\n /*@Override*/\r\n QRCodeReader.prototype.reset = function () {\r\n // do nothing\r\n };\r\n /**\r\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\r\n * which contains only an unrotated, unskewed, image of a code, with some white border\r\n * around it. This is a specialized method that works exceptionally fast in this special\r\n * case.\r\n *\r\n * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix)\r\n */\r\n QRCodeReader.extractPureBits = function (image) {\r\n var leftTopBlack = image.getTopLeftOnBit();\r\n var rightBottomBlack = image.getBottomRightOnBit();\r\n if (leftTopBlack === null || rightBottomBlack === null) {\r\n throw new NotFoundException_1.default();\r\n }\r\n var moduleSize = this.moduleSize(leftTopBlack, image);\r\n var top = leftTopBlack[1];\r\n var bottom = rightBottomBlack[1];\r\n var left = leftTopBlack[0];\r\n var right = rightBottomBlack[0];\r\n // Sanity check!\r\n if (left >= right || top >= bottom) {\r\n throw new NotFoundException_1.default();\r\n }\r\n if (bottom - top !== right - left) {\r\n // Special case, where bottom-right module wasn't black so we found something else in the last row\r\n // Assume it's a square, so use height as the width\r\n right = left + (bottom - top);\r\n if (right >= image.getWidth()) {\r\n // Abort if that would not make sense -- off image\r\n throw new NotFoundException_1.default();\r\n }\r\n }\r\n var matrixWidth = Math.round((right - left + 1) / moduleSize);\r\n var matrixHeight = Math.round((bottom - top + 1) / moduleSize);\r\n if (matrixWidth <= 0 || matrixHeight <= 0) {\r\n throw new NotFoundException_1.default();\r\n }\r\n if (matrixHeight !== matrixWidth) {\r\n // Only possibly decode square regions\r\n throw new NotFoundException_1.default();\r\n }\r\n // Push in the \"border\" by half the module width so that we start\r\n // sampling in the middle of the module. Just in case the image is a\r\n // little off, this will help recover.\r\n var nudge = /*(int) */ Math.floor(moduleSize / 2.0);\r\n top += nudge;\r\n left += nudge;\r\n // But careful that this does not sample off the edge\r\n // \"right\" is the farthest-right valid pixel location -- right+1 is not necessarily\r\n // This is positive by how much the inner x loop below would be too large\r\n var nudgedTooFarRight = left + /*(int) */ Math.floor((matrixWidth - 1) * moduleSize) - right;\r\n if (nudgedTooFarRight > 0) {\r\n if (nudgedTooFarRight > nudge) {\r\n // Neither way fits; abort\r\n throw new NotFoundException_1.default();\r\n }\r\n left -= nudgedTooFarRight;\r\n }\r\n // See logic above\r\n var nudgedTooFarDown = top + /*(int) */ Math.floor((matrixHeight - 1) * moduleSize) - bottom;\r\n if (nudgedTooFarDown > 0) {\r\n if (nudgedTooFarDown > nudge) {\r\n // Neither way fits; abort\r\n throw new NotFoundException_1.default();\r\n }\r\n top -= nudgedTooFarDown;\r\n }\r\n // Now just read off the bits\r\n var bits = new BitMatrix_1.default(matrixWidth, matrixHeight);\r\n for (var y = 0; y < matrixHeight; y++) {\r\n var iOffset = top + /*(int) */ Math.floor(y * moduleSize);\r\n for (var x = 0; x < matrixWidth; x++) {\r\n if (image.get(left + /*(int) */ Math.floor(x * moduleSize), iOffset)) {\r\n bits.set(x, y);\r\n }\r\n }\r\n }\r\n return bits;\r\n };\r\n QRCodeReader.moduleSize = function (leftTopBlack, image) {\r\n var height = image.getHeight();\r\n var width = image.getWidth();\r\n var x = leftTopBlack[0];\r\n var y = leftTopBlack[1];\r\n var inBlack = true;\r\n var transitions = 0;\r\n while (x < width && y < height) {\r\n if (inBlack !== image.get(x, y)) {\r\n if (++transitions === 5) {\r\n break;\r\n }\r\n inBlack = !inBlack;\r\n }\r\n x++;\r\n y++;\r\n }\r\n if (x === width || y === height) {\r\n throw new NotFoundException_1.default();\r\n }\r\n return (x - leftTopBlack[0]) / 7.0;\r\n };\r\n QRCodeReader.NO_POINTS = new Array();\r\n return QRCodeReader;\r\n}());\r\nexports.default = QRCodeReader;\r\n//# sourceMappingURL=QRCodeReader.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common.reedsolomon {*/\r\nvar GenericGF_1 = require(\"./GenericGF\");\r\nvar GenericGFPoly_1 = require(\"./GenericGFPoly\");\r\nvar ReedSolomonException_1 = require(\"../../ReedSolomonException\");\r\nvar IllegalStateException_1 = require(\"../../IllegalStateException\");\r\n/**\r\n *

Implements Reed-Solomon decoding, as the name implies.

\r\n *\r\n *

The algorithm will not be explained here, but the following references were helpful\r\n * in creating this implementation:

\r\n *\r\n *
\r\n *\r\n *

Much credit is due to William Rucklidge since portions of this code are an indirect\r\n * port of his C++ Reed-Solomon implementation.

\r\n *\r\n * @author Sean Owen\r\n * @author William Rucklidge\r\n * @author sanfordsquires\r\n */\r\nvar ReedSolomonDecoder = /** @class */ (function () {\r\n function ReedSolomonDecoder(field) {\r\n this.field = field;\r\n }\r\n /**\r\n *

Decodes given set of received codewords, which include both data and error-correction\r\n * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place,\r\n * in the input.

\r\n *\r\n * @param received data and error-correction codewords\r\n * @param twoS number of error-correction codewords available\r\n * @throws ReedSolomonException if decoding fails for any reason\r\n */\r\n ReedSolomonDecoder.prototype.decode = function (received, twoS /*int*/) {\r\n var field = this.field;\r\n var poly = new GenericGFPoly_1.default(field, received);\r\n var syndromeCoefficients = new Int32Array(twoS);\r\n var noError = true;\r\n for (var i = 0; i < twoS; i++) {\r\n var evalResult = poly.evaluateAt(field.exp(i + field.getGeneratorBase()));\r\n syndromeCoefficients[syndromeCoefficients.length - 1 - i] = evalResult;\r\n if (evalResult !== 0) {\r\n noError = false;\r\n }\r\n }\r\n if (noError) {\r\n return;\r\n }\r\n var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients);\r\n var sigmaOmega = this.runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS);\r\n var sigma = sigmaOmega[0];\r\n var omega = sigmaOmega[1];\r\n var errorLocations = this.findErrorLocations(sigma);\r\n var errorMagnitudes = this.findErrorMagnitudes(omega, errorLocations);\r\n for (var i = 0; i < errorLocations.length; i++) {\r\n var position = received.length - 1 - field.log(errorLocations[i]);\r\n if (position < 0) {\r\n throw new ReedSolomonException_1.default('Bad error location');\r\n }\r\n received[position] = GenericGF_1.default.addOrSubtract(received[position], errorMagnitudes[i]);\r\n }\r\n };\r\n ReedSolomonDecoder.prototype.runEuclideanAlgorithm = function (a, b, R /*int*/) {\r\n // Assume a's degree is >= b's\r\n if (a.getDegree() < b.getDegree()) {\r\n var temp = a;\r\n a = b;\r\n b = temp;\r\n }\r\n var field = this.field;\r\n var rLast = a;\r\n var r = b;\r\n var tLast = field.getZero();\r\n var t = field.getOne();\r\n // Run Euclidean algorithm until r's degree is less than R/2\r\n while (r.getDegree() >= (R / 2 | 0)) {\r\n var rLastLast = rLast;\r\n var tLastLast = tLast;\r\n rLast = r;\r\n tLast = t;\r\n // Divide rLastLast by rLast, with quotient in q and remainder in r\r\n if (rLast.isZero()) {\r\n // Oops, Euclidean algorithm already terminated?\r\n throw new ReedSolomonException_1.default('r_{i-1} was zero');\r\n }\r\n r = rLastLast;\r\n var q = field.getZero();\r\n var denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree());\r\n var dltInverse = field.inverse(denominatorLeadingTerm);\r\n while (r.getDegree() >= rLast.getDegree() && !r.isZero()) {\r\n var degreeDiff = r.getDegree() - rLast.getDegree();\r\n var scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse);\r\n q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale));\r\n r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale));\r\n }\r\n t = q.multiply(tLast).addOrSubtract(tLastLast);\r\n if (r.getDegree() >= rLast.getDegree()) {\r\n throw new IllegalStateException_1.default('Division algorithm failed to reduce polynomial?');\r\n }\r\n }\r\n var sigmaTildeAtZero = t.getCoefficient(0);\r\n if (sigmaTildeAtZero === 0) {\r\n throw new ReedSolomonException_1.default('sigmaTilde(0) was zero');\r\n }\r\n var inverse = field.inverse(sigmaTildeAtZero);\r\n var sigma = t.multiplyScalar(inverse);\r\n var omega = r.multiplyScalar(inverse);\r\n return [sigma, omega];\r\n };\r\n ReedSolomonDecoder.prototype.findErrorLocations = function (errorLocator) {\r\n // This is a direct application of Chien's search\r\n var numErrors = errorLocator.getDegree();\r\n if (numErrors === 1) { // shortcut\r\n return Int32Array.from([errorLocator.getCoefficient(1)]);\r\n }\r\n var result = new Int32Array(numErrors);\r\n var e = 0;\r\n var field = this.field;\r\n for (var i = 1; i < field.getSize() && e < numErrors; i++) {\r\n if (errorLocator.evaluateAt(i) === 0) {\r\n result[e] = field.inverse(i);\r\n e++;\r\n }\r\n }\r\n if (e !== numErrors) {\r\n throw new ReedSolomonException_1.default('Error locator degree does not match number of roots');\r\n }\r\n return result;\r\n };\r\n ReedSolomonDecoder.prototype.findErrorMagnitudes = function (errorEvaluator, errorLocations) {\r\n // This is directly applying Forney's Formula\r\n var s = errorLocations.length;\r\n var result = new Int32Array(s);\r\n var field = this.field;\r\n for (var i = 0; i < s; i++) {\r\n var xiInverse = field.inverse(errorLocations[i]);\r\n var denominator = 1;\r\n for (var j = 0; j < s; j++) {\r\n if (i !== j) {\r\n // denominator = field.multiply(denominator,\r\n // GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse)))\r\n // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug.\r\n // Below is a funny-looking workaround from Steven Parkes\r\n var term = field.multiply(errorLocations[j], xiInverse);\r\n var termPlus1 = (term & 0x1) === 0 ? term | 1 : term & ~1;\r\n denominator = field.multiply(denominator, termPlus1);\r\n }\r\n }\r\n result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator));\r\n if (field.getGeneratorBase() !== 0) {\r\n result[i] = field.multiply(result[i], xiInverse);\r\n }\r\n }\r\n return result;\r\n };\r\n return ReedSolomonDecoder;\r\n}());\r\nexports.default = ReedSolomonDecoder;\r\n//# sourceMappingURL=ReedSolomonDecoder.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.qrcode.decoder {*/\r\nvar BitMatrix_1 = require(\"../../common/BitMatrix\");\r\nvar FormatInformation_1 = require(\"./FormatInformation\");\r\nvar ECBlocks_1 = require(\"./ECBlocks\");\r\nvar ECB_1 = require(\"./ECB\");\r\nvar FormatException_1 = require(\"../../FormatException\");\r\nvar IllegalArgumentException_1 = require(\"../../IllegalArgumentException\");\r\n/**\r\n * See ISO 18004:2006 Annex D\r\n *\r\n * @author Sean Owen\r\n */\r\nvar Version = /** @class */ (function () {\r\n function Version(versionNumber /*int*/, alignmentPatternCenters) {\r\n var ecBlocks = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ecBlocks[_i - 2] = arguments[_i];\r\n }\r\n this.versionNumber = versionNumber;\r\n this.alignmentPatternCenters = alignmentPatternCenters;\r\n this.ecBlocks = ecBlocks;\r\n var total = 0;\r\n var ecCodewords = ecBlocks[0].getECCodewordsPerBlock();\r\n var ecbArray = ecBlocks[0].getECBlocks();\r\n for (var _a = 0, ecbArray_1 = ecbArray; _a < ecbArray_1.length; _a++) {\r\n var ecBlock = ecbArray_1[_a];\r\n total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords);\r\n }\r\n this.totalCodewords = total;\r\n }\r\n Version.prototype.getVersionNumber = function () {\r\n return this.versionNumber;\r\n };\r\n Version.prototype.getAlignmentPatternCenters = function () {\r\n return this.alignmentPatternCenters;\r\n };\r\n Version.prototype.getTotalCodewords = function () {\r\n return this.totalCodewords;\r\n };\r\n Version.prototype.getDimensionForVersion = function () {\r\n return 17 + 4 * this.versionNumber;\r\n };\r\n Version.prototype.getECBlocksForLevel = function (ecLevel) {\r\n return this.ecBlocks[ecLevel.getValue()];\r\n // TYPESCRIPTPORT: original was using ordinal, and using the order of levels as defined in ErrorCorrectionLevel enum (LMQH)\r\n // I will use the direct value from ErrorCorrectionLevelValues enum which in typescript goes to a number\r\n };\r\n /**\r\n *

Deduces version information purely from QR Code dimensions.

\r\n *\r\n * @param dimension dimension in modules\r\n * @return Version for a QR Code of that dimension\r\n * @throws FormatException if dimension is not 1 mod 4\r\n */\r\n Version.getProvisionalVersionForDimension = function (dimension /*int*/) {\r\n if (dimension % 4 !== 1) {\r\n throw new FormatException_1.default();\r\n }\r\n try {\r\n return this.getVersionForNumber((dimension - 17) / 4);\r\n }\r\n catch (ignored /*: IllegalArgumentException*/) {\r\n throw new FormatException_1.default();\r\n }\r\n };\r\n Version.getVersionForNumber = function (versionNumber /*int*/) {\r\n if (versionNumber < 1 || versionNumber > 40) {\r\n throw new IllegalArgumentException_1.default();\r\n }\r\n return Version.VERSIONS[versionNumber - 1];\r\n };\r\n Version.decodeVersionInformation = function (versionBits /*int*/) {\r\n var bestDifference = Number.MAX_SAFE_INTEGER;\r\n var bestVersion = 0;\r\n for (var i = 0; i < Version.VERSION_DECODE_INFO.length; i++) {\r\n var targetVersion = Version.VERSION_DECODE_INFO[i];\r\n // Do the version info bits match exactly? done.\r\n if (targetVersion === versionBits) {\r\n return Version.getVersionForNumber(i + 7);\r\n }\r\n // Otherwise see if this is the closest to a real version info bit string\r\n // we have seen so far\r\n var bitsDifference = FormatInformation_1.default.numBitsDiffering(versionBits, targetVersion);\r\n if (bitsDifference < bestDifference) {\r\n bestVersion = i + 7;\r\n bestDifference = bitsDifference;\r\n }\r\n }\r\n // We can tolerate up to 3 bits of error since no two version info codewords will\r\n // differ in less than 8 bits.\r\n if (bestDifference <= 3) {\r\n return Version.getVersionForNumber(bestVersion);\r\n }\r\n // If we didn't find a close enough match, fail\r\n return null;\r\n };\r\n /**\r\n * See ISO 18004:2006 Annex E\r\n */\r\n Version.prototype.buildFunctionPattern = function () {\r\n var dimension = this.getDimensionForVersion();\r\n var bitMatrix = new BitMatrix_1.default(dimension);\r\n // Top left finder pattern + separator + format\r\n bitMatrix.setRegion(0, 0, 9, 9);\r\n // Top right finder pattern + separator + format\r\n bitMatrix.setRegion(dimension - 8, 0, 8, 9);\r\n // Bottom left finder pattern + separator + format\r\n bitMatrix.setRegion(0, dimension - 8, 9, 8);\r\n // Alignment patterns\r\n var max = this.alignmentPatternCenters.length;\r\n for (var x = 0; x < max; x++) {\r\n var i = this.alignmentPatternCenters[x] - 2;\r\n for (var y = 0; y < max; y++) {\r\n if ((x === 0 && (y === 0 || y === max - 1)) || (x === max - 1 && y === 0)) {\r\n // No alignment patterns near the three finder patterns\r\n continue;\r\n }\r\n bitMatrix.setRegion(this.alignmentPatternCenters[y] - 2, i, 5, 5);\r\n }\r\n }\r\n // Vertical timing pattern\r\n bitMatrix.setRegion(6, 9, 1, dimension - 17);\r\n // Horizontal timing pattern\r\n bitMatrix.setRegion(9, 6, dimension - 17, 1);\r\n if (this.versionNumber > 6) {\r\n // Version info, top right\r\n bitMatrix.setRegion(dimension - 11, 0, 3, 6);\r\n // Version info, bottom left\r\n bitMatrix.setRegion(0, dimension - 11, 6, 3);\r\n }\r\n return bitMatrix;\r\n };\r\n /*@Override*/\r\n Version.prototype.toString = function () {\r\n return '' + this.versionNumber;\r\n };\r\n /**\r\n * See ISO 18004:2006 Annex D.\r\n * Element i represents the raw version bits that specify version i + 7\r\n */\r\n Version.VERSION_DECODE_INFO = Int32Array.from([\r\n 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6,\r\n 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78,\r\n 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683,\r\n 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB,\r\n 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250,\r\n 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B,\r\n 0x2542E, 0x26A64, 0x27541, 0x28C69\r\n ]);\r\n /**\r\n * See ISO 18004:2006 6.5.1 Table 9\r\n */\r\n Version.VERSIONS = [\r\n new Version(1, new Int32Array(0), new ECBlocks_1.default(7, new ECB_1.default(1, 19)), new ECBlocks_1.default(10, new ECB_1.default(1, 16)), new ECBlocks_1.default(13, new ECB_1.default(1, 13)), new ECBlocks_1.default(17, new ECB_1.default(1, 9))),\r\n new Version(2, Int32Array.from([6, 18]), new ECBlocks_1.default(10, new ECB_1.default(1, 34)), new ECBlocks_1.default(16, new ECB_1.default(1, 28)), new ECBlocks_1.default(22, new ECB_1.default(1, 22)), new ECBlocks_1.default(28, new ECB_1.default(1, 16))),\r\n new Version(3, Int32Array.from([6, 22]), new ECBlocks_1.default(15, new ECB_1.default(1, 55)), new ECBlocks_1.default(26, new ECB_1.default(1, 44)), new ECBlocks_1.default(18, new ECB_1.default(2, 17)), new ECBlocks_1.default(22, new ECB_1.default(2, 13))),\r\n new Version(4, Int32Array.from([6, 26]), new ECBlocks_1.default(20, new ECB_1.default(1, 80)), new ECBlocks_1.default(18, new ECB_1.default(2, 32)), new ECBlocks_1.default(26, new ECB_1.default(2, 24)), new ECBlocks_1.default(16, new ECB_1.default(4, 9))),\r\n new Version(5, Int32Array.from([6, 30]), new ECBlocks_1.default(26, new ECB_1.default(1, 108)), new ECBlocks_1.default(24, new ECB_1.default(2, 43)), new ECBlocks_1.default(18, new ECB_1.default(2, 15), new ECB_1.default(2, 16)), new ECBlocks_1.default(22, new ECB_1.default(2, 11), new ECB_1.default(2, 12))),\r\n new Version(6, Int32Array.from([6, 34]), new ECBlocks_1.default(18, new ECB_1.default(2, 68)), new ECBlocks_1.default(16, new ECB_1.default(4, 27)), new ECBlocks_1.default(24, new ECB_1.default(4, 19)), new ECBlocks_1.default(28, new ECB_1.default(4, 15))),\r\n new Version(7, Int32Array.from([6, 22, 38]), new ECBlocks_1.default(20, new ECB_1.default(2, 78)), new ECBlocks_1.default(18, new ECB_1.default(4, 31)), new ECBlocks_1.default(18, new ECB_1.default(2, 14), new ECB_1.default(4, 15)), new ECBlocks_1.default(26, new ECB_1.default(4, 13), new ECB_1.default(1, 14))),\r\n new Version(8, Int32Array.from([6, 24, 42]), new ECBlocks_1.default(24, new ECB_1.default(2, 97)), new ECBlocks_1.default(22, new ECB_1.default(2, 38), new ECB_1.default(2, 39)), new ECBlocks_1.default(22, new ECB_1.default(4, 18), new ECB_1.default(2, 19)), new ECBlocks_1.default(26, new ECB_1.default(4, 14), new ECB_1.default(2, 15))),\r\n new Version(9, Int32Array.from([6, 26, 46]), new ECBlocks_1.default(30, new ECB_1.default(2, 116)), new ECBlocks_1.default(22, new ECB_1.default(3, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(20, new ECB_1.default(4, 16), new ECB_1.default(4, 17)), new ECBlocks_1.default(24, new ECB_1.default(4, 12), new ECB_1.default(4, 13))),\r\n new Version(10, Int32Array.from([6, 28, 50]), new ECBlocks_1.default(18, new ECB_1.default(2, 68), new ECB_1.default(2, 69)), new ECBlocks_1.default(26, new ECB_1.default(4, 43), new ECB_1.default(1, 44)), new ECBlocks_1.default(24, new ECB_1.default(6, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(28, new ECB_1.default(6, 15), new ECB_1.default(2, 16))),\r\n new Version(11, Int32Array.from([6, 30, 54]), new ECBlocks_1.default(20, new ECB_1.default(4, 81)), new ECBlocks_1.default(30, new ECB_1.default(1, 50), new ECB_1.default(4, 51)), new ECBlocks_1.default(28, new ECB_1.default(4, 22), new ECB_1.default(4, 23)), new ECBlocks_1.default(24, new ECB_1.default(3, 12), new ECB_1.default(8, 13))),\r\n new Version(12, Int32Array.from([6, 32, 58]), new ECBlocks_1.default(24, new ECB_1.default(2, 92), new ECB_1.default(2, 93)), new ECBlocks_1.default(22, new ECB_1.default(6, 36), new ECB_1.default(2, 37)), new ECBlocks_1.default(26, new ECB_1.default(4, 20), new ECB_1.default(6, 21)), new ECBlocks_1.default(28, new ECB_1.default(7, 14), new ECB_1.default(4, 15))),\r\n new Version(13, Int32Array.from([6, 34, 62]), new ECBlocks_1.default(26, new ECB_1.default(4, 107)), new ECBlocks_1.default(22, new ECB_1.default(8, 37), new ECB_1.default(1, 38)), new ECBlocks_1.default(24, new ECB_1.default(8, 20), new ECB_1.default(4, 21)), new ECBlocks_1.default(22, new ECB_1.default(12, 11), new ECB_1.default(4, 12))),\r\n new Version(14, Int32Array.from([6, 26, 46, 66]), new ECBlocks_1.default(30, new ECB_1.default(3, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(24, new ECB_1.default(4, 40), new ECB_1.default(5, 41)), new ECBlocks_1.default(20, new ECB_1.default(11, 16), new ECB_1.default(5, 17)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(5, 13))),\r\n new Version(15, Int32Array.from([6, 26, 48, 70]), new ECBlocks_1.default(22, new ECB_1.default(5, 87), new ECB_1.default(1, 88)), new ECBlocks_1.default(24, new ECB_1.default(5, 41), new ECB_1.default(5, 42)), new ECBlocks_1.default(30, new ECB_1.default(5, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(24, new ECB_1.default(11, 12), new ECB_1.default(7, 13))),\r\n new Version(16, Int32Array.from([6, 26, 50, 74]), new ECBlocks_1.default(24, new ECB_1.default(5, 98), new ECB_1.default(1, 99)), new ECBlocks_1.default(28, new ECB_1.default(7, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(24, new ECB_1.default(15, 19), new ECB_1.default(2, 20)), new ECBlocks_1.default(30, new ECB_1.default(3, 15), new ECB_1.default(13, 16))),\r\n new Version(17, Int32Array.from([6, 30, 54, 78]), new ECBlocks_1.default(28, new ECB_1.default(1, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(1, 47)), new ECBlocks_1.default(28, new ECB_1.default(1, 22), new ECB_1.default(15, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(17, 15))),\r\n new Version(18, Int32Array.from([6, 30, 56, 82]), new ECBlocks_1.default(30, new ECB_1.default(5, 120), new ECB_1.default(1, 121)), new ECBlocks_1.default(26, new ECB_1.default(9, 43), new ECB_1.default(4, 44)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(1, 23)), new ECBlocks_1.default(28, new ECB_1.default(2, 14), new ECB_1.default(19, 15))),\r\n new Version(19, Int32Array.from([6, 30, 58, 86]), new ECBlocks_1.default(28, new ECB_1.default(3, 113), new ECB_1.default(4, 114)), new ECBlocks_1.default(26, new ECB_1.default(3, 44), new ECB_1.default(11, 45)), new ECBlocks_1.default(26, new ECB_1.default(17, 21), new ECB_1.default(4, 22)), new ECBlocks_1.default(26, new ECB_1.default(9, 13), new ECB_1.default(16, 14))),\r\n new Version(20, Int32Array.from([6, 34, 62, 90]), new ECBlocks_1.default(28, new ECB_1.default(3, 107), new ECB_1.default(5, 108)), new ECBlocks_1.default(26, new ECB_1.default(3, 41), new ECB_1.default(13, 42)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(5, 25)), new ECBlocks_1.default(28, new ECB_1.default(15, 15), new ECB_1.default(10, 16))),\r\n new Version(21, Int32Array.from([6, 28, 50, 72, 94]), new ECBlocks_1.default(28, new ECB_1.default(4, 116), new ECB_1.default(4, 117)), new ECBlocks_1.default(26, new ECB_1.default(17, 42)), new ECBlocks_1.default(28, new ECB_1.default(17, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(19, 16), new ECB_1.default(6, 17))),\r\n new Version(22, Int32Array.from([6, 26, 50, 74, 98]), new ECBlocks_1.default(28, new ECB_1.default(2, 111), new ECB_1.default(7, 112)), new ECBlocks_1.default(28, new ECB_1.default(17, 46)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(24, new ECB_1.default(34, 13))),\r\n new Version(23, Int32Array.from([6, 30, 54, 78, 102]), new ECBlocks_1.default(30, new ECB_1.default(4, 121), new ECB_1.default(5, 122)), new ECBlocks_1.default(28, new ECB_1.default(4, 47), new ECB_1.default(14, 48)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(16, 15), new ECB_1.default(14, 16))),\r\n new Version(24, Int32Array.from([6, 28, 54, 80, 106]), new ECBlocks_1.default(30, new ECB_1.default(6, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(6, 45), new ECB_1.default(14, 46)), new ECBlocks_1.default(30, new ECB_1.default(11, 24), new ECB_1.default(16, 25)), new ECBlocks_1.default(30, new ECB_1.default(30, 16), new ECB_1.default(2, 17))),\r\n new Version(25, Int32Array.from([6, 32, 58, 84, 110]), new ECBlocks_1.default(26, new ECB_1.default(8, 106), new ECB_1.default(4, 107)), new ECBlocks_1.default(28, new ECB_1.default(8, 47), new ECB_1.default(13, 48)), new ECBlocks_1.default(30, new ECB_1.default(7, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(13, 16))),\r\n new Version(26, Int32Array.from([6, 30, 58, 86, 114]), new ECBlocks_1.default(28, new ECB_1.default(10, 114), new ECB_1.default(2, 115)), new ECBlocks_1.default(28, new ECB_1.default(19, 46), new ECB_1.default(4, 47)), new ECBlocks_1.default(28, new ECB_1.default(28, 22), new ECB_1.default(6, 23)), new ECBlocks_1.default(30, new ECB_1.default(33, 16), new ECB_1.default(4, 17))),\r\n new Version(27, Int32Array.from([6, 34, 62, 90, 118]), new ECBlocks_1.default(30, new ECB_1.default(8, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(22, 45), new ECB_1.default(3, 46)), new ECBlocks_1.default(30, new ECB_1.default(8, 23), new ECB_1.default(26, 24)), new ECBlocks_1.default(30, new ECB_1.default(12, 15), new ECB_1.default(28, 16))),\r\n new Version(28, Int32Array.from([6, 26, 50, 74, 98, 122]), new ECBlocks_1.default(30, new ECB_1.default(3, 117), new ECB_1.default(10, 118)), new ECBlocks_1.default(28, new ECB_1.default(3, 45), new ECB_1.default(23, 46)), new ECBlocks_1.default(30, new ECB_1.default(4, 24), new ECB_1.default(31, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(31, 16))),\r\n new Version(29, Int32Array.from([6, 30, 54, 78, 102, 126]), new ECBlocks_1.default(30, new ECB_1.default(7, 116), new ECB_1.default(7, 117)), new ECBlocks_1.default(28, new ECB_1.default(21, 45), new ECB_1.default(7, 46)), new ECBlocks_1.default(30, new ECB_1.default(1, 23), new ECB_1.default(37, 24)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(26, 16))),\r\n new Version(30, Int32Array.from([6, 26, 52, 78, 104, 130]), new ECBlocks_1.default(30, new ECB_1.default(5, 115), new ECB_1.default(10, 116)), new ECBlocks_1.default(28, new ECB_1.default(19, 47), new ECB_1.default(10, 48)), new ECBlocks_1.default(30, new ECB_1.default(15, 24), new ECB_1.default(25, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(25, 16))),\r\n new Version(31, Int32Array.from([6, 30, 56, 82, 108, 134]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(3, 116)), new ECBlocks_1.default(28, new ECB_1.default(2, 46), new ECB_1.default(29, 47)), new ECBlocks_1.default(30, new ECB_1.default(42, 24), new ECB_1.default(1, 25)), new ECBlocks_1.default(30, new ECB_1.default(23, 15), new ECB_1.default(28, 16))),\r\n new Version(32, Int32Array.from([6, 34, 60, 86, 112, 138]), new ECBlocks_1.default(30, new ECB_1.default(17, 115)), new ECBlocks_1.default(28, new ECB_1.default(10, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(10, 24), new ECB_1.default(35, 25)), new ECBlocks_1.default(30, new ECB_1.default(19, 15), new ECB_1.default(35, 16))),\r\n new Version(33, Int32Array.from([6, 30, 58, 86, 114, 142]), new ECBlocks_1.default(30, new ECB_1.default(17, 115), new ECB_1.default(1, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(21, 47)), new ECBlocks_1.default(30, new ECB_1.default(29, 24), new ECB_1.default(19, 25)), new ECBlocks_1.default(30, new ECB_1.default(11, 15), new ECB_1.default(46, 16))),\r\n new Version(34, Int32Array.from([6, 34, 62, 90, 118, 146]), new ECBlocks_1.default(30, new ECB_1.default(13, 115), new ECB_1.default(6, 116)), new ECBlocks_1.default(28, new ECB_1.default(14, 46), new ECB_1.default(23, 47)), new ECBlocks_1.default(30, new ECB_1.default(44, 24), new ECB_1.default(7, 25)), new ECBlocks_1.default(30, new ECB_1.default(59, 16), new ECB_1.default(1, 17))),\r\n new Version(35, Int32Array.from([6, 30, 54, 78, 102, 126, 150]), new ECBlocks_1.default(30, new ECB_1.default(12, 121), new ECB_1.default(7, 122)), new ECBlocks_1.default(28, new ECB_1.default(12, 47), new ECB_1.default(26, 48)), new ECBlocks_1.default(30, new ECB_1.default(39, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(22, 15), new ECB_1.default(41, 16))),\r\n new Version(36, Int32Array.from([6, 24, 50, 76, 102, 128, 154]), new ECBlocks_1.default(30, new ECB_1.default(6, 121), new ECB_1.default(14, 122)), new ECBlocks_1.default(28, new ECB_1.default(6, 47), new ECB_1.default(34, 48)), new ECBlocks_1.default(30, new ECB_1.default(46, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(2, 15), new ECB_1.default(64, 16))),\r\n new Version(37, Int32Array.from([6, 28, 54, 80, 106, 132, 158]), new ECBlocks_1.default(30, new ECB_1.default(17, 122), new ECB_1.default(4, 123)), new ECBlocks_1.default(28, new ECB_1.default(29, 46), new ECB_1.default(14, 47)), new ECBlocks_1.default(30, new ECB_1.default(49, 24), new ECB_1.default(10, 25)), new ECBlocks_1.default(30, new ECB_1.default(24, 15), new ECB_1.default(46, 16))),\r\n new Version(38, Int32Array.from([6, 32, 58, 84, 110, 136, 162]), new ECBlocks_1.default(30, new ECB_1.default(4, 122), new ECB_1.default(18, 123)), new ECBlocks_1.default(28, new ECB_1.default(13, 46), new ECB_1.default(32, 47)), new ECBlocks_1.default(30, new ECB_1.default(48, 24), new ECB_1.default(14, 25)), new ECBlocks_1.default(30, new ECB_1.default(42, 15), new ECB_1.default(32, 16))),\r\n new Version(39, Int32Array.from([6, 26, 54, 82, 110, 138, 166]), new ECBlocks_1.default(30, new ECB_1.default(20, 117), new ECB_1.default(4, 118)), new ECBlocks_1.default(28, new ECB_1.default(40, 47), new ECB_1.default(7, 48)), new ECBlocks_1.default(30, new ECB_1.default(43, 24), new ECB_1.default(22, 25)), new ECBlocks_1.default(30, new ECB_1.default(10, 15), new ECB_1.default(67, 16))),\r\n new Version(40, Int32Array.from([6, 30, 58, 86, 114, 142, 170]), new ECBlocks_1.default(30, new ECB_1.default(19, 118), new ECB_1.default(6, 119)), new ECBlocks_1.default(28, new ECB_1.default(18, 47), new ECB_1.default(31, 48)), new ECBlocks_1.default(30, new ECB_1.default(34, 24), new ECB_1.default(34, 25)), new ECBlocks_1.default(30, new ECB_1.default(20, 15), new ECB_1.default(61, 16)))\r\n ];\r\n return Version;\r\n}());\r\nexports.default = Version;\r\n//# sourceMappingURL=Version.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\nvar IllegalArgumentException_1 = require(\"../IllegalArgumentException\");\r\n/**\r\n *

This provides an easy abstraction to read bits at a time from a sequence of bytes, where the\r\n * number of bits read is not often a multiple of 8.

\r\n *\r\n *

This class is thread-safe but not reentrant -- unless the caller modifies the bytes array\r\n * it passed in, in which case all bets are off.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar BitSource = /** @class */ (function () {\r\n /**\r\n * @param bytes bytes from which this will read bits. Bits will be read from the first byte first.\r\n * Bits are read within a byte from most-significant to least-significant bit.\r\n */\r\n function BitSource(bytes) {\r\n this.bytes = bytes;\r\n this.byteOffset = 0;\r\n this.bitOffset = 0;\r\n }\r\n /**\r\n * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}.\r\n */\r\n BitSource.prototype.getBitOffset = function () {\r\n return this.bitOffset;\r\n };\r\n /**\r\n * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}.\r\n */\r\n BitSource.prototype.getByteOffset = function () {\r\n return this.byteOffset;\r\n };\r\n /**\r\n * @param numBits number of bits to read\r\n * @return int representing the bits read. The bits will appear as the least-significant\r\n * bits of the int\r\n * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available\r\n */\r\n BitSource.prototype.readBits = function (numBits /*int*/) {\r\n if (numBits < 1 || numBits > 32 || numBits > this.available()) {\r\n throw new IllegalArgumentException_1.default('' + numBits);\r\n }\r\n var result = 0;\r\n var bitOffset = this.bitOffset;\r\n var byteOffset = this.byteOffset;\r\n var bytes = this.bytes;\r\n // First, read remainder from current byte\r\n if (bitOffset > 0) {\r\n var bitsLeft = 8 - bitOffset;\r\n var toRead = numBits < bitsLeft ? numBits : bitsLeft;\r\n var bitsToNotRead = bitsLeft - toRead;\r\n var mask = (0xFF >> (8 - toRead)) << bitsToNotRead;\r\n result = (bytes[byteOffset] & mask) >> bitsToNotRead;\r\n numBits -= toRead;\r\n bitOffset += toRead;\r\n if (bitOffset === 8) {\r\n bitOffset = 0;\r\n byteOffset++;\r\n }\r\n }\r\n // Next read whole bytes\r\n if (numBits > 0) {\r\n while (numBits >= 8) {\r\n result = (result << 8) | (bytes[byteOffset] & 0xFF);\r\n byteOffset++;\r\n numBits -= 8;\r\n }\r\n // Finally read a partial byte\r\n if (numBits > 0) {\r\n var bitsToNotRead = 8 - numBits;\r\n var mask = (0xFF >> bitsToNotRead) << bitsToNotRead;\r\n result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead);\r\n bitOffset += numBits;\r\n }\r\n }\r\n this.bitOffset = bitOffset;\r\n this.byteOffset = byteOffset;\r\n return result;\r\n };\r\n /**\r\n * @return number of bits that can be read successfully\r\n */\r\n BitSource.prototype.available = function () {\r\n return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset;\r\n };\r\n return BitSource;\r\n}());\r\nexports.default = BitSource;\r\n//# sourceMappingURL=BitSource.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\n/*import java.util.List;*/\r\n/**\r\n *

Encapsulates the result of decoding a matrix of bits. This typically\r\n * applies to 2D barcode formats. For now it contains the raw bytes obtained,\r\n * as well as a String interpretation of those bytes, if applicable.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar DecoderResult = /** @class */ (function () {\r\n // public constructor(rawBytes: Uint8Array,\r\n // text: string,\r\n // List byteSegments,\r\n // String ecLevel) {\r\n // this(rawBytes, text, byteSegments, ecLevel, -1, -1)\r\n // }\r\n function DecoderResult(rawBytes, text, byteSegments, ecLevel, structuredAppendSequenceNumber, structuredAppendParity) {\r\n if (structuredAppendSequenceNumber === void 0) { structuredAppendSequenceNumber = -1; }\r\n if (structuredAppendParity === void 0) { structuredAppendParity = -1; }\r\n this.rawBytes = rawBytes;\r\n this.text = text;\r\n this.byteSegments = byteSegments;\r\n this.ecLevel = ecLevel;\r\n this.structuredAppendSequenceNumber = structuredAppendSequenceNumber;\r\n this.structuredAppendParity = structuredAppendParity;\r\n this.numBits = (rawBytes === undefined || rawBytes === null) ? 0 : 8 * rawBytes.length;\r\n }\r\n /**\r\n * @return raw bytes representing the result, or {@code null} if not applicable\r\n */\r\n DecoderResult.prototype.getRawBytes = function () {\r\n return this.rawBytes;\r\n };\r\n /**\r\n * @return how many bits of {@link #getRawBytes()} are valid; typically 8 times its length\r\n * @since 3.3.0\r\n */\r\n DecoderResult.prototype.getNumBits = function () {\r\n return this.numBits;\r\n };\r\n /**\r\n * @param numBits overrides the number of bits that are valid in {@link #getRawBytes()}\r\n * @since 3.3.0\r\n */\r\n DecoderResult.prototype.setNumBits = function (numBits /*int*/) {\r\n this.numBits = numBits;\r\n };\r\n /**\r\n * @return text representation of the result\r\n */\r\n DecoderResult.prototype.getText = function () {\r\n return this.text;\r\n };\r\n /**\r\n * @return list of byte segments in the result, or {@code null} if not applicable\r\n */\r\n DecoderResult.prototype.getByteSegments = function () {\r\n return this.byteSegments;\r\n };\r\n /**\r\n * @return name of error correction level used, or {@code null} if not applicable\r\n */\r\n DecoderResult.prototype.getECLevel = function () {\r\n return this.ecLevel;\r\n };\r\n /**\r\n * @return number of errors corrected, or {@code null} if not applicable\r\n */\r\n DecoderResult.prototype.getErrorsCorrected = function () {\r\n return this.errorsCorrected;\r\n };\r\n DecoderResult.prototype.setErrorsCorrected = function (errorsCorrected /*Integer*/) {\r\n this.errorsCorrected = errorsCorrected;\r\n };\r\n /**\r\n * @return number of erasures corrected, or {@code null} if not applicable\r\n */\r\n DecoderResult.prototype.getErasures = function () {\r\n return this.erasures;\r\n };\r\n DecoderResult.prototype.setErasures = function (erasures /*Integer*/) {\r\n this.erasures = erasures;\r\n };\r\n /**\r\n * @return arbitrary additional metadata\r\n */\r\n DecoderResult.prototype.getOther = function () {\r\n return this.other;\r\n };\r\n DecoderResult.prototype.setOther = function (other) {\r\n this.other = other;\r\n };\r\n DecoderResult.prototype.hasStructuredAppend = function () {\r\n return this.structuredAppendParity >= 0 && this.structuredAppendSequenceNumber >= 0;\r\n };\r\n DecoderResult.prototype.getStructuredAppendParity = function () {\r\n return this.structuredAppendParity;\r\n };\r\n DecoderResult.prototype.getStructuredAppendSequenceNumber = function () {\r\n return this.structuredAppendSequenceNumber;\r\n };\r\n return DecoderResult;\r\n}());\r\nexports.default = DecoderResult;\r\n//# sourceMappingURL=DecoderResult.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnsupportedOperationException_1 = require(\"../UnsupportedOperationException\");\r\nvar CharacterSetECI_1 = require(\"../common/CharacterSetECI\");\r\n/**\r\n * Responsible for en/decoding strings.\r\n */\r\nvar StringEncoding = /** @class */ (function () {\r\n function StringEncoding() {\r\n }\r\n /**\r\n * Decodes some Uint8Array to a string format.\r\n */\r\n StringEncoding.decode = function (bytes, encoding) {\r\n var encodingName = this.encodingName(encoding);\r\n // Increases browser support.\r\n if (typeof TextDecoder === 'undefined') {\r\n return this.decodeFallback(bytes, encodingName);\r\n }\r\n return new TextDecoder(encodingName).decode(bytes);\r\n };\r\n /**\r\n * Encodes some string into a Uint8Array.\r\n *\r\n * @todo natively support other string formats than UTF-8.\r\n */\r\n StringEncoding.encode = function (s, encoding) {\r\n // Uses `text-encoding` package.\r\n if (!StringEncoding.isBrowser()) {\r\n // SEE: https://nodejs.org/api/buffer.html#buffer_class_buffer\r\n // SEE: https://github.com/polygonplanet/encoding.js/\r\n // SEE: https://stackoverflow.com/questions/17191945/conversion-between-utf-8-arraybuffer-and-string\r\n var EncoderConstructor = TextEncoder;\r\n return new EncoderConstructor(this.encodingName(encoding), { NONSTANDARD_allowLegacyEncoding: true }).encode(s);\r\n }\r\n // Increases browser support.\r\n if (typeof TextEncoder === 'undefined') {\r\n return this.encodeFallback(s);\r\n }\r\n // TextEncoder only encodes to UTF8 by default as specified by encoding.spec.whatwg.org\r\n return new TextEncoder().encode(s);\r\n };\r\n StringEncoding.isBrowser = function () {\r\n return (typeof window !== 'undefined' && {}.toString.call(window) === '[object Window]');\r\n };\r\n /**\r\n * Returns the string value from some encoding character set.\r\n */\r\n StringEncoding.encodingName = function (encoding) {\r\n return typeof encoding === 'string'\r\n ? encoding\r\n : encoding.getName();\r\n };\r\n /**\r\n * Returns character set from some encoding character set.\r\n */\r\n StringEncoding.encodingCharacterSet = function (encoding) {\r\n return CharacterSetECI_1.default.getCharacterSetECIByName(this.encodingName(encoding));\r\n };\r\n /**\r\n * Runs a fallback for the native decoding funcion.\r\n */\r\n StringEncoding.decodeFallback = function (bytes, encoding) {\r\n var characterSet = this.encodingCharacterSet(encoding);\r\n if (characterSet.equals(CharacterSetECI_1.default.UTF8) ||\r\n characterSet.equals(CharacterSetECI_1.default.ISO8859_1) ||\r\n characterSet.equals(CharacterSetECI_1.default.ASCII)) {\r\n var s = '';\r\n for (var i = 0, length_1 = bytes.length; i < length_1; i++) {\r\n var h = bytes[i].toString(16);\r\n if (h.length < 2) {\r\n h = '0' + h;\r\n }\r\n s += '%' + h;\r\n }\r\n return decodeURIComponent(s);\r\n }\r\n if (characterSet.equals(CharacterSetECI_1.default.UnicodeBigUnmarked)) {\r\n return String.fromCharCode.apply(null, new Uint16Array(bytes.buffer));\r\n }\r\n throw new UnsupportedOperationException_1.default(\"Encoding \" + this.encodingName(encoding) + \" not supported by fallback.\");\r\n };\r\n /**\r\n * Runs a fallback for the native encoding funcion.\r\n *\r\n * @see https://stackoverflow.com/a/17192845/4367683\r\n */\r\n StringEncoding.encodeFallback = function (s) {\r\n var encodedURIstring = btoa(unescape(encodeURIComponent(s)));\r\n var charList = encodedURIstring.split('');\r\n var uintArray = [];\r\n for (var i = 0; i < charList.length; i++) {\r\n uintArray.push(charList[i].charCodeAt(0));\r\n }\r\n return new Uint8Array(uintArray);\r\n };\r\n return StringEncoding;\r\n}());\r\nexports.default = StringEncoding;\r\n//# sourceMappingURL=StringEncoding.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/**\r\n *

Encapsulates the result of detecting a barcode in an image. This includes the raw\r\n * matrix of black/white pixels corresponding to the barcode, and possibly points of interest\r\n * in the image, like the location of finder patterns or corners of the barcode in the image.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar DetectorResult = /** @class */ (function () {\r\n function DetectorResult(bits, points) {\r\n this.bits = bits;\r\n this.points = points;\r\n }\r\n DetectorResult.prototype.getBits = function () {\r\n return this.bits;\r\n };\r\n DetectorResult.prototype.getPoints = function () {\r\n return this.points;\r\n };\r\n return DetectorResult;\r\n}());\r\nexports.default = DetectorResult;\r\n//# sourceMappingURL=DetectorResult.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar DefaultGridSampler_1 = require(\"./DefaultGridSampler\");\r\nvar GridSamplerInstance = /** @class */ (function () {\r\n function GridSamplerInstance() {\r\n }\r\n /**\r\n * Sets the implementation of GridSampler used by the library. One global\r\n * instance is stored, which may sound problematic. But, the implementation provided\r\n * ought to be appropriate for the entire platform, and all uses of this library\r\n * in the whole lifetime of the JVM. For instance, an Android activity can swap in\r\n * an implementation that takes advantage of native platform libraries.\r\n *\r\n * @param newGridSampler The platform-specific object to install.\r\n */\r\n GridSamplerInstance.setGridSampler = function (newGridSampler) {\r\n GridSamplerInstance.gridSampler = newGridSampler;\r\n };\r\n /**\r\n * @return the current implementation of GridSampler\r\n */\r\n GridSamplerInstance.getInstance = function () {\r\n return GridSamplerInstance.gridSampler;\r\n };\r\n GridSamplerInstance.gridSampler = new DefaultGridSampler_1.default();\r\n return GridSamplerInstance;\r\n}());\r\nexports.default = GridSamplerInstance;\r\n//# sourceMappingURL=GridSamplerInstance.js.map","\"use strict\";\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.common {*/\r\n/**\r\n *

This class implements a perspective transform in two dimensions. Given four source and four\r\n * destination points, it will compute the transformation implied between them. The code is based\r\n * directly upon section 3.4.2 of George Wolberg's \"Digital Image Warping\"; see pages 54-56.

\r\n *\r\n * @author Sean Owen\r\n */\r\nvar PerspectiveTransform = /** @class */ (function () {\r\n function PerspectiveTransform(a11 /*float*/, a21 /*float*/, a31 /*float*/, a12 /*float*/, a22 /*float*/, a32 /*float*/, a13 /*float*/, a23 /*float*/, a33 /*float*/) {\r\n this.a11 = a11;\r\n this.a21 = a21;\r\n this.a31 = a31;\r\n this.a12 = a12;\r\n this.a22 = a22;\r\n this.a32 = a32;\r\n this.a13 = a13;\r\n this.a23 = a23;\r\n this.a33 = a33;\r\n }\r\n PerspectiveTransform.quadrilateralToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/, x0p /*float*/, y0p /*float*/, x1p /*float*/, y1p /*float*/, x2p /*float*/, y2p /*float*/, x3p /*float*/, y3p /*float*/) {\r\n var qToS = PerspectiveTransform.quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3);\r\n var sToQ = PerspectiveTransform.squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p);\r\n return sToQ.times(qToS);\r\n };\r\n PerspectiveTransform.prototype.transformPoints = function (points) {\r\n var max = points.length;\r\n var a11 = this.a11;\r\n var a12 = this.a12;\r\n var a13 = this.a13;\r\n var a21 = this.a21;\r\n var a22 = this.a22;\r\n var a23 = this.a23;\r\n var a31 = this.a31;\r\n var a32 = this.a32;\r\n var a33 = this.a33;\r\n for (var i = 0; i < max; i += 2) {\r\n var x = points[i];\r\n var y = points[i + 1];\r\n var denominator = a13 * x + a23 * y + a33;\r\n points[i] = (a11 * x + a21 * y + a31) / denominator;\r\n points[i + 1] = (a12 * x + a22 * y + a32) / denominator;\r\n }\r\n };\r\n PerspectiveTransform.prototype.transformPointsWithValues = function (xValues, yValues) {\r\n var a11 = this.a11;\r\n var a12 = this.a12;\r\n var a13 = this.a13;\r\n var a21 = this.a21;\r\n var a22 = this.a22;\r\n var a23 = this.a23;\r\n var a31 = this.a31;\r\n var a32 = this.a32;\r\n var a33 = this.a33;\r\n var n = xValues.length;\r\n for (var i = 0; i < n; i++) {\r\n var x = xValues[i];\r\n var y = yValues[i];\r\n var denominator = a13 * x + a23 * y + a33;\r\n xValues[i] = (a11 * x + a21 * y + a31) / denominator;\r\n yValues[i] = (a12 * x + a22 * y + a32) / denominator;\r\n }\r\n };\r\n PerspectiveTransform.squareToQuadrilateral = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\r\n var dx3 = x0 - x1 + x2 - x3;\r\n var dy3 = y0 - y1 + y2 - y3;\r\n if (dx3 === 0.0 && dy3 === 0.0) {\r\n // Affine\r\n return new PerspectiveTransform(x1 - x0, x2 - x1, x0, y1 - y0, y2 - y1, y0, 0.0, 0.0, 1.0);\r\n }\r\n else {\r\n var dx1 = x1 - x2;\r\n var dx2 = x3 - x2;\r\n var dy1 = y1 - y2;\r\n var dy2 = y3 - y2;\r\n var denominator = dx1 * dy2 - dx2 * dy1;\r\n var a13 = (dx3 * dy2 - dx2 * dy3) / denominator;\r\n var a23 = (dx1 * dy3 - dx3 * dy1) / denominator;\r\n return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, a13, a23, 1.0);\r\n }\r\n };\r\n PerspectiveTransform.quadrilateralToSquare = function (x0 /*float*/, y0 /*float*/, x1 /*float*/, y1 /*float*/, x2 /*float*/, y2 /*float*/, x3 /*float*/, y3 /*float*/) {\r\n // Here, the adjoint serves as the inverse:\r\n return PerspectiveTransform.squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint();\r\n };\r\n PerspectiveTransform.prototype.buildAdjoint = function () {\r\n // Adjoint is the transpose of the cofactor matrix:\r\n return new PerspectiveTransform(this.a22 * this.a33 - this.a23 * this.a32, this.a23 * this.a31 - this.a21 * this.a33, this.a21 * this.a32 - this.a22 * this.a31, this.a13 * this.a32 - this.a12 * this.a33, this.a11 * this.a33 - this.a13 * this.a31, this.a12 * this.a31 - this.a11 * this.a32, this.a12 * this.a23 - this.a13 * this.a22, this.a13 * this.a21 - this.a11 * this.a23, this.a11 * this.a22 - this.a12 * this.a21);\r\n };\r\n PerspectiveTransform.prototype.times = function (other) {\r\n return new PerspectiveTransform(this.a11 * other.a11 + this.a21 * other.a12 + this.a31 * other.a13, this.a11 * other.a21 + this.a21 * other.a22 + this.a31 * other.a23, this.a11 * other.a31 + this.a21 * other.a32 + this.a31 * other.a33, this.a12 * other.a11 + this.a22 * other.a12 + this.a32 * other.a13, this.a12 * other.a21 + this.a22 * other.a22 + this.a32 * other.a23, this.a12 * other.a31 + this.a22 * other.a32 + this.a32 * other.a33, this.a13 * other.a11 + this.a23 * other.a12 + this.a33 * other.a13, this.a13 * other.a21 + this.a23 * other.a22 + this.a33 * other.a23, this.a13 * other.a31 + this.a23 * other.a32 + this.a33 * other.a33);\r\n };\r\n return PerspectiveTransform;\r\n}());\r\nexports.default = PerspectiveTransform;\r\n//# sourceMappingURL=PerspectiveTransform.js.map","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Decoder_1 = require(\"./decoder/Decoder\");\r\nvar Result_1 = require(\"../Result\");\r\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\r\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\r\nvar ResultMetadataType_1 = require(\"../ResultMetadataType\");\r\nvar BitMatrix_1 = require(\"../common/BitMatrix\");\r\nvar Detector_1 = require(\"./detector/Detector\");\r\nvar System_1 = require(\"../util/System\");\r\nvar NotFoundException_1 = require(\"../NotFoundException\");\r\n/*\r\n * Copyright 2007 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n/**\r\n * This implementation can detect and decode Data Matrix codes in an image.\r\n *\r\n * @author bbrown@google.com (Brian Brown)\r\n */\r\nvar DataMatrixReader = /** @class */ (function () {\r\n function DataMatrixReader() {\r\n this.decoder = new Decoder_1.default();\r\n }\r\n /**\r\n * Locates and decodes a Data Matrix code in an image.\r\n *\r\n * @return a String representing the content encoded by the Data Matrix code\r\n * @throws NotFoundException if a Data Matrix code cannot be found\r\n * @throws FormatException if a Data Matrix code cannot be decoded\r\n * @throws ChecksumException if error correction fails\r\n */\r\n // @Override\r\n // public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException {\r\n // return decode(image, null);\r\n // }\r\n // @Override\r\n DataMatrixReader.prototype.decode = function (image, hints) {\r\n if (hints === void 0) { hints = null; }\r\n var decoderResult;\r\n var points;\r\n if (hints != null && hints.has(DecodeHintType_1.default.PURE_BARCODE)) {\r\n var bits = DataMatrixReader.extractPureBits(image.getBlackMatrix());\r\n decoderResult = this.decoder.decode(bits);\r\n points = DataMatrixReader.NO_POINTS;\r\n }\r\n else {\r\n var detectorResult = new Detector_1.default(image.getBlackMatrix()).detect();\r\n decoderResult = this.decoder.decode(detectorResult.getBits());\r\n points = detectorResult.getPoints();\r\n }\r\n var rawBytes = decoderResult.getRawBytes();\r\n var result = new Result_1.default(decoderResult.getText(), rawBytes, 8 * rawBytes.length, points, BarcodeFormat_1.default.DATA_MATRIX, System_1.default.currentTimeMillis());\r\n var byteSegments = decoderResult.getByteSegments();\r\n if (byteSegments != null) {\r\n result.putMetadata(ResultMetadataType_1.default.BYTE_SEGMENTS, byteSegments);\r\n }\r\n var ecLevel = decoderResult.getECLevel();\r\n if (ecLevel != null) {\r\n result.putMetadata(ResultMetadataType_1.default.ERROR_CORRECTION_LEVEL, ecLevel);\r\n }\r\n return result;\r\n };\r\n // @Override\r\n DataMatrixReader.prototype.reset = function () {\r\n // do nothing\r\n };\r\n /**\r\n * This method detects a code in a \"pure\" image -- that is, pure monochrome image\r\n * which contains only an unrotated, unskewed, image of a code, with some white border\r\n * around it. This is a specialized method that works exceptionally fast in this special\r\n * case.\r\n *\r\n * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix)\r\n */\r\n DataMatrixReader.extractPureBits = function (image) {\r\n var leftTopBlack = image.getTopLeftOnBit();\r\n var rightBottomBlack = image.getBottomRightOnBit();\r\n if (leftTopBlack == null || rightBottomBlack == null) {\r\n throw new NotFoundException_1.default();\r\n }\r\n var moduleSize = this.moduleSize(leftTopBlack, image);\r\n var top = leftTopBlack[1];\r\n var bottom = rightBottomBlack[1];\r\n var left = leftTopBlack[0];\r\n var right = rightBottomBlack[0];\r\n var matrixWidth = (right - left + 1) / moduleSize;\r\n var matrixHeight = (bottom - top + 1) / moduleSize;\r\n if (matrixWidth <= 0 || matrixHeight <= 0) {\r\n throw new NotFoundException_1.default();\r\n }\r\n // Push in the \"border\" by half the module width so that we start\r\n // sampling in the middle of the module. Just in case the image is a\r\n // little off, this will help recover.\r\n var nudge = moduleSize / 2;\r\n top += nudge;\r\n left += nudge;\r\n // Now just read off the bits\r\n var bits = new BitMatrix_1.default(matrixWidth, matrixHeight);\r\n for (var y = 0; y < matrixHeight; y++) {\r\n var iOffset = top + y * moduleSize;\r\n for (var x = 0; x < matrixWidth; x++) {\r\n if (image.get(left + x * moduleSize, iOffset)) {\r\n bits.set(x, y);\r\n }\r\n }\r\n }\r\n return bits;\r\n };\r\n DataMatrixReader.moduleSize = function (leftTopBlack, image) {\r\n var width = image.getWidth();\r\n var x = leftTopBlack[0];\r\n var y = leftTopBlack[1];\r\n while (x < width && image.get(x, y)) {\r\n x++;\r\n }\r\n if (x === width) {\r\n throw new NotFoundException_1.default();\r\n }\r\n var moduleSize = x - leftTopBlack[0];\r\n if (moduleSize === 0) {\r\n throw new NotFoundException_1.default();\r\n }\r\n return moduleSize;\r\n };\r\n DataMatrixReader.NO_POINTS = [];\r\n return DataMatrixReader;\r\n}());\r\nexports.default = DataMatrixReader;\r\n//# sourceMappingURL=DataMatrixReader.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.qrcode.encoder {*/\r\nvar EncodeHintType_1 = require(\"../../EncodeHintType\");\r\nvar BitArray_1 = require(\"../../common/BitArray\");\r\nvar CharacterSetECI_1 = require(\"../../common/CharacterSetECI\");\r\nvar GenericGF_1 = require(\"../../common/reedsolomon/GenericGF\");\r\nvar ReedSolomonEncoder_1 = require(\"../../common/reedsolomon/ReedSolomonEncoder\");\r\nvar Mode_1 = require(\"../decoder/Mode\");\r\nvar Version_1 = require(\"../decoder/Version\");\r\nvar MaskUtil_1 = require(\"./MaskUtil\");\r\nvar ByteMatrix_1 = require(\"./ByteMatrix\");\r\nvar QRCode_1 = require(\"./QRCode\");\r\nvar MatrixUtil_1 = require(\"./MatrixUtil\");\r\nvar StringEncoding_1 = require(\"../../util/StringEncoding\");\r\nvar BlockPair_1 = require(\"./BlockPair\");\r\nvar WriterException_1 = require(\"../../WriterException\");\r\n/*import java.io.UnsupportedEncodingException;*/\r\n/*import java.util.ArrayList;*/\r\n/*import java.util.Collection;*/\r\n/*import java.util.Map;*/\r\n/**\r\n * @author satorux@google.com (Satoru Takabayashi) - creator\r\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\r\n */\r\nvar Encoder = /** @class */ (function () {\r\n // TYPESCRIPTPORT: changed to UTF8, the default for js\r\n function Encoder() {\r\n }\r\n // The mask penalty calculation is complicated. See Table 21 of JISX0510:2004 (p.45) for details.\r\n // Basically it applies four rules and summate all penalties.\r\n Encoder.calculateMaskPenalty = function (matrix) {\r\n return MaskUtil_1.default.applyMaskPenaltyRule1(matrix)\r\n + MaskUtil_1.default.applyMaskPenaltyRule2(matrix)\r\n + MaskUtil_1.default.applyMaskPenaltyRule3(matrix)\r\n + MaskUtil_1.default.applyMaskPenaltyRule4(matrix);\r\n };\r\n /**\r\n * @param content text to encode\r\n * @param ecLevel error correction level to use\r\n * @return {@link QRCode} representing the encoded QR code\r\n * @throws WriterException if encoding can't succeed, because of for example invalid content\r\n * or configuration\r\n */\r\n // public static encode(content: string, ecLevel: ErrorCorrectionLevel): QRCode /*throws WriterException*/ {\r\n // return encode(content, ecLevel, null)\r\n // }\r\n Encoder.encode = function (content, ecLevel, hints) {\r\n if (hints === void 0) { hints = null; }\r\n // Determine what character encoding has been specified by the caller, if any\r\n var encoding = Encoder.DEFAULT_BYTE_MODE_ENCODING;\r\n var hasEncodingHint = hints !== null && undefined !== hints.get(EncodeHintType_1.default.CHARACTER_SET);\r\n if (hasEncodingHint) {\r\n encoding = hints.get(EncodeHintType_1.default.CHARACTER_SET).toString();\r\n }\r\n // Pick an encoding mode appropriate for the content. Note that this will not attempt to use\r\n // multiple modes / segments even if that were more efficient. Twould be nice.\r\n var mode = this.chooseMode(content, encoding);\r\n // This will store the header information, like mode and\r\n // length, as well as \"header\" segments like an ECI segment.\r\n var headerBits = new BitArray_1.default();\r\n // Append ECI segment if applicable\r\n if (mode === Mode_1.default.BYTE && (hasEncodingHint || Encoder.DEFAULT_BYTE_MODE_ENCODING !== encoding)) {\r\n var eci = CharacterSetECI_1.default.getCharacterSetECIByName(encoding);\r\n if (eci !== undefined) {\r\n this.appendECI(eci, headerBits);\r\n }\r\n }\r\n // (With ECI in place,) Write the mode marker\r\n this.appendModeInfo(mode, headerBits);\r\n // Collect data within the main segment, separately, to count its size if needed. Don't add it to\r\n // main payload yet.\r\n var dataBits = new BitArray_1.default();\r\n this.appendBytes(content, mode, dataBits, encoding);\r\n var version;\r\n if (hints !== null && undefined !== hints.get(EncodeHintType_1.default.QR_VERSION)) {\r\n var versionNumber = Number.parseInt(hints.get(EncodeHintType_1.default.QR_VERSION).toString(), 10);\r\n version = Version_1.default.getVersionForNumber(versionNumber);\r\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, version);\r\n if (!this.willFit(bitsNeeded, version, ecLevel)) {\r\n throw new WriterException_1.default('Data too big for requested version');\r\n }\r\n }\r\n else {\r\n version = this.recommendVersion(ecLevel, mode, headerBits, dataBits);\r\n }\r\n var headerAndDataBits = new BitArray_1.default();\r\n headerAndDataBits.appendBitArray(headerBits);\r\n // Find \"length\" of main segment and write it\r\n var numLetters = mode === Mode_1.default.BYTE ? dataBits.getSizeInBytes() : content.length;\r\n this.appendLengthInfo(numLetters, version, mode, headerAndDataBits);\r\n // Put data together into the overall payload\r\n headerAndDataBits.appendBitArray(dataBits);\r\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\r\n var numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords();\r\n // Terminate the bits properly.\r\n this.terminateBits(numDataBytes, headerAndDataBits);\r\n // Interleave data bits with error correction code.\r\n var finalBits = this.interleaveWithECBytes(headerAndDataBits, version.getTotalCodewords(), numDataBytes, ecBlocks.getNumBlocks());\r\n var qrCode = new QRCode_1.default();\r\n qrCode.setECLevel(ecLevel);\r\n qrCode.setMode(mode);\r\n qrCode.setVersion(version);\r\n // Choose the mask pattern and set to \"qrCode\".\r\n var dimension = version.getDimensionForVersion();\r\n var matrix = new ByteMatrix_1.default(dimension, dimension);\r\n var maskPattern = this.chooseMaskPattern(finalBits, ecLevel, version, matrix);\r\n qrCode.setMaskPattern(maskPattern);\r\n // Build the matrix and set it to \"qrCode\".\r\n MatrixUtil_1.default.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix);\r\n qrCode.setMatrix(matrix);\r\n return qrCode;\r\n };\r\n /**\r\n * Decides the smallest version of QR code that will contain all of the provided data.\r\n *\r\n * @throws WriterException if the data cannot fit in any version\r\n */\r\n Encoder.recommendVersion = function (ecLevel, mode, headerBits, dataBits) {\r\n // Hard part: need to know version to know how many bits length takes. But need to know how many\r\n // bits it takes to know version. First we take a guess at version by assuming version will be\r\n // the minimum, 1:\r\n var provisionalBitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, Version_1.default.getVersionForNumber(1));\r\n var provisionalVersion = this.chooseVersion(provisionalBitsNeeded, ecLevel);\r\n // Use that guess to calculate the right version. I am still not sure this works in 100% of cases.\r\n var bitsNeeded = this.calculateBitsNeeded(mode, headerBits, dataBits, provisionalVersion);\r\n return this.chooseVersion(bitsNeeded, ecLevel);\r\n };\r\n Encoder.calculateBitsNeeded = function (mode, headerBits, dataBits, version) {\r\n return headerBits.getSize() + mode.getCharacterCountBits(version) + dataBits.getSize();\r\n };\r\n /**\r\n * @return the code point of the table used in alphanumeric mode or\r\n * -1 if there is no corresponding code in the table.\r\n */\r\n Encoder.getAlphanumericCode = function (code /*int*/) {\r\n if (code < Encoder.ALPHANUMERIC_TABLE.length) {\r\n return Encoder.ALPHANUMERIC_TABLE[code];\r\n }\r\n return -1;\r\n };\r\n // public static chooseMode(content: string): Mode {\r\n // return chooseMode(content, null);\r\n // }\r\n /**\r\n * Choose the best mode by examining the content. Note that 'encoding' is used as a hint;\r\n * if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}.\r\n */\r\n Encoder.chooseMode = function (content, encoding) {\r\n if (encoding === void 0) { encoding = null; }\r\n if (CharacterSetECI_1.default.SJIS.getName() === encoding && this.isOnlyDoubleByteKanji(content)) {\r\n // Choose Kanji mode if all input are double-byte characters\r\n return Mode_1.default.KANJI;\r\n }\r\n var hasNumeric = false;\r\n var hasAlphanumeric = false;\r\n for (var i = 0, length_1 = content.length; i < length_1; ++i) {\r\n var c = content.charAt(i);\r\n if (Encoder.isDigit(c)) {\r\n hasNumeric = true;\r\n }\r\n else if (this.getAlphanumericCode(c.charCodeAt(0)) !== -1) {\r\n hasAlphanumeric = true;\r\n }\r\n else {\r\n return Mode_1.default.BYTE;\r\n }\r\n }\r\n if (hasAlphanumeric) {\r\n return Mode_1.default.ALPHANUMERIC;\r\n }\r\n if (hasNumeric) {\r\n return Mode_1.default.NUMERIC;\r\n }\r\n return Mode_1.default.BYTE;\r\n };\r\n Encoder.isOnlyDoubleByteKanji = function (content) {\r\n var bytes;\r\n try {\r\n bytes = StringEncoding_1.default.encode(content, CharacterSetECI_1.default.SJIS); // content.getBytes(\"Shift_JIS\"))\r\n }\r\n catch (ignored /*: UnsupportedEncodingException*/) {\r\n return false;\r\n }\r\n var length = bytes.length;\r\n if (length % 2 !== 0) {\r\n return false;\r\n }\r\n for (var i = 0; i < length; i += 2) {\r\n var byte1 = bytes[i] & 0xFF;\r\n if ((byte1 < 0x81 || byte1 > 0x9F) && (byte1 < 0xE0 || byte1 > 0xEB)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n Encoder.chooseMaskPattern = function (bits, ecLevel, version, matrix) {\r\n var minPenalty = Number.MAX_SAFE_INTEGER; // Lower penalty is better.\r\n var bestMaskPattern = -1;\r\n // We try all mask patterns to choose the best one.\r\n for (var maskPattern = 0; maskPattern < QRCode_1.default.NUM_MASK_PATTERNS; maskPattern++) {\r\n MatrixUtil_1.default.buildMatrix(bits, ecLevel, version, maskPattern, matrix);\r\n var penalty = this.calculateMaskPenalty(matrix);\r\n if (penalty < minPenalty) {\r\n minPenalty = penalty;\r\n bestMaskPattern = maskPattern;\r\n }\r\n }\r\n return bestMaskPattern;\r\n };\r\n Encoder.chooseVersion = function (numInputBits /*int*/, ecLevel) {\r\n for (var versionNum = 1; versionNum <= 40; versionNum++) {\r\n var version = Version_1.default.getVersionForNumber(versionNum);\r\n if (Encoder.willFit(numInputBits, version, ecLevel)) {\r\n return version;\r\n }\r\n }\r\n throw new WriterException_1.default('Data too big');\r\n };\r\n /**\r\n * @return true if the number of input bits will fit in a code with the specified version and\r\n * error correction level.\r\n */\r\n Encoder.willFit = function (numInputBits /*int*/, version, ecLevel) {\r\n // In the following comments, we use numbers of Version 7-H.\r\n // numBytes = 196\r\n var numBytes = version.getTotalCodewords();\r\n // getNumECBytes = 130\r\n var ecBlocks = version.getECBlocksForLevel(ecLevel);\r\n var numEcBytes = ecBlocks.getTotalECCodewords();\r\n // getNumDataBytes = 196 - 130 = 66\r\n var numDataBytes = numBytes - numEcBytes;\r\n var totalInputBytes = (numInputBits + 7) / 8;\r\n return numDataBytes >= totalInputBytes;\r\n };\r\n /**\r\n * Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24).\r\n */\r\n Encoder.terminateBits = function (numDataBytes /*int*/, bits) {\r\n var capacity = numDataBytes * 8;\r\n if (bits.getSize() > capacity) {\r\n throw new WriterException_1.default('data bits cannot fit in the QR Code' + bits.getSize() + ' > ' +\r\n capacity);\r\n }\r\n for (var i = 0; i < 4 && bits.getSize() < capacity; ++i) {\r\n bits.appendBit(false);\r\n }\r\n // Append termination bits. See 8.4.8 of JISX0510:2004 (p.24) for details.\r\n // If the last byte isn't 8-bit aligned, we'll add padding bits.\r\n var numBitsInLastByte = bits.getSize() & 0x07;\r\n if (numBitsInLastByte > 0) {\r\n for (var i = numBitsInLastByte; i < 8; i++) {\r\n bits.appendBit(false);\r\n }\r\n }\r\n // If we have more space, we'll fill the space with padding patterns defined in 8.4.9 (p.24).\r\n var numPaddingBytes = numDataBytes - bits.getSizeInBytes();\r\n for (var i = 0; i < numPaddingBytes; ++i) {\r\n bits.appendBits((i & 0x01) === 0 ? 0xEC : 0x11, 8);\r\n }\r\n if (bits.getSize() !== capacity) {\r\n throw new WriterException_1.default('Bits size does not equal capacity');\r\n }\r\n };\r\n /**\r\n * Get number of data bytes and number of error correction bytes for block id \"blockID\". Store\r\n * the result in \"numDataBytesInBlock\", and \"numECBytesInBlock\". See table 12 in 8.5.1 of\r\n * JISX0510:2004 (p.30)\r\n */\r\n Encoder.getNumDataBytesAndNumECBytesForBlockID = function (numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/, blockID /*int*/, numDataBytesInBlock, numECBytesInBlock) {\r\n if (blockID >= numRSBlocks) {\r\n throw new WriterException_1.default('Block ID too large');\r\n }\r\n // numRsBlocksInGroup2 = 196 % 5 = 1\r\n var numRsBlocksInGroup2 = numTotalBytes % numRSBlocks;\r\n // numRsBlocksInGroup1 = 5 - 1 = 4\r\n var numRsBlocksInGroup1 = numRSBlocks - numRsBlocksInGroup2;\r\n // numTotalBytesInGroup1 = 196 / 5 = 39\r\n var numTotalBytesInGroup1 = Math.floor(numTotalBytes / numRSBlocks);\r\n // numTotalBytesInGroup2 = 39 + 1 = 40\r\n var numTotalBytesInGroup2 = numTotalBytesInGroup1 + 1;\r\n // numDataBytesInGroup1 = 66 / 5 = 13\r\n var numDataBytesInGroup1 = Math.floor(numDataBytes / numRSBlocks);\r\n // numDataBytesInGroup2 = 13 + 1 = 14\r\n var numDataBytesInGroup2 = numDataBytesInGroup1 + 1;\r\n // numEcBytesInGroup1 = 39 - 13 = 26\r\n var numEcBytesInGroup1 = numTotalBytesInGroup1 - numDataBytesInGroup1;\r\n // numEcBytesInGroup2 = 40 - 14 = 26\r\n var numEcBytesInGroup2 = numTotalBytesInGroup2 - numDataBytesInGroup2;\r\n // Sanity checks.\r\n // 26 = 26\r\n if (numEcBytesInGroup1 !== numEcBytesInGroup2) {\r\n throw new WriterException_1.default('EC bytes mismatch');\r\n }\r\n // 5 = 4 + 1.\r\n if (numRSBlocks !== numRsBlocksInGroup1 + numRsBlocksInGroup2) {\r\n throw new WriterException_1.default('RS blocks mismatch');\r\n }\r\n // 196 = (13 + 26) * 4 + (14 + 26) * 1\r\n if (numTotalBytes !==\r\n ((numDataBytesInGroup1 + numEcBytesInGroup1) *\r\n numRsBlocksInGroup1) +\r\n ((numDataBytesInGroup2 + numEcBytesInGroup2) *\r\n numRsBlocksInGroup2)) {\r\n throw new WriterException_1.default('Total bytes mismatch');\r\n }\r\n if (blockID < numRsBlocksInGroup1) {\r\n numDataBytesInBlock[0] = numDataBytesInGroup1;\r\n numECBytesInBlock[0] = numEcBytesInGroup1;\r\n }\r\n else {\r\n numDataBytesInBlock[0] = numDataBytesInGroup2;\r\n numECBytesInBlock[0] = numEcBytesInGroup2;\r\n }\r\n };\r\n /**\r\n * Interleave \"bits\" with corresponding error correction bytes. On success, store the result in\r\n * \"result\". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details.\r\n */\r\n Encoder.interleaveWithECBytes = function (bits, numTotalBytes /*int*/, numDataBytes /*int*/, numRSBlocks /*int*/) {\r\n // \"bits\" must have \"getNumDataBytes\" bytes of data.\r\n if (bits.getSizeInBytes() !== numDataBytes) {\r\n throw new WriterException_1.default('Number of bits and data bytes does not match');\r\n }\r\n // Step 1. Divide data bytes into blocks and generate error correction bytes for them. We'll\r\n // store the divided data bytes blocks and error correction bytes blocks into \"blocks\".\r\n var dataBytesOffset = 0;\r\n var maxNumDataBytes = 0;\r\n var maxNumEcBytes = 0;\r\n // Since, we know the number of reedsolmon blocks, we can initialize the vector with the number.\r\n var blocks = new Array(); // new Array(numRSBlocks)\r\n for (var i = 0; i < numRSBlocks; ++i) {\r\n var numDataBytesInBlock = new Int32Array(1);\r\n var numEcBytesInBlock = new Int32Array(1);\r\n Encoder.getNumDataBytesAndNumECBytesForBlockID(numTotalBytes, numDataBytes, numRSBlocks, i, numDataBytesInBlock, numEcBytesInBlock);\r\n var size = numDataBytesInBlock[0];\r\n var dataBytes = new Uint8Array(size);\r\n bits.toBytes(8 * dataBytesOffset, dataBytes, 0, size);\r\n var ecBytes = Encoder.generateECBytes(dataBytes, numEcBytesInBlock[0]);\r\n blocks.push(new BlockPair_1.default(dataBytes, ecBytes));\r\n maxNumDataBytes = Math.max(maxNumDataBytes, size);\r\n maxNumEcBytes = Math.max(maxNumEcBytes, ecBytes.length);\r\n dataBytesOffset += numDataBytesInBlock[0];\r\n }\r\n if (numDataBytes !== dataBytesOffset) {\r\n throw new WriterException_1.default('Data bytes does not match offset');\r\n }\r\n var result = new BitArray_1.default();\r\n // First, place data blocks.\r\n for (var i = 0; i < maxNumDataBytes; ++i) {\r\n for (var _i = 0, blocks_1 = blocks; _i < blocks_1.length; _i++) {\r\n var block = blocks_1[_i];\r\n var dataBytes = block.getDataBytes();\r\n if (i < dataBytes.length) {\r\n result.appendBits(dataBytes[i], 8);\r\n }\r\n }\r\n }\r\n // Then, place error correction blocks.\r\n for (var i = 0; i < maxNumEcBytes; ++i) {\r\n for (var _a = 0, blocks_2 = blocks; _a < blocks_2.length; _a++) {\r\n var block = blocks_2[_a];\r\n var ecBytes = block.getErrorCorrectionBytes();\r\n if (i < ecBytes.length) {\r\n result.appendBits(ecBytes[i], 8);\r\n }\r\n }\r\n }\r\n if (numTotalBytes !== result.getSizeInBytes()) { // Should be same.\r\n throw new WriterException_1.default('Interleaving error: ' + numTotalBytes + ' and ' +\r\n result.getSizeInBytes() + ' differ.');\r\n }\r\n return result;\r\n };\r\n Encoder.generateECBytes = function (dataBytes, numEcBytesInBlock /*int*/) {\r\n var numDataBytes = dataBytes.length;\r\n var toEncode = new Int32Array(numDataBytes + numEcBytesInBlock); // int[numDataBytes + numEcBytesInBlock]\r\n for (var i = 0; i < numDataBytes; i++) {\r\n toEncode[i] = dataBytes[i] & 0xFF;\r\n }\r\n new ReedSolomonEncoder_1.default(GenericGF_1.default.QR_CODE_FIELD_256).encode(toEncode, numEcBytesInBlock);\r\n var ecBytes = new Uint8Array(numEcBytesInBlock);\r\n for (var i = 0; i < numEcBytesInBlock; i++) {\r\n ecBytes[i] = /*(byte) */ toEncode[numDataBytes + i];\r\n }\r\n return ecBytes;\r\n };\r\n /**\r\n * Append mode info. On success, store the result in \"bits\".\r\n */\r\n Encoder.appendModeInfo = function (mode, bits) {\r\n bits.appendBits(mode.getBits(), 4);\r\n };\r\n /**\r\n * Append length info. On success, store the result in \"bits\".\r\n */\r\n Encoder.appendLengthInfo = function (numLetters /*int*/, version, mode, bits) {\r\n var numBits = mode.getCharacterCountBits(version);\r\n if (numLetters >= (1 << numBits)) {\r\n throw new WriterException_1.default(numLetters + ' is bigger than ' + ((1 << numBits) - 1));\r\n }\r\n bits.appendBits(numLetters, numBits);\r\n };\r\n /**\r\n * Append \"bytes\" in \"mode\" mode (encoding) into \"bits\". On success, store the result in \"bits\".\r\n */\r\n Encoder.appendBytes = function (content, mode, bits, encoding) {\r\n switch (mode) {\r\n case Mode_1.default.NUMERIC:\r\n Encoder.appendNumericBytes(content, bits);\r\n break;\r\n case Mode_1.default.ALPHANUMERIC:\r\n Encoder.appendAlphanumericBytes(content, bits);\r\n break;\r\n case Mode_1.default.BYTE:\r\n Encoder.append8BitBytes(content, bits, encoding);\r\n break;\r\n case Mode_1.default.KANJI:\r\n Encoder.appendKanjiBytes(content, bits);\r\n break;\r\n default:\r\n throw new WriterException_1.default('Invalid mode: ' + mode);\r\n }\r\n };\r\n Encoder.getDigit = function (singleCharacter) {\r\n return singleCharacter.charCodeAt(0) - 48;\r\n };\r\n Encoder.isDigit = function (singleCharacter) {\r\n var cn = Encoder.getDigit(singleCharacter);\r\n return cn >= 0 && cn <= 9;\r\n };\r\n Encoder.appendNumericBytes = function (content, bits) {\r\n var length = content.length;\r\n var i = 0;\r\n while (i < length) {\r\n var num1 = Encoder.getDigit(content.charAt(i));\r\n if (i + 2 < length) {\r\n // Encode three numeric letters in ten bits.\r\n var num2 = Encoder.getDigit(content.charAt(i + 1));\r\n var num3 = Encoder.getDigit(content.charAt(i + 2));\r\n bits.appendBits(num1 * 100 + num2 * 10 + num3, 10);\r\n i += 3;\r\n }\r\n else if (i + 1 < length) {\r\n // Encode two numeric letters in seven bits.\r\n var num2 = Encoder.getDigit(content.charAt(i + 1));\r\n bits.appendBits(num1 * 10 + num2, 7);\r\n i += 2;\r\n }\r\n else {\r\n // Encode one numeric letter in four bits.\r\n bits.appendBits(num1, 4);\r\n i++;\r\n }\r\n }\r\n };\r\n Encoder.appendAlphanumericBytes = function (content, bits) {\r\n var length = content.length;\r\n var i = 0;\r\n while (i < length) {\r\n var code1 = Encoder.getAlphanumericCode(content.charCodeAt(i));\r\n if (code1 === -1) {\r\n throw new WriterException_1.default();\r\n }\r\n if (i + 1 < length) {\r\n var code2 = Encoder.getAlphanumericCode(content.charCodeAt(i + 1));\r\n if (code2 === -1) {\r\n throw new WriterException_1.default();\r\n }\r\n // Encode two alphanumeric letters in 11 bits.\r\n bits.appendBits(code1 * 45 + code2, 11);\r\n i += 2;\r\n }\r\n else {\r\n // Encode one alphanumeric letter in six bits.\r\n bits.appendBits(code1, 6);\r\n i++;\r\n }\r\n }\r\n };\r\n Encoder.append8BitBytes = function (content, bits, encoding) {\r\n var bytes;\r\n try {\r\n bytes = StringEncoding_1.default.encode(content, encoding);\r\n }\r\n catch (uee /*: UnsupportedEncodingException*/) {\r\n throw new WriterException_1.default(uee);\r\n }\r\n for (var i = 0, length_2 = bytes.length; i !== length_2; i++) {\r\n var b = bytes[i];\r\n bits.appendBits(b, 8);\r\n }\r\n };\r\n /**\r\n * @throws WriterException\r\n */\r\n Encoder.appendKanjiBytes = function (content, bits) {\r\n var bytes;\r\n try {\r\n bytes = StringEncoding_1.default.encode(content, CharacterSetECI_1.default.SJIS);\r\n }\r\n catch (uee /*: UnsupportedEncodingException*/) {\r\n throw new WriterException_1.default(uee);\r\n }\r\n var length = bytes.length;\r\n for (var i = 0; i < length; i += 2) {\r\n var byte1 = bytes[i] & 0xFF;\r\n var byte2 = bytes[i + 1] & 0xFF;\r\n var code = ((byte1 << 8) & 0xFFFFFFFF) | byte2;\r\n var subtracted = -1;\r\n if (code >= 0x8140 && code <= 0x9ffc) {\r\n subtracted = code - 0x8140;\r\n }\r\n else if (code >= 0xe040 && code <= 0xebbf) {\r\n subtracted = code - 0xc140;\r\n }\r\n if (subtracted === -1) {\r\n throw new WriterException_1.default('Invalid byte sequence');\r\n }\r\n var encoded = ((subtracted >> 8) * 0xc0) + (subtracted & 0xff);\r\n bits.appendBits(encoded, 13);\r\n }\r\n };\r\n Encoder.appendECI = function (eci, bits) {\r\n bits.appendBits(Mode_1.default.ECI.getBits(), 4);\r\n // This is correct for values up to 127, which is all we need now.\r\n bits.appendBits(eci.getValue(), 8);\r\n };\r\n // The original table is defined in the table 5 of JISX0510:2004 (p.19).\r\n Encoder.ALPHANUMERIC_TABLE = Int32Array.from([\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,\r\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1,\r\n -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\r\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,\r\n ]);\r\n Encoder.DEFAULT_BYTE_MODE_ENCODING = CharacterSetECI_1.default.UTF8.getName(); // \"ISO-8859-1\"\r\n return Encoder;\r\n}());\r\nexports.default = Encoder;\r\n//# sourceMappingURL=Encoder.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StringBuilder_1 = require(\"../../util/StringBuilder\");\r\n/**\r\n * @author satorux@google.com (Satoru Takabayashi) - creator\r\n * @author dswitkin@google.com (Daniel Switkin) - ported from C++\r\n */\r\nvar QRCode = /** @class */ (function () {\r\n function QRCode() {\r\n this.maskPattern = -1;\r\n }\r\n QRCode.prototype.getMode = function () {\r\n return this.mode;\r\n };\r\n QRCode.prototype.getECLevel = function () {\r\n return this.ecLevel;\r\n };\r\n QRCode.prototype.getVersion = function () {\r\n return this.version;\r\n };\r\n QRCode.prototype.getMaskPattern = function () {\r\n return this.maskPattern;\r\n };\r\n QRCode.prototype.getMatrix = function () {\r\n return this.matrix;\r\n };\r\n /*@Override*/\r\n QRCode.prototype.toString = function () {\r\n var result = new StringBuilder_1.default(); // (200)\r\n result.append('<<\\n');\r\n result.append(' mode: ');\r\n result.append(this.mode ? this.mode.toString() : 'null');\r\n result.append('\\n ecLevel: ');\r\n result.append(this.ecLevel ? this.ecLevel.toString() : 'null');\r\n result.append('\\n version: ');\r\n result.append(this.version ? this.version.toString() : 'null');\r\n result.append('\\n maskPattern: ');\r\n result.append(this.maskPattern.toString());\r\n if (this.matrix) {\r\n result.append('\\n matrix:\\n');\r\n result.append(this.matrix.toString());\r\n }\r\n else {\r\n result.append('\\n matrix: null\\n');\r\n }\r\n result.append('>>\\n');\r\n return result.toString();\r\n };\r\n QRCode.prototype.setMode = function (value) {\r\n this.mode = value;\r\n };\r\n QRCode.prototype.setECLevel = function (value) {\r\n this.ecLevel = value;\r\n };\r\n QRCode.prototype.setVersion = function (version) {\r\n this.version = version;\r\n };\r\n QRCode.prototype.setMaskPattern = function (value /*int*/) {\r\n this.maskPattern = value;\r\n };\r\n QRCode.prototype.setMatrix = function (value) {\r\n this.matrix = value;\r\n };\r\n // Check if \"mask_pattern\" is valid.\r\n QRCode.isValidMaskPattern = function (maskPattern /*int*/) {\r\n return maskPattern >= 0 && maskPattern < QRCode.NUM_MASK_PATTERNS;\r\n };\r\n QRCode.NUM_MASK_PATTERNS = 8;\r\n return QRCode;\r\n}());\r\nexports.default = QRCode;\r\n//# sourceMappingURL=QRCode.js.map","\"use strict\";\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Exception_1 = require(\"./Exception\");\r\n/**\r\n * Custom Error class of type Exception.\r\n */\r\nvar WriterException = /** @class */ (function (_super) {\r\n __extends(WriterException, _super);\r\n function WriterException() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return WriterException;\r\n}(Exception_1.default));\r\nexports.default = WriterException;\r\n//# sourceMappingURL=WriterException.js.map","\"use strict\";\r\n/*\r\n * Copyright 2008 ZXing authors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*namespace com.google.zxing.oned {*/\r\nvar BarcodeFormat_1 = require(\"../BarcodeFormat\");\r\nvar Code39Reader_1 = require(\"./Code39Reader\");\r\nvar Code128Reader_1 = require(\"./Code128Reader\");\r\nvar RSS14Reader_1 = require(\"./rss/RSS14Reader\");\r\nvar DecodeHintType_1 = require(\"../DecodeHintType\");\r\nvar ITFReader_1 = require(\"./ITFReader\");\r\nvar MultiFormatUPCEANReader_1 = require(\"./MultiFormatUPCEANReader\");\r\nvar NotFoundException_1 = require(\"../NotFoundException\");\r\nvar OneDReader_1 = require(\"./OneDReader\");\r\n/**\r\n * @author Daniel Switkin \r\n * @author Sean Owen\r\n */\r\nvar MultiFormatOneDReader = /** @class */ (function (_super) {\r\n __extends(MultiFormatOneDReader, _super);\r\n function MultiFormatOneDReader(hints) {\r\n var _this = _super.call(this) || this;\r\n _this.readers = [];\r\n var possibleFormats = !hints ? null : hints.get(DecodeHintType_1.default.POSSIBLE_FORMATS);\r\n var useCode39CheckDigit = hints && hints.get(DecodeHintType_1.default.ASSUME_CODE_39_CHECK_DIGIT) !== undefined;\r\n if (possibleFormats) {\r\n if (possibleFormats.includes(BarcodeFormat_1.default.EAN_13) ||\r\n possibleFormats.includes(BarcodeFormat_1.default.EAN_8)) {\r\n _this.readers.push(new MultiFormatUPCEANReader_1.default(hints));\r\n }\r\n // if (possibleFormats.includes(BarcodeFormat.EAN_13) ||\r\n // possibleFormats.includes(BarcodeFormat.UPC_A) ||\r\n // possibleFormats.includes(BarcodeFormat.EAN_8) ||\r\n // possibleFormats.includes(BarcodeFormat.UPC_E)) {\r\n // readers.push(new MultiFormatUPCEANReader(hints));\r\n // }\r\n if (possibleFormats.includes(BarcodeFormat_1.default.CODE_39)) {\r\n _this.readers.push(new Code39Reader_1.default(useCode39CheckDigit));\r\n }\r\n // if (possibleFormats.includes(BarcodeFormat.CODE_93)) {\r\n // this.readers.push(new Code93Reader());\r\n // }\r\n if (possibleFormats.includes(BarcodeFormat_1.default.CODE_128)) {\r\n _this.readers.push(new Code128Reader_1.default());\r\n }\r\n if (possibleFormats.includes(BarcodeFormat_1.default.ITF)) {\r\n _this.readers.push(new ITFReader_1.default());\r\n }\r\n // if (possibleFormats.includes(BarcodeFormat.CODABAR)) {\r\n // this.readers.push(new CodaBarReader());\r\n // }\r\n if (possibleFormats.includes(BarcodeFormat_1.default.RSS_14)) {\r\n _this.readers.push(new RSS14Reader_1.default());\r\n }\r\n // if (possibleFormats.includes(BarcodeFormat.RSS_EXPANDED)) {\r\n // this.readers.push(new RSSExpandedReader());\r\n // }\r\n }\r\n if (_this.readers.length === 0) {\r\n // this.readers.push(new MultiFormatUPCEANReader(hints));\r\n _this.readers.push(new Code39Reader_1.default());\r\n // this.readers.push(new CodaBarReader());\r\n // this.readers.push(new Code93Reader());\r\n _this.readers.push(new MultiFormatUPCEANReader_1.default(hints));\r\n _this.readers.push(new Code128Reader_1.default());\r\n _this.readers.push(new ITFReader_1.default());\r\n _this.readers.push(new RSS14Reader_1.default());\r\n // this.readers.push(new RSSExpandedReader());\r\n }\r\n return _this;\r\n }\r\n // @Override\r\n MultiFormatOneDReader.prototype.decodeRow = function (rowNumber, row, hints) {\r\n for (var i = 0; i < this.readers.length; i++) {\r\n try {\r\n return this.readers[i].decodeRow(rowNumber, row, hints);\r\n }\r\n catch (re) {\r\n // continue\r\n }\r\n }\r\n throw new NotFoundException_1.default();\r\n };\r\n // @Override\r\n MultiFormatOneDReader.prototype.reset = function () {\r\n this.readers.forEach(function (reader) { return reader.reset(); });\r\n };\r\n return MultiFormatOneDReader;\r\n}(OneDReader_1.default));\r\nexports.default = MultiFormatOneDReader;\r\n//# sourceMappingURL=MultiFormatOneDReader.js.map","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the