@nethesis/phone-island 1.0.11-dev.1 → 1.0.12-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/App.js.map +1 -1
  3. package/dist/_virtual/index6.js +1 -1
  4. package/dist/_virtual/index9.js +1 -1
  5. package/dist/components/RecorderView/Actions.js +1 -1
  6. package/dist/components/RecorderView/Actions.js.map +1 -1
  7. package/dist/components/RestAPI.js +1 -1
  8. package/dist/components/RestAPI.js.map +1 -1
  9. package/dist/components/SideView/hooks/useSideViewLogic.js +1 -1
  10. package/dist/components/SideView/hooks/useSideViewLogic.js.map +1 -1
  11. package/dist/components/VideoView/index.js +1 -1
  12. package/dist/components/VideoView/index.js.map +1 -1
  13. package/dist/events/PlayerEvents.js +1 -1
  14. package/dist/events/PlayerEvents.js.map +1 -1
  15. package/dist/lib/devices/devices.js +1 -1
  16. package/dist/lib/phone/call.js +1 -1
  17. package/dist/lib/phone/call.js.map +1 -1
  18. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js +1 -7
  19. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.mjs.js.map +1 -1
  20. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
  21. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
  22. package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js +2 -0
  23. package/dist/node_modules/framer-motion/dist/es/animation/animate/single-value.mjs.js.map +1 -0
  24. package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js +2 -0
  25. package/dist/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs.js.map +1 -0
  26. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js +1 -1
  27. package/dist/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs.js.map +1 -1
  28. package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js +1 -1
  29. package/dist/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs.js.map +1 -1
  30. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js +2 -0
  31. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs.js.map +1 -0
  32. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js +2 -0
  33. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs.js.map +1 -0
  34. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js +2 -0
  35. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +1 -0
  36. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs.js.map +1 -0
  37. package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs.js.map +1 -0
  38. package/dist/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs.js.map +1 -0
  39. package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js +2 -0
  40. package/dist/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs.js.map +1 -0
  41. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs.js.map +1 -0
  42. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs.js.map +1 -0
  43. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js +2 -0
  44. package/dist/node_modules/framer-motion/dist/es/animation/utils/is-transition-defined.mjs.js.map +1 -0
  45. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js +1 -1
  46. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs.js.map +1 -1
  47. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js +1 -1
  48. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs.js.map +1 -1
  49. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js +1 -1
  50. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs.js.map +1 -1
  51. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs.js.map +1 -1
  52. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs.js.map +1 -1
  53. package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs.js.map +1 -1
  54. package/dist/node_modules/framer-motion/dist/es/context/LazyContext.mjs.js.map +1 -1
  55. package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs.js.map +1 -1
  56. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs.js.map +1 -1
  57. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs.js.map +1 -1
  58. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js +1 -1
  59. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs.js.map +1 -1
  60. package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.mjs.js.map +1 -1
  61. package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs.js.map +1 -1
  62. package/dist/node_modules/framer-motion/dist/es/events/add-dom-event.mjs.js.map +1 -0
  63. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js +1 -1
  64. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs.js.map +1 -1
  65. package/dist/node_modules/framer-motion/dist/es/events/event-info.mjs.js.map +1 -1
  66. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js +1 -1
  67. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs.js.map +1 -1
  68. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js +1 -1
  69. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.mjs.js.map +1 -1
  70. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js +1 -1
  71. package/dist/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs.js.map +1 -1
  72. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js +1 -1
  73. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs.js.map +1 -1
  74. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js +1 -1
  75. package/dist/node_modules/framer-motion/dist/es/gestures/focus.mjs.js.map +1 -1
  76. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js +1 -1
  77. package/dist/node_modules/framer-motion/dist/es/gestures/hover.mjs.js.map +1 -1
  78. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js +1 -1
  79. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs.js.map +1 -1
  80. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js +1 -1
  81. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.mjs.js.map +1 -1
  82. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js +1 -1
  83. package/dist/node_modules/framer-motion/dist/es/gestures/press.mjs.js.map +1 -1
  84. package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.mjs.js.map +1 -0
  85. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js +1 -1
  86. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs.js.map +1 -1
  87. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js +1 -1
  88. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs.js.map +1 -1
  89. package/dist/node_modules/framer-motion/dist/es/motion/features/animations.mjs.js.map +1 -1
  90. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js +1 -1
  91. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.mjs.js.map +1 -1
  92. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js +1 -1
  93. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.mjs.js.map +1 -1
  94. package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.mjs.js.map +1 -1
  95. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js +1 -1
  96. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs.js.map +1 -1
  97. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js +1 -1
  98. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.mjs.js.map +1 -1
  99. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js +1 -1
  100. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.mjs.js.map +1 -1
  101. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js +1 -1
  102. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs.js.map +1 -1
  103. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs.js.map +1 -1
  104. package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js +1 -1
  105. package/dist/node_modules/framer-motion/dist/es/motion/index.mjs.js.map +1 -1
  106. package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js +2 -0
  107. package/dist/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs.js.map +1 -0
  108. package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs.js.map +1 -1
  109. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js +1 -1
  110. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs.js.map +1 -1
  111. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js +1 -1
  112. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs.js.map +1 -1
  113. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js +1 -1
  114. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs.js.map +1 -1
  115. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js +1 -1
  116. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs.js.map +1 -1
  117. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js +2 -0
  118. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs.js.map +1 -0
  119. package/dist/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs.js.map +1 -0
  120. package/dist/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs.js.map +1 -0
  121. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js +2 -0
  122. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs.js.map +1 -0
  123. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js +2 -0
  124. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs.js.map +1 -0
  125. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js +2 -0
  126. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs.js.map +1 -0
  127. package/dist/node_modules/framer-motion/dist/es/projection/geometry/models.mjs.js.map +1 -0
  128. package/dist/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs.js.map +1 -0
  129. package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js +2 -0
  130. package/dist/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +1 -0
  131. package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +1 -0
  132. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js +2 -0
  133. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs.js.map +1 -0
  134. package/dist/node_modules/framer-motion/dist/es/projection/node/state.mjs.js.map +1 -0
  135. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js +2 -0
  136. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.mjs.js.map +1 -0
  137. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js +2 -0
  138. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs.js.map +1 -0
  139. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js +2 -0
  140. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs.js.map +1 -0
  141. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js +2 -0
  142. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs.js.map +1 -0
  143. package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/styles/transform.mjs.js +1 -1
  144. package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.mjs.js.map +1 -0
  145. package/dist/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs.js.map +1 -0
  146. package/dist/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs.js.map +1 -0
  147. package/dist/node_modules/framer-motion/dist/es/projection/utils/measure.mjs.js.map +1 -0
  148. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js +2 -0
  149. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.mjs.js.map +1 -0
  150. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js +2 -0
  151. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.mjs.js.map +1 -0
  152. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js +1 -1
  153. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs.js.map +1 -1
  154. package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js +2 -0
  155. package/dist/node_modules/framer-motion/dist/es/render/components/motion/create.mjs.js.map +1 -0
  156. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js +1 -1
  157. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs.js.map +1 -1
  158. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js +2 -0
  159. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs.js.map +1 -0
  160. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js +1 -1
  161. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs.js.map +1 -1
  162. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js +1 -1
  163. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.mjs.js.map +1 -1
  164. package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/dom/utils/camel-to-dash.mjs.js +1 -1
  165. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +1 -0
  166. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js +1 -1
  167. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs.js.map +1 -1
  168. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs.js.map +1 -1
  169. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js +2 -0
  170. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs.js.map +1 -0
  171. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js +2 -0
  172. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs.js.map +1 -0
  173. package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js +2 -0
  174. package/dist/node_modules/framer-motion/dist/es/render/html/config-motion.mjs.js.map +1 -0
  175. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js +1 -1
  176. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.mjs.js.map +1 -1
  177. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js +2 -0
  178. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs.js.map +1 -0
  179. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js +2 -0
  180. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs.js.map +1 -0
  181. package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs.js.map +1 -1
  182. package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js +2 -0
  183. package/dist/node_modules/framer-motion/dist/es/render/html/utils/render.mjs.js.map +1 -0
  184. package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js +2 -0
  185. package/dist/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs.js.map +1 -0
  186. package/dist/node_modules/framer-motion/dist/es/render/store.mjs.js.map +1 -0
  187. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js +2 -0
  188. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs.js.map +1 -0
  189. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js +2 -0
  190. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs.js.map +1 -0
  191. package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs.js.map +1 -1
  192. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js +1 -1
  193. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.mjs.js.map +1 -1
  194. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js +2 -0
  195. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs.js.map +1 -0
  196. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs.js.map +1 -0
  197. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs.js.map +1 -1
  198. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs.js.map +1 -0
  199. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js +2 -0
  200. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs.js.map +1 -0
  201. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs.js.map +1 -0
  202. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js +2 -0
  203. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +1 -0
  204. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js +2 -0
  205. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs.js.map +1 -0
  206. package/dist/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs.js.map +1 -0
  207. package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs.js.map +1 -0
  208. package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.mjs.js.map +1 -0
  209. package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js +2 -0
  210. package/dist/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs.js.map +1 -0
  211. package/dist/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs.js.map +1 -0
  212. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js +2 -0
  213. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs.js.map +1 -0
  214. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +1 -0
  215. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs.js.map +1 -0
  216. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js +2 -0
  217. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.mjs.js.map +1 -0
  218. package/dist/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs.js.map +1 -0
  219. package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js +2 -0
  220. package/dist/node_modules/framer-motion/dist/es/utils/delay.mjs.js.map +1 -0
  221. package/dist/node_modules/framer-motion/dist/es/utils/distance.mjs.js.map +1 -1
  222. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.mjs.js.map +1 -1
  223. package/dist/node_modules/framer-motion/dist/es/utils/is-browser.mjs.js.map +1 -1
  224. package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs.js.map +1 -1
  225. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js +2 -0
  226. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs.js.map +1 -0
  227. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs.js.map +1 -0
  228. package/dist/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs.js.map +1 -0
  229. package/dist/node_modules/framer-motion/dist/es/utils/use-constant.mjs.js.map +1 -1
  230. package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs.js.map +1 -1
  231. package/dist/node_modules/framer-motion/dist/es/value/use-will-change/add-will-change.mjs.js.map +1 -0
  232. package/dist/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs.js.map +1 -0
  233. package/dist/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs.js.map +1 -0
  234. package/dist/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs.js.map +1 -0
  235. package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
  236. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.development.js +1 -1
  237. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js +1 -1
  238. package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
  239. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js +1 -1
  240. package/dist/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js.map +1 -1
  241. package/dist/node_modules/mic-check/lib/index.js +1 -1
  242. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js +1 -1
  243. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs.js.map +1 -1
  244. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js +1 -1
  245. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs.js.map +1 -1
  246. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js +1 -1
  247. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs.js.map +1 -1
  248. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js +1 -1
  249. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs.js.map +1 -1
  250. package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js +2 -0
  251. package/dist/node_modules/motion-dom/dist/es/animation/drivers/driver-frameloop.mjs.js.map +1 -0
  252. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js +1 -1
  253. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs.js.map +1 -1
  254. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs.js.map +1 -1
  255. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js +2 -0
  256. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs.js.map +1 -0
  257. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js +2 -0
  258. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs.js.map +1 -0
  259. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js +2 -0
  260. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs.js.map +1 -0
  261. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs.js.map +1 -1
  262. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs.js.map +1 -1
  263. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs.js.map +1 -1
  264. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js +1 -1
  265. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs.js.map +1 -1
  266. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js +1 -1
  267. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs.js.map +1 -1
  268. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js +1 -1
  269. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs.js.map +1 -1
  270. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs.js.map +1 -1
  271. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs.js.map +1 -1
  272. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs.js.map +1 -1
  273. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs.js.map +1 -1
  274. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs.js.map +1 -1
  275. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs.js.map +1 -1
  276. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs.js.map +1 -1
  277. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js +1 -1
  278. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs.js.map +1 -1
  279. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js +1 -1
  280. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs.js.map +1 -1
  281. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js +1 -1
  282. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs.js.map +1 -1
  283. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js +1 -1
  284. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs.js.map +1 -1
  285. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js +1 -1
  286. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs.js.map +1 -1
  287. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs.js.map +1 -1
  288. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js +1 -1
  289. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs.js.map +1 -1
  290. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js +1 -1
  291. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs.js.map +1 -1
  292. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs.js.map +1 -1
  293. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs.js.map +1 -1
  294. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs.js.map +1 -1
  295. package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs.js.map +1 -1
  296. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js +1 -1
  297. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs.js.map +1 -1
  298. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs.js.map +1 -1
  299. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js +1 -1
  300. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs.js.map +1 -1
  301. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs.js.map +1 -1
  302. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js +1 -1
  303. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.mjs.js.map +1 -1
  304. package/dist/node_modules/motion-dom/dist/es/frameloop/frame.mjs.js.map +1 -1
  305. package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.mjs.js.map +1 -1
  306. package/dist/node_modules/motion-dom/dist/es/frameloop/order.mjs.js.map +1 -1
  307. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js +1 -1
  308. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.mjs.js.map +1 -1
  309. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs.js.map +1 -1
  310. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs.js.map +1 -1
  311. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs.js.map +1 -1
  312. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js +1 -1
  313. package/dist/node_modules/motion-dom/dist/es/gestures/hover.mjs.js.map +1 -1
  314. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js +1 -1
  315. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.mjs.js.map +1 -1
  316. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js +1 -1
  317. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs.js.map +1 -1
  318. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs.js.map +1 -1
  319. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs.js.map +1 -1
  320. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs.js.map +1 -1
  321. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs.js.map +1 -1
  322. package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs.js.map +1 -1
  323. package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs.js.map +1 -1
  324. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js +1 -1
  325. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs.js.map +1 -1
  326. package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.mjs.js.map +1 -1
  327. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs.js.map +1 -1
  328. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js +1 -1
  329. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs.js.map +1 -1
  330. package/dist/node_modules/motion-dom/dist/es/stats/buffer.mjs.js.map +1 -1
  331. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js +1 -1
  332. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.mjs.js.map +1 -1
  333. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js +1 -1
  334. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.mjs.js.map +1 -1
  335. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js +1 -1
  336. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.mjs.js.map +1 -1
  337. package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs.js.map +1 -1
  338. package/dist/node_modules/motion-dom/dist/es/utils/mix/index.mjs.js.map +1 -1
  339. package/dist/node_modules/motion-dom/dist/es/utils/mix/number.mjs.js.map +1 -1
  340. package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs.js.map +1 -1
  341. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js +1 -1
  342. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs.js.map +1 -1
  343. package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.mjs.js.map +1 -1
  344. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs.js.map +1 -1
  345. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.mjs.js.map +1 -1
  346. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js +1 -1
  347. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs.js.map +1 -1
  348. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js +1 -1
  349. package/dist/node_modules/motion-dom/dist/es/value/index.mjs.js.map +1 -1
  350. package/dist/node_modules/motion-dom/dist/es/value/types/auto.mjs.js.map +1 -1
  351. package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.mjs.js.map +1 -1
  352. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs.js.map +1 -1
  353. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs.js.map +1 -1
  354. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js +1 -1
  355. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.mjs.js.map +1 -1
  356. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs.js.map +1 -1
  357. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.mjs.js.map +1 -1
  358. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs.js.map +1 -1
  359. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js +1 -1
  360. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.mjs.js.map +1 -1
  361. package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.mjs.js.map +1 -1
  362. package/dist/node_modules/motion-dom/dist/es/value/types/int.mjs.js.map +1 -1
  363. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js +1 -1
  364. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs.js.map +1 -1
  365. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js +1 -1
  366. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.mjs.js.map +1 -1
  367. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js +1 -1
  368. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs.js.map +1 -1
  369. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs.js.map +1 -1
  370. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs.js.map +1 -1
  371. package/dist/node_modules/motion-dom/dist/es/value/types/test.mjs.js.map +1 -1
  372. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js +1 -1
  373. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs.js.map +1 -1
  374. package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs.js.map +1 -1
  375. package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.mjs.js.map +1 -1
  376. package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs.js.map +1 -1
  377. package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs.js.map +1 -1
  378. package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs.js.map +1 -1
  379. package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs.js.map +1 -1
  380. package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs.js.map +1 -1
  381. package/dist/node_modules/motion-utils/dist/es/array.mjs.js.map +1 -1
  382. package/dist/node_modules/motion-utils/dist/es/clamp.mjs.js.map +1 -1
  383. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js +1 -1
  384. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.mjs.js.map +1 -1
  385. package/dist/node_modules/motion-utils/dist/es/easing/back.mjs.js.map +1 -1
  386. package/dist/node_modules/motion-utils/dist/es/easing/circ.mjs.js.map +1 -1
  387. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs.js.map +1 -1
  388. package/dist/node_modules/motion-utils/dist/es/easing/ease.mjs.js.map +1 -1
  389. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs.js.map +1 -1
  390. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs.js.map +1 -1
  391. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs.js.map +1 -1
  392. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs.js.map +1 -1
  393. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js +1 -1
  394. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.mjs.js.map +1 -1
  395. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js +1 -1
  396. package/dist/node_modules/motion-utils/dist/es/errors.mjs.js.map +1 -1
  397. package/dist/node_modules/motion-utils/dist/es/global-config.mjs.js.map +1 -1
  398. package/dist/node_modules/motion-utils/dist/es/is-numerical-string.mjs.js.map +1 -1
  399. package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.mjs.js.map +1 -1
  400. package/dist/node_modules/motion-utils/dist/es/memo.mjs.js.map +1 -1
  401. package/dist/node_modules/motion-utils/dist/es/noop.mjs.js.map +1 -1
  402. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js +1 -1
  403. package/dist/node_modules/motion-utils/dist/es/pipe.mjs.js.map +1 -1
  404. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js +1 -1
  405. package/dist/node_modules/motion-utils/dist/es/progress.mjs.js.map +1 -1
  406. package/dist/node_modules/motion-utils/dist/es/subscription-manager.mjs.js.map +1 -1
  407. package/dist/node_modules/motion-utils/dist/es/time-conversion.mjs.js.map +1 -1
  408. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js +1 -1
  409. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.mjs.js.map +1 -1
  410. package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js +1 -1
  411. package/dist/node_modules/motion-utils/dist/es/warn-once.mjs.js.map +1 -1
  412. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -1
  413. package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +1 -1
  414. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js +1 -1
  415. package/dist/node_modules/react/cjs/react-jsx-runtime.development.js.map +1 -1
  416. package/dist/node_modules/react-moment/dist/index.js +2 -12
  417. package/dist/node_modules/react-moment/dist/index.js.map +1 -1
  418. package/dist/node_modules/react-redux/es/components/Context.js +1 -1
  419. package/dist/node_modules/react-redux/es/components/Context.js.map +1 -1
  420. package/dist/node_modules/react-redux/es/components/Provider.js +1 -1
  421. package/dist/node_modules/react-redux/es/components/Provider.js.map +1 -1
  422. package/dist/node_modules/react-redux/es/hooks/useReduxContext.js +1 -1
  423. package/dist/node_modules/react-redux/es/hooks/useReduxContext.js.map +1 -1
  424. package/dist/node_modules/react-redux/es/hooks/useSelector.js +1 -1
  425. package/dist/node_modules/react-redux/es/hooks/useSelector.js.map +1 -1
  426. package/dist/node_modules/react-redux/es/hooks/useStore.js +1 -1
  427. package/dist/node_modules/react-redux/es/hooks/useStore.js.map +1 -1
  428. package/dist/node_modules/react-redux/es/index.js +1 -1
  429. package/dist/node_modules/react-redux/es/index.js.map +1 -1
  430. package/dist/node_modules/react-redux/es/utils/Subscription.js +1 -1
  431. package/dist/node_modules/react-redux/es/utils/Subscription.js.map +1 -1
  432. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js +1 -1
  433. package/dist/node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js.map +1 -1
  434. package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
  435. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js +1 -1
  436. package/dist/node_modules/react-tooltip/dist/react-tooltip.min.mjs.js.map +1 -1
  437. package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js +1 -1
  438. package/dist/node_modules/webrtc-adapter/src/js/adapter_factory.js.map +1 -1
  439. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js +1 -1
  440. package/dist/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js.map +1 -1
  441. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js +1 -1
  442. package/dist/node_modules/webrtc-adapter/src/js/common_shim.js.map +1 -1
  443. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js +1 -1
  444. package/dist/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js.map +1 -1
  445. package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js +1 -1
  446. package/dist/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js.map +1 -1
  447. package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js +1 -1
  448. package/dist/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js.map +1 -1
  449. package/dist/node_modules/webrtc-adapter/src/js/utils.js +1 -1
  450. package/dist/node_modules/webrtc-adapter/src/js/utils.js.map +1 -1
  451. package/dist/package.json.js +1 -1
  452. package/package.json +1 -1
  453. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js +0 -2
  454. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs.js.map +0 -1
  455. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs.js +0 -2
  456. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs.js.map +0 -1
  457. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs.js +0 -2
  458. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs.js.map +0 -1
  459. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js +0 -2
  460. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs.js.map +0 -1
  461. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js +0 -2
  462. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs.js.map +0 -1
  463. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js +0 -2
  464. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs.js.map +0 -1
  465. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js +0 -2
  466. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.mjs.js.map +0 -1
  467. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js +0 -2
  468. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs.js.map +0 -1
  469. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js +0 -2
  470. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs.js.map +0 -1
  471. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js +0 -2
  472. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs.js.map +0 -1
  473. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs.js.map +0 -1
  474. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs.js.map +0 -1
  475. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs.js.map +0 -1
  476. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js +0 -2
  477. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs.js.map +0 -1
  478. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js +0 -2
  479. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs.js.map +0 -1
  480. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js +0 -2
  481. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs.js.map +0 -1
  482. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs.js +0 -2
  483. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs.js.map +0 -1
  484. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs.js +0 -2
  485. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs.js.map +0 -1
  486. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js +0 -2
  487. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs.js.map +0 -1
  488. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs.js +0 -2
  489. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.mjs.js.map +0 -1
  490. package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.mjs.js.map +0 -1
  491. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js +0 -2
  492. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs.js.map +0 -1
  493. package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs.js.map +0 -1
  494. package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.mjs.js.map +0 -1
  495. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js +0 -2
  496. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs.js.map +0 -1
  497. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js +0 -2
  498. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs.js.map +0 -1
  499. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js +0 -2
  500. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs.js.map +0 -1
  501. package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.mjs.js.map +0 -1
  502. package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.mjs.js.map +0 -1
  503. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js +0 -2
  504. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs.js.map +0 -1
  505. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs.js.map +0 -1
  506. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js +0 -2
  507. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs.js.map +0 -1
  508. package/dist/node_modules/motion-dom/dist/es/projection/node/state.mjs.js.map +0 -1
  509. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js +0 -2
  510. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.mjs.js.map +0 -1
  511. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js +0 -2
  512. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs.js.map +0 -1
  513. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js +0 -2
  514. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs.js.map +0 -1
  515. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js +0 -2
  516. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs.js.map +0 -1
  517. package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.mjs.js.map +0 -1
  518. package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs.js.map +0 -1
  519. package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs.js.map +0 -1
  520. package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs.js.map +0 -1
  521. package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs.js.map +0 -1
  522. package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.mjs.js.map +0 -1
  523. package/dist/node_modules/motion-dom/dist/es/render/Feature.mjs.js.map +0 -1
  524. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js +0 -2
  525. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.mjs.js.map +0 -1
  526. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js +0 -2
  527. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs.js.map +0 -1
  528. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs.js.map +0 -1
  529. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js +0 -2
  530. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs.js.map +0 -1
  531. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs.js +0 -2
  532. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs.js.map +0 -1
  533. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js +0 -2
  534. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs.js.map +0 -1
  535. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.mjs.js +0 -2
  536. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.mjs.js.map +0 -1
  537. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs.js +0 -2
  538. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs.js.map +0 -1
  539. package/dist/node_modules/motion-dom/dist/es/render/store.mjs.js.map +0 -1
  540. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js +0 -2
  541. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs.js.map +0 -1
  542. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js +0 -2
  543. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs.js.map +0 -1
  544. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs.js.map +0 -1
  545. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs.js.map +0 -1
  546. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs.js +0 -2
  547. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs.js.map +0 -1
  548. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.mjs.js.map +0 -1
  549. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js +0 -2
  550. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs.js.map +0 -1
  551. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js +0 -2
  552. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs.js.map +0 -1
  553. package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs.js.map +0 -1
  554. package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs.js.map +0 -1
  555. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js +0 -2
  556. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs.js.map +0 -1
  557. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs.js +0 -2
  558. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs.js.map +0 -1
  559. package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs.js.map +0 -1
  560. package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs.js.map +0 -1
  561. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs.js +0 -2
  562. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs.js.map +0 -1
  563. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs.js +0 -2
  564. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs.js.map +0 -1
  565. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs.js.map +0 -1
  566. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs.js.map +0 -1
  567. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs.js.map +0 -1
  568. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js +0 -2
  569. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.mjs.js.map +0 -1
  570. package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs.js.map +0 -1
  571. package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs.js.map +0 -1
  572. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js +0 -2
  573. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.mjs.js.map +0 -1
  574. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js +0 -2
  575. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.mjs.js.map +0 -1
  576. package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js +0 -2
  577. package/dist/node_modules/motion-dom/dist/es/resize/index.mjs.js.map +0 -1
  578. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js +0 -2
  579. package/dist/node_modules/motion-dom/dist/es/utils/delay.mjs.js.map +0 -1
  580. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.mjs.js +0 -2
  581. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.mjs.js.map +0 -1
  582. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs.js +0 -2
  583. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs.js.map +0 -1
  584. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs.js +0 -2
  585. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs.js.map +0 -1
  586. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js +0 -2
  587. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs.js.map +0 -1
  588. package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs.js.map +0 -1
  589. package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs.js.map +0 -1
  590. package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs.js.map +0 -1
  591. package/dist/node_modules/motion-dom/dist/es/value/will-change/is.mjs.js.map +0 -1
  592. package/dist/node_modules/motion-utils/dist/es/format-error-message.mjs.js +0 -2
  593. package/dist/node_modules/motion-utils/dist/es/format-error-message.mjs.js.map +0 -1
  594. package/dist/node_modules/motion-utils/dist/es/is-object.mjs.js +0 -2
  595. package/dist/node_modules/motion-utils/dist/es/is-object.mjs.js.map +0 -1
  596. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/animation/interfaces/visual-element.mjs.js +0 -0
  597. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/animation/optimized-appear/data-id.mjs.js +0 -0
  598. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/animation/optimized-appear/get-appear-id.mjs.js +0 -0
  599. /package/dist/node_modules/{motion-dom/dist/es/render → framer-motion/dist/es/animation}/utils/is-animation-controls.mjs.js +0 -0
  600. /package/dist/node_modules/{motion-dom/dist/es/render → framer-motion/dist/es/animation}/utils/is-keyframes-target.mjs.js +0 -0
  601. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/events/add-dom-event.mjs.js +0 -0
  602. /package/dist/node_modules/{motion-dom/dist/es/render → framer-motion/dist/es/motion/features}/Feature.mjs.js +0 -0
  603. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/geometry/conversion.mjs.js +0 -0
  604. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/geometry/copy.mjs.js +0 -0
  605. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/geometry/models.mjs.js +0 -0
  606. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/geometry/utils.mjs.js +0 -0
  607. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/node/HTMLProjectionNode.mjs.js +0 -0
  608. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/node/state.mjs.js +0 -0
  609. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/utils/each-axis.mjs.js +0 -0
  610. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/utils/has-transform.mjs.js +0 -0
  611. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/projection/utils/measure.mjs.js +0 -0
  612. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/store.mjs.js +0 -0
  613. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/svg/utils/camel-case-attrs.mjs.js +0 -0
  614. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/svg/utils/is-svg-tag.mjs.js +0 -0
  615. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/svg/utils/render.mjs.js +0 -0
  616. /package/dist/node_modules/{motion-dom/dist/es/projection → framer-motion/dist/es/render}/utils/compare-by-depth.mjs.js +0 -0
  617. /package/dist/node_modules/{motion-dom/dist/es/projection → framer-motion/dist/es/render}/utils/flat-tree.mjs.js +0 -0
  618. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/utils/get-variant-context.mjs.js +0 -0
  619. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/utils/is-variant-label.mjs.js +0 -0
  620. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/utils/resolve-dynamic-variants.mjs.js +0 -0
  621. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/utils/resolve-variants.mjs.js +0 -0
  622. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/render/utils/variant-props.mjs.js +0 -0
  623. /package/dist/node_modules/{motion-dom/dist/es/render → framer-motion/dist/es}/utils/reduced-motion/state.mjs.js +0 -0
  624. /package/dist/node_modules/{motion-dom/dist/es/render → framer-motion/dist/es}/utils/shallow-compare.mjs.js +0 -0
  625. /package/dist/node_modules/{motion-dom/dist/es/value/will-change → framer-motion/dist/es/value/use-will-change}/add-will-change.mjs.js +0 -0
  626. /package/dist/node_modules/{motion-dom/dist/es/value/will-change → framer-motion/dist/es/value/use-will-change}/is.mjs.js +0 -0
  627. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/value/utils/is-motion-value.mjs.js +0 -0
  628. /package/dist/node_modules/{motion-dom → framer-motion}/dist/es/value/utils/resolve-motion-value.mjs.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../src/components/RecorderView/Actions.tsx"],"sourcesContent":["//\n// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n//\n\nimport React, { type FC, useEffect } from 'react'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faStop,\n faCircleNotch,\n faGear,\n faDownLeftAndUpRightToCenter,\n faFloppyDisk,\n} from '@fortawesome/free-solid-svg-icons'\nimport { startAnnouncementRecording } from '../../services/offhour'\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { hangupCurrentCall, answerIncomingCall } from '../../lib/phone/call'\nimport { dispatchRecordingSave } from '../../events'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { faRecord } from '@nethesis/nethesis-solid-svg-icons'\n\nexport const Actions: FC<{}> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { incoming, waiting, recording, recorded, playing } = useSelector(\n (state: RootState) => ({\n incoming: state.recorder.incoming,\n waiting: state.recorder.waiting,\n recording: state.recorder.recording,\n recorded: state.recorder.recorded,\n playing: state.recorder.playing,\n }),\n shallowEqual,\n )\n\n async function handleStart() {\n // Update the recorder state\n dispatch.recorder.setRecording(true)\n dispatch.recorder.setWaiting(true)\n // Call the api to start the recording call\n const data: { tempFilename: string } | null = await startAnnouncementRecording()\n // Set the returned temp file name to the store\n if (data.tempFilename) dispatch.recorder.setTempFilename(data.tempFilename)\n // Set the start time of recording\n dispatch.recorder.setStartTime(`${Date.now() / 1000}`)\n eventDispatch('phone-island-recording-started', {})\n }\n useEventListener('phone-island-recording-start', (data: {}) => {\n handleStart()\n })\n\n function handleStop() {\n // Set waiting to true\n dispatch.recorder.setWaiting(true)\n // Call the function to hangup the current call used for recording\n hangupCurrentCall()\n dispatch.recorder.setRecorded(true)\n eventDispatch('phone-island-recording-stopped', {})\n }\n useEventListener('phone-island-recording-stop', (data: {}) => {\n handleStop()\n })\n\n function handleSaveRecording() {\n // check if the audio is playing and pause it\n if (playing) {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n }\n // Dispatch the reconrding save event\n dispatchRecordingSave()\n // Close the Island\n dispatch.island.setIslandView(null)\n }\n useEventListener('phone-island-recording-save', (data: {}) => {\n handleSaveRecording()\n })\n\n useEffect(() => {\n if (!recording) {\n dispatch.recorder.setWaiting(false)\n }\n }, [recording])\n\n useEffect(() => {\n if (incoming) {\n // Answer the incoming call for recording\n answerIncomingCall()\n // Reset incoming to recorder state\n dispatch.recorder.setIncoming(false)\n dispatch.recorder.setWaiting(false)\n }\n }, [incoming])\n\n const { t } = useTranslation()\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button\n variant='transparent'\n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n {recording && (\n <Button\n onClick={handleStop}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-stop-recorder-view'\n data-tooltip-content={t('Tooltip.Stop') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faStop} size='xl' />\n )}\n </Button>\n )}\n {recorded && !recording && (\n <Button\n onClick={handleSaveRecording}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-record-view'\n data-tooltip-content={t('Tooltip.Confirm') || ''}\n >\n <FontAwesomeIcon icon={faFloppyDisk} className='pi-h-6 pi-w-6' />\n </Button>\n )}\n {!recording && !recorded && (\n <Button\n onClick={handleStart}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-start-recording-recorder-view'\n data-tooltip-content={t('Tooltip.Start recording') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faRecord} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n )}\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-start-recording-recorder-view' place='top' />\n <CustomThemedTooltip id='tooltip-stop-recorder-view' place='top' />\n <CustomThemedTooltip id='tooltip-confirm-record-view' place='top' />\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n </div>\n )\n}\n"],"names":["dispatch","useDispatch","_a","useSelector","state","incoming","recorder","waiting","recording","recorded","playing","shallowEqual","handleStart","setRecording","setWaiting","startAnnouncementRecording","data","sent","tempFilename","setTempFilename","setStartTime","concat","Date","now","eventDispatch","handleStop","hangupCurrentCall","setRecorded","handleSaveRecording","player","pauseAudioPlayer","setPlaying","setPaused","dispatchRecordingSave","island","setIslandView","useEventListener","useEffect","answerIncomingCall","setIncoming","t","useTranslation","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faCircleNotch","size","faStop","faFloppyDisk","faRecord","faGear","CustomThemedTooltip","id","place"],"mappings":"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"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../src/components/RecorderView/Actions.tsx"],"sourcesContent":["//\n// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n//\n\nimport React, { type FC, useEffect } from 'react'\nimport { Button } from '../Button'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {\n faStop,\n faCircleNotch,\n faGear,\n faDownLeftAndUpRightToCenter,\n faFloppyDisk,\n} from '@fortawesome/free-solid-svg-icons'\nimport { startAnnouncementRecording } from '../../services/offhour'\nimport { useDispatch, useSelector, shallowEqual } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { hangupCurrentCall, answerIncomingCall } from '../../lib/phone/call'\nimport { dispatchRecordingSave } from '../../events'\nimport { useTranslation } from 'react-i18next'\nimport { useEventListener, eventDispatch } from '../../utils'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\nimport { faRecord } from '@nethesis/nethesis-solid-svg-icons'\n\nexport const Actions: FC<{}> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { incoming, waiting, recording, recorded, playing } = useSelector(\n (state: RootState) => ({\n incoming: state.recorder.incoming,\n waiting: state.recorder.waiting,\n recording: state.recorder.recording,\n recorded: state.recorder.recorded,\n playing: state.recorder.playing,\n }),\n shallowEqual,\n )\n\n async function handleStart() {\n // Update the recorder state\n dispatch.recorder.setRecording(true)\n dispatch.recorder.setWaiting(true)\n // Call the api to start the recording call\n const data: { tempFilename: string } | null = await startAnnouncementRecording()\n // Set the returned temp file name to the store\n if (data.tempFilename) dispatch.recorder.setTempFilename(data.tempFilename)\n // Set the start time of recording\n dispatch.recorder.setStartTime(`${Date.now() / 1000}`)\n eventDispatch('phone-island-recording-started', {})\n }\n useEventListener('phone-island-recording-start', (data: {}) => {\n handleStart()\n })\n\n function handleStop() {\n // Set waiting to true\n dispatch.recorder.setWaiting(true)\n // Call the function to hangup the current call used for recording\n hangupCurrentCall()\n dispatch.recorder.setRecorded(true)\n eventDispatch('phone-island-recording-stopped', {})\n }\n useEventListener('phone-island-recording-stop', (data: {}) => {\n handleStop()\n })\n\n function handleSaveRecording() {\n // check if the audio is playing and pause it\n if (playing) {\n dispatch.player.pauseAudioPlayer()\n dispatch.recorder.setPlaying(false)\n dispatch.recorder.setPaused(true)\n }\n // Dispatch the reconrding save event\n dispatchRecordingSave()\n // Close the Island\n dispatch.island.setIslandView(null)\n }\n useEventListener('phone-island-recording-save', (data: {}) => {\n handleSaveRecording()\n })\n\n useEffect(() => {\n if (!recording) {\n dispatch.recorder.setWaiting(false)\n }\n }, [recording])\n\n useEffect(() => {\n if (incoming) {\n // Answer the incoming call for recording\n answerIncomingCall()\n // Reset incoming to recorder state\n dispatch.recorder.setIncoming(false)\n dispatch.recorder.setWaiting(false)\n }\n }, [incoming])\n\n const { t } = useTranslation()\n\n return (\n <div\n className={`pi-flex pi-items-center pi-justify-between pi-px-6 pi-py-2 pi-gap-0 pi-w-full pi-mt-auto`}\n >\n <Button\n variant='transparent'\n disabled\n className='pi-w-6 pi-h-6 pi-flex pi-items-center pi-justify-center pi-flex-none'\n >\n <FontAwesomeIcon icon={faDownLeftAndUpRightToCenter} className='pi-w-6 pi-h-6' />\n </Button>\n\n <div className='pi-flex pi-items-center pi-justify-center pi-flex-grow'>\n {recording && (\n <Button\n onClick={handleStop}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-stop-recorder-view'\n data-tooltip-content={t('Tooltip.Stop') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faStop} size='xl' />\n )}\n </Button>\n )}\n {recorded && !recording && (\n <Button\n onClick={handleSaveRecording}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-confirm-record-view'\n data-tooltip-content={t('Tooltip.Confirm') || ''}\n >\n <FontAwesomeIcon icon={faFloppyDisk} className='pi-h-6 pi-w-6' />\n </Button>\n )}\n {!recording && !recorded && (\n <Button\n onClick={handleStart}\n variant='default'\n className='pi-rounded-full pi-w-14 pi-h-14 pi-flex pi-items-center pi-justify-center'\n data-tooltip-id='tooltip-start-recording-recorder-view'\n data-tooltip-content={t('Tooltip.Start recording') || ''}\n >\n {waiting ? (\n <FontAwesomeIcon icon={faCircleNotch} className='fa-spin pi-loader' size='lg' />\n ) : (\n <FontAwesomeIcon icon={faRecord} className='pi-h-6 pi-w-6' />\n )}\n </Button>\n )}\n </div>\n\n <div\n onClick={() => dispatch.island.setIslandView('settings')}\n data-tooltip-id='tooltip-settings-view-recorder'\n data-tooltip-content={t('Tooltip.Go to settings') || ''}\n className='pi-flex pi-items-center pi-justify-center pi-cursor-pointer pi-text-gray-700 dark:pi-text-gray-200 pi-w-6 pi-h-6 pi-flex-none'\n >\n <FontAwesomeIcon icon={faGear} className={`pi-h-6 pi-w-6`} />\n </div>\n\n {/* Buttons tooltips */}\n <CustomThemedTooltip id='tooltip-start-recording-recorder-view' place='top' />\n <CustomThemedTooltip id='tooltip-stop-recorder-view' place='top' />\n <CustomThemedTooltip id='tooltip-confirm-record-view' place='top' />\n <CustomThemedTooltip id='tooltip-settings-view-recorder' place='top' />\n </div>\n )\n}\n"],"names":["dispatch","useDispatch","_a","useSelector","state","incoming","recorder","waiting","recording","recorded","playing","shallowEqual","handleStart","setRecording","setWaiting","startAnnouncementRecording","data","sent","tempFilename","setTempFilename","setStartTime","concat","Date","now","eventDispatch","handleStop","hangupCurrentCall","setRecorded","handleSaveRecording","player","pauseAudioPlayer","setPlaying","setPaused","dispatchRecordingSave","island","setIslandView","useEventListener","useEffect","answerIncomingCall","setIncoming","t","useTranslation","React","createElement","className","Button","variant","disabled","FontAwesomeIcon","icon","faDownLeftAndUpRightToCenter","onClick","faCircleNotch","size","faStop","faFloppyDisk","faRecord","faGear","CustomThemedTooltip","id","place"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../services/user.js"),n=require("../lib/avatars/avatars.js");require("../node_modules/react-redux/es/index.js");var s=require("../services/astproxy.js"),a=require("../lib/user/extensions.js"),o=require("../utils/genericFunctions/eventDispatch.js");require("../store/index.js");var c=require("../node_modules/react-redux/es/hooks/useSelector.js");require("../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("../node_modules/react-redux/node_modules/react-is/index.js");var u=require("../node_modules/react-redux/es/hooks/useDispatch.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=i(t),d="phone_island_api_mode",f=function(e){try{var t=localStorage.getItem("".concat(d,"_").concat(e));if("new"===t||"legacy"===t)return t}catch(e){console.warn("Failed to read API mode from localStorage:",e)}return"unknown"},h=function(e,t){try{localStorage.setItem("".concat(d,"_").concat(e),t)}catch(e){console.warn("Failed to save API mode to localStorage:",e)}};exports.RestAPI=function(i){var d=i.hostName,p=i.username,_=i.authToken,v=i.children,g=u.useDispatch(),m=c.useSelector((function(e){return e.fetchDefaults})).fetchReady;return t.useEffect((function(){if(_&&d&&p){e.__awaiter(void 0,void 0,void 0,(function(){var t,r;return e.__generator(this,(function(e){switch(e.label){case 0:if("unknown"!==(t=f(p)))return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,fetch("https://".concat(d,"/api/user/me"),{headers:{Authorization:"Bearer ".concat(_)}})];case 2:if((r=e.sent()).ok)t="new",h(p,"new");else{if(404!==r.status&&401!==r.status)throw new Error("API test failed with status: ".concat(r.status));t="legacy",h(p,"legacy")}return[3,4];case 3:return e.sent(),t="legacy",h(p,"legacy"),[3,4];case 4:return"new"===t?(g.fetchDefaults.updateFetchBaseURL("https://".concat(d,"/api")),g.fetchDefaults.updateFetchHeaders({Authorization:"Bearer ".concat(_)})):(g.fetchDefaults.updateFetchBaseURL("https://".concat(d,"/webrest")),g.fetchDefaults.updateFetchHeaders({Authorization:"".concat(p,":").concat(_)})),g.fetchDefaults.setFetchReady(),[2]}}))}))}}),[_,d,p]),t.useEffect((function(){m&&(function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(n){switch(n.label){case 0:return[4,r.getCurrentUserInfo()];case 1:return(t=n.sent())&&(g.currentUser.updateCurrentUser(t),o.eventDispatch("phone-island-user-informations-update",e.__assign({},t)),g.currentUser.setCurrentUserReady(!0),t.settings&&t.settings.open_param_url?g.paramUrl.setOpenParamUrlType(t.settings.open_param_url):g.paramUrl.setOpenParamUrlType("never"),function(){e.__awaiter(this,void 0,void 0,(function(){var t,r;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,s.getAllExtensions()];case 1:return(t=e.sent())&&(g.users.updateExtensions(t),r=a.getExtensionsList(),Object.values(t).filter((function(e){return r.includes(e.exten)})).forEach((function(e){return g.currentUser.updateConversations(e)}))),[2]}}))}))}()),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,r.getAllUsersEndpoints()];case 1:return(t=e.sent())&&g.users.updateEndpoints(t),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,r.getVideoSources()];case 1:return(t=e.sent())&&g.streaming.updateVideoSources(t),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t,n;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,r.getFeatureCodes()];case 1:return(t=e.sent())&&g.currentUser.updateFeatureCodes(t),[3,3];case 2:return n=e.sent(),console.warn("Failed to fetch feature codes:",n),[3,3];case 3:return[2]}}))}))}())}),[m]),t.useLayoutEffect((function(){p&&m&&n.retrieveAvatars(p)}),[m,p]),l.default.createElement(l.default.Fragment,null,m&&v)},exports.getApiMode=function(e){return f(e)},exports.resetApiMode=function(e){try{localStorage.removeItem("".concat(d,"_").concat(e))}catch(e){console.warn("Failed to reset API mode in localStorage:",e)}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../services/user.js"),n=require("../lib/avatars/avatars.js");require("../node_modules/react-redux/es/index.js");var s=require("../services/astproxy.js"),a=require("../lib/user/extensions.js"),o=require("../utils/genericFunctions/eventDispatch.js");require("../store/index.js");var u=require("../node_modules/react-redux/es/hooks/useSelector.js");require("../node_modules/react-redux/es/components/Context.js"),require("../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),require("../node_modules/react-redux/node_modules/react-is/index.js");var c=require("../node_modules/react-redux/es/hooks/useDispatch.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=i(t),d="phone_island_api_mode",f=function(e){try{var t=localStorage.getItem("".concat(d,"_").concat(e));if("new"===t||"legacy"===t)return t}catch(e){console.warn("Failed to read API mode from localStorage:",e)}return"unknown"},h=function(e,t){try{localStorage.setItem("".concat(d,"_").concat(e),t)}catch(e){console.warn("Failed to save API mode to localStorage:",e)}};exports.RestAPI=function(i){var d=i.hostName,p=i.username,_=i.authToken,v=i.children,g=c.useDispatch(),m=u.useSelector((function(e){return e.fetchDefaults})).fetchReady;return t.useEffect((function(){if(_&&d&&p){e.__awaiter(void 0,void 0,void 0,(function(){var t,r;return e.__generator(this,(function(e){switch(e.label){case 0:if("unknown"!==(t=f(p)))return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,fetch("https://".concat(d,"/api/user/me"),{headers:{Authorization:"Bearer ".concat(_)}})];case 2:if((r=e.sent()).ok)t="new",h(p,"new");else{if(404!==r.status&&401!==r.status)throw new Error("API test failed with status: ".concat(r.status));t="legacy",h(p,"legacy")}return[3,4];case 3:return e.sent(),t="legacy",h(p,"legacy"),[3,4];case 4:return"new"===t?(g.fetchDefaults.updateFetchBaseURL("https://".concat(d,"/api")),g.fetchDefaults.updateFetchHeaders({Authorization:"Bearer ".concat(_)})):(g.fetchDefaults.updateFetchBaseURL("https://".concat(d,"/webrest")),g.fetchDefaults.updateFetchHeaders({Authorization:"".concat(p,":").concat(_)})),g.fetchDefaults.setFetchReady(),[2]}}))}))}}),[_,d,p]),t.useEffect((function(){m&&(function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(n){switch(n.label){case 0:return[4,r.getCurrentUserInfo()];case 1:return(t=n.sent())&&(g.currentUser.updateCurrentUser(t),o.eventDispatch("phone-island-user-informations-update",e.__assign({},t)),g.currentUser.setCurrentUserReady(!0),t.settings&&t.settings.open_param_url?g.paramUrl.setOpenParamUrlType(t.settings.open_param_url):g.paramUrl.setOpenParamUrlType("never"),function(){e.__awaiter(this,void 0,void 0,(function(){var t,r;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,s.getAllExtensions()];case 1:return(t=e.sent())&&(g.users.updateExtensions(t),r=a.getExtensionsList(),Object.values(t).filter((function(e){return r.includes(e.exten)})).forEach((function(e){return g.currentUser.updateConversations(e)}))),[2]}}))}))}()),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,r.getAllUsersEndpoints()];case 1:return(t=e.sent())&&g.users.updateEndpoints(t),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t;return e.__generator(this,(function(e){switch(e.label){case 0:return[4,r.getVideoSources()];case 1:return(t=e.sent())&&g.streaming.updateVideoSources(t),[2]}}))}))}(),function(){e.__awaiter(this,void 0,void 0,(function(){var t,n;return e.__generator(this,(function(e){switch(e.label){case 0:return e.trys.push([0,2,,3]),[4,r.getFeatureCodes()];case 1:return(t=e.sent())&&g.currentUser.updateFeatureCodes(t),[3,3];case 2:return n=e.sent(),console.warn("Failed to fetch feature codes:",n),[3,3];case 3:return[2]}}))}))}())}),[m]),t.useLayoutEffect((function(){p&&m&&n.retrieveAvatars(p)}),[m,p]),l.default.createElement(l.default.Fragment,null,m&&v)},exports.getApiMode=function(e){return f(e)},exports.resetApiMode=function(e){try{localStorage.removeItem("".concat(d,"_").concat(e))}catch(e){console.warn("Failed to reset API mode in localStorage:",e)}};
