@nethesis/phone-island 1.1.3 → 1.1.5-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/App.js.map +1 -1
- package/dist/components/AlertView/index.js.map +1 -1
- package/dist/components/AudioBars.js.map +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
- package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
- package/dist/components/AudioPlayerView/Progress.js.map +1 -1
- package/dist/components/AudioPlayerView/index.js +1 -1
- package/dist/components/AudioPlayerView/index.js.map +1 -1
- package/dist/components/CallView/Actions.js +1 -1
- package/dist/components/CallView/Actions.js.map +1 -1
- package/dist/components/CallView/BackCall.js +1 -1
- package/dist/components/CallView/BackCall.js.map +1 -1
- package/dist/components/CallView/DeviceIcon.js +1 -1
- package/dist/components/CallView/DeviceIcon.js.map +1 -1
- package/dist/components/CallView/DisplayName.js +1 -1
- package/dist/components/CallView/DisplayName.js.map +1 -1
- package/dist/components/CallView/DisplayNameUtils.js.map +1 -1
- package/dist/components/CallView/Number.js +1 -1
- package/dist/components/CallView/Number.js.map +1 -1
- package/dist/components/CallView/NumberPopover.js +1 -1
- package/dist/components/CallView/NumberPopover.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/ConferenceView/ConferenceUsersList.js +1 -1
- package/dist/components/ConferenceView/ConferenceUsersList.js.map +1 -1
- package/dist/components/ConferenceView/index.js +1 -1
- package/dist/components/ConferenceView/index.js.map +1 -1
- package/dist/components/ContactView/ContactListView.js +1 -1
- package/dist/components/ContactView/ContactListView.js.map +1 -1
- package/dist/components/ContactView/SelectContactNumberView.js +1 -1
- package/dist/components/ContactView/SelectContactNumberView.js.map +1 -1
- package/dist/components/ContactView/TransferActions.js +1 -1
- package/dist/components/ContactView/TransferActions.js.map +1 -1
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/KeypadView/index.js +1 -1
- package/dist/components/KeypadView/index.js.map +1 -1
- package/dist/components/OperatorBusyView/index.js +1 -1
- package/dist/components/OperatorBusyView/index.js.map +1 -1
- package/dist/components/PhysicalRecorderView/index.js +1 -1
- package/dist/components/PhysicalRecorderView/index.js.map +1 -1
- package/dist/components/RecorderView/Actions.js +1 -1
- package/dist/components/RecorderView/Actions.js.map +1 -1
- package/dist/components/RecorderView/BarsGroup.js.map +1 -1
- package/dist/components/RecorderView/index.js +1 -1
- package/dist/components/RecorderView/index.js.map +1 -1
- package/dist/components/SettingsView/AudioView.js +1 -1
- package/dist/components/SettingsView/AudioView.js.map +1 -1
- package/dist/components/SettingsView/MicrophoneView.js +1 -1
- package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
- package/dist/components/SettingsView/SettingsHeader.js +1 -1
- package/dist/components/SettingsView/SettingsHeader.js.map +1 -1
- package/dist/components/SettingsView/ThemeView.js +1 -1
- package/dist/components/SettingsView/ThemeView.js.map +1 -1
- package/dist/components/SettingsView/index.js +1 -1
- package/dist/components/SettingsView/index.js.map +1 -1
- package/dist/components/SideView/SideView.js +1 -1
- package/dist/components/SideView/SideView.js.map +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
- package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/SwitchDeviceView/index.js +1 -1
- package/dist/components/SwitchDeviceView/index.js.map +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js +1 -1
- package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
- package/dist/components/SwitchInputView/Index.js +1 -1
- package/dist/components/TextScroll.js +1 -1
- package/dist/components/TextScroll.js.map +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
- package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
- package/dist/components/VideoStreamingEmptyState/index.js +1 -1
- package/dist/components/VideoStreamingEmptyState/index.js.map +1 -1
- package/dist/components/VideoStreamingSkeleton/index.js +1 -1
- package/dist/components/VideoStreamingSkeleton/index.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/SocketEvents.js.map +1 -1
- package/dist/lib/i18n.js +1 -1
- package/dist/lib/i18n.js.map +1 -1
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/phone/counterpartDevice.js +1 -1
- package/dist/lib/phone/counterpartDevice.js.map +1 -1
- package/dist/lib/phone/screenShare.js +2 -0
- package/dist/lib/phone/screenShare.js.map +1 -0
- package/dist/lib/phone/video.js.map +1 -1
- package/dist/lib/player/audio.js.map +1 -1
- package/dist/lib/user/default_device.js.map +1 -1
- package/dist/lib/user/extensions.js.map +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/island.js.map +1 -1
- package/dist/models/player.js +1 -1
- package/dist/models/player.js.map +1 -1
- package/dist/node_modules/classnames/index.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
- package/dist/node_modules/i18next/dist/esm/i18next.js +1 -1
- package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js +1 -1
- package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/utils/notify-inspector.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/notify-inspector.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-start-time.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-start-time.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/TransformAnimation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/TransformAnimation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/groups.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/transforms/groups.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/needs-mixer.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/needs-mixer.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-pointer-event.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/events/add-pointer-event.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/events/event-info.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/events/event-info.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame-data.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame-data.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/utils/constraints.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/utils/constraints.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/pan/PanSession.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/pan/PanSession.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/round.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/projection/geometry/round.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/node/root.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/projection/node/root.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/default-scale-correctors.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/default-scale-correctors.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/scope/active.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/scope/active.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/stats/buffer.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/stats/buffer.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/distance.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/is-ref-object.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js.map +1 -1
- package/dist/node_modules/motion-dom/dist/es/value/utils/as-number.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/utils/as-number.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js +1 -1
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/context.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/defaults.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/unescape.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/unescape.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -1
- package/dist/node_modules/react-i18next/dist/es/utils.js +1 -1
- package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +1 -1
- package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/services/astproxy.js +1 -1
- package/dist/services/astproxy.js.map +1 -1
- package/dist/services/phonebook.js +1 -1
- package/dist/services/phonebook.js.map +1 -1
- package/dist/utils/customHooks/useLocalStorage.js.map +1 -1
- package/dist/utils/deviceUtils.js.map +1 -1
- package/package.json +6 -6
- package/dist/_virtual/arrayLikeToArray.js +0 -2
- package/dist/_virtual/arrayLikeToArray.js.map +0 -1
- package/dist/_virtual/arrayWithHoles.js +0 -2
- package/dist/_virtual/arrayWithHoles.js.map +0 -1
- package/dist/_virtual/classCallCheck.js +0 -2
- package/dist/_virtual/classCallCheck.js.map +0 -1
- package/dist/_virtual/createClass.js +0 -2
- package/dist/_virtual/createClass.js.map +0 -1
- package/dist/_virtual/defineProperty.js +0 -2
- package/dist/_virtual/defineProperty.js.map +0 -1
- package/dist/_virtual/iterableToArrayLimit.js +0 -2
- package/dist/_virtual/iterableToArrayLimit.js.map +0 -1
- package/dist/_virtual/nonIterableRest.js +0 -2
- package/dist/_virtual/nonIterableRest.js.map +0 -1
- package/dist/_virtual/objectWithoutProperties.js +0 -2
- package/dist/_virtual/objectWithoutProperties.js.map +0 -1
- package/dist/_virtual/objectWithoutPropertiesLoose.js +0 -2
- package/dist/_virtual/objectWithoutPropertiesLoose.js.map +0 -1
- package/dist/_virtual/slicedToArray.js +0 -2
- package/dist/_virtual/slicedToArray.js.map +0 -1
- package/dist/_virtual/toPrimitive.js +0 -2
- package/dist/_virtual/toPrimitive.js.map +0 -1
- package/dist/_virtual/toPropertyKey.js +0 -2
- package/dist/_virtual/toPropertyKey.js.map +0 -1
- package/dist/_virtual/typeof.js +0 -2
- package/dist/_virtual/typeof.js.map +0 -1
- package/dist/_virtual/unsupportedIterableToArray.js +0 -2
- package/dist/_virtual/unsupportedIterableToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/arrayWithHoles.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/createClass.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/createClass.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/toArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/nonIterableRest.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutProperties.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/slicedToArray.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/typeof.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/typeof.js.map +0 -1
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -2
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js +0 -2
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +0 -1
- package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs.js.map +0 -1
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js +0 -2
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js.map +0 -1
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js +0 -2
- package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js.map +0 -1
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js +0 -2
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js.map +0 -1
- package/dist/node_modules/void-elements/index.js +0 -2
- package/dist/node_modules/void-elements/index.js.map +0 -1
- /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/utils/distance.mjs.js +0 -0
- /package/dist/node_modules/{framer-motion → motion-dom}/dist/es/utils/is-ref-object.mjs.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18next.js","sources":["../../../../../node_modules/i18next/dist/esm/i18next.js"],"sourcesContent":["import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Logger);\n this.init(concreteLogger, options);\n }\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread$6(_objectSpread$6({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n return Logger;\n}();\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n this.observers = {};\n }\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n current = current[paths[i]];\n }\n return current;\n}\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n var _super = _createSuper$3(ResourceStore);\n function ResourceStore(data) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n _classCallCheck(this, ResourceStore);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.data = data || {};\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n return _this;\n }\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$5(_objectSpread$5({}, pack), resources);\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$5(_objectSpread$5({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n var _super = _createSuper$2(Translator);\n function Translator(services) {\n var _this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Translator);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (_typeof(options) === 'object') options = _objectSpread$4({}, options);\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: \"\".concat(namespace).concat(nsSeparator).concat(key),\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace\n };\n }\n return key;\n }\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$4(_objectSpread$4({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$4(_objectSpread$4({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$4(_objectSpread$4({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n _this2.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$4(_objectSpread$4({}, options), {\n interpolation: _objectSpread$4(_objectSpread$4({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$4(_objectSpread$4({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n return null;\n }\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$4({\n i18nResolved: resolved\n }, options) : options, this);\n }\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n var extracted = _this4.extractFromKey(k, options);\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n var possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n }]);\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n var cleanedLng = _this.formatLanguageCode(code);\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n var lngOnly = _this.getLanguagePartFromCode(code);\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n var addCode = function addCode(c) {\n if (!c) return;\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, PluralResolver);\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction deepFindWithDefaults(data, defaultData, key) {\n var keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n var ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n var path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Interpolator);\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n this.init(options);\n }\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = deepFindWithDefaults(data, defaultData, key, _this.options.keySeparator, _this.options.ignoreJSONStructure);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(deepFindWithDefaults(data, defaultData, k, _this.options.keySeparator, _this.options.ignoreJSONStructure), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n var clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n clonedOptions = _objectSpread$3({}, options);\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n var doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n }]);\n return Interpolator;\n}();\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _classCallCheck(this, Formatter);\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$2(_objectSpread$2({}, opt), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val, opt.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, opt) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$2({}, opt));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng) {\n var _this = this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var formats = _format.split(this.formatSeparator);\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n if (_this.formats[formatName]) {\n var formatted = mem;\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$2(_objectSpread$2(_objectSpread$2({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n return mem;\n }, value);\n return result;\n }\n }]);\n return Formatter;\n}();\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n var _super = _createSuper$1(Connector);\n function Connector(backend, store, services) {\n var _this;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n _classCallCheck(this, Connector);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n return _this;\n }\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(function (n) {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n this.readingCalls++;\n var resolver = function resolver(err, data) {\n _this3.readingCalls--;\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n var fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n var r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return resolver(null, data);\n })[\"catch\"](resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n var clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : function () {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n var opts = _objectSpread$1(_objectSpread$1({}, options), {}, {\n isUpdate: isUpdate\n });\n var fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n var r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(function (data) {\n return clb(null, data);\n })[\"catch\"](clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n var _super = _createSuper(I18n);\n function I18n() {\n var _this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n _classCallCheck(this, I18n);\n _this = _super.call(this);\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n return _this;\n }\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n var defOpts = get();\n this.options = _objectSpread(_objectSpread(_objectSpread({}, defOpts), this.options), transformOptions(options));\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread(_objectSpread({}, defOpts.interpolation), this.options.interpolation);\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n var formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n return _this2;\n };\n });\n var deferred = defer();\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n _this2.emit('initialized', _this2.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n var append = function append(lng) {\n if (!lng) return;\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n _this4.setResolvedLanguage(l);\n };\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n _this4.translator.changeLanguage(l);\n _this4.isLanguageChangingTo = undefined;\n _this4.emit('languageChanged', l);\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector && _this4.services.languageDetector.cacheUserLanguage) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n var fixedT = function fixedT(key, opts) {\n var options;\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread({}, opts);\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(function (k) {\n return \"\".concat(options.keyPrefix).concat(keySeparator).concat(k);\n });\n } else {\n resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n }\n return _this5.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n var lng = options.lng || this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n var deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n var languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, this.options), options), {\n isClone: true\n });\n var clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n return I18n;\n}(EventEmitter);\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar dir = instance.dir;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n"],"names":["ownKeys$6","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread$6","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","consoleLogger","type","log","args","this","output","warn","error","console","baseLogger","Logger","concreteLogger","options","undefined","_classCallCheck","init","_createClass","value","prefix","logger","debug","bool","_len","Array","_key","forward","_len2","_key2","_len3","_key3","_len4","_key4","lvl","debugOnly","concat","moduleName","EventEmitter","observers","events","listener","_this","split","event","l","observer","defer","res","rej","promise","Promise","resolve","reject","makeString","getLastOfPath","path","Empty","cleanKey","indexOf","replace","canNotTraverseDeeper","stack","shift","prototype","hasOwnProperty","call","obj","k","setPath","newValue","_getLastOfPath","getPath","_getLastOfPath3","deepExtend","overwrite","prop","String","regexEscape","str","_entityMap","escape","data","s","isIE10","window","navigator","userAgentData","userAgent","chars","deepFind","keySeparator","paths","current","j","p","slice","join","mix","endsWith","joinedPath","ownKeys$5","_objectSpread$5","_createSuper$3","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct$3","result","Super","_getPrototypeOf","NewTarget","constructor","_possibleConstructorReturn","ResourceStore","_EventEmitter","_inherits","_super","ns","defaultNS","_assertThisInitialized","ignoreJSONStructure","index","splice","lng","silent","addNamespaces","emit","resources","m","toString","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","find","v","postProcessor","processors","addPostProcessor","module","name","handle","translator","processor","process","ownKeys$4","_objectSpread$4","_createSuper$2","_isNativeReflectConstruct$2","checkedLoadedFor","Translator","services","a","t","copy","create","language","interpolation","resolved","nsSeparator","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","c","r","RegExp","map","matched","test","ki","substring","looksLikeObjectPath","match","interpolator","nestingRegexp","parts","lastKey","_this2","_typeof","overloadTranslationOptionHandler","isArray","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","resUsedKey","resExactUsedKey","resType","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValue","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","parse","defaultVariables","skipInterpolation","nestBef","skipOnVariables","nb","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","hasLoadedNamespace","code","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","pop","returnNull","returnEmptyString","resourceStore","option","capitalize","string","charAt","toUpperCase","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","n","Number","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","PluralResolver","rules","compatibilityJSON","Intl","PluralRules","set","numbers","plurals","_unused","rule","getRule","resolvedOptions","pluralCategories","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","number","select","getSuffixRetroCompatible","idx","noAbs","Math","abs","simplifyPluralSuffix","returnSuffix","includes","ownKeys$3","_objectSpread$3","deepFindWithDefaults","defaultData","getPathWithDefaults","Interpolator","format","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","val","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","regex","safeValue","todo","exec","matchedVar","temp","lastIndex","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","JSON","formatters","doReduce","elem","reduce","ownKeys$2","_objectSpread$2","createCachedFormatter","fn","cache","stringify","formatter","Formatter","formats","opt","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","_opt$split","_opt$split2","_toArray","isNaN","parseInt","parseFormatStr","formatted","valOptions","formatParams","locale","ownKeys$1","_objectSpread$1","_createSuper$1","_isNativeReflectConstruct$1","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","state","queue","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","err","addResourceBundle","q","_getLastOfPath2","removePending","done","loadedKeys","fcName","tried","wait","resolver","next","read","setTimeout","bind","then","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","clb","opts","get","initImmediate","preload","partialBundledLanguages","ret","tDescription","transformOptions","ownKeys","_objectSpread","_createSuper","_isNativeReflectConstruct","noop","I18n","inst","modules","external","getOwnPropertyNames","getPrototypeOf","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","on","languageDetector","detection","_this2$store","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","resolvedLanguage","setResolvedLanguage","Error","li","lngInLngs","hasLanguageSomeTranslations","isLanguageChangingTo","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","rest","resultKey","_this$translator","_this$translator2","exists","_this6","lastLng","loadNotPending","loadState","precheck","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","clone","instance","createInstance","dir","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"i18next.js","sources":["../../../../../node_modules/i18next/dist/esm/i18next.js"],"sourcesContent":["const isString = obj => typeof obj === 'string';\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return String(object);\n};\nconst isSafeLanguageCode = code => isString(code) && /^[A-Za-z0-9_@.-]{1,128}$/.test(code) && !code.includes('..') && !['__proto__', 'constructor', 'prototype'].includes(code);\nconst callbackApiOf = plugin => plugin?.callbackApi ?? plugin?.constructor?.callbackApi;\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.includes('###') ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || isString(object);\nconst getLastOfPath = (object, path, Empty) => {\n const stack = !isString(path) ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last?.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n if (!Object.prototype.hasOwnProperty.call(obj, k)) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n if (isString(target[prop]) || target[prop] instanceof String || isString(source[prop]) || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nconst _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nconst escape = data => {\n if (isString(data)) {\n return data.replace(/[&<>\"']/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => !nsSeparator.includes(c) && !keySeparator.includes(c));\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = (obj, path, keySeparator = '.') => {\n if (!obj) return undefined;\n if (obj[path]) {\n if (!Object.prototype.hasOwnProperty.call(obj, path)) return undefined;\n return obj[path];\n }\n if (!keySeparator) {\n return Object.prototype.hasOwnProperty.call(obj, path) ? obj[path] : undefined;\n }\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if ((typeof next === 'function' || nextPath === '__proto__') && !Object.prototype.hasOwnProperty.call(current, nextPath)) {\n next = undefined;\n }\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].includes(typeof next) && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => code?.replace(/_/g, '-');\n\nconst consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n console?.[type]?.apply?.(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger, options = {}) {\n this.init(concreteLogger, options);\n }\n init(concreteLogger, options = {}) {\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n this.seen = new Set();\n }\n log(...args) {\n return this.forward(args, 'log', '', true);\n }\n warn(...args) {\n return this.forward(args, 'warn', '', true);\n }\n error(...args) {\n return this.forward(args, 'error', '');\n }\n deprecate(...args) {\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n once(key, lvl, ...args) {\n if (!this.debug || this.seen.has(key) || this.seen.size >= 1000) return null;\n this.seen.add(key);\n return this[lvl](...args);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n args = args.map(a => isString(a) ? a.replace(/[\\r\\n\\x00-\\x1F\\x7F]/g, ' ') : a);\n if (isString(args[0])) args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(events, listener) {\n (typeof events === 'string' ? events.split(' ') : [events]).forEach(event => {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n });\n }\n once(event, listener) {\n const wrapper = (...args) => {\n listener(...args);\n this.off(event, wrapper);\n };\n this.on(event, wrapper);\n return this;\n }\n emit(event, ...args) {\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(([observer, numTimesAdded]) => {\n for (let i = 0; i < numTimesAdded; i++) {\n observer(event, ...args);\n }\n });\n }\n }\n}\n\nconst nonEmptyBundles = new WeakSet();\nconst assertSeparateArguments = (method, ...args) => {\n if (args.some(a => !isString(a))) {\n throw new TypeError(`${method}: pass language, namespace${method === 'addResource' ? ' and key' : ''} as separate strings; the dotted form ('en.translation.key') was removed in i18next v27`);\n }\n};\nclass ResourceStore extends EventEmitter {\n constructor(data, options = {\n ns: ['translation'],\n defaultNS: 'translation'\n }, logger = baseLogger) {\n super();\n this.data = data || {};\n this.options = options;\n this.logger = logger.create('resourceStore');\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (!this.options.ns.includes(ns)) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key, options = {}) {\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n const path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (isString(key) && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n const result = getPath(this.data, path);\n if (result != null || !ignoreJSONStructure || !isString(key)) return result;\n return deepFind(this.data?.[lng]?.[ns], key, keySeparator);\n }\n addResource(lng, ns, key, value, options = {\n silent: false\n }) {\n assertSeparateArguments('addResource', lng, ns, key);\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources, options = {\n silent: false\n }) {\n assertSeparateArguments('addResources', lng, ns);\n Object.keys(resources || {}).forEach(m => {\n if (m === '__proto__' || m === 'constructor') return;\n this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n });\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite, options = {\n silent: false,\n skipCopy: false\n }) {\n assertSeparateArguments('addResourceBundle', lng, ns);\n const path = [lng, ns];\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => {\n const bundle = data[v];\n if (nonEmptyBundles.has(bundle)) return true;\n if (!bundle || Object.keys(bundle).length === 0) return false;\n if (typeof bundle === 'object') nonEmptyBundles.add(bundle);\n return true;\n });\n }\n toJSON() {\n return this.data;\n }\n}\n\nconst PATH_KEY = Symbol('i18next/PATH_KEY');\nfunction createProxy() {\n const state = [];\n const handler = Object.create(null);\n let proxy;\n handler.get = (target, key) => {\n proxy?.revoke?.();\n if (key === PATH_KEY) return state;\n state.push(key);\n proxy = Proxy.revocable(target, handler);\n return proxy.proxy;\n };\n return Proxy.revocable(Object.create(null), handler).proxy;\n}\nfunction keysFromSelector(selector, opts) {\n const {\n [PATH_KEY]: path\n } = selector(createProxy());\n const keySeparator = opts?.keySeparator || '.';\n const nsSeparator = opts?.nsSeparator ?? ':';\n const strict = opts?.enableSelector === 'strict';\n if (path.length > 1 && nsSeparator) {\n const ns = opts?.ns;\n const nsList = strict ? Array.isArray(ns) ? ns : ns ? [ns] : null : Array.isArray(ns) ? ns : null;\n if (nsList) {\n const candidates = strict ? nsList : nsList.length > 1 ? nsList.slice(1) : [];\n if (candidates.includes(path[0])) {\n return `${path[0]}${nsSeparator}${path.slice(1).join(keySeparator)}`;\n }\n }\n }\n return path.join(keySeparator);\n}\n\nconst shouldHandleAsObject = res => !isString(res) && typeof res !== 'boolean' && typeof res !== 'number';\nclass Translator extends EventEmitter {\n constructor(services, options = {}) {\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils', 'postProcessors'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = (services.logger || baseLogger).create('translator');\n this.checkedLoadedFor = {};\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key, o = {\n interpolation: {}\n }) {\n const opt = {\n ...o\n };\n if (key == null) return false;\n const resolved = this.resolve(key, opt);\n if (resolved?.res === undefined) return false;\n const isObject = shouldHandleAsObject(resolved.res);\n if (opt.returnObjects === false && isObject) {\n return false;\n }\n return true;\n }\n extractFromKey(key, opt) {\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n let namespaces = opt.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.includes(nsSeparator);\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !opt.keySeparator && !this.options.userDefinedNsSeparator && !opt.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.includes(parts[0])) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n return {\n key,\n namespaces: isString(namespaces) ? [namespaces] : namespaces\n };\n }\n translate(keys, o, lastKey) {\n let opt = typeof o === 'object' ? {\n ...o\n } : o;\n if (typeof opt !== 'object' && this.options.overloadTranslationOptionHandler) {\n opt = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof opt === 'object') opt = {\n ...opt\n };\n if (!opt) opt = {};\n if (keys == null) return '';\n if (typeof keys === 'function') keys = keysFromSelector(keys, {\n ...this.options,\n ...opt\n });\n if (!Array.isArray(keys)) keys = [String(keys)];\n keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : String(k));\n const returnDetails = opt.returnDetails !== undefined ? opt.returnDetails : this.options.returnDetails;\n const keySeparator = opt.keySeparator !== undefined ? opt.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], opt);\n const namespace = namespaces[namespaces.length - 1];\n let nsSeparator = opt.nsSeparator !== undefined ? opt.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const lng = opt.lng || this.language;\n const appendNamespaceToCIMode = opt.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng?.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(opt)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, opt);\n let res = resolved?.res;\n const resUsedKey = resolved?.usedKey || key;\n const resExactUsedKey = resolved?.exactUsedKey || key;\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = opt.joinArrays !== undefined ? opt.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const hasDefaultValue = Translator.hasDefaultValue(opt);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, opt) : '';\n const defaultValueSuffixOrdinalFallback = opt.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, opt.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const defaultValue = needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] || opt[`defaultValue${defaultValueSuffix}`] || opt[`defaultValue${defaultValueSuffixOrdinalFallback}`] || opt.defaultValue;\n let resForObjHndl = res;\n if (handleAsObjectInI18nFormat && !res && hasDefaultValue) {\n resForObjHndl = defaultValue;\n }\n const handleAsObject = shouldHandleAsObject(resForObjHndl);\n const resType = Object.prototype.toString.apply(resForObjHndl);\n const isObjectHit = handleAsObjectInI18nFormat && resForObjHndl && handleAsObject && !noObject.includes(resType) && !(isString(joinArrays) && Array.isArray(resForObjHndl));\n const objectNotReturned = isObjectHit && !opt.returnObjects && !this.options.returnObjects;\n if (objectNotReturned && this.options.returnedObjectHandler) {\n const r = this.options.returnedObjectHandler(resUsedKey, resForObjHndl, {\n ...opt,\n ns: namespaces\n });\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return r;\n }\n if (objectNotReturned) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n if (isObjectHit && !objectNotReturned) {\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(resForObjHndl);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in resForObjHndl) {\n if (Object.prototype.hasOwnProperty.call(resForObjHndl, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n if (hasDefaultValue && !res) {\n copy[m] = this.translate(deepKey, {\n ...opt,\n defaultValue: shouldHandleAsObject(defaultValue) ? defaultValue[m] : undefined,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n } else {\n copy[m] = this.translate(deepKey, {\n ...opt,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n }\n if (copy[m] === deepKey) copy[m] = resForObjHndl[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && isString(joinArrays) && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n if (objectNotReturned) res = undefined;\n if (!this.isValidLookup(res) && hasDefaultValue && !(objectNotReturned && shouldHandleAsObject(defaultValue))) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res) && !(usedDefault && res === '')) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = opt.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (!objectNotReturned && (usedKey || usedDefault || updateMissing)) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, needsPluralHandling && !updateMissing ? `${key}${this.pluralResolver.getSuffix(lng, opt.count, opt)}` : key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...opt,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, opt.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(opt.lng || this.language);\n } else {\n lngs.push(opt.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, opt);\n } else if (this.backendConnector?.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, opt, undefined, this.utils?.hasLoadedNamespace);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, opt);\n if (needsZeroSuffixLookup && opt[`defaultValue${this.options.pluralSeparator}zero`] && !suffixes.includes(`${this.options.pluralSeparator}zero`)) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, opt[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, opt, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) {\n res = `${namespace}${nsSeparator}${key}`;\n }\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}${nsSeparator}${key}` : key, usedDefault ? res : undefined, opt);\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(opt);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, opt, resolved, lastKey) {\n if (this.i18nFormat?.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...opt\n }, opt.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!opt.skipInterpolation) {\n if (opt.interpolation) this.interpolator.init({\n ...opt,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...opt.interpolation\n }\n }\n });\n const skipOnVariables = isString(res) && (opt?.interpolation?.skipOnVariables !== undefined ? opt.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = opt.replace && !isString(opt.replace) ? opt.replace : opt;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, opt.lng || this.language || resolved.usedLng, opt);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) opt.nest = false;\n }\n if (!opt.lng && resolved && resolved.res) opt.lng = this.language || resolved.usedLng;\n if (opt.nest !== false) res = this.interpolator.nest(res, (...args) => {\n if (lastKey?.[0] === args[0] && !opt.context) {\n this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return this.translate(...args, key);\n }, opt);\n if (opt.interpolation) this.interpolator.reset();\n }\n const postProcess = opt.postProcess || this.options.postProcess;\n const postProcessorNames = isString(postProcess) ? [postProcess] : postProcess;\n if (res != null && postProcessorNames?.length && opt.applyPostProcessor !== false) {\n const ppOptions = this.options?.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(opt)\n },\n ...opt\n } : opt;\n postProcessorNames.forEach(name => {\n const processor = this.postProcessors?.[name];\n if (!processor) {\n this.logger.once(`postProcess:${name}`, 'warn', `postProcess: '${name}' is not registered on this i18next instance; call use() with it on this instance`);\n return;\n }\n res = processor.process(res, key, ppOptions, this) ?? res;\n });\n }\n return res;\n }\n resolve(keys, opt = {}) {\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (isString(keys)) keys = [keys];\n if (Array.isArray(keys)) keys = keys.map(k => typeof k === 'function' ? keysFromSelector(k, {\n ...this.options,\n ...opt\n }) : k);\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, opt);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = opt.count !== undefined && !isString(opt.count);\n const needsZeroSuffixLookup = needsPluralHandling && !opt.ordinal && opt.count === 0;\n const needsContextHandling = opt.context !== undefined && (isString(opt.context) || typeof opt.context === 'number') && opt.context !== '';\n const codes = opt.lngs ? opt.lngs : this.languageUtils.toResolveHierarchy(opt.lng || this.language, opt.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!this.checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(usedNS)) {\n this.checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat?.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, opt);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, opt.count, opt);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(key + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator || '_'}${opt.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n if (opt.ordinal && pluralSuffix.startsWith(ordinalPrefix)) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n finalKeys.push(contextKey + pluralSuffix);\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, opt);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key, options = {}) {\n if (this.i18nFormat?.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails(options = {}) {\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && !isString(options.replace);\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data = {\n ...data,\n count: options.count\n };\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && option.startsWith(prefix) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nclass LanguageUtil {\n constructor(options, logger = baseLogger) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = logger.create('languageUtils');\n this.resolveHierarchyCache = {};\n this.formattedCodes = new Map();\n }\n clearCache() {\n this.resolveHierarchyCache = {};\n this.formattedCodes.clear();\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || !code.includes('-')) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (!isString(code)) return code;\n let formatted = this.formattedCodes.get(code);\n if (formatted !== undefined) return formatted;\n formatted = this.formatUncached(code);\n if (this.formattedCodes.size >= 1000) this.formattedCodes.clear();\n this.formattedCodes.set(code, formatted);\n return formatted;\n }\n formatUncached(code) {\n const hasSubtags = code.includes('-');\n if (hasSubtags || this.options.cleanCode !== false) {\n let canonical;\n try {\n canonical = Intl.getCanonicalLocales(code)[0];\n } catch (e) {}\n if (canonical && (hasSubtags || canonical.toLowerCase() === code.toLowerCase())) {\n return this.options.lowerCaseLng ? canonical.toLowerCase() : canonical;\n }\n if (canonical) return code.toLowerCase();\n }\n return this.options.lowerCaseLng || this.options.cleanCode && !hasSubtags ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.includes(code);\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngScOnly = this.getScriptPartFromCode(code);\n if (this.isSupportedCode(lngScOnly)) return found = lngScOnly;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return true;\n if (!supportedLng.includes('-') && !lngOnly.includes('-')) return false;\n if (supportedLng.includes('-') && !lngOnly.includes('-') && supportedLng.slice(0, supportedLng.indexOf('-')) === lngOnly) return true;\n return false;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (isString(fallbacks)) fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackLng = this.options.fallbackLng;\n const fallbackLngKey = Array.isArray(fallbackLng) ? fallbackLng.join('|') : fallbackLng;\n if (fallbackLngKey !== this._cachedFallbackLng) {\n this.resolveHierarchyCache = {};\n this._cachedFallbackLng = fallbackLngKey;\n }\n const hasCacheableFallback = fallbackCode === undefined || fallbackCode === false || isString(fallbackCode);\n const usesUncacheableOptionsFallback = fallbackCode === undefined && typeof this.options.fallbackLng === 'function';\n const cacheable = isString(code) && hasCacheableFallback && !usesUncacheableOptionsFallback;\n let cacheKey = null;\n if (cacheable) {\n let fallbackCacheKey;\n if (fallbackCode === undefined) fallbackCacheKey = 'undefined';else if (fallbackCode === false) fallbackCacheKey = 'boolean:false';else fallbackCacheKey = `string:${fallbackCode}`;\n cacheKey = `${code.length}:${code}|${fallbackCacheKey}`;\n }\n if (cacheKey !== null) {\n const cached = this.resolveHierarchyCache[cacheKey];\n if (cached !== undefined) return cached.slice();\n }\n const fallbackCodes = this.getFallbackCodes((fallbackCode === false ? [] : fallbackCode) || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (isString(code) && (code.includes('-') || code.includes('_'))) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (isString(code)) {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n const formattedFc = this.formatLanguageCode(fc);\n if (!codes.includes(formattedFc)) addCode(formattedFc);\n });\n if (cacheKey !== null) {\n this.resolveHierarchyCache[cacheKey] = codes;\n return codes.slice();\n }\n return codes;\n }\n}\n\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst dummyRule = {\n select: count => count === 1 ? 'one' : 'other',\n resolvedOptions: () => ({\n pluralCategories: ['one', 'other']\n })\n};\nclass PluralResolver {\n constructor(languageUtils, options = {}, logger = baseLogger) {\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = logger.create('pluralResolver');\n this.pluralRulesCache = {};\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code, options = {}) {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n let rule;\n try {\n rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n } catch (err) {\n if (typeof Intl === 'undefined') {\n this.logger.error('No Intl support, please use an Intl polyfill!');\n return dummyRule;\n }\n if (!code.match(/-|_/)) return dummyRule;\n const lngPart = this.languageUtils.getLanguagePartFromCode(code);\n rule = this.getRule(lngPart, options);\n }\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n }\n needsPlural(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n return rule?.resolvedOptions().pluralCategories.length > 1;\n }\n getPluralFormsOfKey(code, key, options = {}) {\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code, options = {}) {\n let rule = this.getRule(code, options);\n if (!rule) rule = this.getRule('dev', options);\n if (!rule) return [];\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n getSuffix(code, count, options = {}) {\n const rule = this.getRule(code, options);\n if (rule) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return this.getSuffix('dev', count, options);\n }\n}\n\nconst deepFindWithDefaults = (data, defaultData, key, keySeparator = '.', ignoreJSONStructure = true) => {\n let path = getPathWithDefaults(data, defaultData, key);\n if (path == null && ignoreJSONStructure && isString(key)) {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nclass Interpolator {\n constructor(options = {}, logger = baseLogger) {\n this.logger = logger.create('interpolator');\n this.options = options;\n this.format = options?.interpolation?.format || (value => value);\n this.init(options);\n }\n init(options = {}) {\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n suffix,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingSuffix,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : '{{';\n this.suffix = suffix ? regexEscape(suffix) : '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix ? regexEscape(unescapePrefix) : '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix ? regexEscape(unescapeSuffix) : '';\n this.nestingPrefix = regexEscape(nestingPrefix || '$t(');\n this.nestingSuffix = regexEscape(nestingSuffix || ')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp?.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}((?:[^()\"']|\"[^\"]*\"|'[^']*'|\\\\((?:[^()\"']|\"[^\"]*\"|'[^']*')*\\\\))*?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const original = str;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (!key.includes(this.formatSeparator)) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n if (!this.escapeValue && typeof str === 'string' && /\\$t\\([^)]*\\{[^}]*\\{\\{/.test(str)) {\n this.logger.warn('nesting options string contains interpolated variables with escapeValue: false — ' + 'if any of those values are attacker-controlled they can inject additional ' + 'nesting options (e.g. redirect lng/ns). Sanitise untrusted input before passing ' + 'it to t(), or keep escapeValue: true.');\n }\n const missingInterpolationHandler = options?.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options?.interpolation?.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => val\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? this.escape(val) : val\n }];\n const unescapedValues = [];\n let shift = 0;\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const at = match.index - shift;\n const written = unescapedValues.find(([start, end]) => at >= start && at < end);\n if (written) {\n todo.regex.lastIndex = written[1] + shift;\n continue;\n }\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = isString(temp) ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n if (this.logger.debug) {\n this.logger.once(`${original}\\u0000${match[0]}`, 'warn', `missed to pass in variable ${matchedVar} for interpolating ${original}`);\n }\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (!isString(value) && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = makeString(todo.safeValue(value));\n str = str.slice(0, match.index) + safeValue + str.slice(match.index + match[0].length);\n if (skipOnVariables) {\n if (todo.regex === this.regexpUnescape) {\n unescapedValues.push([match.index, match.index + safeValue.length]);\n } else {\n shift += safeValue.length - match[0].length;\n }\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc, options = {}) {\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (!key.includes(sep)) return key;\n const c = key.split(new RegExp(`${regexEscape(sep)}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if ((matchedSingleQuotes?.length ?? 0) % 2 === 0 && !matchedDoubleQuotes || (matchedDoubleQuotes?.length ?? 0) % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.includes(this.prefix)) delete clonedOptions.defaultValue;\n return key;\n };\n const nestingRegexp = new RegExp(this.nestingRegexp);\n let out = '';\n let lastEnd = 0;\n while (match = nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && !isString(clonedOptions.replace) ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n const keyEndIndex = /{.*}/s.test(match[1]) ? match[1].lastIndexOf('}') + 1 : match[1].indexOf(this.formatSeparator);\n if (keyEndIndex !== -1) {\n formatters = match[1].slice(keyEndIndex).split(this.formatSeparator).map(elem => elem.trim()).filter(Boolean);\n match[1] = match[1].slice(0, keyEndIndex);\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && !isString(value)) return value;\n if (!isString(value)) value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (formatters.length) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n out += str.slice(lastEnd, match.index) + makeString(value);\n lastEnd = nestingRegexp.lastIndex;\n this.regexp.lastIndex = 0;\n }\n return lastEnd ? out + str.slice(lastEnd) : str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.includes('(')) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].slice(0, -1);\n if (formatName === 'currency' && !optStr.includes(':')) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && !optStr.includes(':')) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst cachedFormattersLimit = 1000;\nconst createCachedFormatter = fn => {\n const cache = new Map();\n return (v, l, o) => {\n let optForCache = o;\n if (o && o.interpolationkey && o.formatParams && o.formatParams[o.interpolationkey] && o[o.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [o.interpolationkey]: undefined\n };\n }\n let key;\n try {\n key = l + JSON.stringify(optForCache);\n } catch (e) {\n return fn(getCleanedCode(l), o)(v);\n }\n let frm = cache.get(key);\n if (!frm) {\n frm = fn(getCleanedCode(l), o);\n if (cache.size >= cachedFormattersLimit) cache.delete(cache.keys().next().value);\n cache.set(key, frm);\n }\n return frm(v);\n };\n};\nconst createNonCachedFormatter = fn => (v, l, o) => fn(getCleanedCode(l), o)(v);\nclass Formatter {\n constructor(options = {}) {\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.init(options);\n }\n init(services, options = {\n interpolation: {}\n }) {\n if (services?.logger?.create) this.logger = services.logger.create('formatter');\n this.formatSeparator = options.interpolation.formatSeparator || ',';\n const cf = options.cacheInBuiltFormats ? createCachedFormatter : createNonCachedFormatter;\n this.formats = {\n number: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: cf((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: cf((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: cf((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: cf((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng, options = {}) {\n if (!format) return value;\n if (value == null) return value;\n const rawFormats = format.split(this.formatSeparator);\n const formats = [];\n for (let i = 0; i < rawFormats.length; i++) {\n let f = rawFormats[i];\n while (f.indexOf('(') > -1 && !f.includes(')') && i + 1 < rawFormats.length) {\n f = `${f}${this.formatSeparator}${rawFormats[++i]}`;\n }\n formats.push(f);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options?.formatParams?.[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services, options = {}) {\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = (services.logger || baseLogger).create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n this.backend?.init?.(services, options.backend, options);\n this.callbackApi = callbackApiOf(this.backend);\n if (this.backend && this.callbackApi === undefined && (this.backend.read || this.backend.create)) {\n this.logger.deprecate('backend: set callbackApi to declare the calling convention (true: read(language, namespace, callback) and create(languages, namespace, key, fallbackValue, callback, options); false: both return a promise or a value); guessing it from the number of parameters is deprecated');\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (!options.reload && this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName, tried = 0, wait = this.retryTimeout, callback) {\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read(lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (this.callbackApi === false || this.callbackApi === undefined && fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces, options = {}, callback) {\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (isString(languages)) languages = this.languageUtils.toResolveHierarchy(languages);\n if (isString(namespaces)) namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name, prefix = '') {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate, options = {}, clb = () => {}, hasLoadedNamespace = this.newestCloneHasLoadedNamespace || this.services?.utils?.hasLoadedNamespace) {\n if (hasLoadedNamespace && !hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend?.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (this.callbackApi === false || this.callbackApi === undefined && fc.length < 6) {\n try {\n let r;\n if (this.callbackApi === false || fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initAsync: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: false,\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n enableSelector: false,\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: false,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (isString(args[1])) ret.defaultValue = args[1];\n if (isString(args[2])) ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n },\n cacheInBuiltFormats: true\n});\nconst transformOptions = options => {\n if (isString(options.ns)) options.ns = [options.ns];\n if (isString(options.fallbackLng)) options.fallbackLng = [options.fallbackLng];\n if (isString(options.fallbackNS)) options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && !options.supportedLngs.includes('cimode')) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst withDefaults = options => {\n const defOpts = get();\n const merged = {\n ...defOpts,\n ...options\n };\n merged.interpolation = {\n ...defOpts.interpolation,\n ...options.interpolation\n };\n if (typeof merged.overloadTranslationOptionHandler !== 'function') {\n merged.overloadTranslationOptionHandler = defOpts.overloadTranslationOptionHandler;\n }\n return merged;\n};\nconst configuredLanguageCodes = options => {\n const codes = [].concat(options.supportedLngs || [], options.preload || []);\n codes.push(...Object.keys(options.resources || {}));\n const fallbackLng = options.fallbackLng;\n if (isString(fallbackLng) || Array.isArray(fallbackLng)) codes.push(...[].concat(fallbackLng));else if (fallbackLng && typeof fallbackLng === 'object') {\n Object.keys(fallbackLng).forEach(code => {\n if (code !== 'default') codes.push(code);\n codes.push(...[].concat(fallbackLng[code]));\n });\n }\n return codes;\n};\nconst isRefusedLanguageCode = (i18n, code) => {\n if (!isString(code) || isSafeLanguageCode(code) || i18n.configuredLngs?.has(code)) return false;\n i18n.logger.once(`lng:${code}`, 'warn', `refused the language code '${code.slice(0, 64)}' from lng, changeLanguage(), the language detector or loadLanguages(): it is not configured and has other characters than letters, digits, '-', '_', '@' and '.' (or '..', or more than 128). List it in supportedLngs to use it`);\n return true;\n};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor(options = {}, callback) {\n super();\n this.userOptions = transformOptions(options);\n this.options = withDefaults(this.userOptions);\n this.services = {\n postProcessors: Object.create(null)\n };\n this.logger = new Logger(null, this.options);\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.userOptions.initAsync) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init(options = {}, callback) {\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (options.defaultNS == null && options.ns) {\n if (isString(options.ns)) {\n options.defaultNS = options.ns;\n } else if (!options.ns.includes('translation')) {\n options.defaultNS = options.ns[0];\n }\n }\n transformOptions(options);\n const userOptions = {\n ...this.userOptions,\n ...options\n };\n this.options = withDefaults({\n ...this.options,\n ...options\n });\n if (userOptions.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = userOptions.keySeparator;\n }\n if (userOptions.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = userOptions.nsSeparator;\n }\n if (!this.options.isClone) {\n this.configuredLngs = new Set([...(this.configuredLngs || []), ...configuredLanguageCodes(userOptions)]);\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n this.logger.init(createClassOnDemand(this.modules.logger), this.options);\n const {\n logger\n } = this;\n this.pendingWarnings?.forEach(msg => this.logger.warn(msg));\n this.pendingWarnings = undefined;\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options, logger);\n this.store = new ResourceStore(this.options.resources, this.options, logger);\n const s = this.services;\n s.logger = logger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator\n }, logger);\n if (formatter) {\n s.formatter = createClassOnDemand(formatter);\n if (s.formatter.init) s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options, logger);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this),\n reloadResources: this.reloadResources.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n if (s.languageDetector.async && callbackApiOf(s.languageDetector) === undefined) {\n this.logger.deprecate('languageDetector: set callbackApi to declare how the async detect() answers (true: detect(callback); false: detect() returns a promise); guessing it from the number of parameters is deprecated');\n }\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', (event, ...args) => {\n this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = (...args) => this.store[fcName](...args);\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = (...args) => {\n this.store[fcName](...args);\n return this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if ((this.languages || this.isLanguageChangingTo) && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initAsync) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language, callback = noop) {\n let usedCallback = callback;\n const usedLng = isString(language) ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng?.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (!toLoad.includes(l)) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n this.options.preload?.forEach?.(l => append(l));\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) {\n const requested = Object.keys(this.services.backendConnector.state).map(name => name.split('|')[0]);\n lngs = [...new Set([...(this.languages || []), ...requested])].filter(l => l !== 'cimode');\n }\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n const setModule = type => {\n if (this.modules[type] && this.modules[type] !== module) {\n const msg = `use: this ${type} replaces the ${type} passed to an earlier use() call; only one ${type} is used per instance`;\n if (this.isInitializing || this.isInitialized) this.logger.warn(msg);else (this.pendingWarnings = this.pendingWarnings || []).push(msg);\n }\n this.modules[type] = module;\n };\n if (module.type === 'backend') {\n setModule('backend');\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n setModule('languageDetector');\n }\n if (module.type === 'i18nFormat') {\n setModule('i18nFormat');\n }\n if (module.type === 'postProcessor') {\n this.services.postProcessors[module.name] = module;\n }\n if (module.type === 'formatter') {\n setModule('formatter');\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n hydrate(resources, lng) {\n if (this.options.isClone) return this;\n if (!this.services.resourceStore) {\n this.logger.warn('hydrate: call init() first, the instance has no resource store yet');\n return this;\n }\n if (resources && !this.initializedStoreOnce) {\n this.services.resourceStore.data = resources;\n Object.values(resources).forEach(lngResources => {\n Object.keys(lngResources).forEach(ns => {\n if (!this.options.ns.includes(ns)) this.options.ns.push(ns);\n });\n });\n this.initializedStoreOnce = true;\n this.isInitialized = true;\n }\n if (lng && !this.initializedLanguageOnce) {\n this.changeLanguage(lng);\n this.initializedLanguageOnce = true;\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].includes(l)) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].includes(lngInLngs)) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n if (!this.resolvedLanguage && !this.languages.includes(l) && this.store.hasLanguageSomeTranslations(l)) {\n this.resolvedLanguage = l;\n this.languages.unshift(l);\n }\n }\n changeLanguage(lng, callback) {\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n if (this.isLanguageChangingTo === lng) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n }\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve((...args) => this.t(...args));\n if (callback) callback(err, (...args) => this.t(...args));\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const {\n supportedLngs\n } = this.options;\n if (lngs && !supportedLngs) {\n const accepted = [].concat(lngs).filter(c => !isRefusedLanguageCode(this, c));\n if (accepted.length < [].concat(lngs).length) lngs = accepted;\n }\n const fl = isString(lngs) ? lngs : lngs && lngs[0];\n let l = this.store.hasLanguageSomeTranslations(fl) ? fl : this.services.languageUtils.getBestMatchFromCodes(isString(lngs) ? [lngs] : lngs);\n if (supportedLngs && isRefusedLanguageCode(this, l)) l = this.services.languageUtils.getBestMatchFromCodes([]);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n this.services.languageDetector?.cacheUserLanguage?.(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n const callbackApi = callbackApiOf(this.services.languageDetector);\n if (callbackApi === false || callbackApi === undefined && this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix, fixedOpts) {\n const scopeNs = fixedOpts?.scopeNs;\n const fixedT = (key, opts, ...rest) => {\n let o;\n if (typeof opts !== 'object') {\n o = this.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n o = {\n ...opts\n };\n }\n o.lng = o.lng || fixedT.lng;\n o.lngs = o.lngs || fixedT.lngs;\n const explicitCallNs = o.ns !== undefined && o.ns !== null;\n o.ns = o.ns || fixedT.ns;\n if (o.keyPrefix !== '') o.keyPrefix = o.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const selectorOpts = {\n ...this.options,\n ...o\n };\n if (Array.isArray(scopeNs) && !explicitCallNs) selectorOpts.ns = scopeNs;\n if (typeof o.keyPrefix === 'function') o.keyPrefix = keysFromSelector(o.keyPrefix, selectorOpts);\n const keySeparator = this.options.keySeparator || '.';\n let resultKey;\n if (o.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => {\n if (typeof k === 'function') k = keysFromSelector(k, selectorOpts);\n return `${o.keyPrefix}${keySeparator}${k}`;\n });\n } else {\n if (typeof key === 'function') key = keysFromSelector(key, selectorOpts);\n resultKey = o.keyPrefix ? `${o.keyPrefix}${keySeparator}${key}` : key;\n }\n return this.t(resultKey, o);\n };\n if (isString(lng)) {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t(...args) {\n if (!this.translator) {\n this.logger.warn('t: called before init(); returning an empty string');\n return '';\n }\n return this.translator.translate(...args);\n }\n exists(...args) {\n return this.translator?.exists(...args);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns, options = {}) {\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n const {\n languageUtils\n } = this.services;\n const loadLng = !options.lng ? lng : languageUtils.isSupportedCode(lng) && languageUtils.toResolveHierarchy(lng, false)[0];\n if ((!loadLng || loadNotPending(loadLng, ns)) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns || !this.services.backendConnector) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (isString(ns)) ns = [ns];\n ns.forEach(n => {\n if (!this.options.ns.includes(n)) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (isString(lngs)) lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => !preloaded.includes(lng) && !isRefusedLanguageCode(this, lng) && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'ltr';\n try {\n const l = new Intl.Locale(lng);\n if (l && l.getTextInfo) {\n const ti = l.getTextInfo();\n if (ti && ti.direction) return ti.direction;\n }\n } catch (e) {}\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services?.languageUtils || new LanguageUtil(get());\n if (lng.toLowerCase().indexOf('-latn') > 1) return 'ltr';\n return rtlLngs.includes(languageUtils.getLanguagePartFromCode(lng)) || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance(options = {}, callback) {\n const instance = new I18n(options, callback);\n instance.createInstance = I18n.createInstance;\n return instance;\n }\n cloneInstance(options = {}, callback = noop) {\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) {\n options = {\n ...options\n };\n delete options.forkResourceStore;\n }\n const mergedOptions = {\n ...this.options,\n preload: false,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n clone.logger = options.debug !== undefined || options.prefix !== undefined ? this.logger.clone(options) : this.logger;\n const membersToCopy = ['store', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.postProcessors = Object.create(this.services.postProcessors);\n clone.services.utils = {\n ...clone.services.utils,\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone),\n reloadResources: clone.reloadResources.bind(clone)\n };\n if (forkResourceStore) {\n const copyData = obj => {\n const copied = Array.isArray(obj) ? [...obj] : {\n ...obj\n };\n Object.keys(copied).forEach(k => {\n if (copied[k] && typeof copied[k] === 'object') copied[k] = copyData(copied[k]);\n });\n return copied;\n };\n const clonedData = copyData(this.store.data);\n clone.store = new ResourceStore(clonedData, mergedOptions, this.logger);\n clone.services.resourceStore = clone.store;\n }\n if (options.interpolation) {\n const defOpts = get();\n const mergedInterpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation,\n ...options.interpolation\n };\n const mergedForInterpolator = {\n ...mergedOptions,\n interpolation: mergedInterpolation\n };\n clone.services.interpolator = new Interpolator(mergedForInterpolator, this.logger);\n }\n clone.configuredLngs = new Set([...(this.configuredLngs || []), ...configuredLanguageCodes(options)]);\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', (event, ...args) => {\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.newestCloneHasLoadedNamespace = clone.hasLoadedNamespace.bind(clone);\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, isSafeLanguageCode, keysFromSelector as keyFromSelector, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n"],"names":["isString","obj","defer","res","rej","promise","Promise","resolve","reject","makeString","object","String","isSafeLanguageCode","code","test","includes","callbackApiOf","plugin","callbackApi","constructor","lastOfPathSeparatorRegExp","cleanKey","key","replace","canNotTraverseDeeper","getLastOfPath","path","Empty","stack","split","stackIndex","length","Object","prototype","hasOwnProperty","call","k","setPath","newValue","undefined","e","p","slice","last","getPath","deepExtend","target","source","overwrite","prop","regexEscape","str","_entityMap","escape","data","s","chars","looksLikeObjectPathRegExpCache","capacity","this","regExpMap","Map","regExpQueue","getRegExp","pattern","regExpFromCache","get","regExpNew","RegExp","delete","shift","set","push","deepFind","keySeparator","tokens","current","i","next","nextPath","j","getCleanedCode","consoleLogger","type","log","args","output","warn","error","console","apply","Logger","concreteLogger","options","init","prefix","logger","debug","seen","Set","forward","deprecate","once","lvl","has","size","add","debugOnly","map","a","create","moduleName","clone","baseLogger","EventEmitter","observers","on","events","listener","forEach","event","numListeners","off","wrapper","emit","Array","from","entries","observer","numTimesAdded","nonEmptyBundles","WeakSet","assertSeparateArguments","method","some","TypeError","ResourceStore","ns","defaultNS","super","ignoreJSONStructure","addNamespaces","removeNamespaces","index","indexOf","splice","getResource","lng","isArray","result","addResource","value","silent","concat","addResources","resources","keys","m","addResourceBundle","deep","skipCopy","pack","JSON","parse","stringify","removeResourceBundle","hasResourceBundle","getResourceBundle","getDataByLanguage","hasLanguageSomeTranslations","find","v","bundle","toJSON","PATH_KEY","Symbol","keysFromSelector","selector","opts","state","handler","proxy","revoke","Proxy","revocable","createProxy","nsSeparator","strict","enableSelector","nsList","join","shouldHandleAsObject","Translator","services","copy","t","checkedLoadedFor","changeLanguage","language","exists","o","interpolation","opt","resolved","isObject","returnObjects","extractFromKey","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","looksLikeObjectPath","possibleChars","filter","c","r","matched","ki","substring","match","interpolator","nestingRegexp","parts","translate","lastKey","overloadTranslationOptionHandler","arguments","returnDetails","namespace","appendNamespaceToCIMode","toLowerCase","usedKey","exactUsedKey","usedLng","usedNS","usedParams","getUsedParamsDetails","resUsedKey","resExactUsedKey","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","needsPluralHandling","count","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","defaultValueSuffixOrdinalFallback","ordinal","needsZeroSuffixLookup","defaultValue","pluralSeparator","resForObjHndl","resType","toString","isObjectHit","objectNotReturned","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","isValidLookup","resForMissing","missingKeyNoValueFallbackToKey","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","l","specificDefaultValue","defaultForMissing","missingKeyHandler","backendConnector","saveMissing","utils","hasLoadedNamespace","saveMissingPlurals","suffixes","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","defaultVariables","skipInterpolation","skipOnVariables","nestBef","nb","interpolate","na","nest","context","reset","postProcess","postProcessorNames","applyPostProcessor","ppOptions","postProcessPassResolved","i18nResolved","name","processor","postProcessors","process","found","extracted","fallbackNS","needsContextHandling","codes","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","ordinalPrefix","startsWith","contextKey","contextSeparator","possibleKey","pop","returnNull","returnEmptyString","resourceStore","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","supportedLngs","resolveHierarchyCache","formattedCodes","clearCache","clear","getScriptPartFromCode","formatLanguageCode","getLanguagePartFromCode","formatted","formatUncached","hasSubtags","cleanCode","canonical","Intl","getCanonicalLocales","lowerCaseLng","isSupportedCode","load","nonExplicitSupportedLngs","getBestMatchFromCodes","cleanedLng","lngScOnly","lngOnly","supportedLng","fallbacks","default","fallbackCode","fallbackLngKey","_cachedFallbackLng","hasCacheableFallback","usesUncacheableOptionsFallback","cacheKey","fallbackCacheKey","cached","fallbackCodes","addCode","fc","formattedFc","suffixesOrder","zero","one","two","few","many","other","dummyRule","select","resolvedOptions","pluralCategories","PluralResolver","pluralRulesCache","getRule","cleanedCode","rule","PluralRules","err","lngPart","needsPlural","getPluralFormsOfKey","sort","pluralCategory1","pluralCategory2","pluralCategory","prepend","deepFindWithDefaults","defaultData","getPathWithDefaults","Interpolator","format","escapeValue","escape$1","useRawValueToEscape","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingSuffix","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","getOrResetRegExp","existingRegExp","lastIndex","regexp","regexpUnescape","replaces","original","handleFormat","interpolationkey","trim","f","missingInterpolationHandler","todos","regex","safeValue","val","unescapedValues","todo","exec","at","written","start","end","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","out","lastEnd","formatters","keyEndIndex","lastIndexOf","elem","Boolean","reduce","createCachedFormatter","fn","cache","optForCache","formatParams","frm","createNonCachedFormatter","Formatter","cf","cacheInBuiltFormats","formats","number","formatter","NumberFormat","currency","style","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","range","list","ListFormat","addCached","rawFormats","mem","formatName","formatOptions","formatStr","optStr","rest","trimmedKey","isNaN","parseInt","parseFormatStr","valOptions","locale","Connector","backend","store","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","queue","read","queueLoad","languages","callback","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","loaded","errors","q","pushPath","removePending","done","loadedKeys","n","fcName","tried","wait","resolver","setTimeout","bind","then","catch","prepareLoading","loadOne","fallbackValue","isUpdate","clb","newestCloneHasLoadedNamespace","initAsync","preload","partialBundledLanguages","ret","tDescription","transformOptions","noop","withDefaults","defOpts","merged","configuredLanguageCodes","isRefusedLanguageCode","i18n","configuredLngs","I18n","inst","userOptions","modules","external","getOwnPropertyNames","getPrototypeOf","isInitialized","isClone","isInitializing","createClassOnDemand","ClassOrObject","pendingWarnings","msg","lu","reloadResources","languageDetector","detection","async","translator","deferred","finish","initializedStoreOnce","isLanguageChangingTo","loadResources","usedCallback","append","resolvedLanguage","setResolvedLanguage","requested","use","module","Error","setModule","hydrate","values","lngResources","initializedLanguageOnce","li","lngInLngs","unshift","setLngProps","setLng","accepted","fl","cacheUserLanguage","detect","getFixedT","keyPrefix","fixedOpts","scopeNs","fixedT","explicitCallNs","selectorOpts","resultKey","setDefaultNamespace","lastLng","loadNotPending","loadState","precheck","preResult","loadLng","loadNamespaces","loadLanguages","preloaded","newLngs","dir","Locale","getTextInfo","ti","direction","createInstance","instance","cloneInstance","forkResourceStore","mergedOptions","copyData","copied","clonedData","mergedInterpolation","mergedForInterpolator"],"mappings":"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"}
|