{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/chat/chat.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/chat/index.js"],"names":["HOOK_CONFIG","HOOK_TRIGGER_BUTTON","HOOK_TRIGGER_BUTTON_EXT","HOOK_COOKIE_WARNING","HIDDEN_CLASS","Chat","constructor","element","configEl","querySelector","buttons","document","querySelectorAll","buttonsExt","invalidCookies","Cookies","cookieIsValid","cookieName","advertising","length","bindButtonEventsEXT","config","language","html","lang","buttonName","dataset","buttonId","eswLiveAgentDevName","agentName","extraPrechatFormDetails","country","userCountry","region","userRegion","userLanguage","load","addScript","bindEvents","bindButtonEvents","openChat","button","click","showCookieWarning","originButton","parentElement","classList","remove","Events","$on","reinitButtons","forEach","addEventListener","isLoaded","buttonExt","jsFile","createElement","type","src","setAttribute","onload","initChat","getElementsByTagName","appendChild","initESW","gslbBaseURL","embedded_svc","settings","displayHelpButton","enabledFeatures","entryFeature","extraPrechatInfo","init","baseLiveAgentContentURL","deploymentId","baseLiveAgentURL","isOfflineSupportEnabled","window","setTimeout","console","error"],"mappings":"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","file":"js/Chat.js","sourcesContent":["/* global embedded_svc */\nimport { html } from '@utilities/dom-elements';\nimport Cookies from '@components/cookies';\nimport Events from \"@utilities/events\";\n\nconst HOOK_CONFIG = '[js-hook-chat-config]';\nconst HOOK_TRIGGER_BUTTON = '[js-hook-open-chat]';\nconst HOOK_TRIGGER_BUTTON_EXT ='[js-hook-open-chat-ext]';\nconst HOOK_COOKIE_WARNING = '[js-hook-chat-cookie-warning]';\nconst HIDDEN_CLASS = 'u-hidden';\n\nclass Chat {\n constructor(element) {\n this.element = element;\n this.configEl = this.element.querySelector(HOOK_CONFIG);\n this.buttons = [...document.querySelectorAll(HOOK_TRIGGER_BUTTON)];\n this.buttonsExt = [...document.querySelectorAll(HOOK_TRIGGER_BUTTON_EXT)];\n this.invalidCookies = !Cookies.cookieIsValid(Cookies.cookieName.advertising);\n\n if(this.buttonsExt.length > 0){\n this.bindButtonEventsEXT();\n }\n\n if(!this.configEl){\n return;\n }\n\n this.config = {\n language: html.lang,\n buttonName: this.configEl.dataset.buttonName,\n buttonId: this.configEl.dataset.buttonId,\n eswLiveAgentDevName: this.configEl.dataset.agentName,\n extraPrechatFormDetails: {\n country: this.element.dataset.userCountry,\n region: this.element.dataset.userRegion,\n language: this.element.dataset.userLanguage,\n }\n }\n\n if (!this.invalidCookies && this.element.dataset.load === 'true') this.addScript();\n\n this.bindEvents();\n this.bindButtonEvents();\n }\n\n static openChat() {\n const button = document.querySelector('.embeddedServiceHelpButton button');\n if (button) button.click();\n }\n\n static showCookieWarning(originButton) {\n originButton.parentElement.querySelector(HOOK_COOKIE_WARNING).classList.remove(HIDDEN_CLASS);\n }\n\n bindEvents() {\n Events.$on('chat::reinit-buttons', () => this.reinitButtons());\n }\n\n bindButtonEvents() {\n this.buttons.forEach(button => {\n button.addEventListener('click', () => {\n if (this.isLoaded) {\n Chat.openChat();\n } else {\n this.addScript(true, button);\n }\n });\n });\n }\n\n bindButtonEventsEXT() {\n this.buttonsExt.forEach(buttonExt => {\n buttonExt.addEventListener('click', () => {\n Chat.openChat();\n });\n });\n }\n\n addScript(openChat) {\n this.isLoaded = true;\n\n const jsFile = document.createElement('script');\n jsFile.type = 'text/javascript';\n jsFile.src = 'https://service.force.com/embeddedservice/5.0/esw.min.js';\n jsFile.setAttribute('async', '');\n jsFile.setAttribute('defer', '');\n jsFile.onload = () => {\n this.initChat(openChat);\n };\n\n document.getElementsByTagName('head')[0].appendChild(jsFile);\n }\n\n initChat(openChat) {\n /**\n * Chat config based on what we received from the customer\n * Keep commented out code for future reference\n */\n const initESW = (gslbBaseURL) => {\n embedded_svc.settings.displayHelpButton = true;\n embedded_svc.settings.language = this.config.language;\n\n // embedded_svc.settings.defaultMinimizedText = 'Chat'; // (Defaults to Chat with an Expert)\n // embedded_svc.settings.disabledMinimizedText = ''; // (Defaults to Agent Offline)\n\n // embedded_svc.settings.loadingText = ''; // (Defaults to Loading)\n // embedded_svc.settings.storageDomain = 'yourdomain.com'; //(Sets the domain for your deployment so that visitors can navigate subdomains during a chat session)\n\n // Settings for Chat\n // embedded_svc.settings.directToButtonRouting = function(prechatFormData) {\n // Dynamically changes the button ID based on what the visitor enters in the pre-chat form.\n // Returns a valid button ID.\n // };\n // Sets the auto-population of pre-chat form fields\n // embedded_svc.settings.prepopulatedPrechatFields = {\n\n // };\n // embedded_svc.settings.fallbackRouting = []; //An array of button IDs, user IDs, or userId_buttonId\n // embedded_svc.settings.offlineSupportMinimizedText = 'Chat'; // (Defaults to Contact Us)\n\n embedded_svc.settings.enabledFeatures = ['LiveAgent'];\n embedded_svc.settings.entryFeature = 'LiveAgent';\n\n embedded_svc.settings.extraPrechatInfo = [{\n 'entityFieldMaps': [{\n 'doCreate': true,\n 'doFind': true,\n 'fieldName': 'LastName',\n 'isExactMatch': true,\n 'label': 'Last Name'\n }, {\n 'doCreate': true,\n 'doFind': true,\n 'fieldName': 'FirstName',\n 'isExactMatch': true,\n 'label': 'First Name'\n }, {\n 'doCreate': true,\n 'doFind': true,\n 'fieldName': 'Email',\n 'isExactMatch': true,\n 'label': 'Email'\n }],\n 'entityName': 'Contact',\n 'showOnCreate': false\n }];\n\n embedded_svc.settings.extraPrechatFormDetails = [{\n 'label': 'Country',\n 'value': this.config.extraPrechatFormDetails.country,\n 'transcriptFields': ['Country__c'],\n 'displayToAgent': true\n }, {\n 'label': 'Region',\n 'value': this.config.extraPrechatFormDetails.region,\n 'transcriptFields': ['Region__c'],\n 'displayToAgent': true\n }, {\n 'label': 'Language',\n 'value': this.config.extraPrechatFormDetails.language,\n 'transcriptFields': ['Language__c'],\n 'displayToAgent': true\n }];\n\n embedded_svc.init(\n 'https://tfour.my.salesforce.com',\n 'https://tfour.force.com',\n gslbBaseURL,\n '00D2p000000P6Rt',\n this.config.buttonName,\n {\n baseLiveAgentContentURL: 'https://c.la1-c2-fra.salesforceliveagent.com/content',\n deploymentId: '5722p000000HCUY',\n buttonId: this.config.buttonId,\n baseLiveAgentURL: 'https://d.la1-c2-fra.salesforceliveagent.com/chat',\n eswLiveAgentDevName: this.config.eswLiveAgentDevName,\n isOfflineSupportEnabled: false\n }\n );\n };\n\n\n if (window.embedded_svc) {\n initESW('https://service.force.com');\n\n if (openChat) {\n setTimeout(() => {\n Chat.openChat();\n }, 1000);\n }\n } else {\n console.error('Failed to load chat script');\n }\n }\n\n reinitButtons() {\n this.buttons = [...document.querySelectorAll(HOOK_TRIGGER_BUTTON)];\n\n this.bindButtonEvents();\n }\n}\n\nexport default Chat;\n","import Chat from './chat'\n\nexport default Chat\n"],"sourceRoot":""}