@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,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react");require("../../node_modules/react-redux/es/index.js");var i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js");require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-i18next/dist/es/context.js");var n=require("../../node_modules/react-i18next/dist/es/useTranslation.js"),r=require("../../lib/phone/call.js"),l=require("../CustomThemedTooltip.js"),s=require("./hooks/useSideViewLogic.js"),a=require("./components/SideViewButton.js"),d=require("../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js"),c=require("../../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=p(t),f={initial:{x:-76},animate:{x:4,transition:{duration:.1,ease:"easeOut"}},exit:{x:-76,transition:{duration:.1,ease:"easeIn"}}},h={borderTopRightRadius:"20px",borderBottomRightRadius:"20px",width:"80px",transformOrigin:"right"},T=t.memo(function(p){var T=p.isVisible,x=p.uaType,v=u.useSelector(function(e){return e.island}).isOpen,C=u.useSelector(function(e){return e.currentCall}).isRecording,g=n.useTranslation().t,k=s.useSideViewLogic(x),S=k.videoInputDevices,b=k.isVideoCallButtonVisible,j=k.canRecord,y=k.canShareScreen,_=k.canSwitchDevice,w=k.isUrlButtonEnabled,q=k.hasValidUrl,E=k.isTranscriptionEnabled,V=k.goToVideoCall,R=k.goToScreenSharing,I=k.closeSideViewAndLaunchEvent,D=k.openTranscriptionView,O=t.useCallback(function(){r.recordCurrentCall(C)},[C]),B=t.useMemo(function(){return[j&&{key:"record",active:C,onClick:O,tooltipId:"tooltip-record",tooltipContent:C?g("Tooltip.Stop recording")||"":g("Tooltip.Record")||"",icon:C?i.faStop:o.faRecord},(null==S?void 0:S.length)>0&&{key:"video",onClick:V,tooltipId:"tooltip-video",tooltipContent:b?g("Tooltip.Enable camera")||"":g("Tooltip.Enable camera permission")||"",disabled:!b,icon:b?i.faVideo:i.faVideoSlash},y&&{key:"screen-share",onClick:R,tooltipId:"tooltip-screen-share",tooltipContent:g("Tooltip.Share screen")||"",icon:i.faDisplay},q&&w&&{key:"url",onClick:function(){return I("openUrl")},tooltipId:"tooltip-open-url",tooltipContent:g("Tooltip.Open url")||"",icon:i.faArrowUpRightFromSquare},E&&{key:"transcription",onClick:D,tooltipId:"tooltip-transcription",tooltipContent:g("Tooltip.Open transcription")||"Open transcription",icon:i.faCommentDots},_&&{key:"switch-device",onClick:function(){return I("switchDevice")},tooltipId:"tooltip-switch-device",tooltipContent:g("Tooltip.Switch device")||"",icon:o.faArrowsRepeat}].filter(function(e){return Boolean(e)})},[j,C,O,g,null==S?void 0:S.length,V,b,y,R,q,w,I,D,E,_]),A=t.useMemo(function(){return"pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ".concat(v?"pi-py-6":"pi-py-4")},[v]);return m.default.createElement(m.default.Fragment,null,m.default.createElement(d.AnimatePresence,null,T&&m.default.createElement(c.motion.div,e.__assign({className:A,style:h},f),m.default.createElement("div",{className:"pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9"},B.map(function(t){var i=t.key,o=e.__rest(t,["key"]);return m.default.createElement(a.SideViewButton,e.__assign({key:i},o))})))),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-record",place:"left"}),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-video",place:"left"}),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-screen-share",place:"left"}),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-transcription",place:"left"}),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-switch-device",place:"left"}),m.default.createElement(l.CustomThemedTooltip,{id:"tooltip-open-url",place:"left"}))});T.displayName="SideView",exports.default=T;
|
|
2
2
|
//# sourceMappingURL=SideView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SideView.js","sources":["../../../src/components/SideView/SideView.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, memo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport {\n faArrowUpRightFromSquare,\n faDisplay,\n faStop,\n faVideo,\n faVideoSlash,\n faCommentDots,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faArrowsRepeat, faRecord } from '@nethesis/nethesis-solid-svg-icons'\nimport { useTranslation } from 'react-i18next'\nimport { recordCurrentCall } from '../../lib/phone/call'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useSideViewLogic } from './hooks/useSideViewLogic'\nimport { SideViewButton } from './components/SideViewButton'\n\nconst ANIMATION_CONFIG = {\n initial: { x: -76 },\n animate: { x: 4, transition: { duration: 0.1, ease: 'easeOut' } },\n exit: { x: -76, transition: { duration: 0.1, ease: 'easeIn' } },\n} as const\n\nconst STYLE_CONFIG = {\n borderTopRightRadius: '20px',\n borderBottomRightRadius: '20px',\n width: '80px',\n transformOrigin: 'right',\n} as const\n\ninterface ButtonConfig {\n active?: boolean\n onClick: () => void | Promise<void>\n tooltipId: string\n tooltipContent: string\n icon: any\n disabled?: boolean\n}\n\ninterface ButtonConfigWithKey extends ButtonConfig {\n key: string\n}\n\nconst SideView: FC<SideViewTypes> = memo(({ isVisible, uaType }) => {\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { isRecording } = useSelector((state: RootState) => state.currentCall)\n const { t } = useTranslation()\n\n const {\n videoInputDevices,\n isVideoCallButtonVisible,\n canRecord,\n canShareScreen,\n canSwitchDevice,\n isUrlButtonEnabled,\n hasValidUrl,\n isTranscriptionEnabled,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n } = useSideViewLogic(uaType)\n\n const handleRecordClick = useCallback(() => {\n recordCurrentCall(isRecording)\n }, [isRecording])\n\n const buttonConfigs = useMemo(() => {\n const configs: (ButtonConfigWithKey | false)[] = [\n canRecord && {\n key: 'record',\n active: isRecording,\n onClick: handleRecordClick,\n tooltipId: 'tooltip-record',\n tooltipContent: isRecording ? t('Tooltip.Stop recording') || '' : t('Tooltip.Record') || '',\n icon: isRecording ? faStop : faRecord,\n },\n videoInputDevices?.length > 0 && {\n key: 'video',\n onClick: goToVideoCall,\n tooltipId: 'tooltip-video',\n tooltipContent: isVideoCallButtonVisible\n ? t('Tooltip.Enable camera') || ''\n : t('Tooltip.Enable camera permission') || '',\n disabled: !isVideoCallButtonVisible,\n icon: isVideoCallButtonVisible ? faVideo : faVideoSlash,\n },\n canShareScreen && {\n key: 'screen-share',\n onClick: goToScreenSharing,\n tooltipId: 'tooltip-screen-share',\n tooltipContent: t('Tooltip.Share screen') || '',\n icon: faDisplay,\n },\n hasValidUrl &&\n isUrlButtonEnabled && {\n key: 'url',\n onClick: () => closeSideViewAndLaunchEvent('openUrl'),\n tooltipId: 'tooltip-open-url',\n tooltipContent: t('Tooltip.Open url') || '',\n icon: faArrowUpRightFromSquare,\n },\n isTranscriptionEnabled && {\n key: 'transcription',\n onClick: openTranscriptionView,\n tooltipId: 'tooltip-transcription',\n tooltipContent: t('Tooltip.Open transcription') || 'Open transcription',\n icon: faCommentDots,\n },\n canSwitchDevice && {\n key: 'switch-device',\n onClick: () => closeSideViewAndLaunchEvent('switchDevice'),\n tooltipId: 'tooltip-switch-device',\n tooltipContent: t('Tooltip.Switch device') || '',\n icon: faArrowsRepeat,\n },\n ]\n\n return configs.filter((config): config is ButtonConfigWithKey => Boolean(config))\n }, [\n canRecord,\n isRecording,\n handleRecordClick,\n t,\n videoInputDevices?.length,\n goToVideoCall,\n isVideoCallButtonVisible,\n canShareScreen,\n goToScreenSharing,\n hasValidUrl,\n isUrlButtonEnabled,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n isTranscriptionEnabled,\n canSwitchDevice,\n ])\n\n const containerClassName = useMemo(\n () =>\n `pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ${isOpen ? 'pi-py-6' : 'pi-py-4'\n }`,\n [isOpen],\n )\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9'>\n {buttonConfigs.map(({ key, ...config }) => (\n <SideViewButton key={key} {...config} />\n ))}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n <CustomThemedTooltip id='tooltip-record' place='left' />\n <CustomThemedTooltip id='tooltip-video' place='left' />\n <CustomThemedTooltip id='tooltip-screen-share' place='left' />\n <CustomThemedTooltip id='tooltip-transcription' place='left' />\n <CustomThemedTooltip id='tooltip-switch-device' place='left' />\n <CustomThemedTooltip id='tooltip-open-url' place='left' />\n </>\n )\n})\n\nSideView.displayName = 'SideView'\n\nexport default SideView\n\ninterface SideViewTypes {\n isVisible: boolean\n uaType?: string\n}\n"],"names":["ANIMATION_CONFIG","initial","x","animate","transition","duration","ease","exit","STYLE_CONFIG","borderTopRightRadius","borderBottomRightRadius","width","transformOrigin","SideView","memo","_a","isVisible","uaType","isOpen","useSelector","state","island","isRecording","currentCall","t","useTranslation","_b","useSideViewLogic","videoInputDevices","isVideoCallButtonVisible","canRecord","canShareScreen","canSwitchDevice","isUrlButtonEnabled","hasValidUrl","isTranscriptionEnabled","goToVideoCall","goToScreenSharing","closeSideViewAndLaunchEvent","openTranscriptionView","handleRecordClick","useCallback","recordCurrentCall","buttonConfigs","useMemo","key","active","onClick","tooltipId","tooltipContent","icon","faStop","faRecord","length","disabled","faVideo","faVideoSlash","faDisplay","faArrowUpRightFromSquare","faCommentDots","faArrowsRepeat","filter","config","Boolean","containerClassName","concat","React","createElement","Fragment","AnimatePresence","motion","div","__assign","className","style","map","__rest","SideViewButton","CustomThemedTooltip","id","place","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SideView.js","sources":["../../../src/components/SideView/SideView.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, memo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport {\n faArrowUpRightFromSquare,\n faDisplay,\n faStop,\n faVideo,\n faVideoSlash,\n faCommentDots,\n} from '@fortawesome/free-solid-svg-icons'\nimport { faArrowsRepeat, faRecord } from '@nethesis/nethesis-solid-svg-icons'\nimport { useTranslation } from 'react-i18next'\nimport { recordCurrentCall } from '../../lib/phone/call'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { useSideViewLogic } from './hooks/useSideViewLogic'\nimport { SideViewButton } from './components/SideViewButton'\n\nconst ANIMATION_CONFIG = {\n initial: { x: -76 },\n animate: { x: 4, transition: { duration: 0.1, ease: 'easeOut' } },\n exit: { x: -76, transition: { duration: 0.1, ease: 'easeIn' } },\n} as const\n\nconst STYLE_CONFIG = {\n borderTopRightRadius: '20px',\n borderBottomRightRadius: '20px',\n width: '80px',\n transformOrigin: 'right',\n} as const\n\ninterface ButtonConfig {\n active?: boolean\n onClick: () => void | Promise<void>\n tooltipId: string\n tooltipContent: string\n icon: any\n disabled?: boolean\n}\n\ninterface ButtonConfigWithKey extends ButtonConfig {\n key: string\n}\n\nconst SideView: FC<SideViewTypes> = memo(({ isVisible, uaType }) => {\n const { isOpen } = useSelector((state: RootState) => state.island)\n const { isRecording } = useSelector((state: RootState) => state.currentCall)\n const { t } = useTranslation()\n\n const {\n videoInputDevices,\n isVideoCallButtonVisible,\n canRecord,\n canShareScreen,\n canSwitchDevice,\n isUrlButtonEnabled,\n hasValidUrl,\n isTranscriptionEnabled,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n } = useSideViewLogic(uaType)\n\n const handleRecordClick = useCallback(() => {\n recordCurrentCall(isRecording)\n }, [isRecording])\n\n const buttonConfigs = useMemo(() => {\n const configs: (ButtonConfigWithKey | false)[] = [\n canRecord && {\n key: 'record',\n active: isRecording,\n onClick: handleRecordClick,\n tooltipId: 'tooltip-record',\n tooltipContent: isRecording ? t('Tooltip.Stop recording') || '' : t('Tooltip.Record') || '',\n icon: isRecording ? faStop : faRecord,\n },\n videoInputDevices?.length > 0 && {\n key: 'video',\n onClick: goToVideoCall,\n tooltipId: 'tooltip-video',\n tooltipContent: isVideoCallButtonVisible\n ? t('Tooltip.Enable camera') || ''\n : t('Tooltip.Enable camera permission') || '',\n disabled: !isVideoCallButtonVisible,\n icon: isVideoCallButtonVisible ? faVideo : faVideoSlash,\n },\n canShareScreen && {\n key: 'screen-share',\n onClick: goToScreenSharing,\n tooltipId: 'tooltip-screen-share',\n tooltipContent: t('Tooltip.Share screen') || '',\n icon: faDisplay,\n },\n hasValidUrl &&\n isUrlButtonEnabled && {\n key: 'url',\n onClick: () => closeSideViewAndLaunchEvent('openUrl'),\n tooltipId: 'tooltip-open-url',\n tooltipContent: t('Tooltip.Open url') || '',\n icon: faArrowUpRightFromSquare,\n },\n isTranscriptionEnabled && {\n key: 'transcription',\n onClick: openTranscriptionView,\n tooltipId: 'tooltip-transcription',\n tooltipContent: t('Tooltip.Open transcription') || 'Open transcription',\n icon: faCommentDots,\n },\n canSwitchDevice && {\n key: 'switch-device',\n onClick: () => closeSideViewAndLaunchEvent('switchDevice'),\n tooltipId: 'tooltip-switch-device',\n tooltipContent: t('Tooltip.Switch device') || '',\n icon: faArrowsRepeat,\n },\n ]\n\n return configs.filter((config): config is ButtonConfigWithKey => Boolean(config))\n }, [\n canRecord,\n isRecording,\n handleRecordClick,\n t,\n videoInputDevices?.length,\n goToVideoCall,\n isVideoCallButtonVisible,\n canShareScreen,\n goToScreenSharing,\n hasValidUrl,\n isUrlButtonEnabled,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n isTranscriptionEnabled,\n canSwitchDevice,\n ])\n\n const containerClassName = useMemo(\n () =>\n `pi-absolute pi-h-full pi-bg-surfaceSidebar dark:pi-bg-surfaceSidebarDark pi-flex pi-flex-col pi-items-center pi-text-iconWhite dark:pi-text-iconWhiteDark -pi-mr-10 pi-right-0 -pi-z-10 pi-pointer-events-auto ${isOpen ? 'pi-py-6' : 'pi-py-4'\n }`,\n [isOpen],\n )\n\n return (\n <>\n <AnimatePresence>\n {isVisible && (\n <motion.div className={containerClassName} style={STYLE_CONFIG} {...ANIMATION_CONFIG}>\n <div className='pi-flex pi-flex-col pi-items-center pi-gap-3.5 pi-flex-1 pi-ml-9'>\n {buttonConfigs.map(({ key, ...config }) => (\n <SideViewButton key={key} {...config} />\n ))}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n <CustomThemedTooltip id='tooltip-record' place='left' />\n <CustomThemedTooltip id='tooltip-video' place='left' />\n <CustomThemedTooltip id='tooltip-screen-share' place='left' />\n <CustomThemedTooltip id='tooltip-transcription' place='left' />\n <CustomThemedTooltip id='tooltip-switch-device' place='left' />\n <CustomThemedTooltip id='tooltip-open-url' place='left' />\n </>\n )\n})\n\nSideView.displayName = 'SideView'\n\nexport default SideView\n\ninterface SideViewTypes {\n isVisible: boolean\n uaType?: string\n}\n"],"names":["ANIMATION_CONFIG","initial","x","animate","transition","duration","ease","exit","STYLE_CONFIG","borderTopRightRadius","borderBottomRightRadius","width","transformOrigin","SideView","memo","_a","isVisible","uaType","isOpen","useSelector","state","island","isRecording","currentCall","t","useTranslation","_b","useSideViewLogic","videoInputDevices","isVideoCallButtonVisible","canRecord","canShareScreen","canSwitchDevice","isUrlButtonEnabled","hasValidUrl","isTranscriptionEnabled","goToVideoCall","goToScreenSharing","closeSideViewAndLaunchEvent","openTranscriptionView","handleRecordClick","useCallback","recordCurrentCall","buttonConfigs","useMemo","key","active","onClick","tooltipId","tooltipContent","icon","faStop","faRecord","length","disabled","faVideo","faVideoSlash","faDisplay","faArrowUpRightFromSquare","faCommentDots","faArrowsRepeat","filter","config","Boolean","containerClassName","concat","React","createElement","Fragment","AnimatePresence","motion","div","__assign","className","style","map","__rest","SideViewButton","CustomThemedTooltip","id","place","displayName"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),n=require("react");require("../../../node_modules/react-redux/es/index.js");var i=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),t=require("../../../lib/webrtc/janus.js"),o=require("../../../lib/phone/trunk.js"),u=require("../../../lib/devices/devices.js"),l=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),a=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(d){var c,v,h,p,f,g,b,m,_=s.useDispatch(),S=a.useSelector(function(e){return e.currentUser}),k=a.useSelector(function(e){return e.users}),w=a.useSelector(function(e){return e.paramUrl}),j=i.store.select.mediaDevices.videoInputDevices(i.store.getState()),q=n.useRef(t.default),C=a.useSelector(function(e){return e.currentUser.conversations}),V=n.useState([]),D=V[0],y=V[1],T=n.useState(!0),U=T[0],I=T[1],x=n.useCallback(function(){var e=Object.values(C).find(function(e){return Object.keys(e).length>0});return e?Object.values(e)[0]:null},[C]),O=n.useCallback(function(e){if(_.island.toggleSideViewVisible(!1),"openUrl"===e){var n=Object.values(C).find(function(e){return Object.keys(e).length>0}),i=n?Object.values(n)[0]:null;if((null==i?void 0:i.connected)&&"in"===(null==i?void 0:i.direction)){var r={counterpartNum:i.counterpartNum,counterpartName:i.counterpartName,owner:i.owner,uniqueId:i.uniqueId,linkedId:i.linkedId,throughQueue:i.throughQueue,throughTrunk:i.throughTrunk,direction:i.direction,connected:i.connected};l.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&_.island.setIslandView(e)},[_.island,C]),Q=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){var n;return e.__generator(this,function(e){switch(e.label){case 0:return j.length>0?[4,u.checkWebCamPermission()]:[3,2];case 1:return n=e.sent(),I(n),[2,n];case 2:return I(!1),[2,!1]}})})},[j.length]),E=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return[4,Q()];case 1:return e.sent()&&(O("video"),i.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}})})},[Q,O]),M=n.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){var n,r;return e.__generator(this,function(e){switch(e.label){case 0:if(i.store.getState().screenShare.active)return O("video"),[2];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,navigator.mediaDevices.getDisplayMedia({video:!0})];case 2:return n=e.sent(),[3,4];case 3:return r=e.sent(),console.warn("Screen share not started:",r),[2];case 4:return!i.store.getState().currentCall.accepted||i.store.getState().screenShare.active?(n.getTracks().forEach(function(e){return e.stop()}),[2]):(i.store.dispatch.screenShare.update({pendingScreenStream:n,isStartingScreenShare:!0}),O("video"),[2])}})})},[O]),N=n.useMemo(function(){var e;return(null===(e=null==S?void 0:S.profile)||void 0===e?void 0:e.macro_permissions)||{}},[null===(c=null==S?void 0:S.profile)||void 0===c?void 0:c.macro_permissions]),P=n.useMemo(function(){var e,n,i,r,t,o,u,l,s;return{canRecord:(null===(i=null===(n=null===(e=null==N?void 0:N.settings)||void 0===e?void 0:e.permissions)||void 0===n?void 0:n.recording)||void 0===i?void 0:i.value)||!1,canShareScreen:"safari"!==(null===(o=null===(t=null===(r=null==q?void 0:q.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===t?void 0:t.browserDetails)||void 0===o?void 0:o.browser)&&((null===(s=null===(l=null===(u=null==N?void 0:N.nethvoice_cti)||void 0===u?void 0:u.permissions)||void 0===l?void 0:l.screen_sharing)||void 0===s?void 0:s.value)||!1),canSwitchDevice:(null==D?void 0:D.length)>0}},[null===(p=null===(h=null===(v=null==N?void 0:N.settings)||void 0===v?void 0:v.permissions)||void 0===h?void 0:h.recording)||void 0===p?void 0:p.value,null===(b=null===(g=null===(f=null==N?void 0:N.nethvoice_cti)||void 0===f?void 0:f.permissions)||void 0===g?void 0:g.screen_sharing)||void 0===b?void 0:b.value,null==D?void 0:D.length,null===(m=null==S?void 0:S.default_device)||void 0===m?void 0:m.type,d]),A=n.useMemo(function(){var e=x();if("never"===w.openParamUrlType)return!1;if(!(null==e?void 0:e.connected)||"in"!==(null==e?void 0:e.direction))return!1;if("button"===w.openParamUrlType){if(w.onlyQueues&&(null==e?void 0:e.throughQueue))return!0;if(!w.onlyQueues&&(o.isFromTrunk(e.counterpartNum)||(null==e?void 0:e.throughQueue)))return!0}return!1},[x,w.onlyQueues,w.openParamUrlType]);n.useEffect(function(){if(S&&k){var e=r.getAvailableDevices(S,k);y(e)}},[S,k]);var L=n.useCallback(function(){var e=x(),n=(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid),i=(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid);(n||i)&&(_.island.toggleSideViewVisible(!1),l.eventDispatch("phone-island-transcription-open",{linkedid:n,uniqueid:i}))},[_.island,x]),R=n.useMemo(function(){return(null==S?void 0:S.call_transcription_enabled)||!1},[null==S?void 0:S.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:S,availableDevices:D,videoInputDevices:j,isVideoCallButtonVisible:U,isUrlButtonEnabled:A,hasValidUrl:w.hasValidUrl,isTranscriptionEnabled:R},P),{goToVideoCall:E,goToScreenSharing:M,closeSideViewAndLaunchEvent:O,openTranscriptionView:L})};
|
|
2
2
|
//# sourceMappingURL=useSideViewLogic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(async () => {\n // Pick the screen before anything else: the picker opens right away and, if the\n // user cancels, the island stays on the call view with nothing to undo\n let pendingScreenStream: MediaStream\n try {\n pendingScreenStream = await navigator.mediaDevices.getDisplayMedia({ video: true })\n } catch (error) {\n console.warn('Screen share not started:', error)\n return\n }\n store.dispatch.screenShare.update({\n pendingScreenStream,\n isStartingScreenShare: true,\n })\n closeSideViewAndLaunchEvent('video')\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","navigator","getDisplayMedia","video","pendingScreenStream","console","warn","error_1","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(async () => {\n // Pick the screen before anything else: the picker opens right away and, if the\n // user cancels, the island stays on the call view with nothing to undo\n if (store.getState().screenShare.active) {\n closeSideViewAndLaunchEvent('video')\n return\n }\n let pendingScreenStream: MediaStream\n try {\n pendingScreenStream = await navigator.mediaDevices.getDisplayMedia({ video: true })\n } catch (error) {\n console.warn('Screen share not started:', error)\n return\n }\n if (!store.getState().currentCall.accepted || store.getState().screenShare.active) {\n pendingScreenStream.getTracks().forEach((track) => track.stop())\n return\n }\n store.dispatch.screenShare.update({\n pendingScreenStream,\n isStartingScreenShare: true,\n })\n closeSideViewAndLaunchEvent('video')\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","active","navigator","getDisplayMedia","video","pendingScreenStream","console","warn","error_1","accepted","getTracks","forEach","track","stop","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../node_modules/socket.io-client/build/esm/index.js"),r=require("./RestAPI.js"),i=require("../lib/phone/conversation.js"),o=require("../lib/phone/counterpartDevice.js"),u=require("../services/phonebook.js"),c=require("../services/user.js"),a=require("../static/busy_ringtone.js"),s=require("../utils/customHooks/useEventListener.js"),l=require("../utils/genericFunctions/eventDispatch.js"),d=require("../utils/genericFunctions/withTimeout.js"),v=require("../utils/genericFunctions/summaryEvents.js"),p=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var m=require("../lib/devices/devices.js"),f=require("../lib/user/default_device.js"),g=require("../utils/genericFunctions/isEmpty.js"),h=require("../utils/streaming/getStreamingSourceId.js"),b=require("../events/SocketEvents.js"),k=require("../utils/genericFunctions/timestamp.js"),y=require("../lib/user/extensions.js"),S=require("../utils/streaming/isFromStreaming.js"),q=require("../lib/phone/queue.js"),w=require("../lib/phone/trunk.js"),C=require("../node_modules/react-redux/es/hooks/useDispatch.js");function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var N=_(n);exports.Socket=function(_){var T=_.hostName,I=_.username,D=_.authToken,j=_.reload,U=_.reloadedCallback,x=_.children,E=_.uaType,O=C.useDispatch(),P=n.useRef(),A=n.useRef(),F=n.useRef(!1),M=n.useRef(0),R=n.useRef(null),V=n.useRef(new Map),L=n.useRef(new Map),Q=n.useRef(new Set),W=n.useRef(null),B=n.useRef(!1),K=n.useRef({linkedid:null,uniqueid:null});s.useEventListener("phone-island-start-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:n,uniqueid:t},A.current.emit("start_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-stop-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:null,uniqueid:null},A.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-current-user-queue-call-waiting",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})}),s.useEventListener("phone-island-current-user-queue-call-connected",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})});return n.useEffect(function(){var n=function(e){if(e.counterpartNum&&S.isFromStreaming(e.counterpartNum)){O.island.setIsFromStreaming(!0),O.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=h.getStreamingSourceId(e.counterpartNum);n&&c.subscribe({id:n}).catch(function(e){return console.error("Error subscribing to streaming source:",e)})}},s=function(e){return(e||"").replace(/\D/g,"")},C=function(e){var n=i.getDisplayName(e),t=((null==e?void 0:e.counterpartNum)||"").trim();return n&&n!==t&&!i.isNumberOnlyName(n)?n:(t?L.current.get(s(t)):void 0)||n},_=function(e){if(e){var n=(e.counterpartNum||"").trim();if(!(n.length<3)){var t=(e.counterpartName||"").trim();if(!t||"<unknown>"===t||t===n||i.isNumberOnlyName(t)){var r=p.store.getState().users.extensions;if(!(r&&r[n]||S.isFromStreaming(n))){var o=s(n);L.current.has(o)||e.id&&Q.current.has(e.id)||(e.id&&(Q.current.size>500&&Q.current.clear(),Q.current.add(e.id)),u.searchPhonebook(1,n,"").then(function(e){var n=((null==e?void 0:e.rows)||[]).find(function(e){return[e.extension,e.workphone,e.homephone,e.cellphone,e.fax].some(function(e){var n=s(e);return 0!==n.length&&(n===o||!(Math.min(n.length,o.length)<6)&&(n.endsWith(o)||o.endsWith(n)))})}),t=((null==n?void 0:n.name)||(null==n?void 0:n.company)||"").trim();if(t){L.current.set(o,t);var r=p.store.getState().currentCall;s(r.number)===o&&O.currentCall.updateCurrentCall({displayName:t})}}).catch(function(){}))}}}}},N=function(e){return q.getCurrentCallQueueContext(e,p.store.getState().queue)},j=function(e,n){var t=p.store.getState().currentCall,r=(null==n?void 0:n.queueId)||t.queueId||"",i=(null==n?void 0:n.queueName)||t.queueName||"",o=(null==n?void 0:n.queueNumber)||t.queueNumber||"";return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:r,queueName:i,queueNumber:o,queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}},U=function(e){var n,t,r,i;if(e){var o=N(e),u=j(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=R.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=R.current)||void 0===i?void 0:i.phase))&&(b.dispatchCurrentUserQueueCallConnected(u),R.current={conversationId:e.id,phase:"connected"});else((null===(n=R.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=R.current)||void 0===t?void 0:t.phase))&&(b.dispatchCurrentUserQueueCallWaiting(u),R.current={conversationId:e.id,phase:"waiting"});else R.current=null}else R.current=null},x=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},z=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},H=function(e){return!!(null==e?void 0:e.connected)&&!!x(e)&&!!z(e)},J=function(n){var t=p.store.getState().currentUser.conversations,r=n?null==t?void 0:t[n]:void 0,i=function(e){var n,t=null,r=Object.entries(e||{}).filter(function(e){var n=e[1];return n&&Object.keys(n).length>0});return r.forEach(function(e){var r,i,o=e[0],u=e[1];if(!t)return t=u,void(n=o);var c=H(t),a=H(u);if(a&&!c)return t=u,void(n=o);if(a===c){var s=!!t.connected,l=!!u.connected;if(l&&!s)return t=u,void(n=o);var d=null!==(r=t.startTime)&&void 0!==r?r:0,v=null!==(i=u.startTime)&&void 0!==i?i:0;l===s&&v>d&&(t=u,n=o)}}),{conversation:t,key:n,count:r.length}}(r);if(H(i.conversation))return e.__assign(e.__assign({},i),{source:"live",cacheAgeMs:void 0,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})});var o=function(n){if(!n)return null;var t=V.current.get(n);if(!t)return null;var r=Date.now()-t.cachedAt;return r>6e5?(V.current.delete(n),null):e.__assign(e.__assign({},t),{cacheAgeMs:r})}(n);return o&&H(o.conversation)?{conversation:o.conversation,key:o.conversation.id,count:i.count,source:"cache",cacheAgeMs:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})}:e.__assign(e.__assign({},i),{source:i.conversation?"live_invalid":"none",cacheAgeMs:null==o?void 0:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})})},G=function(t,r){var u=p.store.getState().currentCall,a=u.transferring,s=u.transferSwitching,d=u.transferCalls,v=p.store.getState().island.view;if(Object.keys(r).length>0){if(t.status){var m=p.store.getState().users.extensions,g=p.store.getState().currentUser.default_device,h=p.store.getState().currentUser,b=h.endpoints,S=h.username,q=function(){if(!m||!S)return!1;var e=Object.values(m).filter(function(e){return(null==e?void 0:e.username)===S});return null==e?void 0:e.some(function(e){var n=null==b?void 0:b.extension.find(function(n){return n.id===(null==e?void 0:e.exten)});return"nethlink"===(null==n?void 0:n.type)&&"offline"!==(null==e?void 0:e.status)})};switch(t.status){case"ringing":if(function(e){var n=p.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(r.owner))break;var T=N(r),I=j(r,T);U(r),n(r),_(r),("mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type)))&&(O.currentCall.checkIncomingUpdatePlay({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),incomingSocket:!0,incoming:!0,throughQueue:Boolean(I.queueId||I.queueName||I.queueNumber),queueId:I.queueId,queueName:I.queueName,queueNumber:I.queueNumber,queuePosition:I.queuePosition,queueWaitingTime:I.queueWaitingTime,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",ownerExtension:r.owner,counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),p.store.dispatch.island.setIslandView("call")),F.current||(F.current=!0,c.getCurrentUserInfo().then(function(n){n&&(O.currentUser.updateCurrentUser(n),l.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?O.paramUrl.setOpenParamUrlType(n.settings.open_param_url):O.paramUrl.setOpenParamUrlType("never"))}).catch(function(e){console.error("Error getting current user info:",e)}).finally(function(){setTimeout(function(){F.current=!1},100)}));var D=p.store.getState().paramUrl.openParamUrlType,x=p.store.getState().island.urlOpened;if("ringing"===D&&!x){var P=w.isFromTrunk(r.counterpartNum);p.store.dispatch.paramUrl.setThroughTrunk(P),p.store.dispatch.island.setUrlOpened(!1),l.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:r.counterpartNum,counterpartName:C(r),owner:r.owner,uniqueId:r.uniqueId,linkedId:r.linkedId,throughQueue:r.throughQueue,throughTrunk:P,direction:r.direction,connected:r.connected})}break;case"busy":if(U(r),n(r),"mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type))){if(r&&r.connected)O.currentCall.updateCurrentCall({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),ownerExtension:r.owner,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",chDest:(null==r?void 0:r.chDest)||{},chSource:(null==r?void 0:r.chSource)||{},counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),O.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),O.currentCall.addTransferCalls({type:"transferred",displayName:C(r),number:"".concat(r.counterpartNum),startTime:"".concat(k.getTimestampInSeconds())}),p.store.getState().island.isFromStreaming&&"out"===r.direction&&setTimeout(function(){O.island.setIslandView("streamingAnswer")},200),f.isPhysical()&&function(e){O.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),l.eventDispatch("phone-island-call-answered",{}),p.store.dispatch.player.stopAudioPlayer(),p.store.dispatch.player.setAudioPlayerLoop(!1)}(r),"call"===v&&a&&O.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)O.currentCall.deleteTransferCalls();else if(r&&!r.connected){if(a&&!s){var A=d.find(function(e){return e.number===r.counterpartNum});!r.connected&&A&&(O.currentCall.updateCurrentCall({transferring:!1}),l.eventDispatch("phone-island-call-transfer-failed",{}),O.currentCall.updateTransferSwitching(!1))}"REC"===(null==r?void 0:r.counterpartName)&&O.physicalRecorder.setRecordingTempVariable(!0)}r&&!r.connected&&"out"===r.direction&&("REC"!==(null==r?void 0:r.counterpartName)&&_(r),O.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==r?void 0:r.counterpartName),displayName:C(r),counterpartDeviceType:"",number:"".concat(null==r?void 0:r.counterpartNum),username:"".concat(m&&m[null==r?void 0:r.counterpartNum]&&m[null==r?void 0:r.counterpartNum].username)||""}))}break;case"onhold":U(r);var M=r.counterpartName,R=r.counterpartNum,V=r.startTime;a&&R&&M&&"<unknown>"!==M&&(O.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(r),number:R,startTime:"".concat(k.getTimestampInSeconds())}),O.currentCall.updateCurrentCall({displayName:i.getDisplayName(r),number:R,startTime:"".concat(V/1e3),conversationId:r.id,counterpartDeviceType:""}),O.island.setIslandView("call"));break;case"busy_ringing":l.eventDispatch("phone-island-call-ringing",{})}}}else"online"==t.status&&y.userTotallyFree()&&(U(null),O.player.stopAudioPlayer(),O.currentCall.reset(),O.listen.reset(),O.physicalRecorder.setRecordingTempVariable(!1),O.island.setIsFromStreaming(!1))};return function(){var n=r.getApiMode(I);B.current=!1;var i={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3};"new"===n&&(i.path="/api/ws"),A.current=t.io("https://"+T,i),O.websocket.update({socket:A.current}),A.current.on("connect",function(){console.debug("Socket connected sid: ".concat(A.current.id)),l.eventDispatch("phone-island-socket-connected",{})}),A.current.on("disconnect",function(e){console.debug("Socket disconnect - reason: ".concat(e)),W.current=null,B.current=!0,P.current&&(clearInterval(P.current),P.current=null),e.includes("server disconnect")?l.eventDispatch("phone-island-server-disconnected",{}):l.eventDispatch("phone-island-socket-disconnected",{})}),A.current.io.on("error",function(e){console.debug("Socket error: ",e)}),A.current.on("connect_error",function(e){console.debug("Socket connect_error: ",e)}),A.current.io.on("reconnect",function(e){M.current=0,console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(A.current.id,")"))}),A.current.io.on("reconnect_attempt",function(e){console.debug("Socket reconnect_attempt ".concat(e))}),A.current.io.on("reconnect_error",function(e){console.debug("Socket reconnect_error: ",e)}),A.current.io.on("reconnect_failed",function(){console.debug("Socket reconnect_failed")}),A.current.on("connect",function(){console.debug("Socket on: "+T+" is connected!"),M.current=0,W.current=Date.now(),A.current.emit("login",{accessKeyId:"".concat(I),token:D,uaType:E})});var o=function(){setTimeout(function(){O.alerts.removeAlert("socket_down"),l.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),l.eventDispatch("phone-island-socket-disconnected-popup-close",{})},0)};A.current.on("authe_ok",function(){console.debug("Socket authentication success!"),W.current=null,M.current=0,l.eventDispatch("phone-island-socket-authorized",{}),B.current&&(B.current=!1,l.eventDispatch("phone-island-socket-reconnected",{})),o(),P.current&&clearInterval(P.current),P.current=setInterval(function(){var e=A.current.id;A.current.volatile.emit("ping",d.withTimeout(function(){M.current=0,o()},function(){A.current.connected&&A.current.id!==e||(M.current++,console.debug("Socket ping timeout (".concat(M.current,"/").concat(3,"), connected: ").concat(A.current.connected)),setTimeout(function(){var e,n,t=A.current.connected&&M.current>=3;if(!A.current.connected||t){var r=p.store.getState().webrtc.sipcall,i=p.store.getState().currentCall,o=i.accepted,u=i.outgoing,c=null===(n=null===(e=null==r?void 0:r.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===n?void 0:n.iceConnectionState;if((o||u)&&("connected"===c||"completed"===c))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:c,accepted:o,outgoing:u,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),A.current.disconnect(),A.current.connect()),O.alerts.setAlert("socket_down"),l.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}},0))},5e3))},5e3)}),A.current.on("userMainPresenceUpdate",function(n){p.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),b.dispatchMainPresence(n)}),A.current.on("extenHangup",function(e){var n=p.store.getState().currentUser,t=n.endpoints,r=n.username,i=n.call_summary_enabled,o=p.store.getState().conference,u=o.isActive,c=o.conferenceStartedFrom,s=p.store.getState().island,d=s.view,v=s.previewCallFromMobileOrNethlink,m=(null==t?void 0:t.extension)||[],f=m.map(function(e){return e.id}),g=null==e?void 0:e.callerNum;!f.includes(g)&&f.includes(null==e?void 0:e.channelExten)&&(g=null==e?void 0:e.channelExten);var h=m.find(function(n){return n.id===e.callerNum}),b=null==h?void 0:h.type,k=J(g).conversation,y=x(k),S=z(k),q=(null==k?void 0:k.connected)||!1;if(S&&y&&q&&(i&&l.eventDispatch("phone-island-summary-call-check",{linkedid:y,uniqueid:S}),g&&V.current.delete(g)),"normal_clearing"===e.cause&&("physical"===b||"mobile"===b)||"normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)&&v||"user_busy"===(null==e?void 0:e.cause)||"not_defined"===(null==e?void 0:e.cause)||"call_rejected"===(null==e?void 0:e.cause)||"interworking"===(null==e?void 0:e.cause)?(setTimeout(function(){p.store.dispatch.island.toggleAvoidToShow(!1),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)},500),u&&c!==r&&p.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&u&&c===r?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):"normal_clearing"!==e.cause&&"user_busy"!==(null==e?void 0:e.cause)&&"not_defined"!==(null==e?void 0:e.cause)&&"call_rejected"!==(null==e?void 0:e.cause)||"webrtc"!==b&&"nethlink"!==b||!u||c===r||p.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)||"call_rejected"===(null==e?void 0:e.cause))&&u&&c===r){var w=p.store.getState().conference,C=w.usersList,_=w.pendingUsers,N=C&&Object.keys(C).length>0,T=_&&Object.keys(_).length>0;N||T?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):p.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&u&&c===r&&"waitingConference"!==d&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),"user_busy"===(null==e?void 0:e.cause)){var I=p.store.getState().currentUser,D=I.endpoints,j=I.username,U=((null==D?void 0:D.extension)||[]).map(function(e){return e.id}),E=p.store.getState().currentCall,O=E.incoming,P=E.accepted,A=E.transferring,F=p.store.getState().conference,M=F.isActive,R=F.conferenceStartedFrom;!(O&&!!e.callerNum&&U.includes(e.callerNum))&&(!P||M||A)&&(p.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout(function(){p.store.dispatch.player.stopAudioPlayer()},4e3),setTimeout(function(){p.store.dispatch.player.updateStartAudioPlayer({src:a.default,loop:!0}),p.store.dispatch.island.setIslandView("operatorBusy")},600),M&&R===j&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var L=p.store.getState().conference,Q=L.isActive,W=L.conferenceStartedFrom,B=p.store.getState().currentUser.username;if(Q&&W===B){var K=p.store.getState().conference;C=K.usersList,_=K.pendingUsers,N=C&&Object.keys(C).length>0,T=_&&Object.keys(_).length>0;N||T?(setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),_&&_[e.callerNum]&&p.store.dispatch.conference.removePendingUser(e.callerNum)):p.store.dispatch.conference.resetConference()}}}),A.current.on("extenConnected",function(e){var n=p.store.getState().currentUser,t=n.default_device,r=n.endpoints,i=((null==r?void 0:r.extension)||[]).find(function(n){return n.id===e.extenConnected}),o=null==i?void 0:i.type;(("webrtc"===(null==t?void 0:t.type)||"nethlink"===(null==t?void 0:t.type))&&o&&("mobile"===o||"physical"===o)||"physical"===(null==t?void 0:t.type)&&o&&"physical"!==o)&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),l.eventDispatch("phone-island-call-answered",{extensionType:o}))}),A.current.on("extenUpdate",function(e){var n,t,r;O.users.updateExtension(e);var i=p.store.getState().users.extensions,o={},u=p.store.getState().currentUser;for(var c in i){var a=i[c].username,s=i[c].exten;o[a]||(o[a]=[]),o[a].push(s)}var l,d,v=o[e.username],m=Object.keys(e.conversations||{}),f=e.username===I,h=(null===(n=e.conversations)||void 0===n?void 0:n[m[0]])||{};f&&(l=e.exten,d=e.conversations,l&&Object.values(d||{}).forEach(function(e){H(e)&&V.current.set(l,{conversation:e,cachedAt:Date.now()})}));var k=!1;if((null==e?void 0:e.username)===I&&!g.isEmpty(h)&&(null==h?void 0:h.owner)){var y=null===(r=null===(t=null==u?void 0:u.endpoints)||void 0===t?void 0:t.extension)||void 0===r?void 0:r.find(function(e){return e.id===h.owner});y&&"mobile"===y.type&&(k=!0)}if(b.dispatchExtensions(e),g.isEmpty(h)){var S=null==v?void 0:v.some(function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!g.isEmpty(t)});S||b.dispatchConversations(e)}else k||b.dispatchConversations(e);k&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===I&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===I&&(G(e,h),O.currentUser.updateConversations(e))}),A.current.on("queueUpdate",function(e){O.queue.updateQueue(e);var n,t,r,i=(n=p.store.getState().currentUser.conversations,t=p.store.getState().currentCall.conversationId,r=null,Object.values(n||{}).forEach(function(e){Object.values(e||{}).forEach(function(e){(null==r?void 0:r.id)&&r.id===t||(t&&e.id===t||!r||e.connected&&!r.connected||e.connected===r.connected&&e.startTime>r.startTime)&&(r=e)})}),r);i&&U(i),b.dispatchQueueUpdate(e)}),A.current.on("queueMemberUpdate",function(e){O.queue.updateQueueMember(e),b.dispatchQueueMemberUpdate(e)}),A.current.on("takeOver",function(){b.dispatchAlreadyLogin()}),A.current.on("serverReloaded",function(){b.dispatchServerReload()}),A.current.on("parkingUpdate",function(e){b.dispatchParkingUpdate(e)}),A.current.on("actionNethLink",function(e,n){b.dispatchUrlCall(e,n)}),A.current.on("satellite/summary",function(e){var n=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId),t=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId);n&&v.dispatchSummaryReady({linkedid:t,uniqueid:n,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number,source:"socket"})}),A.current.on("message",function(e){switch(e.message){case"videoCallStart":var n=p.store.getState(),t=n.currentCall,r=t.incoming,i=t.outgoing,o=t.accepted,u=n.currentUser.default_device,c=n.island,a=c.isFromStreaming,s=c.view;("webrtc"===(null==u?void 0:u.type)||"nethlink"===(null==u?void 0:u.type))&&(r||i||o)&&!a&&"video"!==s&&(O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video")),b.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}}),A.current.on("updateDefaultDevice",function(n){b.dispatchDefaultDeviceUpdate(n);var t=p.store.getState().users.extensions,r=p.store.getState().currentUser.endpoints;if(t&&r){var i=Object.values(t).filter(function(e){return(null==e?void 0:e.exten)===n});if(0!==i.length){var o=i[0],u=r.extension.find(function(e){return e.id===o.exten});u&&(o=e.__assign(e.__assign({},o),{type:u.type})),p.store.dispatch.currentUser.updateCurrentDefaultDevice(o),m.checkMediaPermissions()}}}),A.current.on("confBridgeUpdate",function(n){if(n&&(null==n?void 0:n.users)){var t=null==n?void 0:n.id,r=null==n?void 0:n.users,i=p.store.getState().conference.usersList,o=e.__assign({},r);i&&Object.keys(o).forEach(function(n){i[n]&&(o[n]=e.__assign(e.__assign({},o[n]),{muted:i[n].muted}))}),p.store.dispatch.conference.updateConferenceUsersList(o),p.store.dispatch.conference.updateConferenceId(t)}}),A.current.on("confBridgeEnd",function(e){e&&(null==e?void 0:e.id)&&(p.store.dispatch.conference.resetConference(),l.eventDispatch("phone-island-conference-finished",{}))}),A.current.on("callWebrtc",function(e){l.eventDispatch("phone-island-call-start",{number:e})}),A.current.on("newVoiceMessageCounter",function(e){l.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})}),A.current.on("streamingSourceUpdate",function(e){l.eventDispatch("phone-island-streaming-information-received",{res:e});var n=e.streaming||e.res&&e.res.streaming;if(n){var t=n.source,r=n.image;t&&r&&O.streaming.updateSourceImage({source:t,image:r})}}),A.current.on("satellite/transcription",function(e){var n=K.current,t=null==e?void 0:e.uniqueid,r=null==e?void 0:e.linkedid;if(n.linkedid&&t){var i=function(e){return null!=e&&(e===n.linkedid||e===n.uniqueid)};if(!i(t)&&!i(r))return}l.eventDispatch("phone-island-conversation-transcription",e)})}(),function(){clearInterval(P.current),L.current.clear(),Q.current.clear(),A.current.close()}},[T,I,D,E,O]),n.useEffect(function(){var e,n;if(j){console.info("Socket reload requested");var t=p.store.getState().alerts.data,r=p.store.getState().island.forceReload,i=(null===(e=t.socket_down)||void 0===e?void 0:e.active)||!1,o=!(null===(n=A.current)||void 0===n?void 0:n.connected);!o&&null!==W.current&&Date.now()-W.current<3e4&&!r?(console.info("Socket connected and authenticating, skipping reconnection"),U()):i||o||r?(console.info(r?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active or disconnected), performing reconnection"),P.current&&(clearInterval(P.current),P.current=null),setTimeout(function(){A.current.disconnect(),A.current.connect(),U()},100)):(console.info("Socket already connected (no alert active), skipping reconnection"),U())}},[j]),N.default.createElement(N.default.Fragment,null,x)};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../node_modules/socket.io-client/build/esm/index.js"),r=require("./RestAPI.js"),i=require("../lib/phone/conversation.js"),o=require("../lib/phone/counterpartDevice.js"),u=require("../services/phonebook.js"),c=require("../services/user.js"),a=require("../static/busy_ringtone.js"),s=require("../utils/customHooks/useEventListener.js"),l=require("../utils/genericFunctions/eventDispatch.js"),d=require("../utils/genericFunctions/withTimeout.js"),v=require("../utils/genericFunctions/summaryEvents.js"),p=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var m=require("../lib/devices/devices.js"),f=require("../lib/user/default_device.js"),g=require("../utils/genericFunctions/isEmpty.js"),h=require("../utils/streaming/getStreamingSourceId.js"),b=require("../events/SocketEvents.js"),k=require("../utils/genericFunctions/timestamp.js"),y=require("../lib/user/extensions.js"),S=require("../utils/streaming/isFromStreaming.js"),q=require("../lib/phone/queue.js"),w=require("../lib/phone/trunk.js"),C=require("../node_modules/react-redux/es/hooks/useDispatch.js");function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var N=_(n);exports.Socket=function(_){var I=_.hostName,T=_.username,D=_.authToken,j=_.reload,U=_.reloadedCallback,x=_.children,E=_.uaType,O=C.useDispatch(),P=n.useRef(),A=n.useRef(),F=n.useRef(!1),M=n.useRef(0),R=n.useRef(null),V=n.useRef(new Map),L=n.useRef(new Map),Q=n.useRef(new Set),W=n.useRef(null),B=n.useRef(!1),K=n.useRef({linkedid:null,uniqueid:null});s.useEventListener("phone-island-start-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:n,uniqueid:t},A.current.emit("start_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-stop-transcription",function(e){if(A.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId)||(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||null,t=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId)||n;if(!n&&!t)return;K.current={linkedid:null,uniqueid:null},A.current.emit("stop_transcription",{linkedid:n,uniqueid:t})}}),s.useEventListener("phone-island-current-user-queue-call-waiting",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})}),s.useEventListener("phone-island-current-user-queue-call-connected",function(e){O.currentCall.updateCurrentCall({throughQueue:!0,queueId:(null==e?void 0:e.queueId)||"",queueName:(null==e?void 0:e.queueName)||"",queueNumber:(null==e?void 0:e.queueNumber)||"",queuePosition:(null==e?void 0:e.queuePosition)||"",queueWaitingTime:(null==e?void 0:e.queueWaitingTime)||0})});return n.useEffect(function(){var n=function(e){if(e.counterpartNum&&S.isFromStreaming(e.counterpartNum)){O.island.setIsFromStreaming(!0),O.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=h.getStreamingSourceId(e.counterpartNum);n&&c.subscribe({id:n}).catch(function(e){return console.error("Error subscribing to streaming source:",e)})}},s=function(e){return(e||"").replace(/\D/g,"")},C=function(e){var n=i.getDisplayName(e),t=((null==e?void 0:e.counterpartNum)||"").trim();return n&&n!==t&&!i.isNumberOnlyName(n)?n:(t?L.current.get(s(t)):void 0)||n},_=function(e){if(e){var n=(e.counterpartNum||"").trim();if(!(n.length<3)){var t=(e.counterpartName||"").trim();if(!t||"<unknown>"===t||t===n||i.isNumberOnlyName(t)){var r=p.store.getState().users.extensions;if(!(r&&r[n]||S.isFromStreaming(n))){var o=s(n);L.current.has(o)||e.id&&Q.current.has(e.id)||(e.id&&(Q.current.size>500&&Q.current.clear(),Q.current.add(e.id)),u.searchPhonebook(1,n,"").then(function(e){var n=((null==e?void 0:e.rows)||[]).find(function(e){return[e.extension,e.workphone,e.homephone,e.cellphone,e.fax].some(function(e){var n=s(e);return 0!==n.length&&(n===o||!(Math.min(n.length,o.length)<6)&&(n.endsWith(o)||o.endsWith(n)))})}),t=((null==n?void 0:n.name)||(null==n?void 0:n.company)||"").trim();if(t){L.current.set(o,t);var r=p.store.getState().currentCall;s(r.number)===o&&O.currentCall.updateCurrentCall({displayName:t})}}).catch(function(){}))}}}}},N=function(e){return q.getCurrentCallQueueContext(e,p.store.getState().queue)},j=function(e,n){var t=p.store.getState().currentCall,r=(null==n?void 0:n.queueId)||t.queueId||"",i=(null==n?void 0:n.queueName)||t.queueName||"",o=(null==n?void 0:n.queueNumber)||t.queueNumber||"";return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:r,queueName:i,queueNumber:o,queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}},U=function(e){var n,t,r,i;if(e){var o=N(e),u=j(e,o);if(Boolean(u.queueId||u.queueName||u.queueNumber))if(e.connected)((null===(r=R.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=R.current)||void 0===i?void 0:i.phase))&&(b.dispatchCurrentUserQueueCallConnected(u),R.current={conversationId:e.id,phase:"connected"});else((null===(n=R.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=R.current)||void 0===t?void 0:t.phase))&&(b.dispatchCurrentUserQueueCallWaiting(u),R.current={conversationId:e.id,phase:"waiting"});else R.current=null}else R.current=null},x=function(e){return(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid)||""},z=function(e){return(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid)||""},H=function(e){return!!(null==e?void 0:e.connected)&&!!x(e)&&!!z(e)},J=function(n){var t=p.store.getState().currentUser.conversations,r=n?null==t?void 0:t[n]:void 0,i=function(e){var n,t=null,r=Object.entries(e||{}).filter(function(e){var n=e[1];return n&&Object.keys(n).length>0});return r.forEach(function(e){var r,i,o=e[0],u=e[1];if(!t)return t=u,void(n=o);var c=H(t),a=H(u);if(a&&!c)return t=u,void(n=o);if(a===c){var s=!!t.connected,l=!!u.connected;if(l&&!s)return t=u,void(n=o);var d=null!==(r=t.startTime)&&void 0!==r?r:0,v=null!==(i=u.startTime)&&void 0!==i?i:0;l===s&&v>d&&(t=u,n=o)}}),{conversation:t,key:n,count:r.length}}(r);if(H(i.conversation))return e.__assign(e.__assign({},i),{source:"live",cacheAgeMs:void 0,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})});var o=function(n){if(!n)return null;var t=V.current.get(n);if(!t)return null;var r=Date.now()-t.cachedAt;return r>6e5?(V.current.delete(n),null):e.__assign(e.__assign({},t),{cacheAgeMs:r})}(n);return o&&H(o.conversation)?{conversation:o.conversation,key:o.conversation.id,count:i.count,source:"cache",cacheAgeMs:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})}:e.__assign(e.__assign({},i),{source:i.conversation?"live_invalid":"none",cacheAgeMs:null==o?void 0:o.cacheAgeMs,hasConversationForCaller:!!r,liveConversationKeys:Object.keys(r||{})})},G=function(t,r){var u=p.store.getState().currentCall,a=u.transferring,s=u.transferSwitching,d=u.transferCalls,v=p.store.getState().island.view;if(Object.keys(r).length>0){if(t.status){var m=p.store.getState().users.extensions,g=p.store.getState().currentUser.default_device,h=p.store.getState().currentUser,b=h.endpoints,S=h.username,q=function(){if(!m||!S)return!1;var e=Object.values(m).filter(function(e){return(null==e?void 0:e.username)===S});return null==e?void 0:e.some(function(e){var n=null==b?void 0:b.extension.find(function(n){return n.id===(null==e?void 0:e.exten)});return"nethlink"===(null==n?void 0:n.type)&&"offline"!==(null==e?void 0:e.status)})};switch(t.status){case"ringing":if(function(e){var n=p.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(r.owner))break;var I=N(r),T=j(r,I);U(r),n(r),_(r),("mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type)))&&(O.currentCall.checkIncomingUpdatePlay({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),incomingSocket:!0,incoming:!0,throughQueue:Boolean(T.queueId||T.queueName||T.queueNumber),queueId:T.queueId,queueName:T.queueName,queueNumber:T.queueNumber,queuePosition:T.queuePosition,queueWaitingTime:T.queueWaitingTime,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",ownerExtension:r.owner,counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),p.store.dispatch.island.setIslandView("call")),F.current||(F.current=!0,c.getCurrentUserInfo().then(function(n){n&&(O.currentUser.updateCurrentUser(n),l.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?O.paramUrl.setOpenParamUrlType(n.settings.open_param_url):O.paramUrl.setOpenParamUrlType("never"))}).catch(function(e){console.error("Error getting current user info:",e)}).finally(function(){setTimeout(function(){F.current=!1},100)}));var D=p.store.getState().paramUrl.openParamUrlType,x=p.store.getState().island.urlOpened;if("ringing"===D&&!x){var P=w.isFromTrunk(r.counterpartNum);p.store.dispatch.paramUrl.setThroughTrunk(P),p.store.dispatch.island.setUrlOpened(!1),l.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:r.counterpartNum,counterpartName:C(r),owner:r.owner,uniqueId:r.uniqueId,linkedId:r.linkedId,throughQueue:r.throughQueue,throughTrunk:P,direction:r.direction,connected:r.connected})}break;case"busy":if(U(r),n(r),"mobile"===E&&q()||"desktop"===E&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type))){if(r&&r.connected)O.currentCall.updateCurrentCall({conversationId:r.id,displayName:C(r),number:"".concat(r.counterpartNum),ownerExtension:r.owner,username:"".concat(m&&m[r.counterpartNum]&&m[r.counterpartNum].username)||"",chDest:(null==r?void 0:r.chDest)||{},chSource:(null==r?void 0:r.chSource)||{},counterpartDeviceType:o.getCounterpartDeviceType(r,p.store.getState().users)}),O.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),O.currentCall.addTransferCalls({type:"transferred",displayName:C(r),number:"".concat(r.counterpartNum),startTime:"".concat(k.getTimestampInSeconds())}),p.store.getState().island.isFromStreaming&&"out"===r.direction&&setTimeout(function(){O.island.setIslandView("streamingAnswer")},200),f.isPhysical()&&function(e){O.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),l.eventDispatch("phone-island-call-answered",{}),p.store.dispatch.player.stopAudioPlayer(),p.store.dispatch.player.setAudioPlayerLoop(!1)}(r),"call"===v&&a&&O.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)O.currentCall.deleteTransferCalls();else if(r&&!r.connected){if(a&&!s){var A=d.find(function(e){return e.number===r.counterpartNum});!r.connected&&A&&(O.currentCall.updateCurrentCall({transferring:!1}),l.eventDispatch("phone-island-call-transfer-failed",{}),O.currentCall.updateTransferSwitching(!1))}"REC"===(null==r?void 0:r.counterpartName)&&O.physicalRecorder.setRecordingTempVariable(!0)}r&&!r.connected&&"out"===r.direction&&("REC"!==(null==r?void 0:r.counterpartName)&&_(r),O.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==r?void 0:r.counterpartName),displayName:C(r),counterpartDeviceType:"",number:"".concat(null==r?void 0:r.counterpartNum),username:"".concat(m&&m[null==r?void 0:r.counterpartNum]&&m[null==r?void 0:r.counterpartNum].username)||""}))}break;case"onhold":U(r);var M=r.counterpartName,R=r.counterpartNum,V=r.startTime;a&&R&&M&&"<unknown>"!==M&&(O.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(r),number:R,startTime:"".concat(k.getTimestampInSeconds())}),O.currentCall.updateCurrentCall({displayName:i.getDisplayName(r),number:R,startTime:"".concat(V/1e3),conversationId:r.id,counterpartDeviceType:""}),O.island.setIslandView("call"));break;case"busy_ringing":l.eventDispatch("phone-island-call-ringing",{})}}}else"online"==t.status&&y.userTotallyFree()&&(U(null),O.player.stopAudioPlayer(),O.currentCall.reset(),O.listen.reset(),O.physicalRecorder.setRecordingTempVariable(!1),O.island.setIsFromStreaming(!1))};return function(){var n=r.getApiMode(T);B.current=!1;var i={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3};"new"===n&&(i.path="/api/ws"),A.current=t.io("https://"+I,i),O.websocket.update({socket:A.current}),A.current.on("connect",function(){console.debug("Socket connected sid: ".concat(A.current.id)),l.eventDispatch("phone-island-socket-connected",{})}),A.current.on("disconnect",function(e){console.debug("Socket disconnect - reason: ".concat(e)),W.current=null,B.current=!0,P.current&&(clearInterval(P.current),P.current=null),e.includes("server disconnect")?l.eventDispatch("phone-island-server-disconnected",{}):l.eventDispatch("phone-island-socket-disconnected",{})}),A.current.io.on("error",function(e){console.debug("Socket error: ",e)}),A.current.on("connect_error",function(e){console.debug("Socket connect_error: ",e)}),A.current.io.on("reconnect",function(e){M.current=0,console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(A.current.id,")"))}),A.current.io.on("reconnect_attempt",function(e){console.debug("Socket reconnect_attempt ".concat(e))}),A.current.io.on("reconnect_error",function(e){console.debug("Socket reconnect_error: ",e)}),A.current.io.on("reconnect_failed",function(){console.debug("Socket reconnect_failed")}),A.current.on("connect",function(){console.debug("Socket on: "+I+" is connected!"),M.current=0,W.current=Date.now(),A.current.emit("login",{accessKeyId:"".concat(T),token:D,uaType:E})});var o=function(){setTimeout(function(){O.alerts.removeAlert("socket_down"),l.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),l.eventDispatch("phone-island-socket-disconnected-popup-close",{})},0)};A.current.on("authe_ok",function(){console.debug("Socket authentication success!"),W.current=null,M.current=0,l.eventDispatch("phone-island-socket-authorized",{}),B.current&&(B.current=!1,l.eventDispatch("phone-island-socket-reconnected",{})),o(),P.current&&clearInterval(P.current),P.current=setInterval(function(){var e=A.current.id;A.current.volatile.emit("ping",d.withTimeout(function(){M.current=0,o()},function(){A.current.connected&&A.current.id!==e||(M.current++,console.debug("Socket ping timeout (".concat(M.current,"/").concat(3,"), connected: ").concat(A.current.connected)),setTimeout(function(){var e,n,t=A.current.connected&&M.current>=3;if(!A.current.connected||t){var r=p.store.getState().webrtc.sipcall,i=p.store.getState().currentCall,o=i.accepted,u=i.outgoing,c=null===(n=null===(e=null==r?void 0:r.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===n?void 0:n.iceConnectionState;if((o||u)&&("connected"===c||"completed"===c))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:c,accepted:o,outgoing:u,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),A.current.disconnect(),A.current.connect()),O.alerts.setAlert("socket_down"),l.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}},0))},5e3))},5e3)}),A.current.on("userMainPresenceUpdate",function(n){p.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),b.dispatchMainPresence(n)}),A.current.on("extenHangup",function(e){var n=p.store.getState().currentUser,t=n.endpoints,r=n.username,i=n.call_summary_enabled,o=p.store.getState().conference,u=o.isActive,c=o.conferenceStartedFrom,s=p.store.getState().island,d=s.view,v=s.previewCallFromMobileOrNethlink,m=(null==t?void 0:t.extension)||[],f=m.map(function(e){return e.id}),g=null==e?void 0:e.callerNum;!f.includes(g)&&f.includes(null==e?void 0:e.channelExten)&&(g=null==e?void 0:e.channelExten);var h=m.find(function(n){return n.id===e.callerNum}),b=null==h?void 0:h.type,k=J(g).conversation,y=x(k),S=z(k),q=(null==k?void 0:k.connected)||!1;if(S&&y&&q&&(i&&l.eventDispatch("phone-island-summary-call-check",{linkedid:y,uniqueid:S}),g&&V.current.delete(g)),"normal_clearing"===e.cause&&("physical"===b||"mobile"===b)||"normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)&&v||"user_busy"===(null==e?void 0:e.cause)||"not_defined"===(null==e?void 0:e.cause)||"call_rejected"===(null==e?void 0:e.cause)||"interworking"===(null==e?void 0:e.cause)?(setTimeout(function(){p.store.dispatch.island.toggleAvoidToShow(!1),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)},500),u&&c!==r&&p.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&u&&c===r?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):"normal_clearing"!==e.cause&&"user_busy"!==(null==e?void 0:e.cause)&&"not_defined"!==(null==e?void 0:e.cause)&&"call_rejected"!==(null==e?void 0:e.cause)||"webrtc"!==b&&"nethlink"!==b||!u||c===r||p.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===b||"nethlink"===b)||"call_rejected"===(null==e?void 0:e.cause))&&u&&c===r){var w=p.store.getState().conference,C=w.usersList,_=w.pendingUsers,N=C&&Object.keys(C).length>0,I=_&&Object.keys(_).length>0;N||I?setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800):p.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&u&&c===r&&"waitingConference"!==d&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),"user_busy"===(null==e?void 0:e.cause)){var T=p.store.getState().currentUser,D=T.endpoints,j=T.username,U=((null==D?void 0:D.extension)||[]).map(function(e){return e.id}),E=p.store.getState().currentCall,O=E.incoming,P=E.accepted,A=E.transferring,F=p.store.getState().conference,M=F.isActive,R=F.conferenceStartedFrom;!(O&&!!e.callerNum&&U.includes(e.callerNum))&&(!P||M||A)&&(p.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout(function(){p.store.dispatch.player.stopAudioPlayer()},4e3),setTimeout(function(){p.store.dispatch.player.updateStartAudioPlayer({src:a.default,loop:!0}),p.store.dispatch.island.setIslandView("operatorBusy")},600),M&&R===j&&setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var L=p.store.getState().conference,Q=L.isActive,W=L.conferenceStartedFrom,B=p.store.getState().currentUser.username;if(Q&&W===B){var K=p.store.getState().conference;C=K.usersList,_=K.pendingUsers,N=C&&Object.keys(C).length>0,I=_&&Object.keys(_).length>0;N||I?(setTimeout(function(){l.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})},800),_&&_[e.callerNum]&&p.store.dispatch.conference.removePendingUser(e.callerNum)):p.store.dispatch.conference.resetConference()}}}),A.current.on("extenConnected",function(e){var n=p.store.getState().currentUser,t=n.default_device,r=n.endpoints,i=((null==r?void 0:r.extension)||[]).find(function(n){return n.id===e.extenConnected}),o=null==i?void 0:i.type;(("webrtc"===(null==t?void 0:t.type)||"nethlink"===(null==t?void 0:t.type))&&o&&("mobile"===o||"physical"===o)||"physical"===(null==t?void 0:t.type)&&o&&"physical"!==o)&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),l.eventDispatch("phone-island-call-answered",{extensionType:o}))}),A.current.on("extenUpdate",function(e){var n,t,r;O.users.updateExtension(e);var i=p.store.getState().users.extensions,o={},u=p.store.getState().currentUser;for(var c in i){var a=i[c].username,s=i[c].exten;o[a]||(o[a]=[]),o[a].push(s)}var l,d,v=o[e.username],m=Object.keys(e.conversations||{}),f=e.username===T,h=(null===(n=e.conversations)||void 0===n?void 0:n[m[0]])||{};f&&(l=e.exten,d=e.conversations,l&&Object.values(d||{}).forEach(function(e){H(e)&&V.current.set(l,{conversation:e,cachedAt:Date.now()})}));var k=!1;if((null==e?void 0:e.username)===T&&!g.isEmpty(h)&&(null==h?void 0:h.owner)){var y=null===(r=null===(t=null==u?void 0:u.endpoints)||void 0===t?void 0:t.extension)||void 0===r?void 0:r.find(function(e){return e.id===h.owner});y&&"mobile"===y.type&&(k=!0)}if(b.dispatchExtensions(e),g.isEmpty(h)){var S=null==v?void 0:v.some(function(e){var n,t=null===(n=i[e])||void 0===n?void 0:n.conversations;return!g.isEmpty(t)});S||b.dispatchConversations(e)}else k||b.dispatchConversations(e);k&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===T&&(p.store.dispatch.island.toggleAvoidToShow(!0),p.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===T&&(G(e,h),O.currentUser.updateConversations(e))}),A.current.on("queueUpdate",function(e){O.queue.updateQueue(e);var n,t,r,i=(n=p.store.getState().currentUser.conversations,t=p.store.getState().currentCall.conversationId,r=null,Object.values(n||{}).forEach(function(e){Object.values(e||{}).forEach(function(e){(null==r?void 0:r.id)&&r.id===t||(t&&e.id===t||!r||e.connected&&!r.connected||e.connected===r.connected&&e.startTime>r.startTime)&&(r=e)})}),r);i&&U(i),b.dispatchQueueUpdate(e)}),A.current.on("queueMemberUpdate",function(e){O.queue.updateQueueMember(e),b.dispatchQueueMemberUpdate(e)}),A.current.on("takeOver",function(){b.dispatchAlreadyLogin()}),A.current.on("serverReloaded",function(){b.dispatchServerReload()}),A.current.on("parkingUpdate",function(e){b.dispatchParkingUpdate(e)}),A.current.on("actionNethLink",function(e,n){b.dispatchUrlCall(e,n)}),A.current.on("satellite/summary",function(e){var n=(null==e?void 0:e.uniqueid)||(null==e?void 0:e.uniqueId),t=(null==e?void 0:e.linkedid)||(null==e?void 0:e.linkedId);n&&v.dispatchSummaryReady({linkedid:t,uniqueid:n,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number,source:"socket"})}),A.current.on("message",function(e){switch(e.message){case"videoCallStart":var n=p.store.getState(),t=n.currentCall,r=t.incoming,i=t.outgoing,o=t.accepted,u=n.currentUser.default_device,c=n.island,a=c.isFromStreaming,s=c.view;("webrtc"===(null==u?void 0:u.type)||"nethlink"===(null==u?void 0:u.type))&&(r||i||o)&&!a&&"video"!==s&&(O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video")),b.dispatchVideoCallStarted({initiator:"remote",callUser:e.callUser,destUser:e.destUser});break;case"screenSharingStart":O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":var l=p.store.getState().screenShare.room,d=e.roomId;if(l&&d&&"".concat(d)!=="".concat(l))break;O.island.toggleSideViewVisible(!1),O.island.toggleTranscriptionViewVisible(!1),O.island.setIslandView("video"),O.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}}),A.current.on("updateDefaultDevice",function(n){b.dispatchDefaultDeviceUpdate(n);var t=p.store.getState().users.extensions,r=p.store.getState().currentUser.endpoints;if(t&&r){var i=Object.values(t).filter(function(e){return(null==e?void 0:e.exten)===n});if(0!==i.length){var o=i[0],u=r.extension.find(function(e){return e.id===o.exten});u&&(o=e.__assign(e.__assign({},o),{type:u.type})),p.store.dispatch.currentUser.updateCurrentDefaultDevice(o),m.checkMediaPermissions()}}}),A.current.on("confBridgeUpdate",function(n){if(n&&(null==n?void 0:n.users)){var t=null==n?void 0:n.id,r=null==n?void 0:n.users,i=p.store.getState().conference.usersList,o=e.__assign({},r);i&&Object.keys(o).forEach(function(n){i[n]&&(o[n]=e.__assign(e.__assign({},o[n]),{muted:i[n].muted}))}),p.store.dispatch.conference.updateConferenceUsersList(o),p.store.dispatch.conference.updateConferenceId(t)}}),A.current.on("confBridgeEnd",function(e){e&&(null==e?void 0:e.id)&&(p.store.dispatch.conference.resetConference(),l.eventDispatch("phone-island-conference-finished",{}))}),A.current.on("callWebrtc",function(e){l.eventDispatch("phone-island-call-start",{number:e})}),A.current.on("newVoiceMessageCounter",function(e){l.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})}),A.current.on("streamingSourceUpdate",function(e){l.eventDispatch("phone-island-streaming-information-received",{res:e});var n=e.streaming||e.res&&e.res.streaming;if(n){var t=n.source,r=n.image;t&&r&&O.streaming.updateSourceImage({source:t,image:r})}}),A.current.on("satellite/transcription",function(e){var n=K.current,t=null==e?void 0:e.uniqueid,r=null==e?void 0:e.linkedid;if(n.linkedid&&t){var i=function(e){return null!=e&&(e===n.linkedid||e===n.uniqueid)};if(!i(t)&&!i(r))return}l.eventDispatch("phone-island-conversation-transcription",e)})}(),function(){clearInterval(P.current),L.current.clear(),Q.current.clear(),A.current.close()}},[I,T,D,E,O]),n.useEffect(function(){var e,n;if(j){console.info("Socket reload requested");var t=p.store.getState().alerts.data,r=p.store.getState().island.forceReload,i=(null===(e=t.socket_down)||void 0===e?void 0:e.active)||!1,o=!(null===(n=A.current)||void 0===n?void 0:n.connected);!o&&null!==W.current&&Date.now()-W.current<3e4&&!r?(console.info("Socket connected and authenticating, skipping reconnection"),U()):i||o||r?(console.info(r?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active or disconnected), performing reconnection"),P.current&&(clearInterval(P.current),P.current=null),setTimeout(function(){A.current.disconnect(),A.current.connect(),U()},100)):(console.info("Socket already connected (no alert active), skipping reconnection"),U())}},[j]),N.default.createElement(N.default.Fragment,null,x)};
|
|
2
2
|
//# sourceMappingURL=Socket.js.map
|