callix-dialer-widget 1.3.18 → 1.4.0
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.
|
@@ -6,7 +6,7 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
|
|
|
6
6
|
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
7
|
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
8
|
var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
|
|
9
|
-
import React, { useEffect, useState, useRef, useMemo, useCallback, StrictMode } from "react";
|
|
9
|
+
import React, { useEffect, useState, useRef, useMemo, useCallback, createContext, StrictMode, useContext } from "react";
|
|
10
10
|
import require$$0$2, { createPortal } from "react-dom";
|
|
11
11
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
12
12
|
function getAugmentedNamespace(n) {
|
|
@@ -53715,6 +53715,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
|
|
|
53715
53715
|
var _a2, _b;
|
|
53716
53716
|
const operator = clientSdkReactExports.useCallOperator();
|
|
53717
53717
|
const isMiniMode = variant === "min";
|
|
53718
|
+
const { skipManualQualification } = useDialerConfig();
|
|
53719
|
+
console.log("[FloatingDialer/AuthenticatedDialer] 🔧 skipManualQualification:", skipManualQualification);
|
|
53718
53720
|
const operatorState = clientSdkReactExports.useCallOperatorState();
|
|
53719
53721
|
const currentCall = clientSdkReactExports.useCallOperatorCurrentCall();
|
|
53720
53722
|
const currentCallInfo = clientSdkReactExports.useCallOperatorCurrentCallInfo();
|
|
@@ -53827,9 +53829,9 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
|
|
|
53827
53829
|
}, [callState, requestAvailability]);
|
|
53828
53830
|
useEffect(() => {
|
|
53829
53831
|
if (callState === "afterCall") {
|
|
53830
|
-
const
|
|
53831
|
-
if (
|
|
53832
|
-
console.log("[FloatingDialer]
|
|
53832
|
+
const shouldSkipCampaignQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
|
|
53833
|
+
if (shouldSkipCampaignQualification) {
|
|
53834
|
+
console.log("[FloatingDialer] 🚀 skipCallQualification ativado - finalizando automaticamente");
|
|
53833
53835
|
if (typeof finishAfterCall === "function") {
|
|
53834
53836
|
void Promise.resolve(
|
|
53835
53837
|
finishAfterCall({
|
|
@@ -53842,8 +53844,8 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
|
|
|
53842
53844
|
}
|
|
53843
53845
|
const isManualCall = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "manual";
|
|
53844
53846
|
const hasNoQualifications = successQualifications.length === 0 && discardQualifications.length === 0;
|
|
53845
|
-
if (isManualCall && hasNoQualifications) {
|
|
53846
|
-
console.log("[FloatingDialer]
|
|
53847
|
+
if (isManualCall && (skipManualQualification || hasNoQualifications)) {
|
|
53848
|
+
console.log("[FloatingDialer] 🚀 Chamada manual - finalizando automaticamente (skipManualQualification:", skipManualQualification, ", hasNoQualifications:", hasNoQualifications, ")");
|
|
53847
53849
|
if (typeof finishAfterCall === "function") {
|
|
53848
53850
|
void Promise.resolve(
|
|
53849
53851
|
finishAfterCall({
|
|
@@ -53859,7 +53861,7 @@ function AuthenticatedDialer({ username, dialValue, setDialValue, onLogout, vari
|
|
|
53859
53861
|
setSelectedQualificationId(null);
|
|
53860
53862
|
setAfterCallError(null);
|
|
53861
53863
|
}
|
|
53862
|
-
}, [callState, successQualifications.length, discardQualifications.length, currentCallInfo, finishAfterCall]);
|
|
53864
|
+
}, [callState, successQualifications.length, discardQualifications.length, currentCallInfo, finishAfterCall, skipManualQualification]);
|
|
53863
53865
|
useEffect(() => {
|
|
53864
53866
|
if (typeof window === "undefined") {
|
|
53865
53867
|
return;
|
|
@@ -56089,6 +56091,7 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
|
|
|
56089
56091
|
if (!isAuthenticated || !isMiniMode) {
|
|
56090
56092
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingDialer, { variant, isAuthenticated, ...props });
|
|
56091
56093
|
}
|
|
56094
|
+
const { skipManualQualification } = useDialerConfig();
|
|
56092
56095
|
const operatorState = clientSdkReactExports.useCallOperatorState();
|
|
56093
56096
|
const currentCall = clientSdkReactExports.useCallOperatorCurrentCall();
|
|
56094
56097
|
const currentCallInfo = clientSdkReactExports.useCallOperatorCurrentCallInfo();
|
|
@@ -56129,8 +56132,8 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
|
|
|
56129
56132
|
useEffect(() => {
|
|
56130
56133
|
if (!isMiniMode) return;
|
|
56131
56134
|
if (isAfterCall) {
|
|
56132
|
-
const
|
|
56133
|
-
if (
|
|
56135
|
+
const shouldSkipCampaignQualification = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "campaign" && currentCallInfo.info.campaign.skipCallQualification === true;
|
|
56136
|
+
if (shouldSkipCampaignQualification && finishAfterCall) {
|
|
56134
56137
|
void Promise.resolve(
|
|
56135
56138
|
finishAfterCall({
|
|
56136
56139
|
result: "success",
|
|
@@ -56141,7 +56144,8 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
|
|
|
56141
56144
|
}
|
|
56142
56145
|
const isManualCall = (currentCallInfo == null ? void 0 : currentCallInfo.type) === "manual";
|
|
56143
56146
|
const hasNoQualifications = successQualifications.length === 0 && discardQualifications.length === 0;
|
|
56144
|
-
if (isManualCall && hasNoQualifications && finishAfterCall) {
|
|
56147
|
+
if (isManualCall && (skipManualQualification || hasNoQualifications) && finishAfterCall) {
|
|
56148
|
+
console.log("[InlineDialer] 🚀 Chamada manual - finalizando automaticamente (skipManualQualification:", skipManualQualification, ", hasNoQualifications:", hasNoQualifications, ")");
|
|
56145
56149
|
void Promise.resolve(
|
|
56146
56150
|
finishAfterCall({
|
|
56147
56151
|
result: "success",
|
|
@@ -56158,7 +56162,7 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
|
|
|
56158
56162
|
} else {
|
|
56159
56163
|
setIsQualificationModalOpen(false);
|
|
56160
56164
|
}
|
|
56161
|
-
}, [isMiniMode, isAfterCall, currentCallInfo, finishAfterCall, successQualifications, discardQualifications]);
|
|
56165
|
+
}, [isMiniMode, isAfterCall, currentCallInfo, finishAfterCall, successQualifications, discardQualifications, skipManualQualification]);
|
|
56162
56166
|
useEffect(() => {
|
|
56163
56167
|
if (!isMiniMode) return;
|
|
56164
56168
|
if (!isInCall && !isConnecting && !isAfterCall) {
|
|
@@ -56353,6 +56357,14 @@ function InlineDialer({ variant = "default", isAuthenticated, ...props }) {
|
|
|
56353
56357
|
] })
|
|
56354
56358
|
] });
|
|
56355
56359
|
}
|
|
56360
|
+
const DialerConfigContext = createContext(null);
|
|
56361
|
+
function useDialerConfig() {
|
|
56362
|
+
const context = useContext(DialerConfigContext);
|
|
56363
|
+
if (!context) {
|
|
56364
|
+
return { skipManualQualification: false };
|
|
56365
|
+
}
|
|
56366
|
+
return context;
|
|
56367
|
+
}
|
|
56356
56368
|
function deriveOptionsFromElement(element) {
|
|
56357
56369
|
const result2 = {};
|
|
56358
56370
|
const datasetMode = element.getAttribute("data-callix-mode") || element.dataset.callixMode || element.dataset.mode;
|
|
@@ -56440,7 +56452,8 @@ class CallixDialerWidget {
|
|
|
56440
56452
|
const getStorageKeys = (username) => ({
|
|
56441
56453
|
SESSION_TOKEN: `callix_dialer_${username}_session_token`,
|
|
56442
56454
|
DOMAIN: `callix_dialer_${username}_domain`,
|
|
56443
|
-
TIMESTAMP: `callix_dialer_${username}_timestamp
|
|
56455
|
+
TIMESTAMP: `callix_dialer_${username}_timestamp`,
|
|
56456
|
+
SKIP_MANUAL_QUALIFICATION: `callix_dialer_${username}_skip_manual_qualification`
|
|
56444
56457
|
});
|
|
56445
56458
|
const LAST_USERNAME_KEY = "callix_dialer_last_username";
|
|
56446
56459
|
const SESSION_EXPIRATION_MS = 8 * 60 * 60 * 1e3;
|
|
@@ -56452,6 +56465,7 @@ function DialerWrapper({ options }) {
|
|
|
56452
56465
|
const [sessionToken, setSessionToken] = useState(null);
|
|
56453
56466
|
const [callixDomain, setCallixDomain] = useState(null);
|
|
56454
56467
|
const [isRestoringSession, setIsRestoringSession] = useState(true);
|
|
56468
|
+
const [skipManualQualification, setSkipManualQualification] = useState(false);
|
|
56455
56469
|
const presetUsername = options.presetUsername ? options.presetUsername.trim() : null;
|
|
56456
56470
|
const uiVariant = options.uiVariant ?? "default";
|
|
56457
56471
|
const autoLoginAttemptedRef = useRef(false);
|
|
@@ -56485,6 +56499,10 @@ function DialerWrapper({ options }) {
|
|
|
56485
56499
|
setSessionToken(storedToken);
|
|
56486
56500
|
setCallixDomain(storedDomain);
|
|
56487
56501
|
setIsAuthenticated(true);
|
|
56502
|
+
const storedSkipQualification = localStorage.getItem(STORAGE_KEYS.SKIP_MANUAL_QUALIFICATION);
|
|
56503
|
+
if (storedSkipQualification) {
|
|
56504
|
+
setSkipManualQualification(storedSkipQualification === "true");
|
|
56505
|
+
}
|
|
56488
56506
|
} else {
|
|
56489
56507
|
console.log("[Callix Dialer] Sessão expirada, limpando...");
|
|
56490
56508
|
localStorage.removeItem(LAST_USERNAME_KEY);
|
|
@@ -56505,6 +56523,7 @@ function DialerWrapper({ options }) {
|
|
|
56505
56523
|
}
|
|
56506
56524
|
}, [presetUsername, username]);
|
|
56507
56525
|
const handleLogin = useCallback(async (user) => {
|
|
56526
|
+
var _a2, _b;
|
|
56508
56527
|
setIsLoading(true);
|
|
56509
56528
|
setError(null);
|
|
56510
56529
|
try {
|
|
@@ -56528,6 +56547,35 @@ function DialerWrapper({ options }) {
|
|
|
56528
56547
|
setUsername(user);
|
|
56529
56548
|
setIsAuthenticated(true);
|
|
56530
56549
|
setError(null);
|
|
56550
|
+
try {
|
|
56551
|
+
const domain = data.domain || "villelabrasil.callix.com.br";
|
|
56552
|
+
const configUrl = `https://${domain}/sdk/v1/client/user-service/config`;
|
|
56553
|
+
console.log("[Callix Dialer] 🔍 Buscando configuração do serviço:", configUrl);
|
|
56554
|
+
const configResponse = await fetch(configUrl, {
|
|
56555
|
+
headers: {
|
|
56556
|
+
"Authorization": `Bearer ${data.userSessionToken}`
|
|
56557
|
+
},
|
|
56558
|
+
credentials: "omit"
|
|
56559
|
+
});
|
|
56560
|
+
console.log("[Callix Dialer] 📡 Resposta da config:", configResponse.status);
|
|
56561
|
+
if (configResponse.ok) {
|
|
56562
|
+
const configData = await configResponse.json();
|
|
56563
|
+
console.log("[Callix Dialer] 📦 Dados da config recebidos:", JSON.stringify(configData, null, 2));
|
|
56564
|
+
const shouldSkipQualification = ((_b = (_a2 = configData == null ? void 0 : configData.service) == null ? void 0 : _a2.outboundOptions) == null ? void 0 : _b.skipQualification) === true;
|
|
56565
|
+
console.log("[Callix Dialer] ✅ skipQualification configurado:", shouldSkipQualification);
|
|
56566
|
+
setSkipManualQualification(shouldSkipQualification);
|
|
56567
|
+
if (typeof window !== "undefined") {
|
|
56568
|
+
const STORAGE_KEYS = getStorageKeys(user);
|
|
56569
|
+
localStorage.setItem(STORAGE_KEYS.SKIP_MANUAL_QUALIFICATION, shouldSkipQualification.toString());
|
|
56570
|
+
console.log("[Callix Dialer] 💾 skipQualification salvo no localStorage");
|
|
56571
|
+
}
|
|
56572
|
+
} else {
|
|
56573
|
+
const errorText = await configResponse.text();
|
|
56574
|
+
console.warn("[Callix Dialer] ⚠️ Erro ao buscar config do serviço:", configResponse.status, errorText);
|
|
56575
|
+
}
|
|
56576
|
+
} catch (configErr) {
|
|
56577
|
+
console.error("[Callix Dialer] ❌ Erro ao buscar config do serviço:", configErr);
|
|
56578
|
+
}
|
|
56531
56579
|
if (typeof window !== "undefined") {
|
|
56532
56580
|
try {
|
|
56533
56581
|
const STORAGE_KEYS = getStorageKeys(user);
|
|
@@ -56603,7 +56651,7 @@ function DialerWrapper({ options }) {
|
|
|
56603
56651
|
}
|
|
56604
56652
|
);
|
|
56605
56653
|
}
|
|
56606
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56654
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(DialerConfigContext.Provider, { value: { skipManualQualification }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
56607
56655
|
clientSdkReactExports.CallixClientProvider,
|
|
56608
56656
|
{
|
|
56609
56657
|
domain: callixDomain,
|
|
@@ -56621,7 +56669,7 @@ function DialerWrapper({ options }) {
|
|
|
56621
56669
|
}
|
|
56622
56670
|
)
|
|
56623
56671
|
}
|
|
56624
|
-
);
|
|
56672
|
+
) });
|
|
56625
56673
|
}
|
|
56626
56674
|
function init(options) {
|
|
56627
56675
|
const widget = new CallixDialerWidget(options);
|
|
@@ -56636,6 +56684,7 @@ if (typeof window !== "undefined") {
|
|
|
56636
56684
|
window.CallixDialer = CallixDialer;
|
|
56637
56685
|
}
|
|
56638
56686
|
export {
|
|
56639
|
-
CallixDialer as default
|
|
56687
|
+
CallixDialer as default,
|
|
56688
|
+
useDialerConfig
|
|
56640
56689
|
};
|
|
56641
56690
|
//# sourceMappingURL=callix-dialer.es.js.map
|