@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("../../node_modules/tslib/tslib.es6.js"),t=require("./janus.js"),r=require("../../store/index.js"),s=require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),a=require("../devices/devices.js");function o(e,s){return new Promise((function(a,o){var n=r.store.getState().webrtc.sipcall;n.createOffer({tracks:s,success:function(r){t.default.debug("Got SDP!"),t.default.debug(r),n.send({message:{request:"call",uri:e,autoaccept_reinvites:!1},jsep:r}),a(!0)},error:function(e){t.default.error("WebRTC error...",e),t.default.error("WebRTC error call on createOffer: ",e),o(!1)}})}))}exports.answerWebRTC=function(){var e,s=r.store.getState().webrtc,o=s.sipcall,n=s.jsepGlobal;if(console.log("[JSEP] answerWebRTC called",{hasSipcall:!!o,hasJsepGlobal:!!n,sipcallId:null===(e=null==o?void 0:o.getId)||void 0===e?void 0:e.call(o),timestamp:(new Date).toISOString()}),o&&n){var c=a.getCurrentAudioInputDeviceId(),i=[];c?i.push({type:"audio",capture:{deviceId:{exact:c}},recv:!0}):i.push({type:"audio",capture:!0,recv:!0});try{o.createAnswer({jsep:n,tracks:i,success:function(e){o.send({message:{request:"accept",autoaccept_reinvites:!1},jsep:e})},error:function(e){t.default.error("WebRTC error:",e),e&&("object"==typeof e&&469===e.code||"string"==typeof e&&e.includes("Unexpected ANSWER"))?(console.warn('Got "Unexpected ANSWER" error, forcing the answer anyway'),o.send({message:{request:"accept",autoaccept_reinvites:!1}})):o.send({message:{request:"decline",code:480}})}})}catch(e){console.error("Exception in createAnswer:",e),o.send({message:{request:"accept",autoaccept_reinvites:!1}})}}},exports.call=o,exports.callSipURI=function(r){var s=this;a.getSupportedDevices((function(){return e.__awaiter(s,void 0,void 0,(function(){var s,n;return e.__generator(this,(function(e){switch(e.label){case 0:return t.default.log("This is a SIP call"),s=a.getCurrentAudioInputDeviceId(),n=[],s?n.push({type:"audio",capture:{deviceId:{exact:s}},recv:!0}):n.push({type:"audio",capture:!0,recv:!0}),[4,o(r,n)];case 1:return e.sent(),[2]}}))}))}))},exports.detach=function(){var e=r.store.getState().webrtc.sipcall;if(e)return e.detach()},exports.handleRemote=function(e){var t=r.store.getState().webrtc.sipcall;t&&t.handleRemoteJsep({jsep:e,error:function(e){console.error("WebRTC error... "+JSON.stringify(e));t.send({message:{request:"hangup"}}),t.hangup()}})},exports.hangup=function(){var e=r.store.getState().webrtc.sipcall;e&&e.send({message:{request:"hangup"}})},exports.muteWebRTC=function(){var e=r.store.getState().webrtc.sipcall;return e.muteAudio(),e.isAudioMuted()},exports.pauseWebRTC=function(){var e=r.store.getState().webrtc.sipcall;try{return e.send({message:{request:"hold"}}),!0}catch(e){return console.error(e),!1}},exports.register=function(e){var t=e.sipExten,s=e.sipSecret,a=e.sipHost,o=e.sipPort,n=r.store.getState().webrtc,c=n.sipcall,i=n.registered,u=r.store.getState().currentUser.name;i?console.log("[REGISTER] Already registered, skipping registration request",{sipExten:t,timestamp:(new Date).toISOString()}):c&&(console.log("[REGISTER] Sending registration request",{sipExten:t,timestamp:(new Date).toISOString()}),c.send({message:{request:"register",username:"sip:".concat(t,"@").concat(a),display_name:u||"",secret:s,proxy:"sip:".concat(a,":").concat(o),outbound_proxy:"sip:".concat(a,":").concat(o),sips:!1,refresh:!1}}))},exports.sendDTMF=function(e){var t=r.store.getState().webrtc.sipcall;"chrome"===s.default.browserDetails.browser?t.dtmf({dtmf:{tones:e}}):t.send({message:{request:"dtmf_info",digit:"".concat(e)}})},exports.unmuteWebRTC=function(){var e=r.store.getState().webrtc.sipcall;return e.unmuteAudio(),!e.isAudioMuted()},exports.unpauseWebRTC=function(){var e=r.store.getState().webrtc.sipcall;try{return e.send({message:{request:"unhold"}}),!0}catch(e){return console.error(e),!1}},exports.unregister=function(){var e=r.store.getState().webrtc.sipcall;e&&e.send({message:{request:"unregister"}})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("./janus.js"),r=require("../../store/index.js"),s=require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),a=require("../devices/devices.js");function n(e){return e?e.replace(/["\\\r\n\t]/g,"").trim().replace(/^\*+\s*/,""):""}function o(e,s){return new Promise(function(a,n){var o=r.store.getState().webrtc.sipcall;o.createOffer({tracks:s,success:function(r){t.default.debug("Got SDP!"),t.default.debug(r),o.send({message:{request:"call",uri:e,autoaccept_reinvites:!1},jsep:r}),a(!0)},error:function(e){t.default.error("WebRTC error...",e),t.default.error("WebRTC error call on createOffer: ",e),n(!1)}})})}exports.answerWebRTC=function(){var e,s=r.store.getState().webrtc,n=s.sipcall,o=s.jsepGlobal;if(console.log("[JSEP] answerWebRTC called",{hasSipcall:!!n,hasJsepGlobal:!!o,sipcallId:null===(e=null==n?void 0:n.getId)||void 0===e?void 0:e.call(n),timestamp:(new Date).toISOString()}),n&&o){var c=a.getCurrentAudioInputDeviceId(),i=[];c?i.push({type:"audio",capture:{deviceId:{exact:c}},recv:!0}):i.push({type:"audio",capture:!0,recv:!0});try{n.createAnswer({jsep:o,tracks:i,success:function(e){n.send({message:{request:"accept",autoaccept_reinvites:!1},jsep:e})},error:function(e){t.default.error("WebRTC error:",e),e&&("object"==typeof e&&469===e.code||"string"==typeof e&&e.includes("Unexpected ANSWER"))?(console.warn('Got "Unexpected ANSWER" error, forcing the answer anyway'),n.send({message:{request:"accept",autoaccept_reinvites:!1}})):n.send({message:{request:"decline",code:480}})}})}catch(e){console.error("Exception in createAnswer:",e),n.send({message:{request:"accept",autoaccept_reinvites:!1}})}}},exports.call=o,exports.callSipURI=function(r){var s=this;a.getSupportedDevices(function(){return e.__awaiter(s,void 0,void 0,function(){var s,n;return e.__generator(this,function(e){switch(e.label){case 0:return t.default.log("This is a SIP call"),s=a.getCurrentAudioInputDeviceId(),n=[],s?n.push({type:"audio",capture:{deviceId:{exact:s}},recv:!0}):n.push({type:"audio",capture:!0,recv:!0}),[4,o(r,n)];case 1:return e.sent(),[2]}})})})},exports.detach=function(){var e=r.store.getState().webrtc.sipcall;if(e)return e.detach()},exports.handleRemote=function(e){var t=r.store.getState().webrtc.sipcall;t&&t.handleRemoteJsep({jsep:e,error:function(e){console.error("WebRTC error... "+JSON.stringify(e));t.send({message:{request:"hangup"}}),t.hangup()}})},exports.hangup=function(){var e=r.store.getState().webrtc.sipcall;e&&e.send({message:{request:"hangup"}})},exports.muteWebRTC=function(){var e=r.store.getState().webrtc.sipcall;return e.muteAudio(),e.isAudioMuted()},exports.pauseWebRTC=function(){var e=r.store.getState().webrtc.sipcall;try{return e.send({message:{request:"hold"}}),!0}catch(e){return console.error(e),!1}},exports.register=function(e){var t=e.sipExten,s=e.sipSecret,a=e.sipHost,o=e.sipPort,c=r.store.getState().webrtc,i=c.sipcall,u=c.registered,p=r.store.getState().currentUser.name;u?console.log("[REGISTER] Already registered, skipping registration request",{sipExten:t,timestamp:(new Date).toISOString()}):i&&(console.log("[REGISTER] Sending registration request",{sipExten:t,timestamp:(new Date).toISOString()}),i.send({message:{request:"register",username:"sip:".concat(t,"@").concat(a),display_name:n(p),secret:s,proxy:"sip:".concat(a,":").concat(o),outbound_proxy:"sip:".concat(a,":").concat(o),sips:!1,refresh:!1}}))},exports.sendDTMF=function(e){var t=r.store.getState().webrtc.sipcall;"chrome"===s.default.browserDetails.browser?t.dtmf({dtmf:{tones:e}}):t.send({message:{request:"dtmf_info",digit:"".concat(e)}})},exports.toSipDisplayName=n,exports.unmuteWebRTC=function(){var e=r.store.getState().webrtc.sipcall;return e.unmuteAudio(),!e.isAudioMuted()},exports.unpauseWebRTC=function(){var e=r.store.getState().webrtc.sipcall;try{return e.send({message:{request:"unhold"}}),!0}catch(e){return console.error(e),!1}},exports.unregister=function(){var e=r.store.getState().webrtc.sipcall;e&&e.send({message:{request:"unregister"}})};
2
2
  //# sourceMappingURL=messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sources":["../../../src/lib/webrtc/messages.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport Janus from './janus'\nimport { store } from '../../store'\nimport adapter from 'webrtc-adapter'\nimport { getCurrentAudioInputDeviceId, getSupportedDevices } from '../devices/devices'\nimport { getJSONItem } from '../../utils'\nimport { JanusTrack } from '../../types'\n\nexport function register({\n sipExten,\n sipSecret,\n sipHost,\n sipPort,\n}: {\n sipExten: string\n sipSecret: string\n sipHost: string\n sipPort: string\n}) {\n const { sipcall, registered }: { sipcall: any; registered: boolean } = store.getState().webrtc\n const { name } = store.getState().currentUser\n\n // Prevent multiple registrations if already registered\n if (registered) {\n console.log('[REGISTER] Already registered, skipping registration request', {\n sipExten,\n timestamp: new Date().toISOString()\n })\n return\n }\n\n if (sipcall) {\n console.log('[REGISTER] Sending registration request', {\n sipExten,\n timestamp: new Date().toISOString()\n })\n sipcall.send({\n message: {\n request: 'register',\n username: `sip:${sipExten}@${sipHost}`,\n display_name: name || '',\n secret: sipSecret,\n proxy: `sip:${sipHost}:${sipPort}`,\n outbound_proxy: `sip:${sipHost}:${sipPort}`,\n sips: false,\n refresh: false,\n },\n })\n }\n}\n\nexport function answerWebRTC() {\n const { sipcall, jsepGlobal }: { sipcall: any; jsepGlobal: any } = store.getState().webrtc\n\n console.log('[JSEP] answerWebRTC called', {\n hasSipcall: !!sipcall,\n hasJsepGlobal: !!jsepGlobal,\n sipcallId: sipcall?.getId?.(),\n timestamp: new Date().toISOString()\n })\n\n if (sipcall && jsepGlobal) {\n let currentAudioInputDeviceId = getCurrentAudioInputDeviceId()\n const tracks: any[] = []\n\n if (currentAudioInputDeviceId) {\n tracks.push({\n type: 'audio',\n capture: { deviceId: { exact: currentAudioInputDeviceId } },\n recv: true,\n })\n } else {\n tracks.push({ type: 'audio', capture: true, recv: true })\n }\n\n // For incoming calls, directly create an answer without first calling handleRemoteJsep\n // because Janus has already provided us with an offer\n try {\n sipcall.createAnswer({\n jsep: jsepGlobal,\n tracks: tracks,\n success: (jsep) => {\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n jsep: jsep,\n })\n },\n error: (error) => {\n // If there's an error during createAnswer, check if it's error 469 (Unexpected ANSWER)\n // @ts-ignore\n Janus.error('WebRTC error:', error)\n\n // Check if the error contains code 469 or the message \"Unexpected ANSWER\"\n if (\n error &&\n ((typeof error === 'object' && error.code === 469) ||\n (typeof error === 'string' && error.includes('Unexpected ANSWER')))\n ) {\n console.warn('Got \"Unexpected ANSWER\" error, forcing the answer anyway')\n // Force sending the accept message even without JSEP\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n })\n } else {\n // For other types of errors, decline the call\n sipcall.send({\n message: {\n request: 'decline',\n code: 480,\n },\n })\n }\n },\n })\n } catch (error) {\n console.error('Exception in createAnswer:', error)\n\n // Even in case of an exception, try to accept the call\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n })\n }\n }\n}\n\nexport function decline() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'decline',\n },\n })\n }\n}\n\nexport function hangup() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'hangup',\n },\n })\n }\n}\n\nexport function unregister() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'unregister',\n },\n })\n }\n}\n\nexport function detach() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n return sipcall.detach()\n }\n}\n\nexport function handleRemote(jsep: any) {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.handleRemoteJsep({\n jsep: jsep,\n error: function (error) {\n console.error('WebRTC error... ' + JSON.stringify(error))\n\n var hangup = {\n request: 'hangup',\n }\n sipcall.send({\n message: hangup,\n })\n sipcall.hangup()\n },\n })\n }\n}\n\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n\n let currentAudioInputDeviceId = getCurrentAudioInputDeviceId()\n\n const tracks: JanusTrack[] = []\n\n if (currentAudioInputDeviceId) {\n tracks.push({\n type: 'audio',\n capture: { deviceId: { exact: currentAudioInputDeviceId } },\n recv: true,\n })\n } else {\n tracks.push({ type: 'audio', capture: true, recv: true })\n }\n\n await call(sipURI, tracks)\n })\n}\n\nexport function call(sipURI: string, tracks: JanusTrack[]) {\n return new Promise((resolve, reject) => {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n\n sipcall.createOffer({\n tracks: tracks,\n success: function (jsep: any) {\n // @ts-ignore\n Janus.debug('Got SDP!')\n // @ts-ignore\n Janus.debug(jsep)\n sipcall.send({\n message: {\n request: 'call',\n uri: sipURI,\n autoaccept_reinvites: false,\n },\n jsep: jsep,\n })\n resolve(true)\n },\n error: function (error) {\n // @ts-ignore\n Janus.error('WebRTC error...', error)\n // @ts-ignore\n Janus.error('WebRTC error call on createOffer: ', error)\n reject(false)\n },\n })\n })\n}\n\n/**\n * Mute current call so the counterpart can't listen the current user\n * @returns The muted status\n */\nexport function muteWebRTC(): boolean {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Uset the janus library functions to mute call\n sipcall.muteAudio()\n return sipcall.isAudioMuted()\n}\n\n/**\n * Unmute current call so the counterpart can listen the current user\n * @returns The muted status\n */\nexport function unmuteWebRTC(): boolean {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Use the janus library functions to unmute call\n sipcall.unmuteAudio()\n return !sipcall.isAudioMuted()\n}\n\n/**\n * Pause current call so the counterpart listens the pause ringtone\n * @returns The true if no errors occurs\n */\nexport function pauseWebRTC() {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Send hold message\n try {\n sipcall.send({\n message: {\n request: 'hold',\n },\n })\n return true\n } catch (err) {\n console.error(err)\n return false\n }\n}\n\n/**\n * Unpause the current call so the counterpart listens the current user\n * @returns The true if no errors occurs\n */\nexport function unpauseWebRTC() {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Send hold message\n try {\n sipcall.send({\n message: {\n request: 'unhold',\n },\n })\n return true\n } catch (err) {\n console.error(err)\n return false\n }\n}\n\n/**\n * Send DTMF messages to Janus\n */\nexport function sendDTMF(key: string) {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (adapter.browserDetails.browser === 'chrome') {\n sipcall.dtmf({\n dtmf: {\n tones: key,\n },\n })\n } else {\n sipcall.send({\n message: {\n request: 'dtmf_info',\n digit: `${key}`,\n },\n })\n }\n}\n"],"names":["call","sipURI","tracks","Promise","resolve","reject","sipcall","store","getState","webrtc","createOffer","success","jsep","Janus","debug","send","message","request","uri","autoaccept_reinvites","error","_b","jsepGlobal","console","log","hasSipcall","hasJsepGlobal","sipcallId","getId","_a","timestamp","Date","toISOString","currentAudioInputDeviceId","getCurrentAudioInputDeviceId","push","type","capture","deviceId","exact","recv","createAnswer","code","includes","warn","_this","this","getSupportedDevices","__awaiter","sent","detach","handleRemoteJsep","JSON","stringify","hangup","muteAudio","isAudioMuted","err","sipExten","sipSecret","sipHost","sipPort","registered","name","currentUser","username","concat","display_name","secret","proxy","outbound_proxy","sips","refresh","key","adapter","browserDetails","browser","dtmf","tones","digit","unmuteAudio"],"mappings":"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"}
1
+ {"version":3,"file":"messages.js","sources":["../../../src/lib/webrtc/messages.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport Janus from './janus'\nimport { store } from '../../store'\nimport adapter from 'webrtc-adapter'\nimport { getCurrentAudioInputDeviceId, getSupportedDevices } from '../devices/devices'\nimport { getJSONItem } from '../../utils'\nimport { JanusTrack } from '../../types'\n\n// Strip chars that break the SIP Contact header: a leading \"*\" is read by Asterisk as\n// the wildcard Contact (REGISTER dropped), quotes and backslashes make sofia-sip fail.\nexport function toSipDisplayName(name?: string): string {\n if (!name) {\n return ''\n }\n return name\n .replace(/[\"\\\\\\r\\n\\t]/g, '')\n .trim()\n .replace(/^\\*+\\s*/, '')\n}\n\nexport function register({\n sipExten,\n sipSecret,\n sipHost,\n sipPort,\n}: {\n sipExten: string\n sipSecret: string\n sipHost: string\n sipPort: string\n}) {\n const { sipcall, registered }: { sipcall: any; registered: boolean } = store.getState().webrtc\n const { name } = store.getState().currentUser\n\n // Prevent multiple registrations if already registered\n if (registered) {\n console.log('[REGISTER] Already registered, skipping registration request', {\n sipExten,\n timestamp: new Date().toISOString()\n })\n return\n }\n\n if (sipcall) {\n console.log('[REGISTER] Sending registration request', {\n sipExten,\n timestamp: new Date().toISOString()\n })\n sipcall.send({\n message: {\n request: 'register',\n username: `sip:${sipExten}@${sipHost}`,\n display_name: toSipDisplayName(name),\n secret: sipSecret,\n proxy: `sip:${sipHost}:${sipPort}`,\n outbound_proxy: `sip:${sipHost}:${sipPort}`,\n sips: false,\n refresh: false,\n },\n })\n }\n}\n\nexport function answerWebRTC() {\n const { sipcall, jsepGlobal }: { sipcall: any; jsepGlobal: any } = store.getState().webrtc\n\n console.log('[JSEP] answerWebRTC called', {\n hasSipcall: !!sipcall,\n hasJsepGlobal: !!jsepGlobal,\n sipcallId: sipcall?.getId?.(),\n timestamp: new Date().toISOString()\n })\n\n if (sipcall && jsepGlobal) {\n let currentAudioInputDeviceId = getCurrentAudioInputDeviceId()\n const tracks: any[] = []\n\n if (currentAudioInputDeviceId) {\n tracks.push({\n type: 'audio',\n capture: { deviceId: { exact: currentAudioInputDeviceId } },\n recv: true,\n })\n } else {\n tracks.push({ type: 'audio', capture: true, recv: true })\n }\n\n // For incoming calls, directly create an answer without first calling handleRemoteJsep\n // because Janus has already provided us with an offer\n try {\n sipcall.createAnswer({\n jsep: jsepGlobal,\n tracks: tracks,\n success: (jsep) => {\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n jsep: jsep,\n })\n },\n error: (error) => {\n // If there's an error during createAnswer, check if it's error 469 (Unexpected ANSWER)\n // @ts-ignore\n Janus.error('WebRTC error:', error)\n\n // Check if the error contains code 469 or the message \"Unexpected ANSWER\"\n if (\n error &&\n ((typeof error === 'object' && error.code === 469) ||\n (typeof error === 'string' && error.includes('Unexpected ANSWER')))\n ) {\n console.warn('Got \"Unexpected ANSWER\" error, forcing the answer anyway')\n // Force sending the accept message even without JSEP\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n })\n } else {\n // For other types of errors, decline the call\n sipcall.send({\n message: {\n request: 'decline',\n code: 480,\n },\n })\n }\n },\n })\n } catch (error) {\n console.error('Exception in createAnswer:', error)\n\n // Even in case of an exception, try to accept the call\n sipcall.send({\n message: {\n request: 'accept',\n autoaccept_reinvites: false,\n },\n })\n }\n }\n}\n\nexport function decline() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'decline',\n },\n })\n }\n}\n\nexport function hangup() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'hangup',\n },\n })\n }\n}\n\nexport function unregister() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.send({\n message: {\n request: 'unregister',\n },\n })\n }\n}\n\nexport function detach() {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n return sipcall.detach()\n }\n}\n\nexport function handleRemote(jsep: any) {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (sipcall) {\n sipcall.handleRemoteJsep({\n jsep: jsep,\n error: function (error) {\n console.error('WebRTC error... ' + JSON.stringify(error))\n\n var hangup = {\n request: 'hangup',\n }\n sipcall.send({\n message: hangup,\n })\n sipcall.hangup()\n },\n })\n }\n}\n\nexport function callSipURI(sipURI: string) {\n getSupportedDevices(async () => {\n // @ts-ignore\n Janus.log('This is a SIP call')\n\n let currentAudioInputDeviceId = getCurrentAudioInputDeviceId()\n\n const tracks: JanusTrack[] = []\n\n if (currentAudioInputDeviceId) {\n tracks.push({\n type: 'audio',\n capture: { deviceId: { exact: currentAudioInputDeviceId } },\n recv: true,\n })\n } else {\n tracks.push({ type: 'audio', capture: true, recv: true })\n }\n\n await call(sipURI, tracks)\n })\n}\n\nexport function call(sipURI: string, tracks: JanusTrack[]) {\n return new Promise((resolve, reject) => {\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n\n sipcall.createOffer({\n tracks: tracks,\n success: function (jsep: any) {\n // @ts-ignore\n Janus.debug('Got SDP!')\n // @ts-ignore\n Janus.debug(jsep)\n sipcall.send({\n message: {\n request: 'call',\n uri: sipURI,\n autoaccept_reinvites: false,\n },\n jsep: jsep,\n })\n resolve(true)\n },\n error: function (error) {\n // @ts-ignore\n Janus.error('WebRTC error...', error)\n // @ts-ignore\n Janus.error('WebRTC error call on createOffer: ', error)\n reject(false)\n },\n })\n })\n}\n\n/**\n * Mute current call so the counterpart can't listen the current user\n * @returns The muted status\n */\nexport function muteWebRTC(): boolean {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Uset the janus library functions to mute call\n sipcall.muteAudio()\n return sipcall.isAudioMuted()\n}\n\n/**\n * Unmute current call so the counterpart can listen the current user\n * @returns The muted status\n */\nexport function unmuteWebRTC(): boolean {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Use the janus library functions to unmute call\n sipcall.unmuteAudio()\n return !sipcall.isAudioMuted()\n}\n\n/**\n * Pause current call so the counterpart listens the pause ringtone\n * @returns The true if no errors occurs\n */\nexport function pauseWebRTC() {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Send hold message\n try {\n sipcall.send({\n message: {\n request: 'hold',\n },\n })\n return true\n } catch (err) {\n console.error(err)\n return false\n }\n}\n\n/**\n * Unpause the current call so the counterpart listens the current user\n * @returns The true if no errors occurs\n */\nexport function unpauseWebRTC() {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n // Send hold message\n try {\n sipcall.send({\n message: {\n request: 'unhold',\n },\n })\n return true\n } catch (err) {\n console.error(err)\n return false\n }\n}\n\n/**\n * Send DTMF messages to Janus\n */\nexport function sendDTMF(key: string) {\n // Initialize sipcall\n const { sipcall }: { sipcall: any } = store.getState().webrtc\n if (adapter.browserDetails.browser === 'chrome') {\n sipcall.dtmf({\n dtmf: {\n tones: key,\n },\n })\n } else {\n sipcall.send({\n message: {\n request: 'dtmf_info',\n digit: `${key}`,\n },\n })\n }\n}\n"],"names":["toSipDisplayName","name","replace","trim","call","sipURI","tracks","Promise","resolve","reject","sipcall","store","getState","webrtc","createOffer","success","jsep","Janus","debug","send","message","request","uri","autoaccept_reinvites","error","_b","jsepGlobal","console","log","hasSipcall","hasJsepGlobal","sipcallId","getId","_a","timestamp","Date","toISOString","currentAudioInputDeviceId","getCurrentAudioInputDeviceId","push","type","capture","deviceId","exact","recv","createAnswer","code","includes","warn","_this","this","getSupportedDevices","__awaiter","sent","detach","handleRemoteJsep","JSON","stringify","hangup","muteAudio","isAudioMuted","err","sipExten","sipSecret","sipHost","sipPort","registered","currentUser","username","concat","display_name","secret","proxy","outbound_proxy","sips","refresh","key","adapter","browserDetails","browser","dtmf","tones","digit","unmuteAudio"],"mappings":"8RAYM,SAAUA,EAAiBC,GAC/B,OAAKA,EAGEA,EACJC,QAAQ,eAAgB,IACxBC,OACAD,QAAQ,UAAW,IALb,EAMX,CAmNgB,SAAAE,EAAKC,EAAgBC,GACnC,OAAO,IAAIC,QAAQ,SAACC,EAASC,GACnB,IAAAC,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAE7DA,EAAQI,YAAY,CAClBR,OAAQA,EACRS,QAAS,SAAUC,GAEjBC,UAAMC,MAAM,YAEZD,UAAMC,MAAMF,GACZN,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,OACTC,IAAKjB,EACLkB,sBAAsB,GAExBP,KAAMA,IAERR,GAAQ,EACT,EACDgB,MAAO,SAAUA,GAEfP,EAAAA,QAAMO,MAAM,kBAAmBA,GAE/BP,EAAAA,QAAMO,MAAM,qCAAsCA,GAClDf,GAAO,EACR,GAEL,EACF,uCAnMQgB,EAA6Dd,EAAAA,MAAMC,WAAWC,OAA5EH,EAAOe,EAAAf,QAAEgB,eASjB,GAPAC,QAAQC,IAAI,6BAA8B,CACxCC,aAAcnB,EACdoB,gBAAiBJ,EACjBK,UAA6B,UAAlBrB,aAAA,EAAAA,EAASsB,aAAS,IAAAC,OAAA,EAAAA,EAAA7B,KAAAM,GAC7BwB,WAAW,IAAIC,MAAOC,gBAGpB1B,GAAWgB,EAAY,CACzB,IAAIW,EAA4BC,EAAAA,+BAC1BhC,EAAgB,GAElB+B,EACF/B,EAAOiC,KAAK,CACVC,KAAM,QACNC,QAAS,CAAEC,SAAU,CAAEC,MAAON,IAC9BO,MAAM,IAGRtC,EAAOiC,KAAK,CAAEC,KAAM,QAASC,SAAS,EAAMG,MAAM,IAKpD,IACElC,EAAQmC,aAAa,CACnB7B,KAAMU,EACNpB,OAAQA,EACRS,QAAS,SAACC,GACRN,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,SACTE,sBAAsB,GAExBP,KAAMA,GAET,EACDQ,MAAO,SAACA,GAGNP,EAAAA,QAAMO,MAAM,gBAAiBA,GAI3BA,IACmB,iBAAVA,GAAqC,MAAfA,EAAMsB,MACjB,iBAAVtB,GAAsBA,EAAMuB,SAAS,uBAE/CpB,QAAQqB,KAAK,4DAEbtC,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,SACTE,sBAAsB,MAK1Bb,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,UACTyB,KAAM,MAIb,GAEJ,CAAC,MAAOtB,GACPG,QAAQH,MAAM,6BAA8BA,GAG5Cd,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,SACTE,sBAAsB,IAG3B,CACF,CACH,oCA8DM,SAAqBlB,GAA3B,IAqBC4C,EAAAC,KApBCC,EAAmBA,oBAAC,WAAA,OAAAC,EAAAA,UAAAH,OAAA,OAAA,EAAA,gFAkBlB,OAhBAhC,UAAMW,IAAI,sBAENS,EAA4BC,EAA4BA,+BAEtDhC,EAAuB,GAEzB+B,EACF/B,EAAOiC,KAAK,CACVC,KAAM,QACNC,QAAS,CAAEC,SAAU,CAAEC,MAAON,IAC9BO,MAAM,IAGRtC,EAAOiC,KAAK,CAAEC,KAAM,QAASC,SAAS,EAAMG,MAAM,IAGpD,CAAA,EAAMxC,EAAKC,EAAQC,kBAAnB2B,EAAAoB,aACD,EAAA,EACH,4BA/CU,IAAA3C,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAC7D,GAAIA,EACF,OAAOA,EAAQ4C,QAEnB,uBAEM,SAAuBtC,GACnB,IAAAN,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QACzDA,GACFA,EAAQ6C,iBAAiB,CACvBvC,KAAMA,EACNQ,MAAO,SAAUA,GACfG,QAAQH,MAAM,mBAAqBgC,KAAKC,UAAUjC,IAKlDd,EAAQS,KAAK,CACXC,QAJW,CACXC,QAAS,YAKXX,EAAQgD,QACT,GAGP,4BA9CU,IAAAhD,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QACzDA,GACFA,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,WAIjB,gCAqGU,IAAAX,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAG7D,OADAA,EAAQiD,YACDjD,EAAQkD,cACjB,iCAoBU,IAAAlD,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAE7D,IAME,OALAA,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,WAGN,CACR,CAAC,MAAOwC,GAEP,OADAlC,QAAQH,MAAMqC,IACP,CACR,CACH,mBA5RM,SAAmB5B,OACvB6B,EAAQ7B,EAAA6B,SACRC,EAAS9B,EAAA8B,UACTC,EAAO/B,EAAA+B,QACPC,EAAOhC,EAAAgC,QAODxC,EAAiEd,EAAAA,MAAMC,WAAWC,OAAhFH,EAAOe,EAAAf,QAAEwD,eACTjE,EAASU,EAAKA,MAACC,WAAWuD,YAAWlE,KAGzCiE,EACFvC,QAAQC,IAAI,+DAAgE,CAC1EkC,SAAQA,EACR5B,WAAW,IAAIC,MAAOC,gBAKtB1B,IACFiB,QAAQC,IAAI,0CAA2C,CACrDkC,SAAQA,EACR5B,WAAW,IAAIC,MAAOC,gBAExB1B,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,WACT+C,SAAU,OAAAC,OAAOP,EAAQ,KAAAO,OAAIL,GAC7BM,aAActE,EAAiBC,GAC/BsE,OAAQR,EACRS,MAAO,OAAAH,OAAOL,EAAO,KAAAK,OAAIJ,GACzBQ,eAAgB,OAAAJ,OAAOL,EAAO,KAAAK,OAAIJ,GAClCS,MAAM,EACNC,SAAS,KAIjB,mBA6QM,SAAmBC,GAEf,IAAAlE,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QACtB,WAAnCmE,UAAQC,eAAeC,QACzBrE,EAAQsE,KAAK,CACXA,KAAM,CACJC,MAAOL,KAIXlE,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,YACT6D,MAAO,GAAGb,OAAAO,KAIlB,6DApEU,IAAAlE,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAG7D,OADAA,EAAQyE,eACAzE,EAAQkD,cAClB,mCA6BU,IAAAlD,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QAE7D,IAME,OALAA,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,aAGN,CACR,CAAC,MAAOwC,GAEP,OADAlC,QAAQH,MAAMqC,IACP,CACR,CACH,gCA5JU,IAAAnD,EAA8BC,EAAKA,MAACC,WAAWC,OAAMH,QACzDA,GACFA,EAAQS,KAAK,CACXC,QAAS,CACPC,QAAS,eAIjB"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("../node_modules/@rematch/core/dist/core.esm.js"),s={usersList:null,pendingUsers:null,ownerInformations:null,isActive:!1,conferenceStartedFrom:"",conferenceStartTime:null,isOwnerInside:!1,isConferenceMuted:!1,conferenceId:""},r=n.createModel()({state:s,reducers:{updateConferenceUsersList:function(n,s){var r=null,i=!!s&&Object.keys(s).length>0,t={};if(s){var o=Date.now();Object.entries(s).forEach((function(s){var i,a=s[0],_=s[1],u=null===(i=n.usersList)||void 0===i?void 0:i[a];t[a]=e.__assign(e.__assign({},_),{joinTime:(null==u?void 0:u.joinTime)||o,muted:u?u.muted:_.muted}),_.owner&&(r=e.__assign(e.__assign({},_),{joinTime:(null==u?void 0:u.joinTime)||o,muted:u?u.muted:_.muted}))}))}var a=!n.isActive&&i?Date.now():n.conferenceStartTime;return e.__assign(e.__assign({},n),{usersList:t,ownerInformations:r,isActive:i,conferenceStartTime:i?a:null})},updateOwnerInformations:function(n,s){return e.__assign(e.__assign({},n),{ownerInformations:s})},setConferenceActive:function(n,s){return e.__assign(e.__assign({},n),{isActive:s,conferenceStartTime:s&&!n.conferenceStartTime?Date.now():n.conferenceStartTime})},setConferenceStartedFrom:function(n,s){return e.__assign(e.__assign({},n),{conferenceStartedFrom:s})},resetTimer:function(n){return e.__assign(e.__assign({},n),{conferenceStartTime:Date.now()})},resetFirstUserFlag:function(n){return e.__assign(e.__assign({},n),{isFirstUser:!1})},toggleUserMuted:function(n,s){var r=s.extenId,i=s.muted;if(!n.usersList||!n.usersList[r])return n;var t=e.__assign({},n.usersList);t[r]=e.__assign(e.__assign({},t[r]),{muted:void 0!==i?i:!t[r].muted});var o=n.ownerInformations;return n.ownerInformations&&n.ownerInformations.extenId===r&&(o=e.__assign(e.__assign({},n.ownerInformations),{muted:t[r].muted})),e.__assign(e.__assign({},n),{usersList:t,ownerInformations:o})},toggleIsOwnerInside:function(n,s){return e.__assign(e.__assign({},n),{isOwnerInside:s})},toggleIsConferenceMuted:function(n,s){return e.__assign(e.__assign({},n),{isConferenceMuted:s})},updateConferenceId:function(n,s){return e.__assign(e.__assign({},n),{conferenceId:s})},addPendingUser:function(n,s){var r;return e.__assign(e.__assign({},n),{pendingUsers:e.__assign(e.__assign({},n.pendingUsers),(r={},r[s.extenId]=s,r))})},removePendingUser:function(n,s){if(!n.pendingUsers)return n;var r=e.__assign({},n.pendingUsers);return delete r[s],e.__assign(e.__assign({},n),{pendingUsers:Object.keys(r).length>0?r:null})},clearPendingUsers:function(n){return e.__assign(e.__assign({},n),{pendingUsers:null})},resetConference:function(){return s}}});exports.conference=r;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("../node_modules/@rematch/core/dist/core.esm.js"),s={usersList:null,pendingUsers:null,ownerInformations:null,isActive:!1,conferenceStartedFrom:"",conferenceStartTime:null,isOwnerInside:!1,isConferenceMuted:!1,conferenceId:""},r=n.createModel()({state:s,reducers:{updateConferenceUsersList:function(n,s){var r=null,i=!!s&&Object.keys(s).length>0,t={};if(s){var o=Date.now();Object.entries(s).forEach(function(s){var i,a=s[0],_=s[1],u=null===(i=n.usersList)||void 0===i?void 0:i[a];t[a]=e.__assign(e.__assign({},_),{joinTime:(null==u?void 0:u.joinTime)||o,muted:u?u.muted:_.muted}),_.owner&&(r=e.__assign(e.__assign({},_),{joinTime:(null==u?void 0:u.joinTime)||o,muted:u?u.muted:_.muted}))})}var a=!n.isActive&&i?Date.now():n.conferenceStartTime;return e.__assign(e.__assign({},n),{usersList:t,ownerInformations:r,isActive:i,conferenceStartTime:i?a:null})},updateOwnerInformations:function(n,s){return e.__assign(e.__assign({},n),{ownerInformations:s})},setConferenceActive:function(n,s){return e.__assign(e.__assign({},n),{isActive:s,conferenceStartTime:s&&!n.conferenceStartTime?Date.now():n.conferenceStartTime})},setConferenceStartedFrom:function(n,s){return e.__assign(e.__assign({},n),{conferenceStartedFrom:s})},resetTimer:function(n){return e.__assign(e.__assign({},n),{conferenceStartTime:Date.now()})},resetFirstUserFlag:function(n){return e.__assign(e.__assign({},n),{isFirstUser:!1})},toggleUserMuted:function(n,s){var r=s.extenId,i=s.muted;if(!n.usersList||!n.usersList[r])return n;var t=e.__assign({},n.usersList);t[r]=e.__assign(e.__assign({},t[r]),{muted:void 0!==i?i:!t[r].muted});var o=n.ownerInformations;return n.ownerInformations&&n.ownerInformations.extenId===r&&(o=e.__assign(e.__assign({},n.ownerInformations),{muted:t[r].muted})),e.__assign(e.__assign({},n),{usersList:t,ownerInformations:o})},toggleIsOwnerInside:function(n,s){return e.__assign(e.__assign({},n),{isOwnerInside:s})},toggleIsConferenceMuted:function(n,s){return e.__assign(e.__assign({},n),{isConferenceMuted:s})},updateConferenceId:function(n,s){return e.__assign(e.__assign({},n),{conferenceId:s})},addPendingUser:function(n,s){var r;return e.__assign(e.__assign({},n),{pendingUsers:e.__assign(e.__assign({},n.pendingUsers),(r={},r[s.extenId]=s,r))})},removePendingUser:function(n,s){if(!n.pendingUsers)return n;var r=e.__assign({},n.pendingUsers);return delete r[s],e.__assign(e.__assign({},n),{pendingUsers:Object.keys(r).length>0?r:null})},clearPendingUsers:function(n){return e.__assign(e.__assign({},n),{pendingUsers:null})},resetConference:function(){return s}}});exports.conference=r;
2
2
  //# sourceMappingURL=conference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conference.js","sources":["../../src/models/conference.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nexport interface ConferenceUser {\n id: string\n name: string\n owner: boolean\n muted: boolean\n extenId: string\n joinTime?: number\n}\n\nexport interface ConferenceStoreTypes {\n usersList: Record<string, ConferenceUser> | null\n pendingUsers: Record<string, ConferenceUser> | null\n ownerInformations: ConferenceUser | null\n isActive: boolean\n conferenceStartedFrom: string\n conferenceStartTime: any\n isOwnerInside?: boolean\n isConferenceMuted: boolean\n conferenceId: string\n}\n\nconst defaultState: ConferenceStoreTypes = {\n usersList: null,\n pendingUsers: null,\n ownerInformations: null,\n isActive: false,\n conferenceStartedFrom: '',\n conferenceStartTime: null,\n isOwnerInside: false,\n isConferenceMuted: false,\n conferenceId: '',\n}\n\nexport const conference = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateConferenceUsersList: (state, payload: Record<string, ConferenceUser>) => {\n // Search for the owner\n let owner: ConferenceUser | null = null\n\n // Determine if the conference is active\n const isActive = !!payload && Object.keys(payload).length > 0\n\n // Prepare updated user list with join timestamps\n let updatedUsersList: Record<string, ConferenceUser> = {}\n\n if (payload) {\n const currentTime = Date.now()\n\n // Process each user in the payload\n Object.entries(payload).forEach(([userId, user]) => {\n // Check if this user already exists in the current usersList\n const existingUser = state.usersList?.[userId]\n\n // Preserve existing user data: joinTime and muted status\n updatedUsersList[userId] = {\n ...user,\n joinTime: existingUser?.joinTime || currentTime,\n // Keep existing muted status if user already exists\n muted: existingUser ? existingUser.muted : user.muted,\n }\n\n // Find the owner\n if (user.owner) {\n owner = {\n ...user,\n joinTime: existingUser?.joinTime || currentTime,\n // Keep existing muted status for owner if it exists\n muted: existingUser ? existingUser.muted : user.muted,\n }\n }\n })\n }\n\n // Update the start time if the conference is becoming active and wasn't before\n const conferenceStartTime =\n !state.isActive && isActive ? Date.now() : state.conferenceStartTime\n\n return {\n ...state,\n usersList: updatedUsersList,\n ownerInformations: owner,\n isActive: isActive,\n conferenceStartTime: isActive ? conferenceStartTime : null,\n }\n },\n updateOwnerInformations: (state, payload: ConferenceUser | null) => {\n return {\n ...state,\n ownerInformations: payload,\n }\n },\n setConferenceActive: (state, isActive: boolean) => {\n return {\n ...state,\n isActive,\n conferenceStartTime:\n isActive && !state.conferenceStartTime ? Date.now() : state.conferenceStartTime,\n }\n },\n setConferenceStartedFrom: (state, conferenceStartedFrom: string) => {\n return {\n ...state,\n conferenceStartedFrom,\n }\n },\n resetTimer: (state) => {\n return {\n ...state,\n conferenceStartTime: Date.now(),\n }\n },\n resetFirstUserFlag: (state) => {\n return {\n ...state,\n isFirstUser: false,\n }\n },\n toggleUserMuted: (state, payload: { extenId: string; muted?: boolean }) => {\n const { extenId, muted } = payload\n\n if (!state.usersList || !state.usersList[extenId]) {\n return state\n }\n\n const updatedUsersList = { ...state.usersList }\n\n updatedUsersList[extenId] = {\n ...updatedUsersList[extenId],\n muted: muted !== undefined ? muted : !updatedUsersList[extenId].muted,\n }\n\n let updatedOwnerInformations = state.ownerInformations\n if (state.ownerInformations && state.ownerInformations.extenId === extenId) {\n updatedOwnerInformations = {\n ...state.ownerInformations,\n muted: updatedUsersList[extenId].muted,\n }\n }\n\n return {\n ...state,\n usersList: updatedUsersList,\n ownerInformations: updatedOwnerInformations,\n }\n },\n toggleIsOwnerInside: (state, isOwnerInside: boolean) => {\n return {\n ...state,\n isOwnerInside,\n }\n },\n toggleIsConferenceMuted: (state, isConferenceMuted: boolean) => {\n return {\n ...state,\n isConferenceMuted,\n }\n },\n updateConferenceId: (state, conferenceId: string) => {\n return {\n ...state,\n conferenceId,\n }\n },\n addPendingUser: (state, payload: ConferenceUser) => {\n return {\n ...state,\n pendingUsers: {\n ...state.pendingUsers,\n [payload.extenId]: payload,\n },\n }\n },\n removePendingUser: (state, extenId: string) => {\n if (!state.pendingUsers) return state\n const updatedPendingUsers = { ...state.pendingUsers }\n delete updatedPendingUsers[extenId]\n return {\n ...state,\n pendingUsers: Object.keys(updatedPendingUsers).length > 0 ? updatedPendingUsers : null,\n }\n },\n clearPendingUsers: (state) => {\n return {\n ...state,\n pendingUsers: null,\n }\n },\n resetConference: () => defaultState,\n },\n})\n"],"names":["defaultState","usersList","pendingUsers","ownerInformations","isActive","conferenceStartedFrom","conferenceStartTime","isOwnerInside","isConferenceMuted","conferenceId","conference","createModel","state","reducers","updateConferenceUsersList","payload","owner","Object","keys","length","updatedUsersList","currentTime_1","Date","now","entries","forEach","_a","userId","user","existingUser","_b","__assign","joinTime","muted","updateOwnerInformations","setConferenceActive","setConferenceStartedFrom","resetTimer","resetFirstUserFlag","isFirstUser","toggleUserMuted","extenId","undefined","updatedOwnerInformations","toggleIsOwnerInside","toggleIsConferenceMuted","updateConferenceId","addPendingUser","removePendingUser","updatedPendingUsers","clearPendingUsers","resetConference"],"mappings":"oLA2BMA,EAAqC,CACzCC,UAAW,KACXC,aAAc,KACdC,kBAAmB,KACnBC,UAAU,EACVC,sBAAuB,GACvBC,oBAAqB,KACrBC,eAAe,EACfC,mBAAmB,EACnBC,aAAc,IAGHC,EAAaC,EAAWA,aAAXA,CAAyB,CACjDC,MAAOZ,EACPa,SAAU,CACRC,0BAA2B,SAACF,EAAOG,GAEjC,IAAIC,EAA+B,KAG7BZ,IAAaW,GAAWE,OAAOC,KAAKH,GAASI,OAAS,EAGxDC,EAAmD,CAAA,EAEvD,GAAIL,EAAS,CACX,IAAMM,EAAcC,KAAKC,MAGzBN,OAAOO,QAAQT,GAASU,SAAQ,SAACC,SAACC,EAAMD,EAAA,GAAEE,EAAIF,EAAA,GAEtCG,EAA8B,QAAfC,EAAAlB,EAAMX,iBAAS,IAAA6B,OAAA,EAAAA,EAAGH,GAGvCP,EAAiBO,GACZI,EAAAA,SAAAA,EAAAA,SAAA,GAAAH,IACHI,UAAUH,aAAY,EAAZA,EAAcG,WAAYX,EAEpCY,MAAOJ,EAAeA,EAAaI,MAAQL,EAAKK,QAI9CL,EAAKZ,QACPA,EACKe,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAH,GACH,CAAAI,UAAUH,aAAA,EAAAA,EAAcG,WAAYX,EAEpCY,MAAOJ,EAAeA,EAAaI,MAAQL,EAAKK,QAGtD,GACD,CAGD,IAAM3B,GACHM,EAAMR,UAAYA,EAAWkB,KAAKC,MAAQX,EAAMN,oBAEnD,OACKyB,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAnB,GACH,CAAAX,UAAWmB,EACXjB,kBAAmBa,EACnBZ,SAAUA,EACVE,oBAAqBF,EAAWE,EAAsB,MAEzD,EACD4B,wBAAyB,SAACtB,EAAOG,GAC/B,OAAAgB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRT,kBAAmBY,GAEtB,EACDoB,oBAAqB,SAACvB,EAAOR,GAC3B,OACK2B,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAnB,GACH,CAAAR,SAAQA,EACRE,oBACEF,IAAaQ,EAAMN,oBAAsBgB,KAAKC,MAAQX,EAAMN,qBAEjE,EACD8B,yBAA0B,SAACxB,EAAOP,GAChC,OAAA0B,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRP,sBAAqBA,GAExB,EACDgC,WAAY,SAACzB,GACX,OACKmB,EAAAA,SAAAA,WAAA,CAAA,EAAAnB,IACHN,oBAAqBgB,KAAKC,OAE7B,EACDe,mBAAoB,SAAC1B,GACnB,OAAAmB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACR2B,aAAa,GAEhB,EACDC,gBAAiB,SAAC5B,EAAOG,GACf,IAAA0B,EAAmB1B,EAAO0B,QAAjBR,EAAUlB,EAAOkB,MAElC,IAAKrB,EAAMX,YAAcW,EAAMX,UAAUwC,GACvC,OAAO7B,EAGT,IAAMQ,EAAwBW,EAAAA,SAAA,CAAA,EAAAnB,EAAMX,WAEpCmB,EAAiBqB,GAAQV,EAAAA,SAAAA,EAAAA,SAAA,GACpBX,EAAiBqB,IACpB,CAAAR,WAAiBS,IAAVT,EAAsBA,GAASb,EAAiBqB,GAASR,QAGlE,IAAIU,EAA2B/B,EAAMT,kBAQrC,OAPIS,EAAMT,mBAAqBS,EAAMT,kBAAkBsC,UAAYA,IACjEE,EACKZ,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAnB,EAAMT,oBACT8B,MAAOb,EAAiBqB,GAASR,SAKhCF,WAAAA,EAAAA,SAAA,CAAA,EAAAnB,IACHX,UAAWmB,EACXjB,kBAAmBwC,GAEtB,EACDC,oBAAqB,SAAChC,EAAOL,GAC3B,OAAAwB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRL,cAAaA,GAEhB,EACDsC,wBAAyB,SAACjC,EAAOJ,GAC/B,OAAAuB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRJ,kBAAiBA,GAEpB,EACDsC,mBAAoB,SAAClC,EAAOH,GAC1B,OAAAsB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRH,aAAYA,GAEf,EACDsC,eAAgB,SAACnC,EAAOG,SACtB,OAAAgB,EAAAA,SAAAA,WAAA,CAAA,EACKnB,GAAK,CACRV,aAAY6B,EAAAA,SAAAA,EAAAA,SAAA,GACPnB,EAAMV,eAAYwB,EAAA,CAAA,EAAAA,EACpBX,EAAQ0B,SAAU1B,EAEtBW,KACF,EACDsB,kBAAmB,SAACpC,EAAO6B,GACzB,IAAK7B,EAAMV,aAAc,OAAOU,EAChC,IAAMqC,EAA2BlB,EAAAA,SAAA,CAAA,EAAAnB,EAAMV,cAEvC,cADO+C,EAAoBR,GAEtBV,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EAAAnB,IACHV,aAAce,OAAOC,KAAK+B,GAAqB9B,OAAS,EAAI8B,EAAsB,MAErF,EACDC,kBAAmB,SAACtC,GAClB,OAAAmB,EAAAA,SAAAA,EAAAA,SAAA,GACKnB,GAAK,CACRV,aAAc,MAEjB,EACDiD,gBAAiB,WAAM,OAAAnD,CAAY"}
1
+ {"version":3,"file":"conference.js","sources":["../../src/models/conference.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nexport interface ConferenceUser {\n id: string\n name: string\n owner: boolean\n muted: boolean\n extenId: string\n joinTime?: number\n}\n\nexport interface ConferenceStoreTypes {\n usersList: Record<string, ConferenceUser> | null\n pendingUsers: Record<string, ConferenceUser> | null\n ownerInformations: ConferenceUser | null\n isActive: boolean\n conferenceStartedFrom: string\n conferenceStartTime: any\n isOwnerInside?: boolean\n isConferenceMuted: boolean\n conferenceId: string\n}\n\nconst defaultState: ConferenceStoreTypes = {\n usersList: null,\n pendingUsers: null,\n ownerInformations: null,\n isActive: false,\n conferenceStartedFrom: '',\n conferenceStartTime: null,\n isOwnerInside: false,\n isConferenceMuted: false,\n conferenceId: '',\n}\n\nexport const conference = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateConferenceUsersList: (state, payload: Record<string, ConferenceUser>) => {\n // Search for the owner\n let owner: ConferenceUser | null = null\n\n // Determine if the conference is active\n const isActive = !!payload && Object.keys(payload).length > 0\n\n // Prepare updated user list with join timestamps\n let updatedUsersList: Record<string, ConferenceUser> = {}\n\n if (payload) {\n const currentTime = Date.now()\n\n // Process each user in the payload\n Object.entries(payload).forEach(([userId, user]) => {\n // Check if this user already exists in the current usersList\n const existingUser = state.usersList?.[userId]\n\n // Preserve existing user data: joinTime and muted status\n updatedUsersList[userId] = {\n ...user,\n joinTime: existingUser?.joinTime || currentTime,\n // Keep existing muted status if user already exists\n muted: existingUser ? existingUser.muted : user.muted,\n }\n\n // Find the owner\n if (user.owner) {\n owner = {\n ...user,\n joinTime: existingUser?.joinTime || currentTime,\n // Keep existing muted status for owner if it exists\n muted: existingUser ? existingUser.muted : user.muted,\n }\n }\n })\n }\n\n // Update the start time if the conference is becoming active and wasn't before\n const conferenceStartTime =\n !state.isActive && isActive ? Date.now() : state.conferenceStartTime\n\n return {\n ...state,\n usersList: updatedUsersList,\n ownerInformations: owner,\n isActive: isActive,\n conferenceStartTime: isActive ? conferenceStartTime : null,\n }\n },\n updateOwnerInformations: (state, payload: ConferenceUser | null) => {\n return {\n ...state,\n ownerInformations: payload,\n }\n },\n setConferenceActive: (state, isActive: boolean) => {\n return {\n ...state,\n isActive,\n conferenceStartTime:\n isActive && !state.conferenceStartTime ? Date.now() : state.conferenceStartTime,\n }\n },\n setConferenceStartedFrom: (state, conferenceStartedFrom: string) => {\n return {\n ...state,\n conferenceStartedFrom,\n }\n },\n resetTimer: (state) => {\n return {\n ...state,\n conferenceStartTime: Date.now(),\n }\n },\n resetFirstUserFlag: (state) => {\n return {\n ...state,\n isFirstUser: false,\n }\n },\n toggleUserMuted: (state, payload: { extenId: string; muted?: boolean }) => {\n const { extenId, muted } = payload\n\n if (!state.usersList || !state.usersList[extenId]) {\n return state\n }\n\n const updatedUsersList = { ...state.usersList }\n\n updatedUsersList[extenId] = {\n ...updatedUsersList[extenId],\n muted: muted !== undefined ? muted : !updatedUsersList[extenId].muted,\n }\n\n let updatedOwnerInformations = state.ownerInformations\n if (state.ownerInformations && state.ownerInformations.extenId === extenId) {\n updatedOwnerInformations = {\n ...state.ownerInformations,\n muted: updatedUsersList[extenId].muted,\n }\n }\n\n return {\n ...state,\n usersList: updatedUsersList,\n ownerInformations: updatedOwnerInformations,\n }\n },\n toggleIsOwnerInside: (state, isOwnerInside: boolean) => {\n return {\n ...state,\n isOwnerInside,\n }\n },\n toggleIsConferenceMuted: (state, isConferenceMuted: boolean) => {\n return {\n ...state,\n isConferenceMuted,\n }\n },\n updateConferenceId: (state, conferenceId: string) => {\n return {\n ...state,\n conferenceId,\n }\n },\n addPendingUser: (state, payload: ConferenceUser) => {\n return {\n ...state,\n pendingUsers: {\n ...state.pendingUsers,\n [payload.extenId]: payload,\n },\n }\n },\n removePendingUser: (state, extenId: string) => {\n if (!state.pendingUsers) return state\n const updatedPendingUsers = { ...state.pendingUsers }\n delete updatedPendingUsers[extenId]\n return {\n ...state,\n pendingUsers: Object.keys(updatedPendingUsers).length > 0 ? updatedPendingUsers : null,\n }\n },\n clearPendingUsers: (state) => {\n return {\n ...state,\n pendingUsers: null,\n }\n },\n resetConference: () => defaultState,\n },\n})\n"],"names":["defaultState","usersList","pendingUsers","ownerInformations","isActive","conferenceStartedFrom","conferenceStartTime","isOwnerInside","isConferenceMuted","conferenceId","conference","createModel","state","reducers","updateConferenceUsersList","payload","owner","Object","keys","length","updatedUsersList","currentTime_1","Date","now","entries","forEach","_a","userId","user","existingUser","_b","__assign","joinTime","muted","updateOwnerInformations","setConferenceActive","setConferenceStartedFrom","resetTimer","resetFirstUserFlag","isFirstUser","toggleUserMuted","extenId","undefined","updatedOwnerInformations","toggleIsOwnerInside","toggleIsConferenceMuted","updateConferenceId","addPendingUser","removePendingUser","updatedPendingUsers","clearPendingUsers","resetConference"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("../node_modules/@rematch/core/dist/core.esm.js"),r=require("../events/CallEvents.js");require("react");var t=require("../utils/genericFunctions/eventDispatch.js");require("../store/index.js"),require("../node_modules/react-redux/es/index.js");var i={displayName:"",username:"",number:"",incomingSocket:!1,incomingWebRTC:!1,incoming:!1,acceptedSocket:!1,acceptedWebRTC:!1,accepted:!1,outgoingSocket:!1,outgoingWebRTC:!1,parked:!1,outgoing:!1,startTime:"",muted:!1,paused:!1,keypadValue:"",conversationId:"",transferring:!1,conferencing:!1,transferringName:"",transferringNumber:"",transferringStartTime:"",transferSwitching:!1,transferCalls:new Array,ownerExtension:"",isRecording:!1,isLocalVideoEnabled:!1,showRemoteVideoPlaceHolder:!0,hasVideoTrackAdded:!1,isStartingVideoCall:!1,streamingSourceNumber:"",chDest:new Array,chSource:new Array,throughQueue:!1,queueId:"",queueName:"",queueNumber:"",queuePosition:"",queueWaitingTime:0},a=n.createModel()({state:i,reducers:{updateCurrentCall:function(n,r){return Number(r.startTime)&&n.startTime&&delete r.startTime,!1===r.throughQueue&&(r.queueId="",r.queueName="",r.queueNumber="",r.queuePosition="",r.queueWaitingTime=0),e.__assign(e.__assign(e.__assign({},n),r),{transferCalls:n.transferCalls})},updateKeypadValue:function(n,r){return e.__assign(e.__assign({},n),{keypadValue:r})},updateTransferring:function(n,r){return e.__assign(e.__assign({},n),{transferring:r})},updateTransferSwitching:function(n,r){return e.__assign(e.__assign({},n),{transferSwitching:r})},addTransferCalls:function(n,r){return n.transferCalls.find((function(e){return e.number===r.number}))?n:e.__assign(e.__assign({},n),{transferCalls:e.__spreadArray(e.__spreadArray([],n.transferCalls,!0),[r],!1)})},deleteTransferCalls:function(n){return e.__assign(e.__assign({},n),{transferCalls:n.transferCalls.filter((function(e){return"transferred"!==e.type}))})},setParked:function(e,n){return e.parked=n,e},updateRecordingStatus:function(e,n){return e.isRecording=n,e},updateStartTime:function(e,n){return e.startTime=n,e},updateIncoming:function(e,n){return e.incoming=n,e},reset:function(){return i},setLocalVideoEnabled:function(e,n){return e.isLocalVideoEnabled=n,e},setVideoTrackAdded:function(e,n){return e.hasVideoTrackAdded=n,e},updateConferencing:function(n,r){return e.__assign(e.__assign({},n),{conferencing:r})}},effects:function(n){return{checkIncomingUpdatePlay:function(r,t){var i,a,u,s,o,d,l,c;if("webrtc"===(null===(a=null===(i=null==t?void 0:t.currentUser)||void 0===i?void 0:i.default_device)||void 0===a?void 0:a.type)&&(null==r?void 0:r.incomingWebRTC)||"physical"===(null===(s=null===(u=null==t?void 0:t.currentUser)||void 0===u?void 0:u.default_device)||void 0===s?void 0:s.type)&&(null==r?void 0:r.incomingSocket)||"nethlink"===(null===(d=null===(o=null==t?void 0:t.currentUser)||void 0===o?void 0:o.default_device)||void 0===d?void 0:d.type)&&(null==r?void 0:r.incomingWebRTC)){r.incoming=!0;var g=t.ringtones?(null===(l=t.ringtones.availableRingtones.find((function(e){return e.name===t.ringtones.selectedRingtone})))||void 0===l?void 0:l.base64Audio)||(null===(c=t.ringtones.availableRingtones[0])||void 0===c?void 0:c.base64Audio):void 0;g&&n.player.updateStartAudioPlayer({src:g,loop:!0,useRingtoneOutput:!0})}n.currentCall.updateCurrentCall(e.__assign({},r))},checkOutgoingUpdate:function(t,i){var a,u,s;("webrtc"===(null===(a=i.currentUser.default_device)||void 0===a?void 0:a.type)&&t.outgoingWebRTC||"physical"===(null===(u=i.currentUser.default_device)||void 0===u?void 0:u.type)&&t.outgoingSocket||"nethlink"===(null===(s=i.currentUser.default_device)||void 0===s?void 0:s.type)&&t.outgoingWebRTC)&&(t.outgoing=!0,r.dispatchOutgoingCallStarted(t.displayName,t.number)),n.currentCall.updateCurrentCall(e.__assign({},t))},checkAcceptedUpdate:function(r,i){var a,u,s;("webrtc"===(null===(a=i.currentUser.default_device)||void 0===a?void 0:a.type)&&r.acceptedWebRTC||"physical"===(null===(u=i.currentUser.default_device)||void 0===u?void 0:u.type)&&r.acceptedSocket||"nethlink"===(null===(s=i.currentUser.default_device)||void 0===s?void 0:s.type)&&r.acceptedWebRTC)&&(r.accepted=!0,t.eventDispatch("phone-island-call-answered",{})),n.currentCall.updateCurrentCall(e.__assign({},r))}}}});exports.currentCall=a;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),n=require("../node_modules/@rematch/core/dist/core.esm.js"),r=require("../events/CallEvents.js");require("react");var t=require("../utils/genericFunctions/eventDispatch.js");require("../store/index.js"),require("../node_modules/react-redux/es/index.js");var i={displayName:"",username:"",number:"",incomingSocket:!1,incomingWebRTC:!1,incoming:!1,acceptedSocket:!1,acceptedWebRTC:!1,accepted:!1,outgoingSocket:!1,outgoingWebRTC:!1,parked:!1,outgoing:!1,startTime:"",muted:!1,paused:!1,keypadValue:"",conversationId:"",transferring:!1,conferencing:!1,transferringName:"",transferringNumber:"",transferringStartTime:"",transferSwitching:!1,transferCalls:new Array,ownerExtension:"",isRecording:!1,isLocalVideoEnabled:!1,showRemoteVideoPlaceHolder:!0,hasVideoTrackAdded:!1,isStartingVideoCall:!1,streamingSourceNumber:"",chDest:new Array,chSource:new Array,throughQueue:!1,queueId:"",queueName:"",queueNumber:"",queuePosition:"",queueWaitingTime:0},a=n.createModel()({state:i,reducers:{updateCurrentCall:function(n,r){return Number(r.startTime)&&n.startTime&&delete r.startTime,!1===r.throughQueue&&(r.queueId="",r.queueName="",r.queueNumber="",r.queuePosition="",r.queueWaitingTime=0),e.__assign(e.__assign(e.__assign({},n),r),{transferCalls:n.transferCalls})},updateKeypadValue:function(n,r){return e.__assign(e.__assign({},n),{keypadValue:r})},updateTransferring:function(n,r){return e.__assign(e.__assign({},n),{transferring:r})},updateTransferSwitching:function(n,r){return e.__assign(e.__assign({},n),{transferSwitching:r})},addTransferCalls:function(n,r){return n.transferCalls.find(function(e){return e.number===r.number})?n:e.__assign(e.__assign({},n),{transferCalls:e.__spreadArray(e.__spreadArray([],n.transferCalls,!0),[r],!1)})},deleteTransferCalls:function(n){return e.__assign(e.__assign({},n),{transferCalls:n.transferCalls.filter(function(e){return"transferred"!==e.type})})},setParked:function(e,n){return e.parked=n,e},updateRecordingStatus:function(e,n){return e.isRecording=n,e},updateStartTime:function(e,n){return e.startTime=n,e},updateIncoming:function(e,n){return e.incoming=n,e},reset:function(){return i},setLocalVideoEnabled:function(e,n){return e.isLocalVideoEnabled=n,e},setVideoTrackAdded:function(e,n){return e.hasVideoTrackAdded=n,e},updateConferencing:function(n,r){return e.__assign(e.__assign({},n),{conferencing:r})}},effects:function(n){return{checkIncomingUpdatePlay:function(r,t){var i,a,u,s,o,d,l,c;if("webrtc"===(null===(a=null===(i=null==t?void 0:t.currentUser)||void 0===i?void 0:i.default_device)||void 0===a?void 0:a.type)&&(null==r?void 0:r.incomingWebRTC)||"physical"===(null===(s=null===(u=null==t?void 0:t.currentUser)||void 0===u?void 0:u.default_device)||void 0===s?void 0:s.type)&&(null==r?void 0:r.incomingSocket)||"nethlink"===(null===(d=null===(o=null==t?void 0:t.currentUser)||void 0===o?void 0:o.default_device)||void 0===d?void 0:d.type)&&(null==r?void 0:r.incomingWebRTC)){r.incoming=!0;var g=t.ringtones?(null===(l=t.ringtones.availableRingtones.find(function(e){return e.name===t.ringtones.selectedRingtone}))||void 0===l?void 0:l.base64Audio)||(null===(c=t.ringtones.availableRingtones[0])||void 0===c?void 0:c.base64Audio):void 0;g&&n.player.updateStartAudioPlayer({src:g,loop:!0,useRingtoneOutput:!0})}n.currentCall.updateCurrentCall(e.__assign({},r))},checkOutgoingUpdate:function(t,i){var a,u,s;("webrtc"===(null===(a=i.currentUser.default_device)||void 0===a?void 0:a.type)&&t.outgoingWebRTC||"physical"===(null===(u=i.currentUser.default_device)||void 0===u?void 0:u.type)&&t.outgoingSocket||"nethlink"===(null===(s=i.currentUser.default_device)||void 0===s?void 0:s.type)&&t.outgoingWebRTC)&&(t.outgoing=!0,r.dispatchOutgoingCallStarted(t.displayName,t.number)),n.currentCall.updateCurrentCall(e.__assign({},t))},checkAcceptedUpdate:function(r,i){var a,u,s;("webrtc"===(null===(a=i.currentUser.default_device)||void 0===a?void 0:a.type)&&r.acceptedWebRTC||"physical"===(null===(u=i.currentUser.default_device)||void 0===u?void 0:u.type)&&r.acceptedSocket||"nethlink"===(null===(s=i.currentUser.default_device)||void 0===s?void 0:s.type)&&r.acceptedWebRTC)&&(r.accepted=!0,t.eventDispatch("phone-island-call-answered",{})),n.currentCall.updateCurrentCall(e.__assign({},r))}}}});exports.currentCall=a;
2
2
  //# sourceMappingURL=currentCall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currentCall.js","sources":["../../src/models/currentCall.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { dispatchOutgoingCallStarted } from '../events/index'\nimport { eventDispatch } from '../utils'\nimport { PhonebookContact } from '../types/phonebook'\n\nconst defaultState = {\n displayName: '',\n username: '',\n number: '',\n incomingSocket: false,\n incomingWebRTC: false,\n incoming: false,\n acceptedSocket: false,\n acceptedWebRTC: false,\n accepted: false,\n outgoingSocket: false,\n outgoingWebRTC: false,\n parked: false,\n outgoing: false,\n startTime: '',\n muted: false,\n paused: false,\n keypadValue: '',\n conversationId: '',\n transferring: false,\n conferencing: false,\n transferringName: '',\n transferringNumber: '',\n transferringStartTime: '',\n transferSwitching: false,\n transferCalls: new Array(),\n ownerExtension: '',\n isRecording: false,\n isLocalVideoEnabled: false,\n showRemoteVideoPlaceHolder: true,\n hasVideoTrackAdded: false,\n isStartingVideoCall: false,\n streamingSourceNumber: '',\n chDest: new Array(),\n chSource: new Array(),\n throughQueue: false,\n queueId: '',\n queueName: '',\n queueNumber: '',\n queuePosition: '',\n queueWaitingTime: 0,\n}\n\nexport const currentCall = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateCurrentCall: (state, payload: CurrentCallTypes) => {\n if (Number(payload.startTime) && state.startTime) {\n // avoid updating startTime if it's already set (e.g. while switching to a video call)\n delete payload.startTime\n }\n\n if (payload.throughQueue === false) {\n payload.queueId = ''\n payload.queueName = ''\n payload.queueNumber = ''\n payload.queuePosition = ''\n payload.queueWaitingTime = 0\n }\n\n return {\n ...state,\n ...payload,\n transferCalls: state.transferCalls,\n }\n },\n updateKeypadValue: (state, payload: string) => {\n return {\n ...state,\n keypadValue: payload,\n }\n },\n updateTransferring: (state, payload: boolean) => {\n return {\n ...state,\n transferring: payload,\n }\n },\n updateTransferSwitching: (state, payload: boolean) => {\n return {\n ...state,\n transferSwitching: payload,\n }\n },\n addTransferCalls: (state, payload: TransferCallsTypes) => {\n if (state.transferCalls.find((item) => item.number === payload.number)) {\n return state\n } else {\n return {\n ...state,\n transferCalls: [...state.transferCalls, payload],\n }\n }\n },\n deleteTransferCalls: (state) => {\n return {\n ...state,\n transferCalls: state.transferCalls.filter((item) => item.type !== 'transferred'),\n }\n },\n setParked: (state, payload: boolean) => {\n state.parked = payload\n return state\n },\n updateRecordingStatus: (state, payload: boolean) => {\n state.isRecording = payload\n return state\n },\n updateStartTime: (state, payload: string) => {\n state.startTime = payload\n return state\n },\n updateIncoming: (state, payload: boolean) => {\n state.incoming = payload\n return state\n },\n reset: () => {\n return defaultState\n },\n setLocalVideoEnabled: (state, payload: boolean) => {\n state.isLocalVideoEnabled = payload\n return state\n },\n setVideoTrackAdded: (state, payload: boolean) => {\n state.hasVideoTrackAdded = payload\n return state\n },\n updateConferencing: (state, payload: boolean) => {\n return {\n ...state,\n conferencing: payload,\n }\n },\n },\n effects: (dispatch) => ({\n checkIncomingUpdatePlay: (payload: CurrentCallTypes, rootState) => {\n // Check call type and incoming confirmation source\n if (\n (rootState?.currentUser?.default_device?.type === 'webrtc' && payload?.incomingWebRTC) ||\n (rootState?.currentUser?.default_device?.type === 'physical' && payload?.incomingSocket) ||\n (rootState?.currentUser?.default_device?.type === 'nethlink' && payload?.incomingWebRTC)\n ) {\n payload.incoming = true\n\n // Get selected ringtone from store and play the audio\n const selectedRingtoneAudio = rootState.ringtones\n ? (rootState.ringtones.availableRingtones as any[]).find(\n (r: any) => r.name === rootState.ringtones.selectedRingtone,\n )?.base64Audio || rootState.ringtones.availableRingtones[0]?.base64Audio\n : undefined\n \n if (selectedRingtoneAudio) {\n dispatch.player.updateStartAudioPlayer({ src: selectedRingtoneAudio, loop: true, useRingtoneOutput: true })\n }\n }\n // Update the current call values and set incoming\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkOutgoingUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and outgoing confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.outgoingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.outgoingSocket) ||\n (rootState.currentUser.default_device?.type === 'nethlink' && payload.outgoingWebRTC)\n ) {\n payload.outgoing = true\n // Dispatch an event for outgoing call\n dispatchOutgoingCallStarted(payload.displayName, payload.number)\n }\n // Update the current call values and set outgoing\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkAcceptedUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and accepted confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.acceptedWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.acceptedSocket) ||\n (rootState.currentUser.default_device?.type === 'nethlink' && payload.acceptedWebRTC)\n ) {\n payload.accepted = true\n eventDispatch('phone-island-call-answered', {})\n }\n // Update the current call values\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n }),\n})\n\nexport type TransferCallsTypes = {\n type: 'transferred' | 'destination'\n displayName: string\n number: string\n startTime: string\n}\n\nexport type chDestTypes = {\n type: 'dest'\n channel: string\n callerNum: string\n startTime: number\n callerName: string\n bridgedNum: string\n bridgedName: string\n inConference: boolean\n channelStatus: string\n bridgedChannel: string\n}\n\nexport type chSourceTypes = {\n type: 'source'\n channel: string\n callerNum: string\n startTime: number\n callerName: string\n bridgedNum: string\n bridgedName: string\n inConference: boolean\n channelStatus: string\n bridgedChannel: string\n}\n\nexport interface CurrentCallTypes {\n displayName?: string\n username?: string\n number?: string\n incomingSocket?: boolean\n incomingWebRTC?: boolean\n parked?: boolean\n incoming?: boolean\n acceptedSocket?: boolean\n acceptedWebRTC?: boolean\n accepted?: boolean\n outgoingSocket?: boolean\n outgoingWebRTC?: boolean\n outgoing?: boolean\n startTime?: string\n muted?: boolean\n paused?: boolean\n conversationId?: string\n transferring?: boolean\n conferencing?: boolean\n transferringName?: string\n transferringNumber?: string\n transferringStartTime?: string\n transferSwitching?: boolean\n transferCalls?: TransferCallsTypes[]\n ownerExtension?: string\n isRecording?: boolean\n isLocalVideoEnabled?: boolean\n hasVideoTrackAdded?: boolean\n showRemoteVideoPlaceHolder?: boolean\n isStartingVideoCall?: boolean\n streamingSourceNumber?: string\n chDest?: any\n chSource?: any\n throughQueue?: boolean\n queueId?: string\n queueName?: string\n queueNumber?: string\n queuePosition?: string\n queueWaitingTime?: number\n}\n"],"names":["defaultState","displayName","username","number","incomingSocket","incomingWebRTC","incoming","acceptedSocket","acceptedWebRTC","accepted","outgoingSocket","outgoingWebRTC","parked","outgoing","startTime","muted","paused","keypadValue","conversationId","transferring","conferencing","transferringName","transferringNumber","transferringStartTime","transferSwitching","transferCalls","Array","ownerExtension","isRecording","isLocalVideoEnabled","showRemoteVideoPlaceHolder","hasVideoTrackAdded","isStartingVideoCall","streamingSourceNumber","chDest","chSource","throughQueue","queueId","queueName","queueNumber","queuePosition","queueWaitingTime","currentCall","createModel","state","reducers","updateCurrentCall","payload","Number","__assign","updateKeypadValue","updateTransferring","updateTransferSwitching","addTransferCalls","find","item","__spreadArray","deleteTransferCalls","filter","type","setParked","updateRecordingStatus","updateStartTime","updateIncoming","reset","setLocalVideoEnabled","setVideoTrackAdded","updateConferencing","effects","dispatch","checkIncomingUpdatePlay","rootState","_b","_a","currentUser","default_device","_d","_c","_f","_e","selectedRingtoneAudio","ringtones","_g","availableRingtones","r","name","selectedRingtone","base64Audio","_h","undefined","player","updateStartAudioPlayer","src","loop","useRingtoneOutput","checkOutgoingUpdate","dispatchOutgoingCallStarted","checkAcceptedUpdate","eventDispatch"],"mappings":"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"}
1
+ {"version":3,"file":"currentCall.js","sources":["../../src/models/currentCall.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { dispatchOutgoingCallStarted } from '../events/index'\nimport { eventDispatch } from '../utils'\nimport { PhonebookContact } from '../types/phonebook'\n\nconst defaultState = {\n displayName: '',\n username: '',\n number: '',\n incomingSocket: false,\n incomingWebRTC: false,\n incoming: false,\n acceptedSocket: false,\n acceptedWebRTC: false,\n accepted: false,\n outgoingSocket: false,\n outgoingWebRTC: false,\n parked: false,\n outgoing: false,\n startTime: '',\n muted: false,\n paused: false,\n keypadValue: '',\n conversationId: '',\n transferring: false,\n conferencing: false,\n transferringName: '',\n transferringNumber: '',\n transferringStartTime: '',\n transferSwitching: false,\n transferCalls: new Array(),\n ownerExtension: '',\n isRecording: false,\n isLocalVideoEnabled: false,\n showRemoteVideoPlaceHolder: true,\n hasVideoTrackAdded: false,\n isStartingVideoCall: false,\n streamingSourceNumber: '',\n chDest: new Array(),\n chSource: new Array(),\n throughQueue: false,\n queueId: '',\n queueName: '',\n queueNumber: '',\n queuePosition: '',\n queueWaitingTime: 0,\n}\n\nexport const currentCall = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateCurrentCall: (state, payload: CurrentCallTypes) => {\n if (Number(payload.startTime) && state.startTime) {\n // avoid updating startTime if it's already set (e.g. while switching to a video call)\n delete payload.startTime\n }\n\n if (payload.throughQueue === false) {\n payload.queueId = ''\n payload.queueName = ''\n payload.queueNumber = ''\n payload.queuePosition = ''\n payload.queueWaitingTime = 0\n }\n\n return {\n ...state,\n ...payload,\n transferCalls: state.transferCalls,\n }\n },\n updateKeypadValue: (state, payload: string) => {\n return {\n ...state,\n keypadValue: payload,\n }\n },\n updateTransferring: (state, payload: boolean) => {\n return {\n ...state,\n transferring: payload,\n }\n },\n updateTransferSwitching: (state, payload: boolean) => {\n return {\n ...state,\n transferSwitching: payload,\n }\n },\n addTransferCalls: (state, payload: TransferCallsTypes) => {\n if (state.transferCalls.find((item) => item.number === payload.number)) {\n return state\n } else {\n return {\n ...state,\n transferCalls: [...state.transferCalls, payload],\n }\n }\n },\n deleteTransferCalls: (state) => {\n return {\n ...state,\n transferCalls: state.transferCalls.filter((item) => item.type !== 'transferred'),\n }\n },\n setParked: (state, payload: boolean) => {\n state.parked = payload\n return state\n },\n updateRecordingStatus: (state, payload: boolean) => {\n state.isRecording = payload\n return state\n },\n updateStartTime: (state, payload: string) => {\n state.startTime = payload\n return state\n },\n updateIncoming: (state, payload: boolean) => {\n state.incoming = payload\n return state\n },\n reset: () => {\n return defaultState\n },\n setLocalVideoEnabled: (state, payload: boolean) => {\n state.isLocalVideoEnabled = payload\n return state\n },\n setVideoTrackAdded: (state, payload: boolean) => {\n state.hasVideoTrackAdded = payload\n return state\n },\n updateConferencing: (state, payload: boolean) => {\n return {\n ...state,\n conferencing: payload,\n }\n },\n },\n effects: (dispatch) => ({\n checkIncomingUpdatePlay: (payload: CurrentCallTypes, rootState) => {\n // Check call type and incoming confirmation source\n if (\n (rootState?.currentUser?.default_device?.type === 'webrtc' && payload?.incomingWebRTC) ||\n (rootState?.currentUser?.default_device?.type === 'physical' && payload?.incomingSocket) ||\n (rootState?.currentUser?.default_device?.type === 'nethlink' && payload?.incomingWebRTC)\n ) {\n payload.incoming = true\n\n // Get selected ringtone from store and play the audio\n const selectedRingtoneAudio = rootState.ringtones\n ? (rootState.ringtones.availableRingtones as any[]).find(\n (r: any) => r.name === rootState.ringtones.selectedRingtone,\n )?.base64Audio || rootState.ringtones.availableRingtones[0]?.base64Audio\n : undefined\n \n if (selectedRingtoneAudio) {\n dispatch.player.updateStartAudioPlayer({ src: selectedRingtoneAudio, loop: true, useRingtoneOutput: true })\n }\n }\n // Update the current call values and set incoming\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkOutgoingUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and outgoing confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.outgoingWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.outgoingSocket) ||\n (rootState.currentUser.default_device?.type === 'nethlink' && payload.outgoingWebRTC)\n ) {\n payload.outgoing = true\n // Dispatch an event for outgoing call\n dispatchOutgoingCallStarted(payload.displayName, payload.number)\n }\n // Update the current call values and set outgoing\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n checkAcceptedUpdate: (payload: CurrentCallTypes, rootState) => {\n // Check call type and accepted confirmation source\n if (\n (rootState.currentUser.default_device?.type === 'webrtc' && payload.acceptedWebRTC) ||\n (rootState.currentUser.default_device?.type === 'physical' && payload.acceptedSocket) ||\n (rootState.currentUser.default_device?.type === 'nethlink' && payload.acceptedWebRTC)\n ) {\n payload.accepted = true\n eventDispatch('phone-island-call-answered', {})\n }\n // Update the current call values\n dispatch.currentCall.updateCurrentCall({\n ...payload,\n })\n },\n }),\n})\n\nexport type TransferCallsTypes = {\n type: 'transferred' | 'destination'\n displayName: string\n number: string\n startTime: string\n}\n\nexport type chDestTypes = {\n type: 'dest'\n channel: string\n callerNum: string\n startTime: number\n callerName: string\n bridgedNum: string\n bridgedName: string\n inConference: boolean\n channelStatus: string\n bridgedChannel: string\n}\n\nexport type chSourceTypes = {\n type: 'source'\n channel: string\n callerNum: string\n startTime: number\n callerName: string\n bridgedNum: string\n bridgedName: string\n inConference: boolean\n channelStatus: string\n bridgedChannel: string\n}\n\nexport interface CurrentCallTypes {\n displayName?: string\n username?: string\n number?: string\n incomingSocket?: boolean\n incomingWebRTC?: boolean\n parked?: boolean\n incoming?: boolean\n acceptedSocket?: boolean\n acceptedWebRTC?: boolean\n accepted?: boolean\n outgoingSocket?: boolean\n outgoingWebRTC?: boolean\n outgoing?: boolean\n startTime?: string\n muted?: boolean\n paused?: boolean\n conversationId?: string\n transferring?: boolean\n conferencing?: boolean\n transferringName?: string\n transferringNumber?: string\n transferringStartTime?: string\n transferSwitching?: boolean\n transferCalls?: TransferCallsTypes[]\n ownerExtension?: string\n isRecording?: boolean\n isLocalVideoEnabled?: boolean\n hasVideoTrackAdded?: boolean\n showRemoteVideoPlaceHolder?: boolean\n isStartingVideoCall?: boolean\n streamingSourceNumber?: string\n chDest?: any\n chSource?: any\n throughQueue?: boolean\n queueId?: string\n queueName?: string\n queueNumber?: string\n queuePosition?: string\n queueWaitingTime?: number\n}\n"],"names":["defaultState","displayName","username","number","incomingSocket","incomingWebRTC","incoming","acceptedSocket","acceptedWebRTC","accepted","outgoingSocket","outgoingWebRTC","parked","outgoing","startTime","muted","paused","keypadValue","conversationId","transferring","conferencing","transferringName","transferringNumber","transferringStartTime","transferSwitching","transferCalls","Array","ownerExtension","isRecording","isLocalVideoEnabled","showRemoteVideoPlaceHolder","hasVideoTrackAdded","isStartingVideoCall","streamingSourceNumber","chDest","chSource","throughQueue","queueId","queueName","queueNumber","queuePosition","queueWaitingTime","currentCall","createModel","state","reducers","updateCurrentCall","payload","Number","__assign","updateKeypadValue","updateTransferring","updateTransferSwitching","addTransferCalls","find","item","__spreadArray","deleteTransferCalls","filter","type","setParked","updateRecordingStatus","updateStartTime","updateIncoming","reset","setLocalVideoEnabled","setVideoTrackAdded","updateConferencing","effects","dispatch","checkIncomingUpdatePlay","rootState","_b","_a","currentUser","default_device","_d","_c","_f","_e","selectedRingtoneAudio","ringtones","_g","availableRingtones","r","name","selectedRingtone","base64Audio","_h","undefined","player","updateStartAudioPlayer","src","loop","useRingtoneOutput","checkOutgoingUpdate","dispatchOutgoingCallStarted","checkAcceptedUpdate","eventDispatch"],"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"),i=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{mediaDevices:[]},reducers:{updateMediaDevices:function(i,t){return e.__assign(e.__assign({},i),{mediaDevices:t})}},selectors:function(e){return{videoInputDevices:function(){return e((function(e){return e.mediaDevices.filter((function(e){return"videoinput"===e.kind}))}))},audioOutputDevices:function(){return e((function(e){return e.mediaDevices.filter((function(e){return"audiooutput"===e.kind}))}))},audioInputDevices:function(){return e((function(e){return e.mediaDevices.filter((function(e){return"audioinput"===e.kind}))}))}}}});exports.mediaDevices=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),i=require("../node_modules/@rematch/core/dist/core.esm.js").createModel()({state:{mediaDevices:[]},reducers:{updateMediaDevices:function(i,t){return e.__assign(e.__assign({},i),{mediaDevices:t})}},selectors:function(e){return{videoInputDevices:function(){return e(function(e){return e.mediaDevices.filter(function(e){return"videoinput"===e.kind})})},audioOutputDevices:function(){return e(function(e){return e.mediaDevices.filter(function(e){return"audiooutput"===e.kind})})},audioInputDevices:function(){return e(function(e){return e.mediaDevices.filter(function(e){return"audioinput"===e.kind})})}}}});exports.mediaDevices=i;
2
2
  //# sourceMappingURL=mediaDevices.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mediaDevices.js","sources":["../../src/models/mediaDevices.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nconst defaultState: MediaDevicesTypes = {\n mediaDevices: [],\n}\n\nexport const mediaDevices = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateMediaDevices: (state, payload: MediaDeviceInfo[]) => {\n return {\n ...state,\n mediaDevices: payload,\n }\n },\n },\n selectors: (slice) => ({\n videoInputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'videoinput')),\n audioOutputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'audiooutput')),\n audioInputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'audioinput')),\n }),\n})\n\ninterface MediaDevicesTypes {\n mediaDevices: MediaDeviceInfo[]\n}\n"],"names":["mediaDevices","createModel","state","reducers","updateMediaDevices","payload","__assign","selectors","slice","videoInputDevices","filter","device","kind","audioOutputDevices","audioInputDevices"],"mappings":"wHAUaA,4DAA0BC,aAAXA,CAAyB,CACnDC,MALsC,CACtCF,aAAc,IAKdG,SAAU,CACRC,mBAAoB,SAACF,EAAOG,GAC1B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRF,aAAcK,GAEjB,GAEHE,UAAW,SAACC,GAAU,MAAC,CACrBC,kBAAmB,WACjB,OAAAD,GAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,QAAO,SAACC,GAAW,MAAgB,eAAhBA,EAAOC,IAAqB,GAAlE,GAAoE,EACvFC,mBAAoB,WAClB,OAAAL,GAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,QAAO,SAACC,GAAW,MAAgB,gBAAhBA,EAAOC,IAAsB,GAAnE,GAAqE,EACxFE,kBAAmB,WACjB,OAAAN,GAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,QAAO,SAACC,GAAW,MAAgB,eAAhBA,EAAOC,IAAqB,GAAlE,GAAoE,EACvF"}
1
+ {"version":3,"file":"mediaDevices.js","sources":["../../src/models/mediaDevices.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\nconst defaultState: MediaDevicesTypes = {\n mediaDevices: [],\n}\n\nexport const mediaDevices = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateMediaDevices: (state, payload: MediaDeviceInfo[]) => {\n return {\n ...state,\n mediaDevices: payload,\n }\n },\n },\n selectors: (slice) => ({\n videoInputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'videoinput')),\n audioOutputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'audiooutput')),\n audioInputDevices: () =>\n slice((state) => state.mediaDevices.filter((device) => device.kind === 'audioinput')),\n }),\n})\n\ninterface MediaDevicesTypes {\n mediaDevices: MediaDeviceInfo[]\n}\n"],"names":["mediaDevices","createModel","state","reducers","updateMediaDevices","payload","__assign","selectors","slice","videoInputDevices","filter","device","kind","audioOutputDevices","audioInputDevices"],"mappings":"wHAUaA,4DAA0BC,aAAXA,CAAyB,CACnDC,MALsC,CACtCF,aAAc,IAKdG,SAAU,CACRC,mBAAoB,SAACF,EAAOG,GAC1B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRF,aAAcK,GAEjB,GAEHE,UAAW,SAACC,GAAU,MAAC,CACrBC,kBAAmB,WACjB,OAAAD,EAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,OAAO,SAACC,GAAW,MAAgB,eAAhBA,EAAOC,IAAqB,EAAlE,EAAoE,EACvFC,mBAAoB,WAClB,OAAAL,EAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,OAAO,SAACC,GAAW,MAAgB,gBAAhBA,EAAOC,IAAsB,EAAnE,EAAqE,EACxFE,kBAAmB,WACjB,OAAAN,EAAM,SAACN,GAAU,OAAAA,EAAMF,aAAaU,OAAO,SAACC,GAAW,MAAgB,eAAhBA,EAAOC,IAAqB,EAAlE,EAAoE,EACvF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("../node_modules/@rematch/core/dist/core.esm.js"),a=require("../lib/phone/audio.js"),u=require("../events/PlayerEvents.js"),n={audioPlayer:null,audioPlayerPlaying:!1,audioPlayerPaused:!1,audioPlayerLoop:!1,audioPlayerTrackType:null,audioPlayerTrackName:null,audioPlayerTrackDuration:null,localAudio:null,remoteAudio:null,localVideo:null,largeRemoteVideo:null,smallRemoteVideo:null,localScreen:null,remoteScreen:null},i=r.createModel()({state:n,reducers:{updatePlayer:function(r,a){return e.__assign(e.__assign({},r),a)},updateAudioPlayerTrackDuration:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackDuration:a})},updateAudioPlayerSrc:function(e,r){return e.audioPlayer&&e.audioPlayer.current&&(e.audioPlayer.current.src=r),e},stopAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)return r.audioPlayer.current.pause(),r.audioPlayer.current.currentTime=0,"function"==typeof r.audioPlayer.current.setSinkId&&r.audioPlayer.current.setSinkId("default").catch((function(e){console.warn("Failed to reset audio output device to default:",e)})),e.__assign(e.__assign({},r),{audioPlayerPlaying:!1})},emergencyStopAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)try{r.audioPlayer.current.pause(),r.audioPlayer.current.currentTime=0,r.audioPlayer.current.src="","function"==typeof r.audioPlayer.current.setSinkId&&r.audioPlayer.current.setSinkId("default").catch((function(e){console.warn("Failed to reset audio output device to default:",e)}))}catch(e){console.error("Error in emergency stop audio player:",e)}return e.__assign(e.__assign({},r),{audioPlayerPlaying:!1,audioPlayerPaused:!1,audioPlayerLoop:!1,audioPlayerTrackType:null,audioPlayerTrackName:null})},pauseAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)return r.audioPlayer.current.pause(),e.__assign(e.__assign({},r),{audioPlayerPaused:!0,audioPlayerPlaying:!1})},setAudioPlayerPaused:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerPaused:a})},setAudioPlayerLoop:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerLoop:a})},setAudioPlayerType:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackType:a})},setAudioPlayerPlaying:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerPlaying:a})},resetAudioPlayerType:function(r){return e.__assign(e.__assign({},r),{audioPlayerTrackType:null})},setAudioPlayerTrackName:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackName:a})},playRemoteAudio:function(e){var r;e.remoteAudio&&(null===(r=e.remoteAudio.current)||void 0===r||r.play())},pauseRemoteAudio:function(e){var r;e.remoteAudio&&(null===(r=e.remoteAudio.current)||void 0===r||r.pause())},setAudioPlayerCurrentTime:function(e,r){e.audioPlayer&&e.audioPlayer.current&&(e.audioPlayer.current.currentTime=r)},reset:function(){return n}},effects:function(r){return{startAudioPlayer:function(e,a){if(a.player.audioPlayer&&a.player.audioPlayer.current){a.player.audioPlayerPlaying&&(a.player.audioPlayer.current.pause(),a.player.audioPlayer.current.currentTime=0);var n=function(){r.player.setAudioPlayerPlaying(!1),a.player.audioPlayer.current.removeEventListener("ended",n),e()};a.player.audioPlayer.current.addEventListener("ended",n),a.player.audioPlayer.current.play(),r.player.setAudioPlayerPlaying(!0),r.player.setAudioPlayerPaused(!1),"player"===a.island.view&&u.dispatchAudioPlayerStarted()}},updateStartAudioPlayer:function(u,n){var i=u.src,o=u.loop,t=void 0!==o&&o,l=u.useRingtoneOutput,d=void 0!==l&&l;return e.__awaiter(void 0,void 0,void 0,(function(){var u,o,l,s,c;return e.__generator(this,(function(e){switch(e.label){case 0:if(r.player.setAudioPlayerLoop(t),!(u=d?null===(s=n.ringtones)||void 0===s?void 0:s.outputDeviceId:null)||!(null===(c=n.player.audioPlayer)||void 0===c?void 0:c.current)||"function"!=typeof n.player.audioPlayer.current.setSinkId)return[3,8];e.label=1;case 1:return e.trys.push([1,3,,8]),[4,n.player.audioPlayer.current.setSinkId(u)];case 2:return e.sent(),console.info("Ringtone output device applied:",u),[3,8];case 3:o=e.sent(),console.warn("Failed to set ringtone output device, trying fallback to default:",o),e.label=4;case 4:return e.trys.push([4,6,,7]),[4,n.player.audioPlayer.current.setSinkId("default")];case 5:return e.sent(),console.info("Ringtone output fallback to default successful"),r.ringtones.setOutputDeviceId("default"),[3,7];case 6:return l=e.sent(),console.error("Even default device failed for ringtone:",l),[3,7];case 7:return[3,8];case 8:return[4,a.updateAudioPlayerSource("data:audio/ogg;base64, ".concat(i))];case 9:return e.sent(),r.player.startAudioPlayer((function(){})),[2]}}))}))}}}});exports.player=i;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("../node_modules/@rematch/core/dist/core.esm.js"),a=require("../lib/phone/audio.js"),u=require("../events/PlayerEvents.js"),n={audioPlayer:null,audioPlayerPlaying:!1,audioPlayerPaused:!1,audioPlayerLoop:!1,audioPlayerTrackType:null,audioPlayerTrackName:null,audioPlayerTrackDuration:null,localAudio:null,remoteAudio:null,localVideo:null,largeRemoteVideo:null,smallRemoteVideo:null,localScreen:null,remoteScreen:null},i=r.createModel()({state:n,reducers:{updatePlayer:function(r,a){return e.__assign(e.__assign({},r),a)},updateAudioPlayerTrackDuration:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackDuration:a})},updateAudioPlayerSrc:function(e,r){return e.audioPlayer&&e.audioPlayer.current&&(e.audioPlayer.current.src=r),e},stopAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)return r.audioPlayer.current.pause(),r.audioPlayer.current.currentTime=0,"function"==typeof r.audioPlayer.current.setSinkId&&r.audioPlayer.current.setSinkId("default").catch(function(e){console.warn("Failed to reset audio output device to default:",e)}),e.__assign(e.__assign({},r),{audioPlayerPlaying:!1})},emergencyStopAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)try{r.audioPlayer.current.pause(),r.audioPlayer.current.currentTime=0,r.audioPlayer.current.src="","function"==typeof r.audioPlayer.current.setSinkId&&r.audioPlayer.current.setSinkId("default").catch(function(e){console.warn("Failed to reset audio output device to default:",e)})}catch(e){console.error("Error in emergency stop audio player:",e)}return e.__assign(e.__assign({},r),{audioPlayerPlaying:!1,audioPlayerPaused:!1,audioPlayerLoop:!1,audioPlayerTrackType:null,audioPlayerTrackName:null})},pauseAudioPlayer:function(r){if(r.audioPlayer&&r.audioPlayer.current)return r.audioPlayer.current.pause(),e.__assign(e.__assign({},r),{audioPlayerPaused:!0,audioPlayerPlaying:!1})},setAudioPlayerPaused:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerPaused:a})},setAudioPlayerLoop:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerLoop:a})},setAudioPlayerType:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackType:a})},setAudioPlayerPlaying:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerPlaying:a})},resetAudioPlayerType:function(r){return e.__assign(e.__assign({},r),{audioPlayerTrackType:null})},setAudioPlayerTrackName:function(r,a){return e.__assign(e.__assign({},r),{audioPlayerTrackName:a})},playRemoteAudio:function(e){var r;e.remoteAudio&&(null===(r=e.remoteAudio.current)||void 0===r||r.play())},pauseRemoteAudio:function(e){var r;e.remoteAudio&&(null===(r=e.remoteAudio.current)||void 0===r||r.pause())},setAudioPlayerCurrentTime:function(e,r){e.audioPlayer&&e.audioPlayer.current&&(e.audioPlayer.current.currentTime=r)},reset:function(){return n}},effects:function(r){return{startAudioPlayer:function(e,a){if(a.player.audioPlayer&&a.player.audioPlayer.current){a.player.audioPlayerPlaying&&(a.player.audioPlayer.current.pause(),a.player.audioPlayer.current.currentTime=0);var n=function(){r.player.setAudioPlayerPlaying(!1),a.player.audioPlayer.current.removeEventListener("ended",n),e()};a.player.audioPlayer.current.addEventListener("ended",n),a.player.audioPlayer.current.play(),r.player.setAudioPlayerPlaying(!0),r.player.setAudioPlayerPaused(!1),"player"===a.island.view&&u.dispatchAudioPlayerStarted()}},updateStartAudioPlayer:function(u,n){var i=u.src,o=u.loop,t=void 0!==o&&o,l=u.useRingtoneOutput,d=void 0!==l&&l;return e.__awaiter(void 0,void 0,void 0,function(){var u,o,l,s,c;return e.__generator(this,function(e){switch(e.label){case 0:if(r.player.setAudioPlayerLoop(t),!(u=d?null===(s=n.ringtones)||void 0===s?void 0:s.outputDeviceId:null)||!(null===(c=n.player.audioPlayer)||void 0===c?void 0:c.current)||"function"!=typeof n.player.audioPlayer.current.setSinkId)return[3,8];e.label=1;case 1:return e.trys.push([1,3,,8]),[4,n.player.audioPlayer.current.setSinkId(u)];case 2:return e.sent(),console.info("Ringtone output device applied:",u),[3,8];case 3:o=e.sent(),console.warn("Failed to set ringtone output device, trying fallback to default:",o),e.label=4;case 4:return e.trys.push([4,6,,7]),[4,n.player.audioPlayer.current.setSinkId("default")];case 5:return e.sent(),console.info("Ringtone output fallback to default successful"),r.ringtones.setOutputDeviceId("default"),[3,7];case 6:return l=e.sent(),console.error("Even default device failed for ringtone:",l),[3,7];case 7:return[3,8];case 8:return[4,a.updateAudioPlayerSource("data:audio/ogg;base64, ".concat(i))];case 9:return e.sent(),r.player.startAudioPlayer(function(){}),[2]}})})}}}});exports.player=i;
2
2
  //# sourceMappingURL=player.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"player.js","sources":["../../src/models/player.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { updateAudioPlayerSource } from '../lib/phone/audio'\nimport { dispatchAudioPlayerStarted } from '../events/PlayerEvents'\nimport { type TypeTypes } from '../types'\nimport { RefObject } from 'react'\n\nconst defaultState: PlayerTypes = {\n audioPlayer: null,\n audioPlayerPlaying: false,\n audioPlayerPaused: false,\n audioPlayerLoop: false,\n audioPlayerTrackType: null,\n audioPlayerTrackName: null,\n audioPlayerTrackDuration: null,\n localAudio: null,\n remoteAudio: null,\n localVideo: null,\n largeRemoteVideo: null,\n smallRemoteVideo: null,\n localScreen: null,\n remoteScreen: null,\n}\n\nexport const player = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updatePlayer: (state, payload: PlayerTypes) => {\n return {\n ...state,\n ...payload,\n }\n },\n updateAudioPlayerTrackDuration: (state, payload: number) => {\n return {\n ...state,\n audioPlayerTrackDuration: payload,\n }\n },\n updateAudioPlayerSrc: (state, payload: string) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.src = payload\n }\n return state\n },\n stopAudioPlayer: (state) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n // Pause audio\n state.audioPlayer.current.pause()\n state.audioPlayer.current.currentTime = 0\n \n // Reset audio output device to default to avoid affecting other sounds\n if (typeof (state.audioPlayer.current as any).setSinkId === 'function') {\n (state.audioPlayer.current as any).setSinkId('default').catch((err: any) => {\n console.warn('Failed to reset audio output device to default:', err)\n })\n }\n \n return {\n ...state,\n audioPlayerPlaying: false,\n }\n }\n },\n emergencyStopAudioPlayer: (state) => {\n // Emergency stop: force reset everything audio-related\n if (state.audioPlayer && state.audioPlayer.current) {\n try {\n state.audioPlayer.current.pause()\n state.audioPlayer.current.currentTime = 0\n state.audioPlayer.current.src = ''\n \n // Reset audio output device to default\n if (typeof (state.audioPlayer.current as any).setSinkId === 'function') {\n (state.audioPlayer.current as any).setSinkId('default').catch((err: any) => {\n console.warn('Failed to reset audio output device to default:', err)\n })\n }\n } catch (err) {\n console.error('Error in emergency stop audio player:', err)\n }\n }\n \n return {\n ...state,\n audioPlayerPlaying: false,\n audioPlayerPaused: false,\n audioPlayerLoop: false,\n audioPlayerTrackType: null,\n audioPlayerTrackName: null,\n }\n },\n pauseAudioPlayer: (state) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.pause()\n return {\n ...state,\n audioPlayerPaused: true,\n audioPlayerPlaying: false,\n }\n }\n },\n setAudioPlayerPaused: (state, payload: boolean) => {\n return {\n ...state,\n audioPlayerPaused: payload,\n }\n },\n setAudioPlayerLoop: (state, payload: boolean) => ({\n ...state,\n audioPlayerLoop: payload,\n }),\n setAudioPlayerType: (state, payload: TypeTypes) => ({\n ...state,\n audioPlayerTrackType: payload,\n }),\n setAudioPlayerPlaying: (state, payload: boolean) => ({\n ...state,\n audioPlayerPlaying: payload,\n }),\n resetAudioPlayerType: (state) => ({\n ...state,\n audioPlayerTrackType: null,\n }),\n setAudioPlayerTrackName: (state, payload: string) => ({\n ...state,\n audioPlayerTrackName: payload,\n }),\n playRemoteAudio: (state) => {\n state.remoteAudio && state.remoteAudio.current?.play()\n },\n pauseRemoteAudio: (state) => {\n state.remoteAudio && state.remoteAudio.current?.pause()\n },\n setAudioPlayerCurrentTime: (state, payload: number) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.currentTime = payload\n }\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n startAudioPlayer: (endedEventCallback: () => void, rootState) => {\n if (rootState.player.audioPlayer && rootState.player.audioPlayer.current) {\n // Check if is playing\n if (rootState.player.audioPlayerPlaying) {\n rootState.player.audioPlayer.current.pause()\n rootState.player.audioPlayer.current.currentTime = 0\n }\n const endedCallback = () => {\n dispatch.player.setAudioPlayerPlaying(false)\n rootState.player!.audioPlayer!.current!.removeEventListener('ended', endedCallback)\n endedEventCallback()\n }\n // Handle playing ended event\n rootState.player.audioPlayer.current.addEventListener('ended', endedCallback)\n // Play the audio\n rootState.player.audioPlayer.current.play()\n dispatch.player.setAudioPlayerPlaying(true)\n dispatch.player.setAudioPlayerPaused(false)\n // Dispatch the event\n if (rootState.island.view === 'player') {\n dispatchAudioPlayerStarted()\n }\n }\n },\n // This function is recommended for playing audio with base64 sources\n // Set useRingtoneOutput=true only for incoming call ringtones and previews\n updateStartAudioPlayer: async (\n { src, loop = false, useRingtoneOutput = false }: { src: string; loop?: boolean; useRingtoneOutput?: boolean },\n rootState,\n ) => {\n dispatch.player.setAudioPlayerLoop(loop)\n\n // Apply ringtone output device ONLY when explicitly requested (incoming calls & previews)\n const ringtoneOutputDeviceId = useRingtoneOutput ? rootState.ringtones?.outputDeviceId : null\n if (\n ringtoneOutputDeviceId &&\n rootState.player.audioPlayer?.current &&\n typeof (rootState.player.audioPlayer.current as any).setSinkId === 'function'\n ) {\n try {\n await (rootState.player.audioPlayer.current as any).setSinkId(ringtoneOutputDeviceId)\n console.info('Ringtone output device applied:', ringtoneOutputDeviceId)\n } catch (err) {\n console.warn('Failed to set ringtone output device, trying fallback to default:', err)\n // Fallback to default device if the saved device is not available\n try {\n await (rootState.player.audioPlayer.current as any).setSinkId('default')\n console.info('Ringtone output fallback to default successful')\n // Update store to reflect the fallback\n dispatch.ringtones.setOutputDeviceId('default')\n } catch (fallbackErr) {\n console.error('Even default device failed for ringtone:', fallbackErr)\n }\n }\n }\n\n // Update the audio source\n await updateAudioPlayerSource(`data:audio/ogg;base64, ${src}`)\n // Play the outgoing ringtone when ready\n dispatch.player.startAudioPlayer(() => {})\n },\n }),\n})\n\ninterface PlayerTypes {\n audioPlayer?: RefObject<HTMLAudioElement> | null\n audioPlayerPlaying?: boolean\n audioPlayerPaused?: boolean\n audioPlayerLoop?: boolean\n audioPlayerTrackType?: TypeTypes | null\n audioPlayerTrackName?: string | null\n audioPlayerTrackDuration?: number | null\n localAudio?: RefObject<HTMLAudioElement> | null\n remoteAudio?: RefObject<HTMLAudioElement> | null\n localVideo?: RefObject<HTMLVideoElement> | null\n largeRemoteVideo?: RefObject<HTMLVideoElement> | null\n smallRemoteVideo?: RefObject<HTMLVideoElement> | null\n localScreen?: RefObject<HTMLVideoElement> | null\n remoteScreen?: RefObject<HTMLVideoElement> | null\n}\n"],"names":["defaultState","audioPlayer","audioPlayerPlaying","audioPlayerPaused","audioPlayerLoop","audioPlayerTrackType","audioPlayerTrackName","audioPlayerTrackDuration","localAudio","remoteAudio","localVideo","largeRemoteVideo","smallRemoteVideo","localScreen","remoteScreen","player","createModel","state","reducers","updatePlayer","payload","__assign","updateAudioPlayerTrackDuration","updateAudioPlayerSrc","current","src","stopAudioPlayer","pause","currentTime","setSinkId","catch","err","console","warn","emergencyStopAudioPlayer","error","pauseAudioPlayer","setAudioPlayerPaused","setAudioPlayerLoop","setAudioPlayerType","setAudioPlayerPlaying","resetAudioPlayerType","setAudioPlayerTrackName","playRemoteAudio","_a","play","pauseRemoteAudio","setAudioPlayerCurrentTime","reset","effects","dispatch","startAudioPlayer","endedEventCallback","rootState","endedCallback_1","removeEventListener","addEventListener","island","view","dispatchAudioPlayerStarted","updateStartAudioPlayer","_b","loop","_c","useRingtoneOutput","ringtoneOutputDeviceId","_d","ringtones","outputDeviceId","_e","_f","sent","info","err_1","setOutputDeviceId","fallbackErr_1","updateAudioPlayerSource","concat"],"mappings":"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"}
1
+ {"version":3,"file":"player.js","sources":["../../src/models/player.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport { updateAudioPlayerSource } from '../lib/phone/audio'\nimport { dispatchAudioPlayerStarted } from '../events/PlayerEvents'\nimport { type TypeTypes } from '../types'\nimport { RefObject } from 'react'\n\nconst defaultState: PlayerTypes = {\n audioPlayer: null,\n audioPlayerPlaying: false,\n audioPlayerPaused: false,\n audioPlayerLoop: false,\n audioPlayerTrackType: null,\n audioPlayerTrackName: null,\n audioPlayerTrackDuration: null,\n localAudio: null,\n remoteAudio: null,\n localVideo: null,\n largeRemoteVideo: null,\n smallRemoteVideo: null,\n localScreen: null,\n remoteScreen: null,\n}\n\nexport const player = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updatePlayer: (state, payload: PlayerTypes) => {\n return {\n ...state,\n ...payload,\n }\n },\n updateAudioPlayerTrackDuration: (state, payload: number) => {\n return {\n ...state,\n audioPlayerTrackDuration: payload,\n }\n },\n updateAudioPlayerSrc: (state, payload: string) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.src = payload\n }\n return state\n },\n stopAudioPlayer: (state) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n // Pause audio\n state.audioPlayer.current.pause()\n state.audioPlayer.current.currentTime = 0\n \n // Reset audio output device to default to avoid affecting other sounds\n if (typeof (state.audioPlayer.current as any).setSinkId === 'function') {\n (state.audioPlayer.current as any).setSinkId('default').catch((err: any) => {\n console.warn('Failed to reset audio output device to default:', err)\n })\n }\n \n return {\n ...state,\n audioPlayerPlaying: false,\n }\n }\n },\n emergencyStopAudioPlayer: (state) => {\n // Emergency stop: force reset everything audio-related\n if (state.audioPlayer && state.audioPlayer.current) {\n try {\n state.audioPlayer.current.pause()\n state.audioPlayer.current.currentTime = 0\n state.audioPlayer.current.src = ''\n \n // Reset audio output device to default\n if (typeof (state.audioPlayer.current as any).setSinkId === 'function') {\n (state.audioPlayer.current as any).setSinkId('default').catch((err: any) => {\n console.warn('Failed to reset audio output device to default:', err)\n })\n }\n } catch (err) {\n console.error('Error in emergency stop audio player:', err)\n }\n }\n \n return {\n ...state,\n audioPlayerPlaying: false,\n audioPlayerPaused: false,\n audioPlayerLoop: false,\n audioPlayerTrackType: null,\n audioPlayerTrackName: null,\n }\n },\n pauseAudioPlayer: (state) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.pause()\n return {\n ...state,\n audioPlayerPaused: true,\n audioPlayerPlaying: false,\n }\n }\n },\n setAudioPlayerPaused: (state, payload: boolean) => {\n return {\n ...state,\n audioPlayerPaused: payload,\n }\n },\n setAudioPlayerLoop: (state, payload: boolean) => ({\n ...state,\n audioPlayerLoop: payload,\n }),\n setAudioPlayerType: (state, payload: TypeTypes) => ({\n ...state,\n audioPlayerTrackType: payload,\n }),\n setAudioPlayerPlaying: (state, payload: boolean) => ({\n ...state,\n audioPlayerPlaying: payload,\n }),\n resetAudioPlayerType: (state) => ({\n ...state,\n audioPlayerTrackType: null,\n }),\n setAudioPlayerTrackName: (state, payload: string) => ({\n ...state,\n audioPlayerTrackName: payload,\n }),\n playRemoteAudio: (state) => {\n state.remoteAudio && state.remoteAudio.current?.play()\n },\n pauseRemoteAudio: (state) => {\n state.remoteAudio && state.remoteAudio.current?.pause()\n },\n setAudioPlayerCurrentTime: (state, payload: number) => {\n if (state.audioPlayer && state.audioPlayer.current) {\n state.audioPlayer.current.currentTime = payload\n }\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n startAudioPlayer: (endedEventCallback: () => void, rootState) => {\n if (rootState.player.audioPlayer && rootState.player.audioPlayer.current) {\n // Check if is playing\n if (rootState.player.audioPlayerPlaying) {\n rootState.player.audioPlayer.current.pause()\n rootState.player.audioPlayer.current.currentTime = 0\n }\n const endedCallback = () => {\n dispatch.player.setAudioPlayerPlaying(false)\n rootState.player!.audioPlayer!.current!.removeEventListener('ended', endedCallback)\n endedEventCallback()\n }\n // Handle playing ended event\n rootState.player.audioPlayer.current.addEventListener('ended', endedCallback)\n // Play the audio\n rootState.player.audioPlayer.current.play()\n dispatch.player.setAudioPlayerPlaying(true)\n dispatch.player.setAudioPlayerPaused(false)\n // Dispatch the event\n if (rootState.island.view === 'player') {\n dispatchAudioPlayerStarted()\n }\n }\n },\n // This function is recommended for playing audio with base64 sources\n // Set useRingtoneOutput=true only for incoming call ringtones and previews\n updateStartAudioPlayer: async (\n { src, loop = false, useRingtoneOutput = false }: { src: string; loop?: boolean; useRingtoneOutput?: boolean },\n rootState,\n ) => {\n dispatch.player.setAudioPlayerLoop(loop)\n\n // Apply ringtone output device ONLY when explicitly requested (incoming calls & previews)\n const ringtoneOutputDeviceId = useRingtoneOutput ? rootState.ringtones?.outputDeviceId : null\n if (\n ringtoneOutputDeviceId &&\n rootState.player.audioPlayer?.current &&\n typeof (rootState.player.audioPlayer.current as any).setSinkId === 'function'\n ) {\n try {\n await (rootState.player.audioPlayer.current as any).setSinkId(ringtoneOutputDeviceId)\n console.info('Ringtone output device applied:', ringtoneOutputDeviceId)\n } catch (err) {\n console.warn('Failed to set ringtone output device, trying fallback to default:', err)\n // Fallback to default device if the saved device is not available\n try {\n await (rootState.player.audioPlayer.current as any).setSinkId('default')\n console.info('Ringtone output fallback to default successful')\n // Update store to reflect the fallback\n dispatch.ringtones.setOutputDeviceId('default')\n } catch (fallbackErr) {\n console.error('Even default device failed for ringtone:', fallbackErr)\n }\n }\n }\n\n // Update the audio source\n await updateAudioPlayerSource(`data:audio/ogg;base64, ${src}`)\n // Play the outgoing ringtone when ready\n dispatch.player.startAudioPlayer(() => {})\n },\n }),\n})\n\ninterface PlayerTypes {\n audioPlayer?: RefObject<HTMLAudioElement> | null\n audioPlayerPlaying?: boolean\n audioPlayerPaused?: boolean\n audioPlayerLoop?: boolean\n audioPlayerTrackType?: TypeTypes | null\n audioPlayerTrackName?: string | null\n audioPlayerTrackDuration?: number | null\n localAudio?: RefObject<HTMLAudioElement> | null\n remoteAudio?: RefObject<HTMLAudioElement> | null\n localVideo?: RefObject<HTMLVideoElement> | null\n largeRemoteVideo?: RefObject<HTMLVideoElement> | null\n smallRemoteVideo?: RefObject<HTMLVideoElement> | null\n localScreen?: RefObject<HTMLVideoElement> | null\n remoteScreen?: RefObject<HTMLVideoElement> | null\n}\n"],"names":["defaultState","audioPlayer","audioPlayerPlaying","audioPlayerPaused","audioPlayerLoop","audioPlayerTrackType","audioPlayerTrackName","audioPlayerTrackDuration","localAudio","remoteAudio","localVideo","largeRemoteVideo","smallRemoteVideo","localScreen","remoteScreen","player","createModel","state","reducers","updatePlayer","payload","__assign","updateAudioPlayerTrackDuration","updateAudioPlayerSrc","current","src","stopAudioPlayer","pause","currentTime","setSinkId","catch","err","console","warn","emergencyStopAudioPlayer","error","pauseAudioPlayer","setAudioPlayerPaused","setAudioPlayerLoop","setAudioPlayerType","setAudioPlayerPlaying","resetAudioPlayerType","setAudioPlayerTrackName","playRemoteAudio","_a","play","pauseRemoteAudio","setAudioPlayerCurrentTime","reset","effects","dispatch","startAudioPlayer","endedEventCallback","rootState","endedCallback_1","removeEventListener","addEventListener","island","view","dispatchAudioPlayerStarted","updateStartAudioPlayer","_b","loop","_c","useRingtoneOutput","ringtoneOutputDeviceId","_d","ringtones","outputDeviceId","_e","_f","sent","info","err_1","setOutputDeviceId","fallbackErr_1","updateAudioPlayerSource","concat"],"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"),a=require("../node_modules/@rematch/core/dist/core.esm.js"),n={byQueue:{},byMember:{},waitingCallersByNumber:{},waitingCallersByChannel:{},waitingCallersById:{},lastUpdatedAt:null};var s=a.createModel()({state:n,reducers:{updateQueue:function(a,n){var s,r=e.__assign(e.__assign({},a.byQueue),((s={})[n.queue]=n,s)),t=function(a){var n={},s={},r={};return Object.values(a).forEach((function(a){Object.values(a.waitingCallers||{}).forEach((function(t){var u=e.__assign(e.__assign({},t),{queueName:a.name});t.num&&(n[t.num]||(n[t.num]=[]),n[t.num].push(u)),t.channel&&(s[t.channel]=u),t.id&&(r[t.id]=u)}))})),{waitingCallersByNumber:n,waitingCallersByChannel:s,waitingCallersById:r}}(r);return e.__assign(e.__assign(e.__assign(e.__assign({},a),{byQueue:r}),t),{lastUpdatedAt:Date.now()})},updateQueueMember:function(a,n){var s;return e.__assign(e.__assign({},a),{byMember:e.__assign(e.__assign({},a.byMember),(s={},s[n.member]=n,s)),lastUpdatedAt:Date.now()})},reset:function(){return n}}});exports.queue=s;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),a=require("../node_modules/@rematch/core/dist/core.esm.js"),n={byQueue:{},byMember:{},waitingCallersByNumber:{},waitingCallersByChannel:{},waitingCallersById:{},lastUpdatedAt:null};var s=a.createModel()({state:n,reducers:{updateQueue:function(a,n){var s,r=e.__assign(e.__assign({},a.byQueue),((s={})[n.queue]=n,s)),t=function(a){var n={},s={},r={};return Object.values(a).forEach(function(a){Object.values(a.waitingCallers||{}).forEach(function(t){var u=e.__assign(e.__assign({},t),{queueName:a.name});t.num&&(n[t.num]||(n[t.num]=[]),n[t.num].push(u)),t.channel&&(s[t.channel]=u),t.id&&(r[t.id]=u)})}),{waitingCallersByNumber:n,waitingCallersByChannel:s,waitingCallersById:r}}(r);return e.__assign(e.__assign(e.__assign(e.__assign({},a),{byQueue:r}),t),{lastUpdatedAt:Date.now()})},updateQueueMember:function(a,n){var s;return e.__assign(e.__assign({},a),{byMember:e.__assign(e.__assign({},a.byMember),(s={},s[n.member]=n,s)),lastUpdatedAt:Date.now()})},reset:function(){return n}}});exports.queue=s;
2
2
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sources":["../../src/models/queue.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport type {\n QueueUpdateMemberTypes,\n QueueUpdateWaitingCallersTypes,\n QueuesUpdateTypes,\n} from '../types'\n\nexport interface QueueWaitingCallerReference extends QueueUpdateWaitingCallersTypes {\n queueName: string\n}\n\nexport interface QueueStoreTypes {\n byQueue: Record<string, QueuesUpdateTypes>\n byMember: Record<string, QueueUpdateMemberTypes>\n waitingCallersByNumber: Record<string, QueueWaitingCallerReference[]>\n waitingCallersByChannel: Record<string, QueueWaitingCallerReference>\n waitingCallersById: Record<string, QueueWaitingCallerReference>\n lastUpdatedAt: number | null\n}\n\nconst defaultState: QueueStoreTypes = {\n byQueue: {},\n byMember: {},\n waitingCallersByNumber: {},\n waitingCallersByChannel: {},\n waitingCallersById: {},\n lastUpdatedAt: null,\n}\n\nfunction buildWaitingCallersIndexes(byQueue: Record<string, QueuesUpdateTypes>) {\n const waitingCallersByNumber: QueueStoreTypes['waitingCallersByNumber'] = {}\n const waitingCallersByChannel: QueueStoreTypes['waitingCallersByChannel'] = {}\n const waitingCallersById: QueueStoreTypes['waitingCallersById'] = {}\n\n Object.values(byQueue).forEach((queueData) => {\n Object.values(queueData.waitingCallers || {}).forEach((caller) => {\n const callerReference: QueueWaitingCallerReference = {\n ...caller,\n queueName: queueData.name,\n }\n\n if (caller.num) {\n if (!waitingCallersByNumber[caller.num]) {\n waitingCallersByNumber[caller.num] = []\n }\n\n waitingCallersByNumber[caller.num].push(callerReference)\n }\n\n if (caller.channel) {\n waitingCallersByChannel[caller.channel] = callerReference\n }\n\n if (caller.id) {\n waitingCallersById[caller.id] = callerReference\n }\n })\n })\n\n return {\n waitingCallersByNumber,\n waitingCallersByChannel,\n waitingCallersById,\n }\n}\n\nexport const queue = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateQueue: (state, payload: QueuesUpdateTypes) => {\n const byQueue = {\n ...state.byQueue,\n [payload.queue]: payload,\n }\n const indexes = buildWaitingCallersIndexes(byQueue)\n\n return {\n ...state,\n byQueue,\n ...indexes,\n lastUpdatedAt: Date.now(),\n }\n },\n updateQueueMember: (state, payload: QueueUpdateMemberTypes) => {\n return {\n ...state,\n byMember: {\n ...state.byMember,\n [payload.member]: payload,\n },\n lastUpdatedAt: Date.now(),\n }\n },\n reset: () => {\n return defaultState\n },\n },\n})"],"names":["defaultState","byQueue","byMember","waitingCallersByNumber","waitingCallersByChannel","waitingCallersById","lastUpdatedAt","queue","createModel","state","reducers","updateQueue","payload","__assign","_a","indexes","Object","values","forEach","queueData","waitingCallers","caller","callerReference","queueName","name","num","push","channel","id","buildWaitingCallersIndexes","Date","now","updateQueueMember","member","reset"],"mappings":"oLAwBMA,EAAgC,CACpCC,QAAS,CAAE,EACXC,SAAU,CAAE,EACZC,uBAAwB,CAAE,EAC1BC,wBAAyB,CAAE,EAC3BC,mBAAoB,CAAE,EACtBC,cAAe,MAwCJ,IAAAC,EAAQC,EAAWA,aAAXA,CAAyB,CAC5CC,MAAOT,EACPU,SAAU,CACRC,YAAa,SAACF,EAAOG,SACbX,EAAOY,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACRJ,EAAMR,WAAOa,EAAA,CAAA,GACfF,EAAQL,OAAQK,EAAOE,IAEpBC,EA7CZ,SAAoCd,GAClC,IAAME,EAAoE,CAAA,EACpEC,EAAsE,CAAA,EACtEC,EAA4D,CAAA,EA2BlE,OAzBAW,OAAOC,OAAOhB,GAASiB,SAAQ,SAACC,GAC9BH,OAAOC,OAAOE,EAAUC,gBAAkB,CAAA,GAAIF,SAAQ,SAACG,GACrD,IAAMC,EACDT,EAAAA,SAAAA,EAAAA,SAAA,GAAAQ,GACH,CAAAE,UAAWJ,EAAUK,OAGnBH,EAAOI,MACJtB,EAAuBkB,EAAOI,OACjCtB,EAAuBkB,EAAOI,KAAO,IAGvCtB,EAAuBkB,EAAOI,KAAKC,KAAKJ,IAGtCD,EAAOM,UACTvB,EAAwBiB,EAAOM,SAAWL,GAGxCD,EAAOO,KACTvB,EAAmBgB,EAAOO,IAAMN,EAEpC,GACF,IAEO,CACLnB,uBAAsBA,EACtBC,wBAAuBA,EACvBC,mBAAkBA,EAEtB,CAUsBwB,CAA2B5B,GAE3C,OAAAY,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRR,QAAOA,IACJc,GACH,CAAAT,cAAewB,KAAKC,OAEvB,EACDC,kBAAmB,SAACvB,EAAOG,SACzB,OACKC,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHP,SAAQW,EAAAA,SAAAA,EAAAA,SAAA,GACHJ,EAAMP,kBACRU,EAAQqB,QAASrB,MAEpBN,cAAewB,KAAKC,OAEvB,EACDG,MAAO,WACL,OAAOlC,CACR"}
1
+ {"version":3,"file":"queue.js","sources":["../../src/models/queue.ts"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport type {\n QueueUpdateMemberTypes,\n QueueUpdateWaitingCallersTypes,\n QueuesUpdateTypes,\n} from '../types'\n\nexport interface QueueWaitingCallerReference extends QueueUpdateWaitingCallersTypes {\n queueName: string\n}\n\nexport interface QueueStoreTypes {\n byQueue: Record<string, QueuesUpdateTypes>\n byMember: Record<string, QueueUpdateMemberTypes>\n waitingCallersByNumber: Record<string, QueueWaitingCallerReference[]>\n waitingCallersByChannel: Record<string, QueueWaitingCallerReference>\n waitingCallersById: Record<string, QueueWaitingCallerReference>\n lastUpdatedAt: number | null\n}\n\nconst defaultState: QueueStoreTypes = {\n byQueue: {},\n byMember: {},\n waitingCallersByNumber: {},\n waitingCallersByChannel: {},\n waitingCallersById: {},\n lastUpdatedAt: null,\n}\n\nfunction buildWaitingCallersIndexes(byQueue: Record<string, QueuesUpdateTypes>) {\n const waitingCallersByNumber: QueueStoreTypes['waitingCallersByNumber'] = {}\n const waitingCallersByChannel: QueueStoreTypes['waitingCallersByChannel'] = {}\n const waitingCallersById: QueueStoreTypes['waitingCallersById'] = {}\n\n Object.values(byQueue).forEach((queueData) => {\n Object.values(queueData.waitingCallers || {}).forEach((caller) => {\n const callerReference: QueueWaitingCallerReference = {\n ...caller,\n queueName: queueData.name,\n }\n\n if (caller.num) {\n if (!waitingCallersByNumber[caller.num]) {\n waitingCallersByNumber[caller.num] = []\n }\n\n waitingCallersByNumber[caller.num].push(callerReference)\n }\n\n if (caller.channel) {\n waitingCallersByChannel[caller.channel] = callerReference\n }\n\n if (caller.id) {\n waitingCallersById[caller.id] = callerReference\n }\n })\n })\n\n return {\n waitingCallersByNumber,\n waitingCallersByChannel,\n waitingCallersById,\n }\n}\n\nexport const queue = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateQueue: (state, payload: QueuesUpdateTypes) => {\n const byQueue = {\n ...state.byQueue,\n [payload.queue]: payload,\n }\n const indexes = buildWaitingCallersIndexes(byQueue)\n\n return {\n ...state,\n byQueue,\n ...indexes,\n lastUpdatedAt: Date.now(),\n }\n },\n updateQueueMember: (state, payload: QueueUpdateMemberTypes) => {\n return {\n ...state,\n byMember: {\n ...state.byMember,\n [payload.member]: payload,\n },\n lastUpdatedAt: Date.now(),\n }\n },\n reset: () => {\n return defaultState\n },\n },\n})"],"names":["defaultState","byQueue","byMember","waitingCallersByNumber","waitingCallersByChannel","waitingCallersById","lastUpdatedAt","queue","createModel","state","reducers","updateQueue","payload","__assign","_a","indexes","Object","values","forEach","queueData","waitingCallers","caller","callerReference","queueName","name","num","push","channel","id","buildWaitingCallersIndexes","Date","now","updateQueueMember","member","reset"],"mappings":"oLAwBMA,EAAgC,CACpCC,QAAS,CAAE,EACXC,SAAU,CAAE,EACZC,uBAAwB,CAAE,EAC1BC,wBAAyB,CAAE,EAC3BC,mBAAoB,CAAE,EACtBC,cAAe,MAwCJ,IAAAC,EAAQC,EAAWA,aAAXA,CAAyB,CAC5CC,MAAOT,EACPU,SAAU,CACRC,YAAa,SAACF,EAAOG,SACbX,EAAOY,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACRJ,EAAMR,WAAOa,EAAA,CAAA,GACfF,EAAQL,OAAQK,EAAOE,IAEpBC,EA7CZ,SAAoCd,GAClC,IAAME,EAAoE,CAAA,EACpEC,EAAsE,CAAA,EACtEC,EAA4D,CAAA,EA2BlE,OAzBAW,OAAOC,OAAOhB,GAASiB,QAAQ,SAACC,GAC9BH,OAAOC,OAAOE,EAAUC,gBAAkB,CAAA,GAAIF,QAAQ,SAACG,GACrD,IAAMC,EACDT,EAAAA,SAAAA,EAAAA,SAAA,GAAAQ,GACH,CAAAE,UAAWJ,EAAUK,OAGnBH,EAAOI,MACJtB,EAAuBkB,EAAOI,OACjCtB,EAAuBkB,EAAOI,KAAO,IAGvCtB,EAAuBkB,EAAOI,KAAKC,KAAKJ,IAGtCD,EAAOM,UACTvB,EAAwBiB,EAAOM,SAAWL,GAGxCD,EAAOO,KACTvB,EAAmBgB,EAAOO,IAAMN,EAEpC,EACF,GAEO,CACLnB,uBAAsBA,EACtBC,wBAAuBA,EACvBC,mBAAkBA,EAEtB,CAUsBwB,CAA2B5B,GAE3C,OAAAY,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACKJ,GAAK,CACRR,QAAOA,IACJc,GACH,CAAAT,cAAewB,KAAKC,OAEvB,EACDC,kBAAmB,SAACvB,EAAOG,SACzB,OACKC,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHP,SAAQW,EAAAA,SAAAA,EAAAA,SAAA,GACHJ,EAAMP,kBACRU,EAAQqB,QAASrB,MAEpBN,cAAewB,KAAKC,OAEvB,EACDG,MAAO,WACL,OAAOlC,CACR"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("../node_modules/@rematch/core/dist/core.esm.js"),n=require("../static/incoming_ringtone.js"),i=require("../static/example_tone1.js"),s=require("../static/example_tone2.js"),a=require("../static/example_tone3.js"),o=require("../static/example_tone4.js"),u=require("../static/silent_ringtone.js"),r={availableRingtones:[{name:"default",displayName:"Default",base64Audio:n.default},{name:"classic",displayName:"Classic",base64Audio:i.default},{name:"modern",displayName:"Modern",base64Audio:s.default},{name:"soft",displayName:"Soft",base64Audio:a.default},{name:"gentle",displayName:"Gentle",base64Audio:o.default},{name:"silent",displayName:"Silent",base64Audio:u.default}],selectedRingtone:"default",outputDeviceId:null},l=t.createModel()({state:r,reducers:{setSelectedRingtone:function(t,n){return t.availableRingtones.some((function(e){return e.name===n}))?e.__assign(e.__assign({},t),{selectedRingtone:n}):(console.warn('Ringtone "'.concat(n,'" not found. Keeping current selection.')),t)},setOutputDeviceId:function(t,n){return e.__assign(e.__assign({},t),{outputDeviceId:n})},reset:function(){return r}},effects:function(e){return{getSelectedRingtoneAudio:function(e,t){var n=t.ringtones,i=n.selectedRingtone,s=n.availableRingtones,a=s.find((function(e){return e.name===i}));return(null==a?void 0:a.base64Audio)||s[0].base64Audio}}}});exports.ringtones=l;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("../node_modules/@rematch/core/dist/core.esm.js"),n=require("../static/incoming_ringtone.js"),i=require("../static/example_tone1.js"),s=require("../static/example_tone2.js"),a=require("../static/example_tone3.js"),o=require("../static/example_tone4.js"),u=require("../static/silent_ringtone.js"),r={availableRingtones:[{name:"default",displayName:"Default",base64Audio:n.default},{name:"classic",displayName:"Classic",base64Audio:i.default},{name:"modern",displayName:"Modern",base64Audio:s.default},{name:"soft",displayName:"Soft",base64Audio:a.default},{name:"gentle",displayName:"Gentle",base64Audio:o.default},{name:"silent",displayName:"Silent",base64Audio:u.default}],selectedRingtone:"default",outputDeviceId:null},l=t.createModel()({state:r,reducers:{setSelectedRingtone:function(t,n){return t.availableRingtones.some(function(e){return e.name===n})?e.__assign(e.__assign({},t),{selectedRingtone:n}):(console.warn('Ringtone "'.concat(n,'" not found. Keeping current selection.')),t)},setOutputDeviceId:function(t,n){return e.__assign(e.__assign({},t),{outputDeviceId:n})},reset:function(){return r}},effects:function(e){return{getSelectedRingtoneAudio:function(e,t){var n=t.ringtones,i=n.selectedRingtone,s=n.availableRingtones,a=s.find(function(e){return e.name===i});return(null==a?void 0:a.base64Audio)||s[0].base64Audio}}}});exports.ringtones=l;
2
2
  //# sourceMappingURL=ringtones.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ringtones.js","sources":["../../src/models/ringtones.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport incomingRingtone from '../static/incoming_ringtone'\nimport exampleTone1 from '../static/example_tone1'\nimport exampleTone2 from '../static/example_tone2'\nimport exampleTone3 from '../static/example_tone3'\nimport exampleTone4 from '../static/example_tone4'\nimport silentRingtone from '../static/silent_ringtone'\n\nexport interface RingtoneOption {\n name: string\n displayName: string\n base64Audio: string\n}\n\nexport interface RingtonesTypes {\n availableRingtones: RingtoneOption[]\n selectedRingtone: string\n outputDeviceId: string | null\n}\n\nconst AVAILABLE_RINGTONES: RingtoneOption[] = [\n {\n name: 'default',\n displayName: 'Default',\n base64Audio: incomingRingtone,\n },\n {\n name: 'classic',\n displayName: 'Classic',\n base64Audio: exampleTone1,\n },\n {\n name: 'modern',\n displayName: 'Modern',\n base64Audio: exampleTone2,\n },\n {\n name: 'soft',\n displayName: 'Soft',\n base64Audio: exampleTone3,\n },\n {\n name: 'gentle',\n displayName: 'Gentle',\n base64Audio: exampleTone4,\n },\n {\n name: 'silent',\n displayName: 'Silent',\n base64Audio: silentRingtone,\n },\n]\n\nconst defaultState: RingtonesTypes = {\n availableRingtones: AVAILABLE_RINGTONES,\n selectedRingtone: 'default',\n outputDeviceId: null,\n}\n\nexport const ringtones = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n setSelectedRingtone: (state, payload: string) => {\n // Validate that the ringtone exists\n const ringtoneExists = state.availableRingtones.some((r) => r.name === payload)\n if (!ringtoneExists) {\n console.warn(`Ringtone \"${payload}\" not found. Keeping current selection.`)\n return state\n }\n return {\n ...state,\n selectedRingtone: payload,\n }\n },\n setOutputDeviceId: (state, payload: string | null) => {\n return {\n ...state,\n outputDeviceId: payload,\n }\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n /**\n * Gets the currently selected ringtone's base64 audio data\n */\n getSelectedRingtoneAudio: (_: void, rootState): string => {\n const { selectedRingtone, availableRingtones } = rootState.ringtones\n const ringtone = (availableRingtones as RingtoneOption[]).find(\n (r) => r.name === selectedRingtone,\n )\n return ringtone?.base64Audio || (availableRingtones as RingtoneOption[])[0].base64Audio\n },\n }),\n})\n"],"names":["defaultState","availableRingtones","name","displayName","base64Audio","incomingRingtone","exampleTone1","exampleTone2","exampleTone3","exampleTone4","silentRingtone","selectedRingtone","outputDeviceId","ringtones","createModel","state","reducers","setSelectedRingtone","payload","some","r","__assign","console","warn","setOutputDeviceId","reset","effects","dispatch","getSelectedRingtoneAudio","_","rootState","_a","ringtone","find"],"mappings":"0aAyDMA,EAA+B,CACnCC,mBAlC4C,CAC5C,CACEC,KAAM,UACNC,YAAa,UACbC,YAAaC,EAAgB,SAE/B,CACEH,KAAM,UACNC,YAAa,UACbC,YAAaE,EAAY,SAE3B,CACEJ,KAAM,SACNC,YAAa,SACbC,YAAaG,EAAY,SAE3B,CACEL,KAAM,OACNC,YAAa,OACbC,YAAaI,EAAY,SAE3B,CACEN,KAAM,SACNC,YAAa,SACbC,YAAaK,EAAY,SAE3B,CACEP,KAAM,SACNC,YAAa,SACbC,YAAaM,EAAc,UAM7BC,iBAAkB,UAClBC,eAAgB,MAGLC,EAAYC,EAAWA,aAAXA,CAAyB,CAChDC,MAAOf,EACPgB,SAAU,CACRC,oBAAqB,SAACF,EAAOG,GAG3B,OADuBH,EAAMd,mBAAmBkB,MAAK,SAACC,GAAM,OAAAA,EAAElB,OAASgB,CAAO,IAK9EG,EAAAA,SAAAA,EAAAA,SAAA,GACKN,GAAK,CACRJ,iBAAkBO,KALlBI,QAAQC,KAAK,oBAAaL,EAAO,4CAC1BH,EAMV,EACDS,kBAAmB,SAACT,EAAOG,GACzB,OAAAG,EAAAA,SAAAA,EAAAA,SAAA,GACKN,GAAK,CACRH,eAAgBM,GAEnB,EACDO,MAAO,WACL,OAAOzB,CACR,GAEH0B,QAAS,SAACC,GAAa,MAAC,CAItBC,yBAA0B,SAACC,EAASC,GAC5B,IAAAC,EAA2CD,EAAUjB,UAAnDF,EAAgBoB,EAAApB,iBAAEV,EAAkB8B,EAAA9B,mBACtC+B,EAAY/B,EAAwCgC,MACxD,SAACb,GAAM,OAAAA,EAAElB,OAASS,CAAX,IAET,OAAOqB,eAAAA,EAAU5B,cAAgBH,EAAwC,GAAGG,WAC7E,EACD"}
