@nethesis/phone-island 1.0.6-dev.6 → 1.0.6-dev.8
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 +1 -1
- package/dist/App.js.map +1 -1
- package/dist/_virtual/EBML.js +2 -0
- package/dist/_virtual/EBML.js.map +1 -0
- package/dist/_virtual/EBMLDecoder.js +2 -0
- package/dist/_virtual/EBMLDecoder.js.map +1 -0
- package/dist/_virtual/EBMLEncoder.js +2 -0
- package/dist/_virtual/EBMLEncoder.js.map +1 -0
- package/dist/_virtual/EBMLReader.js +2 -0
- package/dist/_virtual/EBMLReader.js.map +1 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js +2 -0
- package/dist/_virtual/_commonjs-dynamic-modules.js.map +1 -0
- package/dist/_virtual/_commonjsHelpers.js +2 -0
- package/dist/_virtual/_commonjsHelpers.js.map +1 -0
- package/dist/_virtual/arrayLikeToArray.js +2 -0
- package/dist/_virtual/arrayLikeToArray.js.map +1 -0
- package/dist/_virtual/arrayWithHoles.js +2 -0
- package/dist/_virtual/arrayWithHoles.js.map +1 -0
- package/dist/_virtual/classCallCheck.js +2 -0
- package/dist/_virtual/classCallCheck.js.map +1 -0
- package/dist/_virtual/createClass.js +2 -0
- package/dist/_virtual/createClass.js.map +1 -0
- package/dist/_virtual/defineProperty.js +2 -0
- package/dist/_virtual/defineProperty.js.map +1 -0
- package/dist/_virtual/ebmlID.js +2 -0
- package/dist/_virtual/ebmlID.js.map +1 -0
- package/dist/_virtual/es5.js +2 -0
- package/dist/_virtual/es5.js.map +1 -0
- package/dist/_virtual/events.js +2 -0
- package/dist/_virtual/events.js.map +1 -0
- package/dist/_virtual/index.js +2 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index10.js +2 -0
- package/dist/_virtual/index10.js.map +1 -0
- package/dist/_virtual/index11.js +2 -0
- package/dist/_virtual/index11.js.map +1 -0
- package/dist/_virtual/index2.js +2 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/index3.js +2 -0
- package/dist/_virtual/index3.js.map +1 -0
- package/dist/_virtual/index4.js +2 -0
- package/dist/_virtual/index4.js.map +1 -0
- package/dist/_virtual/index5.js +2 -0
- package/dist/_virtual/index5.js.map +1 -0
- package/dist/_virtual/index6.js +2 -0
- package/dist/_virtual/index6.js.map +1 -0
- package/dist/_virtual/index7.js +2 -0
- package/dist/_virtual/index7.js.map +1 -0
- package/dist/_virtual/index8.js +2 -0
- package/dist/_virtual/index8.js.map +1 -0
- package/dist/_virtual/index9.js +2 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/int64-buffer.js +2 -0
- package/dist/_virtual/int64-buffer.js.map +1 -0
- package/dist/_virtual/iterableToArrayLimit.js +2 -0
- package/dist/_virtual/iterableToArrayLimit.js.map +1 -0
- package/dist/_virtual/jsx-runtime.js +2 -0
- package/dist/_virtual/jsx-runtime.js.map +1 -0
- package/dist/_virtual/moment.js +2 -0
- package/dist/_virtual/moment.js.map +1 -0
- package/dist/_virtual/nonIterableRest.js +2 -0
- package/dist/_virtual/nonIterableRest.js.map +1 -0
- package/dist/_virtual/objectWithoutProperties.js +2 -0
- package/dist/_virtual/objectWithoutProperties.js.map +1 -0
- package/dist/_virtual/objectWithoutPropertiesLoose.js +2 -0
- package/dist/_virtual/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/_virtual/react-is.development.js +2 -0
- package/dist/_virtual/react-is.development.js.map +1 -0
- package/dist/_virtual/react-is.development2.js +2 -0
- package/dist/_virtual/react-is.development2.js.map +1 -0
- package/dist/_virtual/react-is.development3.js +2 -0
- package/dist/_virtual/react-is.development3.js.map +1 -0
- package/dist/_virtual/react-is.development4.js +2 -0
- package/dist/_virtual/react-is.development4.js.map +1 -0
- package/dist/_virtual/react-is.production.min.js +2 -0
- package/dist/_virtual/react-is.production.min.js.map +1 -0
- package/dist/_virtual/react-is.production.min2.js +2 -0
- package/dist/_virtual/react-is.production.min2.js.map +1 -0
- package/dist/_virtual/react-is.production.min3.js +2 -0
- package/dist/_virtual/react-is.production.min3.js.map +1 -0
- package/dist/_virtual/react-is.production.min4.js +2 -0
- package/dist/_virtual/react-is.production.min4.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.development.js +2 -0
- package/dist/_virtual/react-jsx-runtime.development.js.map +1 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js +2 -0
- package/dist/_virtual/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/_virtual/requestMediaPermissions.js +2 -0
- package/dist/_virtual/requestMediaPermissions.js.map +1 -0
- package/dist/_virtual/sdp.js +2 -0
- package/dist/_virtual/sdp.js.map +1 -0
- package/dist/_virtual/slicedToArray.js +2 -0
- package/dist/_virtual/slicedToArray.js.map +1 -0
- package/dist/_virtual/toPrimitive.js +2 -0
- package/dist/_virtual/toPrimitive.js.map +1 -0
- package/dist/_virtual/toPropertyKey.js +2 -0
- package/dist/_virtual/toPropertyKey.js.map +1 -0
- package/dist/_virtual/tools-ebml.js +2 -0
- package/dist/_virtual/tools-ebml.js.map +1 -0
- package/dist/_virtual/tools.js +2 -0
- package/dist/_virtual/tools.js.map +1 -0
- package/dist/_virtual/typeof.js +2 -0
- package/dist/_virtual/typeof.js.map +1 -0
- package/dist/_virtual/unitless.cjs.dev.js +2 -0
- package/dist/_virtual/unitless.cjs.dev.js.map +1 -0
- package/dist/_virtual/unitless.cjs.js +2 -0
- package/dist/_virtual/unitless.cjs.js.map +1 -0
- package/dist/_virtual/unitless.cjs.prod.js +2 -0
- package/dist/_virtual/unitless.cjs.prod.js.map +1 -0
- package/dist/_virtual/unsupportedIterableToArray.js +2 -0
- package/dist/_virtual/unsupportedIterableToArray.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-shim.development.js +2 -0
- package/dist/_virtual/use-sync-external-store-shim.development.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-shim.production.js +2 -0
- package/dist/_virtual/use-sync-external-store-shim.production.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-with-selector.development.js +2 -0
- package/dist/_virtual/use-sync-external-store-with-selector.development.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-with-selector.production.js +2 -0
- package/dist/_virtual/use-sync-external-store-with-selector.production.js.map +1 -0
- package/dist/_virtual/with-selector.development.js +2 -0
- package/dist/_virtual/with-selector.development.js.map +1 -0
- package/dist/_virtual/with-selector.js +2 -0
- package/dist/_virtual/with-selector.js.map +1 -0
- package/dist/_virtual/with-selector.production.js +2 -0
- package/dist/_virtual/with-selector.production.js.map +1 -0
- package/dist/_virtual/with-selector2.js +2 -0
- package/dist/_virtual/with-selector2.js.map +1 -0
- package/dist/components/AlertGuard.js +1 -1
- package/dist/components/AlertGuard.js.map +1 -1
- package/dist/components/AlertView/index.js +1 -1
- package/dist/components/AlertView/index.js.map +1 -1
- package/dist/components/AudioBars.js +1 -1
- package/dist/components/AudioBars.js.map +1 -1
- package/dist/components/AudioPlayerView/Avatar.js +1 -1
- package/dist/components/AudioPlayerView/Avatar.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 +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/AvatarGroup.js +1 -1
- package/dist/components/AvatarGroup.js.map +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.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/Avatar.js +1 -1
- package/dist/components/CallView/Avatar.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/DisplayName.js +1 -1
- package/dist/components/CallView/DisplayName.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/Timer.js +1 -1
- package/dist/components/CallView/Timer.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/ListAvatar.js +1 -1
- package/dist/components/ContactView/ListAvatar.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/StatusBullet.js +1 -1
- package/dist/components/ContactView/StatusBullet.js.map +1 -1
- package/dist/components/ContactView/TransferActions.js +1 -1
- package/dist/components/ContactView/TransferActions.js.map +1 -1
- package/dist/components/CustomThemedTooltip.js +1 -1
- package/dist/components/CustomThemedTooltip.js.map +1 -1
- package/dist/components/Dropdown.js +1 -1
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Events.js +1 -1
- package/dist/components/Events.js.map +1 -1
- package/dist/components/GenericAvatar.js +1 -1
- package/dist/components/GenericAvatar.js.map +1 -1
- package/dist/components/Hangup.js +1 -1
- package/dist/components/Hangup.js.map +1 -1
- package/dist/components/Island.js +1 -1
- package/dist/components/Island.js.map +1 -1
- package/dist/components/IslandDrag.js +1 -1
- package/dist/components/IslandDrag.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/KeypadView/Actions.js +1 -1
- package/dist/components/KeypadView/Actions.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/PhysicalRecordingTimer.js +1 -1
- package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.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 +1 -1
- package/dist/components/RecorderView/BarsGroup.js.map +1 -1
- package/dist/components/RecorderView/Timer.js +1 -1
- package/dist/components/RecorderView/Timer.js.map +1 -1
- package/dist/components/RecorderView/index.js +1 -1
- package/dist/components/RecorderView/index.js.map +1 -1
- package/dist/components/RestAPI.js +1 -1
- package/dist/components/RestAPI.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/VideoInputView.js +1 -1
- package/dist/components/SettingsView/VideoInputView.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/components/SideViewButton.js +1 -1
- package/dist/components/SideView/components/SideViewButton.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/StreamingAnswerView/index.js +1 -1
- package/dist/components/StreamingAnswerView/index.js.map +1 -1
- package/dist/components/StreamingImage/index.js +1 -1
- package/dist/components/StreamingImage/index.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/TransferButton.js +1 -1
- package/dist/components/TransferButton.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/ViewsTransition.js +1 -1
- package/dist/components/ViewsTransition.js.map +1 -1
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/events/CallEvents.js +1 -1
- package/dist/events/CallEvents.js.map +1 -1
- package/dist/events/PlayerEvents.js +1 -1
- package/dist/events/PlayerEvents.js.map +1 -1
- package/dist/events/RecorderEvents.js +1 -1
- package/dist/events/RecorderEvents.js.map +1 -1
- package/dist/events/SocketEvents.js +1 -1
- package/dist/events/SocketEvents.js.map +1 -1
- package/dist/lib/avatars/avatars.js +1 -1
- package/dist/lib/avatars/avatars.js.map +1 -1
- package/dist/lib/darkTheme.js +1 -1
- package/dist/lib/darkTheme.js.map +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/devices/devices.js.map +1 -1
- package/dist/lib/i18n.js +1 -1
- package/dist/lib/i18n.js.map +1 -1
- package/dist/lib/island/island.js +1 -1
- package/dist/lib/island/island.js.map +1 -1
- package/dist/lib/phone/audio.js +1 -1
- package/dist/lib/phone/audio.js.map +1 -1
- package/dist/lib/phone/call.js +1 -1
- package/dist/lib/phone/call.js.map +1 -1
- package/dist/lib/player/audio.js +1 -1
- package/dist/lib/player/audio.js.map +1 -1
- package/dist/lib/storage/local_storage.js +1 -1
- package/dist/lib/storage/local_storage.js.map +1 -1
- package/dist/lib/webrtc/messages.js +1 -1
- package/dist/lib/webrtc/messages.js.map +1 -1
- package/dist/models/alerts.js +1 -1
- package/dist/models/alerts.js.map +1 -1
- package/dist/models/audioBars.js +1 -1
- package/dist/models/audioBars.js.map +1 -1
- package/dist/models/avatars.js +1 -1
- package/dist/models/avatars.js.map +1 -1
- package/dist/models/conference.js +1 -1
- package/dist/models/conference.js.map +1 -1
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/currentUser.js +1 -1
- package/dist/models/currentUser.js.map +1 -1
- package/dist/models/darkTheme.js +1 -1
- package/dist/models/darkTheme.js.map +1 -1
- package/dist/models/fetchDefaults.js +1 -1
- package/dist/models/fetchDefaults.js.map +1 -1
- package/dist/models/island.js +1 -1
- package/dist/models/island.js.map +1 -1
- package/dist/models/listen.js +1 -1
- package/dist/models/listen.js.map +1 -1
- package/dist/models/mediaDevices.js +1 -1
- package/dist/models/mediaDevices.js.map +1 -1
- package/dist/models/motions.js +1 -1
- package/dist/models/motions.js.map +1 -1
- package/dist/models/paramUrl.js +1 -1
- package/dist/models/paramUrl.js.map +1 -1
- package/dist/models/physicalRecorder.js +1 -1
- package/dist/models/physicalRecorder.js.map +1 -1
- package/dist/models/player.js +1 -1
- package/dist/models/player.js.map +1 -1
- package/dist/models/queue.js +1 -1
- package/dist/models/queue.js.map +1 -1
- package/dist/models/recorder.js +1 -1
- package/dist/models/recorder.js.map +1 -1
- package/dist/models/ringtones.js +1 -1
- package/dist/models/ringtones.js.map +1 -1
- package/dist/models/screenShare.js +1 -1
- package/dist/models/screenShare.js.map +1 -1
- package/dist/models/streaming.js +1 -1
- package/dist/models/streaming.js.map +1 -1
- package/dist/models/users.js +1 -1
- package/dist/models/users.js.map +1 -1
- package/dist/models/webrtc.js +1 -1
- package/dist/models/webrtc.js.map +1 -1
- package/dist/models/websocket.js +1 -1
- package/dist/models/websocket.js.map +1 -1
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayWithHoles.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/arrayWithHoles.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/classCallCheck.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/createClass.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/createClass.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/defineProperty.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/classCallCheck.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/createClass.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/createClass.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/inherits.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/nonIterableRest.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/nonIterableRest.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutProperties.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/slicedToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/slicedToArray.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/toPropertyKey.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/typeof.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/typeof.js.map +1 -0
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +2 -0
- package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -0
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +2 -0
- package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -0
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js +2 -0
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +1 -0
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +2 -0
- package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.dev.js +2 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.dev.js.map +1 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.js +2 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.js.map +1 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.prod.js +2 -0
- package/dist/node_modules/@emotion/unitless/dist/unitless.cjs.prod.js.map +1 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +2 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -0
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js +2 -0
- package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js.map +1 -0
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +2 -0
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -0
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +2 -0
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/description/description.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/description/description.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/keyboard.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/label/label.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/label/label.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/mouse.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/mouse.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-store.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-store.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tracked-pointer.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/disabled.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/internal/disabled.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/floating.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/id.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/internal/id.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/internal/open-closed.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/internal/portal-force-root.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/internal/portal-force-root.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/machine.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/machine.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/react-glue.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/react-glue.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/calculate-active-index.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/default-map.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/default-map.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/dom.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/dom.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/platform.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -0
- package/dist/node_modules/@headlessui/react/dist/utils/store.js +2 -0
- package/dist/node_modules/@headlessui/react/dist/utils/store.js.map +1 -0
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js +2 -0
- package/dist/node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js +2 -0
- package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js +2 -0
- package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/context.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/context.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js +2 -0
- package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/domHelpers.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/domHelpers.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/isVirtualEvent.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js.map +1 -0
- package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.mjs.js +2 -0
- package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.mjs.js.map +1 -0
- package/dist/node_modules/@react-stately/flags/dist/import.mjs.js +2 -0
- package/dist/node_modules/@react-stately/flags/dist/import.mjs.js.map +1 -0
- package/dist/node_modules/@rematch/core/dist/core.esm.js +2 -0
- package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -0
- package/dist/node_modules/@rematch/immer/dist/immer.esm.js +2 -0
- package/dist/node_modules/@rematch/immer/dist/immer.esm.js.map +1 -0
- package/dist/node_modules/@rematch/select/dist/select.esm.js +2 -0
- package/dist/node_modules/@rematch/select/dist/select.esm.js.map +1 -0
- package/dist/node_modules/@socket.io/component-emitter/lib/esm/index.js +2 -0
- package/dist/node_modules/@socket.io/component-emitter/lib/esm/index.js.map +1 -0
- package/dist/node_modules/bowser/es5.js +2 -0
- package/dist/node_modules/bowser/es5.js.map +1 -0
- package/dist/node_modules/classnames/index.js +7 -0
- package/dist/node_modules/classnames/index.js.map +1 -0
- package/dist/node_modules/ebml-block/index.js +2 -0
- package/dist/node_modules/ebml-block/index.js.map +1 -0
- package/dist/node_modules/ebml-block/lib/buffer-reader.js +2 -0
- package/dist/node_modules/ebml-block/lib/buffer-reader.js.map +1 -0
- package/dist/node_modules/ebml-block/lib/vint.js +2 -0
- package/dist/node_modules/ebml-block/lib/vint.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/has-cors.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseqs.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/contrib/yeast.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/globalThis.browser.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/socket.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transport.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transport.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/index.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js.map +1 -0
- package/dist/node_modules/engine.io-client/build/esm/util.js +2 -0
- package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/commons.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -0
- package/dist/node_modules/engine.io-parser/build/esm/index.js +2 -0
- package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -0
- package/dist/node_modules/events/events.js +2 -0
- package/dist/node_modules/events/events.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-dom-event.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-dom-event.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animations.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/animations.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/models.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/models.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/node/state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/measure.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/projection/utils/measure.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/store.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/store.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-browser.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-browser.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-constant.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-constant.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs.js.map +1 -0
- package/dist/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs.js +2 -0
- package/dist/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +2 -0
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js +2 -0
- package/dist/node_modules/html-parse-stringify/dist/html-parse-stringify.js.map +1 -0
- package/dist/node_modules/i18next/dist/esm/i18next.js +2 -0
- package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -0
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +2 -0
- package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -0
- package/dist/node_modules/immer/dist/immer.esm.mjs.js +2 -0
- package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -0
- package/dist/node_modules/int64-buffer/int64-buffer.js +2 -0
- package/dist/node_modules/int64-buffer/int64-buffer.js.map +1 -0
- package/dist/node_modules/js-base64/base64.mjs.js +2 -0
- package/dist/node_modules/js-base64/base64.mjs.js.map +1 -0
- package/dist/node_modules/lodash/_Symbol.js +2 -0
- package/dist/node_modules/lodash/_Symbol.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetTag.js +2 -0
- package/dist/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/dist/node_modules/lodash/_baseTrim.js +2 -0
- package/dist/node_modules/lodash/_baseTrim.js.map +1 -0
- package/dist/node_modules/lodash/_freeGlobal.js +2 -0
- package/dist/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/dist/node_modules/lodash/_getRawTag.js +2 -0
- package/dist/node_modules/lodash/_getRawTag.js.map +1 -0
- package/dist/node_modules/lodash/_objectToString.js +2 -0
- package/dist/node_modules/lodash/_objectToString.js.map +1 -0
- package/dist/node_modules/lodash/_root.js +2 -0
- package/dist/node_modules/lodash/_root.js.map +1 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js +2 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/dist/node_modules/lodash/debounce.js +2 -0
- package/dist/node_modules/lodash/debounce.js.map +1 -0
- package/dist/node_modules/lodash/isObject.js +2 -0
- package/dist/node_modules/lodash/isObject.js.map +1 -0
- package/dist/node_modules/lodash/isObjectLike.js +2 -0
- package/dist/node_modules/lodash/isObjectLike.js.map +1 -0
- package/dist/node_modules/lodash/isSymbol.js +2 -0
- package/dist/node_modules/lodash/isSymbol.js.map +1 -0
- package/dist/node_modules/lodash/now.js +2 -0
- package/dist/node_modules/lodash/now.js.map +1 -0
- package/dist/node_modules/lodash/toNumber.js +2 -0
- package/dist/node_modules/lodash/toNumber.js.map +1 -0
- package/dist/node_modules/mic-check/lib/index.js +2 -0
- package/dist/node_modules/mic-check/lib/index.js.map +1 -0
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +2 -0
- package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -0
- package/dist/node_modules/moment/moment.js +4 -0
- package/dist/node_modules/moment/moment.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/order.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/order.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.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/interpolate.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/number.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/number.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/auto.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/auto.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/int.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/int.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/test.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/test.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs.js.map +1 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs.js +2 -0
- package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/array.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/array.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/clamp.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/clamp.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/back.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/back.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/ease.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/ease.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/global-config.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/global-config.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/is-numerical-string.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/is-numerical-string.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/memo.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/memo.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/noop.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/noop.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/progress.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/time-conversion.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/time-conversion.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js.map +1 -0
- package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js +2 -0
- package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js.map +1 -0
- package/dist/node_modules/object-assign/index.js +8 -0
- package/dist/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/prop-types/checkPropTypes.js +2 -0
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +2 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +2 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +2 -0
- package/dist/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +2 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/prop-types/lib/has.js +2 -0
- package/dist/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +11 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +11 -0
- package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -0
- package/dist/node_modules/react/jsx-runtime.js +2 -0
- package/dist/node_modules/react/jsx-runtime.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/context.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/defaults.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/i18nInstance.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/initReactI18next.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/unescape.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/unescape.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -0
- package/dist/node_modules/react-i18next/dist/es/utils.js +2 -0
- package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js +10 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +10 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-moment/dist/index.js +12 -0
- package/dist/node_modules/react-moment/dist/index.js.map +1 -0
- package/dist/node_modules/react-redux/es/components/Context.js +2 -0
- package/dist/node_modules/react-redux/es/components/Context.js.map +1 -0
- package/dist/node_modules/react-redux/es/components/Provider.js +2 -0
- package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -0
- package/dist/node_modules/react-redux/es/hooks/useDispatch.js +2 -0
- package/dist/node_modules/react-redux/es/hooks/useDispatch.js.map +1 -0
- package/dist/node_modules/react-redux/es/hooks/useReduxContext.js +2 -0
- package/dist/node_modules/react-redux/es/hooks/useReduxContext.js.map +1 -0
- package/dist/node_modules/react-redux/es/hooks/useSelector.js +2 -0
- package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -0
- package/dist/node_modules/react-redux/es/hooks/useStore.js +2 -0
- package/dist/node_modules/react-redux/es/hooks/useStore.js.map +1 -0
- package/dist/node_modules/react-redux/es/index.js +2 -0
- package/dist/node_modules/react-redux/es/index.js.map +1 -0
- package/dist/node_modules/react-redux/es/utils/Subscription.js +2 -0
- package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -0
- package/dist/node_modules/react-redux/es/utils/batch.js +2 -0
- package/dist/node_modules/react-redux/es/utils/batch.js.map +1 -0
- package/dist/node_modules/react-redux/es/utils/shallowEqual.js +2 -0
- package/dist/node_modules/react-redux/es/utils/shallowEqual.js.map +1 -0
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +2 -0
- package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js +2 -0
- package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -0
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js +11 -0
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js +11 -0
- package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-redux/node_modules/react-is/index.js +2 -0
- package/dist/node_modules/react-redux/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js +8 -0
- package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js.map +1 -0
- package/dist/node_modules/redux/es/redux.js +2 -0
- package/dist/node_modules/redux/es/redux.js.map +1 -0
- package/dist/node_modules/reselect/es/defaultMemoize.js +2 -0
- package/dist/node_modules/reselect/es/defaultMemoize.js.map +1 -0
- package/dist/node_modules/reselect/es/index.js +2 -0
- package/dist/node_modules/reselect/es/index.js.map +1 -0
- package/dist/node_modules/sdp/sdp.js +2 -0
- package/dist/node_modules/sdp/sdp.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/contrib/backo2.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/contrib/backo2.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/index.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/index.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/manager.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/on.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/on.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/socket.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -0
- package/dist/node_modules/socket.io-client/build/esm/url.js +2 -0
- package/dist/node_modules/socket.io-client/build/esm/url.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/binary.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/binary.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/index.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/index.js.map +1 -0
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +2 -0
- package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +2 -0
- package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js.map +1 -0
- package/dist/node_modules/tslib/tslib.es6.js +2 -0
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +11 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js +2 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js +2 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/with-selector.js +2 -0
- package/dist/node_modules/use-sync-external-store/with-selector.js.map +1 -0
- package/dist/node_modules/void-elements/index.js +2 -0
- package/dist/node_modules/void-elements/index.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBML.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBML.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/ebmlID.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/ebmlID.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/index.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/index.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js.map +1 -0
- package/dist/node_modules/webm-duration-fix/lib/index.js +2 -0
- package/dist/node_modules/webm-duration-fix/lib/index.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/adapter_core.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -0
- package/dist/node_modules/webrtc-adapter/src/js/utils.js +2 -0
- package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -0
- 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/history_call.js +1 -1
- package/dist/services/history_call.js.map +1 -1
- package/dist/services/offhour.js +1 -1
- package/dist/services/offhour.js.map +1 -1
- package/dist/services/phonebook.js +1 -1
- package/dist/services/phonebook.js.map +1 -1
- package/dist/services/user.js +1 -1
- package/dist/services/user.js.map +1 -1
- package/dist/services/voicemail.js +1 -1
- package/dist/services/voicemail.js.map +1 -1
- package/dist/store/index.js +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/styles/CustomRange.styles.js +1 -1
- package/dist/styles/CustomRange.styles.js.map +1 -1
- package/dist/styles/Island.styles.js +1 -1
- package/dist/styles/Island.styles.js.map +1 -1
- package/dist/utils/genericFunctions/checkConnection.js +1 -1
- package/dist/utils/genericFunctions/checkConnection.js.map +1 -1
- package/dist/utils/streaming/streamingUtils.js +1 -1
- package/dist/utils/streaming/streamingUtils.js.map +1 -1
- package/package.json +3 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),n=require("react"),t=require("react-redux"),r=require("socket.io-client"),i=require("./RestAPI.js"),o=require("../lib/phone/conversation.js"),c=require("../services/user.js"),u=require("../static/busy_ringtone.js"),a=require("../utils/customHooks/useEventListener.js"),s=require("../utils/genericFunctions/eventDispatch.js"),l=require("../utils/genericFunctions/withTimeout.js"),d=require("../store/index.js");require("../lib/webrtc/janus.js"),require("webrtc-adapter");var p=require("../lib/devices/devices.js"),v=require("../lib/user/default_device.js"),m=require("../utils/genericFunctions/isEmpty.js"),g=require("../utils/streaming/getStreamingSourceId.js"),f=require("../events/SocketEvents.js"),h=require("../utils/genericFunctions/timestamp.js"),b=require("../lib/user/extensions.js"),S=require("../utils/streaming/isFromStreaming.js"),k=require("../lib/phone/queue.js"),y=require("../lib/phone/trunk.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=w(n);exports.Socket=function(w){var q=w.hostName,N=w.username,_=w.authToken,T=w.reload,I=w.reloadedCallback,D=w.children,U=w.uaType,j=t.useDispatch(),x=n.useRef(),E=n.useRef(),P=n.useRef(!1),O=n.useRef(0),F=n.useRef(null);a.useEventListener("phone-island-start-transcription",(function(e){if(E.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.uniqueid)||null;if(!n)return;E.current.emit("start_transcription",{linkedid:n,uniqueid:(null==e?void 0:e.uniqueid)||n})}})),a.useEventListener("phone-island-stop-transcription",(function(e){if(E.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.uniqueid)||null;if(!n)return;E.current.emit("stop_transcription",{linkedid:n,uniqueid:(null==e?void 0:e.uniqueid)||n})}})),a.useEventListener("phone-island-current-user-queue-call-waiting",(function(e){j.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})})),a.useEventListener("phone-island-current-user-queue-call-connected",(function(e){j.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,t=function(e){if(e.counterpartNum&&S.isFromStreaming(e.counterpartNum)){j.island.setIsFromStreaming(!0),j.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=g.getStreamingSourceId(e.counterpartNum);n&&c.subscribe({id:n}).catch((function(e){return console.error("Error subscribing to streaming source:",e)}))}},a=function(e){var n,t,r,i;if(e){var o=function(e){return k.getCurrentCallQueueContext(e,d.store.getState().queue)}(e),c=function(e,n){var t=d.store.getState().currentCall;return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:(null==n?void 0:n.queueId)||t.queueId||"",queueName:(null==n?void 0:n.queueName)||t.queueName||"",queueNumber:(null==n?void 0:n.queueNumber)||t.queueNumber||"",queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}}(e,o);if(Boolean(c.queueId||c.queueName||c.queueNumber))if(e.connected)((null===(r=F.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=F.current)||void 0===i?void 0:i.phase))&&(f.dispatchCurrentUserQueueCallConnected(c),F.current={conversationId:e.id,phase:"connected"});else((null===(n=F.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=F.current)||void 0===t?void 0:t.phase))&&(f.dispatchCurrentUserQueueCallWaiting(c),F.current={conversationId:e.id,phase:"waiting"});else F.current=null}else F.current=null},w=function(n,r){var i=d.store.getState().currentCall,u=i.transferring,l=i.transferSwitching,p=i.transferCalls,m=d.store.getState().island.view;if(Object.keys(r).length>0){if(n.status){var g=d.store.getState().users.extensions,f=d.store.getState().currentUser.default_device,S=d.store.getState().currentUser,k=S.endpoints,w=S.username,C=d.store.getState().currentCall;C.incoming,C.outgoing;var q=function(){if(!g||!w)return!1;var e=Object.values(g).filter((function(e){return(null==e?void 0:e.username)===w}));return null==e?void 0:e.some((function(e){var n=null==k?void 0:k.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(n.status){case"ringing":if(function(e){var n=d.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(r.owner))break;a(r),t(r),("mobile"===U&&q()||"desktop"===U&&("webrtc"===(null==f?void 0:f.type)||void 0===(null==f?void 0:f.type)&&!q()||!q()&&"physical"===(null==f?void 0:f.type)))&&(j.currentCall.checkIncomingUpdatePlay({conversationId:r.id,displayName:o.getDisplayName(r),number:"".concat(r.counterpartNum),incomingSocket:!0,incoming:!0,username:"".concat(g&&g[r.counterpartNum]&&g[r.counterpartNum].username)||"",ownerExtension:r.owner}),d.store.dispatch.island.setIslandView("call")),P.current||(P.current=!0,c.getCurrentUserInfo().then((function(n){n&&(j.currentUser.updateCurrentUser(n),s.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?j.paramUrl.setOpenParamUrlType(n.settings.open_param_url):j.paramUrl.setOpenParamUrlType("never"))})).catch((function(e){console.error("Error getting current user info:",e)})).finally((function(){setTimeout((function(){P.current=!1}),100)})));var N=d.store.getState().paramUrl.openParamUrlType,_=d.store.getState().island.urlOpened;if("ringing"===N&&!_){var T=y.isFromTrunk(r.counterpartNum);d.store.dispatch.paramUrl.setThroughTrunk(T),d.store.dispatch.island.setUrlOpened(!1),s.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:r.counterpartNum,counterpartName:o.getDisplayName(r),owner:r.owner,uniqueId:r.uniqueId,linkedId:r.linkedId,throughQueue:r.throughQueue,throughTrunk:T,direction:r.direction,connected:r.connected})}break;case"busy":if(a(r),t(r),"mobile"===U&&q()||"desktop"===U&&("webrtc"===(null==f?void 0:f.type)||void 0===(null==f?void 0:f.type)&&!q()||!q()&&"physical"===(null==f?void 0:f.type))){if(r&&r.connected)j.currentCall.updateCurrentCall({conversationId:r.id,displayName:o.getDisplayName(r),number:"".concat(r.counterpartNum),ownerExtension:r.owner,username:"".concat(g&&g[r.counterpartNum]&&g[r.counterpartNum].username)||"",chDest:(null==r?void 0:r.chDest)||{},chSource:(null==r?void 0:r.chSource)||{}}),j.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),j.currentCall.addTransferCalls({type:"transferred",displayName:o.getDisplayName(r),number:"".concat(r.counterpartNum),startTime:"".concat(h.getTimestampInSeconds())}),d.store.getState().island.isFromStreaming&&"out"===r.direction&&setTimeout((function(){j.island.setIslandView("streamingAnswer")}),200),v.isPhysical()&&function(e){j.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),s.eventDispatch("phone-island-call-answered",{}),d.store.dispatch.player.stopAudioPlayer(),d.store.dispatch.player.setAudioPlayerLoop(!1)}(r),"call"===m&&u&&j.currentCall.updateCurrentCall({transferring:!1});if(p.length>1)j.currentCall.deleteTransferCalls();else if(r&&!r.connected){if(u&&!l){var I=p.find((function(e){return e.number===r.counterpartNum}));!r.connected&&I&&(j.currentCall.updateCurrentCall({transferring:!1}),s.eventDispatch("phone-island-call-transfer-failed",{}),j.currentCall.updateTransferSwitching(!1))}"REC"===(null==r?void 0:r.counterpartName)&&j.physicalRecorder.setRecordingTempVariable(!0)}r&&!r.connected&&"out"===r.direction&&j.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==r?void 0:r.counterpartName),displayName:o.getDisplayName(r),number:"".concat(null==r?void 0:r.counterpartNum),username:"".concat(g&&g[null==r?void 0:r.counterpartNum]&&g[null==r?void 0:r.counterpartNum].username)||""})}break;case"onhold":a(r);var D=r.counterpartName,x=r.counterpartNum,E=r.startTime;u&&x&&D&&"<unknown>"!==D&&(j.currentCall.addTransferCalls({type:"destination",displayName:o.getDisplayName(r),number:x,startTime:"".concat(h.getTimestampInSeconds())}),j.currentCall.updateCurrentCall({displayName:o.getDisplayName(r),number:x,startTime:"".concat(E/1e3),conversationId:r.id}),j.island.setIslandView("call"));break;case"busy_ringing":s.eventDispatch("phone-island-call-ringing",{})}}}else"online"==n.status&&b.userTotallyFree()&&(a(null),j.player.stopAudioPlayer(),j.currentCall.reset(),j.physicalRecorder.setRecordingTempVariable(!1),j.island.setIsFromStreaming(!1))};return n={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3},"new"===i.getApiMode(N)&&(n.path="/api/ws"),E.current=r.io("https://"+q,n),j.websocket.update({socket:E.current}),E.current.on("connect",(function(){console.debug("Socket connected sid: ".concat(E.current.id)),s.eventDispatch("phone-island-socket-connected",{})})),E.current.on("disconnect",(function(e){console.debug("Socket disconnect - reason: ".concat(e)),x.current&&(clearInterval(x.current),x.current=null),e.includes("server disconnect")?s.eventDispatch("phone-island-server-disconnected",{}):s.eventDispatch("phone-island-socket-disconnected",{})})),E.current.io.on("error",(function(e){console.debug("Socket error: ",e)})),E.current.on("connect_error",(function(e){console.debug("Socket connect_error: ",e)})),E.current.io.on("reconnect",(function(e){O.current=0,s.eventDispatch("phone-island-socket-reconnected",{}),console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(E.current.id,")"))})),E.current.io.on("reconnect_attempt",(function(e){console.debug("Socket reconnect_attempt ".concat(e))})),E.current.io.on("reconnect_error",(function(e){console.debug("Socket reconnect_error: ",e)})),E.current.io.on("reconnect_failed",(function(){console.debug("Socket reconnect_failed")})),E.current.on("connect",(function(){console.debug("Socket on: "+q+" is connected!"),E.current.emit("login",{accessKeyId:"".concat(N),token:_,uaType:U})})),E.current.on("authe_ok",(function(){console.debug("Socket authentication success!"),s.eventDispatch("phone-island-socket-authorized",{}),x.current&&clearInterval(x.current),x.current=setInterval((function(){E.current.volatile.emit("ping",l.withTimeout((function(){O.current=0,setTimeout((function(){j.alerts.removeAlert("socket_down"),s.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),s.eventDispatch("phone-island-socket-disconnected-popup-close",{})}),0)}),(function(){O.current++,console.debug("Socket ping timeout (".concat(O.current,"/").concat(3,"), connected: ").concat(E.current.connected)),setTimeout((function(){var e,n,t=E.current.connected&&O.current>=3;if(!E.current.connected||t){var r=d.store.getState().webrtc.sipcall,i=d.store.getState().currentCall,o=i.accepted,c=i.outgoing,u=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||c)&&("connected"===u||"completed"===u))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:u,accepted:o,outgoing:c,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),E.current.disconnect()),j.alerts.setAlert("socket_down"),s.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}}),0)}),5e3))}),5e3)})),E.current.on("userMainPresenceUpdate",(function(n){d.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),f.dispatchMainPresence(n)})),E.current.on("extenHangup",(function(e){var n,t,r=d.store.getState().currentUser,i=r.endpoints,o=r.username,c=d.store.getState().conference,a=c.isActive,l=c.conferenceStartedFrom,p=d.store.getState().island,v=p.view,m=p.previewCallFromMobileOrNethlink,g=((null==i?void 0:i.extension)||[]).find((function(n){return n.id===e.callerNum})),f=null==g?void 0:g.type,h=d.store.getState().currentUser.conversations,b=void 0,S=!1;if(e.callerNum&&h[e.callerNum]){var k=h[e.callerNum],y=Object.keys(k);if(y.length>0){for(var w=null,C=0,q=y;C<q.length;C++){var N=q[C],_=null==k?void 0:k[N];if(_)if(w){var T=!!w.connected,I=!!_.connected;if(!I||T){var D=null!==(n=w.startTime)&&void 0!==n?n:0,U=null!==(t=_.startTime)&&void 0!==t?t:0;I===T&&U>D&&(w=_)}else w=_}else w=_}b=null==w?void 0:w.linkedId,S=(null==w?void 0:w.connected)||!1}}if(b&&S&&s.eventDispatch("phone-island-summary-call-check",{linkedid:b}),"normal_clearing"===e.cause&&("physical"===f||"mobile"===f)||"normal_clearing"===e.cause&&("webrtc"===f||"nethlink"===f)&&m||"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(){d.store.dispatch.island.toggleAvoidToShow(!1),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)}),500),a&&l!==o&&d.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&a&&l===o?setTimeout((function(){s.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"!==f&&"nethlink"!==f||!a||l===o||d.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===f||"nethlink"===f)||"call_rejected"===(null==e?void 0:e.cause))&&a&&l===o){var j=d.store.getState().conference,x=j.usersList,E=j.pendingUsers,P=x&&Object.keys(x).length>0,O=E&&Object.keys(E).length>0;P||O?setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800):d.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&a&&l===o&&"waitingConference"!==v&&setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),"user_busy"===(null==e?void 0:e.cause)){var F=d.store.getState().currentUser,A=F.endpoints,V=F.username,R=((null==A?void 0:A.extension)||[]).map((function(e){return e.id})),M=d.store.getState().currentCall,L=M.incoming,Q=M.accepted,W=M.transferring,B=d.store.getState().conference,H=B.isActive,z=B.conferenceStartedFrom;!(L&&e.callerNum&&R.includes(e.callerNum))&&(!Q||H||W)&&(d.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout((function(){d.store.dispatch.player.stopAudioPlayer()}),4e3),setTimeout((function(){d.store.dispatch.player.updateStartAudioPlayer({src:u.default,loop:!0}),d.store.dispatch.island.setIslandView("operatorBusy")}),600),H&&z===V&&setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var J=d.store.getState().conference,K=J.isActive,G=J.conferenceStartedFrom,X=d.store.getState().currentUser.username;if(K&&G===X){var Y=d.store.getState().conference;x=Y.usersList,E=Y.pendingUsers,P=x&&Object.keys(x).length>0,O=E&&Object.keys(E).length>0,P||O?(setTimeout((function(){s.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),E&&E[e.callerNum]&&d.store.dispatch.conference.removePendingUser(e.callerNum)):d.store.dispatch.conference.resetConference()}}})),E.current.on("extenConnected",(function(e){var n=d.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)&&(d.store.dispatch.island.toggleAvoidToShow(!0),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),s.eventDispatch("phone-island-call-answered",{extensionType:o}))})),E.current.on("extenUpdate",(function(e){var n,t;j.users.updateExtension(e);var r=d.store.getState().users.extensions,i={},o=d.store.getState().currentUser;for(var c in r){var u=r[c].username,a=r[c].exten;i[u]||(i[u]=[]),i[u].push(a)}var s=i[e.username],l=e.conversations[Object.keys(e.conversations)[0]]||{},p=!1;if((null==e?void 0:e.username)===N&&!m.isEmpty(l)&&(null==l?void 0:l.owner)){var v=null===(t=null===(n=null==o?void 0:o.endpoints)||void 0===n?void 0:n.extension)||void 0===t?void 0:t.find((function(e){return e.id===l.owner}));v&&"mobile"===v.type&&(p=!0)}if(f.dispatchExtensions(e),m.isEmpty(l)){var g=null==s?void 0:s.some((function(e){var n,t=null===(n=r[e])||void 0===n?void 0:n.conversations;return!m.isEmpty(t)}));g||f.dispatchConversations(e)}else p||f.dispatchConversations(e);p&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===N&&(d.store.dispatch.island.toggleAvoidToShow(!0),d.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===N&&(w(e,l),j.currentUser.updateConversations(e))})),E.current.on("queueUpdate",(function(e){j.queue.updateQueue(e);var n,t,r,i=(n=d.store.getState().currentUser.conversations,t=d.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&&a(i),f.dispatchQueueUpdate(e)})),E.current.on("queueMemberUpdate",(function(e){j.queue.updateQueueMember(e),f.dispatchQueueMemberUpdate(e)})),E.current.on("takeOver",(function(){f.dispatchAlreadyLogin()})),E.current.on("serverReloaded",(function(){f.dispatchServerReload()})),E.current.on("parkingUpdate",(function(e){f.dispatchParkingUpdate(e)})),E.current.on("actionNethLink",(function(e,n){f.dispatchUrlCall(e,n)})),E.current.on("satellite/summary",(function(e){(null==e?void 0:e.uniqueid)&&s.eventDispatch("phone-island-summary-ready",{linkedid:null==e?void 0:e.uniqueid,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number})})),E.current.on("message",(function(e){switch(e.message){case"screenSharingStart":j.island.toggleSideViewVisible(!1),j.island.toggleTranscriptionViewVisible(!1),j.island.setIslandView("video"),j.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":j.island.toggleSideViewVisible(!1),j.island.toggleTranscriptionViewVisible(!1),j.island.setIslandView("video"),j.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}})),E.current.on("updateDefaultDevice",(function(n){f.dispatchDefaultDeviceUpdate(n);var t=d.store.getState().users.extensions,r=d.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],c=r.extension.find((function(e){return e.id===o.exten}));c&&(o=e.__assign(e.__assign({},o),{type:c.type})),d.store.dispatch.currentUser.updateCurrentDefaultDevice(o),p.checkMediaPermissions()}}})),E.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=d.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}))})),d.store.dispatch.conference.updateConferenceUsersList(o),d.store.dispatch.conference.updateConferenceId(t)}})),E.current.on("confBridgeEnd",(function(e){e&&(null==e?void 0:e.id)&&(d.store.dispatch.conference.resetConference(),s.eventDispatch("phone-island-conference-finished",{}))})),E.current.on("callWebrtc",(function(e){s.eventDispatch("phone-island-call-start",{number:e})})),E.current.on("newVoiceMessageCounter",(function(e){s.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})})),E.current.on("streamingSourceUpdate",(function(e){s.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;if(t&&r){d.store.getState().island.isFromStreaming;var i=d.store.getState().currentCall.streamingSourceNumber;g.getStreamingSourceId(i),j.streaming.updateSourceImage({source:t,image:r})}}})),E.current.on("satellite/transcription",(function(e){s.eventDispatch("phone-island-conversation-transcription",e)})),function(){clearInterval(x.current),E.current.close()}}),[q,N,_,U,j]),n.useEffect((function(){var e;if(T){console.info("Socket reload requested");var n=d.store.getState().alerts.data,t=d.store.getState().island.forceReload;(null===(e=n.socket_down)||void 0===e?void 0:e.active)||!1||t?(console.info(t?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active), performing reconnection"),t&&d.store.dispatch.island.setForceReload(!1),x.current&&(clearInterval(x.current),x.current=null),setTimeout((function(){E.current.disconnect(),E.current.connect(),I()}),100)):(console.info("Socket already connected (no alert active), skipping reconnection"),I())}}),[T]),C.default.createElement(C.default.Fragment,null,D)};
|
|
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("../services/user.js"),c=require("../static/busy_ringtone.js"),u=require("../utils/customHooks/useEventListener.js"),a=require("../utils/genericFunctions/eventDispatch.js"),s=require("../utils/genericFunctions/withTimeout.js"),l=require("../store/index.js");require("../lib/webrtc/janus.js"),require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var d=require("../lib/devices/devices.js"),p=require("../lib/user/default_device.js"),v=require("../utils/genericFunctions/isEmpty.js"),m=require("../utils/streaming/getStreamingSourceId.js"),g=require("../events/SocketEvents.js"),f=require("../utils/genericFunctions/timestamp.js"),h=require("../lib/user/extensions.js"),b=require("../utils/streaming/isFromStreaming.js"),S=require("../lib/phone/queue.js"),k=require("../lib/phone/trunk.js"),y=require("../node_modules/react-redux/es/hooks/useDispatch.js");function w(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=w(n);exports.Socket=function(w){var q=w.hostName,N=w.username,_=w.authToken,T=w.reload,I=w.reloadedCallback,D=w.children,U=w.uaType,j=y.useDispatch(),x=n.useRef(),E=n.useRef(),P=n.useRef(!1),O=n.useRef(0),F=n.useRef(null);u.useEventListener("phone-island-start-transcription",(function(e){if(E.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.uniqueid)||null;if(!n)return;E.current.emit("start_transcription",{linkedid:n,uniqueid:(null==e?void 0:e.uniqueid)||n})}})),u.useEventListener("phone-island-stop-transcription",(function(e){if(E.current){var n=(null==e?void 0:e.linkedid)||(null==e?void 0:e.uniqueid)||null;if(!n)return;E.current.emit("stop_transcription",{linkedid:n,uniqueid:(null==e?void 0:e.uniqueid)||n})}})),u.useEventListener("phone-island-current-user-queue-call-waiting",(function(e){j.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})})),u.useEventListener("phone-island-current-user-queue-call-connected",(function(e){j.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,u=function(e){if(e.counterpartNum&&b.isFromStreaming(e.counterpartNum)){j.island.setIsFromStreaming(!0),j.currentCall.updateCurrentCall({streamingSourceNumber:e.counterpartNum});var n=m.getStreamingSourceId(e.counterpartNum);n&&o.subscribe({id:n}).catch((function(e){return console.error("Error subscribing to streaming source:",e)}))}},y=function(e){var n,t,r,i;if(e){var o=function(e){return S.getCurrentCallQueueContext(e,l.store.getState().queue)}(e),c=function(e,n){var t=l.store.getState().currentCall;return{conversationId:e.id,linkedId:e.linkedId,uniqueId:e.uniqueId,ownerExtension:e.owner,number:"".concat(e.counterpartNum||""),queueId:(null==n?void 0:n.queueId)||t.queueId||"",queueName:(null==n?void 0:n.queueName)||t.queueName||"",queueNumber:(null==n?void 0:n.queueNumber)||t.queueNumber||"",queuePosition:(null==n?void 0:n.queuePosition)||"",queueWaitingTime:(null==n?void 0:n.queueWaitingTime)||0}}(e,o);if(Boolean(c.queueId||c.queueName||c.queueNumber))if(e.connected)((null===(r=F.current)||void 0===r?void 0:r.conversationId)!==e.id||"connected"!==(null===(i=F.current)||void 0===i?void 0:i.phase))&&(g.dispatchCurrentUserQueueCallConnected(c),F.current={conversationId:e.id,phase:"connected"});else((null===(n=F.current)||void 0===n?void 0:n.conversationId)!==e.id||"waiting"!==(null===(t=F.current)||void 0===t?void 0:t.phase))&&(g.dispatchCurrentUserQueueCallWaiting(c),F.current={conversationId:e.id,phase:"waiting"});else F.current=null}else F.current=null},w=function(n,t){var r=l.store.getState().currentCall,c=r.transferring,s=r.transferSwitching,d=r.transferCalls,v=l.store.getState().island.view;if(Object.keys(t).length>0){if(n.status){var m=l.store.getState().users.extensions,g=l.store.getState().currentUser.default_device,b=l.store.getState().currentUser,S=b.endpoints,w=b.username,C=l.store.getState().currentCall;C.incoming,C.outgoing;var q=function(){if(!m||!w)return!1;var e=Object.values(m).filter((function(e){return(null==e?void 0:e.username)===w}));return null==e?void 0:e.some((function(e){var n=null==S?void 0:S.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(n.status){case"ringing":if(function(e){var n=l.store.getState().currentCall,t=n.accepted,r=n.ownerExtension;return t&&!!r&&!!e&&r!==e}(t.owner))break;y(t),u(t),("mobile"===U&&q()||"desktop"===U&&("webrtc"===(null==g?void 0:g.type)||void 0===(null==g?void 0:g.type)&&!q()||!q()&&"physical"===(null==g?void 0:g.type)))&&(j.currentCall.checkIncomingUpdatePlay({conversationId:t.id,displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),incomingSocket:!0,incoming:!0,username:"".concat(m&&m[t.counterpartNum]&&m[t.counterpartNum].username)||"",ownerExtension:t.owner}),l.store.dispatch.island.setIslandView("call")),P.current||(P.current=!0,o.getCurrentUserInfo().then((function(n){n&&(j.currentUser.updateCurrentUser(n),a.eventDispatch("phone-island-user-informations-update",e.__assign({},n)),n.settings&&n.settings.open_param_url?j.paramUrl.setOpenParamUrlType(n.settings.open_param_url):j.paramUrl.setOpenParamUrlType("never"))})).catch((function(e){console.error("Error getting current user info:",e)})).finally((function(){setTimeout((function(){P.current=!1}),100)})));var N=l.store.getState().paramUrl.openParamUrlType,_=l.store.getState().island.urlOpened;if("ringing"===N&&!_){var T=k.isFromTrunk(t.counterpartNum);l.store.dispatch.paramUrl.setThroughTrunk(T),l.store.dispatch.island.setUrlOpened(!1),a.eventDispatch("phone-island-url-parameter-opened",{counterpartNum:t.counterpartNum,counterpartName:i.getDisplayName(t),owner:t.owner,uniqueId:t.uniqueId,linkedId:t.linkedId,throughQueue:t.throughQueue,throughTrunk:T,direction:t.direction,connected:t.connected})}break;case"busy":if(y(t),u(t),"mobile"===U&&q()||"desktop"===U&&("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(t&&t.connected)j.currentCall.updateCurrentCall({conversationId:t.id,displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),ownerExtension:t.owner,username:"".concat(m&&m[t.counterpartNum]&&m[t.counterpartNum].username)||"",chDest:(null==t?void 0:t.chDest)||{},chSource:(null==t?void 0:t.chSource)||{}}),j.currentCall.checkAcceptedUpdate({acceptedSocket:!0}),j.currentCall.addTransferCalls({type:"transferred",displayName:i.getDisplayName(t),number:"".concat(t.counterpartNum),startTime:"".concat(f.getTimestampInSeconds())}),l.store.getState().island.isFromStreaming&&"out"===t.direction&&setTimeout((function(){j.island.setIslandView("streamingAnswer")}),200),p.isPhysical()&&function(e){j.currentCall.updateCurrentCall({conversationId:e.id,accepted:!0,incoming:"in"!==e.direction&&void 0}),a.eventDispatch("phone-island-call-answered",{}),l.store.dispatch.player.stopAudioPlayer(),l.store.dispatch.player.setAudioPlayerLoop(!1)}(t),"call"===v&&c&&j.currentCall.updateCurrentCall({transferring:!1});if(d.length>1)j.currentCall.deleteTransferCalls();else if(t&&!t.connected){if(c&&!s){var I=d.find((function(e){return e.number===t.counterpartNum}));!t.connected&&I&&(j.currentCall.updateCurrentCall({transferring:!1}),a.eventDispatch("phone-island-call-transfer-failed",{}),j.currentCall.updateTransferSwitching(!1))}"REC"===(null==t?void 0:t.counterpartName)&&j.physicalRecorder.setRecordingTempVariable(!0)}t&&!t.connected&&"out"===t.direction&&j.currentCall.checkOutgoingUpdate({outgoingSocket:!0,outgoing:"REC"!==(null==t?void 0:t.counterpartName),displayName:i.getDisplayName(t),number:"".concat(null==t?void 0:t.counterpartNum),username:"".concat(m&&m[null==t?void 0:t.counterpartNum]&&m[null==t?void 0:t.counterpartNum].username)||""})}break;case"onhold":y(t);var D=t.counterpartName,x=t.counterpartNum,E=t.startTime;c&&x&&D&&"<unknown>"!==D&&(j.currentCall.addTransferCalls({type:"destination",displayName:i.getDisplayName(t),number:x,startTime:"".concat(f.getTimestampInSeconds())}),j.currentCall.updateCurrentCall({displayName:i.getDisplayName(t),number:x,startTime:"".concat(E/1e3),conversationId:t.id}),j.island.setIslandView("call"));break;case"busy_ringing":a.eventDispatch("phone-island-call-ringing",{})}}}else"online"==n.status&&h.userTotallyFree()&&(y(null),j.player.stopAudioPlayer(),j.currentCall.reset(),j.physicalRecorder.setRecordingTempVariable(!1),j.island.setIsFromStreaming(!1))};return n={upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3},"new"===r.getApiMode(N)&&(n.path="/api/ws"),E.current=t.io("https://"+q,n),j.websocket.update({socket:E.current}),E.current.on("connect",(function(){console.debug("Socket connected sid: ".concat(E.current.id)),a.eventDispatch("phone-island-socket-connected",{})})),E.current.on("disconnect",(function(e){console.debug("Socket disconnect - reason: ".concat(e)),x.current&&(clearInterval(x.current),x.current=null),e.includes("server disconnect")?a.eventDispatch("phone-island-server-disconnected",{}):a.eventDispatch("phone-island-socket-disconnected",{})})),E.current.io.on("error",(function(e){console.debug("Socket error: ",e)})),E.current.on("connect_error",(function(e){console.debug("Socket connect_error: ",e)})),E.current.io.on("reconnect",(function(e){O.current=0,a.eventDispatch("phone-island-socket-reconnected",{}),console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(E.current.id,")"))})),E.current.io.on("reconnect_attempt",(function(e){console.debug("Socket reconnect_attempt ".concat(e))})),E.current.io.on("reconnect_error",(function(e){console.debug("Socket reconnect_error: ",e)})),E.current.io.on("reconnect_failed",(function(){console.debug("Socket reconnect_failed")})),E.current.on("connect",(function(){console.debug("Socket on: "+q+" is connected!"),E.current.emit("login",{accessKeyId:"".concat(N),token:_,uaType:U})})),E.current.on("authe_ok",(function(){console.debug("Socket authentication success!"),a.eventDispatch("phone-island-socket-authorized",{}),x.current&&clearInterval(x.current),x.current=setInterval((function(){E.current.volatile.emit("ping",s.withTimeout((function(){O.current=0,setTimeout((function(){j.alerts.removeAlert("socket_down"),a.eventDispatch("phone-island-alert-removed",{type:"socket_down"}),a.eventDispatch("phone-island-socket-disconnected-popup-close",{})}),0)}),(function(){O.current++,console.debug("Socket ping timeout (".concat(O.current,"/").concat(3,"), connected: ").concat(E.current.connected)),setTimeout((function(){var e,n,t=E.current.connected&&O.current>=3;if(!E.current.connected||t){var r=l.store.getState().webrtc.sipcall,i=l.store.getState().currentCall,o=i.accepted,c=i.outgoing,u=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||c)&&("connected"===u||"completed"===u))return void console.debug("Socket unreachable but active call with ICE connected - skipping socket_down alert",{iceState:u,accepted:o,outgoing:c,isStaleConnection:t,timestamp:(new Date).toISOString()});t&&(console.warn("Stale socket connection detected - forcing reconnection"),E.current.disconnect()),j.alerts.setAlert("socket_down"),a.eventDispatch("phone-island-socket-disconnected-popup-open",{}),console.error("Socket is unreachable!")}}),0)}),5e3))}),5e3)})),E.current.on("userMainPresenceUpdate",(function(n){l.store.dispatch.users.updateEndpointMainPresence(e.__assign({},n.mainPresence)),g.dispatchMainPresence(n)})),E.current.on("extenHangup",(function(e){var n,t,r=l.store.getState().currentUser,i=r.endpoints,o=r.username,u=l.store.getState().conference,s=u.isActive,d=u.conferenceStartedFrom,p=l.store.getState().island,v=p.view,m=p.previewCallFromMobileOrNethlink,g=((null==i?void 0:i.extension)||[]).find((function(n){return n.id===e.callerNum})),f=null==g?void 0:g.type,h=l.store.getState().currentUser.conversations,b=void 0,S=!1;if(e.callerNum&&h[e.callerNum]){var k=h[e.callerNum],y=Object.keys(k);if(y.length>0){for(var w=null,C=0,q=y;C<q.length;C++){var N=q[C],_=null==k?void 0:k[N];if(_)if(w){var T=!!w.connected,I=!!_.connected;if(!I||T){var D=null!==(n=w.startTime)&&void 0!==n?n:0,U=null!==(t=_.startTime)&&void 0!==t?t:0;I===T&&U>D&&(w=_)}else w=_}else w=_}b=null==w?void 0:w.linkedId,S=(null==w?void 0:w.connected)||!1}}if(b&&S&&a.eventDispatch("phone-island-summary-call-check",{linkedid:b}),"normal_clearing"===e.cause&&("physical"===f||"mobile"===f)||"normal_clearing"===e.cause&&("webrtc"===f||"nethlink"===f)&&m||"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(){l.store.dispatch.island.toggleAvoidToShow(!1),l.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!1)}),500),s&&d!==o&&l.store.dispatch.conference.resetConference()):"normal_circuit_congestion"===(null==e?void 0:e.cause)&&s&&d===o?setTimeout((function(){a.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"!==f&&"nethlink"!==f||!s||d===o||l.store.dispatch.conference.resetConference(),("normal_clearing"===e.cause&&("webrtc"===f||"nethlink"===f)||"call_rejected"===(null==e?void 0:e.cause))&&s&&d===o){var j=l.store.getState().conference,x=j.usersList,E=j.pendingUsers,P=x&&Object.keys(x).length>0,O=E&&Object.keys(E).length>0;P||O?setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800):l.store.dispatch.conference.resetConference()}if("interworking"===(null==e?void 0:e.cause)&&s&&d===o&&"waitingConference"!==v&&setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),"user_busy"===(null==e?void 0:e.cause)){var F=l.store.getState().currentUser,A=F.endpoints,V=F.username,R=((null==A?void 0:A.extension)||[]).map((function(e){return e.id})),M=l.store.getState().currentCall,L=M.incoming,Q=M.accepted,W=M.transferring,B=l.store.getState().conference,H=B.isActive,z=B.conferenceStartedFrom;!(L&&e.callerNum&&R.includes(e.callerNum))&&(!Q||H||W)&&(l.store.dispatch.island.setOperatorBusyActive({callerNumber:e.callerNum||"Unknown"}),setTimeout((function(){l.store.dispatch.player.stopAudioPlayer()}),4e3),setTimeout((function(){l.store.dispatch.player.updateStartAudioPlayer({src:c.default,loop:!0}),l.store.dispatch.island.setIslandView("operatorBusy")}),600),H&&z===V&&setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),4e3))}if("subscriber_absent"===(null==e?void 0:e.cause)){var J=l.store.getState().conference,K=J.isActive,G=J.conferenceStartedFrom,X=l.store.getState().currentUser.username;if(K&&G===X){var Y=l.store.getState().conference;x=Y.usersList,E=Y.pendingUsers,P=x&&Object.keys(x).length>0,O=E&&Object.keys(E).length>0,P||O?(setTimeout((function(){a.eventDispatch("phone-island-view-changed",{viewType:"waitingConference"})}),800),E&&E[e.callerNum]&&l.store.dispatch.conference.removePendingUser(e.callerNum)):l.store.dispatch.conference.resetConference()}}})),E.current.on("extenConnected",(function(e){var n=l.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)&&(l.store.dispatch.island.toggleAvoidToShow(!0),l.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0),a.eventDispatch("phone-island-call-answered",{extensionType:o}))})),E.current.on("extenUpdate",(function(e){var n,t;j.users.updateExtension(e);var r=l.store.getState().users.extensions,i={},o=l.store.getState().currentUser;for(var c in r){var u=r[c].username,a=r[c].exten;i[u]||(i[u]=[]),i[u].push(a)}var s=i[e.username],d=e.conversations[Object.keys(e.conversations)[0]]||{},p=!1;if((null==e?void 0:e.username)===N&&!v.isEmpty(d)&&(null==d?void 0:d.owner)){var m=null===(t=null===(n=null==o?void 0:o.endpoints)||void 0===n?void 0:n.extension)||void 0===t?void 0:t.find((function(e){return e.id===d.owner}));m&&"mobile"===m.type&&(p=!0)}if(g.dispatchExtensions(e),v.isEmpty(d)){var f=null==s?void 0:s.some((function(e){var n,t=null===(n=r[e])||void 0===n?void 0:n.conversations;return!v.isEmpty(t)}));f||g.dispatchConversations(e)}else p||g.dispatchConversations(e);p&&"busy"===(null==e?void 0:e.status)&&(null==e?void 0:e.username)===N&&(l.store.dispatch.island.toggleAvoidToShow(!0),l.store.dispatch.island.setPreviewCallFromMobileOrNethlink(!0)),e.username===N&&(w(e,d),j.currentUser.updateConversations(e))})),E.current.on("queueUpdate",(function(e){j.queue.updateQueue(e);var n,t,r,i=(n=l.store.getState().currentUser.conversations,t=l.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&&y(i),g.dispatchQueueUpdate(e)})),E.current.on("queueMemberUpdate",(function(e){j.queue.updateQueueMember(e),g.dispatchQueueMemberUpdate(e)})),E.current.on("takeOver",(function(){g.dispatchAlreadyLogin()})),E.current.on("serverReloaded",(function(){g.dispatchServerReload()})),E.current.on("parkingUpdate",(function(e){g.dispatchParkingUpdate(e)})),E.current.on("actionNethLink",(function(e,n){g.dispatchUrlCall(e,n)})),E.current.on("satellite/summary",(function(e){(null==e?void 0:e.uniqueid)&&a.eventDispatch("phone-island-summary-ready",{linkedid:null==e?void 0:e.uniqueid,display_name:null==e?void 0:e.display_name,display_number:null==e?void 0:e.display_number})})),E.current.on("message",(function(e){switch(e.message){case"screenSharingStart":j.island.toggleSideViewVisible(!1),j.island.toggleTranscriptionViewVisible(!1),j.island.setIslandView("video"),j.screenShare.update({isJoiningScreenShare:!0,room:e.roomId});break;case"screenSharingStop":j.island.toggleSideViewVisible(!1),j.island.toggleTranscriptionViewVisible(!1),j.island.setIslandView("video"),j.screenShare.update({isLeavingScreenShare:!0});break;default:console.warn("Socket: unknown message type ",e.message)}})),E.current.on("updateDefaultDevice",(function(n){g.dispatchDefaultDeviceUpdate(n);var t=l.store.getState().users.extensions,r=l.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],c=r.extension.find((function(e){return e.id===o.exten}));c&&(o=e.__assign(e.__assign({},o),{type:c.type})),l.store.dispatch.currentUser.updateCurrentDefaultDevice(o),d.checkMediaPermissions()}}})),E.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=l.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}))})),l.store.dispatch.conference.updateConferenceUsersList(o),l.store.dispatch.conference.updateConferenceId(t)}})),E.current.on("confBridgeEnd",(function(e){e&&(null==e?void 0:e.id)&&(l.store.dispatch.conference.resetConference(),a.eventDispatch("phone-island-conference-finished",{}))})),E.current.on("callWebrtc",(function(e){a.eventDispatch("phone-island-call-start",{number:e})})),E.current.on("newVoiceMessageCounter",(function(e){a.eventDispatch("phone-island-voicemail-received",{voicemailInfo:e})})),E.current.on("streamingSourceUpdate",(function(e){a.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;if(t&&r){l.store.getState().island.isFromStreaming;var i=l.store.getState().currentCall.streamingSourceNumber;m.getStreamingSourceId(i),j.streaming.updateSourceImage({source:t,image:r})}}})),E.current.on("satellite/transcription",(function(e){a.eventDispatch("phone-island-conversation-transcription",e)})),function(){clearInterval(x.current),E.current.close()}}),[q,N,_,U,j]),n.useEffect((function(){var e;if(T){console.info("Socket reload requested");var n=l.store.getState().alerts.data,t=l.store.getState().island.forceReload;(null===(e=n.socket_down)||void 0===e?void 0:e.active)||!1||t?(console.info(t?"Force reload requested, performing Socket reconnection":"Socket down detected (alert active), performing reconnection"),t&&l.store.dispatch.island.setForceReload(!1),x.current&&(clearInterval(x.current),x.current=null),setTimeout((function(){E.current.disconnect(),E.current.connect(),I()}),100)):(console.info("Socket already connected (no alert active), skipping reconnection"),I())}}),[T]),C.default.createElement(C.default.Fragment,null,D)};
|
|
2
2
|
//# sourceMappingURL=Socket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.js","sources":["../../src/components/Socket.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useEffect, useRef } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../store'\nimport { io } from 'socket.io-client'\nimport { getApiMode } from './RestAPI'\nimport { getDisplayName } from '../lib/phone/conversation'\nimport { getCurrentUserInfo } from '../services/user'\nimport busyRingtone from '../static/busy_ringtone'\nimport {\n dispatchMainPresence,\n dispatchConversations,\n dispatchQueueUpdate,\n dispatchQueueMemberUpdate,\n dispatchCurrentUserQueueCallWaiting,\n dispatchCurrentUserQueueCallConnected,\n dispatchAlreadyLogin,\n dispatchServerReload,\n dispatchParkingUpdate,\n dispatchExtensions,\n dispatchUrlCall,\n dispatchDefaultDeviceUpdate,\n} from '../events'\nimport { store } from '../store'\nimport { eventDispatch, useEventListener, withTimeout } from '../utils'\nimport type {\n ConversationTypes,\n ExtensionTypes,\n QueuesUpdateTypes,\n QueueUpdateMemberTypes,\n MainPresenceTypes,\n CurrentUserQueueCallEventTypes,\n} from '../types'\nimport { getTimestampInSeconds } from '../utils/genericFunctions/timestamp'\nimport { userTotallyFree } from '../lib/user/extensions'\nimport { isEmpty } from '../utils/genericFunctions/isEmpty'\nimport { isPhysical } from '../lib/user/default_device'\nimport { ScreenSharingMessage } from './VideoView'\nimport { checkMediaPermissions } from '../lib/devices/devices'\nimport { isFromStreaming } from '../utils/streaming/isFromStreaming'\nimport { getStreamingSourceId } from '../utils/streaming/getStreamingSourceId'\nimport { subscribe } from '../services/user'\nimport { isFromTrunk } from '../lib/user/extensions'\nimport { getCurrentCallQueueContext } from '../lib/phone/queue'\n\ninterface SocketProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n reload: boolean\n reloadedCallback: () => void\n uaType: string\n}\n\nexport const Socket: FC<SocketProps> = ({\n hostName,\n username,\n authToken,\n reload,\n reloadedCallback,\n children,\n uaType,\n}) => {\n const dispatch = useDispatch<Dispatch>()\n const connectionCheckInterval = useRef<any>()\n const socket = useRef<any>()\n const isUpdatingUserInfo = useRef(false)\n const consecutivePingTimeouts = useRef(0)\n const currentUserQueueCallPhase = useRef<{\n conversationId: string\n phase: 'waiting' | 'connected'\n } | null>(null)\n const STALE_CONNECTION_THRESHOLD = 3 // Force reconnect after 3 consecutive ping timeouts\n\n // Event listener for starting transcription\n useEventListener('phone-island-start-transcription', (args: any) => {\n if (socket.current) {\n const linkedid = args?.linkedid || args?.uniqueid || null\n if (!linkedid) {\n return\n }\n socket.current.emit('start_transcription', {\n linkedid,\n uniqueid: args?.uniqueid || linkedid,\n })\n }\n })\n\n // Event listener for stopping transcription\n useEventListener('phone-island-stop-transcription', (args: any) => {\n if (socket.current) {\n const linkedid = args?.linkedid || args?.uniqueid || null\n if (!linkedid) {\n return\n }\n socket.current.emit('stop_transcription', {\n linkedid,\n uniqueid: args?.uniqueid || linkedid,\n })\n }\n })\n\n useEventListener(\n 'phone-island-current-user-queue-call-waiting',\n (data: CurrentUserQueueCallEventTypes) => {\n dispatch.currentCall.updateCurrentCall({\n throughQueue: true,\n queueId: data?.queueId || '',\n queueName: data?.queueName || '',\n queueNumber: data?.queueNumber || '',\n queuePosition: data?.queuePosition || '',\n queueWaitingTime: data?.queueWaitingTime || 0,\n })\n },\n )\n\n useEventListener(\n 'phone-island-current-user-queue-call-connected',\n (data: CurrentUserQueueCallEventTypes) => {\n dispatch.currentCall.updateCurrentCall({\n throughQueue: true,\n queueId: data?.queueId || '',\n queueName: data?.queueName || '',\n queueNumber: data?.queueNumber || '',\n queuePosition: data?.queuePosition || '',\n queueWaitingTime: data?.queueWaitingTime || 0,\n })\n },\n )\n\n const checkDefaultDeviceConversationActive = (conv: any) => {\n dispatch.currentCall.updateCurrentCall({\n conversationId: conv.id,\n accepted: true,\n incoming: conv.direction === 'in' ? false : undefined,\n })\n eventDispatch('phone-island-call-answered', {})\n\n // Stop the local audio element ringing\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.player.setAudioPlayerLoop(false)\n }\n\n useEffect(() => {\n /**\n * Helper function to handle streaming source detection and subscription\n */\n const handleStreamingSource = (conv: ConversationTypes) => {\n // Check if the call is from a streaming source\n if (conv.counterpartNum && isFromStreaming(conv.counterpartNum)) {\n // Set isFromStreaming flag to true\n dispatch.island.setIsFromStreaming(true)\n\n // Store the streaming source number in the currentCall state for future reference\n dispatch.currentCall.updateCurrentCall({\n streamingSourceNumber: conv.counterpartNum,\n })\n\n // Find the source ID and subscribe to streaming updates\n const sourceId = getStreamingSourceId(conv.counterpartNum)\n if (sourceId) {\n // Subscribe to streaming updates\n subscribe({ id: sourceId }).catch((error) =>\n console.error('Error subscribing to streaming source:', error),\n )\n }\n }\n }\n\n const getCurrentCallQueuePayload = (conv: ConversationTypes) => {\n return getCurrentCallQueueContext(conv, store.getState().queue)\n }\n\n const getQueuePayloadWithFallback = (\n conv: ConversationTypes,\n queueContext: ReturnType<typeof getCurrentCallQueuePayload>,\n ) => {\n const currentCall = store.getState().currentCall\n\n return {\n conversationId: conv.id,\n linkedId: conv.linkedId,\n uniqueId: conv.uniqueId,\n ownerExtension: conv.owner,\n number: `${conv.counterpartNum || ''}`,\n queueId: queueContext?.queueId || currentCall.queueId || '',\n queueName: queueContext?.queueName || currentCall.queueName || '',\n queueNumber: queueContext?.queueNumber || currentCall.queueNumber || '',\n queuePosition: queueContext?.queuePosition || '',\n queueWaitingTime: queueContext?.queueWaitingTime || 0,\n }\n }\n\n const syncCurrentUserQueueCall = (conv: ConversationTypes | null) => {\n if (!conv) {\n currentUserQueueCallPhase.current = null\n return\n }\n\n const queueContext = getCurrentCallQueuePayload(conv)\n const payload = getQueuePayloadWithFallback(conv, queueContext)\n const hasQueueContext = Boolean(payload.queueId || payload.queueName || payload.queueNumber)\n\n if (!hasQueueContext) {\n currentUserQueueCallPhase.current = null\n return\n }\n\n if (!conv.connected) {\n const shouldDispatchWaiting =\n currentUserQueueCallPhase.current?.conversationId !== conv.id ||\n currentUserQueueCallPhase.current?.phase !== 'waiting'\n\n if (shouldDispatchWaiting) {\n dispatchCurrentUserQueueCallWaiting(payload)\n currentUserQueueCallPhase.current = {\n conversationId: conv.id,\n phase: 'waiting',\n }\n }\n\n return\n }\n\n const shouldDispatchConnected =\n currentUserQueueCallPhase.current?.conversationId !== conv.id ||\n currentUserQueueCallPhase.current?.phase !== 'connected'\n\n if (shouldDispatchConnected) {\n dispatchCurrentUserQueueCallConnected(payload)\n currentUserQueueCallPhase.current = {\n conversationId: conv.id,\n phase: 'connected',\n }\n }\n }\n\n const getActiveConversationForCurrentCall = (): ConversationTypes | null => {\n const { conversations } = store.getState().currentUser\n const { conversationId } = store.getState().currentCall\n let selectedConversation: ConversationTypes | null = null\n\n Object.values(conversations || {}).forEach((extensionConversations) => {\n Object.values(extensionConversations || {}).forEach((conversation) => {\n if (selectedConversation?.id && selectedConversation.id === conversationId) {\n return\n }\n\n if (conversationId && conversation.id === conversationId) {\n selectedConversation = conversation\n return\n }\n\n if (!selectedConversation) {\n selectedConversation = conversation\n return\n }\n\n if (conversation.connected && !selectedConversation.connected) {\n selectedConversation = conversation\n return\n }\n\n if (\n conversation.connected === selectedConversation.connected &&\n conversation.startTime > selectedConversation.startTime\n ) {\n selectedConversation = conversation\n }\n })\n })\n\n return selectedConversation\n }\n\n const shouldKeepCurrentAcceptedCall = (ownerExtension?: string) => {\n const { accepted, ownerExtension: currentOwnerExtension } = store.getState().currentCall\n\n return (\n accepted &&\n !!currentOwnerExtension &&\n !!ownerExtension &&\n currentOwnerExtension !== ownerExtension\n )\n }\n\n /**\n * Manages event and data for the currentUser\n *\n * @param res The data from the socket\n * @param conv The conversation data\n */\n const handleCurrentUserEvents = (res: ExtensionTypes, conv: ConversationTypes) => {\n // Handle transferring data\n const { transferring, transferSwitching, transferCalls } = store.getState().currentCall\n\n const view = store.getState().island.view\n // Check conversation isn't empty\n if (Object.keys(conv).length > 0) {\n // With conversation\n if (res.status) {\n const { extensions } = store.getState().users\n const { default_device } = store.getState().currentUser\n const { endpoints, username } = store.getState().currentUser\n const { incoming, outgoing } = store.getState().currentCall\n\n const hasOnlineNethlink = () => {\n if (!extensions || !username) return false\n\n // Get all extensions for current user\n const userExtensions: any = Object.values(extensions).filter(\n (ext) => ext?.username === username,\n )\n\n // Check if any extension is nethlink type and online\n return userExtensions?.some((ext) => {\n const endpointExtension = endpoints?.extension.find(\n (endpoint) => endpoint.id === ext?.exten,\n )\n return endpointExtension?.type === 'nethlink' && ext?.status !== 'offline'\n })\n }\n switch (res.status) {\n case 'ringing':\n if (shouldKeepCurrentAcceptedCall(conv.owner)) {\n break\n }\n\n syncCurrentUserQueueCall(conv)\n\n // Handle streaming source for incoming calls\n handleStreamingSource(conv)\n\n if (\n (uaType === 'mobile' && hasOnlineNethlink()) ||\n (uaType === 'desktop' &&\n (default_device?.type === 'webrtc' ||\n (default_device?.type === undefined && !hasOnlineNethlink()) ||\n (!hasOnlineNethlink() && default_device?.type === 'physical')))\n ) {\n dispatch.currentCall.checkIncomingUpdatePlay({\n conversationId: conv.id,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n incomingSocket: true,\n incoming: true,\n username:\n `${\n extensions &&\n extensions[conv.counterpartNum] &&\n extensions[conv.counterpartNum].username\n }` || '',\n ownerExtension: conv.owner,\n })\n store.dispatch.island.setIslandView('call')\n }\n // Get updated user info to refresh open url param type\n if (!isUpdatingUserInfo.current) {\n isUpdatingUserInfo.current = true\n getCurrentUserInfo()\n .then((userInfo) => {\n if (userInfo) {\n dispatch.currentUser.updateCurrentUser(userInfo)\n eventDispatch('phone-island-user-informations-update', { ...userInfo })\n if (userInfo.settings && userInfo.settings.open_param_url) {\n dispatch.paramUrl.setOpenParamUrlType(userInfo.settings.open_param_url)\n } else {\n dispatch.paramUrl.setOpenParamUrlType('never')\n }\n }\n })\n .catch((error) => {\n console.error('Error getting current user info:', error)\n })\n .finally(() => {\n setTimeout(() => {\n isUpdatingUserInfo.current = false\n }, 100)\n })\n }\n const { openParamUrlType } = store.getState().paramUrl\n const { urlOpened } = store.getState().island\n if (openParamUrlType === 'ringing' && !urlOpened) {\n // Calculate throughTrunk based on counterpartNum\n const calculatedThroughTrunk = isFromTrunk(conv.counterpartNum)\n\n // Update throughTrunk in paramUrl store\n store.dispatch.paramUrl.setThroughTrunk(calculatedThroughTrunk)\n\n store.dispatch.island.setUrlOpened(false)\n eventDispatch('phone-island-url-parameter-opened', {\n counterpartNum: conv.counterpartNum,\n counterpartName: getDisplayName(conv),\n owner: conv.owner,\n uniqueId: conv.uniqueId,\n linkedId: conv.linkedId,\n throughQueue: conv.throughQueue,\n throughTrunk: calculatedThroughTrunk,\n direction: conv.direction,\n connected: conv.connected,\n })\n }\n break\n // @ts-ignore\n case 'busy':\n syncCurrentUserQueueCall(conv)\n\n // Handle streaming source for outgoing calls\n handleStreamingSource(conv)\n\n if (\n (uaType === 'mobile' && hasOnlineNethlink()) ||\n (uaType === 'desktop' &&\n (default_device?.type === 'webrtc' ||\n (default_device?.type === undefined && !hasOnlineNethlink()) ||\n (!hasOnlineNethlink() && default_device?.type === 'physical')))\n ) {\n if (conv && conv.connected) {\n // Current call accepted and update connected call\n dispatch.currentCall.updateCurrentCall({\n conversationId: conv.id,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n ownerExtension: conv.owner,\n username:\n `${\n extensions &&\n extensions[conv.counterpartNum] &&\n extensions[conv.counterpartNum].username\n }` || '',\n chDest: conv?.chDest || {},\n chSource: conv?.chSource || {},\n })\n // Update the current call informations for physical devices\n dispatch.currentCall.checkAcceptedUpdate({\n acceptedSocket: true,\n })\n // Add call to transfer calls\n dispatch.currentCall.addTransferCalls({\n type: 'transferred',\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n startTime: `${getTimestampInSeconds()}`,\n })\n\n // Check if this is a streaming call that was accepted\n const { isFromStreaming } = store.getState().island\n if (isFromStreaming && conv.direction === 'out') {\n // Set view to streamingAnswer for outgoing streaming calls when accepted\n setTimeout(() => {\n dispatch.island.setIslandView('streamingAnswer')\n }, 200)\n }\n\n if (isPhysical()) {\n checkDefaultDeviceConversationActive(conv)\n }\n if (view === 'call' && transferring) {\n dispatch.currentCall.updateCurrentCall({\n transferring: false,\n })\n }\n }\n // Delete transfer calls if there are more than one ( in case of call switch after transfer)\n if (transferCalls.length > 1) {\n dispatch.currentCall.deleteTransferCalls()\n }\n // Handle not connected calls\n else if (conv && !conv.connected) {\n if (transferring && !transferSwitching) {\n // Handle hangup during transfer\n const inTransferCalls = transferCalls.find(\n (item) => item.number === conv.counterpartNum,\n )\n if (!conv.connected && inTransferCalls) {\n // Update transferring data for the current call\n dispatch.currentCall.updateCurrentCall({\n transferring: false,\n })\n eventDispatch('phone-island-call-transfer-failed', {})\n // Reset transfer switching\n // TODO - It needs to enhance how conversation connections (conv.connected) are updated server side\n // TODO - The transfer end is not handled when the an user hangups or after call switch\n dispatch.currentCall.updateTransferSwitching(false)\n }\n }\n if (conv?.counterpartName === 'REC') {\n dispatch.physicalRecorder.setRecordingTempVariable(true)\n }\n }\n // Handle outgoing call\n if (conv && !conv.connected && conv.direction === 'out') {\n // Update the current outgoing conversation\n dispatch.currentCall.checkOutgoingUpdate({\n outgoingSocket: true,\n outgoing: conv?.counterpartName === 'REC' ? false : true,\n displayName: getDisplayName(conv),\n number: `${conv?.counterpartNum}`,\n username:\n `${\n extensions &&\n extensions[conv?.counterpartNum] &&\n extensions[conv?.counterpartNum].username\n }` || '',\n })\n }\n }\n break\n\n case 'onhold':\n syncCurrentUserQueueCall(conv)\n\n // The new conversation during transferring\n const { counterpartName, counterpartNum, startTime } = conv\n if (\n transferring &&\n counterpartNum &&\n counterpartName &&\n counterpartName !== '<unknown>'\n ) {\n // Add call to transfer calls\n dispatch.currentCall.addTransferCalls({\n type: 'destination',\n displayName: getDisplayName(conv),\n number: counterpartNum,\n startTime: `${getTimestampInSeconds()}`,\n })\n // Set the current call informations\n dispatch.currentCall.updateCurrentCall({\n displayName: getDisplayName(conv),\n number: counterpartNum,\n startTime: `${startTime / 1000}`,\n conversationId: conv.id,\n })\n // Set the view of the island to call\n dispatch.island.setIslandView('call')\n }\n break\n case 'busy_ringing':\n eventDispatch('phone-island-call-ringing', {})\n break\n default:\n break\n }\n }\n } else {\n // Without conversation for physical phone management\n if (res.status == 'online' && userTotallyFree()) {\n syncCurrentUserQueueCall(null)\n\n // Stop ringing sounds\n dispatch.player.stopAudioPlayer()\n // Reset current call info\n dispatch.currentCall.reset()\n dispatch.physicalRecorder.setRecordingTempVariable(false)\n // Reset isFromStreaming flag\n dispatch.island.setIsFromStreaming(false)\n }\n }\n }\n\n /**\n * Initialize socket connection and listeners\n */\n const initSocketConnection = () => {\n const currentApiMode = getApiMode(username)\n\n const socketOptions: any = {\n upgrade: false,\n transports: ['websocket'],\n reconnection: true,\n reconnectionDelay: 2000,\n }\n\n // Only set path for new API mode\n if (currentApiMode === 'new') {\n socketOptions.path = '/api/ws'\n }\n\n socket.current = io('https://' + hostName, socketOptions)\n\n // save websocket to store\n dispatch.websocket.update({ socket: socket.current })\n\n // Handle socket errors\n socket.current.on('connect', () => {\n console.debug(`Socket connected sid: ${socket.current.id}`)\n eventDispatch('phone-island-socket-connected', {})\n })\n socket.current.on('disconnect', (reason) => {\n console.debug(`Socket disconnect - reason: ${reason}`)\n // Clear the connection check interval on disconnect to avoid stale pings\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n connectionCheckInterval.current = null\n }\n if (reason.includes('server disconnect')) {\n eventDispatch('phone-island-server-disconnected', {})\n } else {\n eventDispatch('phone-island-socket-disconnected', {})\n }\n })\n socket.current.io.on('error', (err) => {\n console.debug(`Socket error: `, err)\n })\n socket.current.on('connect_error', (err) => {\n console.debug(`Socket connect_error: `, err)\n })\n socket.current.io.on('reconnect', (attempt) => {\n // Reset consecutive ping timeout counter on successful reconnection\n consecutivePingTimeouts.current = 0\n eventDispatch('phone-island-socket-reconnected', {})\n console.debug(`Socket reconnect attemp ${attempt} (sid: ${socket.current.id})`)\n })\n socket.current.io.on('reconnect_attempt', (attempt) => {\n console.debug(`Socket reconnect_attempt ${attempt}`)\n })\n socket.current.io.on('reconnect_error', (err) => {\n console.debug(`Socket reconnect_error: `, err)\n })\n socket.current.io.on('reconnect_failed', () => {\n console.debug(`Socket reconnect_failed`)\n })\n\n // Connection check interval is now started in the authe_ok handler\n // to ensure it only runs after successful authentication\n\n // Handle connection message\n socket.current.on('connect', () => {\n console.debug('Socket on: ' + hostName + ' is connected!')\n socket.current.emit('login', {\n accessKeyId: `${username}`,\n token: authToken,\n uaType: uaType,\n })\n })\n\n // Handle authentication success message\n socket.current.on('authe_ok', () => {\n console.debug('Socket authentication success!')\n eventDispatch('phone-island-socket-authorized', {})\n\n // Start connection check interval after successful authentication\n // Clear any existing interval first to avoid duplicates\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n }\n connectionCheckInterval.current = setInterval(() => {\n socket.current.volatile.emit(\n 'ping',\n withTimeout(\n () => {\n // Ping success - reset consecutive timeout counter\n consecutivePingTimeouts.current = 0\n // Remove socket_down alert (async to avoid React error #300 with framer-motion)\n setTimeout(() => {\n dispatch.alerts.removeAlert('socket_down')\n eventDispatch('phone-island-alert-removed', {\n type: 'socket_down',\n })\n eventDispatch('phone-island-socket-disconnected-popup-close', {})\n }, 0)\n },\n () => {\n // Ping timeout - increment counter\n consecutivePingTimeouts.current++\n console.debug(\n `Socket ping timeout (${consecutivePingTimeouts.current}/${STALE_CONNECTION_THRESHOLD}), connected: ${socket.current.connected}`,\n )\n\n // Set socket_down alert (async to avoid React error #300 with framer-motion)\n setTimeout(() => {\n // Check for stale connection: socket reports connected but pings keep timing out\n const isStaleConnection =\n socket.current.connected &&\n consecutivePingTimeouts.current >= STALE_CONNECTION_THRESHOLD\n\n if (!socket.current.connected || isStaleConnection) {\n // Check if there's an active call with ICE still connected\n // If so, skip showing alert - let ICE grace period mechanism handle it\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n const { accepted, outgoing } = store.getState().currentCall\n const iceState = sipcall?.webrtcStuff?.pc?.iceConnectionState\n const hasActiveCallWithIce =\n (accepted || outgoing) &&\n (iceState === 'connected' || iceState === 'completed')\n\n if (hasActiveCallWithIce) {\n console.debug(\n 'Socket unreachable but active call with ICE connected - skipping socket_down alert',\n {\n iceState,\n accepted,\n outgoing,\n isStaleConnection,\n timestamp: new Date().toISOString(),\n },\n )\n return\n }\n\n if (isStaleConnection) {\n console.warn('Stale socket connection detected - forcing reconnection')\n // Force disconnect to trigger reconnection\n socket.current.disconnect()\n }\n\n dispatch.alerts.setAlert('socket_down')\n eventDispatch('phone-island-socket-disconnected-popup-open', {})\n console.error('Socket is unreachable!')\n }\n }, 0)\n },\n 5 * 1000,\n ),\n )\n }, 5 * 1000)\n })\n\n socket.current.on('userMainPresenceUpdate', (res: MainPresenceTypes) => {\n // Update endpoints store\n store.dispatch.users.updateEndpointMainPresence({ ...res.mainPresence })\n // Dispatch dispatchMainPresence Event\n dispatchMainPresence(res)\n })\n\n socket.current.on('extenHangup', (res: any) => {\n const { endpoints, username } = store.getState().currentUser\n const { isActive, conferenceStartedFrom } = store.getState().conference\n const { view, previewCallFromMobileOrNethlink } = store.getState().island\n\n // Get user extensions\n const userExtensions = endpoints?.extension || []\n\n // Find the extension type based on callerNum\n const connectedExtension = userExtensions.find((ext) => ext.id === res.callerNum)\n\n const extensionType: any = connectedExtension?.type\n\n // Get linkedId from conversations\n const { conversations } = store.getState().currentUser\n let linkedid: any = undefined\n let conversationWasConnected = false\n\n if (res.callerNum && conversations[res.callerNum]) {\n const extensionConversations = conversations[res.callerNum]\n const conversationKeys = Object.keys(extensionConversations)\n if (conversationKeys.length > 0) {\n let selectedConversation: any = null\n for (const key of conversationKeys) {\n const currentConversation = extensionConversations?.[key]\n if (!currentConversation) continue\n\n if (!selectedConversation) {\n selectedConversation = currentConversation\n continue\n }\n\n const selectedConnected = !!selectedConversation.connected\n const currentConnected = !!currentConversation.connected\n\n // Prefer connected conversations over non-connected ones\n if (currentConnected && !selectedConnected) {\n selectedConversation = currentConversation\n continue\n }\n\n const selectedStartTime = selectedConversation.startTime ?? 0\n const currentStartTime = currentConversation.startTime ?? 0\n\n // Among conversations with the same connected status, prefer the most recent one\n if (currentConnected === selectedConnected && currentStartTime > selectedStartTime) {\n selectedConversation = currentConversation\n }\n }\n\n linkedid = selectedConversation?.linkedId\n conversationWasConnected = selectedConversation?.connected || false\n }\n }\n // Check summary/transcription only for calls that were actually answered.\n if (linkedid && conversationWasConnected) {\n eventDispatch('phone-island-summary-call-check', { linkedid })\n }\n\n // If cause is normal_clearing and extension is physical or mobile\n // Clean phone-island visibility also after user_busy ( useful for physical devices )\n if (\n (res.cause === 'normal_clearing' &&\n (extensionType === 'physical' || extensionType === 'mobile')) ||\n (res.cause === 'normal_clearing' &&\n (extensionType === 'webrtc' || extensionType === 'nethlink') &&\n previewCallFromMobileOrNethlink) ||\n res?.cause === 'user_busy' ||\n res?.cause === 'not_defined' ||\n res?.cause === 'call_rejected' ||\n res?.cause === 'interworking'\n ) {\n // Reset phone island visibility after 2 seconds to avoid glitches\n setTimeout(() => {\n store.dispatch.island.toggleAvoidToShow(false)\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(false)\n }, 500)\n // Only reset conference if there are no more participants or if user is not in a conference\n if (isActive && conferenceStartedFrom !== username) {\n store.dispatch.conference.resetConference()\n }\n } else if (\n res?.cause === 'normal_circuit_congestion' &&\n isActive &&\n conferenceStartedFrom === username\n ) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n } else if (\n (res.cause === 'normal_clearing' ||\n res?.cause === 'user_busy' ||\n res?.cause === 'not_defined' ||\n res?.cause === 'call_rejected') &&\n (extensionType === 'webrtc' || extensionType === 'nethlink') &&\n isActive &&\n conferenceStartedFrom !== username\n ) {\n store.dispatch.conference.resetConference()\n }\n // if conference owner and added participant refuses or hangs up with normal_clearing\n if (\n ((res.cause === 'normal_clearing' &&\n (extensionType === 'webrtc' || extensionType === 'nethlink')) ||\n res?.cause === 'call_rejected') &&\n isActive &&\n conferenceStartedFrom === username\n ) {\n const { usersList, pendingUsers } = store.getState().conference\n // Check if there are still participants in the conference (both confirmed and pending)\n const hasConfirmedParticipants = usersList && Object.keys(usersList).length > 0\n const hasPendingParticipants = pendingUsers && Object.keys(pendingUsers).length > 0\n const hasParticipants = hasConfirmedParticipants || hasPendingParticipants\n\n if (!hasParticipants) {\n store.dispatch.conference.resetConference()\n } else {\n // If there are still participants, keep the waitingConference view\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n }\n }\n // if conference owner call the call with the added user inside conference\n if (\n res?.cause === 'interworking' &&\n isActive &&\n conferenceStartedFrom === username &&\n view !== 'waitingConference'\n ) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n }\n if (res?.cause === 'user_busy') {\n // Get current user's extensions\n const { endpoints, username } = store.getState().currentUser\n const userExtensions = endpoints?.extension || []\n const userExtensionIds = userExtensions.map((ext) => ext.id)\n\n // Get the current call state to understand if we're the caller or receiver\n const { incoming, accepted, transferring } = store.getState().currentCall\n\n // Check if there's an active conference\n const { isActive, conferenceStartedFrom } = store.getState().conference\n\n // When we RECEIVE a call on our extension, callerNum is the busy extension (our own)\n // When we CALL someone, channelExten is one of our extensions (the one we're calling from)\n const isReceivingCall =\n incoming && !!res.callerNum && userExtensionIds.includes(res.callerNum)\n\n // If we are already on an active call, suppress the busy popup unless it belongs\n // to a conference-owner flow or an attended transfer started by this user.\n const shouldShowOperatorBusy = !isReceivingCall && (!accepted || isActive || transferring)\n\n // Only show operator busy view if:\n // 1. We are NOT receiving an incoming call to our own extension\n if (shouldShowOperatorBusy) {\n // Set operator busy active with caller information\n store.dispatch.island.setOperatorBusyActive({\n callerNumber: res.callerNum || 'Unknown',\n })\n\n // Stop busy tone after 4 seconds\n setTimeout(() => {\n store.dispatch.player.stopAudioPlayer()\n }, 4000)\n\n setTimeout(() => {\n // Play busy tone\n store.dispatch.player.updateStartAudioPlayer({\n src: busyRingtone,\n loop: true,\n })\n store.dispatch.island.setIslandView('operatorBusy')\n }, 600)\n\n // If conference is active and we're the owner, return to conference after timeout\n if (isActive && conferenceStartedFrom === username) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 4000)\n }\n }\n }\n\n // Handle subscriber_absent - when added participant rejects the call\n if (res?.cause === 'subscriber_absent') {\n const { isActive, conferenceStartedFrom } = store.getState().conference\n const { username } = store.getState().currentUser\n\n // Only handle if conference is active and current user is the owner\n if (isActive && conferenceStartedFrom === username) {\n // Check if there are still participants in the conference (both confirmed and pending)\n const { usersList, pendingUsers } = store.getState().conference\n const hasConfirmedParticipants = usersList && Object.keys(usersList).length > 0\n const hasPendingParticipants = pendingUsers && Object.keys(pendingUsers).length > 0\n const hasParticipants = hasConfirmedParticipants || hasPendingParticipants\n\n if (hasParticipants) {\n // Return to waiting conference view to manage other participants\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n // Remove from pending users if exists\n if (pendingUsers && pendingUsers[res.callerNum]) {\n store.dispatch.conference.removePendingUser(res.callerNum)\n }\n } else {\n // No participants left, reset conference\n store.dispatch.conference.resetConference()\n }\n }\n }\n })\n\n // Avoid to show phone island if call is connected with other extension\n socket.current.on('extenConnected', (res: { extenConnected: string }) => {\n // Get the current user's extensions\n\n const { default_device, endpoints } = store.getState().currentUser\n const userExtensions = endpoints?.extension || []\n\n // Find the extension type\n const connectedExtension = userExtensions.find((ext) => ext.id === res.extenConnected)\n const extensionType: any = connectedExtension?.type\n\n // Reset only if the extension type is not webrtc or nethlink\n // ( avoid to not show phone island if default is physical and extensionType is physical)\n if (\n ((default_device?.type === 'webrtc' || default_device?.type === 'nethlink') &&\n extensionType &&\n (extensionType === 'mobile' || extensionType === 'physical')) ||\n (default_device?.type === 'physical' && extensionType && extensionType !== 'physical')\n ) {\n // Avoid to show phone island in case of answer from physical or mobile device\n store.dispatch.island.toggleAvoidToShow(true)\n // Set the preview call flag\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(true)\n // Launch an event to advert the user that the call it's answered from another device\n eventDispatch('phone-island-call-answered', { extensionType })\n }\n })\n\n socket.current.on('extenUpdate', (res: ExtensionTypes) => {\n // Update extensions and conversations in users store\n dispatch.users.updateExtension(res)\n\n //retrieve all extensions from store\n const { extensions }: any = store.getState().users\n const deviceMap: any = {}\n\n const userInformation = store.getState().currentUser\n // Create a map of extensions for each user\n for (const key in extensions) {\n const user: any = extensions[key].username\n const ext: any = extensions[key].exten\n\n if (!deviceMap[user]) {\n deviceMap[user] = []\n }\n\n deviceMap[user].push(ext)\n }\n\n const associatedExtensions: any = deviceMap[res.username]\n\n // Initialize conversation\n let conv = res.conversations[Object.keys(res.conversations)[0]] || {}\n\n // Check if this is a mobile extension call for the current user\n let isMobileExtensionCall = false\n if (res?.username === username && !isEmpty(conv) && conv?.owner) {\n const matchingExtension = userInformation?.endpoints?.extension?.find(\n (ext: any) => ext.id === conv.owner,\n )\n if (matchingExtension && matchingExtension.type === 'mobile') {\n isMobileExtensionCall = true\n }\n }\n\n // Update all extensions and send the dispatch event\n dispatchExtensions(res)\n\n // second step update conversation\n\n // Check if conversation is empty\n if (isEmpty(conv)) {\n // Check if there is at least one conversation not empty\n const hasNonEmptyConversation = associatedExtensions?.some((ext: any) => {\n const extConversations = extensions[ext]?.conversations\n\n if (!isEmpty(extConversations)) {\n // not empty conversation found\n return true\n }\n\n return false\n })\n\n if (!hasNonEmptyConversation) {\n // Conversation is empty and there is no conversation for the user\n dispatchConversations(res)\n }\n } else if (!isMobileExtensionCall) {\n // Dispatch conversation event\n dispatchConversations(res)\n }\n\n if (isMobileExtensionCall && res?.status === 'busy' && res?.username === username) {\n store.dispatch.island.toggleAvoidToShow(true)\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(true)\n }\n // Handle only the events of the user\n if (res.username === username) {\n handleCurrentUserEvents(res, conv)\n // Update the conversations of the user\n dispatch.currentUser.updateConversations(res)\n }\n })\n\n // `queueUpdate` is the socket event when the data of a queue updates\n socket.current.on('queueUpdate', (res: QueuesUpdateTypes) => {\n dispatch.queue.updateQueue(res)\n\n const activeConversation = getActiveConversationForCurrentCall()\n\n if (activeConversation) {\n syncCurrentUserQueueCall(activeConversation)\n }\n\n // Dispatch queueUpdate event\n dispatchQueueUpdate(res)\n })\n\n // `queueMemberUpdate` is the socket event when the data of a queue member changes\n socket.current.on('queueMemberUpdate', (res: QueueUpdateMemberTypes) => {\n dispatch.queue.updateQueueMember(res)\n // Dispatch queueMemberUpdate event\n dispatchQueueMemberUpdate(res)\n })\n\n // `takeOver` is the socket event when the user does login from another new window\n socket.current.on('takeOver', () => {\n // Dispatch takeOver event\n dispatchAlreadyLogin()\n })\n\n // `serverReload` is the socket event when server is reloaded\n socket.current.on('serverReloaded', () => {\n // Dispatch serverReload event\n dispatchServerReload()\n })\n\n // `parkingUpdate` is the socket event when a call is parked or unparked\n socket.current.on('parkingUpdate', (event) => {\n // Dispatch parking update event with the parking information\n dispatchParkingUpdate(event)\n })\n\n // `actionNethLink` is the socket event when user make a call or a action from NethLink and has a physical device\n socket.current.on('actionNethLink', (link, urlType) => {\n // Dispatch phone island physical call event with the link and the urlType\n dispatchUrlCall(link, urlType)\n })\n\n // `satellite/summary` is the socket event when summary is ready\n socket.current.on('satellite/summary', (data: any) => {\n if (data?.uniqueid) {\n eventDispatch('phone-island-summary-ready', {\n linkedid: data?.uniqueid,\n display_name: data?.display_name,\n display_number: data?.display_number,\n })\n }\n })\n\n socket.current.on('message', (data: any) => {\n switch (data.message) {\n case 'screenSharingStart':\n dispatch.island.toggleSideViewVisible(false)\n dispatch.island.toggleTranscriptionViewVisible(false)\n dispatch.island.setIslandView('video')\n\n dispatch.screenShare.update({\n isJoiningScreenShare: true,\n room: (data as ScreenSharingMessage).roomId,\n })\n break\n case 'screenSharingStop':\n dispatch.island.toggleSideViewVisible(false)\n dispatch.island.toggleTranscriptionViewVisible(false)\n dispatch.island.setIslandView('video')\n\n dispatch.screenShare.update({\n isLeavingScreenShare: true,\n })\n break\n default:\n console.warn('Socket: unknown message type ', data.message)\n }\n })\n\n // `updateDefaultDevice` is the socket event when user change the default device\n socket.current.on('updateDefaultDevice', (extension: string) => {\n // Dispatch phone island physical call event with the link and the urlType\n dispatchDefaultDeviceUpdate(extension)\n // Update the internal store\n const { extensions } = store.getState().users\n const { endpoints } = store.getState().currentUser\n if (!extensions || !endpoints) return\n\n const extensionInformations: any = Object.values(extensions).filter(\n (ext) => ext?.exten === extension,\n )\n if (extensionInformations.length === 0) return\n\n let objectComplete = extensionInformations[0]\n const endpointExtension = endpoints.extension.find(\n (endpoint) => endpoint.id === objectComplete.exten,\n )\n if (endpointExtension) {\n objectComplete = { ...objectComplete, type: endpointExtension.type }\n }\n\n store.dispatch.currentUser.updateCurrentDefaultDevice(objectComplete)\n //make sure to check the media permissions\n checkMediaPermissions()\n })\n\n socket.current.on('confBridgeUpdate', (res: any) => {\n if (res && res?.users) {\n // Get User informations\n const conferenceId = res?.id\n const conferenceUsers = res?.users\n\n // Get current users list to preserve mute status\n const { usersList } = store.getState().conference\n\n // Create a copy of the new conference users while preserving mute status\n const updatedConferenceUsers = { ...conferenceUsers }\n\n // Preserve mute status for existing users\n if (usersList) {\n Object.keys(updatedConferenceUsers).forEach((userId) => {\n if (usersList[userId]) {\n // Keep the existing mute status instead of using the server's value\n updatedConferenceUsers[userId] = {\n ...updatedConferenceUsers[userId],\n muted: usersList[userId].muted,\n }\n }\n })\n }\n\n store.dispatch.conference.updateConferenceUsersList(updatedConferenceUsers)\n store.dispatch.conference.updateConferenceId(conferenceId)\n }\n })\n\n socket.current.on('confBridgeEnd', (res: any) => {\n if (res && res?.id) {\n // Reset the conference store when conference ends\n store.dispatch.conference.resetConference()\n eventDispatch('phone-island-conference-finished', {})\n }\n })\n\n socket.current.on('callWebrtc', (res: any) => {\n // On call event from socket dispatch the call start event\n eventDispatch('phone-island-call-start', { number: res })\n })\n\n socket.current.on('newVoiceMessageCounter', (res: any) => {\n eventDispatch('phone-island-voicemail-received', { voicemailInfo: res })\n })\n\n socket.current.on('streamingSourceUpdate', (res: any) => {\n eventDispatch('phone-island-streaming-information-received', { res })\n const streamingData = res.streaming || (res.res && res.res.streaming)\n\n if (streamingData) {\n const { source, image } = streamingData\n if (source && image) {\n const { isFromStreaming } = store.getState().island\n const { streamingSourceNumber } = store.getState().currentCall\n const sourceId = getStreamingSourceId(streamingSourceNumber)\n\n dispatch.streaming.updateSourceImage({\n source: source,\n image: image,\n })\n }\n }\n })\n\n // Handle satellite/transcription messages\n socket.current.on('satellite/transcription', (transcriptionData: any) => {\n // Dispatch the transcription event to external listeners\n eventDispatch('phone-island-conversation-transcription', transcriptionData)\n })\n }\n\n initSocketConnection()\n\n // Stop the check socket interval\n // Close the socket connection\n return () => {\n clearInterval(connectionCheckInterval.current)\n socket.current.close()\n }\n }, [hostName, username, authToken, uaType, dispatch])\n\n // Manage reload events\n useEffect(() => {\n if (reload) {\n console.info('Socket reload requested')\n const { data } = store.getState().alerts\n const { forceReload } = store.getState().island\n\n // Check if socket is actually down using alerts (more reliable than socket.connected)\n const isSocketDown = data.socket_down?.active || false\n\n // Only reconnect if socket_down alert is active OR force reload is requested\n if (isSocketDown || forceReload) {\n console.info(\n forceReload\n ? 'Force reload requested, performing Socket reconnection'\n : 'Socket down detected (alert active), performing reconnection',\n )\n // Reset force reload flag\n if (forceReload) {\n store.dispatch.island.setForceReload(false)\n }\n // Clear the connection check interval to avoid stale ping timeouts during reconnection\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n connectionCheckInterval.current = null\n }\n // Disconnect and reconnect socket\n setTimeout(() => {\n socket.current.disconnect()\n socket.current.connect()\n // Execute the reloaded callback\n reloadedCallback()\n }, 100)\n } else {\n console.info('Socket already connected (no alert active), skipping reconnection')\n // Execute callback without reload\n reloadedCallback()\n }\n }\n }, [reload])\n\n return <>{children}</>\n}\n"],"names":["_a","hostName","username","authToken","reload","reloadedCallback","children","uaType","dispatch","useDispatch","connectionCheckInterval","useRef","socket","isUpdatingUserInfo","consecutivePingTimeouts","currentUserQueueCallPhase","useEventListener","args","current","linkedid","uniqueid","emit","data","currentCall","updateCurrentCall","throughQueue","queueId","queueName","queueNumber","queuePosition","queueWaitingTime","useEffect","socketOptions","handleStreamingSource","conv","counterpartNum","isFromStreaming","island","setIsFromStreaming","streamingSourceNumber","sourceId","getStreamingSourceId","subscribe","id","catch","error","console","syncCurrentUserQueueCall","queueContext","getCurrentCallQueueContext","store","getState","queue","getCurrentCallQueuePayload","payload","conversationId","linkedId","uniqueId","ownerExtension","owner","number","concat","getQueuePayloadWithFallback","Boolean","connected","_c","_d","phase","dispatchCurrentUserQueueCallConnected","_b","dispatchCurrentUserQueueCallWaiting","handleCurrentUserEvents","res","transferring","transferSwitching","transferCalls","view","Object","keys","length","status","extensions_1","users","extensions","default_device","currentUser","endpoints_1","endpoints","username_1","incoming","hasOnlineNethlink","userExtensions","values","filter","ext","some","endpointExtension","extension","find","endpoint","exten","type","accepted","currentOwnerExtension","shouldKeepCurrentAcceptedCall","undefined","checkIncomingUpdatePlay","displayName","getDisplayName","incomingSocket","setIslandView","getCurrentUserInfo","then","userInfo","updateCurrentUser","eventDispatch","__assign","settings","open_param_url","paramUrl","setOpenParamUrlType","finally","setTimeout","openParamUrlType","urlOpened","calculatedThroughTrunk","isFromTrunk","setThroughTrunk","setUrlOpened","counterpartName","throughTrunk","direction","chDest","chSource","checkAcceptedUpdate","acceptedSocket","addTransferCalls","startTime","getTimestampInSeconds","isPhysical","player","stopAudioPlayer","setAudioPlayerLoop","checkDefaultDeviceConversationActive","deleteTransferCalls","inTransferCalls","item","updateTransferSwitching","physicalRecorder","setRecordingTempVariable","checkOutgoingUpdate","outgoingSocket","outgoing","userTotallyFree","reset","upgrade","transports","reconnection","reconnectionDelay","getApiMode","path","io","websocket","update","on","debug","reason","clearInterval","includes","err","attempt","accessKeyId","token","setInterval","volatile","withTimeout","alerts","removeAlert","isStaleConnection","sipcall","webrtc","iceState","webrtcStuff","pc","iceConnectionState","timestamp","Date","toISOString","warn","disconnect","setAlert","updateEndpointMainPresence","mainPresence","dispatchMainPresence","conference","isActive","conferenceStartedFrom","_e","previewCallFromMobileOrNethlink","connectedExtension","callerNum","extensionType","conversations","conversationWasConnected","extensionConversations","conversationKeys","selectedConversation","conversationKeys_1","_i","key","currentConversation","selectedConnected","currentConnected","selectedStartTime","currentStartTime","cause","toggleAvoidToShow","setPreviewCallFromMobileOrNethlink","resetConference","viewType","_f","usersList","pendingUsers","hasConfirmedParticipants","hasPendingParticipants","_g","endpoints_2","username_2","userExtensionIds","map","_h","_j","isActive_1","conferenceStartedFrom_1","setOperatorBusyActive","callerNumber","updateStartAudioPlayer","src","busyRingtone","loop","_k","isActive_2","conferenceStartedFrom_2","username_3","_l","removePendingUser","extenConnected","updateExtension","deviceMap","userInformation","user","push","associatedExtensions","isMobileExtensionCall","isEmpty","matchingExtension","dispatchExtensions","hasNonEmptyConversation","extConversations","dispatchConversations","updateConversations","updateQueue","activeConversation","forEach","conversation","dispatchQueueUpdate","updateQueueMember","dispatchQueueMemberUpdate","dispatchAlreadyLogin","dispatchServerReload","event","dispatchParkingUpdate","link","urlType","dispatchUrlCall","display_name","display_number","message","toggleSideViewVisible","toggleTranscriptionViewVisible","screenShare","isJoiningScreenShare","room","roomId","isLeavingScreenShare","dispatchDefaultDeviceUpdate","extensionInformations","objectComplete","updateCurrentDefaultDevice","checkMediaPermissions","conferenceId","conferenceUsers","usersList_1","updatedConferenceUsers_1","userId","muted","updateConferenceUsersList","updateConferenceId","voicemailInfo","streamingData","streaming","source","image","updateSourceImage","transcriptionData","close","info","forceReload","socket_down","active","setForceReload","connect","React","createElement","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Socket.js","sources":["../../src/components/Socket.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useEffect, useRef } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../store'\nimport { io } from 'socket.io-client'\nimport { getApiMode } from './RestAPI'\nimport { getDisplayName } from '../lib/phone/conversation'\nimport { getCurrentUserInfo } from '../services/user'\nimport busyRingtone from '../static/busy_ringtone'\nimport {\n dispatchMainPresence,\n dispatchConversations,\n dispatchQueueUpdate,\n dispatchQueueMemberUpdate,\n dispatchCurrentUserQueueCallWaiting,\n dispatchCurrentUserQueueCallConnected,\n dispatchAlreadyLogin,\n dispatchServerReload,\n dispatchParkingUpdate,\n dispatchExtensions,\n dispatchUrlCall,\n dispatchDefaultDeviceUpdate,\n} from '../events'\nimport { store } from '../store'\nimport { eventDispatch, useEventListener, withTimeout } from '../utils'\nimport type {\n ConversationTypes,\n ExtensionTypes,\n QueuesUpdateTypes,\n QueueUpdateMemberTypes,\n MainPresenceTypes,\n CurrentUserQueueCallEventTypes,\n} from '../types'\nimport { getTimestampInSeconds } from '../utils/genericFunctions/timestamp'\nimport { userTotallyFree } from '../lib/user/extensions'\nimport { isEmpty } from '../utils/genericFunctions/isEmpty'\nimport { isPhysical } from '../lib/user/default_device'\nimport { ScreenSharingMessage } from './VideoView'\nimport { checkMediaPermissions } from '../lib/devices/devices'\nimport { isFromStreaming } from '../utils/streaming/isFromStreaming'\nimport { getStreamingSourceId } from '../utils/streaming/getStreamingSourceId'\nimport { subscribe } from '../services/user'\nimport { isFromTrunk } from '../lib/user/extensions'\nimport { getCurrentCallQueueContext } from '../lib/phone/queue'\n\ninterface SocketProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n reload: boolean\n reloadedCallback: () => void\n uaType: string\n}\n\nexport const Socket: FC<SocketProps> = ({\n hostName,\n username,\n authToken,\n reload,\n reloadedCallback,\n children,\n uaType,\n}) => {\n const dispatch = useDispatch<Dispatch>()\n const connectionCheckInterval = useRef<any>()\n const socket = useRef<any>()\n const isUpdatingUserInfo = useRef(false)\n const consecutivePingTimeouts = useRef(0)\n const currentUserQueueCallPhase = useRef<{\n conversationId: string\n phase: 'waiting' | 'connected'\n } | null>(null)\n const STALE_CONNECTION_THRESHOLD = 3 // Force reconnect after 3 consecutive ping timeouts\n\n // Event listener for starting transcription\n useEventListener('phone-island-start-transcription', (args: any) => {\n if (socket.current) {\n const linkedid = args?.linkedid || args?.uniqueid || null\n if (!linkedid) {\n return\n }\n socket.current.emit('start_transcription', {\n linkedid,\n uniqueid: args?.uniqueid || linkedid,\n })\n }\n })\n\n // Event listener for stopping transcription\n useEventListener('phone-island-stop-transcription', (args: any) => {\n if (socket.current) {\n const linkedid = args?.linkedid || args?.uniqueid || null\n if (!linkedid) {\n return\n }\n socket.current.emit('stop_transcription', {\n linkedid,\n uniqueid: args?.uniqueid || linkedid,\n })\n }\n })\n\n useEventListener(\n 'phone-island-current-user-queue-call-waiting',\n (data: CurrentUserQueueCallEventTypes) => {\n dispatch.currentCall.updateCurrentCall({\n throughQueue: true,\n queueId: data?.queueId || '',\n queueName: data?.queueName || '',\n queueNumber: data?.queueNumber || '',\n queuePosition: data?.queuePosition || '',\n queueWaitingTime: data?.queueWaitingTime || 0,\n })\n },\n )\n\n useEventListener(\n 'phone-island-current-user-queue-call-connected',\n (data: CurrentUserQueueCallEventTypes) => {\n dispatch.currentCall.updateCurrentCall({\n throughQueue: true,\n queueId: data?.queueId || '',\n queueName: data?.queueName || '',\n queueNumber: data?.queueNumber || '',\n queuePosition: data?.queuePosition || '',\n queueWaitingTime: data?.queueWaitingTime || 0,\n })\n },\n )\n\n const checkDefaultDeviceConversationActive = (conv: any) => {\n dispatch.currentCall.updateCurrentCall({\n conversationId: conv.id,\n accepted: true,\n incoming: conv.direction === 'in' ? false : undefined,\n })\n eventDispatch('phone-island-call-answered', {})\n\n // Stop the local audio element ringing\n store.dispatch.player.stopAudioPlayer()\n store.dispatch.player.setAudioPlayerLoop(false)\n }\n\n useEffect(() => {\n /**\n * Helper function to handle streaming source detection and subscription\n */\n const handleStreamingSource = (conv: ConversationTypes) => {\n // Check if the call is from a streaming source\n if (conv.counterpartNum && isFromStreaming(conv.counterpartNum)) {\n // Set isFromStreaming flag to true\n dispatch.island.setIsFromStreaming(true)\n\n // Store the streaming source number in the currentCall state for future reference\n dispatch.currentCall.updateCurrentCall({\n streamingSourceNumber: conv.counterpartNum,\n })\n\n // Find the source ID and subscribe to streaming updates\n const sourceId = getStreamingSourceId(conv.counterpartNum)\n if (sourceId) {\n // Subscribe to streaming updates\n subscribe({ id: sourceId }).catch((error) =>\n console.error('Error subscribing to streaming source:', error),\n )\n }\n }\n }\n\n const getCurrentCallQueuePayload = (conv: ConversationTypes) => {\n return getCurrentCallQueueContext(conv, store.getState().queue)\n }\n\n const getQueuePayloadWithFallback = (\n conv: ConversationTypes,\n queueContext: ReturnType<typeof getCurrentCallQueuePayload>,\n ) => {\n const currentCall = store.getState().currentCall\n\n return {\n conversationId: conv.id,\n linkedId: conv.linkedId,\n uniqueId: conv.uniqueId,\n ownerExtension: conv.owner,\n number: `${conv.counterpartNum || ''}`,\n queueId: queueContext?.queueId || currentCall.queueId || '',\n queueName: queueContext?.queueName || currentCall.queueName || '',\n queueNumber: queueContext?.queueNumber || currentCall.queueNumber || '',\n queuePosition: queueContext?.queuePosition || '',\n queueWaitingTime: queueContext?.queueWaitingTime || 0,\n }\n }\n\n const syncCurrentUserQueueCall = (conv: ConversationTypes | null) => {\n if (!conv) {\n currentUserQueueCallPhase.current = null\n return\n }\n\n const queueContext = getCurrentCallQueuePayload(conv)\n const payload = getQueuePayloadWithFallback(conv, queueContext)\n const hasQueueContext = Boolean(payload.queueId || payload.queueName || payload.queueNumber)\n\n if (!hasQueueContext) {\n currentUserQueueCallPhase.current = null\n return\n }\n\n if (!conv.connected) {\n const shouldDispatchWaiting =\n currentUserQueueCallPhase.current?.conversationId !== conv.id ||\n currentUserQueueCallPhase.current?.phase !== 'waiting'\n\n if (shouldDispatchWaiting) {\n dispatchCurrentUserQueueCallWaiting(payload)\n currentUserQueueCallPhase.current = {\n conversationId: conv.id,\n phase: 'waiting',\n }\n }\n\n return\n }\n\n const shouldDispatchConnected =\n currentUserQueueCallPhase.current?.conversationId !== conv.id ||\n currentUserQueueCallPhase.current?.phase !== 'connected'\n\n if (shouldDispatchConnected) {\n dispatchCurrentUserQueueCallConnected(payload)\n currentUserQueueCallPhase.current = {\n conversationId: conv.id,\n phase: 'connected',\n }\n }\n }\n\n const getActiveConversationForCurrentCall = (): ConversationTypes | null => {\n const { conversations } = store.getState().currentUser\n const { conversationId } = store.getState().currentCall\n let selectedConversation: ConversationTypes | null = null\n\n Object.values(conversations || {}).forEach((extensionConversations) => {\n Object.values(extensionConversations || {}).forEach((conversation) => {\n if (selectedConversation?.id && selectedConversation.id === conversationId) {\n return\n }\n\n if (conversationId && conversation.id === conversationId) {\n selectedConversation = conversation\n return\n }\n\n if (!selectedConversation) {\n selectedConversation = conversation\n return\n }\n\n if (conversation.connected && !selectedConversation.connected) {\n selectedConversation = conversation\n return\n }\n\n if (\n conversation.connected === selectedConversation.connected &&\n conversation.startTime > selectedConversation.startTime\n ) {\n selectedConversation = conversation\n }\n })\n })\n\n return selectedConversation\n }\n\n const shouldKeepCurrentAcceptedCall = (ownerExtension?: string) => {\n const { accepted, ownerExtension: currentOwnerExtension } = store.getState().currentCall\n\n return (\n accepted &&\n !!currentOwnerExtension &&\n !!ownerExtension &&\n currentOwnerExtension !== ownerExtension\n )\n }\n\n /**\n * Manages event and data for the currentUser\n *\n * @param res The data from the socket\n * @param conv The conversation data\n */\n const handleCurrentUserEvents = (res: ExtensionTypes, conv: ConversationTypes) => {\n // Handle transferring data\n const { transferring, transferSwitching, transferCalls } = store.getState().currentCall\n\n const view = store.getState().island.view\n // Check conversation isn't empty\n if (Object.keys(conv).length > 0) {\n // With conversation\n if (res.status) {\n const { extensions } = store.getState().users\n const { default_device } = store.getState().currentUser\n const { endpoints, username } = store.getState().currentUser\n const { incoming, outgoing } = store.getState().currentCall\n\n const hasOnlineNethlink = () => {\n if (!extensions || !username) return false\n\n // Get all extensions for current user\n const userExtensions: any = Object.values(extensions).filter(\n (ext) => ext?.username === username,\n )\n\n // Check if any extension is nethlink type and online\n return userExtensions?.some((ext) => {\n const endpointExtension = endpoints?.extension.find(\n (endpoint) => endpoint.id === ext?.exten,\n )\n return endpointExtension?.type === 'nethlink' && ext?.status !== 'offline'\n })\n }\n switch (res.status) {\n case 'ringing':\n if (shouldKeepCurrentAcceptedCall(conv.owner)) {\n break\n }\n\n syncCurrentUserQueueCall(conv)\n\n // Handle streaming source for incoming calls\n handleStreamingSource(conv)\n\n if (\n (uaType === 'mobile' && hasOnlineNethlink()) ||\n (uaType === 'desktop' &&\n (default_device?.type === 'webrtc' ||\n (default_device?.type === undefined && !hasOnlineNethlink()) ||\n (!hasOnlineNethlink() && default_device?.type === 'physical')))\n ) {\n dispatch.currentCall.checkIncomingUpdatePlay({\n conversationId: conv.id,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n incomingSocket: true,\n incoming: true,\n username:\n `${\n extensions &&\n extensions[conv.counterpartNum] &&\n extensions[conv.counterpartNum].username\n }` || '',\n ownerExtension: conv.owner,\n })\n store.dispatch.island.setIslandView('call')\n }\n // Get updated user info to refresh open url param type\n if (!isUpdatingUserInfo.current) {\n isUpdatingUserInfo.current = true\n getCurrentUserInfo()\n .then((userInfo) => {\n if (userInfo) {\n dispatch.currentUser.updateCurrentUser(userInfo)\n eventDispatch('phone-island-user-informations-update', { ...userInfo })\n if (userInfo.settings && userInfo.settings.open_param_url) {\n dispatch.paramUrl.setOpenParamUrlType(userInfo.settings.open_param_url)\n } else {\n dispatch.paramUrl.setOpenParamUrlType('never')\n }\n }\n })\n .catch((error) => {\n console.error('Error getting current user info:', error)\n })\n .finally(() => {\n setTimeout(() => {\n isUpdatingUserInfo.current = false\n }, 100)\n })\n }\n const { openParamUrlType } = store.getState().paramUrl\n const { urlOpened } = store.getState().island\n if (openParamUrlType === 'ringing' && !urlOpened) {\n // Calculate throughTrunk based on counterpartNum\n const calculatedThroughTrunk = isFromTrunk(conv.counterpartNum)\n\n // Update throughTrunk in paramUrl store\n store.dispatch.paramUrl.setThroughTrunk(calculatedThroughTrunk)\n\n store.dispatch.island.setUrlOpened(false)\n eventDispatch('phone-island-url-parameter-opened', {\n counterpartNum: conv.counterpartNum,\n counterpartName: getDisplayName(conv),\n owner: conv.owner,\n uniqueId: conv.uniqueId,\n linkedId: conv.linkedId,\n throughQueue: conv.throughQueue,\n throughTrunk: calculatedThroughTrunk,\n direction: conv.direction,\n connected: conv.connected,\n })\n }\n break\n // @ts-ignore\n case 'busy':\n syncCurrentUserQueueCall(conv)\n\n // Handle streaming source for outgoing calls\n handleStreamingSource(conv)\n\n if (\n (uaType === 'mobile' && hasOnlineNethlink()) ||\n (uaType === 'desktop' &&\n (default_device?.type === 'webrtc' ||\n (default_device?.type === undefined && !hasOnlineNethlink()) ||\n (!hasOnlineNethlink() && default_device?.type === 'physical')))\n ) {\n if (conv && conv.connected) {\n // Current call accepted and update connected call\n dispatch.currentCall.updateCurrentCall({\n conversationId: conv.id,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n ownerExtension: conv.owner,\n username:\n `${\n extensions &&\n extensions[conv.counterpartNum] &&\n extensions[conv.counterpartNum].username\n }` || '',\n chDest: conv?.chDest || {},\n chSource: conv?.chSource || {},\n })\n // Update the current call informations for physical devices\n dispatch.currentCall.checkAcceptedUpdate({\n acceptedSocket: true,\n })\n // Add call to transfer calls\n dispatch.currentCall.addTransferCalls({\n type: 'transferred',\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n startTime: `${getTimestampInSeconds()}`,\n })\n\n // Check if this is a streaming call that was accepted\n const { isFromStreaming } = store.getState().island\n if (isFromStreaming && conv.direction === 'out') {\n // Set view to streamingAnswer for outgoing streaming calls when accepted\n setTimeout(() => {\n dispatch.island.setIslandView('streamingAnswer')\n }, 200)\n }\n\n if (isPhysical()) {\n checkDefaultDeviceConversationActive(conv)\n }\n if (view === 'call' && transferring) {\n dispatch.currentCall.updateCurrentCall({\n transferring: false,\n })\n }\n }\n // Delete transfer calls if there are more than one ( in case of call switch after transfer)\n if (transferCalls.length > 1) {\n dispatch.currentCall.deleteTransferCalls()\n }\n // Handle not connected calls\n else if (conv && !conv.connected) {\n if (transferring && !transferSwitching) {\n // Handle hangup during transfer\n const inTransferCalls = transferCalls.find(\n (item) => item.number === conv.counterpartNum,\n )\n if (!conv.connected && inTransferCalls) {\n // Update transferring data for the current call\n dispatch.currentCall.updateCurrentCall({\n transferring: false,\n })\n eventDispatch('phone-island-call-transfer-failed', {})\n // Reset transfer switching\n // TODO - It needs to enhance how conversation connections (conv.connected) are updated server side\n // TODO - The transfer end is not handled when the an user hangups or after call switch\n dispatch.currentCall.updateTransferSwitching(false)\n }\n }\n if (conv?.counterpartName === 'REC') {\n dispatch.physicalRecorder.setRecordingTempVariable(true)\n }\n }\n // Handle outgoing call\n if (conv && !conv.connected && conv.direction === 'out') {\n // Update the current outgoing conversation\n dispatch.currentCall.checkOutgoingUpdate({\n outgoingSocket: true,\n outgoing: conv?.counterpartName === 'REC' ? false : true,\n displayName: getDisplayName(conv),\n number: `${conv?.counterpartNum}`,\n username:\n `${\n extensions &&\n extensions[conv?.counterpartNum] &&\n extensions[conv?.counterpartNum].username\n }` || '',\n })\n }\n }\n break\n\n case 'onhold':\n syncCurrentUserQueueCall(conv)\n\n // The new conversation during transferring\n const { counterpartName, counterpartNum, startTime } = conv\n if (\n transferring &&\n counterpartNum &&\n counterpartName &&\n counterpartName !== '<unknown>'\n ) {\n // Add call to transfer calls\n dispatch.currentCall.addTransferCalls({\n type: 'destination',\n displayName: getDisplayName(conv),\n number: counterpartNum,\n startTime: `${getTimestampInSeconds()}`,\n })\n // Set the current call informations\n dispatch.currentCall.updateCurrentCall({\n displayName: getDisplayName(conv),\n number: counterpartNum,\n startTime: `${startTime / 1000}`,\n conversationId: conv.id,\n })\n // Set the view of the island to call\n dispatch.island.setIslandView('call')\n }\n break\n case 'busy_ringing':\n eventDispatch('phone-island-call-ringing', {})\n break\n default:\n break\n }\n }\n } else {\n // Without conversation for physical phone management\n if (res.status == 'online' && userTotallyFree()) {\n syncCurrentUserQueueCall(null)\n\n // Stop ringing sounds\n dispatch.player.stopAudioPlayer()\n // Reset current call info\n dispatch.currentCall.reset()\n dispatch.physicalRecorder.setRecordingTempVariable(false)\n // Reset isFromStreaming flag\n dispatch.island.setIsFromStreaming(false)\n }\n }\n }\n\n /**\n * Initialize socket connection and listeners\n */\n const initSocketConnection = () => {\n const currentApiMode = getApiMode(username)\n\n const socketOptions: any = {\n upgrade: false,\n transports: ['websocket'],\n reconnection: true,\n reconnectionDelay: 2000,\n }\n\n // Only set path for new API mode\n if (currentApiMode === 'new') {\n socketOptions.path = '/api/ws'\n }\n\n socket.current = io('https://' + hostName, socketOptions)\n\n // save websocket to store\n dispatch.websocket.update({ socket: socket.current })\n\n // Handle socket errors\n socket.current.on('connect', () => {\n console.debug(`Socket connected sid: ${socket.current.id}`)\n eventDispatch('phone-island-socket-connected', {})\n })\n socket.current.on('disconnect', (reason) => {\n console.debug(`Socket disconnect - reason: ${reason}`)\n // Clear the connection check interval on disconnect to avoid stale pings\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n connectionCheckInterval.current = null\n }\n if (reason.includes('server disconnect')) {\n eventDispatch('phone-island-server-disconnected', {})\n } else {\n eventDispatch('phone-island-socket-disconnected', {})\n }\n })\n socket.current.io.on('error', (err) => {\n console.debug(`Socket error: `, err)\n })\n socket.current.on('connect_error', (err) => {\n console.debug(`Socket connect_error: `, err)\n })\n socket.current.io.on('reconnect', (attempt) => {\n // Reset consecutive ping timeout counter on successful reconnection\n consecutivePingTimeouts.current = 0\n eventDispatch('phone-island-socket-reconnected', {})\n console.debug(`Socket reconnect attemp ${attempt} (sid: ${socket.current.id})`)\n })\n socket.current.io.on('reconnect_attempt', (attempt) => {\n console.debug(`Socket reconnect_attempt ${attempt}`)\n })\n socket.current.io.on('reconnect_error', (err) => {\n console.debug(`Socket reconnect_error: `, err)\n })\n socket.current.io.on('reconnect_failed', () => {\n console.debug(`Socket reconnect_failed`)\n })\n\n // Connection check interval is now started in the authe_ok handler\n // to ensure it only runs after successful authentication\n\n // Handle connection message\n socket.current.on('connect', () => {\n console.debug('Socket on: ' + hostName + ' is connected!')\n socket.current.emit('login', {\n accessKeyId: `${username}`,\n token: authToken,\n uaType: uaType,\n })\n })\n\n // Handle authentication success message\n socket.current.on('authe_ok', () => {\n console.debug('Socket authentication success!')\n eventDispatch('phone-island-socket-authorized', {})\n\n // Start connection check interval after successful authentication\n // Clear any existing interval first to avoid duplicates\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n }\n connectionCheckInterval.current = setInterval(() => {\n socket.current.volatile.emit(\n 'ping',\n withTimeout(\n () => {\n // Ping success - reset consecutive timeout counter\n consecutivePingTimeouts.current = 0\n // Remove socket_down alert (async to avoid React error #300 with framer-motion)\n setTimeout(() => {\n dispatch.alerts.removeAlert('socket_down')\n eventDispatch('phone-island-alert-removed', {\n type: 'socket_down',\n })\n eventDispatch('phone-island-socket-disconnected-popup-close', {})\n }, 0)\n },\n () => {\n // Ping timeout - increment counter\n consecutivePingTimeouts.current++\n console.debug(\n `Socket ping timeout (${consecutivePingTimeouts.current}/${STALE_CONNECTION_THRESHOLD}), connected: ${socket.current.connected}`,\n )\n\n // Set socket_down alert (async to avoid React error #300 with framer-motion)\n setTimeout(() => {\n // Check for stale connection: socket reports connected but pings keep timing out\n const isStaleConnection =\n socket.current.connected &&\n consecutivePingTimeouts.current >= STALE_CONNECTION_THRESHOLD\n\n if (!socket.current.connected || isStaleConnection) {\n // Check if there's an active call with ICE still connected\n // If so, skip showing alert - let ICE grace period mechanism handle it\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n const { accepted, outgoing } = store.getState().currentCall\n const iceState = sipcall?.webrtcStuff?.pc?.iceConnectionState\n const hasActiveCallWithIce =\n (accepted || outgoing) &&\n (iceState === 'connected' || iceState === 'completed')\n\n if (hasActiveCallWithIce) {\n console.debug(\n 'Socket unreachable but active call with ICE connected - skipping socket_down alert',\n {\n iceState,\n accepted,\n outgoing,\n isStaleConnection,\n timestamp: new Date().toISOString(),\n },\n )\n return\n }\n\n if (isStaleConnection) {\n console.warn('Stale socket connection detected - forcing reconnection')\n // Force disconnect to trigger reconnection\n socket.current.disconnect()\n }\n\n dispatch.alerts.setAlert('socket_down')\n eventDispatch('phone-island-socket-disconnected-popup-open', {})\n console.error('Socket is unreachable!')\n }\n }, 0)\n },\n 5 * 1000,\n ),\n )\n }, 5 * 1000)\n })\n\n socket.current.on('userMainPresenceUpdate', (res: MainPresenceTypes) => {\n // Update endpoints store\n store.dispatch.users.updateEndpointMainPresence({ ...res.mainPresence })\n // Dispatch dispatchMainPresence Event\n dispatchMainPresence(res)\n })\n\n socket.current.on('extenHangup', (res: any) => {\n const { endpoints, username } = store.getState().currentUser\n const { isActive, conferenceStartedFrom } = store.getState().conference\n const { view, previewCallFromMobileOrNethlink } = store.getState().island\n\n // Get user extensions\n const userExtensions = endpoints?.extension || []\n\n // Find the extension type based on callerNum\n const connectedExtension = userExtensions.find((ext) => ext.id === res.callerNum)\n\n const extensionType: any = connectedExtension?.type\n\n // Get linkedId from conversations\n const { conversations } = store.getState().currentUser\n let linkedid: any = undefined\n let conversationWasConnected = false\n\n if (res.callerNum && conversations[res.callerNum]) {\n const extensionConversations = conversations[res.callerNum]\n const conversationKeys = Object.keys(extensionConversations)\n if (conversationKeys.length > 0) {\n let selectedConversation: any = null\n for (const key of conversationKeys) {\n const currentConversation = extensionConversations?.[key]\n if (!currentConversation) continue\n\n if (!selectedConversation) {\n selectedConversation = currentConversation\n continue\n }\n\n const selectedConnected = !!selectedConversation.connected\n const currentConnected = !!currentConversation.connected\n\n // Prefer connected conversations over non-connected ones\n if (currentConnected && !selectedConnected) {\n selectedConversation = currentConversation\n continue\n }\n\n const selectedStartTime = selectedConversation.startTime ?? 0\n const currentStartTime = currentConversation.startTime ?? 0\n\n // Among conversations with the same connected status, prefer the most recent one\n if (currentConnected === selectedConnected && currentStartTime > selectedStartTime) {\n selectedConversation = currentConversation\n }\n }\n\n linkedid = selectedConversation?.linkedId\n conversationWasConnected = selectedConversation?.connected || false\n }\n }\n // Check summary/transcription only for calls that were actually answered.\n if (linkedid && conversationWasConnected) {\n eventDispatch('phone-island-summary-call-check', { linkedid })\n }\n\n // If cause is normal_clearing and extension is physical or mobile\n // Clean phone-island visibility also after user_busy ( useful for physical devices )\n if (\n (res.cause === 'normal_clearing' &&\n (extensionType === 'physical' || extensionType === 'mobile')) ||\n (res.cause === 'normal_clearing' &&\n (extensionType === 'webrtc' || extensionType === 'nethlink') &&\n previewCallFromMobileOrNethlink) ||\n res?.cause === 'user_busy' ||\n res?.cause === 'not_defined' ||\n res?.cause === 'call_rejected' ||\n res?.cause === 'interworking'\n ) {\n // Reset phone island visibility after 2 seconds to avoid glitches\n setTimeout(() => {\n store.dispatch.island.toggleAvoidToShow(false)\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(false)\n }, 500)\n // Only reset conference if there are no more participants or if user is not in a conference\n if (isActive && conferenceStartedFrom !== username) {\n store.dispatch.conference.resetConference()\n }\n } else if (\n res?.cause === 'normal_circuit_congestion' &&\n isActive &&\n conferenceStartedFrom === username\n ) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n } else if (\n (res.cause === 'normal_clearing' ||\n res?.cause === 'user_busy' ||\n res?.cause === 'not_defined' ||\n res?.cause === 'call_rejected') &&\n (extensionType === 'webrtc' || extensionType === 'nethlink') &&\n isActive &&\n conferenceStartedFrom !== username\n ) {\n store.dispatch.conference.resetConference()\n }\n // if conference owner and added participant refuses or hangs up with normal_clearing\n if (\n ((res.cause === 'normal_clearing' &&\n (extensionType === 'webrtc' || extensionType === 'nethlink')) ||\n res?.cause === 'call_rejected') &&\n isActive &&\n conferenceStartedFrom === username\n ) {\n const { usersList, pendingUsers } = store.getState().conference\n // Check if there are still participants in the conference (both confirmed and pending)\n const hasConfirmedParticipants = usersList && Object.keys(usersList).length > 0\n const hasPendingParticipants = pendingUsers && Object.keys(pendingUsers).length > 0\n const hasParticipants = hasConfirmedParticipants || hasPendingParticipants\n\n if (!hasParticipants) {\n store.dispatch.conference.resetConference()\n } else {\n // If there are still participants, keep the waitingConference view\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n }\n }\n // if conference owner call the call with the added user inside conference\n if (\n res?.cause === 'interworking' &&\n isActive &&\n conferenceStartedFrom === username &&\n view !== 'waitingConference'\n ) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n }\n if (res?.cause === 'user_busy') {\n // Get current user's extensions\n const { endpoints, username } = store.getState().currentUser\n const userExtensions = endpoints?.extension || []\n const userExtensionIds = userExtensions.map((ext) => ext.id)\n\n // Get the current call state to understand if we're the caller or receiver\n const { incoming, accepted, transferring } = store.getState().currentCall\n\n // Check if there's an active conference\n const { isActive, conferenceStartedFrom } = store.getState().conference\n\n // When we RECEIVE a call on our extension, callerNum is the busy extension (our own)\n // When we CALL someone, channelExten is one of our extensions (the one we're calling from)\n const isReceivingCall =\n incoming && !!res.callerNum && userExtensionIds.includes(res.callerNum)\n\n // If we are already on an active call, suppress the busy popup unless it belongs\n // to a conference-owner flow or an attended transfer started by this user.\n const shouldShowOperatorBusy = !isReceivingCall && (!accepted || isActive || transferring)\n\n // Only show operator busy view if:\n // 1. We are NOT receiving an incoming call to our own extension\n if (shouldShowOperatorBusy) {\n // Set operator busy active with caller information\n store.dispatch.island.setOperatorBusyActive({\n callerNumber: res.callerNum || 'Unknown',\n })\n\n // Stop busy tone after 4 seconds\n setTimeout(() => {\n store.dispatch.player.stopAudioPlayer()\n }, 4000)\n\n setTimeout(() => {\n // Play busy tone\n store.dispatch.player.updateStartAudioPlayer({\n src: busyRingtone,\n loop: true,\n })\n store.dispatch.island.setIslandView('operatorBusy')\n }, 600)\n\n // If conference is active and we're the owner, return to conference after timeout\n if (isActive && conferenceStartedFrom === username) {\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 4000)\n }\n }\n }\n\n // Handle subscriber_absent - when added participant rejects the call\n if (res?.cause === 'subscriber_absent') {\n const { isActive, conferenceStartedFrom } = store.getState().conference\n const { username } = store.getState().currentUser\n\n // Only handle if conference is active and current user is the owner\n if (isActive && conferenceStartedFrom === username) {\n // Check if there are still participants in the conference (both confirmed and pending)\n const { usersList, pendingUsers } = store.getState().conference\n const hasConfirmedParticipants = usersList && Object.keys(usersList).length > 0\n const hasPendingParticipants = pendingUsers && Object.keys(pendingUsers).length > 0\n const hasParticipants = hasConfirmedParticipants || hasPendingParticipants\n\n if (hasParticipants) {\n // Return to waiting conference view to manage other participants\n setTimeout(() => {\n eventDispatch('phone-island-view-changed', { viewType: 'waitingConference' })\n }, 800)\n // Remove from pending users if exists\n if (pendingUsers && pendingUsers[res.callerNum]) {\n store.dispatch.conference.removePendingUser(res.callerNum)\n }\n } else {\n // No participants left, reset conference\n store.dispatch.conference.resetConference()\n }\n }\n }\n })\n\n // Avoid to show phone island if call is connected with other extension\n socket.current.on('extenConnected', (res: { extenConnected: string }) => {\n // Get the current user's extensions\n\n const { default_device, endpoints } = store.getState().currentUser\n const userExtensions = endpoints?.extension || []\n\n // Find the extension type\n const connectedExtension = userExtensions.find((ext) => ext.id === res.extenConnected)\n const extensionType: any = connectedExtension?.type\n\n // Reset only if the extension type is not webrtc or nethlink\n // ( avoid to not show phone island if default is physical and extensionType is physical)\n if (\n ((default_device?.type === 'webrtc' || default_device?.type === 'nethlink') &&\n extensionType &&\n (extensionType === 'mobile' || extensionType === 'physical')) ||\n (default_device?.type === 'physical' && extensionType && extensionType !== 'physical')\n ) {\n // Avoid to show phone island in case of answer from physical or mobile device\n store.dispatch.island.toggleAvoidToShow(true)\n // Set the preview call flag\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(true)\n // Launch an event to advert the user that the call it's answered from another device\n eventDispatch('phone-island-call-answered', { extensionType })\n }\n })\n\n socket.current.on('extenUpdate', (res: ExtensionTypes) => {\n // Update extensions and conversations in users store\n dispatch.users.updateExtension(res)\n\n //retrieve all extensions from store\n const { extensions }: any = store.getState().users\n const deviceMap: any = {}\n\n const userInformation = store.getState().currentUser\n // Create a map of extensions for each user\n for (const key in extensions) {\n const user: any = extensions[key].username\n const ext: any = extensions[key].exten\n\n if (!deviceMap[user]) {\n deviceMap[user] = []\n }\n\n deviceMap[user].push(ext)\n }\n\n const associatedExtensions: any = deviceMap[res.username]\n\n // Initialize conversation\n let conv = res.conversations[Object.keys(res.conversations)[0]] || {}\n\n // Check if this is a mobile extension call for the current user\n let isMobileExtensionCall = false\n if (res?.username === username && !isEmpty(conv) && conv?.owner) {\n const matchingExtension = userInformation?.endpoints?.extension?.find(\n (ext: any) => ext.id === conv.owner,\n )\n if (matchingExtension && matchingExtension.type === 'mobile') {\n isMobileExtensionCall = true\n }\n }\n\n // Update all extensions and send the dispatch event\n dispatchExtensions(res)\n\n // second step update conversation\n\n // Check if conversation is empty\n if (isEmpty(conv)) {\n // Check if there is at least one conversation not empty\n const hasNonEmptyConversation = associatedExtensions?.some((ext: any) => {\n const extConversations = extensions[ext]?.conversations\n\n if (!isEmpty(extConversations)) {\n // not empty conversation found\n return true\n }\n\n return false\n })\n\n if (!hasNonEmptyConversation) {\n // Conversation is empty and there is no conversation for the user\n dispatchConversations(res)\n }\n } else if (!isMobileExtensionCall) {\n // Dispatch conversation event\n dispatchConversations(res)\n }\n\n if (isMobileExtensionCall && res?.status === 'busy' && res?.username === username) {\n store.dispatch.island.toggleAvoidToShow(true)\n store.dispatch.island.setPreviewCallFromMobileOrNethlink(true)\n }\n // Handle only the events of the user\n if (res.username === username) {\n handleCurrentUserEvents(res, conv)\n // Update the conversations of the user\n dispatch.currentUser.updateConversations(res)\n }\n })\n\n // `queueUpdate` is the socket event when the data of a queue updates\n socket.current.on('queueUpdate', (res: QueuesUpdateTypes) => {\n dispatch.queue.updateQueue(res)\n\n const activeConversation = getActiveConversationForCurrentCall()\n\n if (activeConversation) {\n syncCurrentUserQueueCall(activeConversation)\n }\n\n // Dispatch queueUpdate event\n dispatchQueueUpdate(res)\n })\n\n // `queueMemberUpdate` is the socket event when the data of a queue member changes\n socket.current.on('queueMemberUpdate', (res: QueueUpdateMemberTypes) => {\n dispatch.queue.updateQueueMember(res)\n // Dispatch queueMemberUpdate event\n dispatchQueueMemberUpdate(res)\n })\n\n // `takeOver` is the socket event when the user does login from another new window\n socket.current.on('takeOver', () => {\n // Dispatch takeOver event\n dispatchAlreadyLogin()\n })\n\n // `serverReload` is the socket event when server is reloaded\n socket.current.on('serverReloaded', () => {\n // Dispatch serverReload event\n dispatchServerReload()\n })\n\n // `parkingUpdate` is the socket event when a call is parked or unparked\n socket.current.on('parkingUpdate', (event) => {\n // Dispatch parking update event with the parking information\n dispatchParkingUpdate(event)\n })\n\n // `actionNethLink` is the socket event when user make a call or a action from NethLink and has a physical device\n socket.current.on('actionNethLink', (link, urlType) => {\n // Dispatch phone island physical call event with the link and the urlType\n dispatchUrlCall(link, urlType)\n })\n\n // `satellite/summary` is the socket event when summary is ready\n socket.current.on('satellite/summary', (data: any) => {\n if (data?.uniqueid) {\n eventDispatch('phone-island-summary-ready', {\n linkedid: data?.uniqueid,\n display_name: data?.display_name,\n display_number: data?.display_number,\n })\n }\n })\n\n socket.current.on('message', (data: any) => {\n switch (data.message) {\n case 'screenSharingStart':\n dispatch.island.toggleSideViewVisible(false)\n dispatch.island.toggleTranscriptionViewVisible(false)\n dispatch.island.setIslandView('video')\n\n dispatch.screenShare.update({\n isJoiningScreenShare: true,\n room: (data as ScreenSharingMessage).roomId,\n })\n break\n case 'screenSharingStop':\n dispatch.island.toggleSideViewVisible(false)\n dispatch.island.toggleTranscriptionViewVisible(false)\n dispatch.island.setIslandView('video')\n\n dispatch.screenShare.update({\n isLeavingScreenShare: true,\n })\n break\n default:\n console.warn('Socket: unknown message type ', data.message)\n }\n })\n\n // `updateDefaultDevice` is the socket event when user change the default device\n socket.current.on('updateDefaultDevice', (extension: string) => {\n // Dispatch phone island physical call event with the link and the urlType\n dispatchDefaultDeviceUpdate(extension)\n // Update the internal store\n const { extensions } = store.getState().users\n const { endpoints } = store.getState().currentUser\n if (!extensions || !endpoints) return\n\n const extensionInformations: any = Object.values(extensions).filter(\n (ext) => ext?.exten === extension,\n )\n if (extensionInformations.length === 0) return\n\n let objectComplete = extensionInformations[0]\n const endpointExtension = endpoints.extension.find(\n (endpoint) => endpoint.id === objectComplete.exten,\n )\n if (endpointExtension) {\n objectComplete = { ...objectComplete, type: endpointExtension.type }\n }\n\n store.dispatch.currentUser.updateCurrentDefaultDevice(objectComplete)\n //make sure to check the media permissions\n checkMediaPermissions()\n })\n\n socket.current.on('confBridgeUpdate', (res: any) => {\n if (res && res?.users) {\n // Get User informations\n const conferenceId = res?.id\n const conferenceUsers = res?.users\n\n // Get current users list to preserve mute status\n const { usersList } = store.getState().conference\n\n // Create a copy of the new conference users while preserving mute status\n const updatedConferenceUsers = { ...conferenceUsers }\n\n // Preserve mute status for existing users\n if (usersList) {\n Object.keys(updatedConferenceUsers).forEach((userId) => {\n if (usersList[userId]) {\n // Keep the existing mute status instead of using the server's value\n updatedConferenceUsers[userId] = {\n ...updatedConferenceUsers[userId],\n muted: usersList[userId].muted,\n }\n }\n })\n }\n\n store.dispatch.conference.updateConferenceUsersList(updatedConferenceUsers)\n store.dispatch.conference.updateConferenceId(conferenceId)\n }\n })\n\n socket.current.on('confBridgeEnd', (res: any) => {\n if (res && res?.id) {\n // Reset the conference store when conference ends\n store.dispatch.conference.resetConference()\n eventDispatch('phone-island-conference-finished', {})\n }\n })\n\n socket.current.on('callWebrtc', (res: any) => {\n // On call event from socket dispatch the call start event\n eventDispatch('phone-island-call-start', { number: res })\n })\n\n socket.current.on('newVoiceMessageCounter', (res: any) => {\n eventDispatch('phone-island-voicemail-received', { voicemailInfo: res })\n })\n\n socket.current.on('streamingSourceUpdate', (res: any) => {\n eventDispatch('phone-island-streaming-information-received', { res })\n const streamingData = res.streaming || (res.res && res.res.streaming)\n\n if (streamingData) {\n const { source, image } = streamingData\n if (source && image) {\n const { isFromStreaming } = store.getState().island\n const { streamingSourceNumber } = store.getState().currentCall\n const sourceId = getStreamingSourceId(streamingSourceNumber)\n\n dispatch.streaming.updateSourceImage({\n source: source,\n image: image,\n })\n }\n }\n })\n\n // Handle satellite/transcription messages\n socket.current.on('satellite/transcription', (transcriptionData: any) => {\n // Dispatch the transcription event to external listeners\n eventDispatch('phone-island-conversation-transcription', transcriptionData)\n })\n }\n\n initSocketConnection()\n\n // Stop the check socket interval\n // Close the socket connection\n return () => {\n clearInterval(connectionCheckInterval.current)\n socket.current.close()\n }\n }, [hostName, username, authToken, uaType, dispatch])\n\n // Manage reload events\n useEffect(() => {\n if (reload) {\n console.info('Socket reload requested')\n const { data } = store.getState().alerts\n const { forceReload } = store.getState().island\n\n // Check if socket is actually down using alerts (more reliable than socket.connected)\n const isSocketDown = data.socket_down?.active || false\n\n // Only reconnect if socket_down alert is active OR force reload is requested\n if (isSocketDown || forceReload) {\n console.info(\n forceReload\n ? 'Force reload requested, performing Socket reconnection'\n : 'Socket down detected (alert active), performing reconnection',\n )\n // Reset force reload flag\n if (forceReload) {\n store.dispatch.island.setForceReload(false)\n }\n // Clear the connection check interval to avoid stale ping timeouts during reconnection\n if (connectionCheckInterval.current) {\n clearInterval(connectionCheckInterval.current)\n connectionCheckInterval.current = null\n }\n // Disconnect and reconnect socket\n setTimeout(() => {\n socket.current.disconnect()\n socket.current.connect()\n // Execute the reloaded callback\n reloadedCallback()\n }, 100)\n } else {\n console.info('Socket already connected (no alert active), skipping reconnection')\n // Execute callback without reload\n reloadedCallback()\n }\n }\n }, [reload])\n\n return <>{children}</>\n}\n"],"names":["_a","hostName","username","authToken","reload","reloadedCallback","children","uaType","dispatch","useDispatch","connectionCheckInterval","useRef","socket","isUpdatingUserInfo","consecutivePingTimeouts","currentUserQueueCallPhase","useEventListener","args","current","linkedid","uniqueid","emit","data","currentCall","updateCurrentCall","throughQueue","queueId","queueName","queueNumber","queuePosition","queueWaitingTime","useEffect","socketOptions","handleStreamingSource","conv","counterpartNum","isFromStreaming","island","setIsFromStreaming","streamingSourceNumber","sourceId","getStreamingSourceId","subscribe","id","catch","error","console","syncCurrentUserQueueCall","queueContext","getCurrentCallQueueContext","store","getState","queue","getCurrentCallQueuePayload","payload","conversationId","linkedId","uniqueId","ownerExtension","owner","number","concat","getQueuePayloadWithFallback","Boolean","connected","_c","_d","phase","dispatchCurrentUserQueueCallConnected","_b","dispatchCurrentUserQueueCallWaiting","handleCurrentUserEvents","res","transferring","transferSwitching","transferCalls","view","Object","keys","length","status","extensions_1","users","extensions","default_device","currentUser","endpoints_1","endpoints","username_1","incoming","hasOnlineNethlink","userExtensions","values","filter","ext","some","endpointExtension","extension","find","endpoint","exten","type","accepted","currentOwnerExtension","shouldKeepCurrentAcceptedCall","undefined","checkIncomingUpdatePlay","displayName","getDisplayName","incomingSocket","setIslandView","getCurrentUserInfo","then","userInfo","updateCurrentUser","eventDispatch","__assign","settings","open_param_url","paramUrl","setOpenParamUrlType","finally","setTimeout","openParamUrlType","urlOpened","calculatedThroughTrunk","isFromTrunk","setThroughTrunk","setUrlOpened","counterpartName","throughTrunk","direction","chDest","chSource","checkAcceptedUpdate","acceptedSocket","addTransferCalls","startTime","getTimestampInSeconds","isPhysical","player","stopAudioPlayer","setAudioPlayerLoop","checkDefaultDeviceConversationActive","deleteTransferCalls","inTransferCalls","item","updateTransferSwitching","physicalRecorder","setRecordingTempVariable","checkOutgoingUpdate","outgoingSocket","outgoing","userTotallyFree","reset","upgrade","transports","reconnection","reconnectionDelay","getApiMode","path","io","websocket","update","on","debug","reason","clearInterval","includes","err","attempt","accessKeyId","token","setInterval","volatile","withTimeout","alerts","removeAlert","isStaleConnection","sipcall","webrtc","iceState","webrtcStuff","pc","iceConnectionState","timestamp","Date","toISOString","warn","disconnect","setAlert","updateEndpointMainPresence","mainPresence","dispatchMainPresence","conference","isActive","conferenceStartedFrom","_e","previewCallFromMobileOrNethlink","connectedExtension","callerNum","extensionType","conversations","conversationWasConnected","extensionConversations","conversationKeys","selectedConversation","conversationKeys_1","_i","key","currentConversation","selectedConnected","currentConnected","selectedStartTime","currentStartTime","cause","toggleAvoidToShow","setPreviewCallFromMobileOrNethlink","resetConference","viewType","_f","usersList","pendingUsers","hasConfirmedParticipants","hasPendingParticipants","_g","endpoints_2","username_2","userExtensionIds","map","_h","_j","isActive_1","conferenceStartedFrom_1","setOperatorBusyActive","callerNumber","updateStartAudioPlayer","src","busyRingtone","loop","_k","isActive_2","conferenceStartedFrom_2","username_3","_l","removePendingUser","extenConnected","updateExtension","deviceMap","userInformation","user","push","associatedExtensions","isMobileExtensionCall","isEmpty","matchingExtension","dispatchExtensions","hasNonEmptyConversation","extConversations","dispatchConversations","updateConversations","updateQueue","activeConversation","forEach","conversation","dispatchQueueUpdate","updateQueueMember","dispatchQueueMemberUpdate","dispatchAlreadyLogin","dispatchServerReload","event","dispatchParkingUpdate","link","urlType","dispatchUrlCall","display_name","display_number","message","toggleSideViewVisible","toggleTranscriptionViewVisible","screenShare","isJoiningScreenShare","room","roomId","isLeavingScreenShare","dispatchDefaultDeviceUpdate","extensionInformations","objectComplete","updateCurrentDefaultDevice","checkMediaPermissions","conferenceId","conferenceUsers","usersList_1","updatedConferenceUsers_1","userId","muted","updateConferenceUsersList","updateConferenceId","voicemailInfo","streamingData","streaming","source","image","updateSourceImage","transcriptionData","close","info","forceReload","socket_down","active","setForceReload","connect","React","createElement","Fragment"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Button.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),l=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/i18next/dist/esm/i18next.js"),r=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),o=require("../../utils/genericFunctions/stringUtils.js"),n=require("../../utils/streaming/streamingUtils.js"),u=require("../Hangup.js"),s=require("../../lib/phone/call.js"),c=require("../CallView/Avatar.js"),d=require("../CallView/Timer.js"),m=require("../../lib/user/default_device.js"),p=require("../AudioBars.js"),f=require("../CustomThemedTooltip.js"),g=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),h=require("../../node_modules/react-redux/es/hooks/useSelector.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var E=x(e),v=function(){var x=g.useDispatch(),v=h.useSelector((function(e){return e.currentCall})),b=v.muted,j=v.startTime,T=v.paused,w=v.streamingSourceNumber,k=h.useSelector((function(e){return e.island})),C=k.isOpen,N=k.isExtraLarge,S=h.useSelector((function(e){return e.webrtc})).remoteAudioStream,q=h.useSelector((function(e){return e.streaming})),y=q.videoSources,F=q.sourceImages,_=E.default.useMemo((function(){if(!w||!y)return{image:null,canUnlock:!1,tooltipText:""};var e=Object.values(y).find((function(e){return e.extension===w}));if(!e)return{image:null,canUnlock:!1,tooltipText:""};var t=F[e.id]||e.image||null,a=Boolean(e.cmdOpen&&""!==e.cmdOpen.trim());return{image:t,canUnlock:a,tooltipText:a?"".concat(i.t("VideoStreaming.Open"),": ").concat(e.description):""}}),[w,y,F,i.t]),A=e.useState(!1),B=A[0],L=A[1],O=e.useRef(null),V=e.useRef(null),z=e.useRef(null),I=e.useRef(null),R=e.useRef(null),U=e.useRef(null);r.useIsomorphicLayoutEffect((function(){x.player.updatePlayer({localScreen:V,remoteScreen:z,localVideo:I,largeRemoteVideo:R,smallRemoteVideo:U})}),[]);var D=function(){L(!!document.fullscreenElement)};e.useEffect((function(){return addEventListener("fullscreenchange",D),function(){removeEventListener("fullscreenchange",D)}}),[]);var M=E.default.useCallback((function(){if(w&&y){var e=Object.values(y).find((function(e){return e.extension===w}));if(e&&e.image){var t=e.description?"".concat(o.capitalizeFirstLetter(e.description).replace(/\s+/g,"_"),"_").concat(o.getISODateForFilename(),"_screenshot.jpg"):"screenshot_".concat(o.getISODateForFilename(),".jpg"),a=document.createElement("a");a.href=e.image,a.download=t,document.body.appendChild(a),a.click(),document.body.removeChild(a)}}}),[w,y]);return E.default.createElement(E.default.Fragment,null,C?E.default.createElement("div",{ref:O,className:B?"pi-h-screen pi-w-full":N?"pi-h-[748px] pi-w-[936px]":"pi-h-[480px] pi-w-[600px]"},E.default.createElement("div",{className:"".concat(B?"pi-h-[500px]":N?"pi-h-[648px]":"pi-h-[380px]"," pi-flex pi-relative pi-justify-center pi-w-full pi-flex-col")},E.default.createElement("div",{className:"pi-relative pi-flex-1"},_.image?E.default.createElement("img",{src:_.image,alt:"Streaming source",className:"pi-rounded-tl-[20px] pi-rounded-tr-[20px] pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-w-full pi-h-full pi-object-cover"}):E.default.createElement("div",{className:"pi-w-full pi-h-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center pi-rounded-tl-[20px] pi-rounded-tr-[20px] pi-rounded-bl-[20px] pi-rounded-br-[20px]"},E.default.createElement(a.FontAwesomeIcon,{icon:l.faVideoSlash,className:"pi-w-24 pi-h-24 pi-text-gray-400 dark:pi-text-gray-600"})),E.default.createElement("div",{className:"pi-absolute pi-bottom-0 pi-left-0 pi-right-0 pi-bg-black/30 pi-p-4 pi-rounded-b-3xl"},E.default.createElement("div",null,E.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6"},E.default.createElement(t.Button,{variant:"default",onClick:b?s.unmuteCurrentCall:s.muteCurrentCall,"data-tooltip-id":"tooltip-mute-streaming","data-tooltip-content":b?i.t("Tooltip.Unmute"):i.t("Tooltip.Mute")},E.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:b?l.faMicrophoneSlash:l.faMicrophone})),E.default.createElement(t.Button,{variant:"default",onClick:M,"data-tooltip-id":"tooltip-screenshot-streaming","data-tooltip-content":i.t("VideoStreaming.Take a screenshot")||"Take a screenshot"},E.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:l.faCamera})),(null==_?void 0:_.canUnlock)&&E.default.createElement(t.Button,{variant:"default",onClick:n.handleStreamingUnlock,"data-tooltip-id":"tooltip-unlock-streaming","data-tooltip-content":null==_?void 0:_.tooltipText},E.default.createElement(a.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:l.faLockOpen})))))),E.default.createElement("div",{className:"pi-bg-surfaceBackground dark:pi-bg-surfaceBackgroundDark pi-pt-4 pi-rounded-bl-[20px] pi-rounded-br-[20px]"},E.default.createElement(u.default,{buttonsVariant:"default",showFullscreenButton:!0,isFullscreen:B,onToggleFullscreen:function(){document.fullscreenElement?document.exitFullscreen():O.current&&O.current.requestFullscreen()},isExtraLarge:N,onToggleExtraLarge:function(){return x.island.setExtraLarge(!N)}}))),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-screenshot-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-unlock-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-screen-share-streaming",place:"bottom"}),E.default.createElement(f.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"})):E.default.createElement(E.default.Fragment,null,E.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},E.default.createElement(c.default,null),E.default.createElement(d.default,{startTime:j,isNotAlwaysWhite:!0}),!C&&S&&!m.isPhysical()&&E.default.createElement(p.AudioBars,{audioStream:S,paused:T,size:C?"large":"small"}))))};exports.StreamingAnswerView=v,exports.default=v;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|