2
2
  //# sourceMappingURL=RestAPI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RestAPI.js","sources":["../../src/components/RestAPI.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, type FC, useEffect, useLayoutEffect } from 'react'\nimport { getCurrentUserInfo, getVideoSources, getFeatureCodes } from '../services/user'\nimport { retrieveAvatars } from '../lib/avatars/avatars'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../store'\nimport { getAllExtensions } from '../services/astproxy'\nimport { getAllUsersEndpoints } from '../services/user'\nimport { getExtensionsList } from '../lib/user/extensions'\nimport { eventDispatch } from '../utils'\n\n// Storage key for API mode\nconst API_MODE_STORAGE_KEY = 'phone_island_api_mode'\n\n// Function to get saved API mode from localStorage\nconst getSavedApiMode = (username: string): 'new' | 'legacy' | 'unknown' => {\n try {\n const saved = localStorage.getItem(`${API_MODE_STORAGE_KEY}_${username}`)\n if (saved === 'new' || saved === 'legacy') {\n return saved\n }\n } catch (error) {\n console.warn('Failed to read API mode from localStorage:', error)\n }\n return 'unknown'\n}\n\n// Function to save API mode to localStorage\nconst saveApiMode = (username: string, mode: 'new' | 'legacy') => {\n try {\n localStorage.setItem(`${API_MODE_STORAGE_KEY}_${username}`, mode)\n } catch (error) {\n console.warn('Failed to save API mode to localStorage:', error)\n }\n}\n\n// Export function to get current API mode from localStorage\nexport const getApiMode = (username: string) => getSavedApiMode(username)\n\n// Export function to reset API mode (useful for error recovery)\nexport const resetApiMode = (username: string) => {\n try {\n localStorage.removeItem(`${API_MODE_STORAGE_KEY}_${username}`)\n } catch (error) {\n console.warn('Failed to reset API mode in localStorage:', error)\n }\n}\n\nexport const RestAPI: FC<RestAPIProps> = ({ hostName, username, authToken, children }) => {\n const dispatch = useDispatch<Dispatch>()\n const { fetchReady } = useSelector((state: RootState) => state.fetchDefaults)\n\n useEffect(() => {\n if (authToken && hostName && username) {\n const initializeAPI = async () => {\n let currentApiMode = getSavedApiMode(username)\n\n // If mode is unknown or we need to test, probe the API\n if (currentApiMode === 'unknown') {\n // First time or after reset: test new API format\n try {\n const response = await fetch(`https://${hostName}/api/user/me`, {\n headers: {\n Authorization: `Bearer ${authToken}`,\n },\n })\n\n if (response.ok) {\n // New API format works\n currentApiMode = 'new'\n saveApiMode(username, 'new')\n } else if (response.status === 404 || response.status === 401) {\n // Fallback to legacy API format\n currentApiMode = 'legacy'\n saveApiMode(username, 'legacy')\n } else {\n throw new Error(`API test failed with status: ${response.status}`)\n }\n } catch (error) {\n // Network error or other issues, fallback to legacy API\n currentApiMode = 'legacy'\n saveApiMode(username, 'legacy')\n }\n }\n\n // Set the appropriate configuration based on the determined mode\n if (currentApiMode === 'new') {\n dispatch.fetchDefaults.updateFetchBaseURL(`https://${hostName}/api`)\n dispatch.fetchDefaults.updateFetchHeaders({\n Authorization: `Bearer ${authToken}`,\n })\n } else {\n dispatch.fetchDefaults.updateFetchBaseURL(`https://${hostName}/webrest`)\n dispatch.fetchDefaults.updateFetchHeaders({\n Authorization: `${username}:${authToken}`,\n })\n }\n\n dispatch.fetchDefaults.setFetchReady()\n }\n\n initializeAPI()\n }\n }, [authToken, hostName, username])\n\n useEffect(() => {\n // Get all extensions info and set to store\n async function initExtensions() {\n const extensions = await getAllExtensions()\n if (extensions) {\n dispatch.users.updateExtensions(extensions)\n // Update the current user conversations\n const currentUserExtensionsList = getExtensionsList()\n const extensionsData = Object.values(extensions).filter((extension) =>\n currentUserExtensionsList.includes(extension.exten),\n )\n // Update the user conversations to store\n extensionsData.forEach((extension) => dispatch.currentUser.updateConversations(extension))\n }\n }\n // Get users info and set to store\n async function initCurrentUser() {\n const userInfo = await getCurrentUserInfo()\n if (userInfo) {\n dispatch.currentUser.updateCurrentUser(userInfo)\n eventDispatch('phone-island-user-informations-update', { ...userInfo })\n dispatch.currentUser.setCurrentUserReady(true)\n // Update open param URL type if it exists in paramurl store\n if (userInfo.settings && userInfo.settings.open_param_url) {\n dispatch.paramUrl.setOpenParamUrlType(userInfo.settings.open_param_url)\n } else {\n dispatch.paramUrl.setOpenParamUrlType('never')\n }\n\n // Inizialize all extensions after user initialization\n initExtensions()\n }\n }\n // Get all users and endpoints info and set to store\n async function initUsersEndpoints() {\n const usersEndpoints = await getAllUsersEndpoints()\n if (usersEndpoints) {\n dispatch.users.updateEndpoints(usersEndpoints)\n }\n }\n // Get all streaming source info and set to store\n async function initVideoSources() {\n const videoSources: any = await getVideoSources()\n if (videoSources) {\n dispatch.streaming.updateVideoSources(videoSources)\n }\n }\n // Get feature codes and save to store\n async function initFeatureCodes() {\n try {\n const codes = await getFeatureCodes()\n if (codes) {\n dispatch.currentUser.updateFeatureCodes(codes)\n }\n } catch (error) {\n console.warn('Failed to fetch feature codes:', error)\n }\n }\n // Call the needed APIs on startup\n if (fetchReady) {\n initCurrentUser()\n initUsersEndpoints()\n initVideoSources()\n initFeatureCodes()\n }\n }, [fetchReady])\n\n useLayoutEffect(() => {\n // Initialize avatars request it or get from storage\n if (username && fetchReady) {\n retrieveAvatars(username)\n }\n }, [fetchReady, username])\n\n return <>{fetchReady && children}</>\n}\n\ninterface RestAPIProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n}\n"],"names":["API_MODE_STORAGE_KEY","getSavedApiMode","username","saved","localStorage","getItem","concat","error","console","warn","saveApiMode","mode","setItem","_a","hostName","authToken","children","dispatch","useDispatch","fetchReady","useSelector","state","fetchDefaults","useEffect","__awaiter","currentApiMode","fetch","headers","Authorization","response","sent","ok","status","Error","updateFetchBaseURL","updateFetchHeaders","setFetchReady","getCurrentUserInfo","userInfo","currentUser","updateCurrentUser","eventDispatch","__assign","setCurrentUserReady","settings","open_param_url","paramUrl","setOpenParamUrlType","getAllExtensions","extensions","users","updateExtensions","currentUserExtensionsList_1","getExtensionsList","Object","values","filter","extension","includes","exten","forEach","updateConversations","initExtensions","initCurrentUser","getAllUsersEndpoints","usersEndpoints","updateEndpoints","initUsersEndpoints","getVideoSources","videoSources","streaming","updateVideoSources","initVideoSources","getFeatureCodes","codes","updateFeatureCodes","error_2","initFeatureCodes","useLayoutEffect","retrieveAvatars","React","createElement","Fragment","removeItem"],"mappings":"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"}
