{"version":3,"file":"questionTypeRenderer.chunk.768d54c6a8cd41d70e35.js","mappings":"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","sources":["webpack://apexchatwidgets/./widgets/core/callIfExists.js","webpack://apexchatwidgets/./widgets/core/hooks/AddorRemoveClass.js","webpack://apexchatwidgets/./widgets/core/hooks/IsTransferChatActionExists.js","webpack://apexchatwidgets/./widgets/core/hooks/getItemValues.js","webpack://apexchatwidgets/./widgets/core/hooks/isCallConnectActionNotAvailable.js","webpack://apexchatwidgets/./widgets/core/hooks/getScriptForIframe.js","webpack://apexchatwidgets/./widgets/questiontypes/QuestionTypeRenderer.js","webpack://apexchatwidgets/./widgets/questiontypes/ImportFactories/ImportQuestypeTemplateFactory.js","webpack://apexchatwidgets/./widgets/questiontypes/QuestionTypeVersion.js","webpack://apexchatwidgets/./widgets/templates/question_types/calendar_date_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/multiple_choice_display_as_list_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/multiple_choice_options_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/multiple_choice_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/none_question_type_message_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/calendar_date_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/multiple_choice_display_as_list_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/multiple_choice_options_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/multiple_choice_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/none_question_type_message_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/text_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/time_calendar_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/time_options_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/prechat_rounded_theme/time_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/text_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/time_calendar_question_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/time_options_template.ejs","webpack://apexchatwidgets/./widgets/templates/question_types/time_question_template.ejs"],"sourcesContent":["const callIfExists = (cb, scope, extraArgs) => {\r\n if (cb && typeof cb === 'function') {\r\n cb.bind2(scope, extraArgs)();\r\n }\r\n};\r\nexport default callIfExists;\r\n","/**\r\n * A utility function to Add or Remove class on selected element\r\n */\r\nconst AddorRemoveClass = (element, className, add) => {\r\n if (!element) {\r\n return;\r\n }\r\n if (add) {\r\n element.addClass(className);\r\n return;\r\n }\r\n\r\n if (typeof element.removeClass === 'function') {\r\n element.removeClass(className);\r\n } else {\r\n element.classList.remove(className);\r\n }\r\n};\r\nexport default AddorRemoveClass;\r\n","import { AgentScriptActionType } from '../enums/Enum';\r\n\r\nconst IsTransferChatActionExists = (option, el) => {\r\n let isExist = false;\r\n option.actions.filter((action) => {\r\n if (action.actionType === AgentScriptActionType.transferToLiveAgent) {\r\n el.setAttribute('data-action-type', 'transfer-chat');\r\n isExist = true;\r\n }\r\n });\r\n return isExist;\r\n};\r\nexport default IsTransferChatActionExists;\r\n","const getItemValues = (obj) => {\r\n let values = '';\r\n if (obj) {\r\n for (let i = 0; i < obj.length; i++) {\r\n if (i === 0) {\r\n values = obj[i].option ? obj[i].option : obj[i];\r\n continue;\r\n }\r\n const val = obj[i].option ? obj[i].option : obj[i];\r\n values += `, ${val}`;\r\n }\r\n }\r\n return values;\r\n};\r\nexport default getItemValues;\r\n","/**\r\n * Check if call connect available on QT option\r\n */\r\nconst isCallConnectActionNotAvailable = function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n // hasCallConnectAction is for current QT while hasNextCallConnectAction is for next mapped Question\r\n return (\r\n (option.hasCallConnectAction && !option.isCallConnectAvailable) ||\r\n (option.hasNextCallConnectAction && !option.isNextCallConnectAvailable)\r\n );\r\n};\r\nexport default isCallConnectActionNotAvailable;\r\n","/*\r\nOnly responsible to append inside an iframe\r\nRequired: iframeId\r\n*/\r\nconst getScriptForIframe = (url, scriptId, iframeId) => new Promise((resolve, reject) => {\r\n const iFrame = document.getElementById(iframeId);\r\n let framedoc = iFrame.contentDocument;\r\n if (!framedoc && iFrame.contentWindow) {\r\n framedoc = iFrame.contentWindow.document;\r\n }\r\n const script = framedoc.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = url;\r\n script.id = scriptId;\r\n framedoc.body.appendChild(script);\r\n\r\n script.onload = script.onreadystatechange = function () {\r\n framedoc.body.removeChild(script);\r\n resolve(this);\r\n };\r\n});\r\nexport default getScriptForIframe;\r\n","\r\nimport BaseClass from '../core/BaseClass';\r\nimport QuestionTypeVersion from './QuestionTypeVersion';\r\nimport WidgetTypes from '../core/enums/WidgetTypes';\r\nimport TempCache from '../core/enums/TempCache';\r\nimport ParticipantIds from '../core/enums/ParticipantIds';\r\nimport getItemValues from '../core/hooks/getItemValues';\r\nimport IsTransferChatActionExists from '../core/hooks/IsTransferChatActionExists';\r\nimport callIfExists from '../core/callIfExists';\r\nimport ManageFocusOnKeyEvents from '../core/hooks/ManageFocusOnKeyEvents';\r\nimport { ScriptVisitorResponseStatus, ScriptsQuestionType } from '../core/enums/Enum';\r\nimport isCallConnectActionNotAvailable from '../core/hooks/isCallConnectActionNotAvailable';\r\nimport isLastMessage from '../core/hooks/isLastMessage';\r\nimport TempStorageCache from '../core/hooks/TempStorageCache';\r\nimport getScriptForIframe from '../core/hooks/getScriptForIframe';\r\nimport getStyleForIframe from '../core/hooks/getStyleForIframe';\r\nimport ImportQuestypeTemplateFactory from './ImportFactories/ImportQuestypeTemplateFactory';\r\nimport AddorRemoveClass from '../core/hooks/AddorRemoveClass';\r\nimport observe from '../core/hooks/observe';\r\nimport WidgetStates from '../core/hooks/WidgetStates';\r\nimport isAcceptKey from '../core/hooks/isAcceptKey';\r\nimport removeClass from '../core/hooks/removeClass';\r\nimport logIt from '../../logIt';\r\n\r\nexport default class QuestionTypeRenderer extends BaseClass {\r\n /**\r\n 1. sets up options along with DOM context\r\n 2. initializes some variables for Q type processing: e.g. preText, template, answers[], etc\r\n */\r\n\r\n constructor(options) {\r\n super(options);\r\n const me = this;\r\n\r\n me.options = options;\r\n const templates = ImportQuestypeTemplateFactory(me.options.widgetType == WidgetTypes.PreChat);\r\n Object.assign(this, {\r\n questionTypeTextTemplate: templates.questionTypeTextTemplate,\r\n questionTypeTimeTemplate: templates.questionTypeTimeTemplate,\r\n questionTypeMultipleChoiceAsListTemplate: templates.questionTypeMultipleChoiceAsListTemplate,\r\n questionTypeMultipleChoiceOptionsTemplate: templates.questionTypeMultipleChoiceOptionsTemplate,\r\n questionTypeNoneTemplate: templates.questionTypeNoneTemplate,\r\n questionTypeCalendarDateTemplate: templates.questionTypeCalendarDateTemplate,\r\n questionTypeTimeOptionsTemplate: templates.questionTypeTimeOptionsTemplate,\r\n questionTypeTimeCalendarTemplate: templates.questionTypeTimeCalendarTemplate,\r\n questionTypeMultipleChoiceTemplate: templates.questionTypeMultipleChoiceTemplate\r\n });\r\n me.context = options.context;\r\n me.isBottomSheetSupported = options.isBottomSheetSupported;\r\n // private variables\r\n // me.preText = '';//no longer needed in V3\r\n me.template = null;\r\n me.answers = [];\r\n\r\n me.CHATLOG_ID = -1;\r\n // a new property introduced to decouple individual QT handling\r\n me.renderer = null;\r\n me.version = options.version ? options.version : QuestionTypeVersion.Classical;\r\n me.isLiveAgentAvailable = function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n return option.isTransferToLiveAgent;\r\n };\r\n me.isLastMessageOperatorNotAvailable = function (msgObj) {\r\n if (\r\n !ApexChat.allHistoryMessages ||\r\n (ApexChat.allHistoryMessages && ApexChat.allHistoryMessages.length == 0)\r\n ) {\r\n //if no messages in history that means message is from Predefined or message before chat start so set its always true\r\n return true;\r\n }\r\n var allChatMsgs = ApexChat.allHistoryMessages.filter(function (message) {\r\n return message.text === ApexChat.operatorNotAvailableMessage;\r\n });\r\n return allChatMsgs.length > 0;\r\n };\r\n me.isAgentLastMessage = function (msgObj) {\r\n if (\r\n !ApexChat.allHistoryMessages ||\r\n (ApexChat.allHistoryMessages && ApexChat.allHistoryMessages.length == 0)\r\n ) {\r\n //if no messages in history that means message is from Predefined or message before chat start so set its always true\r\n return true;\r\n }\r\n var allAgentMsgs = ApexChat.allHistoryMessages.filter(function (message) {\r\n return (\r\n message.userId != ParticipantIds.pokeMessage &&\r\n message.participantDisplayName !== 'Visitor'\r\n );\r\n });\r\n var lastAgentMsgId =\r\n allAgentMsgs.length > 0 && allAgentMsgs[allAgentMsgs.length - 1].id;\r\n return lastAgentMsgId == msgObj.id;\r\n };\r\n }\r\n\r\n setVersion(ver) {\r\n this.version = ver;\r\n }\r\n\r\n isQuestionTypeOptionsAvailable(msgObj) {\r\n let flag = true;\r\n switch (msgObj.questionType) {\r\n case ScriptsQuestionType.TrueOrFalse:\r\n case ScriptsQuestionType.MultipleChoice:\r\n case ScriptsQuestionType.AllThatApply: {\r\n if (msgObj.options == '') {\r\n flag = false;\r\n }\r\n }\r\n }\r\n return flag;\r\n }\r\n\r\n autoScroll() {\r\n // allow a scroller to be set independant of the message container\r\n // arrived...\r\n const me = this;\r\n const scroller = me.$('#apexchat .apexchat_scroller', me.context);\r\n if (scroller.length) {\r\n scroller.prop('scrollTop', scroller.prop('scrollHeight'));\r\n } else if (me.options && me.options.messagesContainer) {\r\n me.options.messagesContainer.scrollTop = me.options.messagesContainer.scrollHeight;\r\n }\r\n }\r\n\r\n /**\r\n rendering a Q type onMessageArrived\r\n */\r\n async renderMessage(msgObj, callback, cbArg) {\r\n //todo: refactor this code to separate this function from this class\r\n const me = this;\r\n const mqtMeta = { instruction: '' }; // this is the only change in the existing QuestionTypeRenderer codebase: added a JOSN to keep the right instruction text\r\n const questionTypeDiv = document.createElement('div');\r\n // apex-css-no-bgColor\r\n\r\n questionTypeDiv.className =\r\n 'apexchat_auto_genned_message_wrapper apexchat_question_type_main_div apex-bot apexchat_message_left';\r\n\r\n questionTypeDiv.id = `apexchat_chatlog_${msgObj.id}`;\r\n // only PreChat Elements it would be available.\r\n // if (ApexChat.preChatElement) {\r\n // TODO: [Refactoring required; need to move these widget specific code inside child classes.].\r\n if (\r\n ApexChat.preChatElement &&\r\n me.state.widget != WidgetTypes.EPUIController &&\r\n me.state.getStateValue(WidgetTypes.PreChat) === WidgetStates.ShownMaximized\r\n ) {\r\n const element = me.$(ApexChat.preChatElement).find('#apexchat_prechat_message')[0];\r\n element.innerHTML = '';\r\n me.options.messagesContainer = element;\r\n ApexChat.preChatElement = null;\r\n }\r\n function isTransferChatActionExists(option, el) {\r\n let isExist = false;\r\n option.actions.filter((action) => {\r\n if (action.actionType === AgentScriptActionType.transferToLiveAgent) {\r\n el.data('actionType', 'transfer-chat');\r\n isExist = true;\r\n }\r\n });\r\n return isExist;\r\n }\r\n const module = await import(\r\n /* webpackChunkName: \"questionTypeRendererFactory\" */ './QuestionTypeRendererFactory'\r\n );\r\n const QuestionTypeRendererFactory = module.default;\r\n me.questionTypeRendererFactory = new QuestionTypeRendererFactory();\r\n\r\n me.renderer = await me.questionTypeRendererFactory.create(\r\n Object.assign(me.options, {\r\n version: me.version,\r\n msg: msgObj,\r\n wrapper: questionTypeDiv,\r\n container: me.options.messagesContainer,\r\n // container: me.options.elements.messagesContainerSelector,\r\n $: me.$,\r\n context: me.context,\r\n applyNewDateTime: me.options.applyNewDateTime,\r\n isBottomSheetSupported: me.isBottomSheetSupported,\r\n isFromPreChat:\r\n (me.options &&\r\n me.options.preChat &&\r\n me.options.preChat.msg &&\r\n me.options.preChat.msg.isFromPreChat) ||\r\n msgObj.isFromPreChat,\r\n updateCallback() {\r\n me.CHATLOG_ID = msgObj.id;\r\n }\r\n })\r\n );\r\n\r\n const data = {\r\n msgObj,\r\n questionTypeDiv,\r\n model: me.options.model\r\n };\r\n function renderDateTimeQT(type) {\r\n if (\r\n me.options.widgetType !== WidgetTypes.PreChat &&\r\n me.options.widgetType !== WidgetTypes.VideoGreetInvitation &&\r\n me.options.model.widget !== WidgetTypes.Windowed &&\r\n ApexChat.flatPickr === undefined\r\n ) {\r\n const lazyLoadScript = getScriptForIframe(\r\n 'https://d3b4i635mede5k.cloudfront.net/flatpickr.js',\r\n 'flatpickr_js',\r\n me.options.iframeId || me.options.model.iframeId\r\n );\r\n const lazyLoadCss = getStyleForIframe(\r\n 'https://d3b4i635mede5k.cloudfront.net/flatpickr.css',\r\n 'flatpickr_css',\r\n me.options.iframeId || me.options.model.iframeId\r\n );\r\n Promise.all([lazyLoadCss, lazyLoadScript]).then((value) => {\r\n ApexChat.flatPickr = value[1];\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onSelect: me.sendResponse\r\n });\r\n mqtMeta.instruction = msgObj.questionPlaceholder || type;\r\n }\r\n me.options.afterFlatPickerLoaded();\r\n me.bindControls(msgObj);\r\n });\r\n } else if (me.renderer) {\r\n me.renderer.render({\r\n onSelect: me.sendResponse\r\n });\r\n mqtMeta.instruction = msgObj.questionPlaceholder || type;\r\n }\r\n }\r\n const getTimeIntervals = (abbreviation) => {\r\n const businessStartTime = 9;\r\n const businessEndTime = 17;\r\n const data = [];\r\n for (let i = businessStartTime; i < businessEndTime; i++) {\r\n const prevtime = `${i > 12 ? i - 12 : i}:00`;\r\n for (let j = 0; j < 4; j++) {\r\n var postfix = ` AM ${abbreviation}`;\r\n if (i >= 12) {\r\n // 12 pm is noon\r\n postfix = ` PM ${abbreviation}`;\r\n }\r\n const time = `${i == 0 ? 12 : i > 12 ? i - 12 : i}:${j == 0 ? 10 : (j * 15).toString()\r\n }${postfix}`;\r\n data.push(`${prevtime} to ${time}`);\r\n }\r\n data.push(`${prevtime} to ${i + 1 > 12 ? i + 1 - 12 : i + 1}:00${postfix}`);\r\n }\r\n return data;\r\n };\r\n switch (msgObj.questionType) {\r\n case ScriptsQuestionType.ContinueChat:\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onAutoScroll: me.autoScroll.bind2(me)\r\n });\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n break;\r\n case ScriptsQuestionType.TrueOrFalse:\r\n if (me.renderer) {\r\n me.renderer.render();\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n var options = ApexChat.TryParse(data.msgObj.options);\r\n var yesButton = me.context.getElementById(`apexchat-btn-yes-${msgObj.id}`);\r\n var noButton = me.context.getElementById(`apexchat-btn-no-${msgObj.id}`);\r\n IsTransferChatActionExists(options[0], yesButton);\r\n IsTransferChatActionExists(options[1], noButton);\r\n\r\n logIt(\r\n `isLiveAgentAvailable:: in True option case: ${options[0].isTransferToLiveAgent}`\r\n );\r\n logIt(\r\n `isLiveAgentAvailable:: in False option case: ${options[1].isTransferToLiveAgent}`\r\n );\r\n\r\n if (\r\n yesButton &&\r\n options[0].text === msgObj.yesText &&\r\n !me.isLiveAgentAvailable(options[0])\r\n ) {\r\n me.$(yesButton)\r\n .disable({\r\n applyGrayBackground: false,\r\n elementQT: yesButton,\r\n tabIndex: 0\r\n })\r\n .addClass('apexchat_disabled_qt_options');\r\n }\r\n if (\r\n noButton &&\r\n options[1].text === msgObj.noText &&\r\n !me.isLiveAgentAvailable(options[1])\r\n ) {\r\n me.$(noButton)\r\n .disable({ applyGrayBackground: true, elementQT: noButton, tabIndex: 0 })\r\n .addClass('apexchat_disabled_qt_options');\r\n }\r\n break;\r\n case ScriptsQuestionType.MultipleChoice:\r\n // me.options = Object.assign(me.options, ApexChat.getPreloadedChatOptions());\r\n var template = data.msgObj.questionTypeDisplayListForVisitor\r\n ? me.questionTypeMultipleChoiceAsListTemplate\r\n : me.questionTypeMultipleChoiceTemplate;\r\n me.template = template(data.msgObj);\r\n\r\n if (data.msgObj.questionTypeDisplayListForVisitor) {\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onSelect: me.sendResponse\r\n });\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n } else {\r\n // Fill options div\r\n var selectOptions = document.createElement('div');\r\n var options = {};\r\n if (me.renderer && me.renderer.listOptions) {\r\n options = me.renderer.listOptions;\r\n } else {\r\n options = ApexChat.TryParse(data.msgObj.options);\r\n }\r\n if (options) {\r\n for (var i = 0; i < options.length; i++) {\r\n // parse the text in case if there is encoded html coming along\r\n let optionDecoded = options[i].option;\r\n if (\r\n options[i].option.indexOf('<') > -1 ||\r\n options[i].option.indexOf('>') > -1\r\n ) {\r\n optionDecoded = me.$('
').html(options[i].option).text();\r\n }\r\n const styleConfig = me.getOptionStyles(\r\n options[i].agentScriptOptionStyles,\r\n data.msgObj.id,\r\n i + 1\r\n );\r\n selectOptions.innerHTML += me.questionTypeMultipleChoiceOptionsTemplate({\r\n messageId: data.msgObj.id,\r\n id: i + 1,\r\n name: optionDecoded,\r\n styles: styleConfig ? styleConfig.styles : '',\r\n fontStyle: styleConfig ? styleConfig.fontStyle : ''\r\n });\r\n }\r\n me.applyTemplate(data.questionTypeDiv, selectOptions);\r\n for (var i = 0; i < options.length; i++) {\r\n // Handle button click\r\n const radioButton = me.context.getElementById(\r\n `apexchat_question_type_multiple_choice_radio_parent_option_label_${msgObj.id\r\n }_${i + 1}`\r\n );\r\n var radioButtonParent = me.context.querySelectorAll(\r\n `#apexchat_question_type_multiple_choice_options_div_${msgObj.id} .apexchat_question_type_multiple_choice_radio`\r\n )[0];\r\n if (radioButton) {\r\n IsTransferChatActionExists(options[i], radioButton);\r\n logIt(\r\n `isLiveAgentAvailable:: in option : ${radioButton.innerText}: ${options[i].isTransferToLiveAgent}`\r\n );\r\n // attach handlers: mouse and keyboard based\r\n if (\r\n isCallConnectActionNotAvailable(options[i]) ||\r\n !me.isLiveAgentAvailable(options[i])\r\n ) {\r\n // CHAT-7911 Disabled option if call connect is not available\r\n me.$(radioButton, me.context)\r\n .disable({ applyGrayBackground: true })\r\n .addClass('apexchat_disabled_qt_options');\r\n continue;\r\n }\r\n observe(\r\n radioButton,\r\n 'click',\r\n me.sendResponse.bind2(me, msgObj, options[i].option)\r\n );\r\n observe(radioButton, 'keyup', function (e) {\r\n if (!me.$(`#${e.target.id}> input:radio`).prop('checked')) {\r\n me.manageQtFocus.bind2(this, e, {\r\n msg: msgObj,\r\n text: e.currentTarget.innerText,\r\n context: me,\r\n eventType: 'sendResponse',\r\n muteElements: ['.apexchat_question_type_update_button']\r\n })(); // muting elements on selector wise\r\n }\r\n if (e.keyCode == 9 || e.code == 'tab') {\r\n radioButtonParent.addClass('apexchat_element_on_focus');\r\n }\r\n });\r\n observe(radioButton, 'blur', (e) => {\r\n radioButtonParent.classList.remove('apexchat_element_on_focus');\r\n });\r\n }\r\n }\r\n }\r\n if (me.renderer) {\r\n me.renderer.displaySkipOption();\r\n }\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n break;\r\n case ScriptsQuestionType.AllThatApply:\r\n // Select template that appear as check box list vertically when questionTypeDisplayListForVisitor is true\r\n // Else Select template that appear as bubble style checkboxes\r\n // me.options = Object.assign(me.options, ApexChat.getPreloadedChatOptions());\r\n if (data.msgObj.questionTypeDisplayListForVisitor && me.isBottomSheetSupported) {\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onSelect: me.sendResponse\r\n });\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n } else if (me.renderer) {\r\n me.renderer.render();\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n break;\r\n case ScriptsQuestionType.Text:\r\n if (msgObj.visitorResponseTypes) {\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onSelect: me.sendResponse.bind2(me)\r\n });\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n }\r\n break;\r\n case ScriptsQuestionType.FullText: // use this input field for fulltext\r\n me.template = me.questionTypeTextTemplate(data.msgObj);\r\n me.applyTemplate(data.questionTypeDiv);\r\n mqtMeta.isFullText = true;\r\n mqtMeta.isFromPreChat = true;\r\n break;\r\n case ScriptsQuestionType.CalendarDate:\r\n if (me.isBottomSheetSupported && me.options.applyNewDateTime) {\r\n renderDateTimeQT(me.getQTPlaceHolder(msgObj.questionType));\r\n break;\r\n } else {\r\n data.msgObj.questionPlaceholder = '';\r\n me.template = me.questionTypeCalendarDateTemplate(\r\n data.msgObj\r\n );\r\n me.applyTemplate(data.questionTypeDiv);\r\n var calendarInput = me.$(\r\n `#apexchat_question_type_time_calendar_input_control_${msgObj.id}`,\r\n me.context\r\n );\r\n ManageFocusOnKeyEvents(calendarInput);\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n break;\r\n case ScriptsQuestionType.Time:\r\n if (me.isBottomSheetSupported && me.options.applyNewDateTime) {\r\n renderDateTimeQT(me.getQTPlaceHolder(msgObj.questionType));\r\n break;\r\n } else {\r\n me.template = me.questionTypeTimeTemplate(data.msgObj);\r\n const intervals = getTimeIntervals(me.options.questionTypeTimeZoneAbbreviation);\r\n // Fill options div\r\n var selectOptions = document.createElement('div');\r\n if (selectOptions) {\r\n for (var i = 0; i < intervals.length; i++) {\r\n selectOptions.innerHTML +=\r\n me.questionTypeTimeOptionsTemplate(\r\n { name: intervals[i] }\r\n );\r\n }\r\n }\r\n me.applyTemplate(data.questionTypeDiv, selectOptions);\r\n window.setTimeout(() => {\r\n // wait for time input field to render\r\n const timeInput = me.$(\r\n `#apexchat_question_type_time_select_control_${msgObj.id} .apexchat_dropSelect_elements`,\r\n me.context\r\n );\r\n if (timeInput) {\r\n timeInput.addClass('apexchat-element-outline-remove');\r\n timeInput.on('keyup blur', (e) => {\r\n // apply apexchat-element-outline-remove which help us to hide blue border where unnecessary appeared, blue border should appear when we press tab on particular field\r\n if (e.type == 'keyup' && (e.keyCode == 9 || e.code == 'tab')) {\r\n AddorRemoveClass(\r\n timeInput,\r\n 'apexchat-element-outline-remove',\r\n false\r\n );\r\n }\r\n if (e.type == 'blur') {\r\n // when focus removed from element, so blue border should not appear.\r\n AddorRemoveClass(\r\n timeInput,\r\n 'apexchat-element-outline-remove',\r\n true\r\n );\r\n }\r\n });\r\n }\r\n }, TempCache.RENDER_QT_TIME);\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n }\r\n\r\n break;\r\n case ScriptsQuestionType.TimeCalendar:\r\n if (me.isBottomSheetSupported && me.options.applyNewDateTime) {\r\n renderDateTimeQT(me.getQTPlaceHolder(msgObj.questionType));\r\n break;\r\n } else {\r\n me.template =\r\n me.questionTypeTimeCalendarTemplate(\r\n data.msgObj\r\n );\r\n const intervals = getTimeIntervals(me.options.questionTypeTimeZoneAbbreviation);\r\n // Fill options div\r\n var selectOptions = document.createElement('div');\r\n if (selectOptions) {\r\n for (var i = 0; i < intervals.length; i++) {\r\n selectOptions.innerHTML +=\r\n me.questionTypeTimeOptionsTemplate(\r\n { name: intervals[i] }\r\n );\r\n }\r\n }\r\n me.applyTemplate(data.questionTypeDiv, selectOptions);\r\n var calendarInput = me.$(\r\n `#apexchat_question_type_time_calendar_input_control_${msgObj.id}`,\r\n me.context\r\n );\r\n ManageFocusOnKeyEvents(calendarInput);\r\n ManageFocusOnKeyEvents(calendarInput);\r\n window.setTimeout(() => {\r\n // wait for time input field to render\r\n const timeInput = me.$(\r\n `#apexchat_question_type_time_calendar_select_control_${msgObj.id} .apexchat_dropSelect_elements`,\r\n me.context\r\n );\r\n if (timeInput) {\r\n timeInput.addClass('apexchat-element-outline-remove');\r\n timeInput.on('keyup blur', (e) => {\r\n // apply apexchat-element-outline-remove which help us to hide blue border where unnecessary appeared, blue border should appear when we press tab on particular field\r\n if (e.type == 'keyup' && (e.keyCode == 9 || e.code == 'tab')) {\r\n AddorRemoveClass(\r\n timeInput,\r\n 'apexchat-element-outline-remove',\r\n false\r\n );\r\n }\r\n if (e.type == 'blur') {\r\n AddorRemoveClass(\r\n timeInput,\r\n 'apexchat-element-outline-remove',\r\n true\r\n );\r\n }\r\n });\r\n }\r\n }, TempCache.RENDER_QT_TIME);\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n break;\r\n }\r\n case ScriptsQuestionType.AppointmentScheduler:\r\n if (me.renderer) {\r\n me.renderer.render({\r\n onAutoScroll: me.autoScroll.bind2(me)\r\n });\r\n }\r\n mqtMeta.instruction = me.getQTPlaceHolder(msgObj.questionType);\r\n\r\n break;\r\n case ScriptsQuestionType.VideoGreet:\r\n if (me.renderer) {\r\n me.renderer.render();\r\n }\r\n break;\r\n case ScriptsQuestionType.None:\r\n data.msgObj.userId = data.msgObj.userId || 0;\r\n me.template = me.questionTypeNoneTemplate(data.msgObj);\r\n me.applyTemplate(data.questionTypeDiv);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (!mqtMeta.isFullText) {\r\n // bind buttons: Confirm, Skip, Yes, No, Update\r\n me.bindControls(msgObj);\r\n }\r\n\r\n let skipButton = me.context.querySelector('.apexchat_skip_input');\r\n if (skipButton) {\r\n skipButton.style.display = 'none'; // hide FT skip input button when other QT's skip button displayed\r\n }\r\n if (msgObj.questionType == ScriptsQuestionType.Text && msgObj.isFromPreChat) {\r\n if (ApexChat.ContactInfo) {\r\n if (!me.$('#apexchat_contact_qt_btn_' + msgObj.id, me.context).is(':visible')) {\r\n me.$('#livechat_send_message_button', me.context).trigger('click');\r\n } else {\r\n me.$('#apexchat_contact_qt_btn_' + msgObj.id, me.context).trigger('click');\r\n }\r\n }\r\n } else {\r\n me.setVisitorSelection(msgObj);\r\n }\r\n ApexChat.storageAPI.Store('questionTypeId', msgObj.id);\r\n ManageFocusOnKeyEvents(me.context.querySelector('.apexchat_participant_display_text'));\r\n // update log_id in these scenarios:\r\n // 1.checking visitor want to update this question,\r\n // 2. when an anwsered QT is loaded from EP to DOM or\r\n // 3. an answered QT is loaded after DOM reload\r\n me.CHATLOG_ID =\r\n msgObj.visitorResponseStatus == ScriptVisitorResponseStatus.Updating ||\r\n msgObj.visitorResponseStatus == ScriptVisitorResponseStatus.Answered\r\n ? msgObj.id\r\n : -1;\r\n logIt('plugging custom dd....');\r\n me.plugCustomDropbown(msgObj);\r\n // call extra functon newly added to plug new behavior after a message is rendered\r\n if (callback && typeof callback === 'function') {\r\n callback({ meta: mqtMeta, msg: msgObj, cb: cbArg });\r\n }\r\n // render agent script documents\r\n if (data.msgObj && data.msgObj.agentScriptDocuments && data.msgObj.isDocument) {\r\n import(\r\n /* webpackChunkName: \"FilesToQuestionTypesRenderer\" */ './FilesToQuestionTypesRenderer'\r\n ).then((module) => {\r\n const FilesToQuestionTypesRenderer = module.default;\r\n const filesToQTTypesRenderer = new FilesToQuestionTypesRenderer(\r\n Object.assign(me.options, data)\r\n );\r\n filesToQTTypesRenderer.render(data.questionTypeDiv);\r\n });\r\n }\r\n }\r\n\r\n renderSelection(msgObj) {\r\n // This method is only run for TF selection from preChat CHAT-7045\r\n const sender = {\r\n target: {}\r\n }; // creating a fake object model for sender.\r\n sender.target.textContent = msgObj.msgText;\r\n this.renderer && this.renderer.onSelection(sender, msgObj, msgObj.msgText);\r\n }\r\n\r\n /**\r\n * This function is handling the visitor selection of TF, MC, ATA etc question type.\r\n * @param {msgObj} question type message detail\r\n */\r\n async setVisitorSelection(msgObj) {\r\n const me = this;\r\n if (isLastMessage(msgObj) && !msgObj.visitorSelectedOptions) {\r\n // if this QT the v last msg; then it must be unanswered? show it as new-born baby\r\n return;\r\n }\r\n if (me.isLastMessageOperatorNotAvailable(msgObj) && !msgObj.visitorSelectedOptions) {\r\n // if this QT the v last msg; then it must be unanswered? show it as new-born baby\r\n return;\r\n }\r\n if (\r\n msgObj.visitorSelectedOptions &&\r\n msgObj.visitorSelectedOptions.indexOf &&\r\n msgObj.visitorSelectedOptions.indexOf('\\\\') != -1\r\n ) {\r\n msgObj.visitorSelectedOptions = msgObj.visitorSelectedOptions.replaceAll('\\\\', '\\\\\\\\');\r\n msgObj.visitorSelectedOptions = JSON.stringify(msgObj.visitorSelectedOptions)\r\n }\r\n const selectedOptions = ApexChat.TryParse(msgObj.visitorSelectedOptions);\r\n if (selectedOptions) {\r\n me.continueMappingForVisitorSelection(msgObj, selectedOptions);\r\n //Web to SMS form\r\n var isWebToSmsOptionSelected =\r\n isLastMessage(msgObj) && msgObj.questionType == ScriptsQuestionType.MultipleChoice;\r\n var isSmsBottomSheetOpenedBeforeRefresh =\r\n selectedOptions[0] &&\r\n msgObj.questionType == ScriptsQuestionType.MultipleChoice &&\r\n ApexChat.localStorageAPI.Get('sms_bottomsheet_opened') == 'true';\r\n if (isWebToSmsOptionSelected || isSmsBottomSheetOpenedBeforeRefresh) {\r\n const selection = me.getSelectedOption(selectedOptions[0].option, msgObj);\r\n me.checkConvertToSms(selection);\r\n }\r\n }\r\n // For any past QT whether answered/unanswered: show selection (if answered), disable (always) and hide Send/Cancel buttons (always)\r\n\r\n const module = await import(\r\n /* webpackChunkName: \"setSelectionOrDisable\" */ '../core/hooks/setSelectionOrDisable'\r\n );\r\n const setSelectionOrDisable = module.default;\r\n setSelectionOrDisable(me, msgObj, selectedOptions, true);\r\n me.hideButtons(msgObj);\r\n me.hideSkipButton(); // hide skip button when user submit the response.\r\n }\r\n\r\n hideButtons(msgObj) {\r\n const me = this;\r\n // Show Update button for updating response later on\r\n // var updateButton = me.$('#apexchat-btn-update-' + msgObj.id, me.context);\r\n // if (updateButton && me.options.isUpdateSupported) {\r\n // me.$(updateButton).show();\r\n // }\r\n // Hide confirm/okay button\r\n const confirmButtonDiv = me.$(\r\n `#apexchat_question_type_div_confirm_button_${msgObj.id}`,\r\n me.context\r\n );\r\n if (confirmButtonDiv) {\r\n me.$(confirmButtonDiv).hide();\r\n }\r\n // hide skip/close buttons\r\n const closeButtonDiv = me.$(\r\n `#apexchat_question_type_div_close_button_${msgObj.id}`,\r\n me.context\r\n );\r\n if (closeButtonDiv) {\r\n me.$(closeButtonDiv).hide();\r\n }\r\n }\r\n\r\n continueMappingForVisitorSelection(msgObj, selectedItem) {\r\n const me = this;\r\n if (msgObj.shouldContinueMapping) {\r\n // get QT selected items\r\n const selectedQTOptions = me.getQTSelectedOptions(selectedItem);\r\n // send response to server, bring next mapped question IF ANY.\r\n const response = {\r\n chatId: msgObj.chatId,\r\n isSkipped: false,\r\n answers: selectedQTOptions.selectedOptions,\r\n msgText: selectedQTOptions.selectedOptionText,\r\n agentScriptAnswerId: msgObj.scriptAnswerId,\r\n chatLogId: msgObj.id,\r\n shouldRenderResponseAsText:\r\n (msgObj.questionTypeDisplayListForVisitor && me.isBottomSheetSupported) ||\r\n me.renderQTResponseAsText(msgObj),\r\n contactInfo: ApexChat.ContactInfo || '',\r\n questionType: msgObj.questionType\r\n };\r\n response.questionTypeChatLogIdToBeUpdated = msgObj.id;\r\n ApexChat.ContactInfo = '';\r\n me.options.responseCallback\r\n ? me.options.responseCallback(response)\r\n : (function () {\r\n console.log('No callback defined for sending Q type response');\r\n })();\r\n }\r\n }\r\n\r\n renderQTResponseAsText(msgObj) {\r\n const me = this;\r\n let flag = false;\r\n\r\n switch (msgObj.questionType) {\r\n case ScriptsQuestionType.TrueOrFalse:\r\n case ScriptsQuestionType.MultipleChoice:\r\n case ScriptsQuestionType.AllThatApply:\r\n case ScriptsQuestionType.TimeCalendar:\r\n case ScriptsQuestionType.CalendarDate:\r\n case ScriptsQuestionType.Time:\r\n case ScriptsQuestionType.Text: {\r\n flag = true;\r\n }\r\n }\r\n return flag;\r\n }\r\n\r\n getQTSelectedOptions(selectedItem) {\r\n let selectedOptions = '';\r\n let selectedOptionText = '';\r\n // check selected item length\r\n if (selectedItem && selectedItem.length > 0) {\r\n for (let i = 0; i <= selectedItem.length - 1; i++) {\r\n if (i == 0) {\r\n selectedOptions = `[{ \"option\": \"${selectedItem[i].option}\"}`;\r\n selectedOptionText = selectedItem[i].option;\r\n } else {\r\n selectedOptions += `,{ \"option\": \"${selectedItem[i].option}\"}`;\r\n selectedOptionText += `,${selectedItem[i].option}`;\r\n }\r\n }\r\n selectedOptions += ']';\r\n }\r\n\r\n return { selectedOptions, selectedOptionText };\r\n }\r\n\r\n //* *// insert attached files with MC options */\r\n applyMCWithFileTemplate(questionTypeDiv, selectOptions, files) {\r\n var me = this;\r\n questionTypeDiv.innerHTML = selectOptions\r\n ? me.template.replace('apexchat_options_div', selectOptions.innerHTML)\r\n : me.template;\r\n // if (files){\r\n\r\n // questionTypeDiv.innerHTML = (files) ? questionTypeDiv.innerHTML.replace('apexchat_files_div', files.innerHTML) : me.template;\r\n // } else {\r\n // questionTypeDiv.innerHTML = questionTypeDiv.innerHTML.replace('apexchat_files_div', '')\r\n // }\r\n me.options.messagesContainer.appendChild(questionTypeDiv);\r\n }\r\n\r\n applyTemplate(questionTypeDiv, selectOptions) {\r\n // Apply template\r\n const me = this;\r\n questionTypeDiv.innerHTML = selectOptions\r\n ? me.template.replace('apexchat_options_div', selectOptions.innerHTML)\r\n : me.template;\r\n me.options.messagesContainer.appendChild(questionTypeDiv);\r\n }\r\n\r\n /**\r\n Clears UI after sending response\r\n */\r\n hideAll(id, context) {\r\n const me = this;\r\n context = context || me.context;\r\n // TrueOrFalse - btns\r\n me.$(`#apexchat-btn-yes-${id}`, context).hide();\r\n me.$(`#apexchat-btn-no-${id}`, context).hide();\r\n // MultipleChoice- btns\r\n me.$(`#apexchat_question_type_multiple_choice_options_div_${id}`, context).hide();\r\n // general - btns\r\n me.$(`#apexchat_question_type_div_confirm_button_${id}`, context).hide();\r\n me.$(`#apexchat_question_type_div_close_button_${id}`, context).hide();\r\n // All that Apply\r\n me.$(`#apexchat_question_type_all_that_apply_options_div_${id}`, context).hide();\r\n // Text\r\n me.$(`#apexchat_question_type_text_input_${id}`, context).hide();\r\n // Calender Date\r\n me.$(`#apexchat_question_type_calendar_input_${id}`, context).hide();\r\n // Time\r\n me.$(`#apexchat_question_type_time_${id}`, context).hide();\r\n // TimeCalendar\r\n me.$(`#apexchat_question_type_time_calendar_input_div_${id}`, context).hide();\r\n me.$(`#apexchat_question_type_time_calendar_select_div_${id}`, context).hide();\r\n // when closing prechat msg IFrame should resize.\r\n me.postMessage({\r\n event: 'prechat-auto-resizing',\r\n data: {\r\n isResetIframe: true,\r\n hidePreChatMessages: true,\r\n isSingleMsg: true,\r\n hideCloseButton: true // we need to hide close button\r\n }\r\n });\r\n }\r\n\r\n manageQtFocus(e, options) {\r\n const me = this;\r\n var doOnAcceptKey =\r\n options && options.onAccept\r\n ? options.onAccept\r\n : function () {\r\n /* do nothing */\r\n };\r\n if (isAcceptKey(e)) {\r\n if (!options.context.$(this, options.context.context).isDisabled()) {\r\n // if element is disabled it should not work using keyboard\r\n options.isNotSend\r\n ? doOnAcceptKey.bind2(me, e, options)()\r\n : options.context[options.eventType](e, options.msg, options.text);\r\n options.context.$(this, options.context.context).blur();\r\n // we prevent vox to read element.\r\n options.context.muteAllElements(options);\r\n setTimeout(() => {\r\n // we enabled vox to read element.\r\n options.context.unmuteAllElements(options);\r\n }, 500);\r\n }\r\n }\r\n // else {\r\n // ApexChat.manageFocus(e, this);\r\n // }\r\n }\r\n\r\n /*\r\n Using this function we prevent vox to read element. \r\n */\r\n muteAllElements(options) {\r\n for (let i = 0; i < options.muteElements.length; i++) {\r\n options.context\r\n .$(options.muteElements[i], options.context.context)\r\n .attr('aria-hidden', true);\r\n }\r\n }\r\n\r\n /*\r\n Using this function we enabled vox to read element. \r\n */\r\n unmuteAllElements(options) {\r\n for (let i = 0; i < options.muteElements.length; i++) {\r\n options.context\r\n .$(options.muteElements[i], options.context.context)\r\n .attr('aria-hidden', false);\r\n }\r\n }\r\n\r\n /**\r\n \r\n does the job of event-binding of buttons: Yes/No/Confirm/Skip/Update\r\n */\r\n onUpdateEvent(sender, message, callback) {\r\n const me = this;\r\n if (message.questionType === ScriptsQuestionType.TrueOrFalse) {\r\n const yesButton = me.context.getElementById(`apexchat-btn-yes-${message.id}`);\r\n if (yesButton) {\r\n yesButton.style.display = 'block';\r\n yesButton.style.pointerEvents = 'auto';\r\n }\r\n const noButton = me.$(`#apexchat-btn-no-${message.id}`, me.context);\r\n if (noButton) {\r\n me.$(noButton).show();\r\n me.$(noButton).css('pointer-events', 'auto');\r\n }\r\n callIfExists(callback, me, message);\r\n } else if (message.questionType === ScriptsQuestionType.MultipleChoice) {\r\n var mainDiv = me.$(\r\n `#apexchat_question_type_multiple_choice_options_div_${message.id}`,\r\n me.context\r\n );\r\n var okBtn = me.$(\r\n `#apexchat_question_type_div_confirm_button_${message.id}`,\r\n me.context\r\n );\r\n const idSelectControl = me.$(\r\n `#apexchat_question_type_multiple_choice_as_list_select_control_${message.id}`,\r\n me.context\r\n );\r\n if (mainDiv) {\r\n me.$(mainDiv).show();\r\n var children = mainDiv.children();\r\n for (var i = 0; i < children.length; i++) {\r\n var childOption = children[i];\r\n // me.$(childOption).children('input:checked').each(function () {\r\n // me.$(this).prop('checked', false);\r\n // });\r\n me.$(childOption).show();\r\n }\r\n if (okBtn) {\r\n me.$(okBtn).show();\r\n }\r\n if (idSelectControl) {\r\n idSelectControl.enable();\r\n }\r\n }\r\n } else if (message.questionType === ScriptsQuestionType.AllThatApply) {\r\n var mainDiv = me.$(\r\n `#apexchat_question_type_all_that_apply_options_div_${message.id}`,\r\n me.context\r\n );\r\n var okBtn = me.$(\r\n `#apexchat_question_type_div_confirm_button_${message.id}`,\r\n me.context\r\n );\r\n if (mainDiv) {\r\n me.$(mainDiv).show();\r\n var children = mainDiv.children();\r\n for (var i = 0; i < children.length; i++) {\r\n var childOption = children[i];\r\n // me.$(childOption).children('input:checked').each(function () {\r\n // me.$(this).prop('checked', false);\r\n // });\r\n me.$(childOption).show();\r\n }\r\n // enable all that apply options\r\n me.$(mainDiv).enable();\r\n }\r\n if (okBtn) {\r\n me.$(okBtn).show();\r\n }\r\n }\r\n // Set chat log id of Question Type in order to send it alongwith chosen answer in order to udating the last meassage;\r\n me.CHATLOG_ID = message.id;\r\n // hiding update button\r\n const confirmButton = me.context.getElementById(`apexchat-btn-confirm-${message.id}`);\r\n // checking okay button exist in quick reply Make send button behave like QuickReply Okay button\r\n if (confirmButton) {\r\n if (me.options.sendButton) {\r\n const sendBtn = me.options.sendButton;\r\n TempStorageCache.add('QuestionTypeCurrentMessage', message);\r\n TempStorageCache.add('QuestionTypeRenderer', me);\r\n observe(sendBtn, 'click', me.sendBtnClick);\r\n }\r\n }\r\n me.$(sender.currentTarget).parent().hide();\r\n // indicate at DB that visitor is clearing last selections for updating\r\n // me.answers.push({ option: 'cancelQtAns' });\r\n // me.clearToUpdate(message);\r\n }\r\n\r\n sendBtnClick(e) {\r\n const me = TempStorageCache.get('QuestionTypeRenderer'); // using stored context of 'me' as on click we lose the context\r\n if (me) {\r\n // check me exists or not\r\n me.sendResponse(e, TempStorageCache.get('QuestionTypeCurrentMessage'), '', false);\r\n }\r\n }\r\n\r\n bindControls(msgObj) {\r\n //todo: refactor this function\r\n // Confirm btton for question type handling\r\n const me = this;\r\n const confirmButton = me.context.getElementById(`apexchat-btn-confirm-${msgObj.id}`);\r\n if (confirmButton) {\r\n observe(confirmButton, 'click', me.sendResponse.bind2(me, msgObj, '', false));\r\n // apply ADA\r\n observe(confirmButton, 'keyup', function (e) {\r\n me.manageQtFocus.bind2(this, e, {\r\n msg: msgObj,\r\n context: me,\r\n eventType: 'sendResponse',\r\n muteElements: ['.apexchat_question_type_update_button']\r\n })(); // muting elements on selector wise\r\n // if (isAcceptKey(e)) {\r\n // me.sendResponse.bind2(me, e, msgObj)();\r\n // } else {\r\n // //ApexChat.manageFocus(e, this);\r\n // }\r\n });\r\n ManageFocusOnKeyEvents(confirmButton);\r\n // Make send button behave like QuickReply Okay button;ref. CHAT-4294\r\n if (me.options.sendButton && isLastMessage(msgObj)) {\r\n const sendBtn = me.options.sendButton;\r\n TempStorageCache.add('QuestionTypeCurrentMessage', msgObj);\r\n TempStorageCache.add('QuestionTypeRenderer', me);\r\n // if response is submitted successfully from the prechat\r\n // don't need to bind again click event on the send button\r\n // only need to check ATA Non List QT's\r\n if (msgObj && msgObj.questionType == ScriptsQuestionType.AllThatApply) {\r\n const selectedOptions = ApexChat.TryParse(msgObj.visitorSelectedOptions);\r\n if (!selectedOptions && !me.options.model.aiBotEnabled) {\r\n observe(sendBtn, 'click', me.sendBtnClick);\r\n }\r\n } else {\r\n observe(sendBtn, 'click', me.sendBtnClick);\r\n }\r\n }\r\n }\r\n const skipButton = me.context.getElementById(`apexchat_skip_question_${msgObj.id}`);\r\n if (skipButton) {\r\n observe(\r\n skipButton,\r\n 'click',\r\n me.sendResponse.bind2(me, msgObj, \"Visitor didn't answer this question!\", true)\r\n );\r\n // apply ADA\r\n observe(skipButton, 'keyup', (e) => {\r\n if (isAcceptKey(e)) {\r\n me.sendResponse.bind2(\r\n me,\r\n e,\r\n msgObj,\r\n \"Visitor didn't answer this question!\",\r\n true\r\n )();\r\n } else {\r\n // ApexChat.manageFocus(e, this);\r\n }\r\n });\r\n }\r\n const yesButton = me.context.getElementById(`apexchat-btn-yes-${msgObj.id}`);\r\n if (yesButton) {\r\n observe(yesButton, 'click', me.sendResponse.bind2(me, msgObj, msgObj.yesText));\r\n observe(yesButton, 'keyup', function (e) {\r\n if (me.$(this).css('pointer-events') != 'none') {\r\n me.manageQtFocus.bind2(this, e, {\r\n msg: msgObj,\r\n text: msgObj.yesText,\r\n context: me,\r\n eventType: 'sendResponse',\r\n muteElements: [\r\n '.apexchat_question_type_update_button',\r\n '.apexchat_question_type_true_or_false'\r\n ]\r\n })(); // muting elements on selector wise\r\n }\r\n });\r\n ManageFocusOnKeyEvents(yesButton);\r\n }\r\n const noButton = me.context.getElementById(`apexchat-btn-no-${msgObj.id}`);\r\n if (noButton) {\r\n observe(noButton, 'click', me.sendResponse.bind2(me, msgObj, msgObj.noText));\r\n observe(noButton, 'keyup', function (e) {\r\n if (me.$(this).css('pointer-events') != 'none') {\r\n me.manageQtFocus.bind2(this, e, {\r\n msg: msgObj,\r\n text: msgObj.noText,\r\n context: me,\r\n eventType: 'sendResponse',\r\n muteElements: [\r\n '.apexchat_question_type_update_button',\r\n '.apexchat_question_type_true_or_false'\r\n ]\r\n })(); // muting elements on selector wise\r\n }\r\n });\r\n ManageFocusOnKeyEvents(noButton);\r\n }\r\n // Hide initially\r\n const updateButtonId = `apexchat-btn-update-${msgObj.id}`;\r\n const updateBtnContainer = me.context.getElementById(updateButtonId);\r\n const updateButton = me.context.querySelector(\r\n `#apexchat-btn-update-${msgObj.id} .apexchat_question_type_update_button`\r\n );\r\n if (updateBtnContainer) {\r\n observe(updateButton, 'click', me.onUpdateEvent.bind2(me, msgObj));\r\n updateBtnContainer.style.display = 'none';\r\n // apply ADA\r\n observe(updateButton, 'keyup', function (e) {\r\n me.manageQtFocus.bind2(this, e, {\r\n msg: msgObj,\r\n context: me,\r\n eventType: 'onUpdateEvent',\r\n muteElements: [`#apexchat-btn-confirm-${msgObj.id}`]\r\n })(); // muting elements on selector wise\r\n // if (isAcceptKey(e)) {\r\n // me.onUpdateEvent.bind2(me, e, msgObj)();\r\n // } else {\r\n // //ApexChat.manageFocus(e, this);\r\n // }\r\n });\r\n }\r\n }\r\n sendResponse(sender, message, text, isSkipped) {\r\n sender.stopPropagation();\r\n sender.preventDefault(); // hack for fire fox\r\n var currentTarget = sender.currentTarget;\r\n import(\r\n /* webpackChunkName: \"sendQuetionTypeResponse\" */ '../core/hooks/sendQuetionTypeResponse'\r\n ).then((module) => {\r\n const sendQuetionTypeResponse = module.default;\r\n var sender2 = { ...sender };\r\n sender2.currentTarget = currentTarget;\r\n sendQuetionTypeResponse(this, sender2, message, text, isSkipped);\r\n });\r\n }\r\n bindUpdateClick(msgObj, clickHandler) {\r\n const me = this;\r\n const updateButtonId = `apexchat-btn-update-${msgObj.id}`;\r\n const updateButton = me.context.getElementById(updateButtonId);\r\n if (updateButton) {\r\n observe(\r\n updateButton,\r\n 'click',\r\n me.onUpdateEvent.bind2(me, msgObj, clickHandler)\r\n );\r\n // me.$(updateButton).hide();\r\n }\r\n }\r\n\r\n /**\r\n responses and then call the responseCallback passing that response\r\n */\r\n\r\n clearToUpdate(message) {\r\n const me = this;\r\n const response = {\r\n chatId: me.options.chatId,\r\n agentScriptAnswerId: message.scriptAnswerId,\r\n chatLogId: message.id,\r\n isUpdating: true\r\n };\r\n // make selected option part of Q-type response\r\n response.answers = JSON.stringify(me.answers);\r\n // make selected option flat string text for DB dsiplay area\r\n response.msgText = getItemValues(me.answers);\r\n // CHATLOG_ID will be set 0 in case of first time chosen answer of QT\r\n if (me.CHATLOG_ID == -1) {\r\n me.CHATLOG_ID = 0;\r\n }\r\n response.questionTypeChatLogIdToBeUpdated = me.CHATLOG_ID;\r\n me.options.responseCallback\r\n ? me.options.responseCallback(response)\r\n : (function () {\r\n console.log('No callback defined for sending Q type update');\r\n })();\r\n // reset and clear things\r\n me.answers = [];\r\n $txt.val('');\r\n }\r\n\r\n /**\r\n disables or hides Question Type controls for any further interaction after submit\r\n */\r\n afterSubmit() {\r\n const me = this;\r\n me.$('.update_dot', me.context).each(function (index) {\r\n me.$(this).hide();\r\n });\r\n me.$('.apexchat_question_type_update_button', me.context).each(function (index) {\r\n me.$(this).hide().parent().hide();\r\n });\r\n me.$('.apexchat_question_type_styled_input_container', me.context).each(function (index) {\r\n me.$(this).disable();\r\n });\r\n me.$('.apexchat_dynamic_question_type_input_controls', me.context).each(function (index) {\r\n me.$(this).disable();\r\n });\r\n me.$('.apexchat_question_confirm_or_skip_padding', me.context).each(function (index) {\r\n me.$(this).hide();\r\n });\r\n me.$('.apexchat_contact_qt_wrapper', me.context).hide();\r\n me.$('.apexchat_question_type_true_or_false', me.context).each(function (index) {\r\n me.$(this).disable({ recursively: true });\r\n });\r\n me.hideSkipButton(); // hide skip button when user submit the response.\r\n }\r\n\r\n hideSkipButton() {\r\n const me = this;\r\n if (me.options && me.options.msg && me.options.msg.isSkippable) {\r\n const skipButton = me.$(`#apexchat_skip_question_${me.options.msg.id}`, me.context);\r\n if (me.$(skipButton).is(':visible')) {\r\n skipButton.hide(); // hide skip button\r\n }\r\n }\r\n }\r\n\r\n // remove old classes and plugin new control; ref. CHAT-4778\r\n plugCustomDropbown(m) {\r\n const me = this;\r\n // MC\r\n removeClass(\r\n me.context.getElementById(`apexchat_question_type_multiple_choice_options_div_${m.id}`),\r\n 'apexchat_question_scripts_multiple_choice_as_list'\r\n );\r\n removeClass(\r\n me.context.getElementById(\r\n `apexchat_question_type_multiple_choice_as_list_select_control_${m.id}`\r\n ),\r\n 'apexchat_dynamic_question_type_input_controls'\r\n );\r\n me.context.getElementById(\r\n `apexchat_question_type_multiple_choice_as_list_select_control_${m.id}`\r\n );\r\n // TODO\r\n // .apexChatDropSelect({\r\n // context: me.context,\r\n // className: 'apexchat_question_type_dropSelect'\r\n // });\r\n // Time\r\n removeClass(\r\n me.context.getElementById(`apexchat_question_type_time_select_control_${m.id}`),\r\n 'apexchat_dynamic_question_type_input_controls'\r\n );\r\n removeClass(\r\n me.context.getElementById(`apexchat_question_type_time_${m.id}`),\r\n 'apexchat_question_scripts_time'\r\n );\r\n // TODO\r\n // me.$(`#apexchat_question_type_time_select_control_${m.id}`, me.context).apexChatDropSelect({\r\n // context: me.context,\r\n // className: 'apexchat_question_type_dropSelect',\r\n // width: '250px'\r\n // });\r\n\r\n // Time of Calender\r\n removeClass(\r\n me.context.getElementById(\r\n `apexchat_question_type_time_calendar_select_control_${m.id}`\r\n ),\r\n 'apexchat_dynamic_question_type_input_controls'\r\n );\r\n removeClass(\r\n me.context.getElementById(`apexchat_question_type_time_calendar_select_div_${m.id}`),\r\n 'apexchat_question_scripts_time_calendar'\r\n );\r\n //TODO\r\n // me.$(\r\n // `#apexchat_question_type_time_calendar_select_control_${m.id}`,\r\n // me.context\r\n // ).apexChatDropSelect({\r\n // context: me.context,\r\n // className: 'apexchat_question_type_dropSelect',\r\n // width: '250px'\r\n // });\r\n\r\n // to hide box, uncomment below\r\n // var apexchat_question_type_single_col = $('#apexchat_question_type_multiple_choice_options_div_' + m.id).parent();\r\n // ApexChat.addClass(apexchat_question_type_single_col[0], 'apexchat_transparent_question_type');\r\n }\r\n\r\n setContext(context) {\r\n this.context = context;\r\n }\r\n\r\n getContext() {\r\n return this.context;\r\n }\r\n\r\n getContextId() {\r\n return this.context.querySelector('div').id;\r\n }\r\n\r\n /**\r\n * After selection of multiple choice, hide last selected RD MC.\r\n * @param {object} msg- Message object\r\n */\r\n afterMCSelectionRD(msg) {\r\n const me = this;\r\n if (msg.questionType === ScriptsQuestionType.MultipleChoice) {\r\n const mcRadioContainer = me.$(\r\n '.apexchat_question_type_styled_input_container',\r\n me.context\r\n );\r\n const mcRadioLastContainer = mcRadioContainer.length - 1;\r\n if (mcRadioContainer[mcRadioLastContainer]) {\r\n mcRadioContainer[mcRadioLastContainer].remove();\r\n }\r\n }\r\n }\r\n\r\n isLastUnAnsweredMessage(msgObj, selectedOptions) {\r\n const me = this;\r\n const isLastMsg = me.isAgentLastMessage(msgObj);\r\n // checking visitor response\r\n if (\r\n (msgObj.visitorResponseStatus == ScriptVisitorResponseStatus.UnAnswered ||\r\n msgObj.visitorResponseStatus == ScriptVisitorResponseStatus.Updating) &&\r\n isLastMsg\r\n ) {\r\n return true;\r\n }\r\n // checking visitor select any option\r\n if (!msgObj.visitorSelectedOptions && isLastMsg) {\r\n return true;\r\n }\r\n // checking & validation of JSON as checking length\r\n if ((!selectedOptions || selectedOptions.length == 0) && isLastMsg) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","import questionTypeMultipleChoiceAsListTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/multiple_choice_display_as_list_question_template.ejs';\r\nimport questionTypeMultipleChoiceOptionsTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/multiple_choice_options_template.ejs';\r\nimport questionTypeNoneTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/none_question_type_message_template.ejs';\r\nimport questionTypeCalendarDateTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/calendar_date_question_template.ejs';\r\nimport questionTypeTimeOptionsTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/time_options_template.ejs';\r\nimport questionTypeTimeCalendarTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/time_calendar_question_template.ejs';\r\nimport questionTypeMultipleChoiceTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/multiple_choice_question_template.ejs';\r\nimport questionTypeTextTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/text_question_template.ejs';\r\nimport questionTypeTimeTemplatePrechat from '../../templates/question_types/prechat_rounded_theme/time_question_template.ejs';\r\n\r\nimport questionTypeTextTemplate from '../../templates/question_types/text_question_template.ejs';\r\nimport questionTypeTimeTemplate from '../../templates/question_types/time_question_template.ejs';\r\nimport questionTypeMultipleChoiceAsListTemplate from '../../templates/question_types/multiple_choice_display_as_list_question_template.ejs';\r\nimport questionTypeMultipleChoiceOptionsTemplate from '../../templates/question_types/multiple_choice_options_template.ejs';\r\nimport questionTypeNoneTemplate from '../../templates/question_types/none_question_type_message_template.ejs';\r\nimport questionTypeCalendarDateTemplate from '../../templates/question_types/calendar_date_question_template.ejs';\r\nimport questionTypeTimeOptionsTemplate from '../../templates/question_types/time_options_template.ejs';\r\nimport questionTypeTimeCalendarTemplate from '../../templates/question_types/time_calendar_question_template.ejs';\r\nimport questionTypeMultipleChoiceTemplate from '../../templates/question_types/multiple_choice_question_template.ejs';\r\n\r\nconst ImportQuestypeTemplateFactory = (isFromPreChat) => {\r\n if (isFromPreChat) {\r\n return {\r\n questionTypeTextTemplate: questionTypeTextTemplatePrechat,\r\n questionTypeTimeTemplate: questionTypeTimeTemplatePrechat,\r\n questionTypeMultipleChoiceAsListTemplate:\r\n questionTypeMultipleChoiceAsListTemplatePrechat,\r\n questionTypeMultipleChoiceOptionsTemplate:\r\n questionTypeMultipleChoiceOptionsTemplatePrechat,\r\n questionTypeNoneTemplate: questionTypeNoneTemplatePrechat,\r\n questionTypeCalendarDateTemplate: questionTypeCalendarDateTemplatePrechat,\r\n questionTypeTimeOptionsTemplate: questionTypeTimeOptionsTemplatePrechat,\r\n questionTypeTimeCalendarTemplate: questionTypeTimeCalendarTemplatePrechat,\r\n questionTypeMultipleChoiceTemplate: questionTypeMultipleChoiceTemplatePrechat\r\n };\r\n }\r\n return {\r\n questionTypeTextTemplate,\r\n questionTypeTimeTemplate,\r\n questionTypeMultipleChoiceAsListTemplate,\r\n questionTypeMultipleChoiceOptionsTemplate,\r\n questionTypeNoneTemplate,\r\n questionTypeCalendarDateTemplate,\r\n questionTypeTimeOptionsTemplate,\r\n questionTypeTimeCalendarTemplate,\r\n questionTypeMultipleChoiceTemplate\r\n };\r\n};\r\nexport default ImportQuestypeTemplateFactory;\r\n","const QuestionTypeVersion = {\r\n Classical: 0,\r\n RoundedDynamic: 1\r\n};\r\nexport default QuestionTypeVersion;\r\n","module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '', __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\nwith (obj) {\n__p += ' \\r\\n \\r\\n\\r\\n ' +\n((__t = ( ApexChat.getCurrentFormatedDateTime(createdOn, 'hh:mmtt' ) )) == null ? '' : __t) +\n'\\r\\n\\r\\n';\n\n}\nreturn __p\n}","module.exports = function(obj) {\nobj || (obj = {});\nvar __t, __p = '', __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\nwith (obj) {\n__p += '\\r\\n