// Lenovo LAS // Custom Script to disable option based on channel availability !function () { function observeElement(element, callback, config) { try { // Options for the observer (which mutations to observe) if (typeof config == "undefined") config = { attributes: true, childList: true, subtree: true }; // Create an observer instance linked to the callback function const observer = new MutationObserver(function (mutationsList, observer) { if (typeof callback === 'function') { callback(mutationsList, observer); } }); observer.observe(element, config); } catch (e) { } } function matchOptionToName(a, b) { return (a.startsWith("Customer Service") && b == "3") || (a.startsWith("Customer Service") && b == "2") || (a.startsWith("Sales") && b == "1") || (a.startsWith("SMB") && b == "2"); } function checkAvailability(pickListValue, channels) { for (var i = 0; i < channels.length; i++) { var name = channels[i].name; if (matchOptionToName(name, pickListValue)) { return true; } } return false; } function processPickListItems(listOptions) { var channels = insideFrontInterface.getAvailableAssistants(); for (var i = 0; i < listOptions.length; i++) { var value = _insideGraph.jQuery(listOptions[i]).attr('value'); if (!checkAvailability(value, channels)) { //_insideGraph.jQuery(listOptions[i]).addClass("disabled"); } else { //_insideGraph.jQuery(listOptions[i]).removeClass("disabled"); } } } function checkAddedNodes(e) { for (var i = 0; i < e.length; i++) { //console.log($(e[0].addedNodes.item(0))); for (var node of e[i].addedNodes) { var $item = _insideGraph.jQuery(node); if ($item.find(".picklist[fid='226']").length > 0) { processPickListItems($item.find(".picklist[fid='226']").find(".picklistOption")); } else { if ($item.find(".message[stepid='188']").length || $item.attr("stepid") == "188") { setTimeout(function () { checkPickListOptions(1) }, 500); } } } } } function checkPickListOptions(retry) { var $content = _insideGraph.jQuery(document.getElementById("insideChatFrame").contentWindow.document.getElementById("insideChatPaneContent")); if ($content.find(".picklist[fid='226']").length) { processPickListItems($content.find(".picklist[fid='226']").find(".picklistOption")); } else { if ($content.find(".message[stepid='188']").length && (!retry || retry <= 3)) { setTimeout(function () { checkPickListOptions((retry || 0) + 1) }, 500); } } } function checkButtonAvailability($button, available) { if (available) { $button.off("click").on("click", insideFrontInterface.openChatPane); $button.addClass("rn_ChatAvailable"); } else { $button.off("click") $button.removeClass("rn_ChatAvailable"); } } function matchChannels(matchChannels, availableChannels) { for (var i = 0; i < availableChannels.length; i++) { if (matchChannels.indexOf(availableChannels[i].name) >= 0) { return true; } } return false; } window._insideCustomScript = window._insideCustomScript || {}; window._insideCustomScript.checkContactUsAvailability = checkContactUsAvailability; function checkContactUsAvailability() { var $ = _insideGraph.jQuery; var $buttons = $('.insideContactUsLink'); if (!$buttons.length) return; var availableChannels = insideFrontInterface.getAvailableAssistants(); checkButtonAvailability($("#contactServiceContainer"), matchChannels(["Customer Service"], availableChannels)); checkButtonAvailability($("#contactSalesContainer"), matchChannels(["Sales"], availableChannels)); checkButtonAvailability($("#contactBusinessSalesContainer"), matchChannels(["SMB", "VSB"], availableChannels)); } _insideGraph.defer(function () { _insideGraph.jQuery(document.getElementById('insideChatFrame').contentWindow.document).find('head').append(''); observeElement(document.getElementById("insideChatFrame").contentWindow.document.getElementById("insideChatPaneContent"), checkAddedNodes, { childList: true }); checkPickListOptions(); }, function () { return typeof insideChatPane !== "undefined" && typeof insideChatPane.chatPane !== "undefined" }); _insideGraph.defer(function () { _insideGraph.bind("openchatv2", function () { checkPickListOptions(); }) }, function () { return typeof _insideGraph != "undefined"; }); }() // Custom UI for VA picklist !function () { var phoneNumbers = { 'ar': '54-11-4006-9149', 'cl': '56-22-584-6990', 'co': '601-313-8086', 'mx': '52-55-5798-9520', 'pe': '51-1619-2234' }; var checkOrderLinks = { 'ar': new Date() > new Date(2024,2,18) ? 'https://www.lenovo.com/ar/es/trackmyorder' : 'https://ovp.lenovo.com/lenovo-ovp-new/public/showdetail?lang=es_ES', 'cl': 'https://www.lenovo.com/cl/es/trackmyorder', 'co': 'https://www.lenovo.com/co/es/trackmyorder', 'mx': 'https://www.lenovo.com/mx/es/trackmyorder', 'pe': 'https://www.lenovo.com/pe/es/trackmyorder' }; var countryCode = location.pathname.split('/')[1]; window._insideCustomConfig = { phones: [ 'Ó ' + phoneNumbers[countryCode] + ' - opción 2', 'Ó ' + phoneNumbers[countryCode] + ' - opción 3', '' ], hours: [ '', '', '' ], labelMoreResource: 'MÁS INFORMACIÓN', links: [ { label: 'Verificar estado del pedido', url: checkOrderLinks[countryCode] }, { label: 'Verificar estado de reparación', url: 'https://support.lenovo.com/' + countryCode + '/es/repairstatus/?linkTrack=footer:Support_Repair%20Status' }, { label: 'FAQs', url: 'https://lenovo.com/' + countryCode + '/es/faqs-compras' }, ], picklistIds: { initialMenu: 0, mainMenu: 226, smbMenu: 0, businessMenu: 0, }, chatPaneHeight: 345 }; let whatsappLink = ''; if(_insideGraph.current.subsiteId === '16') { // Mexico whatsappLink = 'https://api.whatsapp.com/send?phone=5215593372558'; } else if(_insideGraph.current.subsiteId === '15') { // Colombia whatsappLink = 'https://api.whatsapp.com/send?phone=5713789100'; } else if(_insideGraph.current.subsiteId === '14') { // Chile whatsappLink = 'https://api.whatsapp.com/send?phone=56233048817'; } else if(_insideGraph.current.subsiteId === '13') { // Argentina whatsappLink = 'https://api.whatsapp.com/send?phone=5491139869990'; } else if(_insideGraph.current.subsiteId === '17') { // Peru whatsappLink = 'https://api.whatsapp.com/send?phone=5180056330'; } //let whatsEnabled = location.search.search('whatsapp-button-test') > -1; if(whatsappLink /*&& whatsEnabled*/) { window._insideCustomConfig.whatsappLink = whatsappLink; window._insideCustomConfig.chatPaneHeight += 50; } }() // VA with custom UI !function ($) { var chatSVG = ''; function customizePicklist(picklist) { if (picklist.hasClass('custom-ui')) return; picklist.closest('.messageContent').addClass('custom-ui').attr('lang', insideFrontInterface.language); picklist.addClass('custom-ui').css('opacity', 0); if (_insideCustomConfig.smallFont) picklist.addClass('smallFont'); else if (_insideCustomConfig.mediumFont) picklist.addClass('mediumFont'); picklist.find('.picklistOption').prepend(chatSVG); for (var i = 0; i < _insideCustomConfig.phones.length; i++) { var phone = _insideCustomConfig.phones[i]; var hour = _insideCustomConfig.hours[i]; if (phone) { $(picklist.find('.picklistOption')[i]).after(''); } } var linksHtml = ''; picklist.append(linksHtml); addWhatsAppButton(picklist); } function addWhatsAppButton(picklist) { if(!window._insideCustomConfig.whatsappLink) return; picklist.find('.picklistOptions').prepend(``); } function checkPicklistOption() { var picklist = _insideCustomConfig.picklistIds; var initialMenu = insideChatPane.chatPane.querySelector(".picklist[fid='" + picklist.initialMenu + "']"); if (initialMenu) { $(initialMenu).closest(".messageContent").addClass('initialMenu'); } var mainMenu = insideChatPane.chatPane.querySelector(".picklist[fid='" + picklist.mainMenu + "']"); if (mainMenu) { customizePicklist($(mainMenu)); } insideFrontInterface.chatSettings.chatPane.height = mainMenu ? _insideCustomConfig.chatPaneHeight : currentChatPaneHeight; insideChatPane.setFrameHeight(); } _insideGraph.defer(function () { _insideGraph.bind('picklistRendered', checkPicklistOption); checkPicklistOption(); insideFrontInterface.bind("assistants", checkPicklistOption); }, function () { return typeof insideChatPane !== "undefined" && typeof insideChatPane.chatPane !== "undefined" }); var currentChatPaneHeight; _insideGraph.defer(function () { if (insideFrontInterface.chatSettings) { currentChatPaneHeight = insideFrontInterface.chatSettings.chatPane.height; $('#inside_holder').attr('chatpaneversion', insideFrontInterface.chatSettings.version); } }, function () { return typeof insideFrontInterface != 'undefined' && typeof insideFrontInterface.chatSettings != 'undefined'; }) }(_insideGraph.jQuery);