1
+ {"version":3,"file":"RestAPI.js","sources":["../../src/components/RestAPI.tsx"],"sourcesContent":["// Copyright (C) 2024 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, type FC, useEffect, useLayoutEffect } from 'react'\nimport { getCurrentUserInfo, getVideoSources, getFeatureCodes } from '../services/user'\nimport { retrieveAvatars } from '../lib/avatars/avatars'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../store'\nimport { getAllExtensions } from '../services/astproxy'\nimport { getAllUsersEndpoints } from '../services/user'\nimport { getExtensionsList } from '../lib/user/extensions'\nimport { eventDispatch } from '../utils'\n\n// Storage key for API mode\nconst API_MODE_STORAGE_KEY = 'phone_island_api_mode'\n\n// Function to get saved API mode from localStorage\nconst getSavedApiMode = (username: string): 'new' | 'legacy' | 'unknown' => {\n try {\n const saved = localStorage.getItem(`${API_MODE_STORAGE_KEY}_${username}`)\n if (saved === 'new' || saved === 'legacy') {\n return saved\n }\n } catch (error) {\n console.warn('Failed to read API mode from localStorage:', error)\n }\n return 'unknown'\n}\n\n// Function to save API mode to localStorage\nconst saveApiMode = (username: string, mode: 'new' | 'legacy') => {\n try {\n localStorage.setItem(`${API_MODE_STORAGE_KEY}_${username}`, mode)\n } catch (error) {\n console.warn('Failed to save API mode to localStorage:', error)\n }\n}\n\n// Export function to get current API mode from localStorage\nexport const getApiMode = (username: string) => getSavedApiMode(username)\n\n// Export function to reset API mode (useful for error recovery)\nexport const resetApiMode = (username: string) => {\n try {\n localStorage.removeItem(`${API_MODE_STORAGE_KEY}_${username}`)\n } catch (error) {\n console.warn('Failed to reset API mode in localStorage:', error)\n }\n}\n\nexport const RestAPI: FC<RestAPIProps> = ({ hostName, username, authToken, children }) => {\n const dispatch = useDispatch<Dispatch>()\n const { fetchReady } = useSelector((state: RootState) => state.fetchDefaults)\n\n useEffect(() => {\n if (authToken && hostName && username) {\n const initializeAPI = async () => {\n let currentApiMode = getSavedApiMode(username)\n\n // If mode is unknown or we need to test, probe the API\n if (currentApiMode === 'unknown') {\n // First time or after reset: test new API format\n try {\n const response = await fetch(`https://${hostName}/api/user/me`, {\n headers: {\n Authorization: `Bearer ${authToken}`,\n },\n })\n\n if (response.ok) {\n // New API format works\n currentApiMode = 'new'\n saveApiMode(username, 'new')\n } else if (response.status === 404 || response.status === 401) {\n // Fallback to legacy API format\n currentApiMode = 'legacy'\n saveApiMode(username, 'legacy')\n } else {\n throw new Error(`API test failed with status: ${response.status}`)\n }\n } catch (error) {\n // Network error or other issues, fallback to legacy API\n currentApiMode = 'legacy'\n saveApiMode(username, 'legacy')\n }\n }\n\n // Set the appropriate configuration based on the determined mode\n if (currentApiMode === 'new') {\n dispatch.fetchDefaults.updateFetchBaseURL(`https://${hostName}/api`)\n dispatch.fetchDefaults.updateFetchHeaders({\n Authorization: `Bearer ${authToken}`,\n })\n } else {\n dispatch.fetchDefaults.updateFetchBaseURL(`https://${hostName}/webrest`)\n dispatch.fetchDefaults.updateFetchHeaders({\n Authorization: `${username}:${authToken}`,\n })\n }\n\n dispatch.fetchDefaults.setFetchReady()\n }\n\n initializeAPI()\n }\n }, [authToken, hostName, username])\n\n useEffect(() => {\n // Get all extensions info and set to store\n async function initExtensions() {\n const extensions = await getAllExtensions()\n if (extensions) {\n dispatch.users.updateExtensions(extensions)\n // Update the current user conversations\n const currentUserExtensionsList = getExtensionsList()\n const extensionsData = Object.values(extensions).filter((extension) =>\n currentUserExtensionsList.includes(extension.exten),\n )\n // Update the user conversations to store\n extensionsData.forEach((extension) => dispatch.currentUser.updateConversations(extension))\n }\n }\n // Get users info and set to store\n async function initCurrentUser() {\n const userInfo = await getCurrentUserInfo()\n if (userInfo) {\n dispatch.currentUser.updateCurrentUser(userInfo)\n eventDispatch('phone-island-user-informations-update', { ...userInfo })\n dispatch.currentUser.setCurrentUserReady(true)\n // Update open param URL type if it exists in paramurl store\n if (userInfo.settings && userInfo.settings.open_param_url) {\n dispatch.paramUrl.setOpenParamUrlType(userInfo.settings.open_param_url)\n } else {\n dispatch.paramUrl.setOpenParamUrlType('never')\n }\n\n // Inizialize all extensions after user initialization\n initExtensions()\n }\n }\n // Get all users and endpoints info and set to store\n async function initUsersEndpoints() {\n const usersEndpoints = await getAllUsersEndpoints()\n if (usersEndpoints) {\n dispatch.users.updateEndpoints(usersEndpoints)\n }\n }\n // Get all streaming source info and set to store\n async function initVideoSources() {\n const videoSources: any = await getVideoSources()\n if (videoSources) {\n dispatch.streaming.updateVideoSources(videoSources)\n }\n }\n // Get feature codes and save to store\n async function initFeatureCodes() {\n try {\n const codes = await getFeatureCodes()\n if (codes) {\n dispatch.currentUser.updateFeatureCodes(codes)\n }\n } catch (error) {\n console.warn('Failed to fetch feature codes:', error)\n }\n }\n // Call the needed APIs on startup\n if (fetchReady) {\n initCurrentUser()\n initUsersEndpoints()\n initVideoSources()\n initFeatureCodes()\n }\n }, [fetchReady])\n\n useLayoutEffect(() => {\n // Initialize avatars request it or get from storage\n if (username && fetchReady) {\n retrieveAvatars(username)\n }\n }, [fetchReady, username])\n\n return <>{fetchReady && children}</>\n}\n\ninterface RestAPIProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n}\n"],"names":["API_MODE_STORAGE_KEY","getSavedApiMode","username","saved","localStorage","getItem","concat","error","console","warn","saveApiMode","mode","setItem","_a","hostName","authToken","children","dispatch","useDispatch","fetchReady","useSelector","state","fetchDefaults","useEffect","__awaiter","currentApiMode","fetch","headers","Authorization","response","sent","ok","status","Error","updateFetchBaseURL","updateFetchHeaders","setFetchReady","getCurrentUserInfo","userInfo","currentUser","updateCurrentUser","eventDispatch","__assign","setCurrentUserReady","settings","open_param_url","paramUrl","setOpenParamUrlType","getAllExtensions","extensions","users","updateExtensions","currentUserExtensionsList_1","getExtensionsList","Object","values","filter","extension","includes","exten","forEach","updateConversations","initExtensions","initCurrentUser","getAllUsersEndpoints","usersEndpoints","updateEndpoints","initUsersEndpoints","getVideoSources","videoSources","streaming","updateVideoSources","initVideoSources","getFeatureCodes","codes","updateFeatureCodes","error_2","initFeatureCodes","useLayoutEffect","retrieveAvatars","React","createElement","Fragment","removeItem"],"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("react");require("../../../node_modules/react-redux/es/index.js");var n=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),u=require("../../../lib/webrtc/janus.js"),o=require("../../../lib/phone/trunk.js"),l=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),d=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(a){var c,v,p,h,f,b,g,m,_=s.useDispatch(),S=d.useSelector((function(e){return e.currentUser})),k=d.useSelector((function(e){return e.users})),j=d.useSelector((function(e){return e.paramUrl})),w=n.store.select.mediaDevices.videoInputDevices(n.store.getState()),q=i.useRef(u.default),V=d.useSelector((function(e){return e.currentUser.conversations})),C=i.useState([]),D=C[0],T=C[1],U=i.useState(!0),y=U[0],I=U[1],x=i.useCallback((function(){var e=Object.values(V).find((function(e){return Object.keys(e).length>0}));return e?Object.values(e)[0]:null}),[V]),O=i.useCallback((function(e){if(_.island.toggleSideViewVisible(!1),"openUrl"===e){var i=Object.values(V).find((function(e){return Object.keys(e).length>0})),n=i?Object.values(i)[0]:null;if((null==n?void 0:n.connected)&&"in"===(null==n?void 0:n.direction)){var r={counterpartNum:n.counterpartNum,counterpartName:n.counterpartName,owner:n.owner,uniqueId:n.uniqueId,linkedId:n.linkedId,throughQueue:n.throughQueue,throughTrunk:n.throughTrunk,direction:n.direction,connected:n.connected};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&_.island.setIslandView(e)}),[_.island,V]),Q=i.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(e){switch(e.label){case 0:return w.length>0?[4,l.checkWebCamPermission()]:[3,2];case 1:return i=e.sent(),I(i),[2,i];case 2:return I(!1),[2,!1]}}))}))}),[w.length]),E=i.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,Q()];case 1:return e.sent()&&(O("video"),n.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[Q,O]),M=i.useCallback((function(){O("video"),n.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[O]),N=i.useMemo((function(){var e;return(null===(e=null==S?void 0:S.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(c=null==S?void 0:S.profile)||void 0===c?void 0:c.macro_permissions]),P=i.useMemo((function(){var e,i,n,r,u,o,l,t,s;return{canRecord:(null===(n=null===(i=null===(e=null==N?void 0:N.settings)||void 0===e?void 0:e.permissions)||void 0===i?void 0:i.recording)||void 0===n?void 0:n.value)||!1,canShareScreen:"safari"!==(null===(o=null===(u=null===(r=null==q?void 0:q.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===u?void 0:u.browserDetails)||void 0===o?void 0:o.browser)&&((null===(s=null===(t=null===(l=null==N?void 0:N.nethvoice_cti)||void 0===l?void 0:l.permissions)||void 0===t?void 0:t.screen_sharing)||void 0===s?void 0:s.value)||!1),canSwitchDevice:(null==D?void 0:D.length)>0}}),[null===(h=null===(p=null===(v=null==N?void 0:N.settings)||void 0===v?void 0:v.permissions)||void 0===p?void 0:p.recording)||void 0===h?void 0:h.value,null===(g=null===(b=null===(f=null==N?void 0:N.nethvoice_cti)||void 0===f?void 0:f.permissions)||void 0===b?void 0:b.screen_sharing)||void 0===g?void 0:g.value,null==D?void 0:D.length,null===(m=null==S?void 0:S.default_device)||void 0===m?void 0:m.type,a]),A=i.useMemo((function(){var e=x();if("never"===j.openParamUrlType)return!1;if(!(null==e?void 0:e.connected)||"in"!==(null==e?void 0:e.direction))return!1;if("button"===j.openParamUrlType){if(j.onlyQueues&&(null==e?void 0:e.throughQueue))return!0;if(!j.onlyQueues&&(o.isFromTrunk(e.counterpartNum)||(null==e?void 0:e.throughQueue)))return!0}return!1}),[x,j.onlyQueues,j.openParamUrlType]);i.useEffect((function(){if(S&&k){var e=r.getAvailableDevices(S,k);T(e)}}),[S,k]);var L=i.useCallback((function(){var e=x(),i=(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid),n=(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid);(i||n)&&(_.island.toggleSideViewVisible(!1),t.eventDispatch("phone-island-transcription-open",{linkedid:i,uniqueid:n}))}),[_.island,x]),R=i.useMemo((function(){return(null==S?void 0:S.call_transcription_enabled)||!1}),[null==S?void 0:S.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:S,availableDevices:D,videoInputDevices:w,isVideoCallButtonVisible:y,isUrlButtonEnabled:A,hasValidUrl:j.hasValidUrl,isTranscriptionEnabled:R},P),{goToVideoCall:E,goToScreenSharing:M,closeSideViewAndLaunchEvent:O,openTranscriptionView:L})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../../node_modules/tslib/tslib.es6.js"),i=require("react");require("../../../node_modules/react-redux/es/index.js");var n=require("../../../store/index.js"),r=require("../../../utils/deviceUtils.js"),u=require("../../../lib/webrtc/janus.js"),l=require("../../../lib/phone/trunk.js"),o=require("../../../lib/devices/devices.js"),t=require("../../../utils/genericFunctions/eventDispatch.js"),s=require("../../../lib/phone/call.js"),d=require("../../../node_modules/react-redux/es/hooks/useDispatch.js"),a=require("../../../node_modules/react-redux/es/hooks/useSelector.js");exports.useSideViewLogic=function(c){var v,p,h,f,b,g,m,_,S=d.useDispatch(),k=a.useSelector((function(e){return e.currentUser})),j=a.useSelector((function(e){return e.users})),q=a.useSelector((function(e){return e.paramUrl})),w=n.store.select.mediaDevices.videoInputDevices(n.store.getState()),C=i.useRef(u.default),V=a.useSelector((function(e){return e.currentUser.conversations})),D=i.useState([]),T=D[0],U=D[1],y=i.useState(!0),I=y[0],x=y[1],O=i.useCallback((function(){var e=Object.values(V).find((function(e){return Object.keys(e).length>0}));return e?Object.values(e)[0]:null}),[V]),Q=i.useCallback((function(e){if(S.island.toggleSideViewVisible(!1),"openUrl"===e){var i=Object.values(V).find((function(e){return Object.keys(e).length>0})),n=i?Object.values(i)[0]:null;if((null==n?void 0:n.connected)&&"in"===(null==n?void 0:n.direction)){var r={counterpartNum:n.counterpartNum,counterpartName:n.counterpartName,owner:n.owner,uniqueId:n.uniqueId,linkedId:n.linkedId,throughQueue:n.throughQueue,throughTrunk:n.throughTrunk,direction:n.direction,connected:n.connected};t.eventDispatch("phone-island-url-parameter-opened",r)}}else null!==e&&S.island.setIslandView(e)}),[S.island,V]),E=i.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){var i;return e.__generator(this,(function(e){switch(e.label){case 0:return w.length>0?[4,o.checkWebCamPermission()]:[3,2];case 1:return i=e.sent(),x(i),[2,i];case 2:return x(!1),[2,!1]}}))}))}),[w.length]),M=i.useCallback((function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,E()];case 1:return e.sent()&&(Q("video"),n.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0,isStartingVideoCall:!0})),[2]}}))}))}),[E,Q]),N=i.useCallback((function(){Q("video"),n.store.dispatch.screenShare.update({isStartingScreenShare:!0})}),[Q]),P=i.useMemo((function(){var e;return(null===(e=null==k?void 0:k.profile)||void 0===e?void 0:e.macro_permissions)||{}}),[null===(v=null==k?void 0:k.profile)||void 0===v?void 0:v.macro_permissions]),A=i.useMemo((function(){var e,i,n,r,u,l,o,t,d,a=O(),c=(null===(n=null===(i=null===(e=null==P?void 0:P.settings)||void 0===e?void 0:e.permissions)||void 0===i?void 0:i.recording)||void 0===n?void 0:n.value)||!1,v=s.isRecordingControlAvailable(a);return{canRecord:c&&v,canShareScreen:"safari"!==(null===(l=null===(u=null===(r=null==C?void 0:C.current)||void 0===r?void 0:r.webRTCAdapter)||void 0===u?void 0:u.browserDetails)||void 0===l?void 0:l.browser)&&((null===(d=null===(t=null===(o=null==P?void 0:P.nethvoice_cti)||void 0===o?void 0:o.permissions)||void 0===t?void 0:t.screen_sharing)||void 0===d?void 0:d.value)||!1),canSwitchDevice:(null==T?void 0:T.length)>0}}),[null===(f=null===(h=null===(p=null==P?void 0:P.settings)||void 0===p?void 0:p.permissions)||void 0===h?void 0:h.recording)||void 0===f?void 0:f.value,null===(m=null===(g=null===(b=null==P?void 0:P.nethvoice_cti)||void 0===b?void 0:b.permissions)||void 0===g?void 0:g.screen_sharing)||void 0===m?void 0:m.value,O,V,null==T?void 0:T.length,null===(_=null==k?void 0:k.default_device)||void 0===_?void 0:_.type,c]),R=i.useMemo((function(){var e=O();if("never"===q.openParamUrlType)return!1;if(!(null==e?void 0:e.connected)||"in"!==(null==e?void 0:e.direction))return!1;if("button"===q.openParamUrlType){if(q.onlyQueues&&(null==e?void 0:e.throughQueue))return!0;if(!q.onlyQueues&&(l.isFromTrunk(e.counterpartNum)||(null==e?void 0:e.throughQueue)))return!0}return!1}),[O,q.onlyQueues,q.openParamUrlType]);i.useEffect((function(){if(k&&j){var e=r.getAvailableDevices(k,j);U(e)}}),[k,j]);var L=i.useCallback((function(){var e=O(),i=(null==e?void 0:e.linkedId)||(null==e?void 0:e.linkedid),n=(null==e?void 0:e.uniqueId)||(null==e?void 0:e.uniqueid);(i||n)&&(S.island.toggleSideViewVisible(!1),t.eventDispatch("phone-island-transcription-open",{linkedid:i,uniqueid:n}))}),[S.island,O]),B=i.useMemo((function(){return(null==k?void 0:k.call_transcription_enabled)||!1}),[null==k?void 0:k.call_transcription_enabled]);return e.__assign(e.__assign({userInformation:k,availableDevices:T,videoInputDevices:w,isVideoCallButtonVisible:I,isUrlButtonEnabled:R,hasValidUrl:q.hasValidUrl,isTranscriptionEnabled:B},A),{goToVideoCall:M,goToScreenSharing:N,closeSideViewAndLaunchEvent:Q,openTranscriptionView:L})};
2
2
  //# sourceMappingURL=useSideViewLogic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(\n () => ({\n canRecord: permissions?.settings?.permissions?.recording?.value || false,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }),\n [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ],\n )\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","canRecord","_c","settings","_b","recording","value","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
