@nethesis/phone-island 1.0.16-dev.1 → 1.0.16
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/components/CallView/Avatar.js +1 -1
- package/dist/components/CallView/Avatar.js.map +1 -1
- package/dist/components/CallView/index.js +1 -1
- package/dist/components/CallView/index.js.map +1 -1
- package/dist/components/CustomThemedTooltip.js +1 -1
- package/dist/components/CustomThemedTooltip.js.map +1 -1
- package/dist/components/IslandMotion.js +1 -1
- package/dist/components/IslandMotion.js.map +1 -1
- package/dist/components/Socket.js +1 -1
- package/dist/components/Socket.js.map +1 -1
- package/dist/components/VideoView/index.js +1 -1
- package/dist/components/VideoView/index.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/lib/phone/conversation.js +1 -1
- package/dist/lib/phone/conversation.js.map +1 -1
- package/dist/models/currentCall.js +1 -1
- package/dist/models/currentCall.js.map +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js +1 -1
- package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/public/locales/en/translation.json.js +1 -1
- package/dist/public/locales/it/translation.json.js +1 -1
- package/package.json +1 -1
- package/dist/components/CallView/DeviceIcon.js +0 -2
- package/dist/components/CallView/DeviceIcon.js.map +0 -1
- package/dist/components/CallView/NumberPopover.js +0 -2
- package/dist/components/CallView/NumberPopover.js.map +0 -1
- package/dist/lib/phone/counterpartDevice.js +0 -2
- package/dist/lib/phone/counterpartDevice.js.map +0 -1
package/dist/package.json.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="@nethesis/phone-island",s="Nethesis",t="1.0.16
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e="@nethesis/phone-island",s="Nethesis",t="1.0.16",i="NethVoice CTI Phone Island",r=["nethserver","nethesis","nethvoice","phone","island"],o="https://github.com/nethesis/phone-island#readme",n="https://github.com/nethesis/dev/issues",p={type:"git",url:"https://github.com/nethesis/phone-island.git"},d=["dist"],l="dist/index.js",c="dist/index.d.ts",a={access:"public"},m={main:!1,types:!1,default:{distDir:"./dist-widget"}},u={"@fortawesome/fontawesome-svg-core":"7.3.1","@fortawesome/free-solid-svg-icons":"7.3.1","@fortawesome/react-fontawesome":"3.5.0","@headlessui/react":"^2.2.8","@nethesis/nethesis-solid-svg-icons":"github:nethesis/Font-Awesome#ns-solid","@rematch/core":"^2.2.0","@rematch/immer":"^2.1.3","@rematch/select":"^3.1.2",buffer:"^5.7.1","framer-motion":"^12.0.0",i18next:"^22.4.9","i18next-browser-languagedetector":"^7.0.1",immer:"^9.0.21","js-base64":"^3.7.3",lodash:"^4.17.21","mic-check":"^1.1.0",moment:"^2.31.0",react:"^18.2.0","react-dom":"^18.2.0","react-i18next":"^12.1.5","react-moment":"^1.1.2","react-redux":"^8.0.5","react-tooltip":"^5.28.0",redux:"^4.2.0","socket.io-client":"^4.5.3","styled-components":"^5.3.6","webm-duration-fix":"^1.0.4","webrtc-adapter":"^9.0.1"},h={start:"npm run dev",dev:"node scripts/generate-dev-host.js && parcel .dev/phone-island-dev.html --port 6006 --open",test:"tsc --noEmit",watch:"rollup -w -c","watch:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 npx tailwindcss -o ./dist/index.css --watch",build:"rm -rf ./dist && npm run build:css && rollup -c","build:css":"BROWSERSLIST_IGNORE_OLD_DATA=1 NODE_ENV=production npx tailwindcss -o ./dist/index.css --minify","build:win":"del /s /q dist && npm run build:wincss && rollup -c --configPlugin typescript","build:wincss":"set BROWSERSLIST_IGNORE_OLD_DATA=1 && set NODE_ENV=production && npx tailwindcss -o ./dist/index.css --minify","build:widget":"rm -rf ./dist-widget && parcel build ./src/index.widget.tsx --no-source-maps","serve:widget":"rm -rf ./widget-example/static/* && cp -rf ./dist-widget/* ./widget-example/static && npx http-server ./widget-example -o -c-1",release:"npm publish","release:widget":"node check-publish.js patch && npm version patch -m v%s",format:"prettier --write './**/*.{js,jsx,ts,tsx,css,md,json}' --config ./.prettierrc",bump:"node bump-version.js","build-pack":"npm run bump && npm run build && npm pack","build-pack:win":"npm run bump && npm run build:win && npm pack","publish:minor":"node check-publish.js minor && npm version minor --allow-same-version -m v%s --force","publish:major":"node check-publish.js major && npm version major --allow-same-version -m v%s --force","publish:patch":"node check-publish.js patch && npm version patch --allow-same-version -m v%s --force","publish:dev":"node publish-dev.js",preversion:"rm -rf dist-widget && npm run build:widget && git add dist-widget/index.widget.js dist-widget/index.widget.css && git commit -m 'chore(widget): release for jsDelivr'",postversion:"git push origin main --tags","revert-bump":"node revert-bump.js"},b={production:[">0.2%","not dead","not op_mini all"],development:["last 1 chrome version","last 1 firefox version","last 1 safari version"]},g={"@babel/core":"^7.20.2","@babel/preset-env":"^7.20.2","@rollup/plugin-babel":"^7.0.0","@rollup/plugin-commonjs":"^23.0.2","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^16.0.0","@rollup/plugin-terser":"^1.0.0","@rollup/plugin-typescript":"^9.0.2","@types/react":"^18.0.26","@types/react-dom":"^18.0.9","@types/styled-components":"^5.1.26",parcel:"^2.0.0",postcss:"^8.4.49",prettier:"^2.8.0",rollup:"^2.79.1","tailwind-scrollbar":"^3.1.0",tailwindcss:"^3.4.16",typescript:"^4.8.4"},w="GPL-3.0-or-later",v={name:e,author:s,version:t,description:i,keywords:r,homepage:o,bugs:n,repository:p,private:!1,files:d,main:l,types:c,publishConfig:a,targets:m,dependencies:u,scripts:h,browserslist:b,devDependencies:g,license:w};exports.author=s,exports.browserslist=b,exports.bugs=n,exports.default=v,exports.dependencies=u,exports.description=i,exports.devDependencies=g,exports.files=d,exports.homepage=o,exports.keywords=r,exports.license=w,exports.main=l,exports.name=e,exports.publishConfig=a,exports.repository=p,exports.scripts=h,exports.targets=m,exports.types=c,exports.version=t;
|
|
2
2
|
//# sourceMappingURL=package.json.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={Intrude:"Intrude",Listen:"Listen","Start recording message before":"Click the button below to start recording","Start recording message after":"You can speak in a moment...",Recording:"Recording","Answer phone to start recording":"Answer phone to start recording","Close the call to stop recording":"Close the call to stop recording","Search contact or phone number":"Search contact or phone number","Enter a phone number":"Enter a phone number","Physical phone":"Physical phone",Close:"Close",Back:"Back","More actions":"More actions",Me:"Me",plus_x_others:"+{{count}} others","Phone number entered":"Phone number entered","Record message":"Record message","Play message":"Play message",Queue:"Queue"},n={Hangup:"Hangup",Pause:"Hold",Play:"Resume",Mute:"Mute",Unmute:"Unmute",Transfer:"Transfer","Cancel transfer":"Cancel transfer",Collapse:"Collapse",Expand:"Expand",Keyboard:"Keyboard",Park:"Park","Back to call":"Back to call",Stop:"Stop",Delete:"Delete",Confirm:"Confirm","Start recording":"Start recording","Switch call":"Switch call","Transfer call":"Transfer call","Select phone number":"Select phone number","Hangup and transfer":"Transfer",Answer:"Answer",Settings:"Settings",Record:"Record","Stop recording":"Stop recording",Recording:"Recording","Interrupt recording":"Interrupt recording","Other actions":"Other actions",Conference:"Add participant for conference call","Add user to conference":"Add to conference call","Go to settings":"Go to settings","Enable camera":"Enable camera","Enable camera permission":"Enable camera permission","Switch device":"Switch device",Reload:"Reload","Close alert":"Close alert","Share screen":"Share screen","Stop sharing":"Stop sharing","Disable camera":"Disable camera","Enter fullscreen":"Enter fullscreen","Exit fullscreen":"Exit fullscreen","Open url":"Open external URL","Open transcription":"Open transcription",Increase:"Increase",Decrease:"Decrease",Close:"Close"},r={"In progress...":"In progress...","Outgoing call":"Outgoing call","Incoming call":"Incoming call","Number busy":"Number busy...","User busy":"User busy..."
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={Intrude:"Intrude",Listen:"Listen","Start recording message before":"Click the button below to start recording","Start recording message after":"You can speak in a moment...",Recording:"Recording","Answer phone to start recording":"Answer phone to start recording","Close the call to stop recording":"Close the call to stop recording","Search contact or phone number":"Search contact or phone number","Enter a phone number":"Enter a phone number","Physical phone":"Physical phone",Close:"Close",Back:"Back","More actions":"More actions",Me:"Me",plus_x_others:"+{{count}} others","Phone number entered":"Phone number entered","Record message":"Record message","Play message":"Play message",Queue:"Queue"},n={Hangup:"Hangup",Pause:"Hold",Play:"Resume",Mute:"Mute",Unmute:"Unmute",Transfer:"Transfer","Cancel transfer":"Cancel transfer",Collapse:"Collapse",Expand:"Expand",Keyboard:"Keyboard",Park:"Park","Back to call":"Back to call",Stop:"Stop",Delete:"Delete",Confirm:"Confirm","Start recording":"Start recording","Switch call":"Switch call","Transfer call":"Transfer call","Select phone number":"Select phone number","Hangup and transfer":"Transfer",Answer:"Answer",Settings:"Settings",Record:"Record","Stop recording":"Stop recording",Recording:"Recording","Interrupt recording":"Interrupt recording","Other actions":"Other actions",Conference:"Add participant for conference call","Add user to conference":"Add to conference call","Go to settings":"Go to settings","Enable camera":"Enable camera","Enable camera permission":"Enable camera permission","Switch device":"Switch device",Reload:"Reload","Close alert":"Close alert","Share screen":"Share screen","Stop sharing":"Stop sharing","Disable camera":"Disable camera","Enter fullscreen":"Enter fullscreen","Exit fullscreen":"Exit fullscreen","Open url":"Open external URL","Open transcription":"Open transcription",Increase:"Increase",Decrease:"Decrease",Close:"Close"},r={"In progress...":"In progress...","Outgoing call":"Outgoing call","Incoming call":"Incoming call","Number busy":"Number busy...","User busy":"User busy..."},o={"No contacts found":"No contacts found"},a={browser_permissions:"Browser permissions error",user_permissions:"Media permissions error",unknown_media_permissions:"Generic media permission error",webrtc_down:"Connection error",socket_down:"Connection error",busy_camera:"Webcam is busy",call_transfered:"Transfer successful","The browser doesn't have permission to access camera or microphone.":"The browser doesn't have permission to access camera or microphone.","You must accept audio and video permissions.":"You must accept audio and video.","Web Phone can't access audio or camera on this device.":"Web Phone can't access audio or camera on this device.","Click icon to reconnect":"Click icon to reconnect","Camera is used by another application.":"Webcam is used by another application.","Unknown audio or camera permissions.":"Microphone or Webcam is unavailable","No microphone or camera permissions.":"You must accept browser permissions.","Call transferred successfully.":"The call is transferred successfully.","Camera is already used.":"Webcam is already in use."},s={Theme:"Theme",Dark:"Dark",Light:"Light",Speakers:"Speakers",Microphones:"Microphones",Cameras:"Cameras",Settings:"Settings"},t={Conference:"Conference","Add participant":"Add participant","Remove participant":"Remove participant","Waiting for the conference":"Waiting for conference","Start conference":"Start conference","Unmute participant":"Unmute participant","Mute participant":"Mute participant","Mute all participants":"Mute all participants","Unmute all participants":"Unmute all participants","In conference":"In conference","End conference":"End conference","No participants":"No participants","Add participants to conference":"Add participants to conference"},i={extension:"Extension",workphone:"Main phone",cellphone:"Mobile phone"},c={"Video not available":"Video not available","The video feed is currently unavailable":"The video feed is currently unavailable","Loading video":"Loading video...","Take a screenshot":"Take a screenshot",Open:"Open","Open door":"Open door","Unlock streaming":"Unlock streaming"},l={"New message":"New message","New messages":"New messages",Transcribing:"transcribing...","Showing messages":"Showing last {{visible}} of {{total}} messages","Is speaking":"is speaking"},p={Default:"Default",Classic:"Classic",Modern:"Modern",Soft:"Soft",Gentle:"Gentle","Play preview":"Play preview","Stop preview":"Stop preview"},d={unknown:"Unknown"},m={Common:e,Tooltip:n,Call:r,Transfer:o,Errors:a,Settings:s,"Switch device":{"Switch device":"Switch device","Switch information":"The call will continue in the selected device."},"Screen sharing":{Sharing:"Sharing"},"Phone Island":{"Mobile app":"Mobile app"},Conference:t,Phone:i,VideoStreaming:c,TranscriptionView:l,Ringtones:p,TextScroll:d};exports.Call=r,exports.Common=e,exports.Conference=t,exports.Errors=a,exports.Phone=i,exports.Ringtones=p,exports.Settings=s,exports.TextScroll=d,exports.Tooltip=n,exports.TranscriptionView=l,exports.Transfer=o,exports.VideoStreaming=c,exports.default=m;
|
|
2
2
|
//# sourceMappingURL=translation.json.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={Intrude:"Intromesso",Listen:"Ascolto","Start recording message before":"Premi il pulsante qui sotto per registrare","Start recording message after":"Puoi parlare tra poco...",Recording:"Registrazione","Answer phone to start recording":"Rispondi al telefono per iniziare la registrazione","Close the call to stop recording":"Chiudi la chiamata per fermare la registrazione","Search contact or phone number":"Cerca un contatto o un numero di telefono","Enter a phone number":"Inserisci un numero di telefono","Physical phone":"Telefono fisso",Close:"Chiudi",Back:"Indietro","More actions":"Altre azioni",Me:"Io",plus_x_others:"+{{count}} altri","Phone number entered":"Numero di telefono inserito","Record message":"Registra messaggio","Play message":"Riproduci messaggio",Queue:"Coda"},i={Hangup:"Chiudi",Pause:"Pausa",Play:"Riprendi",Mute:"Muto",Unmute:"Togli muto",Transfer:"Trasferisci","Cancel transfer":"Annulla trasferimento",Collapse:"Riduci",Expand:"Espandi",Keyboard:"Tastiera",Park:"Parcheggia","Back to call":"Torna alla chiamata",Stop:"Stop",Delete:"Elimina",Confirm:"Conferma","Start recording":"Inizia registrazione","Switch call":"Scambia chiamata","Transfer call":"Trasferisci chiamata","Select phone number":"Seleziona numero di telefono","Hangup and transfer":"Trasferisci",Answer:"Rispondi",Settings:"Impostazioni",Record:"Registra","Stop recording":"Ferma registrazione",Recording:"Registrando","Interrupt recording":"Interrompi registrazione","Other actions":"Altre azioni",Conference:"Aggiungi partecipante per chiamata in conferenza","Add user to conference":"Aggiungi alla chiamata in conferenza","Go to settings":"Vai alle impostazioni","Enable camera":"Abilita video","Enable camera permission":"Abilita permesso video","Switch device":"Cambia dispositivo",Reload:"Ricarica","Close alert":"Chiudi avviso","Share screen":"Condividi schermo","Stop sharing":"Interrompi condivisione","Disable camera":"Disabilita video","Enter fullscreen":"Vai a schermo intero","Exit fullscreen":"Esci da schermo intero","Open url":"Apri URL esterno","Open transcription":"Apri trascrizione",Increase:"Ingrandisci",Decrease:"Riduci",Close:"Chiudi"},a={"In progress...":"In corso...","Outgoing call":"Chiamata in uscita","Incoming call":"Chiamata in arrivo","Number busy":"Numero occupato...","User busy":"Utente occupato..."
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e={Intrude:"Intromesso",Listen:"Ascolto","Start recording message before":"Premi il pulsante qui sotto per registrare","Start recording message after":"Puoi parlare tra poco...",Recording:"Registrazione","Answer phone to start recording":"Rispondi al telefono per iniziare la registrazione","Close the call to stop recording":"Chiudi la chiamata per fermare la registrazione","Search contact or phone number":"Cerca un contatto o un numero di telefono","Enter a phone number":"Inserisci un numero di telefono","Physical phone":"Telefono fisso",Close:"Chiudi",Back:"Indietro","More actions":"Altre azioni",Me:"Io",plus_x_others:"+{{count}} altri","Phone number entered":"Numero di telefono inserito","Record message":"Registra messaggio","Play message":"Riproduci messaggio",Queue:"Coda"},i={Hangup:"Chiudi",Pause:"Pausa",Play:"Riprendi",Mute:"Muto",Unmute:"Togli muto",Transfer:"Trasferisci","Cancel transfer":"Annulla trasferimento",Collapse:"Riduci",Expand:"Espandi",Keyboard:"Tastiera",Park:"Parcheggia","Back to call":"Torna alla chiamata",Stop:"Stop",Delete:"Elimina",Confirm:"Conferma","Start recording":"Inizia registrazione","Switch call":"Scambia chiamata","Transfer call":"Trasferisci chiamata","Select phone number":"Seleziona numero di telefono","Hangup and transfer":"Trasferisci",Answer:"Rispondi",Settings:"Impostazioni",Record:"Registra","Stop recording":"Ferma registrazione",Recording:"Registrando","Interrupt recording":"Interrompi registrazione","Other actions":"Altre azioni",Conference:"Aggiungi partecipante per chiamata in conferenza","Add user to conference":"Aggiungi alla chiamata in conferenza","Go to settings":"Vai alle impostazioni","Enable camera":"Abilita video","Enable camera permission":"Abilita permesso video","Switch device":"Cambia dispositivo",Reload:"Ricarica","Close alert":"Chiudi avviso","Share screen":"Condividi schermo","Stop sharing":"Interrompi condivisione","Disable camera":"Disabilita video","Enter fullscreen":"Vai a schermo intero","Exit fullscreen":"Esci da schermo intero","Open url":"Apri URL esterno","Open transcription":"Apri trascrizione",Increase:"Ingrandisci",Decrease:"Riduci",Close:"Chiudi"},a={"In progress...":"In corso...","Outgoing call":"Chiamata in uscita","Incoming call":"Chiamata in arrivo","Number busy":"Numero occupato...","User busy":"Utente occupato..."},o={"No contacts found":"Nessun contatto trovato"},r={browser_permissions:"Errore nei permessi del browser",user_permissions:"Errore nei permessi dei media",unknown_media_permissions:"Errore generico nei permessi",webrtc_down:"Errore di connessione",socket_down:"Errore di connessione",busy_camera:"Webcam occupata",call_transfered:"Trasferimento riuscito","The browser doesn't have permission to access camera or microphone.":"Il browser non ha il permesso di accedere alla fotocamera o al microfono.","You must accept audio and video permissions.":"Devi accettare i permessi audio e video.","Web Phone can't access audio or camera on this device.":"Il Web Phone non può accedere all'audio o alla fotocamera su questo dispositivo.","Click icon to reconnect":"Clicca l'icona per riconnetterti","Camera is used by another application.":"La fotocamera è utilizzata da un'altra applicazione.","Unknown audio or camera permissions.":"Microfono o fotocamera non disponibili.","No microphone or camera permissions.":"Devi accettare i permessi del browser.","Call transferred successfully.":"La chiamata è stata trasferita con successo.","Camera is already used.":"La Webcam è già in uso."},n={Theme:"Tema",Dark:"Scuro",Light:"Chiaro",Speakers:"Altoparlanti",Microphones:"Microfoni",Cameras:"Video",Settings:"Impostazioni"},t={Conference:"Conferenza","Add participant":"Aggiungi partecipante","Remove participant":"Rimuovi partecipante","Waiting for the conference":"In attesa della conferenza","Start conference":"Inizia conferenza","Unmute participant":"Attiva audio partecipante","Mute participant":"Disattiva audio partecipante","Mute all participants":"Disattiva audio a tutti","Unmute all participants":"Attiva audio a tutti","In conference":"In conferenza","End conference":"Termina conferenza","No participants":"Nessun partecipante","Add participants to conference":"Aggiungi partecipanti alla conferenza"},s={extension:"Interno",workphone:"Principale",cellphone:"Cellulare"},c={"Video not available":"Video non disponibile","The video feed is currently unavailable":"Il feed video non è attualmente disponibile","Loading video":"Caricamento video...","Take a screenshot":"Cattura schermata",Open:"Apri","Open door":"Apri porta","Unlock streaming":"Sblocca streaming"},l={"New message":"Nuovo messaggio","New messages":"Nuovi messaggi",Transcribing:"trascrizione in corso...","Showing messages":"Mostrati gli ultimi {{visible}} di {{total}} messaggi","Is speaking":"sta parlando"},p={Default:"Predefinita",Classic:"Classica",Modern:"Moderna",Soft:"Delicata",Gentle:"Gentile","Play preview":"Riproduci anteprima","Stop preview":"Ferma anteprima"},d={unknown:"Sconosciuto"},m={Common:e,Tooltip:i,Call:a,Transfer:o,Errors:r,Settings:n,"Switch device":{"Switch device":"Cambia dispositivo","Switch information":"La chiamata continuerà sul dispositivo selezionato."},"Screen sharing":{Sharing:"Condivisione"},"Phone island":{"Mobile app":"App mobile"},Conference:t,Phone:s,VideoStreaming:c,TranscriptionView:l,Ringtones:p,TextScroll:d};exports.Call=a,exports.Common=e,exports.Conference=t,exports.Errors=r,exports.Phone=s,exports.Ringtones=p,exports.Settings=n,exports.TextScroll=d,exports.Tooltip=i,exports.TranscriptionView=l,exports.Transfer=o,exports.VideoStreaming=c,exports.default=m;
|
|
2
2
|
//# sourceMappingURL=translation.json.js.map
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("../../node_modules/react-redux/es/index.js"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var t=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),o=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),i=require("../../node_modules/@nethesis/nethesis-solid-svg-icons/index.mjs.js"),n=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e),a="tooltip-device",u={webrtc:{icon:o.faHeadset,labelKey:"Call.Web phone"},nethlink:{icon:o.faDesktop,labelKey:"Call.Desktop phone"},physical:{icon:i.faOfficePhone,labelKey:"Common.Physical phone"},mobile:{icon:o.faMobileScreen,labelKey:"Phone Island.Mobile app"}},d=e.memo(function(){var e=r.useTranslation().t,o=n.useSelector(function(e){return e.currentCall}),i=o.counterpartDeviceType,s=o.number,d=i?u[i]:void 0;if(!d)return null;var c=e(d.labelKey),p=s?"".concat(c,": ").concat(s):c;return l.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark","data-tooltip-id":a,"data-tooltip-content":p,"aria-label":p},l.default.createElement(t.FontAwesomeIcon,{icon:d.icon,className:"pi-h-5 pi-w-5"}))});exports.DEVICE_TOOLTIP_ID=a,exports.default=d;
|
|
2
|
-
//# sourceMappingURL=DeviceIcon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceIcon.js","sources":["../../../src/components/CallView/DeviceIcon.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport type { IconProp } from '@fortawesome/fontawesome-svg-core'\nimport { faDesktop, faHeadset, faMobileScreen } from '@fortawesome/free-solid-svg-icons'\nimport { faOfficePhone } from '@nethesis/nethesis-solid-svg-icons'\nimport { RootState } from '../../store'\n\nexport const DEVICE_TOOLTIP_ID = 'tooltip-device'\n\nconst DEVICE_ICONS: Record<string, { icon: IconProp; labelKey: string }> = {\n webrtc: { icon: faHeadset, labelKey: 'Call.Web phone' },\n nethlink: { icon: faDesktop, labelKey: 'Call.Desktop phone' },\n physical: { icon: faOfficePhone as IconProp, labelKey: 'Common.Physical phone' },\n mobile: { icon: faMobileScreen, labelKey: 'Phone Island.Mobile app' },\n}\n\nconst DeviceIcon: FC = () => {\n const { t } = useTranslation()\n const { counterpartDeviceType, number } = useSelector((state: RootState) => state.currentCall)\n\n const device = counterpartDeviceType ? DEVICE_ICONS[counterpartDeviceType] : undefined\n if (!device) return null\n\n const label = t(device.labelKey)\n const tooltipContent = number ? `${label}: ${number}` : label\n\n return (\n <span\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-5 pi-w-5 pi-text-iconPrimaryNeutral dark:pi-text-iconPrimaryNeutralDark'\n data-tooltip-id={DEVICE_TOOLTIP_ID}\n data-tooltip-content={tooltipContent}\n aria-label={tooltipContent}\n >\n <FontAwesomeIcon icon={device.icon} className='pi-h-5 pi-w-5' />\n </span>\n )\n}\n\nexport default memo(DeviceIcon)\n"],"names":["DEVICE_TOOLTIP_ID","DEVICE_ICONS","webrtc","icon","faHeadset","labelKey","nethlink","faDesktop","physical","faOfficePhone","mobile","faMobileScreen","memo","t","useTranslation","_a","useSelector","state","currentCall","counterpartDeviceType","number","device","undefined","label","tooltipContent","concat","React","createElement","className","FontAwesomeIcon"],"mappings":"+gCAYaA,EAAoB,iBAE3BC,EAAqE,CACzEC,OAAQ,CAAEC,KAAMC,YAAWC,SAAU,kBACrCC,SAAU,CAAEH,KAAMI,YAAWF,SAAU,sBACvCG,SAAU,CAAEL,KAAMM,gBAA2BJ,SAAU,yBACvDK,OAAQ,CAAEP,KAAMQ,iBAAgBN,SAAU,4BAyB7BO,EAAAA,EAAAA,KAtBQ,WACb,IAAAC,EAAMC,qBACRC,EAAoCC,EAAAA,YAAY,SAACC,GAAqB,OAAAA,EAAMC,WAAW,GAArFC,0BAAuBC,WAEzBC,EAASF,EAAwBlB,EAAakB,QAAyBG,EAC7E,IAAKD,EAAQ,OAAO,KAEpB,IAAME,EAAQV,EAAEQ,EAAOhB,UACjBmB,EAAiBJ,EAAS,GAAAK,OAAGF,EAAK,MAAAE,OAAKL,GAAWG,EAExD,OACEG,UACEC,cAAA,OAAA,CAAAC,UAAU,+JACO5B,EAAiB,uBACZwB,EAAc,aACxBA,GAEZE,UAAAC,cAACE,EAAeA,gBAAA,CAAC1B,KAAMkB,EAAOlB,KAAMyB,UAAU,kBAGpD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
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"),require("../../node_modules/@babel/runtime/helpers/defineProperty.js"),require("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js"),require("../../node_modules/@babel/runtime/helpers/typeof.js"),require("../../node_modules/html-parse-stringify/dist/html-parse-stringify.js"),require("../../node_modules/react-i18next/dist/es/context.js");var r=require("../../node_modules/react-i18next/dist/es/useTranslation.js");require("../../node_modules/@babel/runtime/helpers/slicedToArray.js");var i=require("../../node_modules/@fortawesome/react-fontawesome/dist/index.js"),n=require("../../node_modules/@fortawesome/free-solid-svg-icons/index.mjs.js"),o=require("../CustomThemedTooltip.js"),a=require("../../node_modules/react-redux/es/hooks/useSelector.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(t),u="tooltip-number-popover",c=function(e){var t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="-1000px",t.style.opacity="0",document.body.appendChild(t),t.select();var r=!1;try{r=document.execCommand("copy")}catch(e){r=!1}return document.body.removeChild(t),r},p=t.memo(function(){var s=r.useTranslation().t,p=a.useSelector(function(e){return e.currentCall}).number,d=t.useState(!1),m=d[0],f=d[1],b=t.useRef(null),v=t.useRef(!0);t.useEffect(function(){return v.current=!0,function(){v.current=!1,b.current&&clearTimeout(b.current)}},[]),t.useEffect(function(){f(!1)},[p]);var h=t.useCallback(function(){return e.__awaiter(void 0,void 0,void 0,function(){return e.__generator(this,function(t){switch(t.label){case 0:return p?[4,(r=p,e.__awaiter(void 0,void 0,void 0,function(){var t;return e.__generator(this,function(e){switch(e.label){case 0:if(!(null===(t=null===navigator||void 0===navigator?void 0:navigator.clipboard)||void 0===t?void 0:t.writeText)||!window.isSecureContext)return[3,4];e.label=1;case 1:return e.trys.push([1,3,,4]),[4,navigator.clipboard.writeText(r)];case 2:return e.sent(),[2,!0];case 3:return e.sent(),[2,c(r)];case 4:return[2,c(r)]}})}))]:[2];case 1:return t.sent()&&v.current?(f(!0),b.current&&clearTimeout(b.current),b.current=setTimeout(function(){v.current&&f(!1)},2e3),[2]):[2]}var r})})},[p]);return p?l.default.createElement("span",{className:"pi-inline-flex pi-flex-none pi-items-center","data-stop-propagation":!0},l.default.createElement("button",{type:"button",className:"pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500","data-tooltip-id":u,"data-stop-propagation":!0,"aria-label":s("Call.Show number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:n.faEllipsis,className:"pi-h-4 pi-w-4","data-stop-propagation":!0})),l.default.createElement(o.CustomThemedTooltip,{id:u,place:"bottom",offset:12,maxWidth:"300px",openOnClick:!0,clickable:!0,globalCloseEvents:{clickOutsideAnchor:!0,escape:!0}},l.default.createElement("div",{className:"pi-flex pi-items-center pi-gap-2","data-stop-propagation":!0},l.default.createElement("span",{className:"pi-whitespace-nowrap","data-stop-propagation":!0},p),l.default.createElement("button",{type:"button",onClick:h,className:"pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ".concat(m?"pi-text-inherit":"pi-text-emerald-500 dark:pi-text-emerald-700"),"data-stop-propagation":!0,"aria-label":s(m?"Call.Copied":"Call.Copy number")||""},l.default.createElement(i.FontAwesomeIcon,{icon:m?n.faCheck:n.faCopy,className:"pi-h-4 pi-w-4","data-stop-propagation":!0}))))):null});exports.default=p;
|
|
2
|
-
//# sourceMappingURL=NumberPopover.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NumberPopover.js","sources":["../../../src/components/CallView/NumberPopover.tsx"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport React, { type FC, memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useTranslation } from 'react-i18next'\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck, faCopy, faEllipsis } from '@fortawesome/free-solid-svg-icons'\nimport { RootState } from '../../store'\nimport { CustomThemedTooltip } from '../CustomThemedTooltip'\n\nconst NUMBER_POPOVER_ID = 'tooltip-number-popover'\nconst COPIED_FEEDBACK_MS = 2000\n\nconst copyWithTextarea = (text: string): boolean => {\n const textarea = document.createElement('textarea')\n textarea.value = text\n textarea.setAttribute('readonly', '')\n textarea.style.position = 'fixed'\n textarea.style.top = '-1000px'\n textarea.style.opacity = '0'\n document.body.appendChild(textarea)\n textarea.select()\n let copied = false\n try {\n copied = document.execCommand('copy')\n } catch (error) {\n copied = false\n }\n document.body.removeChild(textarea)\n return copied\n}\n\nconst copyToClipboard = async (text: string): Promise<boolean> => {\n if (navigator?.clipboard?.writeText && window.isSecureContext) {\n try {\n await navigator.clipboard.writeText(text)\n return true\n } catch (error) {\n return copyWithTextarea(text)\n }\n }\n return copyWithTextarea(text)\n}\n\nconst NumberPopover: FC = () => {\n const { t } = useTranslation()\n const { number } = useSelector((state: RootState) => state.currentCall)\n const [copied, setCopied] = useState(false)\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isMountedRef = useRef(true)\n\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n }\n }, [])\n\n useEffect(() => {\n setCopied(false)\n }, [number])\n\n const handleCopy = useCallback(async () => {\n if (!number) return\n const success = await copyToClipboard(number)\n if (!success || !isMountedRef.current) return\n setCopied(true)\n if (timeoutRef.current) clearTimeout(timeoutRef.current)\n timeoutRef.current = setTimeout(() => {\n if (isMountedRef.current) setCopied(false)\n }, COPIED_FEEDBACK_MS)\n }, [number])\n\n if (!number) return null\n\n return (\n <span className='pi-inline-flex pi-flex-none pi-items-center' data-stop-propagation={true}>\n <button\n type='button'\n className='pi-inline-flex pi-flex-none pi-items-center pi-justify-center pi-h-6 pi-w-6 pi--m-1 pi-p-1 pi-rounded-md pi-bg-transparent pi-text-gray-700 dark:pi-text-gray-200 hover:pi-bg-gray-200/70 dark:hover:pi-bg-gray-700/70 focus:pi-outline-none focus-visible:pi-ring-2 focus-visible:pi-ring-emerald-500'\n data-tooltip-id={NUMBER_POPOVER_ID}\n data-stop-propagation={true}\n aria-label={t('Call.Show number') || ''}\n >\n <FontAwesomeIcon icon={faEllipsis} className='pi-h-4 pi-w-4' data-stop-propagation={true} />\n </button>\n <CustomThemedTooltip\n id={NUMBER_POPOVER_ID}\n place='bottom'\n offset={12}\n maxWidth='300px'\n openOnClick\n clickable\n globalCloseEvents={{ clickOutsideAnchor: true, escape: true }}\n >\n <div className='pi-flex pi-items-center pi-gap-2' data-stop-propagation={true}>\n <span className='pi-whitespace-nowrap' data-stop-propagation={true}>\n {number}\n </span>\n <button\n type='button'\n onClick={handleCopy}\n className={`pi-inline-flex pi-items-center pi-justify-center pi-h-4 pi-w-4 pi-p-0 pi-bg-transparent focus:pi-outline-none ${\n copied ? 'pi-text-inherit' : 'pi-text-emerald-500 dark:pi-text-emerald-700'\n }`}\n data-stop-propagation={true}\n aria-label={(copied ? t('Call.Copied') : t('Call.Copy number')) || ''}\n >\n <FontAwesomeIcon\n icon={copied ? faCheck : faCopy}\n className='pi-h-4 pi-w-4'\n data-stop-propagation={true}\n />\n </button>\n </div>\n </CustomThemedTooltip>\n </span>\n )\n}\n\nexport default memo(NumberPopover)\n"],"names":["NUMBER_POPOVER_ID","copyWithTextarea","text","textarea","document","createElement","value","setAttribute","style","position","top","opacity","body","appendChild","select","copied","execCommand","error","removeChild","memo","t","useTranslation","number","useSelector","state","currentCall","_a","useState","setCopied","timeoutRef","useRef","isMountedRef","useEffect","current","clearTimeout","handleCopy","useCallback","__awaiter","navigator","clipboard","writeText","window","isSecureContext","_b","sent","setTimeout","React","className","type","FontAwesomeIcon","icon","faEllipsis","CustomThemedTooltip","id","place","offset","maxWidth","openOnClick","clickable","globalCloseEvents","clickOutsideAnchor","escape","onClick","concat","faCheck","faCopy"],"mappings":"yhCAWMA,EAAoB,yBAGpBC,EAAmB,SAACC,GACxB,IAAMC,EAAWC,SAASC,cAAc,YACxCF,EAASG,MAAQJ,EACjBC,EAASI,aAAa,WAAY,IAClCJ,EAASK,MAAMC,SAAW,QAC1BN,EAASK,MAAME,IAAM,UACrBP,EAASK,MAAMG,QAAU,IACzBP,SAASQ,KAAKC,YAAYV,GAC1BA,EAASW,SACT,IAAIC,GAAS,EACb,IACEA,EAASX,SAASY,YAAY,OAC/B,CAAC,MAAOC,GACPF,GAAS,CACV,CAED,OADAX,SAASQ,KAAKM,YAAYf,GACnBY,CACT,EA2FeI,EAAAA,EAAAA,KA7EW,WAChB,IAAAC,EAAMC,qBACNC,EAAWC,cAAY,SAACC,GAAqB,OAAAA,EAAMC,qBACrDC,EAAsBC,EAAAA,UAAS,GAA9BZ,EAAMW,EAAA,GAAEE,EAASF,EAAA,GAClBG,EAAaC,SAA6C,MAC1DC,EAAeD,UAAO,GAE5BE,EAAAA,UAAU,WAER,OADAD,EAAaE,SAAU,EAChB,WACLF,EAAaE,SAAU,EACnBJ,EAAWI,SAASC,aAAaL,EAAWI,QAClD,CACD,EAAE,IAEHD,EAAAA,UAAU,WACRJ,GAAU,EACZ,EAAG,CAACN,IAEJ,IAAMa,EAAaC,cAAY,WAAA,OAAAC,EAAAA,eAAA,OAAA,OAAA,EAAA,wEAC7B,OAAKf,EACW,CAAA,GAjCWpB,EAiCWoB,EAjCCe,EAAAA,eAAA,OAAA,OAAA,EAAA,8EACrC,KAAoB,QAApBX,EAAA,OAAAY,oBAAAA,iBAAAA,UAAWC,iBAAS,IAAAb,OAAA,EAAAA,EAAEc,aAAaC,OAAOC,gBAA1C,MAAyD,CAAA,EAAA,oBAEzD,6BAAM,CAAA,EAAAJ,UAAUC,UAAUC,UAAUtC,WACpC,OADAyC,EAAAC,OACA,CAAA,GAAO,UAEP,gBAAA,CAAA,EAAO3C,EAAiBC,IAG5B,KAAA,EAAA,MAAA,CAAA,EAAOD,EAAiBC,WAuBH,CAAA,UAEnB,OADgBwB,EAA6BkB,QAC5Bb,EAAaE,SAC9BL,GAAU,GACNC,EAAWI,SAASC,aAAaL,EAAWI,SAChDJ,EAAWI,QAAUY,WAAW,WAC1Bd,EAAaE,SAASL,GAAU,EACrC,EA5DsB,UAuDsB,CAAA,GAlCzB,IAAO1B,GAwC5B,EAAA,EAAE,CAACoB,IAEJ,OAAKA,EAGHwB,EAAAA,QAAMzC,cAAA,OAAA,CAAA0C,UAAU,uEAAqE,GACnFD,EAAA,QAAAzC,cAAA,SAAA,CACE2C,KAAK,SACLD,UAAU,ySAAwS,kBACjS/C,EAAiB,yBACX,EACX,aAAAoB,EAAE,qBAAuB,IAErC0B,EAAAA,QAAAzC,cAAC4C,kBAAe,CAACC,KAAMC,EAAAA,WAAYJ,UAAU,gBAAe,yBAAwB,KAEtFD,UAAAzC,cAAC+C,EAAmBA,oBAAA,CAClBC,GAAIrD,EACJsD,MAAM,SACNC,OAAQ,GACRC,SAAS,QACTC,aAAW,EACXC,WAAS,EACTC,kBAAmB,CAAEC,oBAAoB,EAAMC,QAAQ,IAEvDf,EAAA,QAAAzC,cAAA,MAAA,CAAK0C,UAAU,mCAAkC,yBAAwB,GACvED,UAAAzC,cAAA,OAAA,CAAM0C,UAAU,gDAA8C,GAC3DzB,GAEHwB,EAAAA,QAAAzC,cAAA,SAAA,CACE2C,KAAK,SACLc,QAAS3B,EACTY,UAAW,iHACTgB,OAAAhD,EAAS,kBAAoB,gDAER,yBAAA,eACDK,EAATL,EAAW,cAAmB,qBAAwB,IAEnE+B,EAAC,QAAAzC,cAAA4C,EAAeA,gBACd,CAAAC,KAAMnC,EAASiD,EAAAA,QAAUC,EAAAA,OACzBlB,UAAU,gBACa,yBAAA,QAtCf,IA6CtB"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";function n(n){if(!n||"string"!=typeof n||n.startsWith("Local/"))return"";var e=n.lastIndexOf("-"),t=(e>0?n.substring(0,e):n).split("/");return t.length>1?t[1]:""}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getCounterpartDeviceType=function(e,t){var r,i,o,u=t.extensions,l=t.endpoints;if(!e||!u)return"";var d="".concat(e.counterpartNum||""),v=null===(r=u[d])||void 0===r?void 0:r.username;if(!v)return"";var c=[null===(i=e.chSource)||void 0===i?void 0:i.channel,null===(o=e.chDest)||void 0===o?void 0:o.channel].map(n).filter(function(n){return n&&n!==e.owner}).find(function(n){var e;return(null===(e=u[n])||void 0===e?void 0:e.username)===v})||"";return c||(c=function(n,e,t){if(!n.linkedId)return"";for(var r=Object.values(t).filter(function(t){return(null==t?void 0:t.username)===e&&(null==t?void 0:t.exten)!==n.owner}),i=0,o=r;i<o.length;i++){var u=o[i];if(Object.values((null==u?void 0:u.conversations)||{}).find(function(e){return(null==e?void 0:e.linkedId)===n.linkedId&&(n.connected?e.connected:"out"===e.direction)}))return u.exten}return""}(e,v,u)),c?function(n,e,t){var r,i,o;return(null===(o=((null===(i=null===(r=null==t?void 0:t[e])||void 0===r?void 0:r.endpoints)||void 0===i?void 0:i.extension)||[]).find(function(e){return(null==e?void 0:e.id)===n}))||void 0===o?void 0:o.type)||""}(c,v,l):""},exports.getExtensionFromChannel=n;
|
|
2
|
-
//# sourceMappingURL=counterpartDevice.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"counterpartDevice.js","sources":["../../../src/lib/phone/counterpartDevice.ts"],"sourcesContent":["// Copyright (C) 2026 Nethesis S.r.l.\n// SPDX-License-Identifier: AGPL-3.0-or-later\n\nimport type {\n ConversationTypes,\n ExtensionsTypes,\n ExtensionTypeTypes,\n UsersEndpointsTypes,\n} from '../../types'\n\ninterface UsersDataTypes {\n extensions: ExtensionsTypes | null\n endpoints: UsersEndpointsTypes | null\n}\n\nexport function getExtensionFromChannel(channel?: string): string {\n if (!channel || typeof channel !== 'string' || channel.startsWith('Local/')) return ''\n const dashIndex = channel.lastIndexOf('-')\n const base = dashIndex > 0 ? channel.substring(0, dashIndex) : channel\n const parts = base.split('/')\n return parts.length > 1 ? parts[1] : ''\n}\n\nfunction getDeviceType(\n exten: string,\n username: string,\n endpoints: UsersEndpointsTypes | null,\n): ExtensionTypeTypes | '' {\n const userExtensions = endpoints?.[username]?.endpoints?.extension || []\n return userExtensions.find((extension) => extension?.id === exten)?.type || ''\n}\n\nfunction findDeviceByLinkedId(\n conv: ConversationTypes,\n username: string,\n extensions: ExtensionsTypes,\n): string {\n if (!conv.linkedId) return ''\n\n const candidates = Object.values(extensions).filter(\n (extension) => extension?.username === username && extension?.exten !== conv.owner,\n )\n\n for (const extension of candidates) {\n const conversations = Object.values(extension?.conversations || {})\n const match = conversations.find(\n (conversation) =>\n conversation?.linkedId === conv.linkedId &&\n (conv.connected ? conversation.connected : conversation.direction === 'out'),\n )\n if (match) return extension.exten\n }\n\n return ''\n}\n\nexport function getCounterpartDeviceType(\n conv: ConversationTypes,\n users: UsersDataTypes,\n): ExtensionTypeTypes | '' {\n const { extensions, endpoints } = users\n if (!conv || !extensions) return ''\n\n const counterpartNum = `${conv.counterpartNum || ''}`\n const username = extensions[counterpartNum]?.username\n if (!username) return ''\n\n const channelExtensions = [conv.chSource?.channel, conv.chDest?.channel]\n .map(getExtensionFromChannel)\n .filter((exten) => exten && exten !== conv.owner)\n\n let deviceExten =\n channelExtensions.find((exten) => extensions[exten]?.username === username) || ''\n\n if (!deviceExten) {\n deviceExten = findDeviceByLinkedId(conv, username, extensions)\n }\n\n if (!deviceExten) return ''\n\n return getDeviceType(deviceExten, username, endpoints)\n}\n"],"names":["getExtensionFromChannel","channel","startsWith","dashIndex","lastIndexOf","parts","substring","split","length","conv","users","extensions","endpoints","counterpartNum","concat","username","_a","deviceExten","_b","chSource","chDest","_c","map","filter","exten","owner","find","linkedId","candidates","Object","values","extension","candidates_1","_i","conversations","conversation","connected","direction","findDeviceByLinkedId","id","type","getDeviceType"],"mappings":"aAeM,SAAUA,EAAwBC,GACtC,IAAKA,GAA8B,iBAAZA,GAAwBA,EAAQC,WAAW,UAAW,MAAO,GACpF,IAAMC,EAAYF,EAAQG,YAAY,KAEhCC,GADOF,EAAY,EAAIF,EAAQK,UAAU,EAAGH,GAAaF,GAC5CM,MAAM,KACzB,OAAOF,EAAMG,OAAS,EAAIH,EAAM,GAAK,EACvC,yFAmCgB,SACdI,EACAC,aAEQC,EAA0BD,EAAKC,WAAnBC,EAAcF,EAAKE,UACvC,IAAKH,IAASE,EAAY,MAAO,GAEjC,IAAME,EAAiB,GAAGC,OAAAL,EAAKI,gBAAkB,IAC3CE,EAAuC,QAA5BC,EAAAL,EAAWE,UAAiB,IAAAG,OAAA,EAAAA,EAAAD,SAC7C,IAAKA,EAAU,MAAO,GAEtB,IAIIE,EAJsB,CAAc,QAAbC,EAAAT,EAAKU,gBAAQ,IAAAD,OAAA,EAAAA,EAAEjB,QAAoB,UAAXQ,EAAKW,cAAM,IAAAC,OAAA,EAAAA,EAAEpB,SAC7DqB,IAAItB,GACJuB,OAAO,SAACC,GAAU,OAAAA,GAASA,IAAUf,EAAKgB,KAAxB,GAGDC,KAAK,SAACF,GAAU,IAAAR,EAAA,OAAiB,QAAjBA,EAAAL,EAAWa,UAAM,IAAAR,OAAA,EAAAA,EAAED,YAAaA,CAAQ,IAAK,GAMjF,OAJKE,IACHA,EA3CJ,SACER,EACAM,EACAJ,GAEA,IAAKF,EAAKkB,SAAU,MAAO,GAM3B,IAJA,IAAMC,EAAaC,OAAOC,OAAOnB,GAAYY,OAC3C,SAACQ,GAAc,OAAAA,aAAS,EAATA,EAAWhB,YAAaA,IAAYgB,aAAS,EAATA,EAAWP,SAAUf,EAAKgB,KAAK,OAG5DO,EAAAJ,EAAAK,EAAUD,EAAAxB,OAAVyB,IAAY,CAA/B,IAAMF,EAASC,EAAAC,GAOlB,GANsBJ,OAAOC,QAAOC,eAAAA,EAAWG,gBAAiB,CAAE,GACtCR,KAC1B,SAACS,GACC,OAAAA,aAAY,EAAZA,EAAcR,YAAalB,EAAKkB,WAC/BlB,EAAK2B,UAAYD,EAAaC,UAAuC,QAA3BD,EAAaE,UADxD,GAGO,OAAON,EAAUP,KAC7B,CAED,MAAO,EACT,CAqBkBc,CAAqB7B,EAAMM,EAAUJ,IAGhDM,EAvDP,SACEO,EACAT,EACAH,aAGA,OAAoE,QAA7DS,cADuC,QAAvBL,EAAAJ,aAAS,EAATA,EAAYG,UAAW,IAAAC,OAAA,EAAAA,EAAAJ,gCAAWmB,YAAa,IAChDL,KAAK,SAACK,GAAc,OAAAA,aAAS,EAATA,EAAWQ,MAAOf,CAAK,UAAG,IAAAH,OAAA,EAAAA,EAAAmB,OAAQ,EAC9E,CAkDSC,CAAcxB,EAAaF,EAAUH,GAFnB,EAG3B"}
|