@nethesis/phone-island 1.0.14-dev.1 → 1.0.15

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.
Files changed (657) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/App.js.map +1 -1
  3. package/dist/components/AlertGuard.js +1 -1
  4. package/dist/components/AlertGuard.js.map +1 -1
  5. package/dist/components/AlertView/index.js +1 -1
  6. package/dist/components/AlertView/index.js.map +1 -1
  7. package/dist/components/AudioBars.js +1 -1
  8. package/dist/components/AudioBars.js.map +1 -1
  9. package/dist/components/AudioPlayerView/Avatar.js +1 -1
  10. package/dist/components/AudioPlayerView/Avatar.js.map +1 -1
  11. package/dist/components/AudioPlayerView/PlayerFooterActions.js +1 -1
  12. package/dist/components/AudioPlayerView/PlayerFooterActions.js.map +1 -1
  13. package/dist/components/AudioPlayerView/Progress.js +1 -1
  14. package/dist/components/AudioPlayerView/Progress.js.map +1 -1
  15. package/dist/components/AudioPlayerView/index.js +1 -1
  16. package/dist/components/AudioPlayerView/index.js.map +1 -1
  17. package/dist/components/AvatarGroup.js +1 -1
  18. package/dist/components/AvatarGroup.js.map +1 -1
  19. package/dist/components/CallView/Actions.js +1 -1
  20. package/dist/components/CallView/Actions.js.map +1 -1
  21. package/dist/components/CallView/Avatar.js +1 -1
  22. package/dist/components/CallView/Avatar.js.map +1 -1
  23. package/dist/components/CallView/BackCall.js +1 -1
  24. package/dist/components/CallView/BackCall.js.map +1 -1
  25. package/dist/components/CallView/DisplayName.js +1 -1
  26. package/dist/components/CallView/DisplayName.js.map +1 -1
  27. package/dist/components/CallView/Number.js +1 -1
  28. package/dist/components/CallView/Number.js.map +1 -1
  29. package/dist/components/CallView/Timer.js +1 -1
  30. package/dist/components/CallView/Timer.js.map +1 -1
  31. package/dist/components/CallView/index.js +1 -1
  32. package/dist/components/CallView/index.js.map +1 -1
  33. package/dist/components/ConferenceView/ConferenceUsersList.js +1 -1
  34. package/dist/components/ConferenceView/ConferenceUsersList.js.map +1 -1
  35. package/dist/components/ConferenceView/index.js +1 -1
  36. package/dist/components/ConferenceView/index.js.map +1 -1
  37. package/dist/components/ContactView/ContactListView.js +1 -1
  38. package/dist/components/ContactView/ContactListView.js.map +1 -1
  39. package/dist/components/ContactView/ListAvatar.js +1 -1
  40. package/dist/components/ContactView/ListAvatar.js.map +1 -1
  41. package/dist/components/ContactView/SelectContactNumberView.js +1 -1
  42. package/dist/components/ContactView/SelectContactNumberView.js.map +1 -1
  43. package/dist/components/ContactView/TransferActions.js +1 -1
  44. package/dist/components/ContactView/TransferActions.js.map +1 -1
  45. package/dist/components/CustomThemedTooltip.js +1 -1
  46. package/dist/components/CustomThemedTooltip.js.map +1 -1
  47. package/dist/components/Dropdown.js +1 -1
  48. package/dist/components/Dropdown.js.map +1 -1
  49. package/dist/components/Hangup.js +1 -1
  50. package/dist/components/Hangup.js.map +1 -1
  51. package/dist/components/Island.js +1 -1
  52. package/dist/components/Island.js.map +1 -1
  53. package/dist/components/IslandDrag.js +1 -1
  54. package/dist/components/IslandDrag.js.map +1 -1
  55. package/dist/components/IslandMotion.js +1 -1
  56. package/dist/components/IslandMotion.js.map +1 -1
  57. package/dist/components/KeypadView/Actions.js +1 -1
  58. package/dist/components/KeypadView/Actions.js.map +1 -1
  59. package/dist/components/KeypadView/index.js +1 -1
  60. package/dist/components/KeypadView/index.js.map +1 -1
  61. package/dist/components/OperatorBusyView/index.js +1 -1
  62. package/dist/components/OperatorBusyView/index.js.map +1 -1
  63. package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js +1 -1
  64. package/dist/components/PhysicalRecorderView/PhysicalRecordingTimer.js.map +1 -1
  65. package/dist/components/PhysicalRecorderView/index.js +1 -1
  66. package/dist/components/PhysicalRecorderView/index.js.map +1 -1
  67. package/dist/components/RecorderView/Actions.js +1 -1
  68. package/dist/components/RecorderView/Actions.js.map +1 -1
  69. package/dist/components/RecorderView/Bar.js +1 -1
  70. package/dist/components/RecorderView/Bar.js.map +1 -1
  71. package/dist/components/RecorderView/BarsGroup.js +1 -1
  72. package/dist/components/RecorderView/BarsGroup.js.map +1 -1
  73. package/dist/components/RecorderView/Timer.js +1 -1
  74. package/dist/components/RecorderView/Timer.js.map +1 -1
  75. package/dist/components/RecorderView/index.js +1 -1
  76. package/dist/components/RecorderView/index.js.map +1 -1
  77. package/dist/components/RestAPI.js +1 -1
  78. package/dist/components/RestAPI.js.map +1 -1
  79. package/dist/components/SettingsView/AudioView.js +1 -1
  80. package/dist/components/SettingsView/AudioView.js.map +1 -1
  81. package/dist/components/SettingsView/MicrophoneView.js +1 -1
  82. package/dist/components/SettingsView/MicrophoneView.js.map +1 -1
  83. package/dist/components/SettingsView/SettingsHeader.js +1 -1
  84. package/dist/components/SettingsView/SettingsHeader.js.map +1 -1
  85. package/dist/components/SettingsView/ThemeView.js +1 -1
  86. package/dist/components/SettingsView/ThemeView.js.map +1 -1
  87. package/dist/components/SettingsView/VideoInputView.js +1 -1
  88. package/dist/components/SettingsView/VideoInputView.js.map +1 -1
  89. package/dist/components/SettingsView/index.js +1 -1
  90. package/dist/components/SettingsView/index.js.map +1 -1
  91. package/dist/components/SideView/SideView.js +1 -1
  92. package/dist/components/SideView/SideView.js.map +1 -1
  93. package/dist/components/SideView/components/SideViewButton.js +1 -1
  94. package/dist/components/SideView/components/SideViewButton.js.map +1 -1
  95. package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
  96. package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
  97. package/dist/components/Socket.js +1 -1
  98. package/dist/components/Socket.js.map +1 -1
  99. package/dist/components/StreamingAnswerView/index.js +1 -1
  100. package/dist/components/StreamingAnswerView/index.js.map +1 -1
  101. package/dist/components/StreamingImage/index.js +1 -1
  102. package/dist/components/StreamingImage/index.js.map +1 -1
  103. package/dist/components/SwitchDeviceView/index.js +1 -1
  104. package/dist/components/SwitchDeviceView/index.js.map +1 -1
  105. package/dist/components/SwitchInputView/DropdownContent.js +1 -1
  106. package/dist/components/SwitchInputView/DropdownContent.js.map +1 -1
  107. package/dist/components/TextScroll.js +1 -1
  108. package/dist/components/TextScroll.js.map +1 -1
  109. package/dist/components/TranscriptionView/TranscriptionView.js +1 -1
  110. package/dist/components/TranscriptionView/TranscriptionView.js.map +1 -1
  111. package/dist/components/TransferButton.js +1 -1
  112. package/dist/components/TransferButton.js.map +1 -1
  113. package/dist/components/VideoView/index.js +1 -1
  114. package/dist/components/VideoView/index.js.map +1 -1
  115. package/dist/components/ViewsTransition.js +1 -1
  116. package/dist/components/ViewsTransition.js.map +1 -1
  117. package/dist/components/WebRTC.js +1 -1
  118. package/dist/components/WebRTC.js.map +1 -1
  119. package/dist/events/CallEvents.js +1 -1
  120. package/dist/events/CallEvents.js.map +1 -1
  121. package/dist/events/PlayerEvents.js +1 -1
  122. package/dist/events/PlayerEvents.js.map +1 -1
  123. package/dist/events/RecorderEvents.js +1 -1
  124. package/dist/events/RecorderEvents.js.map +1 -1
  125. package/dist/lib/avatars/avatars.js +1 -1
  126. package/dist/lib/avatars/avatars.js.map +1 -1
  127. package/dist/lib/devices/devices.js +1 -1
  128. package/dist/lib/devices/devices.js.map +1 -1
  129. package/dist/lib/phone/audio.js +1 -1
  130. package/dist/lib/phone/audio.js.map +1 -1
  131. package/dist/lib/phone/call.js +1 -1
  132. package/dist/lib/phone/call.js.map +1 -1
  133. package/dist/lib/phone/queue.js +1 -1
  134. package/dist/lib/phone/queue.js.map +1 -1
  135. package/dist/lib/player/audio.js +1 -1
  136. package/dist/lib/player/audio.js.map +1 -1
  137. package/dist/lib/user/extensions.js +1 -1
  138. package/dist/lib/user/extensions.js.map +1 -1
  139. package/dist/lib/webrtc/janus.js +1 -1
  140. package/dist/lib/webrtc/janus.js.map +1 -1
  141. package/dist/lib/webrtc/messages.js +1 -1
  142. package/dist/lib/webrtc/messages.js.map +1 -1
  143. package/dist/models/conference.js +1 -1
  144. package/dist/models/conference.js.map +1 -1
  145. package/dist/models/currentCall.js +1 -1
  146. package/dist/models/currentCall.js.map +1 -1
  147. package/dist/models/mediaDevices.js +1 -1
  148. package/dist/models/mediaDevices.js.map +1 -1
  149. package/dist/models/player.js +1 -1
  150. package/dist/models/player.js.map +1 -1
  151. package/dist/models/queue.js +1 -1
  152. package/dist/models/queue.js.map +1 -1
  153. package/dist/models/ringtones.js +1 -1
  154. package/dist/models/ringtones.js.map +1 -1
  155. package/dist/models/streaming.js +1 -1
  156. package/dist/models/streaming.js.map +1 -1
  157. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js.map +1 -1
  158. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +1 -1
  159. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
  160. package/dist/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js.map +1 -1
  161. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
  162. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
  163. package/dist/node_modules/@babel/runtime/helpers/toPrimitive.js.map +1 -1
  164. package/dist/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js.map +1 -1
  165. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js +1 -1
  166. package/dist/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js.map +1 -1
  167. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js +1 -1
  168. package/dist/node_modules/@emotion/stylis/dist/stylis.browser.esm.js.map +1 -1
  169. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +1 -1
  170. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +1 -1
  171. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +1 -1
  172. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +1 -1
  173. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js +1 -1
  174. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.mjs.js.map +1 -1
  175. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js +1 -1
  176. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs.js.map +1 -1
  177. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +1 -1
  178. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +1 -1
  179. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +1 -1
  180. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +1 -1
  181. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +1 -1
  182. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +1 -1
  183. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js +1 -1
  184. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js.map +1 -1
  185. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
  186. package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js.map +1 -1
  187. package/dist/node_modules/@headlessui/react/dist/components/description/description.js +1 -1
  188. package/dist/node_modules/@headlessui/react/dist/components/description/description.js.map +1 -1
  189. package/dist/node_modules/@headlessui/react/dist/components/label/label.js +1 -1
  190. package/dist/node_modules/@headlessui/react/dist/components/label/label.js.map +1 -1
  191. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js +1 -1
  192. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine-glue.js.map +1 -1
  193. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js +1 -1
  194. package/dist/node_modules/@headlessui/react/dist/components/menu/menu-machine.js.map +1 -1
  195. package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js +1 -1
  196. package/dist/node_modules/@headlessui/react/dist/components/menu/menu.js.map +1 -1
  197. package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js +1 -1
  198. package/dist/node_modules/@headlessui/react/dist/components/portal/portal.js.map +1 -1
  199. package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js +1 -1
  200. package/dist/node_modules/@headlessui/react/dist/components/transition/transition.js.map +1 -1
  201. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js +1 -1
  202. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
  203. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js +1 -1
  204. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js.map +1 -1
  205. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js +1 -1
  206. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js.map +1 -1
  207. package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js +1 -1
  208. package/dist/node_modules/@headlessui/react/dist/hooks/use-active-press.js.map +1 -1
  209. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js +1 -1
  210. package/dist/node_modules/@headlessui/react/dist/hooks/use-disposables.js.map +1 -1
  211. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js +1 -1
  212. package/dist/node_modules/@headlessui/react/dist/hooks/use-document-event.js.map +1 -1
  213. package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js +1 -1
  214. package/dist/node_modules/@headlessui/react/dist/hooks/use-element-size.js.map +1 -1
  215. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js +1 -1
  216. package/dist/node_modules/@headlessui/react/dist/hooks/use-event.js.map +1 -1
  217. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js +1 -1
  218. package/dist/node_modules/@headlessui/react/dist/hooks/use-flags.js.map +1 -1
  219. package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js +1 -1
  220. package/dist/node_modules/@headlessui/react/dist/hooks/use-handle-toggle.js.map +1 -1
  221. package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js +1 -1
  222. package/dist/node_modules/@headlessui/react/dist/hooks/use-inert-others.js.map +1 -1
  223. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js +1 -1
  224. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-mounted.js.map +1 -1
  225. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js +1 -1
  226. package/dist/node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js.map +1 -1
  227. package/dist/node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js.map +1 -1
  228. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js +1 -1
  229. package/dist/node_modules/@headlessui/react/dist/hooks/use-latest-value.js.map +1 -1
  230. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js +1 -1
  231. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-disappear.js.map +1 -1
  232. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js +1 -1
  233. package/dist/node_modules/@headlessui/react/dist/hooks/use-on-unmount.js.map +1 -1
  234. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js +1 -1
  235. package/dist/node_modules/@headlessui/react/dist/hooks/use-outside-click.js.map +1 -1
  236. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js +1 -1
  237. package/dist/node_modules/@headlessui/react/dist/hooks/use-owner.js.map +1 -1
  238. package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js +1 -1
  239. package/dist/node_modules/@headlessui/react/dist/hooks/use-quick-release.js.map +1 -1
  240. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js +1 -1
  241. package/dist/node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js.map +1 -1
  242. package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js +1 -1
  243. package/dist/node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js.map +1 -1
  244. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js +1 -1
  245. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
  246. package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js +1 -1
  247. package/dist/node_modules/@headlessui/react/dist/hooks/use-slot.js.map +1 -1
  248. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js +1 -1
  249. package/dist/node_modules/@headlessui/react/dist/hooks/use-sync-refs.js.map +1 -1
  250. package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js +1 -1
  251. package/dist/node_modules/@headlessui/react/dist/hooks/use-text-value.js.map +1 -1
  252. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js +1 -1
  253. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
  254. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js +1 -1
  255. package/dist/node_modules/@headlessui/react/dist/hooks/use-tree-walker.js.map +1 -1
  256. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js +1 -1
  257. package/dist/node_modules/@headlessui/react/dist/hooks/use-window-event.js.map +1 -1
  258. package/dist/node_modules/@headlessui/react/dist/internal/disabled.js.map +1 -1
  259. package/dist/node_modules/@headlessui/react/dist/internal/floating.js +1 -1
  260. package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
  261. package/dist/node_modules/@headlessui/react/dist/internal/id.js.map +1 -1
  262. package/dist/node_modules/@headlessui/react/dist/machine.js +1 -1
  263. package/dist/node_modules/@headlessui/react/dist/machine.js.map +1 -1
  264. package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js +1 -1
  265. package/dist/node_modules/@headlessui/react/dist/machines/stack-machine.js.map +1 -1
  266. package/dist/node_modules/@headlessui/react/dist/react-glue.js +1 -1
  267. package/dist/node_modules/@headlessui/react/dist/react-glue.js.map +1 -1
  268. package/dist/node_modules/@headlessui/react/dist/utils/bugs.js.map +1 -1
  269. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js +1 -1
  270. package/dist/node_modules/@headlessui/react/dist/utils/class-names.js.map +1 -1
  271. package/dist/node_modules/@headlessui/react/dist/utils/default-map.js.map +1 -1
  272. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js +1 -1
  273. package/dist/node_modules/@headlessui/react/dist/utils/disposables.js.map +1 -1
  274. package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js +1 -1
  275. package/dist/node_modules/@headlessui/react/dist/utils/element-movement.js.map +1 -1
  276. package/dist/node_modules/@headlessui/react/dist/utils/env.js.map +1 -1
  277. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js +1 -1
  278. package/dist/node_modules/@headlessui/react/dist/utils/focus-management.js.map +1 -1
  279. package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js +1 -1
  280. package/dist/node_modules/@headlessui/react/dist/utils/get-text-value.js.map +1 -1
  281. package/dist/node_modules/@headlessui/react/dist/utils/match.js +1 -1
  282. package/dist/node_modules/@headlessui/react/dist/utils/match.js.map +1 -1
  283. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js +1 -1
  284. package/dist/node_modules/@headlessui/react/dist/utils/micro-task.js.map +1 -1
  285. package/dist/node_modules/@headlessui/react/dist/utils/owner.js.map +1 -1
  286. package/dist/node_modules/@headlessui/react/dist/utils/render.js +1 -1
  287. package/dist/node_modules/@headlessui/react/dist/utils/render.js.map +1 -1
  288. package/dist/node_modules/@headlessui/react/dist/utils/store.js +1 -1
  289. package/dist/node_modules/@headlessui/react/dist/utils/store.js.map +1 -1
  290. package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js +1 -1
  291. package/dist/node_modules/@react-aria/focus/dist/FocusScope.mjs.js.map +1 -1
  292. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js +1 -1
  293. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.mjs.js.map +1 -1
  294. package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js +1 -1
  295. package/dist/node_modules/@react-aria/interactions/dist/useFocus.mjs.js.map +1 -1
  296. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js +1 -1
  297. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.mjs.js.map +1 -1
  298. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js +1 -1
  299. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.mjs.js.map +1 -1
  300. package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js +1 -1
  301. package/dist/node_modules/@react-aria/interactions/dist/useHover.mjs.js.map +1 -1
  302. package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js +1 -1
  303. package/dist/node_modules/@react-aria/interactions/dist/utils.mjs.js.map +1 -1
  304. package/dist/node_modules/@react-aria/utils/dist/domHelpers.mjs.js.map +1 -1
  305. package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js +1 -1
  306. package/dist/node_modules/@react-aria/utils/dist/platform.mjs.js.map +1 -1
  307. package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js +1 -1
  308. package/dist/node_modules/@react-aria/utils/dist/runAfterTransition.mjs.js.map +1 -1
  309. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js +1 -1
  310. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.mjs.js.map +1 -1
  311. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js +1 -1
  312. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.mjs.js.map +1 -1
  313. package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js +1 -1
  314. package/dist/node_modules/@react-aria/utils/dist/useId.mjs.js.map +1 -1
  315. package/dist/node_modules/@rematch/core/dist/core.esm.js +1 -1
  316. package/dist/node_modules/@rematch/core/dist/core.esm.js.map +1 -1
  317. package/dist/node_modules/@rematch/immer/dist/immer.esm.js +1 -1
  318. package/dist/node_modules/@rematch/immer/dist/immer.esm.js.map +1 -1
  319. package/dist/node_modules/@rematch/select/dist/select.esm.js +1 -1
  320. package/dist/node_modules/@rematch/select/dist/select.esm.js.map +1 -1
  321. package/dist/node_modules/bowser/es5.js +1 -1
  322. package/dist/node_modules/bowser/es5.js.map +1 -1
  323. package/dist/node_modules/ebml-block/index.js +1 -1
  324. package/dist/node_modules/ebml-block/index.js.map +1 -1
  325. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js +1 -1
  326. package/dist/node_modules/engine.io-client/build/esm/contrib/parseuri.js.map +1 -1
  327. package/dist/node_modules/engine.io-client/build/esm/socket.js +1 -1
  328. package/dist/node_modules/engine.io-client/build/esm/socket.js.map +1 -1
  329. package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +1 -1
  330. package/dist/node_modules/engine.io-client/build/esm/transports/polling-xhr.js.map +1 -1
  331. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js +1 -1
  332. package/dist/node_modules/engine.io-client/build/esm/transports/polling.js.map +1 -1
  333. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js +1 -1
  334. package/dist/node_modules/engine.io-client/build/esm/transports/websocket.js.map +1 -1
  335. package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js +1 -1
  336. package/dist/node_modules/engine.io-client/build/esm/transports/webtransport.js.map +1 -1
  337. package/dist/node_modules/engine.io-client/build/esm/util.js +1 -1
  338. package/dist/node_modules/engine.io-client/build/esm/util.js.map +1 -1
  339. package/dist/node_modules/engine.io-parser/build/esm/commons.js +1 -1
  340. package/dist/node_modules/engine.io-parser/build/esm/commons.js.map +1 -1
  341. package/dist/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js.map +1 -1
  342. package/dist/node_modules/engine.io-parser/build/esm/decodePacket.browser.js.map +1 -1
  343. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +1 -1
  344. package/dist/node_modules/engine.io-parser/build/esm/encodePacket.browser.js.map +1 -1
  345. package/dist/node_modules/engine.io-parser/build/esm/index.js +1 -1
  346. package/dist/node_modules/engine.io-parser/build/esm/index.js.map +1 -1
  347. package/dist/node_modules/events/events.js +1 -1
  348. package/dist/node_modules/events/events.js.map +1 -1
  349. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
  350. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
  351. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
  352. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
  353. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
  354. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
  355. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
  356. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
  357. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js +1 -1
  358. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -1
  359. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js +1 -1
  360. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
  361. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js +1 -1
  362. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -1
  363. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +1 -1
  364. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -1
  365. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +1 -1
  366. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
  367. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +1 -1
  368. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -1
  369. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
  370. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
  371. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -1
  372. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
  373. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
  374. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
  375. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
  376. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
  377. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
  378. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
  379. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
  380. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
  381. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
  382. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +1 -1
  383. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -1
  384. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -1
  385. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +1 -1
  386. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -1
  387. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
  388. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
  389. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -1
  390. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +1 -1
  391. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -1
  392. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
  393. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
  394. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +1 -1
  395. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -1
  396. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
  397. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
  398. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -1
  399. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js +1 -1
  400. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js.map +1 -1
  401. package/dist/node_modules/i18next/dist/esm/i18next.js +1 -1
  402. package/dist/node_modules/i18next/dist/esm/i18next.js.map +1 -1
  403. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +1 -1
  404. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -1
  405. package/dist/node_modules/immer/dist/immer.esm.mjs.js +1 -1
  406. package/dist/node_modules/immer/dist/immer.esm.mjs.js.map +1 -1
  407. package/dist/node_modules/int64-buffer/int64-buffer.js.map +1 -1
  408. package/dist/node_modules/js-base64/base64.mjs.js +1 -1
  409. package/dist/node_modules/js-base64/base64.mjs.js.map +1 -1
  410. package/dist/node_modules/mic-check/lib/index.js.map +1 -1
  411. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js +1 -1
  412. package/dist/node_modules/mic-check/lib/requestMediaPermissions.js.map +1 -1
  413. package/dist/node_modules/moment/moment.js +1 -1
  414. package/dist/node_modules/moment/moment.js.map +1 -1
  415. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
  416. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
  417. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
  418. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
  419. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
  420. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +1 -1
  421. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
  422. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js +1 -1
  423. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
  424. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +1 -1
  425. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +1 -1
  426. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +1 -1
  427. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -1
  428. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +1 -1
  429. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -1
  430. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +1 -1
  431. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -1
  432. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js +1 -1
  433. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -1
  434. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
  435. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
  436. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
  437. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
  438. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js +1 -1
  439. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -1
  440. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
  441. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
  442. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
  443. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
  444. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js +1 -1
  445. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js.map +1 -1
  446. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js.map +1 -1
  447. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -1
  448. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js +1 -1
  449. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -1
  450. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
  451. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
  452. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +1 -1
  453. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +1 -1
  454. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
  455. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
  456. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
  457. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
  458. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -1
  459. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
  460. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
  461. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
  462. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
  463. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js +1 -1
  464. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
  465. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +1 -1
  466. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -1
  467. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -1
  468. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +1 -1
  469. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +1 -1
  470. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js +1 -1
  471. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js.map +1 -1
  472. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -1
  473. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -1
  474. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +1 -1
  475. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +1 -1
  476. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js +1 -1
  477. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -1
  478. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
  479. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js +1 -1
  480. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -1
  481. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +1 -1
  482. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -1
  483. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +1 -1
  484. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +1 -1
  485. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +1 -1
  486. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -1
  487. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js +1 -1
  488. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +1 -1
  489. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js +1 -1
  490. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js.map +1 -1
  491. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js +1 -1
  492. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js.map +1 -1
  493. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js +1 -1
  494. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js.map +1 -1
  495. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +1 -1
  496. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
  497. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
  498. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
  499. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
  500. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
  501. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
  502. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
  503. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js +1 -1
  504. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -1
  505. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +1 -1
  506. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -1
  507. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
  508. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
  509. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -1
  510. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -1
  511. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -1
  512. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -1
  513. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -1
  514. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
  515. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
  516. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js +1 -1
  517. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js.map +1 -1
  518. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js +1 -1
  519. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
  520. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
  521. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
  522. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +1 -1
  523. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -1
  524. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -1
  525. package/dist/node_modules/object-assign/index.js +1 -1
  526. package/dist/node_modules/object-assign/index.js.map +1 -1
  527. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +1 -1
  528. package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -1
  529. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  530. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  531. package/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js.map +1 -1
  532. package/dist/node_modules/react-i18next/dist/es/context.js +1 -1
  533. package/dist/node_modules/react-i18next/dist/es/context.js.map +1 -1
  534. package/dist/node_modules/react-i18next/dist/es/defaults.js +1 -1
  535. package/dist/node_modules/react-i18next/dist/es/defaults.js.map +1 -1
  536. package/dist/node_modules/react-i18next/dist/es/useTranslation.js +1 -1
  537. package/dist/node_modules/react-i18next/dist/es/useTranslation.js.map +1 -1
  538. package/dist/node_modules/react-i18next/dist/es/utils.js +1 -1
  539. package/dist/node_modules/react-i18next/dist/es/utils.js.map +1 -1
  540. package/dist/node_modules/react-moment/dist/index.js +1 -1
  541. package/dist/node_modules/react-moment/dist/index.js.map +1 -1
  542. package/dist/node_modules/react-redux/es/components/Context.js +1 -1
  543. package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
  544. package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
  545. package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
  546. package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
  547. package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
  548. package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
  549. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
  550. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
  551. package/dist/node_modules/react-redux/es/utils/useSyncExternalStore.js.map +1 -1
  552. package/dist/node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js.map +1 -1
  553. package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
  554. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js +1 -1
  555. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js.map +1 -1
  556. package/dist/node_modules/redux/es/redux.js +1 -1
  557. package/dist/node_modules/redux/es/redux.js.map +1 -1
  558. package/dist/node_modules/reselect/es/defaultMemoize.js +1 -1
  559. package/dist/node_modules/reselect/es/defaultMemoize.js.map +1 -1
  560. package/dist/node_modules/reselect/es/index.js +1 -1
  561. package/dist/node_modules/reselect/es/index.js.map +1 -1
  562. package/dist/node_modules/sdp/sdp.js +1 -1
  563. package/dist/node_modules/sdp/sdp.js.map +1 -1
  564. package/dist/node_modules/socket.io-client/build/esm/manager.js +1 -1
  565. package/dist/node_modules/socket.io-client/build/esm/manager.js.map +1 -1
  566. package/dist/node_modules/socket.io-client/build/esm/socket.js +1 -1
  567. package/dist/node_modules/socket.io-client/build/esm/socket.js.map +1 -1
  568. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js +1 -1
  569. package/dist/node_modules/socket.io-parser/build/esm/is-binary.js.map +1 -1
  570. package/dist/node_modules/styled-components/dist/styled-components.browser.esm.js +1 -1
  571. package/dist/node_modules/tslib/tslib.es6.js +1 -1
  572. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  573. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -2
  574. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  575. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +2 -2
  576. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -1
  577. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +1 -1
  578. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  579. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +1 -1
  580. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
  581. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js +1 -1
  582. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.development.js.map +1 -1
  583. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js +1 -1
  584. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.js.map +1 -1
  585. package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
  586. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js +1 -1
  587. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLDecoder.js.map +1 -1
  588. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js +1 -1
  589. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLEncoder.js.map +1 -1
  590. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js +1 -1
  591. package/dist/node_modules/webm-duration-fix/lib/ebml/EBMLReader.js.map +1 -1
  592. package/dist/node_modules/webm-duration-fix/lib/ebml/ebmlID.js.map +1 -1
  593. package/dist/node_modules/webm-duration-fix/lib/ebml/index.js.map +1 -1
  594. package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js +1 -1
  595. package/dist/node_modules/webm-duration-fix/lib/ebml/tools-ebml.js.map +1 -1
  596. package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js +1 -1
  597. package/dist/node_modules/webm-duration-fix/lib/ebml/tools.js.map +1 -1
  598. package/dist/node_modules/webm-duration-fix/lib/index.js +1 -1
  599. package/dist/node_modules/webm-duration-fix/lib/index.js.map +1 -1
  600. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js +1 -1
  601. package/dist/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js.map +1 -1
  602. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
  603. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
  604. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
  605. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
  606. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
  607. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
  608. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js +1 -1
  609. package/dist/node_modules/webrtc-adapter/src/js/safari/safari_shim.js.map +1 -1
  610. package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
  611. package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
  612. package/dist/package.json.js +1 -1
  613. package/dist/services/astproxy.js +1 -1
  614. package/dist/services/astproxy.js.map +1 -1
  615. package/dist/services/history_call.js +1 -1
  616. package/dist/services/history_call.js.map +1 -1
  617. package/dist/services/offhour.js +1 -1
  618. package/dist/services/offhour.js.map +1 -1
  619. package/dist/services/phonebook.js +1 -1
  620. package/dist/services/phonebook.js.map +1 -1
  621. package/dist/services/user.js +1 -1
  622. package/dist/services/user.js.map +1 -1
  623. package/dist/services/voicemail.js +1 -1
  624. package/dist/services/voicemail.js.map +1 -1
  625. package/dist/store/index.js +1 -1
  626. package/dist/store/index.js.map +1 -1
  627. package/dist/styles/Island.styles.js +1 -1
  628. package/dist/styles/Island.styles.js.map +1 -1
  629. package/dist/utils/customHooks/useCommittedRef.js +1 -1
  630. package/dist/utils/customHooks/useCommittedRef.js.map +1 -1
  631. package/dist/utils/customHooks/useEventCallback.js +1 -1
  632. package/dist/utils/customHooks/useEventCallback.js.map +1 -1
  633. package/dist/utils/customHooks/useEventListener.js +1 -1
  634. package/dist/utils/customHooks/useEventListener.js.map +1 -1
  635. package/dist/utils/customHooks/useIntersectionObserver.js +1 -1
  636. package/dist/utils/customHooks/useIntersectionObserver.js.map +1 -1
  637. package/dist/utils/customHooks/useLocalStorage.js +1 -1
  638. package/dist/utils/customHooks/useLocalStorage.js.map +1 -1
  639. package/dist/utils/customHooks/useLongPress.js +1 -1
  640. package/dist/utils/customHooks/useLongPress.js.map +1 -1
  641. package/dist/utils/deviceUtils.js +1 -1
  642. package/dist/utils/deviceUtils.js.map +1 -1
  643. package/dist/utils/genericFunctions/checkConnection.js +1 -1
  644. package/dist/utils/genericFunctions/checkConnection.js.map +1 -1
  645. package/dist/utils/genericFunctions/isBackCallVisible.js +1 -1
  646. package/dist/utils/genericFunctions/isBackCallVisible.js.map +1 -1
  647. package/dist/utils/genericFunctions/withTimeout.js +1 -1
  648. package/dist/utils/genericFunctions/withTimeout.js.map +1 -1
  649. package/dist/utils/streaming/getStreamingSourceId.js +1 -1
  650. package/dist/utils/streaming/getStreamingSourceId.js.map +1 -1
  651. package/dist/utils/streaming/isFromStreaming.js +1 -1
  652. package/dist/utils/streaming/isFromStreaming.js.map +1 -1
  653. package/dist/utils/streaming/streamingUtils.js +1 -1
  654. package/dist/utils/streaming/streamingUtils.js.map +1 -1
  655. package/dist/workers/wake_up.js +1 -1
  656. package/dist/workers/wake_up.js.map +1 -1
  657. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./Button.js"),i=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js"),require("../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../node_modules/@babel/runtime/helpers/typeof.js"),require("../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../node_modules/react-i18next/dist/es/context.js");var s=require("../node_modules/react-i18next/dist/es/useTranslation.js");require("../node_modules/@babel/runtime/helpers/slicedToArray.js");var a=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var l=require("./CustomThemedTooltip.js"),r=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),p=require("../node_modules/react-redux/es/hooks/useSelector.js"),c=require("../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(e);exports.default=function(e){e.clickCallback,e.isDestination;var d=e.description,m=e.isPhysicalRecording,f=e.buttonsVariant,h=void 0===f?"transparent":f,g=e.showFullscreenButton,v=void 0!==g&&g,w=e.isExtraLarge,j=void 0!==w&&w,T=e.onToggleExtraLarge,x=p.useSelector((function(e){return e.currentCall})),C=x.transferring,b=x.incoming,E=x.accepted,q=c.useDispatch(),y=p.useSelector((function(e){return e.island})),D=y.isOpen,_=y.sideViewIsVisible,N=y.view,A=p.useSelector((function(e){return e.conference})),F=A.isActive,I=A.conferenceStartedFrom,k=p.useSelector((function(e){return e.currentUser})).username;function S(){b?o.hangupAllExtensions():o.hangupCurrentCall(),setTimeout((function(){q.listen.setUpdateIntrudeStatus(!1,""),q.listen.setUpdateListenStatus(!1,"")}),2e3),C&&setTimeout((function(){q.alerts.setAlert("call_transfered"),a.eventDispatch("phone-island-call-transfer-successfully-popup-open",{}),setTimeout((function(){q.alerts.removeAlert("call_transfered"),a.eventDispatch("phone-island-call-transfer-successfully-popup-close",{})}),2e3)}),300)}var z=s.useTranslation().t,B=D&&E||"waitingConference"===N&&D,L=!C;return u.default.createElement(u.default.Fragment,null,u.default.createElement("div",{className:" ".concat(C?"pi-grid pi-w-full pi-space-x-2 pi-justify-start":"pi-flex pi-justify-center")},u.default.createElement(r.motion.div,{className:"".concat(C&&d?"pi-grid pi-grid-cols-4 pi-ml-4 pi-justify-start":L&&B?"pi-relative pi-flex pi-h-12 pi-w-64 pi-items-center pi-justify-center pi-overflow-hidden":"pi-flex pi-w-12 pi-items-center pi-justify-center"," ")},B&&!v&&u.default.createElement("div",{className:L?"pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1":"pi-grid pi-grid-cols-1"},u.default.createElement(t.Button,{variant:h,onClick:function(){return q.island.handleToggleIsOpen()},"data-tooltip-id":"tooltip-open-close-phone-island","data-tooltip-content":D?z("Tooltip.Collapse")||"":z("Tooltip.Open")||""},u.default.createElement(i.FontAwesomeIcon,{icon:n.faDownLeftAndUpRightToCenter,className:"pi-w-6 pi-h-6"}))),B&&v&&u.default.createElement("div",{className:L?"pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1":"pi-grid pi-grid-cols-1"},u.default.createElement(t.Button,{variant:h,onClick:T,"data-tooltip-id":"tooltip-toggle-fullscreen-hangup","data-tooltip-content":z("streamingAnswer"===N?j?"Tooltip.Decrease":"Tooltip.Increase":"Tooltip.Toggle fullscreen")},u.default.createElement(i.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:j?n.faDownLeftAndUpRightToCenter:n.faUpRightAndDownLeftFromCenter}))),u.default.createElement(t.Button,{onClick:function(){m?(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),o.hangupCurrentPhysicalRecording()):F&&I===k&&"waitingConference"===N?(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),o.endConference()):(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),S())},variant:"red",className:"".concat(C&&d?"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full pi-col-span-2":L&&B?"pi-relative pi-z-10 pi-gap-4 pi-font-medium pi-text-base pi-transition pi-h-12 pi-w-12 pi-min-w-12 pi-overflow-hidden":"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full"),"data-tooltip-id":d&&C||"waitingConference"===N&&F?"tooltip-top-transfer":"tooltip-left-transfer","data-tooltip-content":d&&C?d:"waitingConference"===N&&F?z("Conference.End conference"):"".concat(z("Tooltip.Hangup"))},u.default.createElement(i.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:n.faPhone}),C&&d&&u.default.createElement(r.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},d)),B&&u.default.createElement(t.Button,{variant:h,onClick:function(){return _&&a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),void q.island.setIslandView("settings")},"data-tooltip-id":"tooltip-settings-view","data-tooltip-content":z("Tooltip.Go to settings")||"",className:"".concat(C&&d?"pi-ml-5":L?"pi-absolute pi-right-0 pi-top-0 pi-justify-end":"pi-justify-end pi-ml-16"," pi-flex pi-items-center")},u.default.createElement(i.FontAwesomeIcon,{icon:n.faGear,className:"pi-h-6 pi-w-6"})))),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-left-transfer",place:"left"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-top-transfer",place:"top"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-open-close-phone-island",place:"right"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-settings-view",place:"left"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen-hangup",place:"top"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("./Button.js"),i=require("../node_modules/@fortawesome/react-fontawesome/index.es.js"),n=require("../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../lib/phone/call.js");require("../node_modules/react-redux/es/index.js"),require("../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../node_modules/@babel/runtime/helpers/typeof.js"),require("../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../node_modules/react-i18next/dist/es/context.js");var s=require("../node_modules/react-i18next/dist/es/useTranslation.js");require("../node_modules/@babel/runtime/helpers/slicedToArray.js");var a=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var l=require("./CustomThemedTooltip.js"),r=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),p=require("../node_modules/react-redux/es/hooks/useSelector.js"),c=require("../node_modules/react-redux/es/hooks/useDispatch.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=d(e);exports.default=function(e){e.clickCallback,e.isDestination;var d=e.description,m=e.isPhysicalRecording,f=e.buttonsVariant,h=void 0===f?"transparent":f,g=e.showFullscreenButton,v=void 0!==g&&g,w=e.isExtraLarge,j=void 0!==w&&w,T=e.onToggleExtraLarge,x=p.useSelector(function(e){return e.currentCall}),C=x.transferring,b=x.incoming,E=x.accepted,q=c.useDispatch(),y=p.useSelector(function(e){return e.island}),D=y.isOpen,_=y.sideViewIsVisible,N=y.view,A=p.useSelector(function(e){return e.conference}),F=A.isActive,I=A.conferenceStartedFrom,k=p.useSelector(function(e){return e.currentUser}).username;function S(){b?o.hangupAllExtensions():o.hangupCurrentCall(),setTimeout(function(){q.listen.setUpdateIntrudeStatus(!1,""),q.listen.setUpdateListenStatus(!1,"")},2e3),C&&setTimeout(function(){q.alerts.setAlert("call_transfered"),a.eventDispatch("phone-island-call-transfer-successfully-popup-open",{}),setTimeout(function(){q.alerts.removeAlert("call_transfered"),a.eventDispatch("phone-island-call-transfer-successfully-popup-close",{})},2e3)},300)}var z=s.useTranslation().t,B=D&&E||"waitingConference"===N&&D,L=!C;return u.default.createElement(u.default.Fragment,null,u.default.createElement("div",{className:" ".concat(C?"pi-grid pi-w-full pi-space-x-2 pi-justify-start":"pi-flex pi-justify-center")},u.default.createElement(r.motion.div,{className:"".concat(C&&d?"pi-grid pi-grid-cols-4 pi-ml-4 pi-justify-start":L&&B?"pi-relative pi-flex pi-h-12 pi-w-64 pi-items-center pi-justify-center pi-overflow-hidden":"pi-flex pi-w-12 pi-items-center pi-justify-center"," ")},B&&!v&&u.default.createElement("div",{className:L?"pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1":"pi-grid pi-grid-cols-1"},u.default.createElement(t.Button,{variant:h,onClick:function(){return q.island.handleToggleIsOpen()},"data-tooltip-id":"tooltip-open-close-phone-island","data-tooltip-content":D?z("Tooltip.Collapse")||"":z("Tooltip.Open")||""},u.default.createElement(i.FontAwesomeIcon,{icon:n.faDownLeftAndUpRightToCenter,className:"pi-w-6 pi-h-6"}))),B&&v&&u.default.createElement("div",{className:L?"pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1":"pi-grid pi-grid-cols-1"},u.default.createElement(t.Button,{variant:h,onClick:T,"data-tooltip-id":"tooltip-toggle-fullscreen-hangup","data-tooltip-content":z("streamingAnswer"===N?j?"Tooltip.Decrease":"Tooltip.Increase":"Tooltip.Toggle fullscreen")},u.default.createElement(i.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:j?n.faDownLeftAndUpRightToCenter:n.faUpRightAndDownLeftFromCenter}))),u.default.createElement(t.Button,{onClick:function(){m?(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),o.hangupCurrentPhysicalRecording()):F&&I===k&&"waitingConference"===N?(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),o.endConference()):(a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),S())},variant:"red",className:"".concat(C&&d?"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full pi-col-span-2":L&&B?"pi-relative pi-z-10 pi-gap-4 pi-font-medium pi-text-base pi-transition pi-h-12 pi-w-12 pi-min-w-12 pi-overflow-hidden":"pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full"),"data-tooltip-id":d&&C||"waitingConference"===N&&F?"tooltip-top-transfer":"tooltip-left-transfer","data-tooltip-content":d&&C?d:"waitingConference"===N&&F?z("Conference.End conference"):"".concat(z("Tooltip.Hangup"))},u.default.createElement(i.FontAwesomeIcon,{className:"pi-rotate-135 pi-h-6 pi-w-6",icon:n.faPhone}),C&&d&&u.default.createElement(r.motion.div,{style:{height:"17px"},className:"pi-whitespace-nowrap pi-overflow-hidden"},d)),B&&u.default.createElement(t.Button,{variant:h,onClick:function(){return _&&a.eventDispatch("phone-island-sideview-close",{}),a.eventDispatch("phone-island-transcription-close",{}),void q.island.setIslandView("settings")},"data-tooltip-id":"tooltip-settings-view","data-tooltip-content":z("Tooltip.Go to settings")||"",className:"".concat(C&&d?"pi-ml-5":L?"pi-absolute pi-right-0 pi-top-0 pi-justify-end":"pi-justify-end pi-ml-16"," pi-flex pi-items-center")},u.default.createElement(i.FontAwesomeIcon,{icon:n.faGear,className:"pi-h-6 pi-w-6"})))),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-left-transfer",place:"left"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-top-transfer",place:"top"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-open-close-phone-island",place:"right"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-settings-view",place:"left"}),u.default.createElement(l.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen-hangup",place:"top"}))};