1
+ {"version":3,"file":"useSideViewLogic.js","sources":["../../../../src/components/SideView/hooks/useSideViewLogic.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState, store } from '../../../store'\nimport { getAvailableDevices } from '../../../utils/deviceUtils'\nimport JanusLib from '../../../lib/webrtc/janus.js'\nimport { isFromTrunk } from '../../../lib/user/extensions'\nimport { checkWebCamPermission } from '../../../lib/devices/devices'\nimport { eventDispatch } from '../../../utils'\nimport { isRecordingControlAvailable } from '../../../lib/phone/call'\n\nexport interface UseSideViewLogicResult {\n userInformation: RootState['currentUser']\n availableDevices: any[]\n videoInputDevices: any[]\n isVideoCallButtonVisible: boolean\n isUrlButtonEnabled: boolean\n hasValidUrl: boolean\n isTranscriptionEnabled: boolean\n canRecord: boolean\n canShareScreen: boolean\n canSwitchDevice: boolean\n goToVideoCall: () => Promise<void>\n goToScreenSharing: () => void\n closeSideViewAndLaunchEvent: (viewType: any) => void\n openTranscriptionView: () => void\n}\n\nexport const useSideViewLogic = (uaType?: string): UseSideViewLogicResult => {\n const dispatch = useDispatch<Dispatch>()\n const userInformation = useSelector((state: RootState) => state.currentUser)\n const allUsersInformation = useSelector((state: RootState) => state.users)\n const paramUrlData = useSelector((state: RootState) => state.paramUrl)\n const videoInputDevices = store.select.mediaDevices.videoInputDevices(store.getState())\n const janus = useRef<any>(JanusLib)\n const conversations = useSelector((state: RootState) => state.currentUser.conversations)\n\n const [availableDevices, setAvailableDevices] = useState<any[]>([])\n const [isVideoCallButtonVisible, setIsVideoCallButtonVisible] = useState(true)\n\n const getActiveConversationData = useCallback(() => {\n const activeConversation = Object.values(conversations).find((conv) => Object.keys(conv).length > 0)\n return activeConversation ? (Object.values(activeConversation)[0] as any) : null\n }, [conversations])\n\n const closeSideViewAndLaunchEvent = useCallback(\n (viewType: any) => {\n dispatch.island.toggleSideViewVisible(false)\n if (viewType === 'openUrl') {\n const activeConversation = Object.values(conversations).find(\n (conv) => Object.keys(conv).length > 0,\n )\n const conversationData = activeConversation ? Object.values(activeConversation)[0] : null\n\n if (conversationData?.connected && conversationData?.direction === 'in') {\n const eventData = {\n counterpartNum: conversationData.counterpartNum,\n counterpartName: conversationData.counterpartName,\n owner: conversationData.owner,\n uniqueId: conversationData.uniqueId,\n linkedId: conversationData.linkedId,\n throughQueue: conversationData.throughQueue,\n throughTrunk: conversationData.throughTrunk,\n direction: conversationData.direction,\n connected: conversationData.connected,\n }\n eventDispatch('phone-island-url-parameter-opened', eventData)\n }\n } else if (viewType !== null) {\n dispatch.island.setIslandView(viewType)\n }\n },\n [dispatch.island, conversations],\n )\n\n const checkCameraPermission = useCallback(async () => {\n if (videoInputDevices.length > 0) {\n const isWebCamAccepted = await checkWebCamPermission()\n setIsVideoCallButtonVisible(isWebCamAccepted)\n return isWebCamAccepted\n } else {\n setIsVideoCallButtonVisible(false)\n return false\n }\n }, [videoInputDevices.length])\n\n const goToVideoCall = useCallback(async () => {\n const cameraPermission = await checkCameraPermission()\n if (cameraPermission) {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.currentCall.updateCurrentCall({\n isLocalVideoEnabled: true,\n isStartingVideoCall: true,\n })\n }\n }, [checkCameraPermission, closeSideViewAndLaunchEvent])\n\n const goToScreenSharing = useCallback(() => {\n closeSideViewAndLaunchEvent('video')\n store.dispatch.screenShare.update({\n isStartingScreenShare: true,\n })\n }, [closeSideViewAndLaunchEvent])\n\n const permissions = useMemo(\n () => userInformation?.profile?.macro_permissions || {},\n [userInformation?.profile?.macro_permissions],\n )\n\n const userCapabilities = useMemo(() => {\n const activeConversation = getActiveConversationData()\n const recordingPermission = permissions?.settings?.permissions?.recording?.value || false\n const recordingControlAvailable = isRecordingControlAvailable(activeConversation)\n const canRecord = recordingPermission && recordingControlAvailable\n\n return {\n canRecord,\n canShareScreen:\n janus?.current?.webRTCAdapter?.browserDetails?.browser !== 'safari' &&\n (permissions?.nethvoice_cti?.permissions?.screen_sharing?.value || false),\n canSwitchDevice: availableDevices?.length > 0,\n }\n }, [\n permissions?.settings?.permissions?.recording?.value,\n permissions?.nethvoice_cti?.permissions?.screen_sharing?.value,\n getActiveConversationData,\n conversations,\n availableDevices?.length,\n userInformation?.default_device?.type,\n uaType,\n ])\n\n const isUrlButtonEnabled = useMemo(() => {\n const conversationData = getActiveConversationData()\n\n // If param url type is 'never', return false\n if (paramUrlData.openParamUrlType === 'never') {\n return false\n }\n\n if (!conversationData?.connected || conversationData?.direction !== 'in') {\n return false\n }\n\n // open param url type is set to 'button'\n if (paramUrlData.openParamUrlType === 'button') {\n if (paramUrlData.onlyQueues && conversationData?.throughQueue) {\n return true\n } else if (\n !paramUrlData.onlyQueues &&\n (isFromTrunk(conversationData.counterpartNum) || conversationData?.throughQueue)\n ) {\n return true\n }\n }\n\n return false\n }, [getActiveConversationData, paramUrlData.onlyQueues, paramUrlData.openParamUrlType])\n\n useEffect(() => {\n if (userInformation && allUsersInformation) {\n const devices = getAvailableDevices(userInformation, allUsersInformation)\n setAvailableDevices(devices)\n }\n }, [userInformation, allUsersInformation])\n\n const openTranscriptionView = useCallback(() => {\n const conversationData = getActiveConversationData()\n const linkedId = conversationData?.linkedId || conversationData?.linkedid\n const uniqueId = conversationData?.uniqueId || conversationData?.uniqueid\n\n if (!linkedId && !uniqueId) {\n return\n }\n\n // Close SideView, collapse actions, and open TranscriptionView\n dispatch.island.toggleSideViewVisible(false)\n eventDispatch('phone-island-transcription-open', {\n linkedid: linkedId,\n uniqueid: uniqueId,\n })\n }, [dispatch.island, getActiveConversationData])\n\n const isTranscriptionEnabled = useMemo(\n () => userInformation?.call_transcription_enabled || false,\n [userInformation?.call_transcription_enabled],\n )\n\n return {\n userInformation,\n availableDevices,\n videoInputDevices,\n isVideoCallButtonVisible,\n isUrlButtonEnabled,\n hasValidUrl: paramUrlData.hasValidUrl,\n isTranscriptionEnabled,\n ...userCapabilities,\n goToVideoCall,\n goToScreenSharing,\n closeSideViewAndLaunchEvent,\n openTranscriptionView,\n }\n}\n"],"names":["uaType","dispatch","useDispatch","userInformation","useSelector","state","currentUser","allUsersInformation","users","paramUrlData","paramUrl","videoInputDevices","store","select","mediaDevices","getState","janus","useRef","JanusLib","conversations","_j","useState","availableDevices","setAvailableDevices","_k","isVideoCallButtonVisible","setIsVideoCallButtonVisible","getActiveConversationData","useCallback","activeConversation","Object","values","find","conv","keys","length","closeSideViewAndLaunchEvent","viewType","island","toggleSideViewVisible","conversationData","connected","direction","eventData","counterpartNum","counterpartName","owner","uniqueId","linkedId","throughQueue","throughTrunk","eventDispatch","setIslandView","checkCameraPermission","__awaiter","checkWebCamPermission","isWebCamAccepted","_a","sent","goToVideoCall","currentCall","updateCurrentCall","isLocalVideoEnabled","isStartingVideoCall","goToScreenSharing","screenShare","update","isStartingScreenShare","permissions","useMemo","profile","macro_permissions","userCapabilities","recordingPermission","_c","settings","_b","recording","value","recordingControlAvailable","isRecordingControlAvailable","canRecord","canShareScreen","_f","_d","current","webRTCAdapter","_e","browserDetails","browser","_h","nethvoice_cti","_g","screen_sharing","canSwitchDevice","default_device","type","isUrlButtonEnabled","openParamUrlType","onlyQueues","isFromTrunk","useEffect","devices","getAvailableDevices","openTranscriptionView","linkedid","uniqueid","isTranscriptionEnabled","call_transcription_enabled","__assign","hasValidUrl"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),k=require("../../node_modules/react-redux/es/hooks/useSelector.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var T=C(t),j=function(){var C,j,x,N,V,q,R,I,_,D,P=y.useDispatch(),A=k.useSelector((function(e){return e.currentCall})),L=A.muted,M=A.startTime,U=A.isRecording,F=A.paused,B=A.isLocalVideoEnabled,J=A.showRemoteVideoPlaceHolder,z=A.hasVideoTrackAdded,W=A.displayName,G=A.isStartingVideoCall,H=k.useSelector((function(e){return e.screenShare})),O=H.localTracks,K=H.localVideos,Q=H.role,X=H.active,Y=H.isStartingScreenShare,Z=H.isJoiningScreenShare,$=H.isLeavingScreenShare,ee=k.useSelector((function(e){return e.listen})),te=k.useSelector((function(e){return e.island})).isOpen,re=k.useSelector((function(e){return e.webrtc})),ae=re.janusInstance,ne=re.remoteAudioStream,ie=a.store.getState().currentUser,oe=t.useState(!1),le=oe[0],se=oe[1],ce=t.useState(!1),ue=ce[0],de=ce[1],pe=t.useRef(null),ve=t.useRef(null),me=t.useRef(!1),fe=t.useRef(!1),ge=t.useRef(null),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(p.default),ke=a.store.select.mediaDevices.videoInputDevices(a.store.getState());s.useIsomorphicLayoutEffect((function(){P.player.updatePlayer({localScreen:he,remoteScreen:Se,localVideo:be,largeRemoteVideo:Ee,smallRemoteVideo:we})}),[]),t.useEffect((function(){return Re(),Ce(),addEventListener("fullscreenchange",Te),function(){removeEventListener("fullscreenchange",Te),pe.current&&clearTimeout(pe.current)}}),[]),t.useEffect((function(){G&&(Ne(),P.currentCall.updateCurrentCall({isStartingVideoCall:!1}))}),[G]),t.useEffect((function(){Y&&(_e(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))}),[Y]),t.useEffect((function(){Z&&(De(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))}),[Z]),t.useEffect((function(){$&&(Ae(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))}),[$]),t.useEffect((function(){Re(),Ce()}),[te]);var Ce=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&P.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},Te=function(){se(!!document.fullscreenElement)},je=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):ge.current&&(ge.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",(function(){je()})),l.useEventListener("phone-island-fullscreen-exit",(function(){je()}));var xe=function(e,t){P.screenShare.update({source:e});var r=null;null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(t){var n,i,o,l;r=t,P.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ye.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ye.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ye.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ye.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ye.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ye.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ye.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ye.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ye.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ye.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),"video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ye.current.stopAllTracks(m),void P.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ye.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ye.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ye.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ne=function(){var e,t,r,n;if(!me.current){var i=a.store.getState().webrtc.sipcall;me.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find((function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)}));(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||P.currentCall.setVideoTrackAdded(!0)):(s.add=!0,P.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){var t,r,n;me.current=!1,i.send({message:{request:"update"},jsep:e}),t=a.store.getState().websocket.socket,r=a.store.getState().currentCall.username,n=a.store.getState().currentUser.username,t&&r&&n&&t.emit("message",{message:"videoCallStart",destUser:r,callUser:n}),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",(function(){Ne()}));var Ve=function(){var t,r,n,i;if(!me.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;me.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find((function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)}));ye.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){me.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",(function(){Ve()}));var qe=function(){null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(e){P.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),setTimeout((function(){!function(){var e,t;if(ye.current.isExtensionEnabled()){var r={request:"create",description:ye.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{var d=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;P.screenShare.update({room:p}),null===(s=(l=ye.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(fe.current)return void(null===(u=(c=ye.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));fe.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}}})}else null===(t=(e=ye.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()}),500)):"listener"===t&&Pe(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ye.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ye.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ye.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ye.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ye.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,C=k.plugin,T=k.role,j=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===T)null===(s=(l=ye.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ye.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;fe.current=!1,null===(r=(t=ye.current).error)||void 0===r||r.call(t,"WebRTC error:",e),P.screenShare.update({active:!1,role:""})}});else if(e.publishers){var x=e.publishers;for(var N in null===(u=(c=ye.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){var V=x[N].id,q=x[N].display;null===(p=(d=ye.current).debug)||void 0===p||p.call(d," >> ["+V+"] "+q),xe(V,q)}}}else if("event"===j)if("listener"===T&&e.publishers){x=e.publishers;for(var N in null===(m=(v=ye.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){V=x[N].id,q=x[N].display;null===(g=(f=ye.current).debug)||void 0===g||g.call(f," >> ["+V+"] "+q),xe(V,q)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ye.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}else e.error&&(null===(E=(b=ye.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ye.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),C.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ye.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==O?void 0:O[c])){if("video"===e.kind){P.screenShare.update({localVideos:K+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ye.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ye.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),Ie(),e.addEventListener("ended",(function(){Me()})))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==O?void 0:O[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&P.screenShare.update({localVideos:K-1});var h=null==O?void 0:O.filter((function(e){return e!==O[c]}));P.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ye.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),fe.current=!1,P.screenShare.update({localTracks:{},localVideos:0})}})},Re=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,i)},Ie=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},_e=function(){fe.current=!1,P.screenShare.update({active:!0,role:"publisher"}),qe()};l.useEventListener("phone-island-screen-share-start",(function(){_e()}));var De=function(){P.screenShare.update({active:!0,role:"listener"}),qe(),c.eventDispatch("phone-island-screen-share-joined",{})},Pe=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Ae=function(){var e=a.store.getState().screenShare.remoteScreenStream;ye.current.stopAllTracks(e),P.screenShare.update({active:!1}),c.eventDispatch("phone-island-screen-share-left",{})},Le=function(){de(!0),pe.current&&(clearTimeout(pe.current),pe.current=null),ve.current&&clearTimeout(ve.current),ve.current=setTimeout((function(){pe.current=setTimeout((function(){de(!1)}),3e3)}),100)},Me=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream;fe.current=!1,ye.current.stopAllTracks(r),P.screenShare.update({active:!1}),t.detach();var n=a.store.getState().websocket.socket,i=a.store.getState().currentCall.username,o=a.store.getState().screenShare.room,l=a.store.getState().currentUser.username;n.emit("message",{message:"screenSharingStop",roomId:o,destUser:i,callUser:l}),c.eventDispatch("phone-island-screen-share-stopped",{})};l.useEventListener("phone-island-screen-share-stop",(function(){Me()}));var Ue=t.useState(!0),Fe=Ue[0],Be=Ue[1],Je=function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return(null==ke?void 0:ke.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(Be(!0),[2,!0]):(Be(!1),[2,!1]);case 2:return Be(!1),[2,!1];case 3:return[2]}}))}))};return T.default.createElement(T.default.Fragment,null,te?T.default.createElement("div",{ref:ge,onMouseMove:function(){return Le()},className:le?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},T.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"listener"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:he,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"publisher"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Ee,className:"pi-rounded-2xl ".concat(X||J?"pi-hidden":"")}),T.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(X||!J?"pi-hidden":"")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(W)))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:be,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(B?"":"pi-hidden")}),T.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(B||!z?"pi-hidden":"")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(ie.name||"-")))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:we,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!X||J?"pi-hidden":"")}),T.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(X&&J&&z?"":"pi-hidden")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(W))))),T.default.createElement("div",{className:"".concat(!ue&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},T.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==ee?void 0:ee.isListen)&&T.default.createElement(r.Button,{variant:"default",active:!!L,onClick:function(){return L?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(L?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},L?T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==ke?void 0:ke.length)>0&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,Je()];case 1:return e.sent()&&(B?Ve():Ne()),[2]}}))}))},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(Fe?B?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!Fe,className:"".concat(Fe?"":"pi-cursor-auto")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faVideoSlash:i.faVideo})),"safari"!==ye.current.webRTCAdapter.browserDetails.browser&&(null===(V=null===(N=null===(x=null===(j=null===(C=null==ie?void 0:ie.profile)||void 0===C?void 0:C.macro_permissions)||void 0===j?void 0:j.nethvoice_cti)||void 0===x?void 0:x.permissions)||void 0===N?void 0:N.screen_sharing)||void 0===V?void 0:V.value)&&!X&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return _e()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),X&&"publisher"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return Me()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),X&&"listener"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return je()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":le?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:le?i.faCompress:i.faExpand})),(null===(D=null===(_=null===(I=null===(R=null===(q=null==ie?void 0:ie.profile)||void 0===q?void 0:q.macro_permissions)||void 0===R?void 0:R.settings)||void 0===I?void 0:I.permissions)||void 0===_?void 0:_.recording)||void 0===D?void 0:D.value)&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==ee?void 0:ee.isIntrude)||(null==ee?void 0:ee.isListen))&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return F?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Me())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":F?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:F?i.faPlay:i.faPause}))),T.default.createElement(u.default,{buttonsVariant:"default"})),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):T.default.createElement(T.default.Fragment,null,T.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},T.default.createElement(v.default,null),T.default.createElement(m.default,{startTime:M,isNotAlwaysWhite:!0}),!te&&ne&&!f.isPhysical()&&T.default.createElement(g.AudioBars,{audioStream:ne,paused:F,size:te?"large":"small"}))))};exports.VideoView=j,exports.default=j;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../node_modules/tslib/tslib.es6.js"),t=require("react"),r=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var a=require("../../store/index.js"),n=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),i=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../../node_modules/i18next/dist/esm/i18next.js"),l=require("../../utils/customHooks/useEventListener.js"),s=require("../../utils/customHooks/useIsomorphicLayoutEffect.js"),c=require("../../utils/genericFunctions/eventDispatch.js"),u=require("../Hangup.js"),d=require("../../lib/phone/call.js"),p=require("../../lib/webrtc/janus.js"),v=require("../CallView/Avatar.js"),m=require("../CallView/Timer.js"),f=require("../../lib/user/default_device.js"),g=require("../AudioBars.js"),h=require("../CustomThemedTooltip.js"),S=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),b=require("../../lib/devices/devices.js"),E=require("../../lib/avatars/avatars.js"),w=require("../../events/SocketEvents.js"),y=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),k=require("../../node_modules/react-redux/es/hooks/useSelector.js");function C(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var T=C(t),j=function(){var C,j,x,N,V,q,R,I,_,D,A=y.useDispatch(),M=k.useSelector((function(e){return e.currentCall})),P=M.muted,L=M.startTime,U=M.isRecording,F=M.paused,B=M.isLocalVideoEnabled,J=M.showRemoteVideoPlaceHolder,O=M.hasVideoTrackAdded,z=M.displayName,W=M.isStartingVideoCall,G=k.useSelector((function(e){return e.screenShare})),H=G.localTracks,K=G.localVideos,Q=G.role,X=G.active,Y=G.isStartingScreenShare,Z=G.isJoiningScreenShare,$=G.isLeavingScreenShare,ee=k.useSelector((function(e){return e.listen})),te=k.useSelector((function(e){return e.island})).isOpen,re=k.useSelector((function(e){return e.webrtc})),ae=re.janusInstance,ne=re.remoteAudioStream,ie=k.useSelector((function(e){return e.currentUser})),oe=t.useState(!1),le=oe[0],se=oe[1],ce=t.useState(!1),ue=ce[0],de=ce[1],pe=t.useRef(null),ve=t.useRef(null),me=t.useRef(!1),fe=t.useRef(!1),ge=t.useRef(null),he=t.useRef(null),Se=t.useRef(null),be=t.useRef(null),Ee=t.useRef(null),we=t.useRef(null),ye=t.useRef(p.default),ke=a.store.select.mediaDevices.videoInputDevices(a.store.getState()),Ce=t.useMemo((function(){var e=(null==ie?void 0:ie.conversations)||{},t=Object.values(e).find((function(e){return Object.keys(e).length>0}));return t?Object.values(t)[0]:null}),[null==ie?void 0:ie.conversations]),Te=(null===(V=null===(N=null===(x=null===(j=null===(C=null==ie?void 0:ie.profile)||void 0===C?void 0:C.macro_permissions)||void 0===j?void 0:j.settings)||void 0===x?void 0:x.permissions)||void 0===N?void 0:N.recording)||void 0===V?void 0:V.value)||!1,je=d.isRecordingControlAvailable(Ce),xe=Te&&je;s.useIsomorphicLayoutEffect((function(){A.player.updatePlayer({localScreen:he,remoteScreen:Se,localVideo:be,largeRemoteVideo:Ee,smallRemoteVideo:we})}),[]),t.useEffect((function(){return Ae(),Ne(),addEventListener("fullscreenchange",Ve),function(){removeEventListener("fullscreenchange",Ve),pe.current&&clearTimeout(pe.current)}}),[]),t.useEffect((function(){W&&(Ie(),A.currentCall.updateCurrentCall({isStartingVideoCall:!1}))}),[W]),t.useEffect((function(){Y&&(Pe(),a.store.dispatch.screenShare.update({isStartingScreenShare:!1}))}),[Y]),t.useEffect((function(){Z&&(Le(),a.store.dispatch.screenShare.update({isJoiningScreenShare:!1}))}),[Z]),t.useEffect((function(){$&&(Fe(),a.store.dispatch.screenShare.update({isLeavingScreenShare:!1}))}),[$]),t.useEffect((function(){Ae(),Ne()}),[te]);var Ne=function(){var e=a.store.getState().player.localVideo,t=a.store.getState().player.largeRemoteVideo,r=a.store.getState().player.smallRemoteVideo,n=a.store.getState().webrtc,i=n.localVideoStream,o=n.remoteVideoStream;(null==e?void 0:e.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,i),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,o),(null==r?void 0:r.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(r.current,o),o instanceof MediaStream&&o.getVideoTracks().length>0&&A.currentCall.updateCurrentCall({showRemoteVideoPlaceHolder:!1})},Ve=function(){se(!!document.fullscreenElement)},qe=function(){document.fullscreenElement?(document.exitFullscreen(),c.eventDispatch("phone-island-fullscreen-exited",{})):ge.current&&(ge.current.requestFullscreen(),c.eventDispatch("phone-island-fullscreen-entered",{}))};l.useEventListener("phone-island-fullscreen-enter",(function(){qe()})),l.useEventListener("phone-island-fullscreen-exit",(function(){qe()}));var Re=function(e,t){A.screenShare.update({source:e});var r=null;null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(t){var n,i,o,l;r=t,A.screenShare.update({remoteFeed:t}),r.remoteTracks={},r.remoteVideos=0,null===(i=(n=ye.current).log)||void 0===i||i.call(n,"Plugin attached! ("+r.getPlugin()+", id="+r.getId()+")"),null===(l=(o=ye.current).log)||void 0===l||l.call(o," -- This is a subscriber");var s={request:"join",room:a.store.getState().screenShare.room,ptype:"subscriber",feed:e};r.send({message:s})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},iceState:function(e){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t,"ICE state (feed #"+r.rfindex+") changed to "+e)},webrtcState:function(e){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t,"Janus says this WebRTC PeerConnection (feed #"+r.rfindex+") is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ye.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(n,i){var o,l,s,c,u,d,p,v,m,f;null===(l=(o=ye.current).debug)||void 0===l||l.call(o," ::: Got a message (listener) :::",n);var g=n.videoroom;null===(c=(s=ye.current).debug)||void 0===c||c.call(s,"Event: "+g),g&&("attached"===g?null===(d=(u=ye.current).log)||void 0===d||d.call(u,"Successfully attached to feed "+e+" ("+t+") in room "+n.room):null===(v=(p=ye.current).warn)||void 0===v||v.call(p,"Unhandled event: "+g)),i&&(null===(f=(m=ye.current).debug)||void 0===f||f.call(m,"Handling SDP as well...",i),r.createAnswer({jsep:i,tracks:[{type:"data"}],success:function(e){var t,n;null===(n=(t=ye.current).debug)||void 0===n||n.call(t,"Got SDP!",e);var i={request:"start",room:a.store.getState().screenShare.room};r.send({message:i,jsep:e})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"WebRTC error:",e)}}))},onlocaltrack:function(e,t){},onremotetrack:function(e,t,n,i){var o,l,s,c,u,d,p,v;if(null===(l=(o=ye.current).debug)||void 0===l||l.call(o,"Remote track (mid="+t+") "+(n?"added":"removed")+(i?" ("+i.reason+") ":"")+":",e),"video"!==e.kind||!i||"mute"!==i.reason&&"unmute"!==i.reason){if(!n){var m=a.store.getState().screenShare.remoteScreenStream;return ye.current.stopAllTracks(m),void A.screenShare.update({active:!1})}if("video"===e.kind){var f=new MediaStream([e]);a.store.dispatch.screenShare.update({remoteScreenStream:f}),r.remoteTracks[t]=f,null===(d=(u=ye.current).log)||void 0===d||d.call(u,"Created remote video stream: "+f);var g=a.store.getState().player.remoteScreen;(null==g?void 0:g.current)&&(null===(v=(p=ye.current).attachMediaStream)||void 0===v||v.call(p,g.current,f))}}else null===(c=(s=ye.current).log)||void 0===c||c.call(s,"Ignoring mute/unmute on screen-sharing track.")},oncleanup:function(){var t,a;null===(a=(t=ye.current).log)||void 0===a||a.call(t," ::: Got a cleanup notification (remote feed "+e+") :::"),r.remoteTracks={},r.remoteVideos=0}})},Ie=function(){var e,t,r,n;if(!me.current){var i=a.store.getState().webrtc.sipcall;me.current=!0,a.store.dispatch.currentCall.updateCurrentCall({isLocalVideoEnabled:!0});var o=[],l=b.getCurrentVideoInputDeviceId(),s={type:"video",recv:!0};s.capture=!l||{deviceId:{exact:l}};var u=a.store.getState().currentCall.hasVideoTrackAdded,d=a.store.getState().webrtc.remoteVideoStream,p=null===(n=null===(r=null===(t=null===(e=null==i?void 0:i.webrtcStuff)||void 0===e?void 0:e.pc)||void 0===t?void 0:t.getTransceivers)||void 0===r?void 0:r.call(t))||void 0===n?void 0:n.find((function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)}));(u||Boolean(p)||d instanceof MediaStream&&d.getVideoTracks().length>0)&&p?(s.replace=!0,p.mid&&(s.mid=p.mid),u||A.currentCall.setVideoTrackAdded(!0)):(s.add=!0,A.currentCall.setVideoTrackAdded(!0)),o.push(s),i.createOffer({tracks:o,success:function(e){var t,r,n;me.current=!1,i.send({message:{request:"update"},jsep:e}),t=a.store.getState().websocket.socket,r=a.store.getState().currentCall.username,n=a.store.getState().currentUser.username,t&&r&&n&&t.emit("message",{message:"videoCallStart",destUser:r,callUser:n}),w.dispatchVideoCallStarted({initiator:"local",callUser:a.store.getState().currentUser.username,destUser:a.store.getState().currentCall.username}),c.eventDispatch("phone-island-video-enabled",{})},error:function(e){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-enable",(function(){Ie()}));var _e=function(){var t,r,n,i;if(!me.current){var o=a.store.getState().webrtc,l=o.sipcall,s=o.localVideoStream;me.current=!0;var u=null===(i=null===(n=null===(r=null===(t=null==l?void 0:l.webrtcStuff)||void 0===t?void 0:t.pc)||void 0===r?void 0:r.getTransceivers)||void 0===n?void 0:n.call(r))||void 0===i?void 0:i.find((function(e){var t,r,a,n;return"video"===(null===(r=null===(t=e.receiver)||void 0===t?void 0:t.track)||void 0===r?void 0:r.kind)||"video"===(null===(n=null===(a=e.sender)||void 0===a?void 0:a.track)||void 0===n?void 0:n.kind)}));ye.current.stopAllTracks(s),a.store.dispatch.webrtc.updateLocalVideoStream(null),a.store.dispatch.currentCall.setLocalVideoEnabled(!1);var d=[];d.push(e.__assign(e.__assign({type:"video"},(null==u?void 0:u.mid)?{mid:u.mid}:{}),{remove:!0})),l.createOffer({tracks:d,success:function(e){me.current=!1,l.send({message:{request:"update"},jsep:e}),c.eventDispatch("phone-island-video-disabled",{})},error:function(e){me.current=!1,console.error("WebRTC error... "+JSON.stringify(e))}})}};l.useEventListener("phone-island-video-disable",(function(){_e()}));var De=function(){null==ae||ae.attach({plugin:"janus.plugin.videoroom",opaqueId:ye.current.randomString(32),success:function(e){A.screenShare.update({plugin:e});var t=a.store.getState().screenShare.role;"publisher"===t?(c.eventDispatch("phone-island-screen-share-initialized",{}),setTimeout((function(){!function(){var e,t;if(ye.current.isExtensionEnabled()){var r={request:"create",description:ye.current.randomString(32),bitrate:5e5,publishers:1},n=a.store.getState().screenShare.plugin;n.send({message:r,success:function(e){var t,r,i,o,l,s,c,u;if(e.error)null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Couldn't create room: "+e.error);else{var d=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+d),d){var p=e.room;A.screenShare.update({room:p}),null===(s=(l=ye.current).log)||void 0===s||s.call(l,"Screen sharing session created: "+p);var v=a.store.getState().currentUser.username;if(fe.current)return void(null===(u=(c=ye.current).log)||void 0===u||u.call(c,"Screen share publisher join already requested on this handle, skipping duplicate join"));fe.current=!0;var m={request:"join",room:p,ptype:"publisher",display:v};n.send({message:m})}}}})}else null===(t=(e=ye.current).error)||void 0===t||t.call(e,"This browser doesn't support screensharing (getDisplayMedia unavailable)")}()}),500)):"listener"===t&&Ue(),c.eventDispatch("phone-island-screen-share-started",{})},error:function(e){var t,r;null===(r=(t=ye.current).error)||void 0===r||r.call(t,"Error attaching videoroom plugin",e)},consentDialog:function(e){},iceState:function(e){var t,r;null===(r=(t=ye.current).log)||void 0===r||r.call(t,"ICE state changed to "+e)},mediaState:function(e,t){var r,a;null===(a=(r=ye.current).log)||void 0===a||a.call(r,"Janus "+(t?"started":"stopped")+" receiving our "+e)},webrtcState:function(e){var t,r;null===(r=(t=ye.current).log)||void 0===r||r.call(t,"Janus says our WebRTC PeerConnection is "+(e?"up":"down")+" now")},slowLink:function(e,t,r){var a,n;null===(n=(a=ye.current).warn)||void 0===n||n.call(a,"Janus reports problems "+(e?"sending":"receiving")+" packets on mid "+r+" ("+t+" lost packets)")},onmessage:function(e,t){var r,n,i,o,l,s,c,u,d,p,v,m,f,g,h,S,b,E,w,y;null===(n=(r=ye.current).debug)||void 0===n||n.call(r," ::: Got a message (publisher) :::",e);var k=a.store.getState().screenShare,C=k.plugin,T=k.role,j=e.videoroom;if(null===(o=(i=ye.current).debug)||void 0===o||o.call(i,"Event: "+j),j)if("joined"===j){if("publisher"===T)null===(s=(l=ye.current).debug)||void 0===s||s.call(l,"Negotiating WebRTC stream for our screen"),C.createOffer({tracks:[{type:"audio",capture:!0,recv:!1},{type:"screen",capture:!0,recv:!1}],success:function(e){var t,r;null===(r=(t=ye.current).debug)||void 0===r||r.call(t,"Got publisher SDP!",e);C.send({message:{request:"configure",audio:!0,video:!0},jsep:e})},error:function(e){var t,r;fe.current=!1,null===(r=(t=ye.current).error)||void 0===r||r.call(t,"WebRTC error:",e),A.screenShare.update({active:!1,role:""})}});else if(e.publishers){var x=e.publishers;for(var N in null===(u=(c=ye.current).debug)||void 0===u||u.call(c,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){var V=x[N].id,q=x[N].display;null===(p=(d=ye.current).debug)||void 0===p||p.call(d," >> ["+V+"] "+q),Re(V,q)}}}else if("event"===j)if("listener"===T&&e.publishers){x=e.publishers;for(var N in null===(m=(v=ye.current).debug)||void 0===m||m.call(v,"Got a list of available publishers/feeds:",x),x)if(!x[N].dummy){V=x[N].id,q=x[N].display;null===(g=(f=ye.current).debug)||void 0===g||g.call(f," >> ["+V+"] "+q),Re(V,q)}}else if(e.leaving){var R=e.leaving;null===(S=(h=ye.current).log)||void 0===S||S.call(h,"Publisher left: "+R)}else e.error&&(null===(E=(b=ye.current).error)||void 0===E||E.call(b,"Error event: "+e.error));t&&(null===(y=(w=ye.current).debug)||void 0===y||y.call(w,"Handling SDP as well...",t),C.handleRemoteJsep({jsep:t}))},onlocaltrack:function(e,t){var r,n,i,o,l,s;null===(n=(r=ye.current).debug)||void 0===n||n.call(r,"Local track "+(t?"added":"removed")+":",e);var c=e.id.replace(/[{}]/g,"");if(t){if(!(null==H?void 0:H[c])){if("video"===e.kind){A.screenShare.update({localVideos:K+1});var u=new MediaStream([e]);a.store.dispatch.screenShare.update({localScreenStream:u}),null===(o=(i=ye.current).log)||void 0===o||o.call(i,"Created local stream: "+u);var d=a.store.getState().player.localScreen;(null==d?void 0:d.current)&&(null===(s=(l=ye.current).attachMediaStream)||void 0===s||s.call(l,d.current,u),Me(),e.addEventListener("ended",(function(){Je()})))}var p=a.store.getState().screenShare.plugin;"completed"!==p.webrtcStuff.pc.iceConnectionState&&p.webrtcStuff.pc.iceConnectionState}}else{var v=null==H?void 0:H[c];if(v)try{var m=v.getTracks();for(var f in m){var g=m[f];g&&g.stop()}}catch(e){}"video"===e.kind&&A.screenShare.update({localVideos:K-1});var h=null==H?void 0:H.filter((function(e){return e!==H[c]}));A.screenShare.update({localTracks:h})}},onremotetrack:function(e,t,r){},oncleanup:function(){var e,t;null===(t=(e=ye.current).log)||void 0===t||t.call(e," ::: Got a cleanup notification :::"),fe.current=!1,A.screenShare.update({localTracks:{},localVideos:0})}})},Ae=function(){var e=a.store.getState().player.localScreen,t=a.store.getState().player.remoteScreen,r=a.store.getState().screenShare,n=r.localScreenStream,i=r.remoteScreenStream;(null==e?void 0:e.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(e.current,n),(null==t?void 0:t.current)&&ye.current.attachMediaStream&&ye.current.attachMediaStream(t.current,i)},Me=function(){var e=a.store.getState().websocket.socket,t=a.store.getState().currentCall.username,r=a.store.getState().screenShare.room,n=a.store.getState().currentUser.username;e.emit("message",{message:"screenSharingStart",roomId:r,destUser:t,callUser:n})},Pe=function(){fe.current=!1,A.screenShare.update({active:!0,role:"publisher"}),De()};l.useEventListener("phone-island-screen-share-start",(function(){Pe()}));var Le=function(){A.screenShare.update({active:!0,role:"listener"}),De(),c.eventDispatch("phone-island-screen-share-joined",{})},Ue=function(){var e={request:"join",room:a.store.getState().screenShare.room,ptype:"publisher",display:a.store.getState().currentUser.username};a.store.getState().screenShare.plugin.send({message:e})},Fe=function(){var e=a.store.getState().screenShare.remoteScreenStream;ye.current.stopAllTracks(e),A.screenShare.update({active:!1}),c.eventDispatch("phone-island-screen-share-left",{})},Be=function(){de(!0),pe.current&&(clearTimeout(pe.current),pe.current=null),ve.current&&clearTimeout(ve.current),ve.current=setTimeout((function(){pe.current=setTimeout((function(){de(!1)}),3e3)}),100)},Je=function(){var e=a.store.getState().screenShare,t=e.plugin,r=e.localScreenStream;fe.current=!1,ye.current.stopAllTracks(r),A.screenShare.update({active:!1}),t.detach();var n=a.store.getState().websocket.socket,i=a.store.getState().currentCall.username,o=a.store.getState().screenShare.room,l=a.store.getState().currentUser.username;n.emit("message",{message:"screenSharingStop",roomId:o,destUser:i,callUser:l}),c.eventDispatch("phone-island-screen-share-stopped",{})};l.useEventListener("phone-island-screen-share-stop",(function(){Je()}));var Oe=t.useState(!0),ze=Oe[0],We=Oe[1],Ge=function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return(null==ke?void 0:ke.length)>0?[4,b.checkWebCamPermission()]:[3,2];case 1:return e.sent()?(We(!0),[2,!0]):(We(!1),[2,!1]);case 2:return We(!1),[2,!1];case 3:return[2]}}))}))};return T.default.createElement(T.default.Fragment,null,te?T.default.createElement("div",{ref:ge,onMouseMove:function(){return Be()},className:le?"pi-h-screen":"pi-h-[480px] pi-w-[600px]"},T.default.createElement("div",{className:"pi-flex pi-relative pi-justify-center pi-w-full pi-h-full"},T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Se,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"listener"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:he,className:"pi-rounded-2xl pi-w-full pi-h-full ".concat(X&&"publisher"===Q?"":"pi-hidden")}),T.default.createElement("video",{autoPlay:!0,muted:!0,ref:Ee,className:"pi-rounded-2xl ".concat(X||J?"pi-hidden":"")}),T.default.createElement("div",{className:"pi-w-full pi-bg-gray-200 dark:pi-bg-gray-800 pi-flex pi-items-center pi-justify-center ".concat(X||!J?"pi-hidden":"")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-32 pi-h-32 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-4xl pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(z)))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:be,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg ".concat(B?"":"pi-hidden")}),T.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-5 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(B||!O?"pi-hidden":"")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(ie.name||"-")))),T.default.createElement("video",{muted:!0,autoPlay:!0,ref:we,className:"pi-max-w-32 pi-max-h-32 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg ".concat(!X||J?"pi-hidden":"")}),T.default.createElement("div",{className:"pi-w-32 pi-h-24 pi-absolute pi-top-32 pi-right-5 pi-rounded-lg pi-bg-gray-200 dark:pi-bg-gray-900 pi-flex pi-items-center pi-justify-center ".concat(X&&J&&O?"":"pi-hidden")},T.default.createElement("div",{className:"pi-rounded-full pi-bg-gray-700 dark:pi-bg-gray-200 pi-w-12 pi-h-12 pi-flex pi-items-center pi-justify-center"},T.default.createElement("span",{className:"pi-text-base pi-text-gray-50 dark:pi-text-gray-900"},E.getInitials(z))))),T.default.createElement("div",{className:"".concat(!ue&&"pi-opacity-0 pi-pointer-events-none"," pi-absolute pi-bottom-0 pi-bg-gray-950/65 pi-w-full pi-p-6 pi-rounded-bl-[20px] pi-rounded-br-[20px] pi-transition-all")},T.default.createElement("div",{className:"pi-flex pi-items-center pi-justify-center pi-gap-6 pi-mb-5"},!(null==ee?void 0:ee.isListen)&&T.default.createElement(r.Button,{variant:"default",active:!!P,onClick:function(){return P?d.unmuteCurrentCall():d.muteCurrentCall()},"data-tooltip-id":"tooltip-mute","data-tooltip-content":"".concat(P?o.t("Tooltip.Unmute"):o.t("Tooltip.Mute"))},P?T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophoneSlash}):T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faMicrophone})),(null==ke?void 0:ke.length)>0&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return e.__awaiter(void 0,void 0,void 0,(function(){return e.__generator(this,(function(e){switch(e.label){case 0:return[4,Ge()];case 1:return e.sent()&&(B?_e():Ie()),[2]}}))}))},"data-tooltip-id":"tooltip-toggle-video","data-tooltip-content":"".concat(ze?B?o.t("Tooltip.Disable camera"):o.t("Tooltip.Enable camera"):o.t("Tooltip.Enable camera permission")||""),disabled:!ze,className:"".concat(ze?"":"pi-cursor-auto")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:B?i.faVideoSlash:i.faVideo})),"safari"!==ye.current.webRTCAdapter.browserDetails.browser&&(null===(D=null===(_=null===(I=null===(R=null===(q=null==ie?void 0:ie.profile)||void 0===q?void 0:q.macro_permissions)||void 0===R?void 0:R.nethvoice_cti)||void 0===I?void 0:I.permissions)||void 0===_?void 0:_.screen_sharing)||void 0===D?void 0:D.value)&&!X&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return Pe()},"data-tooltip-id":"tooltip-start-screen-share","data-tooltip-content":o.t("Tooltip.Share screen")||""},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:i.faDisplay})),X&&"publisher"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return Je()},"data-tooltip-id":"tooltip-stop-screen-share","data-tooltip-content":o.t("Tooltip.Stop sharing")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:S.faDisplaySlash})),X&&"listener"===Q&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return qe()},"data-tooltip-id":"tooltip-toggle-fullscreen","data-tooltip-content":le?o.t("Tooltip.Exit fullscreen"):o.t("Tooltip.Enter fullscreen")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:le?i.faCompress:i.faExpand})),xe&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return d.recordCurrentCall(U)},"data-tooltip-id":"tooltip-record-video-view","data-tooltip-content":U?o.t("Tooltip.Stop recording"):o.t("Tooltip.Record")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:U?i.faStop:S.faRecord})),!((null==ee?void 0:ee.isIntrude)||(null==ee?void 0:ee.isListen))&&T.default.createElement(r.Button,{variant:"default",onClick:function(){return F?d.unpauseCurrentCall():(d.pauseCurrentCall(),void Je())},"data-tooltip-id":"tooltip-pause-video-view","data-tooltip-content":F?o.t("Tooltip.Play"):o.t("Tooltip.Pause")},T.default.createElement(n.FontAwesomeIcon,{className:"pi-h-6 pi-w-6",icon:F?i.faPlay:i.faPause}))),T.default.createElement(u.default,{buttonsVariant:"default"})),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-mute-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-video",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-toggle-fullscreen",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-start-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-stop-screen-share",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-record-video-view",place:"bottom"}),T.default.createElement(h.CustomThemedTooltip,{className:"pi-z-20",id:"tooltip-pause-video-view",place:"bottom"})):T.default.createElement(T.default.Fragment,null,T.default.createElement("div",{className:"pi-flex pi-justify-between pi-items-center"},T.default.createElement(v.default,null),T.default.createElement(m.default,{startTime:L,isNotAlwaysWhite:!0}),!te&&ne&&!f.isPhysical()&&T.default.createElement(g.AudioBars,{audioStream:ne,paused:F,size:te?"large":"small"}))))};exports.VideoView=j,exports.default=j;
2
2
  //# sourceMappingURL=index.js.map