1
+ {"version":3,"file":"ringtones.js","sources":["../../src/models/ringtones.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\nimport incomingRingtone from '../static/incoming_ringtone'\nimport exampleTone1 from '../static/example_tone1'\nimport exampleTone2 from '../static/example_tone2'\nimport exampleTone3 from '../static/example_tone3'\nimport exampleTone4 from '../static/example_tone4'\nimport silentRingtone from '../static/silent_ringtone'\n\nexport interface RingtoneOption {\n name: string\n displayName: string\n base64Audio: string\n}\n\nexport interface RingtonesTypes {\n availableRingtones: RingtoneOption[]\n selectedRingtone: string\n outputDeviceId: string | null\n}\n\nconst AVAILABLE_RINGTONES: RingtoneOption[] = [\n {\n name: 'default',\n displayName: 'Default',\n base64Audio: incomingRingtone,\n },\n {\n name: 'classic',\n displayName: 'Classic',\n base64Audio: exampleTone1,\n },\n {\n name: 'modern',\n displayName: 'Modern',\n base64Audio: exampleTone2,\n },\n {\n name: 'soft',\n displayName: 'Soft',\n base64Audio: exampleTone3,\n },\n {\n name: 'gentle',\n displayName: 'Gentle',\n base64Audio: exampleTone4,\n },\n {\n name: 'silent',\n displayName: 'Silent',\n base64Audio: silentRingtone,\n },\n]\n\nconst defaultState: RingtonesTypes = {\n availableRingtones: AVAILABLE_RINGTONES,\n selectedRingtone: 'default',\n outputDeviceId: null,\n}\n\nexport const ringtones = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n setSelectedRingtone: (state, payload: string) => {\n // Validate that the ringtone exists\n const ringtoneExists = state.availableRingtones.some((r) => r.name === payload)\n if (!ringtoneExists) {\n console.warn(`Ringtone \"${payload}\" not found. Keeping current selection.`)\n return state\n }\n return {\n ...state,\n selectedRingtone: payload,\n }\n },\n setOutputDeviceId: (state, payload: string | null) => {\n return {\n ...state,\n outputDeviceId: payload,\n }\n },\n reset: () => {\n return defaultState\n },\n },\n effects: (dispatch) => ({\n /**\n * Gets the currently selected ringtone's base64 audio data\n */\n getSelectedRingtoneAudio: (_: void, rootState): string => {\n const { selectedRingtone, availableRingtones } = rootState.ringtones\n const ringtone = (availableRingtones as RingtoneOption[]).find(\n (r) => r.name === selectedRingtone,\n )\n return ringtone?.base64Audio || (availableRingtones as RingtoneOption[])[0].base64Audio\n },\n }),\n})\n"],"names":["defaultState","availableRingtones","name","displayName","base64Audio","incomingRingtone","exampleTone1","exampleTone2","exampleTone3","exampleTone4","silentRingtone","selectedRingtone","outputDeviceId","ringtones","createModel","state","reducers","setSelectedRingtone","payload","some","r","__assign","console","warn","setOutputDeviceId","reset","effects","dispatch","getSelectedRingtoneAudio","_","rootState","_a","ringtone","find"],"mappings":"0aAyDMA,EAA+B,CACnCC,mBAlC4C,CAC5C,CACEC,KAAM,UACNC,YAAa,UACbC,YAAaC,EAAgB,SAE/B,CACEH,KAAM,UACNC,YAAa,UACbC,YAAaE,EAAY,SAE3B,CACEJ,KAAM,SACNC,YAAa,SACbC,YAAaG,EAAY,SAE3B,CACEL,KAAM,OACNC,YAAa,OACbC,YAAaI,EAAY,SAE3B,CACEN,KAAM,SACNC,YAAa,SACbC,YAAaK,EAAY,SAE3B,CACEP,KAAM,SACNC,YAAa,SACbC,YAAaM,EAAc,UAM7BC,iBAAkB,UAClBC,eAAgB,MAGLC,EAAYC,EAAWA,aAAXA,CAAyB,CAChDC,MAAOf,EACPgB,SAAU,CACRC,oBAAqB,SAACF,EAAOG,GAG3B,OADuBH,EAAMd,mBAAmBkB,KAAK,SAACC,GAAM,OAAAA,EAAElB,OAASgB,CAAO,GAK9EG,EAAAA,SAAAA,EAAAA,SAAA,GACKN,GAAK,CACRJ,iBAAkBO,KALlBI,QAAQC,KAAK,oBAAaL,EAAO,4CAC1BH,EAMV,EACDS,kBAAmB,SAACT,EAAOG,GACzB,OAAAG,EAAAA,SAAAA,EAAAA,SAAA,GACKN,GAAK,CACRH,eAAgBM,GAEnB,EACDO,MAAO,WACL,OAAOzB,CACR,GAEH0B,QAAS,SAACC,GAAa,MAAC,CAItBC,yBAA0B,SAACC,EAASC,GAC5B,IAAAC,EAA2CD,EAAUjB,UAAnDF,EAAgBoB,EAAApB,iBAAEV,EAAkB8B,EAAA9B,mBACtC+B,EAAY/B,EAAwCgC,KACxD,SAACb,GAAM,OAAAA,EAAElB,OAASS,CAAX,GAET,OAAOqB,eAAAA,EAAU5B,cAAgBH,EAAwC,GAAGG,WAC7E,EACD"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),s=require("../node_modules/@rematch/core/dist/core.esm.js"),r={videoSources:{},sourceImages:{}},o=s.createModel()({state:r,reducers:{updateVideoSources:function(s,r){return e.__assign(e.__assign({},s),{videoSources:r})},updateSourceImage:function(s,r){var o,i=r.source,u=e.__assign(e.__assign({},s.sourceImages),((o={})[i]=r.image,o)),a=e.__assign({},s.videoSources);return Object.values(a).some((function(e){return e.id===i}))&&Object.keys(a).forEach((function(s){a[s].id===i&&(a[s]=e.__assign(e.__assign({},a[s]),{image:r.image}))})),e.__assign(e.__assign({},s),{sourceImages:u,videoSources:a})},clearSourceImages:function(s){return e.__assign(e.__assign({},s),{sourceImages:{}})},reset:function(){return r}}});exports.streaming=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),s=require("../node_modules/@rematch/core/dist/core.esm.js"),r={videoSources:{},sourceImages:{}},o=s.createModel()({state:r,reducers:{updateVideoSources:function(s,r){return e.__assign(e.__assign({},s),{videoSources:r})},updateSourceImage:function(s,r){var o,i=r.source,u=e.__assign(e.__assign({},s.sourceImages),((o={})[i]=r.image,o)),a=e.__assign({},s.videoSources);return Object.values(a).some(function(e){return e.id===i})&&Object.keys(a).forEach(function(s){a[s].id===i&&(a[s]=e.__assign(e.__assign({},a[s]),{image:r.image}))}),e.__assign(e.__assign({},s),{sourceImages:u,videoSources:a})},clearSourceImages:function(s){return e.__assign(e.__assign({},s),{sourceImages:{}})},reset:function(){return r}}});exports.streaming=o;
2
2
  //# sourceMappingURL=streaming.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sources":["../../src/models/streaming.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\ninterface VideoSourceType {\n cmdOpen: string\n description: string\n extension: string\n frameRate: string\n id: string\n password: string\n url: string\n user: string\n image?: string\n}\n\ninterface StreamingStateType {\n videoSources: Record<string, VideoSourceType>\n sourceImages: Record<string, string>\n}\n\nconst defaultState: StreamingStateType = {\n videoSources: {},\n sourceImages: {},\n}\n\nexport const streaming = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateVideoSources: (state, payload: Record<string, VideoSourceType>) => {\n return {\n ...state,\n videoSources: payload,\n }\n },\n updateSourceImage: (state, payload: { source: string; image: string }) => {\n const sourceId = payload.source\n\n const updatedSourceImages = {\n ...state.sourceImages,\n [sourceId]: payload.image,\n }\n\n const updatedVideoSources = { ...state.videoSources }\n\n if (Object.values(updatedVideoSources).some((source) => source.id === sourceId)) {\n Object.keys(updatedVideoSources).forEach((key) => {\n if (updatedVideoSources[key].id === sourceId) {\n updatedVideoSources[key] = {\n ...updatedVideoSources[key],\n image: payload.image,\n }\n }\n })\n }\n\n return {\n ...state,\n sourceImages: updatedSourceImages,\n videoSources: updatedVideoSources,\n }\n },\n clearSourceImages: (state) => {\n return {\n ...state,\n sourceImages: {},\n }\n },\n reset: () => {\n return defaultState\n },\n },\n})\n"],"names":["defaultState","videoSources","sourceImages","streaming","createModel","state","reducers","updateVideoSources","payload","__assign","updateSourceImage","sourceId","source","updatedSourceImages","_a","image","updatedVideoSources","Object","values","some","id","keys","forEach","key","clearSourceImages","reset"],"mappings":"oLAuBMA,EAAmC,CACvCC,aAAc,CAAE,EAChBC,aAAc,CAAE,GAGLC,EAAYC,EAAWA,aAAXA,CAAyB,CAChDC,MAAOL,EACPM,SAAU,CACRC,mBAAoB,SAACF,EAAOG,GAC1B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRJ,aAAcO,GAEjB,EACDE,kBAAmB,SAACL,EAAOG,SACnBG,EAAWH,EAAQI,OAEnBC,EAAmBJ,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACpBJ,EAAMH,gBAAYY,EAAA,CAAA,GACpBH,GAAWH,EAAQO,MAAKD,IAGrBE,EAA2BP,EAAAA,SAAA,CAAA,EAAAJ,EAAMJ,cAavC,OAXIgB,OAAOC,OAAOF,GAAqBG,MAAK,SAACP,GAAW,OAAAA,EAAOQ,KAAOT,CAAQ,KAC5EM,OAAOI,KAAKL,GAAqBM,SAAQ,SAACC,GACpCP,EAAoBO,GAAKH,KAAOT,IAClCK,EAAoBO,GAAId,WAAAA,EAAAA,SAAA,CAAA,EACnBO,EAAoBO,IAAI,CAC3BR,MAAOP,EAAQO,QAGrB,IAIGN,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHH,aAAcW,EACdZ,aAAce,GAEjB,EACDQ,kBAAmB,SAACnB,GAClB,OAAAI,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRH,aAAc,CAAE,GAEnB,EACDuB,MAAO,WACL,OAAOzB,CACR"}