2
2
  //# sourceMappingURL=Hangup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faDownLeftAndUpRightToCenter, faGear, faPhone, faUpRightAndDownLeftFromCenter } from '@fortawesome/free-solid-svg-icons'\nimport { endConference, hangupCurrentCall, hangupCurrentPhysicalRecording } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { hangupAllExtensions } from '../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport { eventDispatch } from '../utils'\nimport { CustomThemedTooltip } from './CustomThemedTooltip'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({\n clickCallback,\n isDestination,\n description,\n isPhysicalRecording,\n buttonsVariant = 'transparent',\n showFullscreenButton = false,\n isExtraLarge = false,\n onToggleExtraLarge,\n}) => {\n const { transferring, incoming, accepted } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n const { isOpen, sideViewIsVisible, view } = useSelector((state: RootState) => state.island)\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username } = useSelector((state: RootState) => state.currentUser)\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n\n // Delay the dispatch actions\n setTimeout(() => {\n dispatch.listen.setUpdateIntrudeStatus(false, '')\n dispatch.listen.setUpdateListenStatus(false, '')\n }, 2000)\n\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n eventDispatch('phone-island-call-transfer-successfully-popup-open', {})\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n eventDispatch('phone-island-call-transfer-successfully-popup-close', {})\n }, 2000)\n }, 300)\n }\n }\n\n const { t } = useTranslation()\n const showSecondaryControls = (isOpen && accepted) || (view === 'waitingConference' && isOpen)\n const useCompactLayout = !transferring\n\n // Helper function to determine tooltip content\n const getToggleTooltipContent = () => {\n if (view === 'streamingAnswer') {\n return isExtraLarge ? t('Tooltip.Decrease') : t('Tooltip.Increase')\n }\n return t('Tooltip.Toggle fullscreen')\n }\n\n // Close side view and open settings view\n const closeSideViewOpenSettings = () => {\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n eventDispatch('phone-island-transcription-close', {})\n dispatch.island.setIslandView('settings')\n }\n\n // Phone island footer section\n return (\n <>\n <div\n className={` ${transferring\n ? 'pi-grid pi-w-full pi-space-x-2 pi-justify-start'\n : 'pi-flex pi-justify-center'\n }`}\n >\n {/* The button to hangup the currentCall */}\n <motion.div\n className={`${transferring && description\n ? 'pi-grid pi-grid-cols-4 pi-ml-4 pi-justify-start'\n : useCompactLayout && showSecondaryControls\n ? 'pi-relative pi-flex pi-h-12 pi-w-64 pi-items-center pi-justify-center pi-overflow-hidden'\n : 'pi-flex pi-w-12 pi-items-center pi-justify-center'\n } `}\n >\n {/* collapse phone island button */}\n {showSecondaryControls && !showFullscreenButton && (\n <div className={useCompactLayout ? 'pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1' : 'pi-grid pi-grid-cols-1'}>\n <Button\n variant={buttonsVariant}\n onClick={() => dispatch.island.handleToggleIsOpen()}\n data-tooltip-id='tooltip-open-close-phone-island'\n data-tooltip-content={\n isOpen ? t('Tooltip.Collapse') || '' : t('Tooltip.Open') || ''\n }\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n </div>\n )}\n\n {/* expand/compress button for streaming */}\n {showSecondaryControls && showFullscreenButton && (\n <div className={useCompactLayout ? 'pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1' : 'pi-grid pi-grid-cols-1'}>\n <Button\n variant={buttonsVariant}\n onClick={onToggleExtraLarge}\n data-tooltip-id='tooltip-toggle-fullscreen-hangup'\n data-tooltip-content={getToggleTooltipContent()}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={isExtraLarge ? faDownLeftAndUpRightToCenter : faUpRightAndDownLeftFromCenter}\n />\n </Button>\n </div>\n )}\n\n <Button\n onClick={() => {\n if (isPhysicalRecording) {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n hangupCurrentPhysicalRecording()\n } else if (isActive) {\n if (conferenceStartedFrom === username && view === 'waitingConference') {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n endConference()\n } else {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n handleHangup()\n }\n } else {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n handleHangup()\n }\n }}\n variant='red'\n className={`${transferring && description\n ? 'pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full pi-col-span-2'\n : useCompactLayout && showSecondaryControls\n ? 'pi-relative pi-z-10 pi-gap-4 pi-font-medium pi-text-base pi-transition pi-h-12 pi-w-12 pi-min-w-12 pi-overflow-hidden'\n : 'pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n }`}\n data-tooltip-id={\n (description && transferring) || (view === 'waitingConference' && isActive)\n ? 'tooltip-top-transfer'\n : 'tooltip-left-transfer'\n }\n data-tooltip-content={\n description && transferring\n ? description\n : view === 'waitingConference' && isActive\n ? t('Conference.End conference')\n : `${t('Tooltip.Hangup')}`\n }\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {transferring && description && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n {description}\n </motion.div>\n )}\n </Button>\n {showSecondaryControls && (\n <Button\n variant={buttonsVariant}\n onClick={() => closeSideViewOpenSettings()}\n data-tooltip-id='tooltip-settings-view'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className={`${transferring && description\n ? 'pi-ml-5'\n : useCompactLayout\n ? 'pi-absolute pi-right-0 pi-top-0 pi-justify-end'\n : 'pi-justify-end pi-ml-16'\n } pi-flex pi-items-center`}\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </Button>\n )}\n </motion.div>\n </div>\n <CustomThemedTooltip className='pi-z-20' id='tooltip-left-transfer' place='left' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-top-transfer' place='top' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-open-close-phone-island' place='right' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-settings-view' place='left' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-toggle-fullscreen-hangup' place='top' />\n </>\n )\n}\n\nexport default Hangup\n\ninterface HangupProps {\n clickCallback?: () => void\n isDestination?: boolean\n description?: any\n isPhysicalRecording?: boolean\n buttonsVariant?:\n | 'transparent'\n | 'default'\n | 'red'\n | 'green'\n | 'neutral'\n | 'transparentSideView'\n | 'transparentSettings'\n showFullscreenButton?: boolean\n isFullscreen?: boolean\n onToggleFullscreen?: () => void\n isExtraLarge?: boolean\n onToggleExtraLarge?: () => void\n}\n"],"names":["_a","clickCallback","isDestination","description","isPhysicalRecording","_b","buttonsVariant","_c","showFullscreenButton","_d","isExtraLarge","onToggleExtraLarge","_e","useSelector","state","currentCall","transferring","incoming","accepted","dispatch","useDispatch","_f","island","isOpen","sideViewIsVisible","view","_g","conference","isActive","conferenceStartedFrom","username","currentUser","handleHangup","hangupAllExtensions","hangupCurrentCall","setTimeout","listen","setUpdateIntrudeStatus","setUpdateListenStatus","alerts","setAlert","eventDispatch","removeAlert","t","useTranslation","showSecondaryControls","useCompactLayout","React","createElement","Fragment","className","concat","motion","div","Button","variant","onClick","handleToggleIsOpen","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","faUpRightAndDownLeftFromCenter","hangupCurrentPhysicalRecording","endConference","faPhone","style","height","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"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"}
