@nethesis/phone-island 0.7.57 → 0.7.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/_virtual/framesync.cjs.js +2 -0
- package/dist/_virtual/framesync.cjs.js.map +1 -0
- package/dist/_virtual/hey-listen.es.js +2 -0
- package/dist/_virtual/hey-listen.es.js.map +1 -0
- package/dist/_virtual/index.es.js +2 -0
- package/dist/_virtual/index.es.js.map +1 -0
- package/dist/_virtual/index2.js +1 -1
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/_virtual/index6.js +1 -1
- package/dist/_virtual/index8.js +1 -1
- package/dist/_virtual/index9.js +2 -0
- package/dist/_virtual/index9.js.map +1 -0
- package/dist/_virtual/valueTypes.cjs.js +2 -0
- package/dist/_virtual/valueTypes.cjs.js.map +1 -0
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/Button.js +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/CallView/BackCall.d.ts +6 -0
- package/dist/components/CallView/BackCall.js +2 -0
- package/dist/components/CallView/BackCall.js.map +1 -0
- package/dist/components/CallView/Timer.d.ts +4 -1
- package/dist/components/CallView/Timer.js +1 -1
- package/dist/components/CallView/Timer.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/Island.js +1 -1
- package/dist/components/Island.js.map +1 -1
- package/dist/components/KeyboardView/Actions.d.ts +6 -0
- package/dist/components/KeyboardView/Actions.js +2 -0
- package/dist/components/KeyboardView/Actions.js.map +1 -0
- package/dist/components/KeyboardView/index.d.ts +5 -0
- package/dist/components/KeyboardView/index.js +2 -0
- package/dist/components/KeyboardView/index.js.map +1 -0
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/ViewsTransition.d.ts +7 -0
- package/dist/components/ViewsTransition.js +2 -0
- package/dist/components/ViewsTransition.js.map +1 -0
- package/dist/components/WebRTC.js +1 -1
- package/dist/components/WebRTC.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/devices/devices.js +1 -1
- package/dist/lib/webrtc/messages.d.ts +11 -0
- package/dist/lib/webrtc/messages.js +1 -1
- package/dist/lib/webrtc/messages.js.map +1 -1
- package/dist/models/animations.js +1 -1
- package/dist/models/animations.js.map +1 -1
- package/dist/models/currentCall.d.ts +41 -1
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/models/player.d.ts +15 -5
- package/dist/models/player.js +1 -1
- package/dist/models/player.js.map +1 -1
- package/dist/node_modules/@fortawesome/react-fontawesome/index.es.js +1 -1
- package/dist/node_modules/@motionone/animation/dist/Animation.es.js +2 -0
- package/dist/node_modules/@motionone/animation/dist/Animation.es.js.map +1 -0
- package/dist/node_modules/@motionone/animation/dist/utils/easing.es.js +2 -0
- package/dist/node_modules/@motionone/animation/dist/utils/easing.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/animate-style.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/animate-style.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/data.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/data.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/style.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/style.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/controls.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/controls.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/css-var.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/css-var.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/easing.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/easing.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/feature-detection.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/get-style-name.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/keyframes.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/options.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/options.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/stop-animation.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/style-object.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/style-object.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/style-string.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/style-string.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/transforms.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/animate/utils/transforms.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/easing/create-generator-easing.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/easing/create-generator-easing.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/easing/glide/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/easing/glide/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/easing/spring/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/easing/spring/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/in-view.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/in-view.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/handle-element.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/handle-element.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/handle-window.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/handle-window.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/resize/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/info.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/info.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/edge.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/edge.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/inset.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/inset.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/offset.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/offset.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/presets.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/offsets/presets.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/on-scroll-handler.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/gestures/scroll/on-scroll-handler.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/hover.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/hover.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/in-view.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/in-view.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/press.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/gestures/press.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/events.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/events.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/has-changed.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/has-changed.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/is-variant.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/is-variant.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/resolve-variant.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/resolve-variant.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/schedule.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/state/utils/schedule.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/index.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/calc-time.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/calc-time.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/edit.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/edit.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/sort.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/timeline/utils/sort.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/utils/resolve-elements.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/utils/resolve-elements.es.js.map +1 -0
- package/dist/node_modules/@motionone/dom/dist/utils/stagger.es.js +2 -0
- package/dist/node_modules/@motionone/dom/dist/utils/stagger.es.js.map +1 -0
- package/dist/node_modules/@motionone/easing/dist/cubic-bezier.es.js +2 -0
- package/dist/node_modules/@motionone/easing/dist/cubic-bezier.es.js.map +1 -0
- package/dist/node_modules/@motionone/easing/dist/steps.es.js +2 -0
- package/dist/node_modules/@motionone/easing/dist/steps.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/glide/index.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/glide/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/spring/defaults.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/spring/defaults.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/spring/index.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/spring/index.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/spring/utils.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/spring/utils.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/utils/has-reached-target.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/utils/has-reached-target.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/utils/pregenerate-keyframes.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/utils/pregenerate-keyframes.es.js.map +1 -0
- package/dist/node_modules/@motionone/generators/dist/utils/velocity.es.js +2 -0
- package/dist/node_modules/@motionone/generators/dist/utils/velocity.es.js.map +1 -0
- package/dist/node_modules/@motionone/types/dist/MotionValue.es.js +2 -0
- package/dist/node_modules/@motionone/types/dist/MotionValue.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/array.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/array.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/clamp.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/clamp.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/defaults.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/defaults.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/easing.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/easing.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/interpolate.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/interpolate.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-cubic-bezier.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-cubic-bezier.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-easing-generator.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-easing-generator.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-easing-list.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-easing-list.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-function.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-function.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-number.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-number.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/is-string.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/is-string.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/mix.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/mix.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/noop.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/noop.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/offset.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/offset.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/progress.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/progress.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/time.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/time.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/velocity.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/velocity.es.js.map +1 -0
- package/dist/node_modules/@motionone/utils/dist/wrap.es.js +2 -0
- package/dist/node_modules/@motionone/utils/dist/wrap.es.js.map +1 -0
- package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js.map +1 -1
- package/dist/node_modules/framer-motion/dist/cjs/index.js +2 -0
- package/dist/node_modules/framer-motion/dist/cjs/index.js.map +1 -0
- package/dist/node_modules/framesync/dist/framesync.cjs.js +2 -0
- package/dist/node_modules/framesync/dist/framesync.cjs.js.map +1 -0
- package/dist/node_modules/hey-listen/dist/hey-listen.es.js +2 -0
- package/dist/node_modules/hey-listen/dist/hey-listen.es.js.map +1 -0
- package/dist/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +1 -1
- package/dist/node_modules/hoist-non-react-statics/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/mic-check/lib/index.js +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/react-moment/dist/index.js +1 -1
- package/dist/node_modules/react-redux/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/style-value-types/dist/valueTypes.cjs.js +2 -0
- package/dist/node_modules/style-value-types/dist/valueTypes.cjs.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +1 -1
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +1 -1
- package/dist/node_modules/use-sync-external-store/shim/index.js +1 -1
- package/dist/static/busy_ringtone.d.ts +2 -2
- package/dist/static/dtmf/dtmf_0.d.ts +2 -0
- package/dist/static/dtmf/dtmf_0.js +2 -0
- package/dist/static/dtmf/dtmf_0.js.map +1 -0
- package/dist/static/dtmf/dtmf_1.d.ts +2 -0
- package/dist/static/dtmf/dtmf_1.js +2 -0
- package/dist/static/dtmf/dtmf_1.js.map +1 -0
- package/dist/static/dtmf/dtmf_2.d.ts +2 -0
- package/dist/static/dtmf/dtmf_2.js +2 -0
- package/dist/static/dtmf/dtmf_2.js.map +1 -0
- package/dist/static/dtmf/dtmf_3.d.ts +2 -0
- package/dist/static/dtmf/dtmf_3.js +2 -0
- package/dist/static/dtmf/dtmf_3.js.map +1 -0
- package/dist/static/dtmf/dtmf_4.d.ts +2 -0
- package/dist/static/dtmf/dtmf_4.js +2 -0
- package/dist/static/dtmf/dtmf_4.js.map +1 -0
- package/dist/static/dtmf/dtmf_5.d.ts +2 -0
- package/dist/static/dtmf/dtmf_5.js +2 -0
- package/dist/static/dtmf/dtmf_5.js.map +1 -0
- package/dist/static/dtmf/dtmf_6.d.ts +2 -0
- package/dist/static/dtmf/dtmf_6.js +2 -0
- package/dist/static/dtmf/dtmf_6.js.map +1 -0
- package/dist/static/dtmf/dtmf_7.d.ts +2 -0
- package/dist/static/dtmf/dtmf_7.js +2 -0
- package/dist/static/dtmf/dtmf_7.js.map +1 -0
- package/dist/static/dtmf/dtmf_8.d.ts +2 -0
- package/dist/static/dtmf/dtmf_8.js +2 -0
- package/dist/static/dtmf/dtmf_8.js.map +1 -0
- package/dist/static/dtmf/dtmf_9.d.ts +2 -0
- package/dist/static/dtmf/dtmf_9.js +2 -0
- package/dist/static/dtmf/dtmf_9.js.map +1 -0
- package/dist/static/dtmf/dtmf_busy.d.ts +2 -0
- package/dist/static/dtmf/dtmf_busy.js +2 -0
- package/dist/static/dtmf/dtmf_busy.js.map +1 -0
- package/dist/static/dtmf/dtmf_dialtone.d.ts +2 -0
- package/dist/static/dtmf/dtmf_dialtone.js +2 -0
- package/dist/static/dtmf/dtmf_dialtone.js.map +1 -0
- package/dist/static/dtmf/dtmf_pound.d.ts +2 -0
- package/dist/static/dtmf/dtmf_pound.js +2 -0
- package/dist/static/dtmf/dtmf_pound.js.map +1 -0
- package/dist/static/dtmf/dtmf_rbt-US.d.ts +2 -0
- package/dist/static/dtmf/dtmf_rbt-US.js +2 -0
- package/dist/static/dtmf/dtmf_rbt-US.js.map +1 -0
- package/dist/static/dtmf/dtmf_star.d.ts +2 -0
- package/dist/static/dtmf/dtmf_star.js +2 -0
- package/dist/static/dtmf/dtmf_star.js.map +1 -0
- package/dist/static/dtmf/index.d.ts +18 -0
- package/dist/static/dtmf/index.js +2 -0
- package/dist/static/dtmf/index.js.map +1 -0
- package/dist/static/icons/PhoneKeyboardLight.js +1 -1
- package/dist/static/icons/PhoneKeyboardLight.js.map +1 -1
- package/dist/static/icons/PhoneKeyboardSolid.js +1 -1
- package/dist/static/icons/PhoneKeyboardSolid.js.map +1 -1
- package/dist/static/incoming_ringtone.d.ts +2 -2
- package/dist/static/incoming_ringtone.js.map +1 -1
- package/dist/static/outgoing_ringtone.d.ts +2 -2
- package/dist/static/outgoing_ringtone.js.map +1 -1
- package/dist/styles/Island.styles.d.ts +7 -6
- package/dist/styles/Island.styles.js +1 -1
- package/dist/styles/Island.styles.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";function t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(){return o=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},o.apply(this,arguments)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function a(t,e,r){return a=c()?Reflect.construct.bind():function(t,e,r){var n=[null];n.push.apply(n,e);var o=new(Function.bind.apply(t,n));return r&&u(o,r.prototype),o},a.apply(null,arguments)}function f(t){return-1!==Function.toString.call(t).indexOf("[native code]")}function l(t){var e="function"==typeof Map?new Map:void 0;return l=function(t){if(null===t||!f(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,r)}function r(){return a(t,arguments,i(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),u(r,t)},l(t)}function p(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}function s(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function y(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return s(t)}function b(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=i(t)););return t}function d(){return d="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,r){var n=b(t,e);if(n){var o=Object.getOwnPropertyDescriptor(n,e);return o.get?o.get.call(arguments.length<3?t:r):o.value}},d.apply(this,arguments)}function h(t){if(Array.isArray(t))return x(t)}function O(t){if(Array.isArray(t))return t}function v(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function m(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i=[],u=!0,c=!1;try{for(r=r.call(t);!(u=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);u=!0);}catch(t){c=!0,o=t}finally{try{u||null==r.return||r.return()}finally{if(c)throw o}}return i}}function j(t,e){if(t){if("string"==typeof t)return x(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?x(t,e):void 0}}function x(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function w(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function g(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.arrayLikeToArray=x,exports.arrayWithHoles=O,exports.arrayWithoutHoles=h,exports.assertThisInitialized=s,exports.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},exports.construct=a,exports.createClass=function(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t},exports.createForOfIteratorHelper=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=j(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,c=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){c=!0,i=t},f:function(){try{u||null==r.return||r.return()}finally{if(c)throw i}}}},exports.createSuper=function(t){var e=c();return function(){var r,n=i(t);if(e){var o=i(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return y(this,r)}},exports.defineProperty=n,exports.extends=o,exports.get=d,exports.getPrototypeOf=i,exports.inherits=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&u(t,e)},exports.isNativeFunction=f,exports.isNativeReflectConstruct=c,exports.iterableToArray=v,exports.iterableToArrayLimit=m,exports.nonIterableRest=g,exports.nonIterableSpread=w,exports.objectDestructuringEmpty=function(t){if(null==t)throw new TypeError("Cannot destructure "+t)},exports.objectSpread2=function(e){for(var r=1;r<arguments.length;r++){var o=null!=arguments[r]?arguments[r]:{};r%2?t(Object(o),!0).forEach((function(t){n(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):t(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e},exports.objectWithoutProperties=function(t,e){if(null==t)return{};var r,n,o=p(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o},exports.objectWithoutPropertiesLoose=p,exports.possibleConstructorReturn=y,exports.setPrototypeOf=u,exports.slicedToArray=function(t,e){return O(t)||m(t,e)||j(t,e)||g()},exports.superPropBase=b,exports.toArray=function(t){return O(t)||v(t)||j(t)||g()},exports.toConsumableArray=function(t){return h(t)||v(t)||j(t)||w()},exports.typeof=e,exports.unsupportedIterableToArray=j,exports.wrapNativeSuper=l;
|
|
1
|
+
"use strict";function t(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function r(){r=function(){return t};var t={},e=Object.prototype,n=e.hasOwnProperty,o=Object.defineProperty||function(t,r,e){t[r]=e.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",u=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{f({},"")}catch(t){f=function(t,r,e){return t[r]=e}}function l(t,r,e,n){var i=r&&r.prototype instanceof y?r:y,a=Object.create(i.prototype),u=new S(n||[]);return o(a,"_invoke",{value:x(t,e,u)}),a}function s(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}t.wrap=l;var p={};function y(){}function h(){}function d(){}var v={};f(v,a,(function(){return this}));var b=Object.getPrototypeOf,g=b&&b(b(L([])));g&&g!==e&&n.call(g,a)&&(v=g);var m=d.prototype=y.prototype=Object.create(v);function w(t){["next","throw","return"].forEach((function(r){f(t,r,(function(t){return this._invoke(r,t)}))}))}function O(t,r){function e(o,i,a,u){var c=s(t[o],t,i);if("throw"!==c.type){var f=c.arg,l=f.value;return l&&"object"==typeof l&&n.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,a,u)}),(function(t){e("throw",t,a,u)})):r.resolve(l).then((function(t){f.value=t,a(f)}),(function(t){return e("throw",t,a,u)}))}u(c.arg)}var i;o(this,"_invoke",{value:function(t,n){function o(){return new r((function(r,o){e(t,n,r,o)}))}return i=i?i.then(o,o):o()}})}function x(t,r,e){var n="suspendedStart";return function(o,i){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw i;return _()}for(e.method=o,e.arg=i;;){var a=e.delegate;if(a){var u=j(a,e);if(u){if(u===p)continue;return u}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if("suspendedStart"===n)throw n="completed",e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);n="executing";var c=s(t,r,e);if("normal"===c.type){if(n=e.done?"completed":"suspendedYield",c.arg===p)continue;return{value:c.arg,done:e.done}}"throw"===c.type&&(n="completed",e.method="throw",e.arg=c.arg)}}}function j(t,r){var e=t.iterator[r.method];if(void 0===e){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=void 0,j(t,r),"throw"===r.method))return p;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var n=s(e,t.iterator,r.arg);if("throw"===n.type)return r.method="throw",r.arg=n.arg,r.delegate=null,p;var o=n.arg;return o?o.done?(r[t.resultName]=o.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=void 0),r.delegate=null,p):o:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,p)}function P(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function E(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function L(t){if(t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var e=-1,o=function r(){for(;++e<t.length;)if(n.call(t,e))return r.value=t[e],r.done=!1,r;return r.value=void 0,r.done=!0,r};return o.next=o}}return{next:_}}function _(){return{value:void 0,done:!0}}return h.prototype=d,o(m,"constructor",{value:d,configurable:!0}),o(d,"constructor",{value:h,configurable:!0}),h.displayName=f(d,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===h||"GeneratorFunction"===(r.displayName||r.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,d):(t.__proto__=d,f(t,c,"GeneratorFunction")),t.prototype=Object.create(m),t},t.awrap=function(t){return{__await:t}},w(O.prototype),f(O.prototype,u,(function(){return this})),t.AsyncIterator=O,t.async=function(r,e,n,o,i){void 0===i&&(i=Promise);var a=new O(l(r,e,n,o),i);return t.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},w(m),f(m,c,"Generator"),f(m,a,(function(){return this})),f(m,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},t.values=L,S.prototype={constructor:S,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!t)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=void 0)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var r=this;function e(e,n){return a.type="throw",a.arg=t,r.next=e,n&&(r.method="next",r.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return e("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev<i.catchLoc)return e(i.catchLoc,!0);if(this.prev<i.finallyLoc)return e(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return e(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return e(i.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),p},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),E(e),p}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;E(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,e){return this.delegate={iterator:L(t),resultName:r,nextLoc:e},"next"===this.method&&(this.arg=void 0),p}},t}function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function o(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}function i(){return i=Object.assign?Object.assign.bind():function(t){for(var r=1;r<arguments.length;r++){var e=arguments[r];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])}return t},i.apply(this,arguments)}function a(t){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},a(t)}function u(t,r){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,r){return t.__proto__=r,t},u(t,r)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}function f(t,r,e){return f=c()?Reflect.construct.bind():function(t,r,e){var n=[null];n.push.apply(n,r);var o=new(Function.bind.apply(t,n));return e&&u(o,e.prototype),o},f.apply(null,arguments)}function l(t){return-1!==Function.toString.call(t).indexOf("[native code]")}function s(t){var r="function"==typeof Map?new Map:void 0;return s=function(t){if(null===t||!l(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,e)}function e(){return f(t,arguments,a(this).constructor)}return e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),u(e,t)},s(t)}function p(t,r){if(null==t)return{};var e,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||(o[e]=t[e]);return o}function y(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function h(t,r){if(r&&("object"==typeof r||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return y(t)}function d(t,r){for(;!Object.prototype.hasOwnProperty.call(t,r)&&null!==(t=a(t)););return t}function v(){return v="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,r,e){var n=d(t,r);if(n){var o=Object.getOwnPropertyDescriptor(n,r);return o.get?o.get.call(arguments.length<3?t:e):o.value}},v.apply(this,arguments)}function b(t){if(Array.isArray(t))return x(t)}function g(t){if(Array.isArray(t))return t}function m(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}function w(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i=[],a=!0,u=!1;try{for(e=e.call(t);!(a=(n=e.next()).done)&&(i.push(n.value),!r||i.length!==r);a=!0);}catch(t){u=!0,o=t}finally{try{a||null==e.return||e.return()}finally{if(u)throw o}}return i}}function O(t,r){if(t){if("string"==typeof t)return x(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?x(t,r):void 0}}function x(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}function j(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function P(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.arrayLikeToArray=x,exports.arrayWithHoles=g,exports.arrayWithoutHoles=b,exports.assertThisInitialized=y,exports.classCallCheck=function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")},exports.construct=f,exports.createClass=function(t,r,e){return r&&n(t.prototype,r),e&&n(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t},exports.createForOfIteratorHelper=function(t,r){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=O(t))||r&&t&&"number"==typeof t.length){e&&(t=e);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){e=e.call(t)},n:function(){var t=e.next();return a=t.done,t},e:function(t){u=!0,i=t},f:function(){try{a||null==e.return||e.return()}finally{if(u)throw i}}}},exports.createSuper=function(t){var r=c();return function(){var e,n=a(t);if(r){var o=a(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return h(this,e)}},exports.defineProperty=o,exports.extends=i,exports.get=v,exports.getPrototypeOf=a,exports.inherits=function(t,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(r&&r.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),r&&u(t,r)},exports.isNativeFunction=l,exports.isNativeReflectConstruct=c,exports.iterableToArray=m,exports.iterableToArrayLimit=w,exports.nonIterableRest=P,exports.nonIterableSpread=j,exports.objectDestructuringEmpty=function(t){if(null==t)throw new TypeError("Cannot destructure "+t)},exports.objectSpread2=function(r){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?t(Object(n),!0).forEach((function(t){o(r,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(n)):t(Object(n)).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(n,t))}))}return r},exports.objectWithoutProperties=function(t,r){if(null==t)return{};var e,n,o=p(t,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)e=i[n],r.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(o[e]=t[e])}return o},exports.objectWithoutPropertiesLoose=p,exports.possibleConstructorReturn=h,exports.regeneratorRuntime=r,exports.setPrototypeOf=u,exports.slicedToArray=function(t,r){return g(t)||w(t,r)||O(t,r)||P()},exports.superPropBase=d,exports.toArray=function(t){return g(t)||m(t)||O(t)||P()},exports.toConsumableArray=function(t){return b(t)||m(t)||O(t)||j()},exports.typeof=e,exports.unsupportedIterableToArray=O,exports.wrapNativeSuper=s;
|
|
2
2
|
//# sourceMappingURL=_rollupPluginBabelHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"framesync.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hey-listen.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/_virtual/index2.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.__exports={};
|
|
2
2
|
//# sourceMappingURL=index2.js.map
|
package/dist/_virtual/index3.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index3.js.map
|
package/dist/_virtual/index4.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.dist={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index4.js.map
|
package/dist/_virtual/index5.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.shim={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index5.js.map
|
package/dist/_virtual/index6.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.propTypes={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index6.js.map
|
package/dist/_virtual/index8.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.reactIs={exports:{}};
|
|
2
2
|
//# sourceMappingURL=index8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index9.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valueTypes.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FC, ReactNode, ComponentPropsWithRef } from 'react';
|
|
2
2
|
interface ButtonProps extends ComponentPropsWithRef<'button'> {
|
|
3
3
|
children: ReactNode;
|
|
4
|
-
variant: 'red' | 'green' | 'default' | 'neutral';
|
|
4
|
+
variant: 'red' | 'green' | 'default' | 'neutral' | 'transparent';
|
|
5
5
|
active?: boolean;
|
|
6
6
|
}
|
|
7
7
|
export declare const Button: FC<ButtonProps>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),r=require("react"),a=require("../utils/genericFunctions/classNames.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(r);exports.Button=function(r){var t=r.children,o=r.variant,s=r.active,i=void 0!==s&&s,c=r.className,u=void 0===c?"":c,g=e.__rest(r,["children","variant","active","className"]),d={base:"flex font-sans font-light content-center items-center justify-center tracking-wide duration-200 transform outline-none focus:ring-2 focus:z-20 focus:ring-offset-2 disabled:opacity-75 text-white border border-transparent focus:ring-offset-black rounded-full text-sm leading-4 h-12 w-12 col-start-auto transition-color shrink-0",variant:{red:"bg-red-600 hover:bg-red-700 focus:ring-red-500",green:"bg-green-600 hover:bg-green-700 focus:ring-green-500",default:"hover:bg-gray-500 focus:ring-gray-500",neutral:"bg-transparent hover:bg-gray-500 hover:border-gray-500 border border-gray-700 focus:ring-0",transparent:"bg-transparent hover:bg-gray-500 focus:ring-gray-500"},background:{base:{default:"bg-gray-700"},active:{default:"bg-gray-500"}}};return n.default.createElement(n.default.Fragment,null,n.default.createElement("button",e.__assign({"data-stop-propagation":!0,className:a.classNames(i&&d.background.active[o]?d.background.active[o]:d.background.base[o]&&d.background.base[o],d.base,o&&d.variant[o],u&&u)},g),t))};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant: 'red' | 'green' | 'default' | 'neutral'\n active?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({ children, variant, active = false, ...props }) => {\n const styles = {\n base: 'flex content-center items-center justify-center
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC, ReactNode, ComponentPropsWithRef } from 'react'\nimport { classNames } from '../utils'\n\ninterface ButtonProps extends ComponentPropsWithRef<'button'> {\n children: ReactNode\n variant: 'red' | 'green' | 'default' | 'neutral' | 'transparent'\n active?: boolean\n}\n\nexport const Button: FC<ButtonProps> = ({ children, variant, active = false, className = '', ...props }) => {\n const styles = {\n base: 'flex font-sans font-light content-center items-center justify-center tracking-wide duration-200 transform outline-none focus:ring-2 focus:z-20 focus:ring-offset-2 disabled:opacity-75 text-white border border-transparent focus:ring-offset-black rounded-full text-sm leading-4 h-12 w-12 col-start-auto transition-color shrink-0',\n variant: {\n red: 'bg-red-600 hover:bg-red-700 focus:ring-red-500',\n green: 'bg-green-600 hover:bg-green-700 focus:ring-green-500',\n default: 'hover:bg-gray-500 focus:ring-gray-500',\n neutral:\n 'bg-transparent hover:bg-gray-500 hover:border-gray-500 border border-gray-700 focus:ring-0',\n transparent: 'bg-transparent hover:bg-gray-500 focus:ring-gray-500',\n },\n background: {\n base: {\n default: 'bg-gray-700',\n },\n active: {\n default: 'bg-gray-500',\n },\n },\n }\n\n return (\n <>\n <button\n data-stop-propagation={true}\n className={classNames(\n active && styles.background.active[variant]\n ? styles.background.active[variant]\n : styles.background.base[variant] && styles.background.base[variant],\n styles.base,\n variant && styles.variant[variant],\n className && className\n )}\n {...props}\n >\n {children}\n </button>\n </>\n )\n}\n"],"names":["_a","children","variant","_b","active","_c","className","props","__rest","styles","base","red","green","default","neutral","transparent","background","React","createElement","Fragment","__assign","classNames"],"mappings":"kSAYuC,SAACA,GAAE,IAAAC,aAAUC,YAASC,EAAAH,EAAAI,OAAAA,OAAS,IAAAD,KAAOE,EAAAL,EAAAM,UAAAA,OAAY,IAAAD,EAAA,KAAOE,EAAxDC,EAAAA,OAAAR,EAAA,CAAA,WAAA,UAAA,SAAA,cAChCS,EAAS,CACbC,KAAM,wUACNR,QAAS,CACPS,IAAK,iDACLC,MAAO,uDACPC,QAAS,wCACTC,QACE,6FACFC,YAAa,wDAEfC,WAAY,CACVN,KAAM,CACJG,QAAS,eAEXT,OAAQ,CACNS,QAAS,iBAKf,OACEI,UAAAC,cAAAD,EAAA,QAAAE,SAAA,KACEF,EAAAA,QAAAC,cAAA,SAAAE,EAAAA,SAAA,CAAA,yBACyB,EACvBd,UAAWe,EAAAA,WACTjB,GAAUK,EAAOO,WAAWZ,OAAOF,GAC/BO,EAAOO,WAAWZ,OAAOF,GACzBO,EAAOO,WAAWN,KAAKR,IAAYO,EAAOO,WAAWN,KAAKR,GAC9DO,EAAOC,KACPR,GAAWO,EAAOP,QAAQA,GAC1BI,GAAaA,IAEXC,GAEHN,GAIT"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("./Timer.js");require("../../node_modules/framer-motion/dist/cjs/index.js");var r=require("../../_virtual/index2.js"),a=require("../../node_modules/react-redux/es/hooks/useSelector.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=i(e);exports.default=function(e){var i=e.isVisible,n=a.useSelector((function(e){return e.currentCall})).displayName;return s.default.createElement(r.__exports.AnimatePresence,null,i&&s.default.createElement(r.__exports.motion.div,{className:"absolute w-full bg-gray-500 flex justify-between text-white -mt-10 -z-10 font-sans px-6 pt-3",style:{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",height:"60px"},initial:{y:60},animate:{y:0},exit:{y:60,transitionEnd:{display:"none"}},transition:{duration:.3}},s.default.createElement("div",{className:"font-bold"},n),s.default.createElement("div",{className:""},s.default.createElement(t.default,{size:"small"}))))};
|
|
2
|
+
//# sourceMappingURL=BackCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackCall.js","sources":["../../../src/components/CallView/BackCall.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport Timer from './Timer'\nimport { motion, AnimatePresence } from 'framer-motion/dist/cjs'\n\nconst BackCall: FC<BackCallTypes> = ({ isVisible }) => {\n const { displayName } = useSelector((state: RootState) => state.currentCall)\n\n return (\n <AnimatePresence>\n {isVisible && (\n <motion.div\n className='absolute w-full bg-gray-500 flex justify-between text-white -mt-10 -z-10 font-sans px-6 pt-3'\n style={{ borderTopLeftRadius: '20px', borderTopRightRadius: '20px', height: '60px' }}\n initial={{ y: 60 }}\n animate={{ y: 0 }}\n exit={{\n y: 60,\n transitionEnd: {\n display: 'none',\n },\n }}\n transition={{ duration: 0.3 }}\n >\n <div className='font-bold'>{displayName}</div>\n <div className=''>\n <Timer size='small' />\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n\nexport default BackCall\n\ninterface BackCallTypes {\n isVisible: boolean\n}\n"],"names":["_a","isVisible","displayName","useSelector","state","currentCall","React","AnimatePresence","__exports","createElement","motion","div","className","style","borderTopLeftRadius","borderTopRightRadius","height","initial","y","animate","exit","transitionEnd","display","transition","duration","Timer","size"],"mappings":"4bASoC,SAACA,GAAE,IAAAC,EAASD,EAAAC,UACtCC,EAAgBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,2BAEhE,OACEC,wBAACC,EAAeC,UAAAD,gBAAA,KACbN,GACCK,EAAC,QAAAG,cAAAC,EAAAA,UAAAA,OAAOC,KACNC,UAAU,+FACVC,MAAO,CAAEC,oBAAqB,OAAQC,qBAAsB,OAAQC,OAAQ,QAC5EC,QAAS,CAAEC,EAAG,IACdC,QAAS,CAAED,EAAG,GACdE,KAAM,CACJF,EAAG,GACHG,cAAe,CACbC,QAAS,SAGbC,WAAY,CAAEC,SAAU,KAExBlB,EAAA,QAAAG,cAAA,MAAA,CAAKG,UAAU,aAAaV,GAC5BI,EAAAA,QAAKG,cAAA,MAAA,CAAAG,UAAU,IACbN,UAACG,cAAAgB,EAAAA,QAAM,CAAAC,KAAK,YAMxB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../styles/Island.styles.js"),r=require("../../node_modules/react-moment/dist/index.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=n(e);exports.default=function(){var n=e.useState(0),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js");var t=require("../../styles/Island.styles.js"),r=require("../../node_modules/react-moment/dist/index.js"),u=require("../../node_modules/react-redux/es/hooks/useSelector.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=n(e);exports.default=function(n){var s=n.size,l=void 0===s?"large":s,i=e.useState(0),o=i[0],d=i[1],c=u.useSelector((function(e){return e.currentCall})).startTime,m=u.useSelector((function(e){return e.island})).isOpen;return e.useEffect((function(){if(c){var e=(new Date).getTime()/1e3-Number(c);e<0&&d(e)}}),[c]),a.default.createElement(a.default.Fragment,null,null!=c&&a.default.createElement(t.StyledTimer,{isOpen:m,size:l},a.default.createElement(r.default,{date:Number(c)+o||(new Date).getTime()/1e3,interval:1e3,format:"h:mm:ss",trim:!1,unix:!0,durationFromNow:!0})))};
|
|
2
2
|
//# sourceMappingURL=Timer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.js","sources":["../../../src/components/CallView/Timer.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect, type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledTimer } from '../../styles/Island.styles'\nimport Moment from 'react-moment'\n\nconst Timer: FC = () => {\n // Set timer negative differences\n const [timerNegativeDifference, setTimerNegativeDifference] = useState<number>(0)\n // Get multiple values from the currentCall store\n const { startTime } = useSelector((state: RootState) => state.currentCall)\n // Get isOpen from the island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n useEffect(() => {\n if (startTime) {\n const difference = new Date().getTime() / 1000 - Number(startTime)\n if (difference < 0) {\n setTimerNegativeDifference(difference)\n }\n }\n }, [startTime])\n\n return (\n <>\n {startTime != null && (\n <StyledTimer isOpen={isOpen}>\n <Moment\n date={Number(startTime) + timerNegativeDifference || new Date().getTime() / 1000}\n interval={1000}\n format='h:mm:ss'\n trim={false}\n unix\n durationFromNow\n />\n </StyledTimer>\n )}\n </>\n )\n}\n\nexport default Timer\n"],"names":["_a","useState","timerNegativeDifference","setTimerNegativeDifference","startTime","useSelector","state","currentCall","isOpen","island","useEffect","difference","Date","getTime","Number","React","createElement","Fragment","StyledTimer","Moment","date","interval","format","trim","unix","durationFromNow"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Timer.js","sources":["../../../src/components/CallView/Timer.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useEffect, type FC } from 'react'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { StyledTimer } from '../../styles/Island.styles'\nimport Moment from 'react-moment'\n\nconst Timer: FC<TimerProps> = ({ size = 'large' }) => {\n // Set timer negative differences\n const [timerNegativeDifference, setTimerNegativeDifference] = useState<number>(0)\n // Get multiple values from the currentCall store\n const { startTime } = useSelector((state: RootState) => state.currentCall)\n // Get isOpen from the island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n useEffect(() => {\n if (startTime) {\n const difference = new Date().getTime() / 1000 - Number(startTime)\n if (difference < 0) {\n setTimerNegativeDifference(difference)\n }\n }\n }, [startTime])\n\n return (\n <>\n {startTime != null && (\n <StyledTimer isOpen={isOpen} size={size}>\n <Moment\n date={Number(startTime) + timerNegativeDifference || new Date().getTime() / 1000}\n interval={1000}\n format='h:mm:ss'\n trim={false}\n unix\n durationFromNow\n />\n </StyledTimer>\n )}\n </>\n )\n}\n\nexport default Timer\n\nexport interface TimerProps {\n size?: 'small' | 'large'\n}\n"],"names":["_a","_b","size","_c","useState","timerNegativeDifference","setTimerNegativeDifference","startTime","useSelector","state","currentCall","isOpen","island","useEffect","difference","Date","getTime","Number","React","createElement","Fragment","StyledTimer","Moment","date","interval","format","trim","unix","durationFromNow"],"mappings":"kaAS8B,SAACA,GAAE,IAAAC,EAAAD,EAAAE,KAAAA,OAAO,IAAAD,EAAA,QAAOA,EAEvCE,EAAwDC,EAAAA,SAAiB,GAAxEC,EAAuBF,EAAA,GAAEG,EAA0BH,EAAA,GAElDI,EAAcC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,yBAEtDC,EAAWH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,iBAW3D,OATAC,EAAAA,WAAU,WACR,GAAIN,EAAW,CACb,IAAMO,GAAa,IAAIC,MAAOC,UAAY,IAAOC,OAAOV,GACpDO,EAAa,GACfR,EAA2BQ,EAE9B,CACH,GAAG,CAACP,IAGFW,EAAAA,QACGC,cAAAD,EAAAA,QAAAE,SAAA,KAAa,MAAbb,GACCW,EAAAA,QAAAC,cAACE,EAAAA,YAAW,CAACV,OAAQA,EAAQT,KAAMA,GACjCgB,EAAAA,QAAAC,cAACG,UACC,CAAAC,KAAMN,OAAOV,GAAaF,IAA2B,IAAIU,MAAOC,UAAY,IAC5EQ,SAAU,IACVC,OAAO,UACPC,MAAM,EACNC,QACAC,iBAAe,KAM3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../../styles/Island.styles.js");require("../../node_modules/react-redux/es/index.js");var r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),l=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),n=require("../../lib/phone/call.js");require("../../node_modules/socket.io-client/build/esm/index.js"),require("../../store/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../lib/webrtc/janus.js"),require("../../node_modules/mic-check/lib/index.js"),require("../Island.js");var a=require("../Button.js"),u=require("../AudioBars.js"),s=require("./Timer.js"),i=require("./Number.js"),o=require("./DisplayName.js"),d=require("./Avatar.js"),c=require("./Actions.js"),m=require("../../node_modules/react-redux/es/hooks/useSelector.js");function f(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=f(e);function g(e,t){return!e&&!t}exports.default=function(){var e=m.useSelector((function(e){return e.currentCall})),f=e.incoming,q=e.accepted,p=e.outgoing,E=m.useSelector((function(e){return e.island})).isOpen,v=m.useSelector((function(e){return e.webrtc})).remoteAudioStream;return j.default.createElement(t.StyledCallView,{incoming:f,accepted:q,outgoing:p,isOpen:E},j.default.createElement(t.StyledTopContent,{isOpen:E,incoming:f,accepted:q,outgoing:p},j.default.createElement(d.default,null),E&&j.default.createElement(t.StyledDetails,null,j.default.createElement(o.default,null),q?j.default.createElement(s.default,null):j.default.createElement(i.default,null)),!E&&!q&&j.default.createElement(o.default,null),!E&&q&&j.default.createElement(s.default,null),q&&v&&j.default.createElement(u.AudioBars,{audioStream:v,size:E?"large":"small"})),E&&j.default.createElement("div",{className:"grid gap-y-5"},q&&j.default.createElement(c.default,null),j.default.createElement("div",{className:"grid ".concat(g(p,q)?"grid-cols-2":q?"grid-cols-1 justify-items-center":"grid-cols-1 justify-items-end"," gap-3.5")},j.default.createElement(a.Button,{onClick:n.hangupCurrentCall,variant:"red"},j.default.createElement(r.FontAwesomeIcon,{className:"rotate-135 w-6 h-6",icon:l.faPhone})),g(p,q)&&j.default.createElement(a.Button,{onClick:n.answerIncomingCall,variant:"green"},j.default.createElement(r.FontAwesomeIcon,{className:"w-6 h-6",icon:l.faPhone})))))};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/CallView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { StyledDetails, StyledCallView, StyledTopContent } from '../../styles/Island.styles'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../../store'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { Button } from '../'\nimport Timer from './Timer'\nimport Number from './Number'\nimport DisplayName from './DisplayName'\nimport { AudioBars } from '../'\nimport { hangupCurrentCall, answerIncomingCall } from '../../lib/phone/call'\nimport Avatar from './Avatar'\nimport Actions from './Actions'\n\nfunction isAnswerVisible(outgoing: boolean, accepted: boolean): boolean {\n return !outgoing && !accepted\n}\n\n/**\n * The main view to manage calls, the starting point for calls actions flows\n */\nconst CallView: FC<CallViewProps> = () => {\n // Get multiple values from currentCall store\n const { incoming, accepted, outgoing } = useSelector((state: RootState) => state.currentCall)\n // Get isOpen and view from island store\n const { isOpen } = useSelector((state: RootState) => state.island)\n\n // Retrieve the audio stream from the webrtc store\n const { remoteAudioStream } = useSelector((state: RootState) => state.webrtc)\n\n return (\n <StyledCallView incoming={incoming} accepted={accepted} outgoing={outgoing} isOpen={isOpen}>\n <StyledTopContent isOpen={isOpen} incoming={incoming} accepted={accepted} outgoing={outgoing}>\n <Avatar />\n {isOpen && (\n <StyledDetails>\n <DisplayName />\n {/* The timer when expanded */}\n {accepted ? <Timer /> : <Number />}\n </StyledDetails>\n )}\n {/* The display name when collepsed */}\n {!isOpen && !accepted && <DisplayName />}\n {/* The timer when collapsed */}\n {!isOpen && accepted && <Timer />}\n {accepted && remoteAudioStream && (\n <AudioBars audioStream={remoteAudioStream} size={isOpen ? 'large' : 'small'} />\n )}\n </StyledTopContent>\n {isOpen && (\n <div className='grid gap-y-5'>\n {accepted && <Actions />}\n <div\n className={`grid ${\n isAnswerVisible(outgoing, accepted)\n ? 'grid-cols-2'\n : accepted\n ? 'grid-cols-1 justify-items-center'\n : 'grid-cols-1 justify-items-end'\n } gap-3.5`}\n >\n {/* The button to hangup the currentCall */}\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='rotate-135 w-6 h-6' icon={faPhone} />\n </Button>\n {/* The button to answer the incoming call */}\n {isAnswerVisible(outgoing, accepted) && (\n <Button onClick={answerIncomingCall} variant='green'>\n <FontAwesomeIcon className='w-6 h-6' icon={faPhone} />\n </Button>\n )}\n </div>\n </div>\n )}\n </StyledCallView>\n )\n}\n\nexport default CallView\n\nexport interface CallViewProps {}\n"],"names":["isAnswerVisible","outgoing","accepted","_a","useSelector","state","currentCall","incoming","isOpen","island","remoteAudioStream","webrtc","React","createElement","StyledCallView","StyledTopContent","Avatar","StyledDetails","DisplayName","Timer","Number","AudioBars","audioStream","size","className","Actions","concat","Button","onClick","hangupCurrentCall","variant","FontAwesomeIcon","icon","faPhone","answerIncomingCall"],"mappings":"4+BAkBA,SAASA,EAAgBC,EAAmBC,GAC1C,OAAQD,IAAaC,CACvB,iBAKoC,WAE5B,IAAAC,EAAmCC,EAAAA,aAAY,SAACC,GAAqB,OAAAA,EAAMC,eAAzEC,EAAQJ,EAAAI,SAAEL,EAAQC,EAAAD,SAAED,EAAQE,EAAAF,SAE5BO,EAAWJ,eAAY,SAACC,GAAqB,OAAAA,EAAMI,iBAGnDC,EAAsBN,eAAY,SAACC,GAAqB,OAAAA,EAAMM,4BAEtE,OACEC,UAACC,cAAAC,EAAcA,gBAACP,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,EAAUO,OAAQA,GAClFI,EAAAA,QAAAC,cAACE,mBAAiB,CAAAP,OAAQA,EAAQD,SAAUA,EAAUL,SAAUA,EAAUD,SAAUA,GAClFW,UAAAC,cAACG,EAAM,QAAG,MACTR,GACCI,EAAA,QAAAC,cAACI,EAAAA,cAAa,KACZL,UAAAC,cAACK,EAAW,QAAG,MAEdhB,EAAWU,EAAA,QAAAC,cAACM,EAAAA,QAAK,MAAMP,EAAA,QAAAC,cAACO,EAAAA,QAAM,QAIjCZ,IAAWN,GAAYU,EAAA,QAAAC,cAACK,EAAW,QAAG,OAEtCV,GAAUN,GAAYU,EAAAA,QAAAC,cAACM,EAAAA,QAAQ,MAChCjB,GAAYQ,GACXE,EAAAA,QAAAC,cAACQ,EAASA,UAAC,CAAAC,YAAaZ,EAAmBa,KAAMf,EAAS,QAAU,WAGvEA,GACCI,EAAK,QAAAC,cAAA,MAAA,CAAAW,UAAU,gBACZtB,GAAYU,EAAC,QAAAC,cAAAY,EAAAA,QAAU,MACxBb,UACEC,cAAA,MAAA,CAAAW,UAAW,QACTE,OAAA1B,EAAgBC,EAAUC,GACtB,cACAA,EACA,mCACA,gCACI,aAGVU,EAAC,QAAAC,cAAAc,UAAOC,QAASC,EAAiBA,kBAAEC,QAAQ,OAC1ClB,UAACC,cAAAkB,EAAAA,gBAAgB,CAAAP,UAAU,qBAAqBQ,KAAMC,EAAOA,WAG9DjC,EAAgBC,EAAUC,IACzBU,UAAAC,cAACc,EAAMA,OAAA,CAACC,QAASM,qBAAoBJ,QAAQ,SAC3ClB,EAAAA,QAAAC,cAACkB,kBAAgB,CAAAP,UAAU,UAAUQ,KAAMC,EAAAA,aAQ3D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react");require("../node_modules/react-redux/es/index.js");var r=require("../utils/customHooks/useIsomorphicLayoutEffect.js"),n=require("../utils/customHooks/useLocalStorage.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../node_modules/tslib/tslib.es6.js"),t=require("react");require("../node_modules/react-redux/es/index.js");var r=require("../utils/customHooks/useIsomorphicLayoutEffect.js"),n=require("../utils/customHooks/useLocalStorage.js"),a=require("../utils/customHooks/useLongPress.js"),l=require("../utils/genericFunctions/styleTransformValues.js");require("../node_modules/framer-motion/dist/framer-motion.js");var o=require("./CallView/index.js"),u=require("./KeyboardView/index.js"),i=require("../lib/island/island.js"),s=require("./AlertGuard.js"),d=require("./CallView/BackCall.js"),c=require("./ViewsTransition.js"),f=require("../_virtual/framer-motion.js"),m=require("../node_modules/react-redux/es/hooks/useSelector.js"),p=require("../node_modules/react-redux/es/hooks/useDispatch.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var x=y(t),v=function(y){var v=y.showAlways,w=m.useSelector((function(e){return e.currentCall})),g=w.incoming,E=w.accepted,h=w.outgoing,V=m.useSelector((function(e){return e.island})),j=V.isOpen,b=V.startPosition,q=V.view,k=m.useSelector((function(e){return e.alerts.status})).activeAlertsCount,P=m.useSelector((function(e){return e.animations})).variants,A=m.useSelector((function(e){return e.player})).audioPlayerLoop,S=f.framerMotion.exports.useDragControls(),_=n.useLocalStorage("phone-island",null),C=_[0],I=_[1],D=t.useRef(null),L=t.useRef(null),R=t.useState(C&&C.position?C.position:null),M=R[0],N=R[1],T=t.useState(!1),W=T[0],F=T[1],H=p.useDispatch();var O=a.useLongPress((function(){}),(function(){H.island.toggleIsOpen()}),W,(function(){return F(!1)}),{shouldPreventDefault:!0,delay:250}),G=t.useRef(null),z=t.useRef(null),B=t.useRef(null),K=t.useRef(null),J=t.useRef(null);r.useIsomorphicLayoutEffect((function(){H.player.updatePlayer({audioPlayer:G.current,localAudio:z.current,localVideo:K.current,remoteVideo:J.current,remoteAudio:B.current})}),[]),t.useEffect((function(){(g||h)&&H.island.setIslandView("call")}),[g,h]);var Q=t.useState(""),U=Q[0],X=Q[1];return t.useEffect((function(){setTimeout((function(){X(q)}),200)}),[q]),x.default.createElement("div",{ref:L,className:"absolute min-w-full min-h-full left-0 top-0 overflow-hidden pointer-events-none flex items-center justify-center content-center phone-island-container z-1000"},(g||h||E||v||k>0)&&x.default.createElement(x.default.Fragment,null,x.default.createElement(f.framerMotion.exports.motion.div,e.__assign({drag:!0,onPointerDown:function(e){S.start(e)},onDragStart:function(){F(!0)},dragTransition:{power:0},initial:{x:(null==M?void 0:M.x)||b.x,y:(null==M?void 0:M.y)||b.y},dragControls:S,dragConstraints:L,onDragEnd:function(){var e=l.styleTransformValues(D.current),t=e.x,r=e.y;t=i.xPosition(Math.round(t),D.current,L.current),r=i.yPosition(Math.round(r),D.current,L.current),I({position:{x:t,y:r}}),N({x:t,y:r})},ref:D},O,{className:"absolute"}),x.default.createElement(d.default,{isVisible:"keyboard"===q}),x.default.createElement(f.framerMotion.exports.motion.div,{className:"font-sans pointer-events-auto overflow-hidden bg-black text-xs cursor-pointer text-white",animate:"call"===q?j&&(g||h)&&!E?k>0?P.callView.expandedIncomingWithAlerts:P.callView.expandedIncoming:j&&E?k>0?P.callView.expandedAcceptedWithAlerts:P.callView.expandedAccepted:k>0?P.expandedWithAlerts:P.callView.collapsed:"keyboard"===q?j&&k>0?P.keyboardView.expandedWithAlerts:j&&0===k?P.keyboardView.expanded:j?"":P.keyboardView.collapsed:""},x.default.createElement(s.AlertGuard,null,"call"===U?x.default.createElement(c.default,{forView:"call"},x.default.createElement(o.default,null)):"keyboard"===U?x.default.createElement(c.default,{forView:"keyboard"},x.default.createElement(u.default,null)):x.default.createElement(x.default.Fragment,null))))),x.default.createElement("div",{className:"hidden"},x.default.createElement("audio",{loop:A,ref:G}),x.default.createElement("audio",{muted:!0,ref:z}),x.default.createElement("audio",{autoPlay:!0,ref:B}),x.default.createElement("video",{muted:!0,autoPlay:!0,ref:K}),x.default.createElement("video",{autoPlay:!0,ref:J})))};v.displayName="Island",exports.Island=v;
|
|
2
2
|
//# sourceMappingURL=Island.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport {\n useLongPress,\n useIsomorphicLayoutEffect,\n useLocalStorage,\n styleTransformValues,\n} from '../utils'\nimport { motion, useDragControls } from 'framer-motion/dist/framer-motion'\nimport CallView from './CallView'\nimport { xPosition, yPosition } from '../lib/island/island'\nimport { AlertGuard } from './AlertGuard'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n *\n */\nexport const Island: FC<IslandProps> = ({ showAlways }) => {\n // Get the currentCall info\n const { incoming, accepted, outgoing } = useSelector((state: RootState) => state.currentCall)\n // Get isOpen from island store\n const { isOpen, startPosition } = useSelector((state: RootState) => state.island)\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n // Get variants from animations store\n const { variants } = useSelector((state: RootState) => state.animations)\n\n // Initialize Island drag controls\n const controls = useDragControls()\n\n // Initialize Island storage\n const [phoneIslandStorage, setPhoneIslandStorage] =\n useLocalStorage<PhoneIslandStorageTypes | null>('phone-island', null)\n\n // The Island reference\n const islandRef = useRef<any>(null)\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize position or get from storage\n const [position, setPosition] = useState<PositionTypes | null>(\n phoneIslandStorage && phoneIslandStorage.position ? phoneIslandStorage.position : null,\n )\n\n // Initialize the moved property\n const [moved, setMoved] = useState<boolean>(false)\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n // Handles the drag started event\n function handleStartDrag(event) {\n controls.start(event)\n }\n // Handles log press event\n const handleLongPress = () => {}\n\n // Handle Island click\n const handleIslandClick = () => {\n dispatch.island.toggleIsOpen()\n }\n\n // Handles drag end event\n const handleDragEnd = () => {\n // Get initial transform values\n let { x, y }: any = styleTransformValues(islandRef.current)\n // Round position\n x = xPosition(Math.round(x), islandRef.current, islandContainerRef.current)\n y = yPosition(Math.round(y), islandRef.current, islandContainerRef.current)\n // Save the new position to localstorage\n setPhoneIslandStorage({\n position: {\n x,\n y,\n },\n })\n // Set position to variable\n setPosition({\n x,\n y,\n })\n }\n\n // Handles drag started event\n function handleDragStarted() {\n setMoved(true)\n }\n\n // Initialize the longPressEvent object\n const longPressEvent = useLongPress(\n handleLongPress,\n handleIslandClick,\n moved,\n () => setMoved(false),\n {\n shouldPreventDefault: true,\n delay: 250,\n },\n )\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n const localVideo = useRef<HTMLVideoElement>(null)\n const remoteVideo = useRef<HTMLVideoElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer.current,\n localAudio: localAudio.current,\n localVideo: localVideo.current,\n remoteVideo: remoteVideo.current,\n remoteAudio: remoteAudio.current,\n })\n }, [])\n\n return (\n <div\n ref={islandContainerRef}\n className='absolute min-w-full min-h-full left-0 top-0 overflow-hidden pointer-events-none flex items-center justify-center content-center phone-island-container z-1000'\n >\n {(incoming || outgoing || accepted || showAlways || activeAlertsCount > 0) && (\n <motion.div\n className='font-sans absolute pointer-events-auto overflow-hidden bg-black text-xs cursor-pointer text-white'\n animate={\n isOpen && (incoming || outgoing) && !accepted\n ? // The call is incoming or outgoing\n activeAlertsCount > 0\n ? variants.callView.expandedIncomingWithAlerts\n : variants.callView.expandedIncoming\n : isOpen && accepted\n ? // The call is accepted and the island is expanded\n activeAlertsCount > 0\n ? variants.callView.expandedAcceptedWithAlerts\n : variants.callView.expandedAccepted\n : activeAlertsCount > 0\n ? variants.expandedWithAlerts\n : variants.callView.collapsed\n }\n drag\n onPointerDown={handleStartDrag}\n onDragStart={handleDragStarted}\n dragTransition={{\n power: 0,\n }}\n initial={{\n x: position?.x || startPosition.x,\n y: position?.y || startPosition.y,\n }}\n dragControls={controls}\n dragConstraints={islandContainerRef}\n onDragEnd={handleDragEnd}\n ref={islandRef}\n {...longPressEvent}\n >\n {/* The views logic */}\n <AlertGuard>\n <CallView />\n </AlertGuard>\n </motion.div>\n )}\n <div className='hidden'>\n <audio ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n <video muted={true} autoPlay ref={localVideo}></video>\n <video autoPlay ref={remoteVideo}></video>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n}\n\ninterface PositionTypes {\n x: number\n y: number\n}\n\ninterface PhoneIslandStorageTypes {\n position: PositionTypes\n}\n"],"names":["Island","_a","showAlways","_b","useSelector","state","currentCall","incoming","accepted","outgoing","_c","island","isOpen","startPosition","activeAlertsCount","alerts","status","variants","animations","controls","useDragControls","_d","useLocalStorage","phoneIslandStorage","setPhoneIslandStorage","islandRef","useRef","islandContainerRef","_e","useState","position","setPosition","_f","moved","setMoved","dispatch","useDispatch","longPressEvent","useLongPress","toggleIsOpen","shouldPreventDefault","delay","audioPlayer","localAudio","remoteAudio","localVideo","remoteVideo","useIsomorphicLayoutEffect","player","updatePlayer","current","React","ref","className","motion","framerMotion","exports","div","__assign","animate","callView","expandedIncomingWithAlerts","expandedIncoming","expandedAcceptedWithAlerts","expandedAccepted","expandedWithAlerts","collapsed","drag","onPointerDown","event","start","onDragStart","dragTransition","power","initial","x","y","dragControls","dragConstraints","onDragEnd","styleTransformValues","xPosition","Math","round","yPosition","createElement","AlertGuard","CallView","muted","autoPlay","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Island.js","sources":["../../src/components/Island.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { useState, useRef, useEffect, type FC } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { RootState, Dispatch } from '../store'\nimport {\n useLongPress,\n useIsomorphicLayoutEffect,\n useLocalStorage,\n styleTransformValues,\n} from '../utils'\nimport { motion, useDragControls } from 'framer-motion/dist/framer-motion'\nimport CallView from './CallView'\nimport KeyboardView from './KeyboardView'\nimport { xPosition, yPosition } from '../lib/island/island'\nimport { AlertGuard } from './AlertGuard'\nimport BackCall from './CallView/BackCall'\nimport ViewsTransition from './ViewsTransition'\n\n/**\n * Provides the Island logic\n *\n * @param showAlways Sets the Island ever visible\n *\n */\nexport const Island: FC<IslandProps> = ({ showAlways }) => {\n // Get the currentCall info\n const { incoming, accepted, outgoing } = useSelector((state: RootState) => state.currentCall)\n // Get isOpen from island store\n const { isOpen, startPosition, view } = useSelector((state: RootState) => state.island)\n // Get activeAlertsCount from island store\n const { activeAlertsCount } = useSelector((state: RootState) => state.alerts.status)\n // Get variants from animations store\n const { variants } = useSelector((state: RootState) => state.animations)\n // Get audioPlayerLoop value from player store\n const { audioPlayerLoop } = useSelector((state: RootState) => state.player)\n\n // Initialize Island drag controls\n const controls = useDragControls()\n\n // Initialize Island storage\n const [phoneIslandStorage, setPhoneIslandStorage] =\n useLocalStorage<PhoneIslandStorageTypes | null>('phone-island', null)\n\n // The Island reference\n const islandRef = useRef<any>(null)\n // The Container reference\n const islandContainerRef = useRef<any>(null)\n\n // Initialize position or get from storage\n const [position, setPosition] = useState<PositionTypes | null>(\n phoneIslandStorage && phoneIslandStorage.position ? phoneIslandStorage.position : null,\n )\n\n // Initialize the moved property\n const [moved, setMoved] = useState<boolean>(false)\n // Initialize useDispatch\n const dispatch = useDispatch<Dispatch>()\n\n // Handles the drag started event\n function handleStartDrag(event) {\n controls.start(event)\n }\n // Handles log press event\n const handleLongPress = () => {}\n\n // Handle Island click\n const handleIslandClick = () => {\n dispatch.island.toggleIsOpen()\n }\n\n // Handles drag end event\n const handleDragEnd = () => {\n // Get initial transform values\n let { x, y }: any = styleTransformValues(islandRef.current)\n // Round position\n x = xPosition(Math.round(x), islandRef.current, islandContainerRef.current)\n y = yPosition(Math.round(y), islandRef.current, islandContainerRef.current)\n // Save the new position to localstorage\n setPhoneIslandStorage({\n position: {\n x,\n y,\n },\n })\n // Set position to variable\n setPosition({\n x,\n y,\n })\n }\n\n // Handles drag started event\n function handleDragStarted() {\n setMoved(true)\n }\n\n // Initialize the longPressEvent object\n const longPressEvent = useLongPress(\n handleLongPress,\n handleIslandClick,\n moved,\n () => setMoved(false),\n {\n shouldPreventDefault: true,\n delay: 250,\n },\n )\n\n const audioPlayer = useRef<HTMLAudioElement>(null)\n const localAudio = useRef<HTMLAudioElement>(null)\n const remoteAudio = useRef<HTMLAudioElement>(null)\n const localVideo = useRef<HTMLVideoElement>(null)\n const remoteVideo = useRef<HTMLVideoElement>(null)\n\n useIsomorphicLayoutEffect(() => {\n dispatch.player.updatePlayer({\n audioPlayer: audioPlayer.current,\n localAudio: localAudio.current,\n localVideo: localVideo.current,\n remoteVideo: remoteVideo.current,\n remoteAudio: remoteAudio.current,\n })\n }, [])\n\n // Handle and apply view switch logic\n useEffect(() => {\n if (incoming || outgoing) {\n dispatch.island.setIslandView('call')\n }\n }, [incoming, outgoing])\n\n const [currentView, setCurrentView] = useState<any>('')\n\n useEffect(() => {\n setTimeout(() => {\n setCurrentView(view)\n }, 200)\n }, [view])\n\n return (\n <div\n ref={islandContainerRef}\n className='absolute min-w-full min-h-full left-0 top-0 overflow-hidden pointer-events-none flex items-center justify-center content-center phone-island-container z-1000'\n >\n {(incoming || outgoing || accepted || showAlways || activeAlertsCount > 0) && (\n <>\n <motion.div\n drag\n onPointerDown={handleStartDrag}\n onDragStart={handleDragStarted}\n dragTransition={{\n power: 0,\n }}\n initial={{\n x: position?.x || startPosition.x,\n y: position?.y || startPosition.y,\n }}\n dragControls={controls}\n dragConstraints={islandContainerRef}\n onDragEnd={handleDragEnd}\n ref={islandRef}\n {...longPressEvent}\n className='absolute'\n >\n {/* Add background call visibility logic */}\n <BackCall isVisible={view === 'keyboard'} />\n <motion.div\n className='font-sans pointer-events-auto overflow-hidden bg-black text-xs cursor-pointer text-white'\n animate={\n view === 'call'\n ? isOpen && (incoming || outgoing) && !accepted\n ? // The call is incoming or outgoing\n activeAlertsCount > 0\n ? variants.callView.expandedIncomingWithAlerts\n : variants.callView.expandedIncoming\n : isOpen && accepted\n ? // The call is accepted and the island is expanded\n activeAlertsCount > 0\n ? variants.callView.expandedAcceptedWithAlerts\n : variants.callView.expandedAccepted\n : activeAlertsCount > 0\n ? variants.expandedWithAlerts\n : variants.callView.collapsed\n : view === 'keyboard'\n ? isOpen && activeAlertsCount > 0\n ? variants.keyboardView.expandedWithAlerts\n : isOpen && activeAlertsCount === 0\n ? variants.keyboardView.expanded\n : !isOpen\n ? variants.keyboardView.collapsed\n : ''\n : ''\n }\n >\n {/* The views logic */}\n <AlertGuard>\n {currentView === 'call' ? (\n <ViewsTransition forView='call'>\n <CallView />\n </ViewsTransition>\n ) : currentView === 'keyboard' ? (\n <ViewsTransition forView='keyboard'>\n <KeyboardView />\n </ViewsTransition>\n ) : (\n <></>\n )}\n </AlertGuard>\n </motion.div>\n </motion.div>\n </>\n )}\n <div className='hidden'>\n <audio loop={audioPlayerLoop} ref={audioPlayer}></audio>\n <audio muted={true} ref={localAudio}></audio>\n <audio autoPlay ref={remoteAudio}></audio>\n <video muted={true} autoPlay ref={localVideo}></video>\n <video autoPlay ref={remoteVideo}></video>\n </div>\n </div>\n )\n}\n\nIsland.displayName = 'Island'\n\ninterface IslandProps {\n showAlways?: boolean\n}\n\ninterface PositionTypes {\n x: number\n y: number\n}\n\ninterface PhoneIslandStorageTypes {\n position: PositionTypes\n}\n"],"names":["Island","_a","showAlways","_b","useSelector","state","currentCall","incoming","accepted","outgoing","_c","island","isOpen","startPosition","view","activeAlertsCount","alerts","status","variants","animations","audioPlayerLoop","player","controls","useDragControls","_d","useLocalStorage","phoneIslandStorage","setPhoneIslandStorage","islandRef","useRef","islandContainerRef","_e","useState","position","setPosition","_f","moved","setMoved","dispatch","useDispatch","longPressEvent","useLongPress","toggleIsOpen","shouldPreventDefault","delay","audioPlayer","localAudio","remoteAudio","localVideo","remoteVideo","useIsomorphicLayoutEffect","updatePlayer","current","useEffect","setIslandView","_g","currentView","setCurrentView","setTimeout","React","ref","className","createElement","Fragment","motion","div","__assign","drag","onPointerDown","event","start","onDragStart","dragTransition","power","initial","x","y","dragControls","dragConstraints","onDragEnd","styleTransformValues","xPosition","Math","round","yPosition","BackCall","isVisible","animate","callView","expandedIncomingWithAlerts","expandedIncoming","expandedAcceptedWithAlerts","expandedAccepted","expandedWithAlerts","collapsed","keyboardView","expanded","AlertGuard","ViewsTransition","forView","CallView","KeyboardView","loop","muted","autoPlay","displayName"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/mic-check/lib/index.js"),require("../../lib/webrtc/janus.js"),require("../../store/index.js"),require("../../node_modules/webrtc-adapter/src/js/adapter_core.js"),require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/socket.io-client/build/esm/index.js"),require("../Island.js");var r=require("../Button.js");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("../AudioBars.js"),require("../../node_modules/@fortawesome/react-fontawesome/index.es.js");var u=t(e),a=Array.from(Array(9).keys()),n=["*","0","#"];exports.default=function(e){var t=e.keyCallback;return u.default.createElement("div",{className:"grid grid-cols-3 auto-cols-max gap-y-6 justify-items-center place-items-center justify-center px-3"},a.map((function(e){return u.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e+1)},variant:"default",className:"text-2xl"},e+1)})),n.map((function(e){return u.default.createElement(r.Button,{key:e+1,onClick:function(){return t(e)},variant:"default",className:"text-2xl"},e)})))};
|
|
2
|
+
//# sourceMappingURL=Actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Actions.js","sources":["../../../src/components/KeyboardView/Actions.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC } from 'react'\nimport { Button } from '../'\n\nconst keys = Array.from(Array(9).keys())\n\nconst bottomKeys = ['*', '0', '#']\n\nconst Actions: FC<ActionsTypes> = ({ keyCallback }) => {\n return (\n <div className='grid grid-cols-3 auto-cols-max gap-y-6 justify-items-center place-items-center justify-center px-3'>\n {keys.map((key) => (\n <Button\n key={key + 1}\n onClick={() => keyCallback(key + 1)}\n variant='default'\n className={'text-2xl'}\n >\n {key + 1}\n </Button>\n ))}\n {bottomKeys.map((bottomKey) => (\n <Button\n key={bottomKey + 1}\n onClick={() => keyCallback(bottomKey)}\n variant='default'\n className={'text-2xl'}\n >\n {bottomKey}\n </Button>\n ))}\n </div>\n )\n}\n\nexport default Actions\n\ninterface ActionsTypes {\n keyCallback: any\n}\n"],"names":["keys","Array","from","bottomKeys","_a","keyCallback","React","createElement","className","map","key","Button","onClick","variant","bottomKey"],"mappings":"8nBAMMA,EAAOC,MAAMC,KAAKD,MAAM,GAAGD,QAE3BG,EAAa,CAAC,IAAK,IAAK,qBAEI,SAACC,GAAE,IAAAC,EAAWD,EAAAC,YAC9C,OACEC,EAAA,QAAAC,cAAA,MAAA,CAAKC,UAAU,sGACZR,EAAKS,KAAI,SAACC,GAAQ,OACjBJ,EAAC,QAAAC,cAAAI,EAAAA,QACCD,IAAKA,EAAM,EACXE,QAAS,WAAM,OAAAP,EAAYK,EAAM,EAAE,EACnCG,QAAQ,UACRL,UAAW,YAEVE,EAAM,EAPQ,IAUlBP,EAAWM,KAAI,SAACK,GAAc,OAC7BR,EAAC,QAAAC,cAAAI,EAAAA,QACCD,IAAKI,EAAY,EACjBF,QAAS,WAAM,OAAAP,EAAYS,IAC3BD,QAAQ,UACRL,UAAW,YAEVM,EAEJ,IAGP"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("../Button.js");require("../../node_modules/react-redux/es/index.js");var n=require("../../node_modules/@nethesis/nethesis-light-svg-icons/index.mjs.js"),r=require("../../node_modules/@fortawesome/react-fontawesome/index.es.js"),a=require("./Actions.js"),s=require("../../lib/phone/call.js"),u=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),l=require("../../static/dtmf/index.js"),o=require("../../lib/webrtc/messages.js"),c=require("../../node_modules/react-redux/es/hooks/useDispatch.js"),d=require("../../node_modules/react-redux/es/hooks/useSelector.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=i(e),m=["0","1","2","3","4","5","6","7","8","9","*","#"];exports.default=function(){var i=c.useDispatch(),x=d.useSelector((function(e){return e.currentCall})).keyboardValue,p=d.useSelector((function(e){return e.island})).isOpen,v=e.useRef(x);function y(e){i.currentCall.updateKeyboardValue("".concat(v.current).concat(e)),v.current="".concat(v.current).concat(e),function(e){"*"===e&&(e="star"),"#"===e&&(e="pound"),i.player.updateAndPlayAudioPlayer({src:l.default["dtmf_".concat(e)]})}(e),o.sendDTMF(e)}return e.useEffect((function(){function e(e){m.includes(e.key)&&y(e.key)}return window.addEventListener("keydown",e),function(){return window.removeEventListener("keydown",e)}}),[]),f.default.createElement(f.default.Fragment,null,p?f.default.createElement("div",{className:"flex flex-col gap-7"},f.default.createElement("div",{className:"flex gap-4"},f.default.createElement(t.Button,{variant:"transparent",onClick:function(){i.island.setIslandView("call")}},f.default.createElement(r.FontAwesomeIcon,{size:"xl",icon:n.faArrowLeft})),f.default.createElement("input",{type:"text",readOnly:!0,value:x,autoFocus:!0,className:"w-full rounded-xl bg-black border border-gray-300 text-white font-sans font-light text-xl text-center px-2"})),f.default.createElement(a.default,{keyCallback:y}),f.default.createElement("div",{className:"flex justify-center"},f.default.createElement(t.Button,{onClick:s.hangupCurrentCall,variant:"red"},f.default.createElement(r.FontAwesomeIcon,{className:"rotate-135 w-6 h-6",icon:u.faPhone})))):f.default.createElement("div",{className:"font-medium text-base"},"Keyboard"))};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/KeyboardView/index.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, useEffect, useRef } from 'react'\nimport { Button } from '../Button'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Dispatch, RootState } from '../../store'\nimport { faArrowLeft } from '@nethesis/nethesis-light-svg-icons'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport Actions from './Actions'\nimport { hangupCurrentCall } from '../../lib/phone/call'\nimport { faPhone } from '@nethesis/nethesis-solid-svg-icons'\nimport dtmfAudios from '../../static/dtmf'\nimport { sendDTMF } from '../../lib/webrtc/messages'\n\nconst DTMF_KEYS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '*', '#']\n\nconst KeyboardView: FC<KeyboardViewTypes> = () => {\n const dispatch = useDispatch<Dispatch>()\n const { keyboardValue } = useSelector((state: RootState) => state.currentCall)\n const { isOpen } = useSelector((state: RootState) => state.island)\n const keyboardValueRef = useRef<typeof keyboardValue>(keyboardValue)\n\n function backToCallView() {\n dispatch.island.setIslandView('call')\n }\n\n function playDtmfAudio(key: string) {\n if (key === '*') key = 'star'\n if (key === '#') key = 'pound'\n dispatch.player.updateAndPlayAudioPlayer({ src: dtmfAudios[`dtmf_${key}`] })\n }\n\n function sendKey(key: string) {\n dispatch.currentCall.updateKeyboardValue(`${keyboardValueRef.current}${key}`)\n keyboardValueRef.current = `${keyboardValueRef.current}${key}`\n playDtmfAudio(key)\n sendDTMF(key)\n }\n\n useEffect(() => {\n function handlePhysicalKeydown(event) {\n if (DTMF_KEYS.includes(event.key)) {\n sendKey(event.key)\n }\n }\n window.addEventListener('keydown', handlePhysicalKeydown)\n return () => window.removeEventListener('keydown', handlePhysicalKeydown)\n }, [])\n\n return (\n <>\n {isOpen ? (\n <div className='flex flex-col gap-7'>\n <div className='flex gap-4'>\n <Button variant='transparent' onClick={backToCallView}>\n <FontAwesomeIcon size='xl' icon={faArrowLeft} />\n </Button>\n <input\n type='text'\n readOnly\n value={keyboardValue}\n autoFocus\n className='w-full rounded-xl bg-black border border-gray-300 text-white font-sans font-light text-xl text-center px-2'\n />\n </div>\n <Actions keyCallback={sendKey} />\n <div className='flex justify-center'>\n {/* The button to hangup the currentCall */}\n <Button onClick={hangupCurrentCall} variant='red'>\n <FontAwesomeIcon className='rotate-135 w-6 h-6' icon={faPhone} />\n </Button>\n </div>\n </div>\n ) : (\n <div className='font-medium text-base'>Keyboard</div>\n )}\n </>\n )\n}\n\nexport default KeyboardView\n\nexport interface KeyboardViewTypes {}\n"],"names":["DTMF_KEYS","dispatch","useDispatch","keyboardValue","useSelector","state","currentCall","isOpen","island","keyboardValueRef","useRef","sendKey","key","updateKeyboardValue","concat","current","player","updateAndPlayAudioPlayer","src","dtmfAudios","playDtmfAudio","sendDTMF","useEffect","handlePhysicalKeydown","event","includes","window","addEventListener","removeEventListener","React","createElement","Fragment","className","Button","variant","onClick","setIslandView","FontAwesomeIcon","size","icon","faArrowLeft","type","readOnly","value","autoFocus","Actions","keyCallback","hangupCurrentCall","faPhone"],"mappings":"swBAeMA,EAAY,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,qBAE9B,WAC1C,IAAMC,EAAWC,EAAAA,cACTC,EAAkBC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,6BAC1DC,EAAWH,eAAY,SAACC,GAAqB,OAAAA,EAAMG,iBACrDC,EAAmBC,SAA6BP,GAYtD,SAASQ,EAAQC,GACfX,EAASK,YAAYO,oBAAoB,GAAAC,OAAGL,EAAiBM,SAAOD,OAAGF,IACvEH,EAAiBM,QAAU,GAAGD,OAAAL,EAAiBM,SAAOD,OAAGF,GAR3D,SAAuBA,GACT,MAARA,IAAaA,EAAM,QACX,MAARA,IAAaA,EAAM,SACvBX,EAASe,OAAOC,yBAAyB,CAAEC,IAAKC,EAAAA,QAAW,eAAQP,KACpE,CAKCQ,CAAcR,GACdS,EAAQA,SAACT,EACV,CAYD,OAVAU,EAAAA,WAAU,WACR,SAASC,EAAsBC,GACzBxB,EAAUyB,SAASD,EAAMZ,MAC3BD,EAAQa,EAAMZ,IAEjB,CAED,OADAc,OAAOC,iBAAiB,UAAWJ,GAC5B,WAAM,OAAAG,OAAOE,oBAAoB,UAAWL,GACpD,GAAE,IAGDM,UACGC,cAAAD,EAAA,QAAAE,SAAA,KAAAxB,EACCsB,EAAAA,QAAAC,cAAA,MAAA,CAAKE,UAAU,uBACbH,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,cACbH,EAAC,QAAAC,cAAAG,UAAOC,QAAQ,cAAcC,QAhCxC,WACElC,EAASO,OAAO4B,cAAc,OAC/B,GA+BWP,UAACC,cAAAO,EAAAA,gBAAgB,CAAAC,KAAK,KAAKC,KAAMC,EAAWA,eAE9CX,EAAA,QAAAC,cAAA,QAAA,CACEW,KAAK,OACLC,YACAC,MAAOxC,EACPyC,WACA,EAAAZ,UAAU,gHAGdH,EAAAA,QAAAC,cAACe,EAAAA,QAAO,CAACC,YAAanC,IACtBkB,EAAAA,QAAKC,cAAA,MAAA,CAAAE,UAAU,uBAEbH,EAAC,QAAAC,cAAAG,UAAOE,QAASY,EAAiBA,kBAAEb,QAAQ,OAC1CL,UAACC,cAAAO,EAAAA,gBAAgB,CAAAL,UAAU,qBAAqBO,KAAMS,EAAOA,aAKnEnB,UAAKC,cAAA,MAAA,CAAAE,UAAU,yBAAsC,YAI7D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var n=require("../node_modules/socket.io-client/build/esm/index.js"),t=require("../lib/phone/conversation.js"),c=require("../utils/genericFunctions/withTimeout.js");require("../node_modules/mic-check/lib/index.js"),require("../lib/webrtc/janus.js");var o=require("../store/index.js")
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/react-redux/es/index.js");var n=require("../node_modules/socket.io-client/build/esm/index.js"),t=require("../lib/phone/conversation.js"),c=require("../utils/genericFunctions/withTimeout.js");require("../node_modules/mic-check/lib/index.js"),require("../lib/webrtc/janus.js");var o=require("../store/index.js");require("../node_modules/webrtc-adapter/src/js/adapter_core.js");var r=require("../events/SocketEvents.js"),u=require("../node_modules/react-redux/es/hooks/useDispatch.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 a=s(e);exports.Socket=function(s){var i=s.hostName,d=s.username,l=s.authToken,m=s.children,p=u.useDispatch(),f=e.useRef(),g=e.useRef();return e.useEffect((function(){return g.current=n.io(i,{upgrade:!1,transports:["websocket"],reconnection:!0,reconnectionDelay:2e3}),g.current.on("connect",(function(){console.debug("Socket connected sid: ".concat(g.current.id))})),g.current.on("disconnect",(function(e){console.log("Socket disconnect - reason: ".concat(e))})),g.current.io.on("error",(function(e){console.debug("Socket error: ",e)})),g.current.on("connect_error",(function(e){console.debug("Socket connect_error: ",e)})),g.current.io.on("reconnect",(function(e){console.debug("Socket reconnect attemp ".concat(e," (sid: ").concat(g.current.id,")"))})),g.current.io.on("reconnect_attempt",(function(e){console.debug("Socket reconnect_attempt ".concat(e))})),g.current.io.on("reconnect_error",(function(e){console.debug("Socket reconnect_error: ",e)})),g.current.io.on("reconnect_failed",(function(){console.debug("Socket reconnect_failed")})),f.current=setInterval((function(){var e=Date.now();g.current.volatile.emit("ping",c.withTimeout((function(){p.alerts.removeAlert("socket_down");var n=Date.now()-e;console.debug("Socket latency: ".concat(n,"ms")),console.debug("Socket is reachable!")}),(function(){p.alerts.setAlert("socket_down"),console.debug("Socket is unreachable!")}),2e3))}),5e3),g.current.on("connect",(function(){console.log("Socket on: "+i+" is connected!"),g.current.emit("login",{accessKeyId:"".concat(d),token:l,uaType:"desktop"})})),g.current.on("authe_ok",(function(){console.log("Socket authentication success!")})),g.current.on("userMainPresenceUpdate",(function(e){r.dispatchMainPresence(e)})),g.current.on("extenUpdate",(function(e){p.users.updateExtension(e),r.dispatchConversations(e);var n=e.conversations[Object.keys(e.conversations)[0]]||{};e.username===d&&function(e,n){if(Object.keys(n).length>0){var c=e.status;if(c){var r=o.store.getState().users.extensions;switch(c){case"ringing":p.currentCall.checkIncomingUpdateAndPlay({displayName:t.getDisplayName(n),number:"".concat(n.counterpartNum),incomingSocket:!0,username:"".concat(r&&r[n.counterpartNum]&&r[n.counterpartNum].username)||""});break;case"busy":n&&n.connected?p.currentCall.updateCurrentCall({accepted:!0,incoming:!1,outgoing:!1,displayName:t.getDisplayName(n),number:"".concat(n.counterpartNum),startTime:"".concat(n.startTime/1e3),username:"".concat(r&&r[n.counterpartNum]&&r[n.counterpartNum].username)||""}):n&&!n.connected&&"out"===n.direction&&p.currentCall.checkOutgoingUpdateAndPlay({outgoingSocket:!0,displayName:t.getDisplayName(n),number:"".concat(n.counterpartNum),username:"".concat(r&&r[n.counterpartNum]&&r[n.counterpartNum].username)||""})}}}}(e,n)})),g.current.on("queueUpdate",(function(e){r.dispatchQueueUpdate(e)})),g.current.on("queueMemberUpdate",(function(e){r.dispatchQueueMemberUpdate(e)})),function(){clearInterval(f.current),g.current.close()}}),[]),a.default.createElement(a.default.Fragment,null,m)};
|
|
2
2
|
//# sourceMappingURL=Socket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Socket.js","sources":["../../src/components/Socket.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useEffect, useRef } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { Dispatch } from '../store'\nimport { io } from 'socket.io-client'\nimport { getDisplayName } from '../lib/phone/conversation'\nimport {\n dispatchMainPresence,\n dispatchConversations,\n dispatchQueueUpdate,\n dispatchQueueMemberUpdate,\n} from '../events'\nimport { store } from '../store'\nimport { withTimeout } from '../utils'\nimport type {\n ConversationsTypes,\n ExtensionTypes,\n QueuesUpdateTypes,\n QueueUpdateMemberTypes,\n} from '../types'\n\ninterface SocketProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n}\n\nexport const Socket: FC<SocketProps> = ({ hostName, username, authToken, children }) => {\n const dispatch = useDispatch<Dispatch>()\n const connectionCheckInterval = useRef<any>()\n const socket = useRef<any>()\n\n useEffect(() => {\n /**\n * Manages event and data for the currentUser\n *\n * @param res The data from the socket\n * @param conv The conversation data\n */\n const handleUserEvents = (res: any, conv: ConversationsTypes) => {\n // Check conversation isn't empty\n if (Object.keys(conv).length > 0) {\n const status: string = res.status\n if (status) {\n const { extensions } = store.getState().users\n switch (status) {\n case 'ringing':\n // The name and the number are updated here not in webrtc\n dispatch.currentCall.checkIncomingUpdateAndPlay({\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n incomingSocket: true,\n username: `${extensions && extensions[conv.counterpartNum].username}` || '',\n })\n break\n // @ts-ignore\n case 'busy':\n if (conv && conv.connected) {\n // Set current call accepted\n dispatch.currentCall.updateCurrentCall({\n accepted: true,\n incoming: false,\n outgoing: false,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n startTime: `${conv.startTime / 1000}`,\n username: `${extensions && extensions[conv.counterpartNum].username}` || '',\n })\n }\n // Handle outgoing call\n else if (conv && !conv.connected && conv.direction === 'out') {\n // Update the current outgoing conversation\n dispatch.currentCall.checkOutgoingUpdateAndPlay({\n outgoingSocket: true,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n username: `${extensions && extensions[conv.counterpartNum].username}` || '',\n })\n }\n default:\n break\n }\n }\n }\n }\n\n /**\n * Initialize socket connection and listeners\n */\n const initSocketConnection = () => {\n socket.current = io(hostName, {\n upgrade: false,\n transports: ['websocket'],\n reconnection: true,\n reconnectionDelay: 2000,\n })\n\n // Handle socket errors\n socket.current.on('connect', () => {\n console.debug(`Socket connected sid: ${socket.current.id}`)\n })\n socket.current.on('disconnect', (reason) => {\n console.log(`Socket disconnect - reason: ${reason}`)\n })\n socket.current.io.on('error', (err) => {\n console.debug(`Socket error: `, err)\n })\n socket.current.on('connect_error', (err) => {\n console.debug(`Socket connect_error: `, err)\n })\n socket.current.io.on('reconnect', (attempt) => {\n console.debug(`Socket reconnect attemp ${attempt} (sid: ${socket.current.id})`)\n })\n socket.current.io.on('reconnect_attempt', (attempt) => {\n console.debug(`Socket reconnect_attempt ${attempt}`)\n })\n socket.current.io.on('reconnect_error', (err) => {\n console.debug(`Socket reconnect_error: `, err)\n })\n socket.current.io.on('reconnect_failed', () => {\n console.debug(`Socket reconnect_failed`)\n })\n\n // Checks if socket is reachable every 5 seconds\n connectionCheckInterval.current = setInterval(() => {\n const start = Date.now()\n socket.current.volatile.emit(\n 'ping',\n withTimeout(\n () => {\n // Remove socket_down alert\n dispatch.alerts.removeAlert('socket_down')\n // Calculate and log latency\n const latency = Date.now() - start\n console.debug(`Socket latency: ${latency}ms`)\n console.debug('Socket is reachable!')\n },\n () => {\n // Set socket_down alert\n dispatch.alerts.setAlert('socket_down')\n console.debug('Socket is unreachable!')\n },\n 2000,\n ),\n )\n }, 5000)\n\n // Handle connection message\n socket.current.on('connect', () => {\n console.log('Socket on: ' + hostName + ' is connected!')\n socket.current.emit('login', {\n accessKeyId: `${username}`,\n token: authToken,\n uaType: 'desktop',\n })\n })\n\n // Handle authentication success message\n socket.current.on('authe_ok', () => {\n console.log('Socket authentication success!')\n })\n\n socket.current.on('userMainPresenceUpdate', (res) => {\n // Pass data to dispatchMainPresence\n dispatchMainPresence(res)\n })\n\n socket.current.on('extenUpdate', (res: ExtensionTypes) => {\n // Update extensions and conversations in users store\n dispatch.users.updateExtension(res)\n // Dispatch conversations event\n dispatchConversations(res)\n // Initialize conversation\n const conv: ConversationsTypes = res.conversations[Object.keys(res.conversations)[0]] || {}\n // Handle only the events of the user\n if (res.username === username) {\n handleUserEvents(res, conv)\n }\n })\n\n socket.current.on('queueUpdate', (res: QueuesUpdateTypes) => {\n // Dispatch queueUpdate event\n dispatchQueueUpdate(res)\n })\n\n socket.current.on('queueMemberUpdate', (res: QueueUpdateMemberTypes) => {\n // Dispatch queueMemberUpdate event\n dispatchQueueMemberUpdate(res)\n })\n }\n\n initSocketConnection()\n\n // Stop the check socket interval\n // Close the socket connection\n return () => {\n clearInterval(connectionCheckInterval.current)\n socket.current.close()\n }\n }, [])\n\n return <>{children}</>\n}\n"],"names":["_a","hostName","username","authToken","children","dispatch","useDispatch","connectionCheckInterval","useRef","socket","useEffect","current","io","upgrade","transports","reconnection","reconnectionDelay","on","console","debug","concat","id","reason","log","err","attempt","setInterval","start","Date","now","volatile","emit","withTimeout","alerts","removeAlert","latency","setAlert","accessKeyId","token","uaType","res","dispatchMainPresence","users","updateExtension","dispatchConversations","conv","conversations","Object","keys","length","status_1","status","extensions","store","getState","currentCall","checkIncomingUpdateAndPlay","displayName","getDisplayName","number","counterpartNum","incomingSocket","connected","updateCurrentCall","accepted","incoming","outgoing","startTime","direction","checkOutgoingUpdateAndPlay","outgoingSocket","handleUserEvents","dispatchQueueUpdate","dispatchQueueMemberUpdate","clearInterval","close","React","createElement","Fragment"],"mappings":"i1BA8BuC,SAACA,OAAEC,EAAQD,EAAAC,SAAEC,EAAQF,EAAAE,SAAEC,EAASH,EAAAG,UAAEC,EAAQJ,EAAAI,SACzEC,EAAWC,EAAAA,cACXC,EAA0BC,EAAAA,SAC1BC,EAASD,EAAAA,SA2Kf,OAzKAE,EAAAA,WAAU,WAmKR,OAzGED,EAAOE,QAAUC,EAAEA,GAACX,EAAU,CAC5BY,SAAS,EACTC,WAAY,CAAC,aACbC,cAAc,EACdC,kBAAmB,MAIrBP,EAAOE,QAAQM,GAAG,WAAW,WAC3BC,QAAQC,MAAM,yBAAyBC,OAAAX,EAAOE,QAAQU,IACxD,IACAZ,EAAOE,QAAQM,GAAG,cAAc,SAACK,GAC/BJ,QAAQK,IAAI,sCAA+BD,GAC7C,IACAb,EAAOE,QAAQC,GAAGK,GAAG,SAAS,SAACO,GAC7BN,QAAQC,MAAM,iBAAkBK,EAClC,IACAf,EAAOE,QAAQM,GAAG,iBAAiB,SAACO,GAClCN,QAAQC,MAAM,yBAA0BK,EAC1C,IACAf,EAAOE,QAAQC,GAAGK,GAAG,aAAa,SAACQ,GACjCP,QAAQC,MAAM,2BAAAC,OAA2BK,EAAO,WAAAL,OAAUX,EAAOE,QAAQU,GAAE,KAC7E,IACAZ,EAAOE,QAAQC,GAAGK,GAAG,qBAAqB,SAACQ,GACzCP,QAAQC,MAAM,mCAA4BM,GAC5C,IACAhB,EAAOE,QAAQC,GAAGK,GAAG,mBAAmB,SAACO,GACvCN,QAAQC,MAAM,2BAA4BK,EAC5C,IACAf,EAAOE,QAAQC,GAAGK,GAAG,oBAAoB,WACvCC,QAAQC,MAAM,0BAChB,IAGAZ,EAAwBI,QAAUe,aAAY,WAC5C,IAAMC,EAAQC,KAAKC,MACnBpB,EAAOE,QAAQmB,SAASC,KACtB,OACAC,EAAWA,aACT,WAEE3B,EAAS4B,OAAOC,YAAY,eAE5B,IAAMC,EAAUP,KAAKC,MAAQF,EAC7BT,QAAQC,MAAM,0BAAmBgB,EAAO,OACxCjB,QAAQC,MAAM,uBAChB,IACA,WAEEd,EAAS4B,OAAOG,SAAS,eACzBlB,QAAQC,MAAM,yBAChB,GACA,KAGL,GAAE,KAGHV,EAAOE,QAAQM,GAAG,WAAW,WAC3BC,QAAQK,IAAI,cAAgBtB,EAAW,kBACvCQ,EAAOE,QAAQoB,KAAK,QAAS,CAC3BM,YAAa,GAAGjB,OAAAlB,GAChBoC,MAAOnC,EACPoC,OAAQ,WAEZ,IAGA9B,EAAOE,QAAQM,GAAG,YAAY,WAC5BC,QAAQK,IAAI,iCACd,IAEAd,EAAOE,QAAQM,GAAG,0BAA0B,SAACuB,GAE3CC,EAAoBA,qBAACD,EACvB,IAEA/B,EAAOE,QAAQM,GAAG,eAAe,SAACuB,GAEhCnC,EAASqC,MAAMC,gBAAgBH,GAE/BI,EAAqBA,sBAACJ,GAEtB,IAAMK,EAA2BL,EAAIM,cAAcC,OAAOC,KAAKR,EAAIM,eAAe,KAAO,CAAA,EAErFN,EAAItC,WAAaA,GAxIA,SAACsC,EAAUK,GAElC,GAAIE,OAAOC,KAAKH,GAAMI,OAAS,EAAG,CAChC,IAAMC,EAAiBV,EAAIW,OAC3B,GAAID,EAAQ,CACF,IAAAE,EAAeC,EAAKA,MAACC,WAAWZ,MAAKU,WAC7C,OAAQF,GACN,IAAK,UAEH7C,EAASkD,YAAYC,2BAA2B,CAC9CC,YAAaC,EAAcA,eAACb,GAC5Bc,OAAQ,GAAAvC,OAAGyB,EAAKe,gBAChBC,gBAAgB,EAChB3D,SAAU,GAAAkB,OAAGgC,GAAcA,EAAWP,EAAKe,gBAAgB1D,WAAc,KAE3E,MAEF,IAAK,OACC2C,GAAQA,EAAKiB,UAEfzD,EAASkD,YAAYQ,kBAAkB,CACrCC,UAAU,EACVC,UAAU,EACVC,UAAU,EACVT,YAAaC,EAAcA,eAACb,GAC5Bc,OAAQ,GAAAvC,OAAGyB,EAAKe,gBAChBO,UAAW,GAAG/C,OAAAyB,EAAKsB,UAAY,KAC/BjE,SAAU,GAAAkB,OAAGgC,GAAcA,EAAWP,EAAKe,gBAAgB1D,WAAc,KAIpE2C,IAASA,EAAKiB,WAAgC,QAAnBjB,EAAKuB,WAEvC/D,EAASkD,YAAYc,2BAA2B,CAC9CC,gBAAgB,EAChBb,YAAaC,EAAcA,eAACb,GAC5Bc,OAAQ,GAAAvC,OAAGyB,EAAKe,gBAChB1D,SAAU,GAAAkB,OAAGgC,GAAcA,EAAWP,EAAKe,gBAAgB1D,WAAc,KAMlF,CACF,CACH,CA4FMqE,CAAiB/B,EAAKK,EAE1B,IAEApC,EAAOE,QAAQM,GAAG,eAAe,SAACuB,GAEhCgC,EAAmBA,oBAAChC,EACtB,IAEA/B,EAAOE,QAAQM,GAAG,qBAAqB,SAACuB,GAEtCiC,EAAyBA,0BAACjC,EAC5B,IAOK,WACLkC,cAAcnE,EAAwBI,SACtCF,EAAOE,QAAQgE,OACjB,CACD,GAAE,IAEIC,EAAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,KAAG1E,EACZ"}
|
|
1
|
+
{"version":3,"file":"Socket.js","sources":["../../src/components/Socket.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, FC, useEffect, useRef } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { Dispatch } from '../store'\nimport { io } from 'socket.io-client'\nimport { getDisplayName } from '../lib/phone/conversation'\nimport {\n dispatchMainPresence,\n dispatchConversations,\n dispatchQueueUpdate,\n dispatchQueueMemberUpdate,\n} from '../events'\nimport { store } from '../store'\nimport { withTimeout } from '../utils'\nimport type {\n ConversationsTypes,\n ExtensionTypes,\n QueuesUpdateTypes,\n QueueUpdateMemberTypes,\n} from '../types'\n\ninterface SocketProps {\n children: ReactNode\n hostName: string\n username: string\n authToken: string\n}\n\nexport const Socket: FC<SocketProps> = ({ hostName, username, authToken, children }) => {\n const dispatch = useDispatch<Dispatch>()\n const connectionCheckInterval = useRef<any>()\n const socket = useRef<any>()\n\n useEffect(() => {\n /**\n * Manages event and data for the currentUser\n *\n * @param res The data from the socket\n * @param conv The conversation data\n */\n const handleCurrentUserEvents = (res: any, conv: ConversationsTypes) => {\n // Check conversation isn't empty\n if (Object.keys(conv).length > 0) {\n const status: string = res.status\n if (status) {\n const { extensions } = store.getState().users\n switch (status) {\n case 'ringing':\n // The name and the number are updated here not in webrtc\n dispatch.currentCall.checkIncomingUpdateAndPlay({\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n incomingSocket: true,\n username: `${extensions && extensions[conv.counterpartNum] && extensions[conv.counterpartNum].username}` || '',\n })\n break\n // @ts-ignore\n case 'busy':\n if (conv && conv.connected) {\n // Set current call accepted\n dispatch.currentCall.updateCurrentCall({\n accepted: true,\n incoming: false,\n outgoing: false,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n startTime: `${conv.startTime / 1000}`,\n username: `${extensions && extensions[conv.counterpartNum] && extensions[conv.counterpartNum].username}` || '',\n })\n }\n // Handle outgoing call\n else if (conv && !conv.connected && conv.direction === 'out') {\n // Update the current outgoing conversation\n dispatch.currentCall.checkOutgoingUpdateAndPlay({\n outgoingSocket: true,\n displayName: getDisplayName(conv),\n number: `${conv.counterpartNum}`,\n username: `${extensions && extensions[conv.counterpartNum] && extensions[conv.counterpartNum].username}` || '',\n })\n }\n default:\n break\n }\n }\n }\n }\n\n /**\n * Initialize socket connection and listeners\n */\n const initSocketConnection = () => {\n socket.current = io(hostName, {\n upgrade: false,\n transports: ['websocket'],\n reconnection: true,\n reconnectionDelay: 2000,\n })\n\n // Handle socket errors\n socket.current.on('connect', () => {\n console.debug(`Socket connected sid: ${socket.current.id}`)\n })\n socket.current.on('disconnect', (reason) => {\n console.log(`Socket disconnect - reason: ${reason}`)\n })\n socket.current.io.on('error', (err) => {\n console.debug(`Socket error: `, err)\n })\n socket.current.on('connect_error', (err) => {\n console.debug(`Socket connect_error: `, err)\n })\n socket.current.io.on('reconnect', (attempt) => {\n console.debug(`Socket reconnect attemp ${attempt} (sid: ${socket.current.id})`)\n })\n socket.current.io.on('reconnect_attempt', (attempt) => {\n console.debug(`Socket reconnect_attempt ${attempt}`)\n })\n socket.current.io.on('reconnect_error', (err) => {\n console.debug(`Socket reconnect_error: `, err)\n })\n socket.current.io.on('reconnect_failed', () => {\n console.debug(`Socket reconnect_failed`)\n })\n\n // Checks if socket is reachable every 5 seconds\n connectionCheckInterval.current = setInterval(() => {\n const start = Date.now()\n socket.current.volatile.emit(\n 'ping',\n withTimeout(\n () => {\n // Remove socket_down alert\n dispatch.alerts.removeAlert('socket_down')\n // Calculate and log latency\n const latency = Date.now() - start\n console.debug(`Socket latency: ${latency}ms`)\n console.debug('Socket is reachable!')\n },\n () => {\n // Set socket_down alert\n dispatch.alerts.setAlert('socket_down')\n console.debug('Socket is unreachable!')\n },\n 2000,\n ),\n )\n }, 5000)\n\n // Handle connection message\n socket.current.on('connect', () => {\n console.log('Socket on: ' + hostName + ' is connected!')\n socket.current.emit('login', {\n accessKeyId: `${username}`,\n token: authToken,\n uaType: 'desktop',\n })\n })\n\n // Handle authentication success message\n socket.current.on('authe_ok', () => {\n console.log('Socket authentication success!')\n })\n\n socket.current.on('userMainPresenceUpdate', (res) => {\n // Pass data to dispatchMainPresence\n dispatchMainPresence(res)\n })\n\n socket.current.on('extenUpdate', (res: ExtensionTypes) => {\n // Update extensions and conversations in users store\n dispatch.users.updateExtension(res)\n // Dispatch conversations event\n dispatchConversations(res)\n // Initialize conversation\n const conv: ConversationsTypes = res.conversations[Object.keys(res.conversations)[0]] || {}\n // Handle only the events of the user\n if (res.username === username) {\n handleCurrentUserEvents(res, conv)\n }\n })\n\n socket.current.on('queueUpdate', (res: QueuesUpdateTypes) => {\n // Dispatch queueUpdate event\n dispatchQueueUpdate(res)\n })\n\n socket.current.on('queueMemberUpdate', (res: QueueUpdateMemberTypes) => {\n // Dispatch queueMemberUpdate event\n dispatchQueueMemberUpdate(res)\n })\n }\n\n initSocketConnection()\n\n // Stop the check socket interval\n // Close the socket connection\n return () => {\n clearInterval(connectionCheckInterval.current)\n socket.current.close()\n }\n }, [])\n\n return <>{children}</>\n}\n"],"names":["_a","hostName","username","authToken","children","dispatch","useDispatch","connectionCheckInterval","useRef","socket","useEffect","current","io","upgrade","transports","reconnection","reconnectionDelay","on","console","debug","concat","id","reason","log","err","attempt","setInterval","start","Date","now","volatile","emit","withTimeout","alerts","removeAlert","latency","setAlert","accessKeyId","token","uaType","res","dispatchMainPresence","users","updateExtension","dispatchConversations","conv","conversations","Object","keys","length","status_1","status","extensions","store","getState","currentCall","checkIncomingUpdateAndPlay","displayName","getDisplayName","number","counterpartNum","incomingSocket","connected","updateCurrentCall","accepted","incoming","outgoing","startTime","direction","checkOutgoingUpdateAndPlay","outgoingSocket","handleCurrentUserEvents","dispatchQueueUpdate","dispatchQueueMemberUpdate","clearInterval","close","React","createElement","Fragment"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../node_modules/framer-motion/dist/cjs/index.js"),require("../node_modules/react-redux/es/index.js");var r=require("../node_modules/react-redux/es/hooks/useSelector.js"),t=require("../_virtual/index2.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(e);exports.default=function(e){var i=e.children,u=e.forView,n=r.useSelector((function(e){return e.island})).view;return o.default.createElement(t.__exports.motion.div,{animate:n===u?{opacity:1}:{opacity:0},transition:{duration:.1}},i&&i)};
|
|
2
|
+
//# sourceMappingURL=ViewsTransition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewsTransition.js","sources":["../../src/components/ViewsTransition.tsx"],"sourcesContent":["// Copyright (C) 2022 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type ReactNode, type FC } from 'react'\nimport { motion } from 'framer-motion/dist/cjs'\nimport { useSelector } from 'react-redux'\nimport { RootState } from '../store'\n\nconst ViewsTransition: FC<ViewTransitionTypes> = ({ children, forView }) => {\n const { view } = useSelector((state: RootState) => state.island)\n return (\n <motion.div\n animate={view === forView ? { opacity: 1 } : { opacity: 0 }}\n transition={{ duration: 0.1 }}\n >\n {children && children}\n </motion.div>\n )\n}\n\nexport default ViewsTransition\n\ninterface ViewTransitionTypes {\n children: ReactNode\n forView: string\n}\n"],"names":["_a","children","forView","view","useSelector","state","island","React","createElement","motion","div","animate","opacity","transition","duration"],"mappings":"oZAQiD,SAACA,OAAEC,EAAQD,EAAAC,SAAEC,EAAOF,EAAAE,QAC3DC,EAASC,eAAY,SAACC,GAAqB,OAAAA,EAAMC,eACzD,OACEC,EAAC,QAAAC,cAAAC,EAAAA,UAAAA,OAAOC,IAAG,CACTC,QAASR,IAASD,EAAU,CAAEU,QAAS,GAAM,CAAEA,QAAS,GACxDC,WAAY,CAAEC,SAAU,KAEvBb,GAAYA,EAGnB"}
|