@nethesis/phone-island 1.1.4 → 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.map +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.map +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.map +1 -1
- 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 +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 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
|
+
{"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":"moBA0BgC,SAACA,uBACzBC,EAAWC,EAAAA,cACXC,EAAkBC,EAAWA,YAAC,SAACC,GAAqB,OAAAA,EAAMC,WAAN,GACpDC,EAAsBH,EAAWA,YAAC,SAACC,GAAqB,OAAAA,EAAMG,KAAN,GACxDC,EAAeL,EAAWA,YAAC,SAACC,GAAqB,OAAAA,EAAMK,QAAN,GACjDC,EAAoBC,EAAKA,MAACC,OAAOC,aAAaH,kBAAkBC,EAAKA,MAACG,YACtEC,EAAQC,SAAYC,EAAAA,SACpBC,EAAgBf,cAAY,SAACC,GAAqB,OAAAA,EAAMC,YAAYa,aAAlB,GAElDC,EAA0CC,EAAAA,SAAgB,IAAzDC,EAAgBF,EAAA,GAAEG,EAAmBH,EAAA,GACtCI,EAA0DH,EAAAA,UAAS,GAAlEI,EAAwBD,EAAA,GAAEE,EAA2BF,EAAA,GAEtDG,EAA4BC,EAAAA,YAAY,WAC5C,IAAMC,EAAqBC,OAAOC,OAAOZ,GAAea,KAAK,SAACC,GAAS,OAAAH,OAAOI,KAAKD,GAAME,OAAS,CAAC,GACnG,OAAON,EAAsBC,OAAOC,OAAOF,GAAoB,GAAa,IAC9E,EAAG,CAACV,IAEEiB,EAA8BR,cAClC,SAACS,GAEC,GADApC,EAASqC,OAAOC,uBAAsB,GACrB,YAAbF,EAAwB,CAC1B,IAAMR,EAAqBC,OAAOC,OAAOZ,GAAea,KACtD,SAACC,GAAS,OAAAH,OAAOI,KAAKD,GAAME,OAAS,CAAC,GAElCK,EAAmBX,EAAqBC,OAAOC,OAAOF,GAAoB,GAAK,KAErF,IAAIW,eAAAA,EAAkBC,YAA6C,QAAhCD,eAAAA,EAAkBE,WAAoB,CACvE,IAAMC,EAAY,CAChBC,eAAgBJ,EAAiBI,eACjCC,gBAAiBL,EAAiBK,gBAClCC,MAAON,EAAiBM,MACxBC,SAAUP,EAAiBO,SAC3BC,SAAUR,EAAiBQ,SAC3BC,aAAcT,EAAiBS,aAC/BC,aAAcV,EAAiBU,aAC/BR,UAAWF,EAAiBE,UAC5BD,UAAWD,EAAiBC,WAE9BU,gBAAc,oCAAqCR,EACpD,CACF,MAAuB,OAAbN,GACTpC,EAASqC,OAAOc,cAAcf,EAEjC,EACD,CAACpC,EAASqC,OAAQnB,IAGdkC,EAAwBzB,cAAY,WAAA,OAAA0B,EAAAA,eAAA,OAAA,OAAA,EAAA,8EACpC,OAAA3C,EAAkBwB,OAAS,EACE,CAAA,EAAAoB,EAAqBA,yBADtB,CAAA,EAAA,UAG9B,OAFMC,EAAmBC,EAA6BC,OACtDhC,EAA4B8B,GAC5B,CAAA,EAAOA,UAGP,OADA9B,GAA4B,GAC5B,CAAA,GAAO,KAEV,EAAA,EAAE,CAACf,EAAkBwB,SAEhBwB,EAAgB/B,cAAY,WAAA,OAAA0B,EAAAA,eAAA,OAAA,OAAA,EAAA,wEACP,MAAM,CAAA,EAAAD,mBAANI,EAA6BC,SAEpDtB,EAA4B,SAC5BxB,QAAMX,SAAS2D,YAAYC,kBAAkB,CAC3CC,qBAAqB,EACrBC,qBAAqB,WAG1B,EAAA,EAAE,CAACV,EAAuBjB,IAErB4B,EAAoBpC,cAAY,WAAA,OAAA0B,EAAAA,eAAA,OAAA,OAAA,EAAA,gFAGpC,GAAI1C,QAAMG,WAAWkD,YAAYC,OAE/B,OADA9B,EAA4B,SACtB,CAAA,oBAIgB,6BAAA,CAAA,EAAM+B,UAAUrD,aAAasD,gBAAgB,CAAEC,OAAO,mBAA5EC,EAAsBb,sBAGtB,kBADAc,QAAQC,KAAK,4BAA6BC,GACpC,CAAA,UAER,OAAK7D,EAAAA,MAAMG,WAAW6C,YAAYc,UAAY9D,EAAAA,MAAMG,WAAWkD,YAAYC,QACzEI,EAAoBK,YAAYC,QAAQ,SAACC,GAAU,OAAAA,EAAMC,MAAN,GAC7C,CAAA,KAERlE,QAAMX,SAASgE,YAAYc,OAAO,CAChCT,oBAAmBA,EACnBU,uBAAuB,IAEzB5C,EAA4B,gBAC7B,EAAA,EAAE,CAACA,IAEE6C,EAAcC,UAClB,iBAAM,OAA0B,QAA1BzB,EAAAtD,aAAe,EAAfA,EAAiBgF,eAAS,IAAA1B,OAAA,EAAAA,EAAA2B,oBAAqB,CAAA,CAAE,EACvD,CAAyB,QAAxB3B,EAAAtD,aAAA,EAAAA,EAAiBgF,eAAO,IAAA1B,OAAA,EAAAA,EAAE2B,oBAGvBC,EAAmBH,EAAAA,QACvB,iCAAM,MAAC,CACLI,WAA0D,QAA/CC,EAAkC,kBAAlC9B,EAAAwB,aAAW,EAAXA,EAAaO,+BAAUP,mBAAW,IAAAQ,OAAA,EAAAA,EAAEC,iBAAW,IAAAH,OAAA,EAAAA,EAAAI,SAAS,EACnEC,eAC6D,YAAZ,QAA/CC,EAA6B,kBAA7BC,EAAA9E,aAAK,EAALA,EAAO+E,8BAASC,qBAAa,IAAAC,OAAA,EAAAA,EAAEC,sBAAgB,IAAAL,OAAA,EAAAA,EAAAM,oBAC9C/E,EAAyC,QAAzCgF,EAA0B,UAA1BnB,aAAA,EAAAA,EAAaoB,qBAAa,IAAAC,OAAA,EAAAA,EAAErB,mBAAa,IAAAmB,OAAA,EAAAA,EAAAG,qCAAgBZ,SAAS,GACrEa,iBAAiBlF,eAAAA,EAAkBa,QAAS,IAE9C,SACE2D,EAAoC,QAApCP,EAAuB,QAAvBE,EAAAR,aAAA,EAAAA,EAAaO,gBAAU,IAAAC,OAAA,EAAAA,EAAAR,mBAAa,IAAAM,OAAA,EAAAA,EAAAG,gCAAWC,cAC/CW,EAAyC,QAAzCT,EAA4B,QAA5BI,EAAAhB,aAAA,EAAAA,EAAaoB,qBAAe,IAAAJ,OAAA,EAAAA,EAAAhB,mBAAa,IAAAY,OAAA,EAAAA,EAAAU,qCAAgBZ,MACzDrE,aAAA,EAAAA,EAAkBa,eAClBiE,EAAAjG,aAAe,EAAfA,EAAiBsG,qCAAgBC,KACjC1G,IAIE2G,EAAqBzB,EAAAA,QAAQ,WACjC,IAAM1C,EAAmBb,IAGzB,GAAsC,UAAlClB,EAAamG,iBACf,OAAO,EAGT,KAAKpE,aAAA,EAAAA,EAAkBC,YAA6C,QAAhCD,aAAA,EAAAA,EAAkBE,WACpD,OAAO,EAIT,GAAsC,WAAlCjC,EAAamG,iBAA+B,CAC9C,GAAInG,EAAaoG,aAAcrE,aAAgB,EAAhBA,EAAkBS,cAC/C,OAAO,EACF,IACJxC,EAAaoG,aACbC,EAAAA,YAAYtE,EAAiBI,kBAAmBJ,eAAAA,EAAkBS,eAEnE,OAAO,CAEV,CAED,OAAO,CACT,EAAG,CAACtB,EAA2BlB,EAAaoG,WAAYpG,EAAamG,mBAErEG,EAAAA,UAAU,WACR,GAAI5G,GAAmBI,EAAqB,CAC1C,IAAMyG,EAAUC,EAAAA,oBAAoB9G,EAAiBI,GACrDgB,EAAoByF,EACrB,CACH,EAAG,CAAC7G,EAAiBI,IAErB,IAAM2G,EAAwBtF,EAAAA,YAAY,WACxC,IAAMY,EAAmBb,IACnBqB,GAAWR,eAAAA,EAAkBQ,YAAYR,aAAgB,EAAhBA,EAAkB2E,UAC3DpE,GAAWP,eAAAA,EAAkBO,YAAYP,aAAgB,EAAhBA,EAAkB4E,WAE5DpE,GAAaD,KAKlB9C,EAASqC,OAAOC,uBAAsB,GACtCY,EAAAA,cAAc,kCAAmC,CAC/CgE,SAAUnE,EACVoE,SAAUrE,IAEb,EAAE,CAAC9C,EAASqC,OAAQX,IAEf0F,EAAyBnC,EAAAA,QAC7B,WAAM,OAAA/E,aAAA,EAAAA,EAAiBmH,8BAA8B,CAAK,EAC1D,CAACnH,aAAe,EAAfA,EAAiBmH,6BAGpB,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,CACEpH,gBAAeA,EACfmB,iBAAgBA,EAChBX,kBAAiBA,EACjBc,2BACAkF,mBAAkBA,EAClBa,YAAa/G,EAAa+G,YAC1BH,uBAAsBA,GACnBhC,IACH1B,cAAaA,EACbK,oBACA5B,8BACA8E,yBAEJ"}
|