1
+ {"version":3,"file":"Hangup.js","sources":["../../src/components/Hangup.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { motion } from 'framer-motion'\nimport { Button } from './Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faDownLeftAndUpRightToCenter, faGear, faPhone, faUpRightAndDownLeftFromCenter } from '@fortawesome/free-solid-svg-icons'\nimport { endConference, hangupCurrentCall, hangupCurrentPhysicalRecording } from '../lib/phone/call'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { RootState } from '../store'\nimport { Dispatch } from '../store'\nimport { hangupAllExtensions } from '../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport { eventDispatch } from '../utils'\nimport { CustomThemedTooltip } from './CustomThemedTooltip'\n\n/**\n * Return the status of the\n */\nconst Hangup: FC<HangupProps> = ({\n clickCallback,\n isDestination,\n description,\n isPhysicalRecording,\n buttonsVariant = 'transparent',\n showFullscreenButton = false,\n isExtraLarge = false,\n onToggleExtraLarge,\n}) => {\n const { transferring, incoming, accepted } = useSelector((state: RootState) => state.currentCall)\n const dispatch = useDispatch<Dispatch>()\n const { isOpen, sideViewIsVisible, view } = useSelector((state: RootState) => state.island)\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username } = useSelector((state: RootState) => state.currentUser)\n\n function handleHangup() {\n if (incoming) {\n hangupAllExtensions()\n } else {\n hangupCurrentCall()\n }\n\n // Delay the dispatch actions\n setTimeout(() => {\n dispatch.listen.setUpdateIntrudeStatus(false, '')\n dispatch.listen.setUpdateListenStatus(false, '')\n }, 2000)\n\n // Show confirmation message when a call is transferred\n if (transferring) {\n setTimeout(() => {\n dispatch.alerts.setAlert('call_transfered')\n eventDispatch('phone-island-call-transfer-successfully-popup-open', {})\n setTimeout(() => {\n dispatch.alerts.removeAlert('call_transfered')\n eventDispatch('phone-island-call-transfer-successfully-popup-close', {})\n }, 2000)\n }, 300)\n }\n }\n\n const { t } = useTranslation()\n const showSecondaryControls = (isOpen && accepted) || (view === 'waitingConference' && isOpen)\n const useCompactLayout = !transferring\n\n // Helper function to determine tooltip content\n const getToggleTooltipContent = () => {\n if (view === 'streamingAnswer') {\n return isExtraLarge ? t('Tooltip.Decrease') : t('Tooltip.Increase')\n }\n return t('Tooltip.Toggle fullscreen')\n }\n\n // Close side view and open settings view\n const closeSideViewOpenSettings = () => {\n if (sideViewIsVisible) {\n eventDispatch('phone-island-sideview-close', {})\n }\n eventDispatch('phone-island-transcription-close', {})\n dispatch.island.setIslandView('settings')\n }\n\n // Phone island footer section\n return (\n <>\n <div\n className={` ${transferring\n ? 'pi-grid pi-w-full pi-space-x-2 pi-justify-start'\n : 'pi-flex pi-justify-center'\n }`}\n >\n {/* The button to hangup the currentCall */}\n <motion.div\n className={`${transferring && description\n ? 'pi-grid pi-grid-cols-4 pi-ml-4 pi-justify-start'\n : useCompactLayout && showSecondaryControls\n ? 'pi-relative pi-flex pi-h-12 pi-w-64 pi-items-center pi-justify-center pi-overflow-hidden'\n : 'pi-flex pi-w-12 pi-items-center pi-justify-center'\n } `}\n >\n {/* collapse phone island button */}\n {showSecondaryControls && !showFullscreenButton && (\n <div className={useCompactLayout ? 'pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1' : 'pi-grid pi-grid-cols-1'}>\n <Button\n variant={buttonsVariant}\n onClick={() => dispatch.island.handleToggleIsOpen()}\n data-tooltip-id='tooltip-open-close-phone-island'\n data-tooltip-content={\n isOpen ? t('Tooltip.Collapse') || '' : t('Tooltip.Open') || ''\n }\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n </div>\n )}\n\n {/* expand/compress button for streaming */}\n {showSecondaryControls && showFullscreenButton && (\n <div className={useCompactLayout ? 'pi-absolute pi-left-0 pi-top-0 pi-grid pi-grid-cols-1' : 'pi-grid pi-grid-cols-1'}>\n <Button\n variant={buttonsVariant}\n onClick={onToggleExtraLarge}\n data-tooltip-id='tooltip-toggle-fullscreen-hangup'\n data-tooltip-content={getToggleTooltipContent()}\n >\n <FontAwesomeIcon\n className='pi-h-6 pi-w-6'\n icon={isExtraLarge ? faDownLeftAndUpRightToCenter : faUpRightAndDownLeftFromCenter}\n />\n </Button>\n </div>\n )}\n\n <Button\n onClick={() => {\n if (isPhysicalRecording) {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n hangupCurrentPhysicalRecording()\n } else if (isActive) {\n if (conferenceStartedFrom === username && view === 'waitingConference') {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n endConference()\n } else {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n handleHangup()\n }\n } else {\n eventDispatch('phone-island-sideview-close', {})\n eventDispatch('phone-island-transcription-close', {})\n handleHangup()\n }\n }}\n variant='red'\n className={`${transferring && description\n ? 'pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full pi-col-span-2'\n : useCompactLayout && showSecondaryControls\n ? 'pi-relative pi-z-10 pi-gap-4 pi-font-medium pi-text-base pi-transition pi-h-12 pi-w-12 pi-min-w-12 pi-overflow-hidden'\n : 'pi-gap-4 pi-font-medium pi-text-base pi-transition pi-min-w-12 pi-w-full'\n }`}\n data-tooltip-id={\n (description && transferring) || (view === 'waitingConference' && isActive)\n ? 'tooltip-top-transfer'\n : 'tooltip-left-transfer'\n }\n data-tooltip-content={\n description && transferring\n ? description\n : view === 'waitingConference' && isActive\n ? t('Conference.End conference')\n : `${t('Tooltip.Hangup')}`\n }\n >\n <FontAwesomeIcon className='pi-rotate-135 pi-h-6 pi-w-6' icon={faPhone} />\n {transferring && description && (\n <motion.div\n style={{ height: '17px' }}\n className='pi-whitespace-nowrap pi-overflow-hidden'\n >\n {description}\n </motion.div>\n )}\n </Button>\n {showSecondaryControls && (\n <Button\n variant={buttonsVariant}\n onClick={() => closeSideViewOpenSettings()}\n data-tooltip-id='tooltip-settings-view'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className={`${transferring && description\n ? 'pi-ml-5'\n : useCompactLayout\n ? 'pi-absolute pi-right-0 pi-top-0 pi-justify-end'\n : 'pi-justify-end pi-ml-16'\n } pi-flex pi-items-center`}\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </Button>\n )}\n </motion.div>\n </div>\n <CustomThemedTooltip className='pi-z-20' id='tooltip-left-transfer' place='left' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-top-transfer' place='top' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-open-close-phone-island' place='right' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-settings-view' place='left' />\n <CustomThemedTooltip className='pi-z-20' id='tooltip-toggle-fullscreen-hangup' place='top' />\n </>\n )\n}\n\nexport default Hangup\n\ninterface HangupProps {\n clickCallback?: () => void\n isDestination?: boolean\n description?: any\n isPhysicalRecording?: boolean\n buttonsVariant?:\n | 'transparent'\n | 'default'\n | 'red'\n | 'green'\n | 'neutral'\n | 'transparentSideView'\n | 'transparentSettings'\n showFullscreenButton?: boolean\n isFullscreen?: boolean\n onToggleFullscreen?: () => void\n isExtraLarge?: boolean\n onToggleExtraLarge?: () => void\n}\n"],"names":["_a","clickCallback","isDestination","description","isPhysicalRecording","_b","buttonsVariant","_c","showFullscreenButton","_d","isExtraLarge","onToggleExtraLarge","_e","useSelector","state","currentCall","transferring","incoming","accepted","dispatch","useDispatch","_f","island","isOpen","sideViewIsVisible","view","_g","conference","isActive","conferenceStartedFrom","username","currentUser","handleHangup","hangupAllExtensions","hangupCurrentCall","setTimeout","listen","setUpdateIntrudeStatus","setUpdateListenStatus","alerts","setAlert","eventDispatch","removeAlert","t","useTranslation","showSecondaryControls","useCompactLayout","React","createElement","Fragment","className","concat","motion","div","Button","variant","onClick","handleToggleIsOpen","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","faUpRightAndDownLeftFromCenter","hangupCurrentPhysicalRecording","endConference","faPhone","style","height","setIslandView","faGear","CustomThemedTooltip","id","place"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../utils/customHooks/useIsomorphicLayoutEffect.js");require("../node_modules/tslib/tslib.es6.js");var r=require("../store/index.js"),i=require("./CallView/index.js"),n=require("./KeypadView/index.js"),l=require("./AudioPlayerView/index.js"),u=require("./AlertGuard.js"),a=require("./CallView/BackCall.js"),s=require("./SideView/SideView.js"),o=require("./ViewsTransition.js"),c=require("./RecorderView/index.js"),d=require("./IslandMotion.js"),f=require("./IslandDrag.js"),w=require("./PhysicalRecorderView/index.js"),p=require("./SettingsView/index.js"),m=require("./SwitchDeviceView/index.js"),V=require("../utils/genericFunctions/isBackCallVisible.js"),v=require("./VideoView/index.js"),y=require("./ConferenceView/index.js"),E=require("./ContactView/ContactListView.js"),j=require("./StreamingAnswerView/index.js"),h=require("./OperatorBusyView/index.js"),g=require("./TranscriptionView/TranscriptionView.js"),q=require("../node_modules/react-redux/es/hooks/useSelector.js"),S=require("../node_modules/react-redux/es/hooks/useDispatch.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=x(e),R=function(x){var R=x.showAlways,b=x.uaType;x.urlParamWithEvent;var A=q.useSelector((function(e){return e.currentCall})),I=A.incoming,P=A.accepted,k=A.outgoing,B=q.useSelector((function(e){return e.island})),D=B.view,T=B.sideViewIsVisible,_=B.transcriptionViewIsVisible,L=B.avoidToShow,O=B.previousView,F=q.useSelector((function(e){return{recording:e.physicalRecorder.recording}})).recording,K=q.useSelector((function(e){return e.alerts.status})).activeAlertsCount,M=q.useSelector((function(e){return e.player})).audioPlayerLoop,N=q.useSelector((function(e){return e.conference})).isActive,W=q.useSelector((function(e){return e.currentUser})),G=W.default_device,U=W.endpoints,z=W.username,H=q.useSelector((function(e){return e.users})).extensions,J=e.useRef(null),Q=S.useDispatch(),X=e.useRef(null),Y=e.useRef(null),Z=e.useRef(null);t.useIsomorphicLayoutEffect((function(){Q.player.updatePlayer({audioPlayer:X,localAudio:Y,remoteAudio:Z})}),[]),e.useEffect((function(){var e=r.store.getState().conference,t=e.isActive,i=e.conferenceStartedFrom,n=e.isOwnerInside,l=r.store.getState().currentUser.username;(I||k)&&t&&i===l&&n?Q.island.setIslandView("waitingConference"):!I&&!k||L||Q.island.setIslandView("call")}),[I,k,L,N]),e.useEffect((function(){F&&Q.island.setIslandView("physicalPhoneRecorder")}),[D]);var $=e.useState(""),ee=$[0],te=$[1];e.useEffect((function(){setTimeout((function(){te(D)}),200)}),[D]);var re,ie=function(){if(!H||!z)return!1;var e=Object.values(H).filter((function(e){return(null==e?void 0:e.username)===z}));return null==e?void 0:e.some((function(e){var t=null==U?void 0:U.extension.find((function(t){return t.id===(null==e?void 0:e.exten)}));return"nethlink"===(null==t?void 0:t.type)&&"offline"!==(null==e?void 0:e.status)}))};return C.default.createElement("div",{ref:J,className:"pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000"},(I||k||P||R||K>0||"player"===D||"recorder"===D||"physicalPhoneRecorder"===D||"waitingConference"===D&&N||"transfer"===D&&N||"settings"===D&&N||"operatorBusy"===D&&("mobile"===b&&ie()||"desktop"===b&&("webrtc"===(null==G?void 0:G.type)||void 0===(null==G?void 0:G.type)&&!ie()||!ie()&&"physical"===(null==G?void 0:G.type)))||"settings"===D&&("recorder"===O||"player"===O))&&!L&&C.default.createElement(C.default.Fragment,null,C.default.createElement(f.IslandDrag,{islandContainerRef:J},C.default.createElement(a.default,{isVisible:V.isBackCallActive()}),C.default.createElement(s.default,{isVisible:T,uaType:b}),C.default.createElement(g.default,{isVisible:_}),C.default.createElement(d.IslandMotion,null,C.default.createElement(u.AlertGuard,{uaType:b},(re={call:i.default?C.default.createElement(i.default,null):null,keypad:n.default?C.default.createElement(n.default,null):null,transfer:E.ContactListView?C.default.createElement(E.ContactListView,null):null,player:l.KeypadView?C.default.createElement(l.KeypadView,null):null,recorder:c.RecorderView?C.default.createElement(c.RecorderView,null):null,physicalPhoneRecorder:w.PhysicalRecorderView?C.default.createElement(w.PhysicalRecorderView,null):null,settings:p.SettingsView?C.default.createElement(p.SettingsView,null):null,video:v.VideoView?C.default.createElement(v.VideoView,null):null,switchDevice:m.SwitchDeviceView?C.default.createElement(m.SwitchDeviceView,null):null,waitingConference:y.WaitingConferenceView?C.default.createElement(y.WaitingConferenceView,null):null,streamingAnswer:j.StreamingAnswerView?C.default.createElement(j.StreamingAnswerView,null):null,operatorBusy:h.OperatorBusyView?C.default.createElement(h.OperatorBusyView,null):null},ee in re&&re[ee]?C.default.createElement(o.default,{forView:ee},re[ee]):C.default.createElement(C.default.Fragment,null)))))),C.default.createElement("div",{className:"pi-hidden"},C.default.createElement("audio",{loop:M,ref:X}),C.default.createElement("audio",{muted:!0,ref:Y}),C.default.createElement("audio",{autoPlay:!0,ref:Z})))};R.displayName="Island",exports.Island=R;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var t=require("../utils/customHooks/useIsomorphicLayoutEffect.js");require("../node_modules/tslib/tslib.es6.js");var r=require("../store/index.js"),i=require("./CallView/index.js"),n=require("./KeypadView/index.js"),l=require("./AudioPlayerView/index.js"),u=require("./AlertGuard.js"),a=require("./CallView/BackCall.js"),s=require("./SideView/SideView.js"),o=require("./ViewsTransition.js"),c=require("./RecorderView/index.js"),d=require("./IslandMotion.js"),f=require("./IslandDrag.js"),w=require("./PhysicalRecorderView/index.js"),p=require("./SettingsView/index.js"),m=require("./SwitchDeviceView/index.js"),V=require("../utils/genericFunctions/isBackCallVisible.js"),v=require("./VideoView/index.js"),y=require("./ConferenceView/index.js"),E=require("./ContactView/ContactListView.js"),j=require("./StreamingAnswerView/index.js"),h=require("./OperatorBusyView/index.js"),g=require("./TranscriptionView/TranscriptionView.js"),q=require("../node_modules/react-redux/es/hooks/useSelector.js"),S=require("../node_modules/react-redux/es/hooks/useDispatch.js");function x(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var C=x(e),R=function(x){var R=x.showAlways,b=x.uaType;x.urlParamWithEvent;var A=q.useSelector(function(e){return e.currentCall}),I=A.incoming,P=A.accepted,k=A.outgoing,B=q.useSelector(function(e){return e.island}),D=B.view,T=B.sideViewIsVisible,_=B.transcriptionViewIsVisible,L=B.avoidToShow,O=B.previousView,F=q.useSelector(function(e){return{recording:e.physicalRecorder.recording}}).recording,K=q.useSelector(function(e){return e.alerts.status}).activeAlertsCount,M=q.useSelector(function(e){return e.player}).audioPlayerLoop,N=q.useSelector(function(e){return e.conference}).isActive,W=q.useSelector(function(e){return e.currentUser}),G=W.default_device,U=W.endpoints,z=W.username,H=q.useSelector(function(e){return e.users}).extensions,J=e.useRef(null),Q=S.useDispatch(),X=e.useRef(null),Y=e.useRef(null),Z=e.useRef(null);t.useIsomorphicLayoutEffect(function(){Q.player.updatePlayer({audioPlayer:X,localAudio:Y,remoteAudio:Z})},[]),e.useEffect(function(){var e=r.store.getState().conference,t=e.isActive,i=e.conferenceStartedFrom,n=e.isOwnerInside,l=r.store.getState().currentUser.username;(I||k)&&t&&i===l&&n?Q.island.setIslandView("waitingConference"):!I&&!k||L||Q.island.setIslandView("call")},[I,k,L,N]),e.useEffect(function(){F&&Q.island.setIslandView("physicalPhoneRecorder")},[D]);var $=e.useState(""),ee=$[0],te=$[1];e.useEffect(function(){setTimeout(function(){te(D)},200)},[D]);var re,ie=function(){if(!H||!z)return!1;var e=Object.values(H).filter(function(e){return(null==e?void 0:e.username)===z});return null==e?void 0:e.some(function(e){var t=null==U?void 0:U.extension.find(function(t){return t.id===(null==e?void 0:e.exten)});return"nethlink"===(null==t?void 0:t.type)&&"offline"!==(null==e?void 0:e.status)})};return C.default.createElement("div",{ref:J,className:"pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000"},(I||k||P||R||K>0||"player"===D||"recorder"===D||"physicalPhoneRecorder"===D||"waitingConference"===D&&N||"transfer"===D&&N||"settings"===D&&N||"operatorBusy"===D&&("mobile"===b&&ie()||"desktop"===b&&("webrtc"===(null==G?void 0:G.type)||void 0===(null==G?void 0:G.type)&&!ie()||!ie()&&"physical"===(null==G?void 0:G.type)))||"settings"===D&&("recorder"===O||"player"===O))&&!L&&C.default.createElement(C.default.Fragment,null,C.default.createElement(f.IslandDrag,{islandContainerRef:J},C.default.createElement(a.default,{isVisible:V.isBackCallActive()}),C.default.createElement(s.default,{isVisible:T,uaType:b}),C.default.createElement(g.default,{isVisible:_}),C.default.createElement(d.IslandMotion,null,C.default.createElement(u.AlertGuard,{uaType:b},(re={call:i.default?C.default.createElement(i.default,null):null,keypad:n.default?C.default.createElement(n.default,null):null,transfer:E.ContactListView?C.default.createElement(E.ContactListView,null):null,player:l.KeypadView?C.default.createElement(l.KeypadView,null):null,recorder:c.RecorderView?C.default.createElement(c.RecorderView,null):null,physicalPhoneRecorder:w.PhysicalRecorderView?C.default.createElement(w.PhysicalRecorderView,null):null,settings:p.SettingsView?C.default.createElement(p.SettingsView,null):null,video:v.VideoView?C.default.createElement(v.VideoView,null):null,switchDevice:m.SwitchDeviceView?C.default.createElement(m.SwitchDeviceView,null):null,waitingConference:y.WaitingConferenceView?C.default.createElement(y.WaitingConferenceView,null):null,streamingAnswer:j.StreamingAnswerView?C.default.createElement(j.StreamingAnswerView,null):null,operatorBusy:h.OperatorBusyView?C.default.createElement(h.OperatorBusyView,null):null},ee in re&&re[ee]?C.default.createElement(o.default,{forView:ee},re[ee]):C.default.createElement(C.default.Fragment,null)))))),C.default.createElement("div",{className:"pi-hidden"},C.default.createElement("audio",{loop:M,ref:X}),C.default.createElement("audio",{muted:!0,ref:Y}),C.default.createElement("audio",{autoPlay:!0,ref:Z})))};R.displayName="Island",exports.Island=R;
2
2
  //# sourceMappingURL=Island.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useEffect, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport { useIsomorphicLayoutEffect } from '../utils'\nimport CallView from './CallView'\nimport KeyboardView from './KeypadView'\nimport AudioPlayerView from './AudioPlayerView'\nimport { AlertGuard } from './AlertGuard'\nimport BackCall from './CallView/BackCall'\nimport SideView from './SideView/SideView'\nimport ViewsTransition from './ViewsTransition'\nimport { RecorderView } from './RecorderView'\nimport IslandMotions from './IslandMotion'\nimport IslandDrag from './IslandDrag'\nimport { PhysicalRecorderView } from './PhysicalRecorderView'\nimport { SettingsView } from './SettingsView'\nimport { SwitchDeviceView } from './SwitchDeviceView'\nimport { isBackCallActive } from '../utils/genericFunctions/isBackCallVisible'\nimport VideoView from './VideoView'\nimport { WaitingConferenceView } from './ConferenceView'\nimport { store } from '../store'\nimport { ContactListView } from './ContactView/ContactListView'\nimport StreamingAnswerView from './StreamingAnswerView'\nimport { OperatorBusyView } from './OperatorBusyView'\nimport { TranscriptionView } from './TranscriptionView'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n */\nexport const Island: FC<IslandProps> = ({ showAlways, uaType, urlParamWithEvent }) => {\n // Get the currentCall info\n const { incoming, accepted, outgoing } = useSelector((state: RootState) => state.currentCall)\n\n const { view, sideViewIsVisible, transcriptionViewIsVisible, avoidToShow, previousView } =\n useSelector((state: RootState) => state.island)\n const { recording } = useSelector((state: RootState) => ({\n recording: state.physicalRecorder.recording,\n }))\n\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n\n // Get audioPlayerLoop value from player store\n const { audioPlayerLoop } = useSelector((state: RootState) => state.player)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n // Get user information for device logic\n const { default_device, endpoints, username } = useSelector(\n (state: RootState) => state.currentUser,\n )\n const { extensions } = useSelector((state: RootState) => state.users)\n\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer,\n localAudio: localAudio,\n remoteAudio: remoteAudio,\n })\n }, [])\n\n // Handle and apply view switch logic\n // ...set callview as the current view\n useEffect(() => {\n const { isActive, conferenceStartedFrom, isOwnerInside } = store.getState().conference\n const { username } = store.getState().currentUser\n // Check and switch the view\n if ((incoming || outgoing) && isActive && conferenceStartedFrom === username && isOwnerInside) {\n dispatch.island.setIslandView('waitingConference')\n } else if ((incoming || outgoing) && !avoidToShow) {\n dispatch.island.setIslandView('call')\n }\n }, [incoming, outgoing, avoidToShow, isActive])\n\n useEffect(() => {\n if (recording) {\n dispatch.island.setIslandView('physicalPhoneRecorder')\n }\n }, [view])\n\n const [currentView, setCurrentView] = useState<any>('')\n\n // Handle island view change\n useEffect(() => {\n setTimeout(() => {\n setCurrentView(view)\n }, 200)\n }, [view])\n\n // Check if there's an online NethLink device\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((endpoint) => endpoint.id === ext?.exten)\n return endpointExtension?.type === 'nethlink' && ext?.status !== 'offline'\n })\n }\n\n return (\n <div\n ref={islandContainerRef}\n className='pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000'\n >\n {(incoming ||\n outgoing ||\n accepted ||\n showAlways ||\n activeAlertsCount > 0 ||\n view === 'player' ||\n view === 'recorder' ||\n view === 'physicalPhoneRecorder' ||\n (view === 'waitingConference' && isActive) ||\n (view === 'transfer' && isActive) ||\n (view === 'settings' && isActive) ||\n (view === 'operatorBusy' &&\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 (view === 'settings' && (previousView === 'recorder' || previousView === 'player'))) &&\n !avoidToShow && (\n <>\n <IslandDrag islandContainerRef={islandContainerRef}>\n {/* Add background call visibility logic */}\n <BackCall isVisible={isBackCallActive()} />\n <SideView isVisible={sideViewIsVisible} uaType={uaType} />\n <TranscriptionView isVisible={transcriptionViewIsVisible} />\n <IslandMotions>\n {/* The views logic */}\n <AlertGuard uaType={uaType}>\n {(() => {\n const views = {\n call: CallView ? <CallView /> : null,\n keypad: KeyboardView ? <KeyboardView /> : null,\n transfer: ContactListView ? <ContactListView /> : null,\n player: AudioPlayerView ? <AudioPlayerView /> : null,\n recorder: RecorderView ? <RecorderView /> : null,\n physicalPhoneRecorder: PhysicalRecorderView ? <PhysicalRecorderView /> : null,\n settings: SettingsView ? <SettingsView /> : null,\n video: VideoView ? <VideoView /> : null,\n switchDevice: SwitchDeviceView ? <SwitchDeviceView /> : null,\n waitingConference: WaitingConferenceView ? <WaitingConferenceView /> : null,\n streamingAnswer: StreamingAnswerView ? <StreamingAnswerView /> : null,\n operatorBusy: OperatorBusyView ? <OperatorBusyView /> : null,\n }\n\n return currentView in views && views[currentView as keyof typeof views] ? (\n <ViewsTransition forView={currentView}>\n {views[currentView as keyof typeof views]}\n </ViewsTransition>\n ) : (\n <></>\n )\n })()}\n </AlertGuard>\n </IslandMotions>\n </IslandDrag>\n </>\n )}\n <div className='pi-hidden'>\n <audio loop={audioPlayerLoop} ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n uaType?: string\n urlParamWithEvent?: boolean\n}\n"],"names":["Island","_a","showAlways","uaType","urlParamWithEvent","_b","useSelector","state","currentCall","incoming","accepted","outgoing","_c","island","view","sideViewIsVisible","transcriptionViewIsVisible","avoidToShow","previousView","recording","physicalRecorder","activeAlertsCount","alerts","status","audioPlayerLoop","player","isActive","conference","_d","currentUser","default_device","endpoints","username","extensions","users","islandContainerRef","useRef","dispatch","useDispatch","audioPlayer","localAudio","remoteAudio","useIsomorphicLayoutEffect","updatePlayer","useEffect","store","getState","conferenceStartedFrom","isOwnerInside","setIslandView","_e","useState","currentView","setCurrentView","setTimeout","views","hasOnlineNethlink","userExtensions","Object","values","filter","ext","some","endpointExtension","extension","find","endpoint","id","exten","type","React","ref","className","undefined","createElement","Fragment","IslandDrag","BackCall","isVisible","isBackCallActive","SideView","TranscriptionView","IslandMotions","AlertGuard","call","CallView","keypad","KeyboardView","transfer","ContactListView","AudioPlayerView","KeypadView","recorder","RecorderView","physicalPhoneRecorder","PhysicalRecorderView","settings","SettingsView","video","VideoView","switchDevice","SwitchDeviceView","waitingConference","WaitingConferenceView","streamingAnswer","StreamingAnswerView","operatorBusy","OperatorBusyView","ViewsTransition","forView","loop","muted","autoPlay","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useEffect, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport { useIsomorphicLayoutEffect } from '../utils'\nimport CallView from './CallView'\nimport KeyboardView from './KeypadView'\nimport AudioPlayerView from './AudioPlayerView'\nimport { AlertGuard } from './AlertGuard'\nimport BackCall from './CallView/BackCall'\nimport SideView from './SideView/SideView'\nimport ViewsTransition from './ViewsTransition'\nimport { RecorderView } from './RecorderView'\nimport IslandMotions from './IslandMotion'\nimport IslandDrag from './IslandDrag'\nimport { PhysicalRecorderView } from './PhysicalRecorderView'\nimport { SettingsView } from './SettingsView'\nimport { SwitchDeviceView } from './SwitchDeviceView'\nimport { isBackCallActive } from '../utils/genericFunctions/isBackCallVisible'\nimport VideoView from './VideoView'\nimport { WaitingConferenceView } from './ConferenceView'\nimport { store } from '../store'\nimport { ContactListView } from './ContactView/ContactListView'\nimport StreamingAnswerView from './StreamingAnswerView'\nimport { OperatorBusyView } from './OperatorBusyView'\nimport { TranscriptionView } from './TranscriptionView'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n */\nexport const Island: FC<IslandProps> = ({ showAlways, uaType, urlParamWithEvent }) => {\n // Get the currentCall info\n const { incoming, accepted, outgoing } = useSelector((state: RootState) => state.currentCall)\n\n const { view, sideViewIsVisible, transcriptionViewIsVisible, avoidToShow, previousView } =\n useSelector((state: RootState) => state.island)\n const { recording } = useSelector((state: RootState) => ({\n recording: state.physicalRecorder.recording,\n }))\n\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n\n // Get audioPlayerLoop value from player store\n const { audioPlayerLoop } = useSelector((state: RootState) => state.player)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n // Get user information for device logic\n const { default_device, endpoints, username } = useSelector(\n (state: RootState) => state.currentUser,\n )\n const { extensions } = useSelector((state: RootState) => state.users)\n\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer,\n localAudio: localAudio,\n remoteAudio: remoteAudio,\n })\n }, [])\n\n // Handle and apply view switch logic\n // ...set callview as the current view\n useEffect(() => {\n const { isActive, conferenceStartedFrom, isOwnerInside } = store.getState().conference\n const { username } = store.getState().currentUser\n // Check and switch the view\n if ((incoming || outgoing) && isActive && conferenceStartedFrom === username && isOwnerInside) {\n dispatch.island.setIslandView('waitingConference')\n } else if ((incoming || outgoing) && !avoidToShow) {\n dispatch.island.setIslandView('call')\n }\n }, [incoming, outgoing, avoidToShow, isActive])\n\n useEffect(() => {\n if (recording) {\n dispatch.island.setIslandView('physicalPhoneRecorder')\n }\n }, [view])\n\n const [currentView, setCurrentView] = useState<any>('')\n\n // Handle island view change\n useEffect(() => {\n setTimeout(() => {\n setCurrentView(view)\n }, 200)\n }, [view])\n\n // Check if there's an online NethLink device\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((endpoint) => endpoint.id === ext?.exten)\n return endpointExtension?.type === 'nethlink' && ext?.status !== 'offline'\n })\n }\n\n return (\n <div\n ref={islandContainerRef}\n className='pi-absolute pi-min-w-full pi-min-h-full pi-left-0 pi-top-0 pi-overflow-hidden pi-pointer-events-none pi-flex pi-items-center pi-justify-center pi-content-center pi-phone-island-container pi-z-1000'\n >\n {(incoming ||\n outgoing ||\n accepted ||\n showAlways ||\n activeAlertsCount > 0 ||\n view === 'player' ||\n view === 'recorder' ||\n view === 'physicalPhoneRecorder' ||\n (view === 'waitingConference' && isActive) ||\n (view === 'transfer' && isActive) ||\n (view === 'settings' && isActive) ||\n (view === 'operatorBusy' &&\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 (view === 'settings' && (previousView === 'recorder' || previousView === 'player'))) &&\n !avoidToShow && (\n <>\n <IslandDrag islandContainerRef={islandContainerRef}>\n {/* Add background call visibility logic */}\n <BackCall isVisible={isBackCallActive()} />\n <SideView isVisible={sideViewIsVisible} uaType={uaType} />\n <TranscriptionView isVisible={transcriptionViewIsVisible} />\n <IslandMotions>\n {/* The views logic */}\n <AlertGuard uaType={uaType}>\n {(() => {\n const views = {\n call: CallView ? <CallView /> : null,\n keypad: KeyboardView ? <KeyboardView /> : null,\n transfer: ContactListView ? <ContactListView /> : null,\n player: AudioPlayerView ? <AudioPlayerView /> : null,\n recorder: RecorderView ? <RecorderView /> : null,\n physicalPhoneRecorder: PhysicalRecorderView ? <PhysicalRecorderView /> : null,\n settings: SettingsView ? <SettingsView /> : null,\n video: VideoView ? <VideoView /> : null,\n switchDevice: SwitchDeviceView ? <SwitchDeviceView /> : null,\n waitingConference: WaitingConferenceView ? <WaitingConferenceView /> : null,\n streamingAnswer: StreamingAnswerView ? <StreamingAnswerView /> : null,\n operatorBusy: OperatorBusyView ? <OperatorBusyView /> : null,\n }\n\n return currentView in views && views[currentView as keyof typeof views] ? (\n <ViewsTransition forView={currentView}>\n {views[currentView as keyof typeof views]}\n </ViewsTransition>\n ) : (\n <></>\n )\n })()}\n </AlertGuard>\n </IslandMotions>\n </IslandDrag>\n </>\n )}\n <div className='pi-hidden'>\n <audio loop={audioPlayerLoop} ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n uaType?: string\n urlParamWithEvent?: boolean\n}\n"],"names":["Island","_a","showAlways","uaType","urlParamWithEvent","_b","useSelector","state","currentCall","incoming","accepted","outgoing","_c","island","view","sideViewIsVisible","transcriptionViewIsVisible","avoidToShow","previousView","recording","physicalRecorder","activeAlertsCount","alerts","status","audioPlayerLoop","player","isActive","conference","_d","currentUser","default_device","endpoints","username","extensions","users","islandContainerRef","useRef","dispatch","useDispatch","audioPlayer","localAudio","remoteAudio","useIsomorphicLayoutEffect","updatePlayer","useEffect","store","getState","conferenceStartedFrom","isOwnerInside","setIslandView","_e","useState","currentView","setCurrentView","setTimeout","views","hasOnlineNethlink","userExtensions","Object","values","filter","ext","some","endpointExtension","extension","find","endpoint","id","exten","type","React","ref","className","undefined","createElement","Fragment","IslandDrag","BackCall","isVisible","isBackCallActive","SideView","TranscriptionView","IslandMotions","AlertGuard","call","CallView","keypad","KeyboardView","transfer","ContactListView","AudioPlayerView","KeypadView","recorder","RecorderView","physicalPhoneRecorder","PhysicalRecorderView","settings","SettingsView","video","VideoView","switchDevice","SwitchDeviceView","waitingConference","WaitingConferenceView","streamingAnswer","StreamingAnswerView","operatorBusy","OperatorBusyView","ViewsTransition","forView","loop","muted","autoPlay","displayName"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../store/index.js");require("../node_modules/react-redux/es/index.js");var o=require("../utils/customHooks/useEventListener.js"),s=require("../utils/customHooks/useLocalStorage.js"),n=require("../utils/customHooks/useLongPress.js"),i=require("../utils/genericFunctions/styleTransformValues.js"),a=require("../lib/island/island.js"),u=require("../node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js"),l=require("../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js"),d=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),c=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=p(t),g=function(p){var g=p.children,v=p.islandContainerRef,j=c.useSelector((function(e){return e.island})).startPosition,x=t.useState(!1),h=x[0],y=x[1],_=m.useDispatch(),q=u.useDragControls(),b=l.useAnimation(),S=s.useLocalStorage("phone-island",null),D=S[0],P=S[1],L=t.useRef(null),k=t.useState(D&&D.position?D.position:null),C=k[0],w=k[1];o.useEventListener("phone-island-reset-position",(function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return localStorage.removeItem("phone-island"),w(null),[4,b.start({x:j.x,y:j.y,transition:{duration:.3,ease:"easeOut"}})];case 1:return e.sent(),[2]}}))}))}));var E=n.useLongPress((function(){}),(function(e){var t,o;if(e&&e.target){var s=e.target;if(s.closest('[data-stop-propagation="true"]')||s.hasAttribute("data-stop-propagation"))return}!(null===(o=null===(t=null===r.store||void 0===r.store?void 0:r.store.getState())||void 0===t?void 0:t.island)||void 0===o?void 0:o.isOpen)&&_.island.handleToggleIsOpen()}),h,(function(){return y(!1)}),{shouldPreventDefault:!0,delay:250});return f.default.createElement(d.motion.div,e.__assign({drag:!0,onPointerDown:function(e){var t=e.target;t.closest('[data-stop-propagation="true"]')||t.hasAttribute("data-stop-propagation")||q.start(e)},onDragStart:function(){y(!0)},dragTransition:{power:0,timeConstant:300},initial:{x:(null==C?void 0:C.x)||j.x,y:(null==C?void 0:C.y)||j.y},animate:b,dragControls:q,dragListener:!1,dragConstraints:v,onDragEnd:function(){if(L.current){var e=i.styleTransformValues(L.current),t=e.x,r=e.y;t=a.xPosition(Math.round(t),L.current,v.current),r=a.yPosition(Math.round(r),L.current,v.current),P({position:{x:t,y:r}}),w({x:t,y:r})}},ref:L},E,{className:"pi-absolute"}),g&&g)};exports.IslandDrag=g,exports.default=g;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../store/index.js");require("../node_modules/react-redux/es/index.js");var o=require("../utils/customHooks/useEventListener.js"),s=require("../utils/customHooks/useLocalStorage.js"),n=require("../utils/customHooks/useLongPress.js"),i=require("../utils/genericFunctions/styleTransformValues.js"),a=require("../lib/island/island.js"),u=require("../node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js"),l=require("../node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js"),d=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),c=require("../node_modules/react-redux/es/hooks/useSelector.js"),m=require("../node_modules/react-redux/es/hooks/useDispatch.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=p(t),g=function(p){var g=p.children,v=p.islandContainerRef,j=c.useSelector(function(e){return e.island}).startPosition,x=t.useState(!1),h=x[0],y=x[1],_=m.useDispatch(),q=u.useDragControls(),b=l.useAnimation(),S=s.useLocalStorage("phone-island",null),D=S[0],P=S[1],L=t.useRef(null),k=t.useState(D&&D.position?D.position:null),C=k[0],w=k[1];o.useEventListener("phone-island-reset-position",function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(e){switch(e.label){case 0:return localStorage.removeItem("phone-island"),w(null),[4,b.start({x:j.x,y:j.y,transition:{duration:.3,ease:"easeOut"}})];case 1:return e.sent(),[2]}})})});var E=n.useLongPress(function(){},function(e){var t,o;if(e&&e.target){var s=e.target;if(s.closest('[data-stop-propagation="true"]')||s.hasAttribute("data-stop-propagation"))return}!(null===(o=null===(t=null===r.store||void 0===r.store?void 0:r.store.getState())||void 0===t?void 0:t.island)||void 0===o?void 0:o.isOpen)&&_.island.handleToggleIsOpen()},h,function(){return y(!1)},{shouldPreventDefault:!0,delay:250});return f.default.createElement(d.motion.div,e.__assign({drag:!0,onPointerDown:function(e){var t=e.target;t.closest('[data-stop-propagation="true"]')||t.hasAttribute("data-stop-propagation")||q.start(e)},onDragStart:function(){y(!0)},dragTransition:{power:0,timeConstant:300},initial:{x:(null==C?void 0:C.x)||j.x,y:(null==C?void 0:C.y)||j.y},animate:b,dragControls:q,dragListener:!1,dragConstraints:v,onDragEnd:function(){if(L.current){var e=i.styleTransformValues(L.current),t=e.x,r=e.y;t=a.xPosition(Math.round(t),L.current,v.current),r=a.yPosition(Math.round(r),L.current,v.current),P({position:{x:t,y:r}}),w({x:t,y:r})}},ref:L},E,{className:"pi-absolute"}),g&&g)};exports.IslandDrag=g,exports.default=g;
2
2
  //# sourceMappingURL=IslandDrag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IslandDrag.js","sources":["../../src/components/IslandDrag.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useState, useRef, MutableRefObject } from 'react'\nimport { RootState, Dispatch, store } from '../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { motion, useDragControls, useAnimation } from 'framer-motion'\nimport { useLongPress, useLocalStorage, styleTransformValues, useEventListener } from '../utils'\nimport { xPosition, yPosition } from '../lib/island/island'\n\nexport const IslandDrag: FC<IslandDragProps> = ({ children, islandContainerRef }) => {\n const { startPosition } = useSelector((state: RootState) => state.island)\n\n // Initialize the moved property\n const [moved, setMoved] = useState<boolean>(false)\n\n // Initialize dispatch\n const dispatch = useDispatch<Dispatch>()\n\n // Initialize Island drag controls\n const controls = useDragControls()\n\n // Initialize animation controls for reset functionality\n const animationControls = useAnimation()\n\n // Initialize Island storage\n const [phoneIslandStorage, setPhoneIslandStorage] =\n useLocalStorage<PhoneIslandStorageTypes | null>('phone-island', null)\n\n // The Island reference\n const islandRef = useRef<any>(null)\n\n // Initialize position or get from storage\n const [position, setPosition] = useState<PositionTypes | null>(\n phoneIslandStorage && phoneIslandStorage.position ? phoneIslandStorage.position : null,\n )\n\n // Handles reset position to default\n const handleResetPosition = async () => {\n // Clear localStorage\n localStorage.removeItem('phone-island')\n \n // Reset position state\n setPosition(null)\n \n // Animate back to default position\n await animationControls.start({\n x: startPosition.x,\n y: startPosition.y,\n transition: {\n duration: 0.3,\n ease: 'easeOut',\n },\n })\n }\n\n // Listen for reset position event\n useEventListener('phone-island-reset-position', handleResetPosition)\n\n // Handles the drag started event\n function handleStartDrag(event: React.PointerEvent<Element>) {\n const target = event.target as HTMLElement\n if (\n target.closest('[data-stop-propagation=\"true\"]') ||\n target.hasAttribute('data-stop-propagation')\n ) {\n return\n }\n\n controls.start(event)\n }\n\n // Handles log press event\n const handleLongPress = () => {}\n\n const handleIslandClick = (event?: React.MouseEvent<Element> | any) => {\n if (event && event.target) {\n const target = event.target as HTMLElement\n if (\n target.closest('[data-stop-propagation=\"true\"]') ||\n target.hasAttribute('data-stop-propagation')\n ) {\n return\n }\n }\n\n // Only if phone island is close is possible to open it trough the click\n const isPhoneIslandAlreadyOpen = store?.getState()?.island?.isOpen\n !isPhoneIslandAlreadyOpen && dispatch.island.handleToggleIsOpen()\n }\n\n // Handles drag end event\n const handleDragEnd = () => {\n if (!islandRef.current) return\n // Get initial transform values\n let { x, y }: any = styleTransformValues(islandRef.current)\n // Round position\n x = xPosition(Math.round(x), islandRef.current, islandContainerRef.current)\n y = yPosition(Math.round(y), islandRef.current, islandContainerRef.current)\n // Save the new position to localstorage\n setPhoneIslandStorage({\n position: {\n x,\n y,\n },\n })\n // Set position to variable\n setPosition({\n x,\n y,\n })\n }\n\n // Handles drag started event\n function handleDragStarted() {\n setMoved(true)\n }\n\n // Initialize the longPressEvent object\n const longPressEvent = useLongPress(\n handleLongPress,\n handleIslandClick,\n moved,\n () => setMoved(false),\n {\n shouldPreventDefault: true,\n delay: 250,\n },\n )\n\n return (\n <motion.div\n drag\n onPointerDown={handleStartDrag}\n onDragStart={handleDragStarted}\n dragTransition={{ \n power: 0,\n timeConstant: 300\n }}\n initial={{\n x: position?.x || startPosition.x,\n y: position?.y || startPosition.y,\n }}\n animate={animationControls}\n dragControls={controls}\n dragListener={false}\n dragConstraints={islandContainerRef}\n onDragEnd={handleDragEnd}\n ref={islandRef}\n {...longPressEvent}\n className='pi-absolute'\n >\n {children && children}\n </motion.div>\n )\n}\n\nexport default IslandDrag\n\nexport interface IslandDragProps {\n children: ReactNode\n islandContainerRef: MutableRefObject<HTMLDivElement>\n}\n\ninterface PhoneIslandStorageTypes {\n position: PositionTypes\n}\n\ninterface PositionTypes {\n x: number\n y: number\n}\n"],"names":["IslandDrag","_a","children","islandContainerRef","startPosition","useSelector","state","island","_b","useState","moved","setMoved","dispatch","useDispatch","controls","useDragControls","animationControls","useAnimation","_c","useLocalStorage","phoneIslandStorage","setPhoneIslandStorage","islandRef","useRef","_d","position","setPosition","useEventListener","__awaiter","localStorage","removeItem","start","x","y","transition","duration","ease","sent","longPressEvent","useLongPress","event","target","closest","hasAttribute","store","getState","isOpen","handleToggleIsOpen","shouldPreventDefault","delay","React","createElement","motion","div","drag","onPointerDown","onDragStart","dragTransition","power","timeConstant","initial","animate","dragControls","dragListener","dragConstraints","onDragEnd","current","styleTransformValues","xPosition","Math","round","yPosition","ref","className"],"mappings":"k8BAUaA,EAAkC,SAACC,OAAEC,EAAQD,EAAAC,SAAEC,EAAkBF,EAAAE,mBACpEC,EAAkBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,wBAG5DC,EAAoBC,EAAAA,UAAkB,GAArCC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAGhBI,EAAWC,EAAAA,cAGXC,EAAWC,EAAAA,kBAGXC,EAAoBC,EAAAA,eAGpBC,EACJC,EAAAA,gBAAgD,eAAgB,MAD3DC,EAAkBF,EAAA,GAAEG,OAIrBC,EAAYC,SAAY,MAGxBC,EAA0Bf,EAAAA,SAC9BW,GAAsBA,EAAmBK,SAAWL,EAAmBK,SAAW,MAD7EA,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAwB5BG,mBAAiB,+BAnBW,WAAA,OAAAC,EAAAA,eAAA,OAAA,OAAA,GAAA,yEAQ1B,OANAC,aAAaC,WAAW,gBAGxBJ,EAAY,MAGN,CAAA,EAAAV,EAAkBe,MAAM,CAC5BC,EAAG5B,EAAc4B,EACjBC,EAAG7B,EAAc6B,EACjBC,WAAY,CACVC,SAAU,GACVC,KAAM,4BALVnC,EAAAoC,qBAyEF,IAAMC,EAAiBC,EAAAA,cA9CC,eAEE,SAACC,WACzB,GAAIA,GAASA,EAAMC,OAAQ,CACzB,IAAMA,EAASD,EAAMC,OACrB,GACEA,EAAOC,QAAQ,mCACfD,EAAOE,aAAa,yBAEpB,MAEH,GAGyD,QAAzBnC,EAAiB,QAAjBP,SAAA2C,EAAAA,YAAK,IAALA,EAAKA,WAAA,EAALA,EAAAA,MAAOC,kBAAU,IAAA5C,OAAA,EAAAA,EAAEM,cAAM,IAAAC,OAAA,EAAAA,EAAEsC,SAC/BlC,EAASL,OAAOwC,oBAC/C,GAiCErC,GACA,WAAM,OAAAC,GAAS,KACf,CACEqC,sBAAsB,EACtBC,MAAO,MAIX,OACEC,EAAC,QAAAC,cAAAC,SAAOC,gBACNC,MAAI,EACJC,cAzEJ,SAAyBf,GACvB,IAAMC,EAASD,EAAMC,OAEnBA,EAAOC,QAAQ,mCACfD,EAAOE,aAAa,0BAKtB7B,EAASiB,MAAMS,EAChB,EAgEGgB,YApBJ,WACE7C,GAAS,EACV,EAmBG8C,eAAgB,CACdC,MAAO,EACPC,aAAc,KAEhBC,QAAS,CACP5B,GAAGP,aAAQ,EAARA,EAAUO,IAAK5B,EAAc4B,EAChCC,GAAGR,aAAQ,EAARA,EAAUQ,IAAK7B,EAAc6B,GAElC4B,QAAS7C,EACT8C,aAAchD,EACdiD,cAAc,EACdC,gBAAiB7D,EACjB8D,UAvDkB,WACpB,GAAK3C,EAAU4C,QAAf,CAEI,IAAAjE,EAAgBkE,EAAAA,qBAAqB7C,EAAU4C,SAA7ClC,EAAC/B,EAAA+B,EAAEC,MAETD,EAAIoC,EAAAA,UAAUC,KAAKC,MAAMtC,GAAIV,EAAU4C,QAAS/D,EAAmB+D,SACnEjC,EAAIsC,EAAAA,UAAUF,KAAKC,MAAMrC,GAAIX,EAAU4C,QAAS/D,EAAmB+D,SAEnE7C,EAAsB,CACpBI,SAAU,CACRO,EAACA,EACDC,EAACA,KAILP,EAAY,CACVM,EAACA,EACDC,EAACA,GAhB2B,CAkBhC,EAqCIuC,IAAKlD,GACDgB,EACJ,CAAAmC,UAAU,gBAETvE,GAAYA,EAGnB"}
1
+ {"version":3,"file":"IslandDrag.js","sources":["../../src/components/IslandDrag.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useState, useRef, MutableRefObject } from 'react'\nimport { RootState, Dispatch, store } from '../store'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { motion, useDragControls, useAnimation } from 'framer-motion'\nimport { useLongPress, useLocalStorage, styleTransformValues, useEventListener } from '../utils'\nimport { xPosition, yPosition } from '../lib/island/island'\n\nexport const IslandDrag: FC<IslandDragProps> = ({ children, islandContainerRef }) => {\n const { startPosition } = useSelector((state: RootState) => state.island)\n\n // Initialize the moved property\n const [moved, setMoved] = useState<boolean>(false)\n\n // Initialize dispatch\n const dispatch = useDispatch<Dispatch>()\n\n // Initialize Island drag controls\n const controls = useDragControls()\n\n // Initialize animation controls for reset functionality\n const animationControls = useAnimation()\n\n // Initialize Island storage\n const [phoneIslandStorage, setPhoneIslandStorage] =\n useLocalStorage<PhoneIslandStorageTypes | null>('phone-island', null)\n\n // The Island reference\n const islandRef = useRef<any>(null)\n\n // Initialize position or get from storage\n const [position, setPosition] = useState<PositionTypes | null>(\n phoneIslandStorage && phoneIslandStorage.position ? phoneIslandStorage.position : null,\n )\n\n // Handles reset position to default\n const handleResetPosition = async () => {\n // Clear localStorage\n localStorage.removeItem('phone-island')\n \n // Reset position state\n setPosition(null)\n \n // Animate back to default position\n await animationControls.start({\n x: startPosition.x,\n y: startPosition.y,\n transition: {\n duration: 0.3,\n ease: 'easeOut',\n },\n })\n }\n\n // Listen for reset position event\n useEventListener('phone-island-reset-position', handleResetPosition)\n\n // Handles the drag started event\n function handleStartDrag(event: React.PointerEvent<Element>) {\n const target = event.target as HTMLElement\n if (\n target.closest('[data-stop-propagation=\"true\"]') ||\n target.hasAttribute('data-stop-propagation')\n ) {\n return\n }\n\n controls.start(event)\n }\n\n // Handles log press event\n const handleLongPress = () => {}\n\n const handleIslandClick = (event?: React.MouseEvent<Element> | any) => {\n if (event && event.target) {\n const target = event.target as HTMLElement\n if (\n target.closest('[data-stop-propagation=\"true\"]') ||\n target.hasAttribute('data-stop-propagation')\n ) {\n return\n }\n }\n\n // Only if phone island is close is possible to open it trough the click\n const isPhoneIslandAlreadyOpen = store?.getState()?.island?.isOpen\n !isPhoneIslandAlreadyOpen && dispatch.island.handleToggleIsOpen()\n }\n\n // Handles drag end event\n const handleDragEnd = () => {\n if (!islandRef.current) return\n // Get initial transform values\n let { x, y }: any = styleTransformValues(islandRef.current)\n // Round position\n x = xPosition(Math.round(x), islandRef.current, islandContainerRef.current)\n y = yPosition(Math.round(y), islandRef.current, islandContainerRef.current)\n // Save the new position to localstorage\n setPhoneIslandStorage({\n position: {\n x,\n y,\n },\n })\n // Set position to variable\n setPosition({\n x,\n y,\n })\n }\n\n // Handles drag started event\n function handleDragStarted() {\n setMoved(true)\n }\n\n // Initialize the longPressEvent object\n const longPressEvent = useLongPress(\n handleLongPress,\n handleIslandClick,\n moved,\n () => setMoved(false),\n {\n shouldPreventDefault: true,\n delay: 250,\n },\n )\n\n return (\n <motion.div\n drag\n onPointerDown={handleStartDrag}\n onDragStart={handleDragStarted}\n dragTransition={{ \n power: 0,\n timeConstant: 300\n }}\n initial={{\n x: position?.x || startPosition.x,\n y: position?.y || startPosition.y,\n }}\n animate={animationControls}\n dragControls={controls}\n dragListener={false}\n dragConstraints={islandContainerRef}\n onDragEnd={handleDragEnd}\n ref={islandRef}\n {...longPressEvent}\n className='pi-absolute'\n >\n {children && children}\n </motion.div>\n )\n}\n\nexport default IslandDrag\n\nexport interface IslandDragProps {\n children: ReactNode\n islandContainerRef: MutableRefObject<HTMLDivElement>\n}\n\ninterface PhoneIslandStorageTypes {\n position: PositionTypes\n}\n\ninterface PositionTypes {\n x: number\n y: number\n}\n"],"names":["IslandDrag","_a","children","islandContainerRef","startPosition","useSelector","state","island","_b","useState","moved","setMoved","dispatch","useDispatch","controls","useDragControls","animationControls","useAnimation","_c","useLocalStorage","phoneIslandStorage","setPhoneIslandStorage","islandRef","useRef","_d","position","setPosition","useEventListener","__awaiter","localStorage","removeItem","start","x","y","transition","duration","ease","sent","longPressEvent","useLongPress","event","target","closest","hasAttribute","store","getState","isOpen","handleToggleIsOpen","shouldPreventDefault","delay","React","createElement","motion","div","drag","onPointerDown","onDragStart","dragTransition","power","timeConstant","initial","animate","dragControls","dragListener","dragConstraints","onDragEnd","current","styleTransformValues","xPosition","Math","round","yPosition","ref","className"],"mappings":"k8BAUaA,EAAkC,SAACC,OAAEC,EAAQD,EAAAC,SAAEC,EAAkBF,EAAAE,mBACpEC,EAAkBC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,uBAG5DC,EAAoBC,EAAAA,UAAkB,GAArCC,EAAKF,EAAA,GAAEG,EAAQH,EAAA,GAGhBI,EAAWC,EAAAA,cAGXC,EAAWC,EAAAA,kBAGXC,EAAoBC,EAAAA,eAGpBC,EACJC,EAAAA,gBAAgD,eAAgB,MAD3DC,EAAkBF,EAAA,GAAEG,OAIrBC,EAAYC,SAAY,MAGxBC,EAA0Bf,EAAAA,SAC9BW,GAAsBA,EAAmBK,SAAWL,EAAmBK,SAAW,MAD7EA,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAwB5BG,mBAAiB,8BAnBW,WAAA,OAAAC,EAAAA,eAAA,OAAA,OAAA,EAAA,wEAQ1B,OANAC,aAAaC,WAAW,gBAGxBJ,EAAY,MAGN,CAAA,EAAAV,EAAkBe,MAAM,CAC5BC,EAAG5B,EAAc4B,EACjBC,EAAG7B,EAAc6B,EACjBC,WAAY,CACVC,SAAU,GACVC,KAAM,4BALVnC,EAAAoC,kBAyEF,IAAMC,EAAiBC,EAAAA,aA9CC,aAEE,SAACC,WACzB,GAAIA,GAASA,EAAMC,OAAQ,CACzB,IAAMA,EAASD,EAAMC,OACrB,GACEA,EAAOC,QAAQ,mCACfD,EAAOE,aAAa,yBAEpB,MAEH,GAGyD,QAAzBnC,EAAiB,QAAjBP,SAAA2C,EAAAA,YAAK,IAALA,EAAKA,WAAA,EAALA,EAAAA,MAAOC,kBAAU,IAAA5C,OAAA,EAAAA,EAAEM,cAAM,IAAAC,OAAA,EAAAA,EAAEsC,SAC/BlC,EAASL,OAAOwC,oBAC/C,EAiCErC,EACA,WAAM,OAAAC,GAAS,IACf,CACEqC,sBAAsB,EACtBC,MAAO,MAIX,OACEC,EAAC,QAAAC,cAAAC,SAAOC,gBACNC,MAAI,EACJC,cAzEJ,SAAyBf,GACvB,IAAMC,EAASD,EAAMC,OAEnBA,EAAOC,QAAQ,mCACfD,EAAOE,aAAa,0BAKtB7B,EAASiB,MAAMS,EAChB,EAgEGgB,YApBJ,WACE7C,GAAS,EACV,EAmBG8C,eAAgB,CACdC,MAAO,EACPC,aAAc,KAEhBC,QAAS,CACP5B,GAAGP,aAAQ,EAARA,EAAUO,IAAK5B,EAAc4B,EAChCC,GAAGR,aAAQ,EAARA,EAAUQ,IAAK7B,EAAc6B,GAElC4B,QAAS7C,EACT8C,aAAchD,EACdiD,cAAc,EACdC,gBAAiB7D,EACjB8D,UAvDkB,WACpB,GAAK3C,EAAU4C,QAAf,CAEI,IAAAjE,EAAgBkE,EAAAA,qBAAqB7C,EAAU4C,SAA7ClC,EAAC/B,EAAA+B,EAAEC,MAETD,EAAIoC,EAAAA,UAAUC,KAAKC,MAAMtC,GAAIV,EAAU4C,QAAS/D,EAAmB+D,SACnEjC,EAAIsC,EAAAA,UAAUF,KAAKC,MAAMrC,GAAIX,EAAU4C,QAAS/D,EAAmB+D,SAEnE7C,EAAsB,CACpBI,SAAU,CACRO,EAACA,EACDC,EAACA,KAILP,EAAY,CACVM,EAACA,EACDC,EAACA,GAhB2B,CAkBhC,EAqCIuC,IAAKlD,GACDgB,EACJ,CAAAmC,UAAU,gBAETvE,GAAYA,EAGnB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var i=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var t=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),d=require("../node_modules/react-redux/es/hooks/useSelector.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),h=function(a){var h=a.children,r=d.useSelector((function(e){return e.currentCall})),s=r.incoming,o=r.outgoing,c=r.accepted,l=r.transferring,g=r.incomingWebRTC,p=r.incomingSocket,u=r.conferencing,w=r.throughQueue,x=r.queueName,f=r.queueNumber,m=d.useSelector((function(e){return e.listen})).isListen,v=d.useSelector((function(e){return e.island})),b=v.view,_=v.isOpen,y=v.actionsExpanded,k=v.sideViewIsVisible,S=v.transcriptionViewIsVisible,A=v.isFromStreaming,j=v.isExtraLarge,q=d.useSelector((function(e){return e.alerts.status})).activeAlertsCount,C=d.useSelector((function(e){return e.motions})),E=C.variants,B=C.border_radius_collapsed,D=C.border_radius_expanded,L=C.border_radius_collapsed_conference,I=C.padding_x_collapsed,V=C.padding_y_collapsed,M=C.padding_expanded,N=C.alert_padding_expanded,O=d.useSelector((function(e){return e.conference})).isActive,Q=e.useMemo((function(){var e={width:0,height:0,padding:M};switch(b){case"call":if(_)if(c&&l&&u)e=y?{width:E.call.expanded.transfer.actionsExpanded.width,height:E.call.expanded.transfer.actionsExpanded.height}:{width:E.call.expanded.transfer.width,height:E.call.expanded.transfer.height};else if(c&&y)e={width:E.call.expanded.accepted.actionsExpanded.width,height:E.call.expanded.accepted.actionsExpanded.height};else if(c&&!m)e={width:E.call.expanded.accepted.width,height:E.call.expanded.accepted.height};else if(c&&m)e={width:E.call.expanded.listening.width,height:E.call.expanded.listening.height};else if(s&&!A){e=s&&!c&&w&&Boolean(x||f)?{width:E.call.expanded.incomingQueue.width,height:E.call.expanded.incomingQueue.height}:{width:E.call.expanded.incoming.width,height:E.call.expanded.incoming.height}}else s&&A?e={width:E.call.expanded.incomingStreaming.width,height:E.call.expanded.incomingStreaming.height}:o&&!A?e={width:E.call.expanded.outgoing.width,height:E.call.expanded.outgoing.height}:o&&A&&(e={width:E.call.expanded.outgoingStreaming.width,height:E.call.expanded.outgoingStreaming.height});else e={width:E.call.collapsed.width,height:E.call.collapsed.height};break;case"keypad":e=_?{width:E.keypad.expanded.width,height:E.keypad.expanded.height}:{width:E.transfer.collapsed.width,height:E.transfer.collapsed.height};break;case"video":e=_?{width:E.video.expanded.width,height:E.video.expanded.height,padding:E.video.expanded.padding}:{width:E.video.collapsed.width,height:E.video.collapsed.height};break;case"transfer":case"player":case"recorder":case"physicalPhoneRecorder":case"settings":case"conference":e=_?{width:E[b].expanded.width,height:E[b].expanded.height}:{width:E[b].collapsed.width,height:E[b].collapsed.height};break;case"switchDevice":e=_?{width:E.switchDevice.expanded.width,height:E.switchDevice.expanded.height}:{width:E.video.collapsed.width,height:E.video.collapsed.height};break;case"waitingConference":e=_?{width:E.waitingConference.expanded.width,height:E.waitingConference.expanded.height}:{width:E.waitingConference.collapsed.width,height:E.waitingConference.collapsed.height};break;case"streamingAnswer":e=_?j?{width:E.streamingAnswer.extraLarge.width,height:E.streamingAnswer.extraLarge.height,padding:E.streamingAnswer.extraLarge.padding}:{width:E.streamingAnswer.expanded.width,height:E.streamingAnswer.expanded.height,padding:E.streamingAnswer.expanded.padding}:{width:E.streamingAnswer.collapsed.width,height:E.streamingAnswer.collapsed.height};break;case"operatorBusy":e=_?{width:E.operatorBusy.expanded.width,height:E.operatorBusy.expanded.height}:{width:E.operatorBusy.collapsed.width,height:E.operatorBusy.collapsed.height}}var i=q>0;return{width:"".concat(0===e.width&&i?E.alerts.width:e.width,"px"),height:"".concat(i&&_?E.alerts.height+(0===e.height?2*N:N):e.height,"px"),borderRadius:"".concat(_?D:O&&"waitingConference"===b?L:B,"px"),padding:_?null!=e.padding?"".concat(e.padding,"px"):"".concat(M,"px"):"".concat(I,"px ").concat(V,"px")}}),[b,_,c,l,y,m,s,o,q,E,B,D,I,V,M,N,g,p,O,A,j,w,x,f]);return e.useEffect((function(){var e={};e.width=null==Q?void 0:Q.width,e.height=null==Q?void 0:Q.height,i.eventDispatch("phone-island-size-change",{sizeInformation:e})}),[Q,b,_,c,l,y,m,s,o,q,E,B,D,I,V,M,N,k,S,p,g,O,j]),n.default.createElement(t.motion.div,{className:"".concat(_?"pi-cursor-grab":"pi-cursor-pointer"," pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow"),animate:Q,transition:{duration:.15,ease:"easeOut"}},h)};exports.IslandMotion=h,exports.default=h;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var i=require("../utils/genericFunctions/eventDispatch.js");require("../node_modules/tslib/tslib.es6.js"),require("../store/index.js");var t=require("../node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js"),d=require("../node_modules/react-redux/es/hooks/useSelector.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(e),h=function(a){var h=a.children,r=d.useSelector(function(e){return e.currentCall}),s=r.incoming,o=r.outgoing,c=r.accepted,l=r.transferring,g=r.incomingWebRTC,p=r.incomingSocket,u=r.conferencing,w=r.throughQueue,x=r.queueName,f=r.queueNumber,m=d.useSelector(function(e){return e.listen}).isListen,v=d.useSelector(function(e){return e.island}),b=v.view,_=v.isOpen,y=v.actionsExpanded,k=v.sideViewIsVisible,S=v.transcriptionViewIsVisible,A=v.isFromStreaming,j=v.isExtraLarge,q=d.useSelector(function(e){return e.alerts.status}).activeAlertsCount,C=d.useSelector(function(e){return e.motions}),E=C.variants,B=C.border_radius_collapsed,D=C.border_radius_expanded,L=C.border_radius_collapsed_conference,I=C.padding_x_collapsed,V=C.padding_y_collapsed,M=C.padding_expanded,N=C.alert_padding_expanded,O=d.useSelector(function(e){return e.conference}).isActive,Q=e.useMemo(function(){var e={width:0,height:0,padding:M};switch(b){case"call":if(_)if(c&&l&&u)e=y?{width:E.call.expanded.transfer.actionsExpanded.width,height:E.call.expanded.transfer.actionsExpanded.height}:{width:E.call.expanded.transfer.width,height:E.call.expanded.transfer.height};else if(c&&y)e={width:E.call.expanded.accepted.actionsExpanded.width,height:E.call.expanded.accepted.actionsExpanded.height};else if(c&&!m)e={width:E.call.expanded.accepted.width,height:E.call.expanded.accepted.height};else if(c&&m)e={width:E.call.expanded.listening.width,height:E.call.expanded.listening.height};else if(s&&!A){e=s&&!c&&w&&Boolean(x||f)?{width:E.call.expanded.incomingQueue.width,height:E.call.expanded.incomingQueue.height}:{width:E.call.expanded.incoming.width,height:E.call.expanded.incoming.height}}else s&&A?e={width:E.call.expanded.incomingStreaming.width,height:E.call.expanded.incomingStreaming.height}:o&&!A?e={width:E.call.expanded.outgoing.width,height:E.call.expanded.outgoing.height}:o&&A&&(e={width:E.call.expanded.outgoingStreaming.width,height:E.call.expanded.outgoingStreaming.height});else e={width:E.call.collapsed.width,height:E.call.collapsed.height};break;case"keypad":e=_?{width:E.keypad.expanded.width,height:E.keypad.expanded.height}:{width:E.transfer.collapsed.width,height:E.transfer.collapsed.height};break;case"video":e=_?{width:E.video.expanded.width,height:E.video.expanded.height,padding:E.video.expanded.padding}:{width:E.video.collapsed.width,height:E.video.collapsed.height};break;case"transfer":case"player":case"recorder":case"physicalPhoneRecorder":case"settings":case"conference":e=_?{width:E[b].expanded.width,height:E[b].expanded.height}:{width:E[b].collapsed.width,height:E[b].collapsed.height};break;case"switchDevice":e=_?{width:E.switchDevice.expanded.width,height:E.switchDevice.expanded.height}:{width:E.video.collapsed.width,height:E.video.collapsed.height};break;case"waitingConference":e=_?{width:E.waitingConference.expanded.width,height:E.waitingConference.expanded.height}:{width:E.waitingConference.collapsed.width,height:E.waitingConference.collapsed.height};break;case"streamingAnswer":e=_?j?{width:E.streamingAnswer.extraLarge.width,height:E.streamingAnswer.extraLarge.height,padding:E.streamingAnswer.extraLarge.padding}:{width:E.streamingAnswer.expanded.width,height:E.streamingAnswer.expanded.height,padding:E.streamingAnswer.expanded.padding}:{width:E.streamingAnswer.collapsed.width,height:E.streamingAnswer.collapsed.height};break;case"operatorBusy":e=_?{width:E.operatorBusy.expanded.width,height:E.operatorBusy.expanded.height}:{width:E.operatorBusy.collapsed.width,height:E.operatorBusy.collapsed.height}}var i=q>0;return{width:"".concat(0===e.width&&i?E.alerts.width:e.width,"px"),height:"".concat(i&&_?E.alerts.height+(0===e.height?2*N:N):e.height,"px"),borderRadius:"".concat(_?D:O&&"waitingConference"===b?L:B,"px"),padding:_?null!=e.padding?"".concat(e.padding,"px"):"".concat(M,"px"):"".concat(I,"px ").concat(V,"px")}},[b,_,c,l,y,m,s,o,q,E,B,D,I,V,M,N,g,p,O,A,j,w,x,f]);return e.useEffect(function(){var e={};e.width=null==Q?void 0:Q.width,e.height=null==Q?void 0:Q.height,i.eventDispatch("phone-island-size-change",{sizeInformation:e})},[Q,b,_,c,l,y,m,s,o,q,E,B,D,I,V,M,N,k,S,p,g,O,j]),n.default.createElement(t.motion.div,{className:"".concat(_?"pi-cursor-grab":"pi-cursor-pointer"," pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow"),animate:Q,transition:{duration:.15,ease:"easeOut"}},h)};exports.IslandMotion=h,exports.default=h;
2
2
  //# sourceMappingURL=IslandMotion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useMemo, useEffect } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion'\nimport { eventDispatch } from '../utils'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const {\n incoming,\n outgoing,\n accepted,\n transferring,\n incomingWebRTC,\n incomingSocket,\n conferencing,\n throughQueue,\n queueName,\n queueNumber,\n } = useSelector((state: RootState) => state.currentCall)\n const { isListen } = useSelector((state: RootState) => state.listen)\n const { view, isOpen, actionsExpanded, sideViewIsVisible,transcriptionViewIsVisible, isFromStreaming, isExtraLarge } = useSelector(\n (state: RootState) => state.island,\n )\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n border_radius_collapsed_conference,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n const motionVariants = useMemo(() => {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n padding: padding_expanded,\n }\n\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring && conferencing) {\n if (actionsExpanded) {\n size = {\n width: variants.call.expanded.transfer.actionsExpanded.width,\n height: variants.call.expanded.transfer.actionsExpanded.height,\n }\n } else {\n size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.height,\n }\n }\n } else if (accepted && actionsExpanded) {\n size = {\n width: variants.call.expanded.accepted.actionsExpanded.width,\n height: variants.call.expanded.accepted.actionsExpanded.height,\n }\n } else if (accepted && !isListen) {\n size = {\n width: variants.call.expanded.accepted.width,\n height: variants.call.expanded.accepted.height,\n }\n } else if (accepted && isListen) {\n size = {\n width: variants.call.expanded.listening.width,\n height: variants.call.expanded.listening.height,\n }\n } else if (incoming && !isFromStreaming) {\n const showIncomingQueueBadge =\n incoming && !accepted && throughQueue && Boolean(queueName || queueNumber)\n size = showIncomingQueueBadge\n ? {\n width: variants.call.expanded.incomingQueue.width,\n height: variants.call.expanded.incomingQueue.height,\n }\n : {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (incoming && isFromStreaming) {\n size = {\n width: variants.call.expanded.incomingStreaming.width,\n height: variants.call.expanded.incomingStreaming.height,\n }\n } else if (outgoing && !isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n } else if (outgoing && isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoingStreaming.width,\n height: variants.call.expanded.outgoingStreaming.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n\n case 'keypad':\n size = isOpen\n ? {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n : {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n break\n\n case 'video':\n if (isOpen) {\n size = {\n width: variants.video.expanded.width,\n height: variants.video.expanded.height,\n padding: variants.video.expanded.padding,\n }\n } else {\n size = {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n }\n break\n case 'transfer':\n case 'player':\n case 'recorder':\n case 'physicalPhoneRecorder':\n case 'settings':\n case 'conference':\n size = isOpen\n ? {\n width: variants[view].expanded.width,\n height: variants[view].expanded.height,\n }\n : {\n width: variants[view].collapsed.width,\n height: variants[view].collapsed.height,\n }\n break\n\n case 'switchDevice':\n size = isOpen\n ? {\n width: variants.switchDevice.expanded.width,\n height: variants.switchDevice.expanded.height,\n }\n : {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n break\n\n case 'waitingConference':\n size = isOpen\n ? {\n width: variants.waitingConference.expanded.width,\n height: variants.waitingConference.expanded.height,\n }\n : {\n width: variants.waitingConference.collapsed.width,\n height: variants.waitingConference.collapsed.height,\n }\n break\n case 'streamingAnswer':\n size = isOpen\n ? isExtraLarge\n ? {\n width: variants.streamingAnswer.extraLarge.width,\n height: variants.streamingAnswer.extraLarge.height,\n padding: variants.streamingAnswer.extraLarge.padding,\n }\n : {\n width: variants.streamingAnswer.expanded.width,\n height: variants.streamingAnswer.expanded.height,\n padding: variants.streamingAnswer.expanded.padding,\n }\n : {\n width: variants.streamingAnswer.collapsed.width,\n height: variants.streamingAnswer.collapsed.height,\n }\n break\n case 'operatorBusy':\n size = isOpen\n ? {\n width: variants.operatorBusy.expanded.width,\n height: variants.operatorBusy.expanded.height,\n }\n : {\n width: variants.operatorBusy.collapsed.width,\n height: variants.operatorBusy.collapsed.height,\n }\n break\n }\n\n const isAlert: boolean = activeAlertsCount > 0\n\n return {\n width: `${size.width === 0 && isAlert ? variants.alerts.width : size.width}px`,\n height: `${\n // If there is an alert and the island is open put the correct height\n isAlert && isOpen\n ? variants.alerts.height +\n (size.height === 0 ? alert_padding_expanded * 2 : alert_padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen\n ? `${border_radius_expanded}px`\n : isActive && view === 'waitingConference'\n ? `${border_radius_collapsed_conference}px`\n : `${border_radius_collapsed}px`,\n padding: isOpen\n ? size.padding != undefined\n ? `${size.padding}px`\n : `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }, [\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n incomingWebRTC,\n incomingSocket,\n isActive,\n isFromStreaming,\n isExtraLarge,\n throughQueue,\n queueName,\n queueNumber,\n ])\n\n useEffect(() => {\n let sizeInformation: any = {}\n sizeInformation.width = motionVariants?.width\n sizeInformation.height = motionVariants?.height\n eventDispatch('phone-island-size-change', {\n sizeInformation,\n })\n }, [\n motionVariants,\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n sideViewIsVisible,\n transcriptionViewIsVisible,\n incomingSocket,\n incomingWebRTC,\n isActive,\n isExtraLarge,\n ])\n\n return (\n <motion.div\n className={`${isOpen ? 'pi-cursor-grab' : 'pi-cursor-pointer'\n } pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow`}\n animate={motionVariants}\n transition={{\n duration: 0.15,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n )\n}\n\ninterface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n padding?: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","incomingWebRTC","incomingSocket","conferencing","throughQueue","queueName","queueNumber","isListen","listen","_c","island","view","isOpen","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","isFromStreaming","isExtraLarge","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","border_radius_collapsed_conference","padding_x_collapsed","padding_y_collapsed","padding_expanded","alert_padding_expanded","isActive","conference","motionVariants","useMemo","size","width","height","padding","call","expanded","transfer","listening","Boolean","incomingQueue","incomingStreaming","outgoingStreaming","collapsed","keypad","video","switchDevice","waitingConference","streamingAnswer","extraLarge","operatorBusy","isAlert","concat","borderRadius","undefined","useEffect","sizeInformation","eventDispatch","React","createElement","motion","div","className","animate","transition","duration","ease"],"mappings":"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"}
1
+ {"version":3,"file":"IslandMotion.js","sources":["../../src/components/IslandMotion.tsx"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useMemo, useEffect } from 'react'\nimport { RootState } from '../store'\nimport { useSelector } from 'react-redux'\nimport { motion } from 'framer-motion'\nimport { eventDispatch } from '../utils'\n\nexport const IslandMotion: FC<IslandMotionProps> = ({ children }) => {\n // Retrieve needed stored variables\n const {\n incoming,\n outgoing,\n accepted,\n transferring,\n incomingWebRTC,\n incomingSocket,\n conferencing,\n throughQueue,\n queueName,\n queueNumber,\n } = useSelector((state: RootState) => state.currentCall)\n const { isListen } = useSelector((state: RootState) => state.listen)\n const { view, isOpen, actionsExpanded, sideViewIsVisible,transcriptionViewIsVisible, isFromStreaming, isExtraLarge } = useSelector(\n (state: RootState) => state.island,\n )\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n const {\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n border_radius_collapsed_conference,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n } = useSelector((state: RootState) => state.motions)\n const { isActive } = useSelector((state: RootState) => state.conference)\n\n const motionVariants = useMemo(() => {\n // Initial size\n let size: SizeTypes = {\n width: 0,\n height: 0,\n padding: padding_expanded,\n }\n\n switch (view) {\n case 'call':\n if (isOpen) {\n if (accepted && transferring && conferencing) {\n if (actionsExpanded) {\n size = {\n width: variants.call.expanded.transfer.actionsExpanded.width,\n height: variants.call.expanded.transfer.actionsExpanded.height,\n }\n } else {\n size = {\n width: variants.call.expanded.transfer.width,\n height: variants.call.expanded.transfer.height,\n }\n }\n } else if (accepted && actionsExpanded) {\n size = {\n width: variants.call.expanded.accepted.actionsExpanded.width,\n height: variants.call.expanded.accepted.actionsExpanded.height,\n }\n } else if (accepted && !isListen) {\n size = {\n width: variants.call.expanded.accepted.width,\n height: variants.call.expanded.accepted.height,\n }\n } else if (accepted && isListen) {\n size = {\n width: variants.call.expanded.listening.width,\n height: variants.call.expanded.listening.height,\n }\n } else if (incoming && !isFromStreaming) {\n const showIncomingQueueBadge =\n incoming && !accepted && throughQueue && Boolean(queueName || queueNumber)\n size = showIncomingQueueBadge\n ? {\n width: variants.call.expanded.incomingQueue.width,\n height: variants.call.expanded.incomingQueue.height,\n }\n : {\n width: variants.call.expanded.incoming.width,\n height: variants.call.expanded.incoming.height,\n }\n } else if (incoming && isFromStreaming) {\n size = {\n width: variants.call.expanded.incomingStreaming.width,\n height: variants.call.expanded.incomingStreaming.height,\n }\n } else if (outgoing && !isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoing.width,\n height: variants.call.expanded.outgoing.height,\n }\n } else if (outgoing && isFromStreaming) {\n size = {\n width: variants.call.expanded.outgoingStreaming.width,\n height: variants.call.expanded.outgoingStreaming.height,\n }\n }\n } else {\n size = {\n width: variants.call.collapsed.width,\n height: variants.call.collapsed.height,\n }\n }\n break\n\n case 'keypad':\n size = isOpen\n ? {\n width: variants.keypad.expanded.width,\n height: variants.keypad.expanded.height,\n }\n : {\n width: variants.transfer.collapsed.width,\n height: variants.transfer.collapsed.height,\n }\n break\n\n case 'video':\n if (isOpen) {\n size = {\n width: variants.video.expanded.width,\n height: variants.video.expanded.height,\n padding: variants.video.expanded.padding,\n }\n } else {\n size = {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n }\n break\n case 'transfer':\n case 'player':\n case 'recorder':\n case 'physicalPhoneRecorder':\n case 'settings':\n case 'conference':\n size = isOpen\n ? {\n width: variants[view].expanded.width,\n height: variants[view].expanded.height,\n }\n : {\n width: variants[view].collapsed.width,\n height: variants[view].collapsed.height,\n }\n break\n\n case 'switchDevice':\n size = isOpen\n ? {\n width: variants.switchDevice.expanded.width,\n height: variants.switchDevice.expanded.height,\n }\n : {\n width: variants.video.collapsed.width,\n height: variants.video.collapsed.height,\n }\n break\n\n case 'waitingConference':\n size = isOpen\n ? {\n width: variants.waitingConference.expanded.width,\n height: variants.waitingConference.expanded.height,\n }\n : {\n width: variants.waitingConference.collapsed.width,\n height: variants.waitingConference.collapsed.height,\n }\n break\n case 'streamingAnswer':\n size = isOpen\n ? isExtraLarge\n ? {\n width: variants.streamingAnswer.extraLarge.width,\n height: variants.streamingAnswer.extraLarge.height,\n padding: variants.streamingAnswer.extraLarge.padding,\n }\n : {\n width: variants.streamingAnswer.expanded.width,\n height: variants.streamingAnswer.expanded.height,\n padding: variants.streamingAnswer.expanded.padding,\n }\n : {\n width: variants.streamingAnswer.collapsed.width,\n height: variants.streamingAnswer.collapsed.height,\n }\n break\n case 'operatorBusy':\n size = isOpen\n ? {\n width: variants.operatorBusy.expanded.width,\n height: variants.operatorBusy.expanded.height,\n }\n : {\n width: variants.operatorBusy.collapsed.width,\n height: variants.operatorBusy.collapsed.height,\n }\n break\n }\n\n const isAlert: boolean = activeAlertsCount > 0\n\n return {\n width: `${size.width === 0 && isAlert ? variants.alerts.width : size.width}px`,\n height: `${\n // If there is an alert and the island is open put the correct height\n isAlert && isOpen\n ? variants.alerts.height +\n (size.height === 0 ? alert_padding_expanded * 2 : alert_padding_expanded)\n : size.height\n }px`,\n borderRadius: isOpen\n ? `${border_radius_expanded}px`\n : isActive && view === 'waitingConference'\n ? `${border_radius_collapsed_conference}px`\n : `${border_radius_collapsed}px`,\n padding: isOpen\n ? size.padding != undefined\n ? `${size.padding}px`\n : `${padding_expanded}px`\n : `${padding_x_collapsed}px ${padding_y_collapsed}px`,\n }\n }, [\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n incomingWebRTC,\n incomingSocket,\n isActive,\n isFromStreaming,\n isExtraLarge,\n throughQueue,\n queueName,\n queueNumber,\n ])\n\n useEffect(() => {\n let sizeInformation: any = {}\n sizeInformation.width = motionVariants?.width\n sizeInformation.height = motionVariants?.height\n eventDispatch('phone-island-size-change', {\n sizeInformation,\n })\n }, [\n motionVariants,\n view,\n isOpen,\n accepted,\n transferring,\n actionsExpanded,\n isListen,\n incoming,\n outgoing,\n activeAlertsCount,\n variants,\n border_radius_collapsed,\n border_radius_expanded,\n padding_x_collapsed,\n padding_y_collapsed,\n padding_expanded,\n alert_padding_expanded,\n sideViewIsVisible,\n transcriptionViewIsVisible,\n incomingSocket,\n incomingWebRTC,\n isActive,\n isExtraLarge,\n ])\n\n return (\n <motion.div\n className={`${isOpen ? 'pi-cursor-grab' : 'pi-cursor-pointer'\n } pi-pointer-events-auto pi-overflow-hidden dark:pi-bg-gray-950 pi-bg-gray-50 pi-text-xs dark:pi-text-white pi-text-gray-900 hover:pi-shadow-2xl pi-rounded-3xl pi-transition-shadow`}\n animate={motionVariants}\n transition={{\n duration: 0.15,\n ease: 'easeOut',\n }}\n >\n {children}\n </motion.div>\n )\n}\n\ninterface IslandMotionProps {\n children: ReactNode\n}\n\ntype SizeTypes = {\n width: number\n height: number\n padding?: number\n}\n\nexport default IslandMotion\n"],"names":["IslandMotion","_a","children","_b","useSelector","state","currentCall","incoming","outgoing","accepted","transferring","incomingWebRTC","incomingSocket","conferencing","throughQueue","queueName","queueNumber","isListen","listen","_c","island","view","isOpen","actionsExpanded","sideViewIsVisible","transcriptionViewIsVisible","isFromStreaming","isExtraLarge","activeAlertsCount","alerts","status","_d","motions","variants","border_radius_collapsed","border_radius_expanded","border_radius_collapsed_conference","padding_x_collapsed","padding_y_collapsed","padding_expanded","alert_padding_expanded","isActive","conference","motionVariants","useMemo","size","width","height","padding","call","expanded","transfer","listening","Boolean","incomingQueue","incomingStreaming","outgoingStreaming","collapsed","keypad","video","switchDevice","waitingConference","streamingAnswer","extraLarge","operatorBusy","isAlert","concat","borderRadius","undefined","useEffect","sizeInformation","eventDispatch","React","createElement","motion","div","className","animate","transition","duration","ease"],"mappings":"sgBASaA,EAAsC,SAACC,GAAE,IAAAC,EAAQD,EAAAC,SAEtDC,EAWFC,EAAWA,YAAC,SAACC,GAAqB,OAAAA,EAAMC,WAAN,GAVpCC,aACAC,aACAC,aACAC,iBACAC,mBACAC,mBACAC,iBACAC,iBACAC,cACAC,gBAEMC,EAAab,cAAY,SAACC,GAAqB,OAAAA,EAAMa,kBACvDC,EAAiHf,EAAWA,YAChI,SAACC,GAAqB,OAAAA,EAAMe,MAAN,GADhBC,EAAIF,EAAAE,KAAEC,EAAMH,EAAAG,OAAEC,EAAeJ,EAAAI,gBAAEC,EAAiBL,EAAAK,kBAACC,EAA0BN,EAAAM,2BAAEC,EAAeP,EAAAO,gBAAEC,iBAG9FC,EAAsBxB,EAAAA,YAAY,SAACC,GAAqB,OAAAA,EAAMwB,OAAOC,2BACvEC,EASF3B,EAAAA,YAAY,SAACC,GAAqB,OAAAA,EAAM2B,UAR1CC,aACAC,EAAuBH,EAAAG,wBACvBC,EAAsBJ,EAAAI,uBACtBC,EAAkCL,EAAAK,mCAClCC,EAAmBN,EAAAM,oBACnBC,wBACAC,qBACAC,2BAEMC,EAAarC,cAAY,SAACC,GAAqB,OAAAA,EAAMqC,sBAEvDC,EAAiBC,EAAAA,QAAQ,WAE7B,IAAIC,EAAkB,CACpBC,MAAO,EACPC,OAAQ,EACRC,QAAST,GAGX,OAAQlB,GACN,IAAK,OACH,GAAIC,EACF,GAAIb,GAAYC,GAAgBG,EAE5BgC,EADEtB,EACK,CACLuB,MAAOb,EAASgB,KAAKC,SAASC,SAAS5B,gBAAgBuB,MACvDC,OAAQd,EAASgB,KAAKC,SAASC,SAAS5B,gBAAgBwB,QAGnD,CACLD,MAAOb,EAASgB,KAAKC,SAASC,SAASL,MACvCC,OAAQd,EAASgB,KAAKC,SAASC,SAASJ,aAGvC,GAAItC,GAAYc,EACrBsB,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAASzC,SAASc,gBAAgBuB,MACvDC,OAAQd,EAASgB,KAAKC,SAASzC,SAASc,gBAAgBwB,aAErD,GAAItC,IAAaQ,EACtB4B,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAASzC,SAASqC,MACvCC,OAAQd,EAASgB,KAAKC,SAASzC,SAASsC,aAErC,GAAItC,GAAYQ,EACrB4B,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAASE,UAAUN,MACxCC,OAAQd,EAASgB,KAAKC,SAASE,UAAUL,aAEtC,GAAIxC,IAAamB,EAAiB,CAGvCmB,EADEtC,IAAaE,GAAYK,GAAgBuC,QAAQtC,GAAaC,GAE5D,CACA8B,MAAOb,EAASgB,KAAKC,SAASI,cAAcR,MAC5CC,OAAQd,EAASgB,KAAKC,SAASI,cAAcP,QAE7C,CACAD,MAAOb,EAASgB,KAAKC,SAAS3C,SAASuC,MACvCC,OAAQd,EAASgB,KAAKC,SAAS3C,SAASwC,OAE7C,MAAUxC,GAAYmB,EACrBmB,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAASK,kBAAkBT,MAChDC,OAAQd,EAASgB,KAAKC,SAASK,kBAAkBR,QAE1CvC,IAAakB,EACtBmB,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAAS1C,SAASsC,MACvCC,OAAQd,EAASgB,KAAKC,SAAS1C,SAASuC,QAEjCvC,GAAYkB,IACrBmB,EAAO,CACLC,MAAOb,EAASgB,KAAKC,SAASM,kBAAkBV,MAChDC,OAAQd,EAASgB,KAAKC,SAASM,kBAAkBT,cAIrDF,EAAO,CACLC,MAAOb,EAASgB,KAAKQ,UAAUX,MAC/BC,OAAQd,EAASgB,KAAKQ,UAAUV,QAGpC,MAEF,IAAK,SACHF,EAAOvB,EACH,CACAwB,MAAOb,EAASyB,OAAOR,SAASJ,MAChCC,OAAQd,EAASyB,OAAOR,SAASH,QAEjC,CACAD,MAAOb,EAASkB,SAASM,UAAUX,MACnCC,OAAQd,EAASkB,SAASM,UAAUV,QAExC,MAEF,IAAK,QAEDF,EADEvB,EACK,CACLwB,MAAOb,EAAS0B,MAAMT,SAASJ,MAC/BC,OAAQd,EAAS0B,MAAMT,SAASH,OAChCC,QAASf,EAAS0B,MAAMT,SAASF,SAG5B,CACLF,MAAOb,EAAS0B,MAAMF,UAAUX,MAChCC,OAAQd,EAAS0B,MAAMF,UAAUV,QAGrC,MACF,IAAK,WACL,IAAK,SACL,IAAK,WACL,IAAK,wBACL,IAAK,WACL,IAAK,aACHF,EAAOvB,EACH,CACAwB,MAAOb,EAASZ,GAAM6B,SAASJ,MAC/BC,OAAQd,EAASZ,GAAM6B,SAASH,QAEhC,CACAD,MAAOb,EAASZ,GAAMoC,UAAUX,MAChCC,OAAQd,EAASZ,GAAMoC,UAAUV,QAErC,MAEF,IAAK,eACHF,EAAOvB,EACH,CACAwB,MAAOb,EAAS2B,aAAaV,SAASJ,MACtCC,OAAQd,EAAS2B,aAAaV,SAASH,QAEvC,CACAD,MAAOb,EAAS0B,MAAMF,UAAUX,MAChCC,OAAQd,EAAS0B,MAAMF,UAAUV,QAErC,MAEF,IAAK,oBACHF,EAAOvB,EACH,CACAwB,MAAOb,EAAS4B,kBAAkBX,SAASJ,MAC3CC,OAAQd,EAAS4B,kBAAkBX,SAASH,QAE5C,CACAD,MAAOb,EAAS4B,kBAAkBJ,UAAUX,MAC5CC,OAAQd,EAAS4B,kBAAkBJ,UAAUV,QAEjD,MACF,IAAK,kBACHF,EAAOvB,EACHK,EACE,CACAmB,MAAOb,EAAS6B,gBAAgBC,WAAWjB,MAC3CC,OAAQd,EAAS6B,gBAAgBC,WAAWhB,OAC5CC,QAASf,EAAS6B,gBAAgBC,WAAWf,SAE7C,CACAF,MAAOb,EAAS6B,gBAAgBZ,SAASJ,MACzCC,OAAQd,EAAS6B,gBAAgBZ,SAASH,OAC1CC,QAASf,EAAS6B,gBAAgBZ,SAASF,SAE7C,CACAF,MAAOb,EAAS6B,gBAAgBL,UAAUX,MAC1CC,OAAQd,EAAS6B,gBAAgBL,UAAUV,QAE/C,MACA,IAAK,eACLF,EAAOvB,EACH,CACAwB,MAAOb,EAAS+B,aAAad,SAASJ,MACtCC,OAAQd,EAAS+B,aAAad,SAASH,QAEvC,CACAD,MAAOb,EAAS+B,aAAaP,UAAUX,MACvCC,OAAQd,EAAS+B,aAAaP,UAAUV,QAKhD,IAAMkB,EAAmBrC,EAAoB,EAE7C,MAAO,CACLkB,MAAO,UAAkB,IAAfD,EAAKC,OAAemB,EAAUhC,EAASJ,OAAOiB,MAAQD,EAAKC,MAAS,MAC9EC,OAAQ,GAAAmB,OAEND,GAAW3C,EACPW,EAASJ,OAAOkB,QACD,IAAhBF,EAAKE,OAAwC,EAAzBP,EAA6BA,GAChDK,EAAKE,OACL,MACNoB,aACI,GAAGD,OADO5C,EACPa,EACHM,GAAqB,sBAATpB,EACPe,EACAF,EAHwB,MAIjCc,QAAS1B,EACW8C,MAAhBvB,EAAKG,QACH,GAAAkB,OAAGrB,EAAKG,QAAW,MACnB,GAAGkB,OAAA3B,EAAoB,MACzB,GAAA2B,OAAG7B,EAAmB,OAAA6B,OAAM5B,EAAuB,MAE3D,EAAG,CACDjB,EACAC,EACAb,EACAC,EACAa,EACAN,EACAV,EACAC,EACAoB,EACAK,EACAC,EACAC,EACAE,EACAC,EACAC,EACAC,EACA7B,EACAC,EACA6B,EACAf,EACAC,EACAb,EACAC,EACAC,IAoCF,OAjCAqD,EAAAA,UAAU,WACR,IAAIC,EAAuB,CAAA,EAC3BA,EAAgBxB,MAAQH,aAAA,EAAAA,EAAgBG,MACxCwB,EAAgBvB,OAASJ,aAAA,EAAAA,EAAgBI,OACzCwB,EAAAA,cAAc,2BAA4B,CACxCD,gBAAeA,GAEnB,EAAG,CACD3B,EACAtB,EACAC,EACAb,EACAC,EACAa,EACAN,EACAV,EACAC,EACAoB,EACAK,EACAC,EACAC,EACAE,EACAC,EACAC,EACAC,EACAhB,EACAC,EACAb,EACAD,EACA8B,EACAd,IAIA6C,EAAAA,QAACC,cAAAC,EAAAA,OAAOC,KACNC,UAAW,GAAGV,OAAA5C,EAAS,iBAAmB,oBAAmB,uLAE7DuD,QAASlC,EACTmC,WAAY,CACVC,SAAU,IACVC,KAAM,YAGP9E,EAGP"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../node_modules/react-redux/es/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../node_modules/mic-check/lib/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../Island.js");var r=require("../Button.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),require("../TranscriptionView/TranscriptionView.js");var i=t(e),s=Array.from(Array(9).keys()),n=["*","0","#"];exports.default=function(e){var t=e.keyCallback;return i.default.createElement("div",{className:"pi-grid pi-grid-cols-3 pi-auto-cols-max pi-gap-y-6 pi-justify-items-center pi-place-items-center pi-justify-center pi-px-3"},s.map((function(e){return i.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e+1)},variant:"default",className:"pi-text-2xl",style:{transform:"scale(1.15)"}},e+1)})),n.map((function(e){return i.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e)},variant:"default",className:"pi-text-2xl",style:{transform:"scale(1.15)"}},e)})))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js"),require("../../node_modules/react-redux/es/index.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../node_modules/mic-check/lib/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../Island.js");var r=require("../Button.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),require("../../node_modules/i18next/dist/esm/i18next.js"),require("../../node_modules/react-tooltip/dist/react-tooltip.min.mjs.js"),require("../TranscriptionView/TranscriptionView.js");var i=t(e),s=Array.from(Array(9).keys()),n=["*","0","#"];exports.default=function(e){var t=e.keyCallback;return i.default.createElement("div",{className:"pi-grid pi-grid-cols-3 pi-auto-cols-max pi-gap-y-6 pi-justify-items-center pi-place-items-center pi-justify-center pi-px-3"},s.map(function(e){return i.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e+1)},variant:"default",className:"pi-text-2xl",style:{transform:"scale(1.15)"}},e+1)}),n.map(function(e){return i.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e)},variant:"default",className:"pi-text-2xl",style:{transform:"scale(1.15)"}},e)}))};
2
2
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../src/components/KeypadView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { Button } from '..'\n\nconst keys = Array.from(Array(9).keys())\n\nconst bottomKeys = ['*', '0', '#']\n\nconst Actions: FC<ActionsTypes> = ({ keyCallback }) => {\n return (\n <div className='pi-grid pi-grid-cols-3 pi-auto-cols-max pi-gap-y-6 pi-justify-items-center pi-place-items-center pi-justify-center pi-px-3'>\n {keys.map((key) => (\n <Button\n key={key + 1}\n onClick={() => keyCallback(key + 1)}\n variant='default'\n className={'pi-text-2xl'}\n style={{ transform: 'scale(1.15)' }}\n >\n {key + 1}\n </Button>\n ))}\n {bottomKeys.map((bottomKey) => (\n <Button\n key={bottomKey + 1}\n onClick={() => keyCallback(bottomKey)}\n variant='default'\n className={'pi-text-2xl'}\n style={{ transform: 'scale(1.15)' }}\n >\n {bottomKey}\n </Button>\n ))}\n </div>\n )\n}\n\nexport default Actions\n\ninterface ActionsTypes {\n keyCallback: any\n}\n"],"names":["keys","Array","from","bottomKeys","_a","keyCallback","React","createElement","className","map","key","Button","onClick","variant","style","transform","bottomKey"],"mappings":"60BAMMA,EAAOC,MAAMC,KAAKD,MAAM,GAAGD,QAE3BG,EAAa,CAAC,IAAK,IAAK,qBAEI,SAACC,GAAE,IAAAC,EAAWD,EAAAC,YAC9C,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,8HACZR,EAAKS,KAAI,SAACC,GAAQ,OACjBJ,EAAC,QAAAC,cAAAI,EAAMA,OACL,CAAAD,IAAKA,EAAM,EACXE,QAAS,WAAM,OAAAP,EAAYK,EAAM,EAAlB,EACfG,QAAQ,UACRL,UAAW,cACXM,MAAO,CAAEC,UAAW,gBAEnBL,EAAM,EARQ,IAWlBP,EAAWM,KAAI,SAACO,GAAc,OAC7BV,EAAC,QAAAC,cAAAI,SACC,CAAAD,IAAKM,EAAY,EACjBJ,QAAS,WAAM,OAAAP,EAAYW,EAAU,EACrCH,QAAQ,UACRL,UAAW,cACXM,MAAO,CAAEC,UAAW,gBAEnBC,MAKX"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../src/components/KeypadView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { Button } from '..'\n\nconst keys = Array.from(Array(9).keys())\n\nconst bottomKeys = ['*', '0', '#']\n\nconst Actions: FC<ActionsTypes> = ({ keyCallback }) => {\n return (\n <div className='pi-grid pi-grid-cols-3 pi-auto-cols-max pi-gap-y-6 pi-justify-items-center pi-place-items-center pi-justify-center pi-px-3'>\n {keys.map((key) => (\n <Button\n key={key + 1}\n onClick={() => keyCallback(key + 1)}\n variant='default'\n className={'pi-text-2xl'}\n style={{ transform: 'scale(1.15)' }}\n >\n {key + 1}\n </Button>\n ))}\n {bottomKeys.map((bottomKey) => (\n <Button\n key={bottomKey + 1}\n onClick={() => keyCallback(bottomKey)}\n variant='default'\n className={'pi-text-2xl'}\n style={{ transform: 'scale(1.15)' }}\n >\n {bottomKey}\n </Button>\n ))}\n </div>\n )\n}\n\nexport default Actions\n\ninterface ActionsTypes {\n keyCallback: any\n}\n"],"names":["keys","Array","from","bottomKeys","_a","keyCallback","React","createElement","className","map","key","Button","onClick","variant","style","transform","bottomKey"],"mappings":"60BAMMA,EAAOC,MAAMC,KAAKD,MAAM,GAAGD,QAE3BG,EAAa,CAAC,IAAK,IAAK,qBAEI,SAACC,GAAE,IAAAC,EAAWD,EAAAC,YAC9C,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,8HACZR,EAAKS,IAAI,SAACC,GAAQ,OACjBJ,EAAC,QAAAC,cAAAI,EAAMA,OACL,CAAAD,IAAKA,EAAM,EACXE,QAAS,WAAM,OAAAP,EAAYK,EAAM,EAAlB,EACfG,QAAQ,UACRL,UAAW,cACXM,MAAO,CAAEC,UAAW,gBAEnBL,EAAM,EARQ,GAWlBP,EAAWM,IAAI,SAACO,GAAc,OAC7BV,EAAC,QAAAC,cAAAI,SACC,CAAAD,IAAKM,EAAY,EACjBJ,QAAS,WAAM,OAAAP,EAAYW,EAAU,EACrCH,QAAQ,UACRL,UAAW,cACXM,MAAO,CAAEC,UAAW,gBAEnBC,KAKX"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),a=require("./Actions.js"),s=require("../../lib/webrtc/messages.js"),o=require("../../lib/island/island.js"),n=require("../../lib/phone/call.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var l=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var u=require("../../lib/user/default_device.js"),d=require("../../services/astproxy.js"),c=require("../../utils/customHooks/useEventListener.js"),p=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js");var m=require("../CustomThemedTooltip.js"),f=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),b=require("../../node_modules/react-redux/es/hooks/useSelector.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=y(e),v=["0","1","2","3","4","5","6","7","8","9","*","#"];exports.default=function(){var y=f.useDispatch(),h=b.useSelector((function(e){return e.currentCall})).keypadValue,q=b.useSelector((function(e){return e.island})).isOpen,x=e.useRef(h);function k(e){y.currentCall.updateKeypadValue("".concat(x.current).concat(e)),x.current="".concat(x.current).concat(e),n.playDtmfAudio(e),u.isWebRTC()?s.sendDTMF(e):d.sendPhysicalDTMF(e),p.eventDispatch("phone-island-call-keypad-sent",{})}c.useEventListener("phone-island-call-keypad-send",(function(e){k(e.key)})),e.useEffect((function(){function e(e){v.includes(e.key)&&k(e.key)}return window.addEventListener("keydown",e),function(){return window.removeEventListener("keydown",e)}}),[]);var g=l.useTranslation().t;return j.default.createElement(j.default.Fragment,null,q?j.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-7"},j.default.createElement("div",{className:"pi-flex pi-gap-4"},j.default.createElement(r.Button,{variant:"transparent",onClick:o.backToPreviousView,"data-tooltip-id":"keyboard-tooltip","data-tooltip-content":g("Tooltip.Back to call")||""},j.default.createElement(t.FontAwesomeIcon,{size:"xl",icon:i.faArrowLeft})),j.default.createElement("input",{"data-stop-propagation":!0,type:"text",readOnly:!0,placeholder:g("Common.Enter a phone number")||"",value:h,autoFocus:!0,className:"pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:focus:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]"})),j.default.createElement(a.default,{keyCallback:k})):j.default.createElement("div",{className:"pi-font-medium pi-text-base"},"Keypad"),j.default.createElement(m.CustomThemedTooltip,{className:"pi-z-1000",id:"keyboard-tooltip",place:"right"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),a=require("./Actions.js"),s=require("../../lib/webrtc/messages.js"),o=require("../../lib/island/island.js"),n=require("../../lib/phone/call.js");require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var l=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var u=require("../../lib/user/default_device.js"),d=require("../../services/astproxy.js"),c=require("../../utils/customHooks/useEventListener.js"),p=require("../../utils/genericFunctions/eventDispatch.js");require("../../node_modules/tslib/tslib.es6.js"),require("../../store/index.js");var m=require("../CustomThemedTooltip.js"),f=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),b=require("../../node_modules/react-redux/es/hooks/useSelector.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=y(e),v=["0","1","2","3","4","5","6","7","8","9","*","#"];exports.default=function(){var y=f.useDispatch(),h=b.useSelector(function(e){return e.currentCall}).keypadValue,q=b.useSelector(function(e){return e.island}).isOpen,x=e.useRef(h);function k(e){y.currentCall.updateKeypadValue("".concat(x.current).concat(e)),x.current="".concat(x.current).concat(e),n.playDtmfAudio(e),u.isWebRTC()?s.sendDTMF(e):d.sendPhysicalDTMF(e),p.eventDispatch("phone-island-call-keypad-sent",{})}c.useEventListener("phone-island-call-keypad-send",function(e){k(e.key)}),e.useEffect(function(){function e(e){v.includes(e.key)&&k(e.key)}return window.addEventListener("keydown",e),function(){return window.removeEventListener("keydown",e)}},[]);var g=l.useTranslation().t;return j.default.createElement(j.default.Fragment,null,q?j.default.createElement("div",{className:"pi-flex pi-flex-col pi-gap-7"},j.default.createElement("div",{className:"pi-flex pi-gap-4"},j.default.createElement(r.Button,{variant:"transparent",onClick:o.backToPreviousView,"data-tooltip-id":"keyboard-tooltip","data-tooltip-content":g("Tooltip.Back to call")||""},j.default.createElement(t.FontAwesomeIcon,{size:"xl",icon:i.faArrowLeft})),j.default.createElement("input",{"data-stop-propagation":!0,type:"text",readOnly:!0,placeholder:g("Common.Enter a phone number")||"",value:h,autoFocus:!0,className:"pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:focus:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]"})),j.default.createElement(a.default,{keyCallback:k})):j.default.createElement("div",{className:"pi-font-medium pi-text-base"},"Keypad"),j.default.createElement(m.CustomThemedTooltip,{className:"pi-z-1000",id:"keyboard-tooltip",place:"right"}))};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/KeypadView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useEffect, useRef } from 'react'\nimport { Button } from '../Button'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowLeft } from '@fortawesome/free-solid-svg-icons'\nimport Actions from './Actions'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { backToPreviousView } from '../../lib/island/island'\nimport { playDtmfAudio } from '../../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nconst DTMF_KEYS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#']\n\nconst KeypadView: FC<KeypadViewTypes> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { keypadValue } = useSelector((state: RootState) => state.currentCall)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const keypadValueRef = useRef<typeof keypadValue>(keypadValue)\n\n function sendKey(key: string) {\n dispatch.currentCall.updateKeypadValue(`${keypadValueRef.current}${key}`)\n keypadValueRef.current = `${keypadValueRef.current}${key}`\n playDtmfAudio(key)\n if (isWebRTC()) {\n sendDTMF(key)\n } else {\n sendPhysicalDTMF(key)\n }\n\n eventDispatch('phone-island-call-keypad-sent', {})\n }\n useEventListener('phone-island-call-keypad-send', (data: KeypadTypes) => {\n sendKey(data.key)\n })\n\n useEffect(() => {\n function handlePhysicalKeydown(event) {\n if (DTMF_KEYS.includes(event.key)) {\n sendKey(event.key)\n }\n }\n window.addEventListener('keydown', handlePhysicalKeydown)\n return () => window.removeEventListener('keydown', handlePhysicalKeydown)\n }, [])\n\n const { t } = useTranslation()\n\n return (\n <>\n {isOpen ? (\n <div className='pi-flex pi-flex-col pi-gap-7'>\n <div className='pi-flex pi-gap-4'>\n <Button\n variant='transparent'\n onClick={backToPreviousView}\n data-tooltip-id='keyboard-tooltip'\n data-tooltip-content={t('Tooltip.Back to call') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faArrowLeft} />\n </Button>\n <input\n data-stop-propagation={true}\n type='text'\n readOnly\n placeholder={t('Common.Enter a phone number') || ''}\n value={keypadValue}\n autoFocus\n className='pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:focus:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]'\n />\n </div>\n <Actions keyCallback={sendKey} />\n </div>\n ) : (\n <div className='pi-font-medium pi-text-base'>Keypad</div>\n )}\n <CustomThemedTooltip className='pi-z-1000' id='keyboard-tooltip' place='right' />\n </>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n\ninterface KeypadTypes {\n key: string\n}\n"],"names":["DTMF_KEYS","dispatch","useDispatch","keypadValue","useSelector","state","currentCall","isOpen","island","keypadValueRef","useRef","sendKey","key","updateKeypadValue","concat","current","playDtmfAudio","isWebRTC","sendDTMF","sendPhysicalDTMF","eventDispatch","useEventListener","data","useEffect","handlePhysicalKeydown","event","includes","window","addEventListener","removeEventListener","t","useTranslation","React","createElement","Fragment","className","Button","variant","onClick","backToPreviousView","FontAwesomeIcon","size","icon","faArrowLeft","type","readOnly","placeholder","value","autoFocus","Actions","keyCallback","CustomThemedTooltip","id","place"],"mappings":"s/CAmBMA,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,qBAElC,WACtC,IAAMC,EAAWC,EAAAA,cACTC,EAAgBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,2BACxDC,EAAWH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,iBACrDC,EAAiBC,SAA2BP,GAElD,SAASQ,EAAQC,GACfX,EAASK,YAAYO,kBAAkB,GAAAC,OAAGL,EAAeM,SAAOD,OAAGF,IACnEH,EAAeM,QAAU,GAAGD,OAAAL,EAAeM,SAAOD,OAAGF,GACrDI,EAAaA,cAACJ,GACVK,EAAQA,WACVC,EAAQA,SAACN,GAETO,EAAgBA,iBAACP,GAGnBQ,gBAAc,gCAAiC,CAAA,EAChD,CACDC,mBAAiB,iCAAiC,SAACC,GACjDX,EAAQW,EAAKV,IACf,IAEAW,EAAAA,WAAU,WACR,SAASC,EAAsBC,GACzBzB,EAAU0B,SAASD,EAAMb,MAC3BD,EAAQc,EAAMb,IAEjB,CAED,OADAe,OAAOC,iBAAiB,UAAWJ,GAC5B,WAAM,OAAAG,OAAOE,oBAAoB,UAAWL,GACpD,GAAE,IAEK,IAAAM,EAAMC,qBAEd,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACG3B,EACCyB,EAAK,QAAAC,cAAA,MAAA,CAAAE,UAAU,gCACbH,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,oBACbH,EAAAA,QAAAC,cAACG,EAAAA,OACC,CAAAC,QAAQ,cACRC,QAASC,EAAkBA,mBAAA,kBACX,mBACM,uBAAAT,EAAE,yBAA2B,IAEnDE,UAACC,cAAAO,EAAAA,gBAAgB,CAAAC,KAAK,KAAKC,KAAMC,EAAWA,eAE9CX,UACyBC,cAAA,QAAA,CAAA,yBAAA,EACvBW,KAAK,OACLC,UACA,EAAAC,YAAahB,EAAE,gCAAkC,GACjDiB,MAAO5C,EACP6C,WAAS,EACTb,UAAU,gcAGdH,EAAA,QAAAC,cAACgB,EAAO,QAAC,CAAAC,YAAavC,KAGxBqB,EAAA,QAAAC,cAAA,MAAA,CAAKE,UAAU,yCAEjBH,EAAAA,QAAAC,cAACkB,sBAAoB,CAAAhB,UAAU,YAAYiB,GAAG,mBAAmBC,MAAM,UAG7E"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/KeypadView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useEffect, useRef } from 'react'\nimport { Button } from '../Button'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faArrowLeft } from '@fortawesome/free-solid-svg-icons'\nimport Actions from './Actions'\nimport { sendDTMF } from '../../lib/webrtc/messages'\nimport { backToPreviousView } from '../../lib/island/island'\nimport { playDtmfAudio } from '../../lib/phone/call'\nimport { useTranslation } from 'react-i18next'\nimport { isWebRTC } from '../../lib/user/default_device'\nimport { sendPhysicalDTMF } from '../../services/astproxy'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nconst DTMF_KEYS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#']\n\nconst KeypadView: FC<KeypadViewTypes> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { keypadValue } = useSelector((state: RootState) => state.currentCall)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const keypadValueRef = useRef<typeof keypadValue>(keypadValue)\n\n function sendKey(key: string) {\n dispatch.currentCall.updateKeypadValue(`${keypadValueRef.current}${key}`)\n keypadValueRef.current = `${keypadValueRef.current}${key}`\n playDtmfAudio(key)\n if (isWebRTC()) {\n sendDTMF(key)\n } else {\n sendPhysicalDTMF(key)\n }\n\n eventDispatch('phone-island-call-keypad-sent', {})\n }\n useEventListener('phone-island-call-keypad-send', (data: KeypadTypes) => {\n sendKey(data.key)\n })\n\n useEffect(() => {\n function handlePhysicalKeydown(event) {\n if (DTMF_KEYS.includes(event.key)) {\n sendKey(event.key)\n }\n }\n window.addEventListener('keydown', handlePhysicalKeydown)\n return () => window.removeEventListener('keydown', handlePhysicalKeydown)\n }, [])\n\n const { t } = useTranslation()\n\n return (\n <>\n {isOpen ? (\n <div className='pi-flex pi-flex-col pi-gap-7'>\n <div className='pi-flex pi-gap-4'>\n <Button\n variant='transparent'\n onClick={backToPreviousView}\n data-tooltip-id='keyboard-tooltip'\n data-tooltip-content={t('Tooltip.Back to call') || ''}\n >\n <FontAwesomeIcon size='xl' icon={faArrowLeft} />\n </Button>\n <input\n data-stop-propagation={true}\n type='text'\n readOnly\n placeholder={t('Common.Enter a phone number') || ''}\n value={keypadValue}\n autoFocus\n className='pi-w-full pi-rounded-full dark:pi-bg-gray-950 pi-bg-gray-50 pi-border-2 pi-border-emerald-500 dark:pi-border-emerald-200 active:pi-border-emerald-500 dark:active:focus:pi-border-emerald-200 focus:pi-border-emerald-500 dark:focus:pi-border-emerald-200 pi-text-gray-900 dark:pi-text-gray-50 pi-font-light pi-text-xl pi-text-center pi-px-2 focus:pi-outline-0 focus:pi-ring-0 pi-placeholder-gray-400 dark:pi-placeholder-gray-500 pi-font-[inherit]'\n />\n </div>\n <Actions keyCallback={sendKey} />\n </div>\n ) : (\n <div className='pi-font-medium pi-text-base'>Keypad</div>\n )}\n <CustomThemedTooltip className='pi-z-1000' id='keyboard-tooltip' place='right' />\n </>\n )\n}\n\nexport default KeypadView\n\nexport interface KeypadViewTypes {}\n\ninterface KeypadTypes {\n key: string\n}\n"],"names":["DTMF_KEYS","dispatch","useDispatch","keypadValue","useSelector","state","currentCall","isOpen","island","keypadValueRef","useRef","sendKey","key","updateKeypadValue","concat","current","playDtmfAudio","isWebRTC","sendDTMF","sendPhysicalDTMF","eventDispatch","useEventListener","data","useEffect","handlePhysicalKeydown","event","includes","window","addEventListener","removeEventListener","t","useTranslation","React","createElement","Fragment","className","Button","variant","onClick","backToPreviousView","FontAwesomeIcon","size","icon","faArrowLeft","type","readOnly","placeholder","value","autoFocus","Actions","keyCallback","CustomThemedTooltip","id","place"],"mappings":"s/CAmBMA,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,qBAElC,WACtC,IAAMC,EAAWC,EAAAA,cACTC,EAAgBC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,0BACxDC,EAAWH,cAAY,SAACC,GAAqB,OAAAA,EAAMG,gBACrDC,EAAiBC,SAA2BP,GAElD,SAASQ,EAAQC,GACfX,EAASK,YAAYO,kBAAkB,GAAAC,OAAGL,EAAeM,SAAOD,OAAGF,IACnEH,EAAeM,QAAU,GAAGD,OAAAL,EAAeM,SAAOD,OAAGF,GACrDI,EAAaA,cAACJ,GACVK,EAAQA,WACVC,EAAQA,SAACN,GAETO,EAAgBA,iBAACP,GAGnBQ,gBAAc,gCAAiC,CAAA,EAChD,CACDC,mBAAiB,gCAAiC,SAACC,GACjDX,EAAQW,EAAKV,IACf,GAEAW,EAAAA,UAAU,WACR,SAASC,EAAsBC,GACzBzB,EAAU0B,SAASD,EAAMb,MAC3BD,EAAQc,EAAMb,IAEjB,CAED,OADAe,OAAOC,iBAAiB,UAAWJ,GAC5B,WAAM,OAAAG,OAAOE,oBAAoB,UAAWL,GACpD,EAAE,IAEK,IAAAM,EAAMC,qBAEd,OACEC,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACG3B,EACCyB,EAAK,QAAAC,cAAA,MAAA,CAAAE,UAAU,gCACbH,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,oBACbH,EAAAA,QAAAC,cAACG,EAAAA,OACC,CAAAC,QAAQ,cACRC,QAASC,EAAkBA,mBAAA,kBACX,mBACM,uBAAAT,EAAE,yBAA2B,IAEnDE,UAACC,cAAAO,EAAAA,gBAAgB,CAAAC,KAAK,KAAKC,KAAMC,EAAWA,eAE9CX,UACyBC,cAAA,QAAA,CAAA,yBAAA,EACvBW,KAAK,OACLC,UACA,EAAAC,YAAahB,EAAE,gCAAkC,GACjDiB,MAAO5C,EACP6C,WAAS,EACTb,UAAU,gcAGdH,EAAA,QAAAC,cAACgB,EAAO,QAAC,CAAAC,YAAavC,KAGxBqB,EAAA,QAAAC,cAAA,MAAA,CAAKE,UAAU,yCAEjBH,EAAAA,QAAAC,cAACkB,sBAAoB,CAAAhB,UAAU,YAAYiB,GAAG,mBAAmBC,MAAM,UAG7E"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var r=require("../Button.js"),l=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),u=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../GenericAvatar.js"),i=require("../CustomThemedTooltip.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js"),a=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(e);exports.OperatorBusyView=function(){var s=o.useSelector((function(e){return e.island})),d=s.operatorBusy,m=s.previousView,f=o.useSelector((function(e){return e.avatars})).avatars,p=o.useSelector((function(e){return e.users})).extensions,v=t.useTranslation().t,b=a.useDispatch(),x=o.useSelector((function(e){return e.conference})),y=x.isActive,j=x.conferenceStartedFrom,N=o.useSelector((function(e){return e.currentUser})).username,q=o.useSelector((function(e){return e.currentCall})),w=q.accepted,h=q.incoming,_=q.outgoing,E=e.useCallback((function(){return y&&j===N?"waitingConference":w||h||_?m||"call":null}),[w,j,h,y,_,m,N]),C=e.useCallback((function(){b.player.stopAudioPlayer(),b.island.resetOperatorBusyCompletely(),b.island.setIslandView(E())}),[b,E]),g=e.useMemo((function(){if((null==d?void 0:d.calledNumber)&&p){var e=Object.values(p).find((function(e){return e.exten===(null==d?void 0:d.calledNumber)}));return e?null==e?void 0:e.username:null}return null}),[p,null==d?void 0:d.calledNumber]),k=e.useMemo((function(){return g&&f&&f[g]?f[g]:null}),[f,g]),T=e.useMemo((function(){return null!==g}),[g]),S=e.useMemo((function(){if(p&&(null==d?void 0:d.calledNumber)&&""!==(null==d?void 0:d.calledNumber)){var e=Object.values(p).find((function(e){return(null==e?void 0:e.exten)===(null==d?void 0:d.calledNumber)}));return e&&(null==e?void 0:e.name)&&""!==(null==e?void 0:e.name)?null==e?void 0:e.name:null==d?void 0:d.calledNumber}return"-"}),[null==d?void 0:d.calledNumber,p]),A=e.useMemo((function(){return v(T?"Call.User busy":"Call.Number busy")}),[v,T]);return e.useEffect((function(){return function(){b.player.stopAudioPlayer()}}),[b]),e.useEffect((function(){var e=window.setTimeout((function(){C()}),4e3);return function(){window.clearTimeout(e)}}),[C]),c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-w-full"},c.default.createElement("div",{className:"pi-flex pi-items-center pi-space-x-3"},c.default.createElement(n.GenericAvatar,{avatarUrl:k,size:"open",showPulseEffect:!1}),c.default.createElement("div",{className:"pi-flex pi-flex-col"},c.default.createElement("div",{className:"pi-text-lg pi-font-medium pi-text-primaryNeutral dark:pi-text-primaryNeutralDark"},S),c.default.createElement("div",{className:"pi-text-sm pi-font-regular pi-text-primaryNeutral dark:pi-text-primaryNeutralDark"},A))),c.default.createElement(r.Button,{variant:"default",onClick:C,className:"pi-p-2","data-tooltip-id":"tooltip-close-busy-call","data-tooltip-content":v("Tooltip.Close")||"Close"},c.default.createElement(l.FontAwesomeIcon,{icon:u.faXmark,className:"pi-w-5 pi-h-5"}))),c.default.createElement(i.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-close-busy-call",place:"left"}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var t=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var r=require("../Button.js"),l=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),u=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),n=require("../GenericAvatar.js"),i=require("../CustomThemedTooltip.js"),o=require("../../node_modules/react-redux/es/hooks/useSelector.js"),a=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=s(e);exports.OperatorBusyView=function(){var s=o.useSelector(function(e){return e.island}),d=s.operatorBusy,m=s.previousView,f=o.useSelector(function(e){return e.avatars}).avatars,p=o.useSelector(function(e){return e.users}).extensions,v=t.useTranslation().t,b=a.useDispatch(),x=o.useSelector(function(e){return e.conference}),y=x.isActive,j=x.conferenceStartedFrom,N=o.useSelector(function(e){return e.currentUser}).username,q=o.useSelector(function(e){return e.currentCall}),w=q.accepted,h=q.incoming,_=q.outgoing,E=e.useCallback(function(){return y&&j===N?"waitingConference":w||h||_?m||"call":null},[w,j,h,y,_,m,N]),C=e.useCallback(function(){b.player.stopAudioPlayer(),b.island.resetOperatorBusyCompletely(),b.island.setIslandView(E())},[b,E]),g=e.useMemo(function(){if((null==d?void 0:d.calledNumber)&&p){var e=Object.values(p).find(function(e){return e.exten===(null==d?void 0:d.calledNumber)});return e?null==e?void 0:e.username:null}return null},[p,null==d?void 0:d.calledNumber]),k=e.useMemo(function(){return g&&f&&f[g]?f[g]:null},[f,g]),T=e.useMemo(function(){return null!==g},[g]),S=e.useMemo(function(){if(p&&(null==d?void 0:d.calledNumber)&&""!==(null==d?void 0:d.calledNumber)){var e=Object.values(p).find(function(e){return(null==e?void 0:e.exten)===(null==d?void 0:d.calledNumber)});return e&&(null==e?void 0:e.name)&&""!==(null==e?void 0:e.name)?null==e?void 0:e.name:null==d?void 0:d.calledNumber}return"-"},[null==d?void 0:d.calledNumber,p]),A=e.useMemo(function(){return v(T?"Call.User busy":"Call.Number busy")},[v,T]);return e.useEffect(function(){return function(){b.player.stopAudioPlayer()}},[b]),e.useEffect(function(){var e=window.setTimeout(function(){C()},4e3);return function(){window.clearTimeout(e)}},[C]),c.default.createElement(c.default.Fragment,null,c.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-between pi-w-full"},c.default.createElement("div",{className:"pi-flex pi-items-center pi-space-x-3"},c.default.createElement(n.GenericAvatar,{avatarUrl:k,size:"open",showPulseEffect:!1}),c.default.createElement("div",{className:"pi-flex pi-flex-col"},c.default.createElement("div",{className:"pi-text-lg pi-font-medium pi-text-primaryNeutral dark:pi-text-primaryNeutralDark"},S),c.default.createElement("div",{className:"pi-text-sm pi-font-regular pi-text-primaryNeutral dark:pi-text-primaryNeutralDark"},A))),c.default.createElement(r.Button,{variant:"default",onClick:C,className:"pi-p-2","data-tooltip-id":"tooltip-close-busy-call","data-tooltip-content":v("Tooltip.Close")||"Close"},c.default.createElement(l.FontAwesomeIcon,{icon:u.faXmark,className:"pi-w-5 pi-h-5"}))),c.default.createElement(i.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-close-busy-call",place:"left"}))};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/OperatorBusyView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useCallback, useMemo, useEffect } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { useTranslation } from 'react-i18next'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\nimport { GenericAvatar } from '../GenericAvatar'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nexport const OperatorBusyView: FC<OperatorBusyViewProps> = () => {\n const { operatorBusy, previousView } = useSelector((state: RootState) => state.island)\n const { avatars } = useSelector((state: RootState) => state.avatars)\n const { extensions } = useSelector((state: RootState) => state.users)\n const { t } = useTranslation()\n const dispatch = useDispatch<Dispatch>()\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username } = useSelector((state: RootState) => state.currentUser)\n const { accepted, incoming, outgoing } = useSelector((state: RootState) => state.currentCall)\n\n const getNextViewOnClose = useCallback(() => {\n if (isActive && conferenceStartedFrom === username) {\n return 'waitingConference'\n }\n\n if (accepted || incoming || outgoing) {\n return previousView || 'call'\n }\n\n return null\n }, [accepted, conferenceStartedFrom, incoming, isActive, outgoing, previousView, username])\n\n const handleClose = useCallback(() => {\n // Stop any playing busy tone\n dispatch.player.stopAudioPlayer()\n // Reset operator busy state completely when user closes manually\n dispatch.island.resetOperatorBusyCompletely()\n dispatch.island.setIslandView(getNextViewOnClose())\n }, [dispatch, getNextViewOnClose])\n\n // Get the username of the operator based on called extension number\n const operatorUsername = useMemo(() => {\n // Check if we have the called number and extensions are loaded\n if (operatorBusy?.calledNumber && extensions) {\n // Find the extension that matches the called number\n const extension = Object.values(extensions).find(\n (ext) => ext.exten === operatorBusy?.calledNumber,\n )\n // Return the username if found\n return extension ? extension?.username : null\n }\n return null\n }, [extensions, operatorBusy?.calledNumber])\n\n // Get avatar URL based on operator's username\n const avatarUrl = useMemo(() => {\n // If we have the username and avatars, look for the avatar\n if (operatorUsername && avatars && avatars[operatorUsername]) {\n return avatars[operatorUsername]\n }\n return null\n }, [avatars, operatorUsername])\n\n // Check if the called number is an operator (has username)\n const isOperator = useMemo(() => {\n return operatorUsername !== null\n }, [operatorUsername])\n\n // Format display text - show the operator name or called number\n const displayText = useMemo(() => {\n if (extensions && operatorBusy?.calledNumber && operatorBusy?.calledNumber !== '') {\n // Try to get the extension to display the name if available\n const extension = Object.values(extensions).find(\n (ext) => ext?.exten === operatorBusy?.calledNumber,\n )\n\n // If we found the extension and it has a name, show the name\n if (extension && extension?.name && extension?.name !== '') {\n return extension?.name\n }\n\n // Otherwise just show the extension number\n return operatorBusy?.calledNumber\n }\n //fallback string\n return '-'\n }, [operatorBusy?.calledNumber, extensions])\n\n const statusText = useMemo(() => {\n // If it's an operator, show \"User busy\", otherwise show \"Number busy\"\n if (isOperator) {\n return t('Call.User busy')\n }\n return t('Call.Number busy')\n }, [t, isOperator])\n\n // Stop busy tone when component unmounts\n useEffect(() => {\n return () => {\n dispatch.player.stopAudioPlayer()\n }\n }, [dispatch])\n\n useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n handleClose()\n }, 4000)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [handleClose])\n\n return (\n <>\n <div className='pi-flex pi-items-center pi-justify-between pi-w-full'>\n {/* Left side - Avatar and info */}\n <div className='pi-flex pi-items-center pi-space-x-3'>\n {/* Avatar */}\n <GenericAvatar avatarUrl={avatarUrl} size='open' showPulseEffect={false} />\n\n {/* Number and status */}\n <div className='pi-flex pi-flex-col'>\n <div className='pi-text-lg pi-font-medium pi-text-primaryNeutral dark:pi-text-primaryNeutralDark'>\n {displayText}\n </div>\n <div className='pi-text-sm pi-font-regular pi-text-primaryNeutral dark:pi-text-primaryNeutralDark'>\n {statusText}\n </div>\n </div>\n </div>\n\n {/* Right side - Close button */}\n <Button\n variant='default'\n onClick={handleClose}\n className='pi-p-2'\n data-tooltip-id='tooltip-close-busy-call'\n data-tooltip-content={t('Tooltip.Close') || 'Close'}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n <CustomThemedTooltip className='pi-z-20' id='tooltip-close-busy-call' place='left' />\n </>\n )\n}\n\nexport interface OperatorBusyViewProps {}\n"],"names":["_a","useSelector","state","island","operatorBusy","previousView","avatars","extensions","users","t","useTranslation","dispatch","useDispatch","_b","conference","isActive","conferenceStartedFrom","username","currentUser","_c","currentCall","accepted","incoming","outgoing","getNextViewOnClose","useCallback","handleClose","player","stopAudioPlayer","resetOperatorBusyCompletely","setIslandView","operatorUsername","useMemo","calledNumber","extension","Object","values","find","ext","exten","avatarUrl","isOperator","displayText","name","statusText","useEffect","timeoutId","window","setTimeout","clearTimeout","React","createElement","Fragment","className","GenericAvatar","size","showPulseEffect","Button","variant","onClick","FontAwesomeIcon","icon","faXmark","CustomThemedTooltip","id","place"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/OperatorBusyView/index.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useCallback, useMemo, useEffect } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../../store'\nimport { useTranslation } from 'react-i18next'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faXmark } from '@fortawesome/free-solid-svg-icons'\nimport { GenericAvatar } from '../GenericAvatar'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nexport const OperatorBusyView: FC<OperatorBusyViewProps> = () => {\n const { operatorBusy, previousView } = useSelector((state: RootState) => state.island)\n const { avatars } = useSelector((state: RootState) => state.avatars)\n const { extensions } = useSelector((state: RootState) => state.users)\n const { t } = useTranslation()\n const dispatch = useDispatch<Dispatch>()\n const { isActive, conferenceStartedFrom } = useSelector((state: RootState) => state.conference)\n const { username } = useSelector((state: RootState) => state.currentUser)\n const { accepted, incoming, outgoing } = useSelector((state: RootState) => state.currentCall)\n\n const getNextViewOnClose = useCallback(() => {\n if (isActive && conferenceStartedFrom === username) {\n return 'waitingConference'\n }\n\n if (accepted || incoming || outgoing) {\n return previousView || 'call'\n }\n\n return null\n }, [accepted, conferenceStartedFrom, incoming, isActive, outgoing, previousView, username])\n\n const handleClose = useCallback(() => {\n // Stop any playing busy tone\n dispatch.player.stopAudioPlayer()\n // Reset operator busy state completely when user closes manually\n dispatch.island.resetOperatorBusyCompletely()\n dispatch.island.setIslandView(getNextViewOnClose())\n }, [dispatch, getNextViewOnClose])\n\n // Get the username of the operator based on called extension number\n const operatorUsername = useMemo(() => {\n // Check if we have the called number and extensions are loaded\n if (operatorBusy?.calledNumber && extensions) {\n // Find the extension that matches the called number\n const extension = Object.values(extensions).find(\n (ext) => ext.exten === operatorBusy?.calledNumber,\n )\n // Return the username if found\n return extension ? extension?.username : null\n }\n return null\n }, [extensions, operatorBusy?.calledNumber])\n\n // Get avatar URL based on operator's username\n const avatarUrl = useMemo(() => {\n // If we have the username and avatars, look for the avatar\n if (operatorUsername && avatars && avatars[operatorUsername]) {\n return avatars[operatorUsername]\n }\n return null\n }, [avatars, operatorUsername])\n\n // Check if the called number is an operator (has username)\n const isOperator = useMemo(() => {\n return operatorUsername !== null\n }, [operatorUsername])\n\n // Format display text - show the operator name or called number\n const displayText = useMemo(() => {\n if (extensions && operatorBusy?.calledNumber && operatorBusy?.calledNumber !== '') {\n // Try to get the extension to display the name if available\n const extension = Object.values(extensions).find(\n (ext) => ext?.exten === operatorBusy?.calledNumber,\n )\n\n // If we found the extension and it has a name, show the name\n if (extension && extension?.name && extension?.name !== '') {\n return extension?.name\n }\n\n // Otherwise just show the extension number\n return operatorBusy?.calledNumber\n }\n //fallback string\n return '-'\n }, [operatorBusy?.calledNumber, extensions])\n\n const statusText = useMemo(() => {\n // If it's an operator, show \"User busy\", otherwise show \"Number busy\"\n if (isOperator) {\n return t('Call.User busy')\n }\n return t('Call.Number busy')\n }, [t, isOperator])\n\n // Stop busy tone when component unmounts\n useEffect(() => {\n return () => {\n dispatch.player.stopAudioPlayer()\n }\n }, [dispatch])\n\n useEffect(() => {\n const timeoutId = window.setTimeout(() => {\n handleClose()\n }, 4000)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [handleClose])\n\n return (\n <>\n <div className='pi-flex pi-items-center pi-justify-between pi-w-full'>\n {/* Left side - Avatar and info */}\n <div className='pi-flex pi-items-center pi-space-x-3'>\n {/* Avatar */}\n <GenericAvatar avatarUrl={avatarUrl} size='open' showPulseEffect={false} />\n\n {/* Number and status */}\n <div className='pi-flex pi-flex-col'>\n <div className='pi-text-lg pi-font-medium pi-text-primaryNeutral dark:pi-text-primaryNeutralDark'>\n {displayText}\n </div>\n <div className='pi-text-sm pi-font-regular pi-text-primaryNeutral dark:pi-text-primaryNeutralDark'>\n {statusText}\n </div>\n </div>\n </div>\n\n {/* Right side - Close button */}\n <Button\n variant='default'\n onClick={handleClose}\n className='pi-p-2'\n data-tooltip-id='tooltip-close-busy-call'\n data-tooltip-content={t('Tooltip.Close') || 'Close'}\n >\n <FontAwesomeIcon icon={faXmark} className='pi-w-5 pi-h-5' />\n </Button>\n </div>\n <CustomThemedTooltip className='pi-z-20' id='tooltip-close-busy-call' place='left' />\n </>\n )\n}\n\nexport interface OperatorBusyViewProps {}\n"],"names":["_a","useSelector","state","island","operatorBusy","previousView","avatars","extensions","users","t","useTranslation","dispatch","useDispatch","_b","conference","isActive","conferenceStartedFrom","username","currentUser","_c","currentCall","accepted","incoming","outgoing","getNextViewOnClose","useCallback","handleClose","player","stopAudioPlayer","resetOperatorBusyCompletely","setIslandView","operatorUsername","useMemo","calledNumber","extension","Object","values","find","ext","exten","avatarUrl","isOperator","displayText","name","statusText","useEffect","timeoutId","window","setTimeout","clearTimeout","React","createElement","Fragment","className","GenericAvatar","size","showPulseEffect","Button","variant","onClick","FontAwesomeIcon","icon","faXmark","CustomThemedTooltip","id","place"],"mappings":"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"}