1
+ {"version":3,"file":"streaming.js","sources":["../../src/models/streaming.ts"],"sourcesContent":["// Copyright (C) 2025 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport { createModel } from '@rematch/core'\nimport type { RootModel } from '.'\n\ninterface VideoSourceType {\n cmdOpen: string\n description: string\n extension: string\n frameRate: string\n id: string\n password: string\n url: string\n user: string\n image?: string\n}\n\ninterface StreamingStateType {\n videoSources: Record<string, VideoSourceType>\n sourceImages: Record<string, string>\n}\n\nconst defaultState: StreamingStateType = {\n videoSources: {},\n sourceImages: {},\n}\n\nexport const streaming = createModel<RootModel>()({\n state: defaultState,\n reducers: {\n updateVideoSources: (state, payload: Record<string, VideoSourceType>) => {\n return {\n ...state,\n videoSources: payload,\n }\n },\n updateSourceImage: (state, payload: { source: string; image: string }) => {\n const sourceId = payload.source\n\n const updatedSourceImages = {\n ...state.sourceImages,\n [sourceId]: payload.image,\n }\n\n const updatedVideoSources = { ...state.videoSources }\n\n if (Object.values(updatedVideoSources).some((source) => source.id === sourceId)) {\n Object.keys(updatedVideoSources).forEach((key) => {\n if (updatedVideoSources[key].id === sourceId) {\n updatedVideoSources[key] = {\n ...updatedVideoSources[key],\n image: payload.image,\n }\n }\n })\n }\n\n return {\n ...state,\n sourceImages: updatedSourceImages,\n videoSources: updatedVideoSources,\n }\n },\n clearSourceImages: (state) => {\n return {\n ...state,\n sourceImages: {},\n }\n },\n reset: () => {\n return defaultState\n },\n },\n})\n"],"names":["defaultState","videoSources","sourceImages","streaming","createModel","state","reducers","updateVideoSources","payload","__assign","updateSourceImage","sourceId","source","updatedSourceImages","_a","image","updatedVideoSources","Object","values","some","id","keys","forEach","key","clearSourceImages","reset"],"mappings":"oLAuBMA,EAAmC,CACvCC,aAAc,CAAE,EAChBC,aAAc,CAAE,GAGLC,EAAYC,EAAWA,aAAXA,CAAyB,CAChDC,MAAOL,EACPM,SAAU,CACRC,mBAAoB,SAACF,EAAOG,GAC1B,OAAAC,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRJ,aAAcO,GAEjB,EACDE,kBAAmB,SAACL,EAAOG,SACnBG,EAAWH,EAAQI,OAEnBC,EAAmBJ,EAAAA,SAAAA,EAAAA,SAAA,CAAA,EACpBJ,EAAMH,gBAAYY,EAAA,CAAA,GACpBH,GAAWH,EAAQO,MAAKD,IAGrBE,EAA2BP,EAAAA,SAAA,CAAA,EAAAJ,EAAMJ,cAavC,OAXIgB,OAAOC,OAAOF,GAAqBG,KAAK,SAACP,GAAW,OAAAA,EAAOQ,KAAOT,CAAQ,IAC5EM,OAAOI,KAAKL,GAAqBM,QAAQ,SAACC,GACpCP,EAAoBO,GAAKH,KAAOT,IAClCK,EAAoBO,GAAId,WAAAA,EAAAA,SAAA,CAAA,EACnBO,EAAoBO,IAAI,CAC3BR,MAAOP,EAAQO,QAGrB,GAIGN,WAAAA,EAAAA,SAAA,CAAA,EAAAJ,IACHH,aAAcW,EACdZ,aAAce,GAEjB,EACDQ,kBAAmB,SAACnB,GAClB,OAAAI,EAAAA,SAAAA,EAAAA,SAAA,GACKJ,GAAK,CACRH,aAAc,CAAE,GAEnB,EACDuB,MAAO,WACL,OAAOzB,CACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"assertThisInitialized.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"],"sourcesContent":["function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };"],"names":["e","ReferenceError"],"mappings":"oFAAA,SAAgCA,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAIC,eAAe,6DAC3C,OAAOD,CACT"}
1
+ {"version":3,"file":"assertThisInitialized.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"],"sourcesContent":["function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };"],"names":["e","ReferenceError"],"mappings":"oFAAA,SAAgCA,GAC9B,QAAS,IAAMA,EAAG,MAAM,IAAIC,eAAe,6DAC3C,OAAOD,CACT"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./defineProperty.js");function r(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}exports.default=function(t){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{};o%2?r(Object(n),!0).forEach((function(r){e.default(t,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./defineProperty.js");function r(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}exports.default=function(t){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{};o%2?r(Object(n),!0).forEach(function(r){e.default(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t};
2
2
  //# sourceMappingURL=objectSpread2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"objectSpread2.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","forEach","defineProperty","getOwnPropertyDescriptors","defineProperties"],"mappings":"yGACA,SAASA,EAAQC,EAAGC,GAClB,IAAIC,EAAIC,OAAOC,KAAKJ,GACpB,GAAIG,OAAOE,sBAAuB,CAChC,IAAIC,EAAIH,OAAOE,sBAAsBL,GACrCC,IAAMK,EAAIA,EAAEC,QAAO,SAAUN,GAC3B,OAAOE,OAAOK,yBAAyBR,EAAGC,GAAGQ,UAC/C,KAAKP,EAAEQ,KAAKC,MAAMT,EAAGI,EACvB,CACA,OAAOJ,CACT,iBACA,SAAwBF,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIW,UAAUC,OAAQZ,IAAK,CACzC,IAAIC,EAAI,MAAQU,UAAUX,GAAKW,UAAUX,GAAK,GAC9CA,EAAI,EAAIF,EAAQI,OAAOD,IAAI,GAAIY,SAAQ,SAAUb,GAC/Cc,EAAAA,QAAef,EAAGC,EAAGC,EAAED,GACzB,IAAKE,OAAOa,0BAA4Bb,OAAOc,iBAAiBjB,EAAGG,OAAOa,0BAA0Bd,IAAMH,EAAQI,OAAOD,IAAIY,SAAQ,SAAUb,GAC7IE,OAAOY,eAAef,EAAGC,EAAGE,OAAOK,yBAAyBN,EAAGD,GACjE,GACF,CACA,OAAOD,CACT"}
1
+ {"version":3,"file":"objectSpread2.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };"],"names":["ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","forEach","defineProperty","getOwnPropertyDescriptors","defineProperties"],"mappings":"yGACA,SAASA,EAAQC,EAAGC,GAClB,IAAIC,EAAIC,OAAOC,KAAKJ,GACpB,GAAIG,OAAOE,sBAAuB,CAChC,IAAIC,EAAIH,OAAOE,sBAAsBL,GACrCC,IAAMK,EAAIA,EAAEC,OAAO,SAAUN,GAC3B,OAAOE,OAAOK,yBAAyBR,EAAGC,GAAGQ,UAC/C,IAAKP,EAAEQ,KAAKC,MAAMT,EAAGI,EACvB,CACA,OAAOJ,CACT,iBACA,SAAwBF,GACtB,IAAK,IAAIC,EAAI,EAAGA,EAAIW,UAAUC,OAAQZ,IAAK,CACzC,IAAIC,EAAI,MAAQU,UAAUX,GAAKW,UAAUX,GAAK,GAC9CA,EAAI,EAAIF,EAAQI,OAAOD,IAAI,GAAIY,QAAQ,SAAUb,GAC/Cc,EAAAA,QAAef,EAAGC,EAAGC,EAAED,GACzB,GAAKE,OAAOa,0BAA4Bb,OAAOc,iBAAiBjB,EAAGG,OAAOa,0BAA0Bd,IAAMH,EAAQI,OAAOD,IAAIY,QAAQ,SAAUb,GAC7IE,OAAOY,eAAef,EAAGC,EAAGE,OAAOK,yBAAyBN,EAAGD,GACjE,EACF,CACA,OAAOD,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"possibleConstructorReturn.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };"],"names":["t","e","_typeof","TypeError","assertThisInitialized"],"mappings":"yJAEA,SAAoCA,EAAGC,GACrC,GAAIA,IAAM,UAAYC,EAAAA,QAAQD,IAAM,mBAAqBA,GAAI,OAAOA,EACpE,QAAI,IAAWA,EAAG,MAAM,IAAIE,UAAU,4DACtC,OAAOC,EAAAA,QAAsBJ,EAC/B"}
1
+ {"version":3,"file":"possibleConstructorReturn.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };"],"names":["t","e","_typeof","TypeError","assertThisInitialized"],"mappings":"yJAEA,SAAoCA,EAAGC,GACrC,GAAIA,IAAM,UAAYC,EAAAA,QAAQD,IAAM,mBAAqBA,GAAI,OAAOA,EACpE,QAAS,IAAMA,EAAG,MAAM,IAAIE,UAAU,4DACtC,OAAOC,EAAAA,QAAsBJ,EAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"toPrimitive.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };"],"names":["t","r","_typeof","e","Symbol","toPrimitive","i","call","TypeError","String","Number"],"mappings":"iHACA,SAAqBA,EAAGC,GACtB,GAAI,UAAYC,EAAAA,QAAQF,KAAOA,EAAG,OAAOA,EACzC,IAAIG,EAAIH,EAAEI,OAAOC,aACjB,QAAI,IAAWF,EAAG,CAChB,IAAIG,EAAIH,EAAEI,KAAKP,EAAGC,GAAK,WACvB,GAAI,UAAYC,EAAO,QAACI,GAAI,OAAOA,EACnC,MAAM,IAAIE,UAAU,+CACtB,CACA,OAAQ,WAAaP,EAAIQ,OAASC,QAAQV,EAC5C"}
1
+ {"version":3,"file":"toPrimitive.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js"],"sourcesContent":["import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };"],"names":["t","r","_typeof","e","Symbol","toPrimitive","i","call","TypeError","String","Number"],"mappings":"iHACA,SAAqBA,EAAGC,GACtB,GAAI,UAAYC,EAAAA,QAAQF,KAAOA,EAAG,OAAOA,EACzC,IAAIG,EAAIH,EAAEI,OAAOC,aACjB,QAAS,IAAMF,EAAG,CAChB,IAAIG,EAAIH,EAAEI,KAAKP,EAAGC,GAAK,WACvB,GAAI,UAAYC,EAAO,QAACI,GAAI,OAAOA,EACnC,MAAM,IAAIE,UAAU,+CACtB,CACA,OAAQ,WAAaP,EAAIQ,OAASC,QAAQV,EAC5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"unsupportedIterableToArray.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["r","a","arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test"],"mappings":"2HACA,SAAqCA,EAAGC,GACtC,GAAID,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOE,EAAAA,QAAiBF,EAAGC,GACrD,IAAIE,EAAI,GAAGC,SAASC,KAAKL,GAAGM,MAAM,GAAI,GACtC,MAAO,WAAaH,GAAKH,EAAEO,cAAgBJ,EAAIH,EAAEO,YAAYC,MAAO,QAAUL,GAAK,QAAUA,EAAIM,MAAMC,KAAKV,GAAK,cAAgBG,GAAK,2CAA2CQ,KAAKR,GAAKD,EAAAA,QAAiBF,EAAGC,QAAK,CACtN,CACF"}
1
+ {"version":3,"file":"unsupportedIterableToArray.js","sources":["../../../../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["r","a","arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test"],"mappings":"2HACA,SAAqCA,EAAGC,GACtC,GAAID,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOE,EAAAA,QAAiBF,EAAGC,GACrD,IAAIE,EAAI,GAAGC,SAASC,KAAKL,GAAGM,MAAM,GAAI,GACtC,MAAO,WAAaH,GAAKH,EAAEO,cAAgBJ,EAAIH,EAAEO,YAAYC,MAAO,QAAUL,GAAK,QAAUA,EAAIM,MAAMC,KAAKV,GAAK,cAAgBG,GAAK,2CAA2CQ,KAAKR,GAAKD,EAAAA,QAAiBF,EAAGC,QAAU,CAC3N,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"toPrimitive.js","sources":["../../../../../node_modules/@babel/runtime/helpers/toPrimitive.js"],"sourcesContent":["var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["_typeof","require$$0","module","exports","t","r","e","Symbol","toPrimitive","i","call","TypeError","String","Number","__esModule"],"mappings":"+FAAIA,2DAAAA,EAAUC,UAAgC,QAW9CC,EAAAC,QAVA,SAAqBC,EAAGC,GACtB,GAAI,UAAYL,EAAQI,KAAOA,EAAG,OAAOA,EACzC,IAAIE,EAAIF,EAAEG,OAAOC,aACjB,QAAI,IAAWF,EAAG,CAChB,IAAIG,EAAIH,EAAEI,KAAKN,EAAGC,GAAK,WACvB,GAAI,UAAYL,EAAQS,GAAI,OAAOA,EACnC,MAAM,IAAIE,UAAU,+CACrB,CACD,OAAQ,WAAaN,EAAIO,OAASC,QAAQT,EAC5C,EAC8BF,EAA4BC,QAAAW,YAAA,EAAMZ,EAAOC,QAAiB,QAAID,EAAOC"}
1
+ {"version":3,"file":"toPrimitive.js","sources":["../../../../../node_modules/@babel/runtime/helpers/toPrimitive.js"],"sourcesContent":["var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["_typeof","require$$0","module","exports","t","r","e","Symbol","toPrimitive","i","call","TypeError","String","Number","__esModule"],"mappings":"+FAAIA,2DAAAA,EAAUC,UAAgC,QAW9CC,EAAAC,QAVA,SAAqBC,EAAGC,GACtB,GAAI,UAAYL,EAAQI,KAAOA,EAAG,OAAOA,EACzC,IAAIE,EAAIF,EAAEG,OAAOC,aACjB,QAAS,IAAMF,EAAG,CAChB,IAAIG,EAAIH,EAAEI,KAAKN,EAAGC,GAAK,WACvB,GAAI,UAAYL,EAAQS,GAAI,OAAOA,EACnC,MAAM,IAAIE,UAAU,+CACrB,CACD,OAAQ,WAAaN,EAAIO,OAASC,QAAQT,EAC5C,EAC8BF,EAA4BC,QAAAW,YAAA,EAAMZ,EAAOC,QAAiB,QAAID,EAAOC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unsupportedIterableToArray.js","sources":["../../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"sourcesContent":["var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["arrayLikeToArray","require$$0","module","exports","r","a","t","toString","call","slice","constructor","name","Array","from","test","__esModule"],"mappings":"wHAAIA,qEAAAA,EAAmBC,EAAAA,QAQvBC,EAAAC,QAPA,SAAqCC,EAAGC,GACtC,GAAID,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOJ,EAAiBI,EAAGC,GACrD,IAAIC,EAAI,GAAGC,SAASC,KAAKJ,GAAGK,MAAM,GAAI,GACtC,MAAO,WAAaH,GAAKF,EAAEM,cAAgBJ,EAAIF,EAAEM,YAAYC,MAAO,QAAUL,GAAK,QAAUA,EAAIM,MAAMC,KAAKT,GAAK,cAAgBE,GAAK,2CAA2CQ,KAAKR,GAAKN,EAAiBI,EAAGC,QAAK,CACrN,CACH,EAC8CH,EAA4BC,QAAAY,YAAA,EAAMb,EAAOC,QAAiB,QAAID,EAAOC"}
1
+ {"version":3,"file":"unsupportedIterableToArray.js","sources":["../../../../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js"],"sourcesContent":["var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"names":["arrayLikeToArray","require$$0","module","exports","r","a","t","toString","call","slice","constructor","name","Array","from","test","__esModule"],"mappings":"wHAAIA,qEAAAA,EAAmBC,EAAAA,QAQvBC,EAAAC,QAPA,SAAqCC,EAAGC,GACtC,GAAID,EAAG,CACL,GAAI,iBAAmBA,EAAG,OAAOJ,EAAiBI,EAAGC,GACrD,IAAIC,EAAI,GAAGC,SAASC,KAAKJ,GAAGK,MAAM,GAAI,GACtC,MAAO,WAAaH,GAAKF,EAAEM,cAAgBJ,EAAIF,EAAEM,YAAYC,MAAO,QAAUL,GAAK,QAAUA,EAAIM,MAAMC,KAAKT,GAAK,cAAgBE,GAAK,2CAA2CQ,KAAKR,GAAKN,EAAiBI,EAAGC,QAAU,CAC1N,CACH,EAC8CH,EAA4BC,QAAAY,YAAA,EAAMb,EAAOC,QAAiB,QAAID,EAAOC"}