@botonic/react 0.20.4 → 0.20.5
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/lib/webchat-app.js +2 -2
- package/lib/webchat-app.js.map +1 -1
- package/package.json +1 -1
- package/src/webchat-app.jsx +2 -2
package/lib/webchat-app.js
CHANGED
|
@@ -461,8 +461,8 @@ var WebchatApp = /*#__PURE__*/function () {
|
|
|
461
461
|
enableAttachments: enableAttachments,
|
|
462
462
|
enableUserInput: enableUserInput,
|
|
463
463
|
enableAnimations: enableAnimations,
|
|
464
|
-
storage: storage,
|
|
465
|
-
storageKey: storageKey,
|
|
464
|
+
storage: this.storage,
|
|
465
|
+
storageKey: this.storageKey,
|
|
466
466
|
defaultDelay: defaultDelay,
|
|
467
467
|
defaultTyping: defaultTyping,
|
|
468
468
|
onInit: function onInit() {
|
package/lib/webchat-app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/webchat-app.jsx"],"names":["WebchatApp","theme","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","hostId","shadowDOM","defaultDelay","defaultTyping","storage","storageKey","onInit","onOpen","onClose","onMessage","onConnectionChange","appId","visibility","server","Boolean","console","warn","WEBCHAT","DEFAULTS","HOST_ID","undefined","localStorage","STORAGE_KEY","webchatRef","host","id","document","getElementById","createElement","body","firstChild","insertBefore","appendChild","attachShadow","mode","node","shadowRoot","args","user","input","from","SENDERS","message","hubtypeService","postMessage","onConnectionRegained","session","messagesJSON","lastMessage","length","lastMessageId","lastMessageUpdateDate","getLastMessageUpdate","HubtypeService","onEvent","event","onServiceEvent","unsentInputs","current","getMessages","filter","msg","ack","unsentInput","action","online","setOnline","updateMessageInfo","type","updateWebchatSettings","data","setTyping","bot","addBotMessage","updateUser","addBotResponse","response","customTypes","customMessageTypes","text","INPUT","TEXT","addUserMessage","payload","POSTBACK","typing","openWebchat","closeWebchat","toggleWebchat","openCoverComponent","closeCoverComponent","_customComponent","renderCustomComponent","unmountCustomComponent","toggleCoverComponent","clearMessages","resolveWebchatVisibility","msgId","messageInfo","settings","optionsAtRuntime","webchatOptions","createRootElement","onInitWebchat","onOpenWebchat","onCloseWebchat","onUserInput","webchatState","onStateChange","getWebchatVisibility","status","isOnline","isWebchatVisible","destroyPusher","removeItem","dest","isVisible","getComponent","getReactMountNode"],"mappings":"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","sourcesContent":["import { HubtypeService, INPUT } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport React, { createRef } from 'react'\nimport { render, unmountComponentAtNode } from 'react-dom'\n\nimport { SENDERS, WEBCHAT } from './constants'\nimport { msgToBotonic } from './msg-to-botonic'\nimport { isShadowDOMSupported, onDOMLoaded } from './util/dom'\nimport { Webchat } from './webchat/webchat'\n\nexport class WebchatApp {\n constructor({\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n hostId,\n shadowDOM,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n appId,\n visibility,\n server,\n }) {\n this.theme = theme\n this.persistentMenu = persistentMenu\n this.coverComponent = coverComponent\n this.blockInputs = blockInputs\n this.enableEmojiPicker = enableEmojiPicker\n this.enableAttachments = enableAttachments\n this.enableUserInput = enableUserInput\n this.enableAnimations = enableAnimations\n this.shadowDOM = Boolean(\n typeof shadowDOM === 'function' ? shadowDOM() : shadowDOM\n )\n if (this.shadowDOM && !isShadowDOMSupported()) {\n console.warn('[botonic] ShadowDOM not supported on this browser')\n this.shadowDOM = false\n }\n this.hostId = hostId || WEBCHAT.DEFAULTS.HOST_ID\n this.defaultDelay = defaultDelay\n this.defaultTyping = defaultTyping\n this.storage = storage === undefined ? localStorage : storage\n this.storageKey = storageKey || WEBCHAT.DEFAULTS.STORAGE_KEY\n this.onInit = onInit\n this.onOpen = onOpen\n this.onClose = onClose\n this.onMessage = onMessage\n this.onConnectionChange = onConnectionChange\n this.visibility = visibility\n this.server = server\n this.webchatRef = createRef()\n this.appId = appId\n }\n\n createRootElement(host) {\n // Create root element <div id='root'> if not exists\n // Create shadowDOM to root element if needed\n if (host) {\n if (host.id && this.hostId) {\n if (host.id != this.hostId) {\n console.warn(\n `[botonic] Host ID \"${host.id}\" don't match 'hostId' option: ${this.hostId}. Using value: ${host.id}.`\n )\n this.hostId = host.id\n }\n } else if (host.id) this.hostId = host.id\n else if (this.hostId) host.id = this.hostId\n } else {\n host = document.getElementById(this.hostId)\n }\n if (!host) {\n host = document.createElement('div')\n host.id = this.hostId\n if (document.body.firstChild)\n document.body.insertBefore(host, document.body.firstChild)\n else document.body.appendChild(host)\n }\n this.host = this.shadowDOM ? host.attachShadow({ mode: 'open' }) : host\n }\n\n getReactMountNode(node) {\n if (!node) node = this.host\n return node.shadowRoot ? node.shadowRoot : node\n }\n\n onInitWebchat(...args) {\n this.onInit && this.onInit(this, ...args)\n }\n\n onOpenWebchat(...args) {\n this.onOpen && this.onOpen(this, ...args)\n }\n\n onCloseWebchat(...args) {\n this.onClose && this.onClose(this, ...args)\n }\n\n async onUserInput({ user, input }) {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.user, message: input })\n return this.hubtypeService.postMessage(user, input)\n }\n\n async onConnectionRegained() {\n return this.hubtypeService.onConnectionRegained()\n }\n\n onStateChange({ session: { user }, messagesJSON }) {\n const lastMessage = messagesJSON[messagesJSON.length - 1]\n const lastMessageId = lastMessage && lastMessage.id\n const lastMessageUpdateDate = this.getLastMessageUpdate()\n if (this.hubtypeService) {\n this.hubtypeService.lastMessageId = lastMessageId\n this.hubtypeService.lastMessageUpdateDate = lastMessageUpdateDate\n } else if (!this.hubtypeService && user) {\n this.hubtypeService = new HubtypeService({\n appId: this.appId,\n user,\n lastMessageId,\n lastMessageUpdateDate,\n onEvent: event => this.onServiceEvent(event),\n unsentInputs: () =>\n this.webchatRef.current\n .getMessages()\n .filter(msg => msg.ack === 0 && msg.unsentInput),\n server: this.server,\n })\n }\n }\n\n onServiceEvent(event) {\n if (event.action === 'connectionChange') {\n this.onConnectionChange && this.onConnectionChange(this, event.online)\n this.webchatRef.current.setOnline(event.online)\n } else if (event.action === 'update_message_info')\n this.updateMessageInfo(event.message.id, event.message)\n else if (event.message.type === 'update_webchat_settings')\n this.updateWebchatSettings(event.message.data)\n else if (event.message.type === 'sender_action')\n this.setTyping(event.message.data === 'typing_on')\n else {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.bot, message: event.message })\n this.addBotMessage(event.message)\n }\n }\n\n updateUser(user) {\n this.webchatRef.current.updateUser(user)\n }\n\n addBotMessage(message) {\n this.webchatRef.current.addBotResponse({\n response: msgToBotonic(\n message,\n (this.theme.message && this.theme.message.customTypes) ||\n this.theme.customMessageTypes\n ),\n })\n }\n\n addBotText(text) {\n this.addBotMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserMessage(message) {\n this.webchatRef.current.addUserMessage(message)\n }\n\n addUserText(text) {\n this.webchatRef.current.addUserMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserPayload(payload) {\n this.webchatRef.current.addUserMessage({ type: INPUT.POSTBACK, payload })\n }\n\n setTyping(typing) {\n this.webchatRef.current.setTyping(typing)\n }\n\n open() {\n this.webchatRef.current.openWebchat()\n }\n\n close() {\n this.webchatRef.current.closeWebchat()\n }\n\n toggle() {\n this.webchatRef.current.toggleWebchat()\n }\n\n openCoverComponent() {\n this.webchatRef.current.openCoverComponent()\n }\n\n closeCoverComponent() {\n this.webchatRef.current.closeCoverComponent()\n }\n\n renderCustomComponent(_customComponent) {\n this.webchatRef.current.renderCustomComponent(_customComponent)\n }\n\n unmountCustomComponent() {\n this.webchatRef.current.unmountCustomComponent()\n }\n\n toggleCoverComponent() {\n this.webchatRef.current.toggleCoverComponent()\n }\n\n getMessages() {\n return this.webchatRef.current.getMessages()\n }\n\n clearMessages() {\n this.webchatRef.current.clearMessages()\n }\n\n async getVisibility() {\n return this.resolveWebchatVisibility({\n appId: this.appId,\n visibility: this.visibility,\n })\n }\n\n getLastMessageUpdate() {\n return this.webchatRef.current.getLastMessageUpdate()\n }\n\n updateMessageInfo(msgId, messageInfo) {\n return this.webchatRef.current.updateMessageInfo(msgId, messageInfo)\n }\n\n updateWebchatSettings(settings) {\n return this.webchatRef.current.updateWebchatSettings(settings)\n }\n\n // eslint-disable-next-line complexity\n getComponent(host, optionsAtRuntime = {}) {\n let {\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n enableEmojiPicker,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n appId,\n visibility,\n server,\n hostId,\n ...webchatOptions\n } = optionsAtRuntime\n theme = merge(this.theme, theme)\n persistentMenu = persistentMenu || this.persistentMenu\n coverComponent = coverComponent || this.coverComponent\n blockInputs = blockInputs || this.blockInputs\n enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker\n enableAttachments = enableAttachments || this.enableAttachments\n enableUserInput = enableUserInput || this.enableUserInput\n enableAnimations = enableAnimations || this.enableAnimations\n defaultDelay = defaultDelay || this.defaultDelay\n defaultTyping = defaultTyping || this.defaultTyping\n server = server || this.server\n this.storage = storage || this.storage\n this.storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.onConnectionChange = onConnectionChange || this.onConnectionChange\n this.visibility = visibility || this.visibility\n this.appId = appId || this.appId\n this.hostId = hostId || this.hostId\n this.createRootElement(host)\n return (\n <Webchat\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme}\n persistentMenu={persistentMenu}\n coverComponent={coverComponent}\n blockInputs={blockInputs}\n enableEmojiPicker={enableEmojiPicker}\n enableAttachments={enableAttachments}\n enableUserInput={enableUserInput}\n enableAnimations={enableAnimations}\n storage={storage}\n storageKey={storageKey}\n defaultDelay={defaultDelay}\n defaultTyping={defaultTyping}\n onInit={(...args) => this.onInitWebchat(...args)}\n onOpen={(...args) => this.onOpenWebchat(...args)}\n onClose={(...args) => this.onCloseWebchat(...args)}\n onUserInput={(...args) => this.onUserInput(...args)}\n onStateChange={webchatState => this.onStateChange(webchatState)}\n server={server}\n />\n )\n }\n\n async isWebchatVisible({ appId }) {\n try {\n const { status } = await HubtypeService.getWebchatVisibility({\n appId,\n })\n return status === 200\n } catch (e) {\n return false\n }\n }\n\n isOnline() {\n return this.webchatRef.current.isOnline()\n }\n\n async resolveWebchatVisibility(optionsAtRuntime) {\n let { appId, visibility } = optionsAtRuntime\n visibility = visibility || this.visibility\n if (visibility === undefined || visibility === true) return true\n if (typeof visibility === 'function' && visibility()) return true\n if (visibility === 'dynamic' && (await this.isWebchatVisible({ appId })))\n return true\n return false\n }\n\n destroy() {\n if (this.hubtypeService) this.hubtypeService.destroyPusher()\n unmountComponentAtNode(this.host)\n if (this.storage) this.storage.removeItem(this.storageKey)\n }\n\n async render(dest, optionsAtRuntime = {}) {\n onDOMLoaded(async () => {\n const isVisible = await this.resolveWebchatVisibility(optionsAtRuntime)\n if (isVisible)\n render(\n this.getComponent(dest, optionsAtRuntime),\n this.getReactMountNode(dest)\n )\n })\n }\n}\n"],"file":"webchat-app.js"}
|
|
1
|
+
{"version":3,"sources":["../src/webchat-app.jsx"],"names":["WebchatApp","theme","persistentMenu","coverComponent","blockInputs","enableEmojiPicker","enableAttachments","enableUserInput","enableAnimations","hostId","shadowDOM","defaultDelay","defaultTyping","storage","storageKey","onInit","onOpen","onClose","onMessage","onConnectionChange","appId","visibility","server","Boolean","console","warn","WEBCHAT","DEFAULTS","HOST_ID","undefined","localStorage","STORAGE_KEY","webchatRef","host","id","document","getElementById","createElement","body","firstChild","insertBefore","appendChild","attachShadow","mode","node","shadowRoot","args","user","input","from","SENDERS","message","hubtypeService","postMessage","onConnectionRegained","session","messagesJSON","lastMessage","length","lastMessageId","lastMessageUpdateDate","getLastMessageUpdate","HubtypeService","onEvent","event","onServiceEvent","unsentInputs","current","getMessages","filter","msg","ack","unsentInput","action","online","setOnline","updateMessageInfo","type","updateWebchatSettings","data","setTyping","bot","addBotMessage","updateUser","addBotResponse","response","customTypes","customMessageTypes","text","INPUT","TEXT","addUserMessage","payload","POSTBACK","typing","openWebchat","closeWebchat","toggleWebchat","openCoverComponent","closeCoverComponent","_customComponent","renderCustomComponent","unmountCustomComponent","toggleCoverComponent","clearMessages","resolveWebchatVisibility","msgId","messageInfo","settings","optionsAtRuntime","webchatOptions","createRootElement","onInitWebchat","onOpenWebchat","onCloseWebchat","onUserInput","webchatState","onStateChange","getWebchatVisibility","status","isOnline","isWebchatVisible","destroyPusher","removeItem","dest","isVisible","getComponent","getReactMountNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;IAEaA,U;AACX,4BAuBG;AAAA,0BAtBDC,KAsBC;AAAA,QAtBDA,KAsBC,2BAtBO,EAsBP;AAAA,QArBDC,cAqBC,QArBDA,cAqBC;AAAA,QApBDC,cAoBC,QApBDA,cAoBC;AAAA,QAnBDC,WAmBC,QAnBDA,WAmBC;AAAA,QAlBDC,iBAkBC,QAlBDA,iBAkBC;AAAA,QAjBDC,iBAiBC,QAjBDA,iBAiBC;AAAA,QAhBDC,eAgBC,QAhBDA,eAgBC;AAAA,QAfDC,gBAeC,QAfDA,gBAeC;AAAA,QAdDC,MAcC,QAdDA,MAcC;AAAA,QAbDC,SAaC,QAbDA,SAaC;AAAA,QAZDC,YAYC,QAZDA,YAYC;AAAA,QAXDC,aAWC,QAXDA,aAWC;AAAA,QAVDC,OAUC,QAVDA,OAUC;AAAA,QATDC,UASC,QATDA,UASC;AAAA,QARDC,MAQC,QARDA,MAQC;AAAA,QAPDC,MAOC,QAPDA,MAOC;AAAA,QANDC,OAMC,QANDA,OAMC;AAAA,QALDC,SAKC,QALDA,SAKC;AAAA,QAJDC,kBAIC,QAJDA,kBAIC;AAAA,QAHDC,KAGC,QAHDA,KAGC;AAAA,QAFDC,UAEC,QAFDA,UAEC;AAAA,QADDC,MACC,QADDA,MACC;AAAA;AACD,SAAKrB,KAAL,GAAaA,KAAb;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,SAAKC,WAAL,GAAmBA,WAAnB;AACA,SAAKC,iBAAL,GAAyBA,iBAAzB;AACA,SAAKC,iBAAL,GAAyBA,iBAAzB;AACA,SAAKC,eAAL,GAAuBA,eAAvB;AACA,SAAKC,gBAAL,GAAwBA,gBAAxB;AACA,SAAKE,SAAL,GAAiBa,OAAO,CACtB,OAAOb,SAAP,KAAqB,UAArB,GAAkCA,SAAS,EAA3C,GAAgDA,SAD1B,CAAxB;;AAGA,QAAI,KAAKA,SAAL,IAAkB,CAAC,gCAAvB,EAA+C;AAC7Cc,MAAAA,OAAO,CAACC,IAAR,CAAa,mDAAb;AACA,WAAKf,SAAL,GAAiB,KAAjB;AACD;;AACD,SAAKD,MAAL,GAAcA,MAAM,IAAIiB,mBAAQC,QAAR,CAAiBC,OAAzC;AACA,SAAKjB,YAAL,GAAoBA,YAApB;AACA,SAAKC,aAAL,GAAqBA,aAArB;AACA,SAAKC,OAAL,GAAeA,OAAO,KAAKgB,SAAZ,GAAwBC,YAAxB,GAAuCjB,OAAtD;AACA,SAAKC,UAAL,GAAkBA,UAAU,IAAIY,mBAAQC,QAAR,CAAiBI,WAAjD;AACA,SAAKhB,MAAL,GAAcA,MAAd;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKC,SAAL,GAAiBA,SAAjB;AACA,SAAKC,kBAAL,GAA0BA,kBAA1B;AACA,SAAKE,UAAL,GAAkBA,UAAlB;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAKU,UAAL,gBAAkB,uBAAlB;AACA,SAAKZ,KAAL,GAAaA,KAAb;AACD;;;;WAED,2BAAkBa,IAAlB,EAAwB;AACtB;AACA;AACA,UAAIA,IAAJ,EAAU;AACR,YAAIA,IAAI,CAACC,EAAL,IAAW,KAAKzB,MAApB,EAA4B;AAC1B,cAAIwB,IAAI,CAACC,EAAL,IAAW,KAAKzB,MAApB,EAA4B;AAC1Be,YAAAA,OAAO,CAACC,IAAR,+BACwBQ,IAAI,CAACC,EAD7B,6CACiE,KAAKzB,MADtE,4BAC8FwB,IAAI,CAACC,EADnG;AAGA,iBAAKzB,MAAL,GAAcwB,IAAI,CAACC,EAAnB;AACD;AACF,SAPD,MAOO,IAAID,IAAI,CAACC,EAAT,EAAa,KAAKzB,MAAL,GAAcwB,IAAI,CAACC,EAAnB,CAAb,KACF,IAAI,KAAKzB,MAAT,EAAiBwB,IAAI,CAACC,EAAL,GAAU,KAAKzB,MAAf;AACvB,OAVD,MAUO;AACLwB,QAAAA,IAAI,GAAGE,QAAQ,CAACC,cAAT,CAAwB,KAAK3B,MAA7B,CAAP;AACD;;AACD,UAAI,CAACwB,IAAL,EAAW;AACTA,QAAAA,IAAI,GAAGE,QAAQ,CAACE,aAAT,CAAuB,KAAvB,CAAP;AACAJ,QAAAA,IAAI,CAACC,EAAL,GAAU,KAAKzB,MAAf;AACA,YAAI0B,QAAQ,CAACG,IAAT,CAAcC,UAAlB,EACEJ,QAAQ,CAACG,IAAT,CAAcE,YAAd,CAA2BP,IAA3B,EAAiCE,QAAQ,CAACG,IAAT,CAAcC,UAA/C,EADF,KAEKJ,QAAQ,CAACG,IAAT,CAAcG,WAAd,CAA0BR,IAA1B;AACN;;AACD,WAAKA,IAAL,GAAY,KAAKvB,SAAL,GAAiBuB,IAAI,CAACS,YAAL,CAAkB;AAAEC,QAAAA,IAAI,EAAE;AAAR,OAAlB,CAAjB,GAAuDV,IAAnE;AACD;;;WAED,2BAAkBW,IAAlB,EAAwB;AACtB,UAAI,CAACA,IAAL,EAAWA,IAAI,GAAG,KAAKX,IAAZ;AACX,aAAOW,IAAI,CAACC,UAAL,GAAkBD,IAAI,CAACC,UAAvB,GAAoCD,IAA3C;AACD;;;WAED,yBAAuB;AAAA,wCAANE,IAAM;AAANA,QAAAA,IAAM;AAAA;;AACrB,WAAK/B,MAAL,IAAe,KAAKA,MAAL,cAAY,IAAZ,SAAqB+B,IAArB,EAAf;AACD;;;WAED,yBAAuB;AAAA,yCAANA,IAAM;AAANA,QAAAA,IAAM;AAAA;;AACrB,WAAK9B,MAAL,IAAe,KAAKA,MAAL,cAAY,IAAZ,SAAqB8B,IAArB,EAAf;AACD;;;WAED,0BAAwB;AAAA,yCAANA,IAAM;AAANA,QAAAA,IAAM;AAAA;;AACtB,WAAK7B,OAAL,IAAgB,KAAKA,OAAL,cAAa,IAAb,SAAsB6B,IAAtB,EAAhB;AACD;;;;uGAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoBC,gBAAAA,IAApB,SAAoBA,IAApB,EAA0BC,KAA1B,SAA0BA,KAA1B;AACE,qBAAK9B,SAAL,IACE,KAAKA,SAAL,CAAe,IAAf,EAAqB;AAAE+B,kBAAAA,IAAI,EAAEC,mBAAQH,IAAhB;AAAsBI,kBAAAA,OAAO,EAAEH;AAA/B,iBAArB,CADF;AADF,iDAGS,KAAKI,cAAL,CAAoBC,WAApB,CAAgCN,IAAhC,EAAsCC,KAAtC,CAHT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;gHAMA;AAAA;AAAA;AAAA;AAAA;AAAA,kDACS,KAAKI,cAAL,CAAoBE,oBAApB,EADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAIA,8BAAmD;AAAA;;AAAA,UAAxBP,IAAwB,SAAnCQ,OAAmC,CAAxBR,IAAwB;AAAA,UAAhBS,YAAgB,SAAhBA,YAAgB;AACjD,UAAMC,WAAW,GAAGD,YAAY,CAACA,YAAY,CAACE,MAAb,GAAsB,CAAvB,CAAhC;AACA,UAAMC,aAAa,GAAGF,WAAW,IAAIA,WAAW,CAACvB,EAAjD;AACA,UAAM0B,qBAAqB,GAAG,KAAKC,oBAAL,EAA9B;;AACA,UAAI,KAAKT,cAAT,EAAyB;AACvB,aAAKA,cAAL,CAAoBO,aAApB,GAAoCA,aAApC;AACA,aAAKP,cAAL,CAAoBQ,qBAApB,GAA4CA,qBAA5C;AACD,OAHD,MAGO,IAAI,CAAC,KAAKR,cAAN,IAAwBL,IAA5B,EAAkC;AACvC,aAAKK,cAAL,GAAsB,IAAIU,oBAAJ,CAAmB;AACvC1C,UAAAA,KAAK,EAAE,KAAKA,KAD2B;AAEvC2B,UAAAA,IAAI,EAAJA,IAFuC;AAGvCY,UAAAA,aAAa,EAAbA,aAHuC;AAIvCC,UAAAA,qBAAqB,EAArBA,qBAJuC;AAKvCG,UAAAA,OAAO,EAAE,iBAAAC,KAAK;AAAA,mBAAI,KAAI,CAACC,cAAL,CAAoBD,KAApB,CAAJ;AAAA,WALyB;AAMvCE,UAAAA,YAAY,EAAE;AAAA,mBACZ,KAAI,CAAClC,UAAL,CAAgBmC,OAAhB,CACGC,WADH,GAEGC,MAFH,CAEU,UAAAC,GAAG;AAAA,qBAAIA,GAAG,CAACC,GAAJ,KAAY,CAAZ,IAAiBD,GAAG,CAACE,WAAzB;AAAA,aAFb,CADY;AAAA,WANyB;AAUvClD,UAAAA,MAAM,EAAE,KAAKA;AAV0B,SAAnB,CAAtB;AAYD;AACF;;;WAED,wBAAe0C,KAAf,EAAsB;AACpB,UAAIA,KAAK,CAACS,MAAN,KAAiB,kBAArB,EAAyC;AACvC,aAAKtD,kBAAL,IAA2B,KAAKA,kBAAL,CAAwB,IAAxB,EAA8B6C,KAAK,CAACU,MAApC,CAA3B;AACA,aAAK1C,UAAL,CAAgBmC,OAAhB,CAAwBQ,SAAxB,CAAkCX,KAAK,CAACU,MAAxC;AACD,OAHD,MAGO,IAAIV,KAAK,CAACS,MAAN,KAAiB,qBAArB,EACL,KAAKG,iBAAL,CAAuBZ,KAAK,CAACb,OAAN,CAAcjB,EAArC,EAAyC8B,KAAK,CAACb,OAA/C,EADK,KAEF,IAAIa,KAAK,CAACb,OAAN,CAAc0B,IAAd,KAAuB,yBAA3B,EACH,KAAKC,qBAAL,CAA2Bd,KAAK,CAACb,OAAN,CAAc4B,IAAzC,EADG,KAEA,IAAIf,KAAK,CAACb,OAAN,CAAc0B,IAAd,KAAuB,eAA3B,EACH,KAAKG,SAAL,CAAehB,KAAK,CAACb,OAAN,CAAc4B,IAAd,KAAuB,WAAtC,EADG,KAEA;AACH,aAAK7D,SAAL,IACE,KAAKA,SAAL,CAAe,IAAf,EAAqB;AAAE+B,UAAAA,IAAI,EAAEC,mBAAQ+B,GAAhB;AAAqB9B,UAAAA,OAAO,EAAEa,KAAK,CAACb;AAApC,SAArB,CADF;AAEA,aAAK+B,aAAL,CAAmBlB,KAAK,CAACb,OAAzB;AACD;AACF;;;WAED,oBAAWJ,IAAX,EAAiB;AACf,WAAKf,UAAL,CAAgBmC,OAAhB,CAAwBgB,UAAxB,CAAmCpC,IAAnC;AACD;;;WAED,uBAAcI,OAAd,EAAuB;AACrB,WAAKnB,UAAL,CAAgBmC,OAAhB,CAAwBiB,cAAxB,CAAuC;AACrCC,QAAAA,QAAQ,EAAE,gCACRlC,OADQ,EAEP,KAAKlD,KAAL,CAAWkD,OAAX,IAAsB,KAAKlD,KAAL,CAAWkD,OAAX,CAAmBmC,WAA1C,IACE,KAAKrF,KAAL,CAAWsF,kBAHL;AAD2B,OAAvC;AAOD;;;WAED,oBAAWC,IAAX,EAAiB;AACf,WAAKN,aAAL,CAAmB;AAAEL,QAAAA,IAAI,EAAEY,YAAMC,IAAd;AAAoBX,QAAAA,IAAI,EAAES;AAA1B,OAAnB;AACD;;;WAED,wBAAerC,OAAf,EAAwB;AACtB,WAAKnB,UAAL,CAAgBmC,OAAhB,CAAwBwB,cAAxB,CAAuCxC,OAAvC;AACD;;;WAED,qBAAYqC,IAAZ,EAAkB;AAChB,WAAKxD,UAAL,CAAgBmC,OAAhB,CAAwBwB,cAAxB,CAAuC;AAAEd,QAAAA,IAAI,EAAEY,YAAMC,IAAd;AAAoBX,QAAAA,IAAI,EAAES;AAA1B,OAAvC;AACD;;;WAED,wBAAeI,OAAf,EAAwB;AACtB,WAAK5D,UAAL,CAAgBmC,OAAhB,CAAwBwB,cAAxB,CAAuC;AAAEd,QAAAA,IAAI,EAAEY,YAAMI,QAAd;AAAwBD,QAAAA,OAAO,EAAPA;AAAxB,OAAvC;AACD;;;WAED,mBAAUE,MAAV,EAAkB;AAChB,WAAK9D,UAAL,CAAgBmC,OAAhB,CAAwBa,SAAxB,CAAkCc,MAAlC;AACD;;;WAED,gBAAO;AACL,WAAK9D,UAAL,CAAgBmC,OAAhB,CAAwB4B,WAAxB;AACD;;;WAED,iBAAQ;AACN,WAAK/D,UAAL,CAAgBmC,OAAhB,CAAwB6B,YAAxB;AACD;;;WAED,kBAAS;AACP,WAAKhE,UAAL,CAAgBmC,OAAhB,CAAwB8B,aAAxB;AACD;;;WAED,8BAAqB;AACnB,WAAKjE,UAAL,CAAgBmC,OAAhB,CAAwB+B,kBAAxB;AACD;;;WAED,+BAAsB;AACpB,WAAKlE,UAAL,CAAgBmC,OAAhB,CAAwBgC,mBAAxB;AACD;;;WAED,+BAAsBC,gBAAtB,EAAwC;AACtC,WAAKpE,UAAL,CAAgBmC,OAAhB,CAAwBkC,qBAAxB,CAA8CD,gBAA9C;AACD;;;WAED,kCAAyB;AACvB,WAAKpE,UAAL,CAAgBmC,OAAhB,CAAwBmC,sBAAxB;AACD;;;WAED,gCAAuB;AACrB,WAAKtE,UAAL,CAAgBmC,OAAhB,CAAwBoC,oBAAxB;AACD;;;WAED,uBAAc;AACZ,aAAO,KAAKvE,UAAL,CAAgBmC,OAAhB,CAAwBC,WAAxB,EAAP;AACD;;;WAED,yBAAgB;AACd,WAAKpC,UAAL,CAAgBmC,OAAhB,CAAwBqC,aAAxB;AACD;;;;yGAED;AAAA;AAAA;AAAA;AAAA;AAAA,kDACS,KAAKC,wBAAL,CAA8B;AACnCrF,kBAAAA,KAAK,EAAE,KAAKA,KADuB;AAEnCC,kBAAAA,UAAU,EAAE,KAAKA;AAFkB,iBAA9B,CADT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAOA,gCAAuB;AACrB,aAAO,KAAKW,UAAL,CAAgBmC,OAAhB,CAAwBN,oBAAxB,EAAP;AACD;;;WAED,2BAAkB6C,KAAlB,EAAyBC,WAAzB,EAAsC;AACpC,aAAO,KAAK3E,UAAL,CAAgBmC,OAAhB,CAAwBS,iBAAxB,CAA0C8B,KAA1C,EAAiDC,WAAjD,CAAP;AACD;;;WAED,+BAAsBC,QAAtB,EAAgC;AAC9B,aAAO,KAAK5E,UAAL,CAAgBmC,OAAhB,CAAwBW,qBAAxB,CAA8C8B,QAA9C,CAAP;AACD,K,CAED;;;;WACA,sBAAa3E,IAAb,EAA0C;AAAA;;AAAA,UAAvB4E,gBAAuB,uEAAJ,EAAI;AACxC,kCAuBIA,gBAvBJ,CACE5G,KADF;AAAA,UACEA,KADF,sCACU,EADV;AAAA,UAEEC,cAFF,GAuBI2G,gBAvBJ,CAEE3G,cAFF;AAAA,UAGEC,cAHF,GAuBI0G,gBAvBJ,CAGE1G,cAHF;AAAA,UAIEC,WAJF,GAuBIyG,gBAvBJ,CAIEzG,WAJF;AAAA,UAKEE,iBALF,GAuBIuG,gBAvBJ,CAKEvG,iBALF;AAAA,UAMEC,eANF,GAuBIsG,gBAvBJ,CAMEtG,eANF;AAAA,UAOEC,gBAPF,GAuBIqG,gBAvBJ,CAOErG,gBAPF;AAAA,UAQEH,iBARF,GAuBIwG,gBAvBJ,CAQExG,iBARF;AAAA,UASEM,YATF,GAuBIkG,gBAvBJ,CASElG,YATF;AAAA,UAUEC,aAVF,GAuBIiG,gBAvBJ,CAUEjG,aAVF;AAAA,UAWEC,OAXF,GAuBIgG,gBAvBJ,CAWEhG,OAXF;AAAA,UAYEC,UAZF,GAuBI+F,gBAvBJ,CAYE/F,UAZF;AAAA,UAaEC,MAbF,GAuBI8F,gBAvBJ,CAaE9F,MAbF;AAAA,UAcEC,MAdF,GAuBI6F,gBAvBJ,CAcE7F,MAdF;AAAA,UAeEC,OAfF,GAuBI4F,gBAvBJ,CAeE5F,OAfF;AAAA,UAgBEC,SAhBF,GAuBI2F,gBAvBJ,CAgBE3F,SAhBF;AAAA,UAiBEC,kBAjBF,GAuBI0F,gBAvBJ,CAiBE1F,kBAjBF;AAAA,UAkBEC,KAlBF,GAuBIyF,gBAvBJ,CAkBEzF,KAlBF;AAAA,UAmBEC,UAnBF,GAuBIwF,gBAvBJ,CAmBExF,UAnBF;AAAA,UAoBEC,MApBF,GAuBIuF,gBAvBJ,CAoBEvF,MApBF;AAAA,UAqBEb,MArBF,GAuBIoG,gBAvBJ,CAqBEpG,MArBF;AAAA,UAsBKqG,cAtBL,6CAuBID,gBAvBJ;AAwBA5G,MAAAA,KAAK,GAAG,wBAAM,KAAKA,KAAX,EAAkBA,KAAlB,CAAR;AACAC,MAAAA,cAAc,GAAGA,cAAc,IAAI,KAAKA,cAAxC;AACAC,MAAAA,cAAc,GAAGA,cAAc,IAAI,KAAKA,cAAxC;AACAC,MAAAA,WAAW,GAAGA,WAAW,IAAI,KAAKA,WAAlC;AACAC,MAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,KAAKA,iBAA9C;AACAC,MAAAA,iBAAiB,GAAGA,iBAAiB,IAAI,KAAKA,iBAA9C;AACAC,MAAAA,eAAe,GAAGA,eAAe,IAAI,KAAKA,eAA1C;AACAC,MAAAA,gBAAgB,GAAGA,gBAAgB,IAAI,KAAKA,gBAA5C;AACAG,MAAAA,YAAY,GAAGA,YAAY,IAAI,KAAKA,YAApC;AACAC,MAAAA,aAAa,GAAGA,aAAa,IAAI,KAAKA,aAAtC;AACAU,MAAAA,MAAM,GAAGA,MAAM,IAAI,KAAKA,MAAxB;AACA,WAAKT,OAAL,GAAeA,OAAO,IAAI,KAAKA,OAA/B;AACA,WAAKC,UAAL,GAAkBA,UAAU,IAAI,KAAKA,UAArC;AACA,WAAKC,MAAL,GAAcA,MAAM,IAAI,KAAKA,MAA7B;AACA,WAAKC,MAAL,GAAcA,MAAM,IAAI,KAAKA,MAA7B;AACA,WAAKC,OAAL,GAAeA,OAAO,IAAI,KAAKA,OAA/B;AACA,WAAKC,SAAL,GAAiBA,SAAS,IAAI,KAAKA,SAAnC;AACA,WAAKC,kBAAL,GAA0BA,kBAAkB,IAAI,KAAKA,kBAArD;AACA,WAAKE,UAAL,GAAkBA,UAAU,IAAI,KAAKA,UAArC;AACA,WAAKD,KAAL,GAAaA,KAAK,IAAI,KAAKA,KAA3B;AACA,WAAKX,MAAL,GAAcA,MAAM,IAAI,KAAKA,MAA7B;AACA,WAAKsG,iBAAL,CAAuB9E,IAAvB;AACA,0BACE,gCAAC,gBAAD,gCACM6E,cADN;AAEE,QAAA,GAAG,EAAE,KAAK9E,UAFZ;AAGE,QAAA,IAAI,EAAE,KAAKC,IAHb;AAIE,QAAA,SAAS,EAAE,KAAKvB,SAJlB;AAKE,QAAA,KAAK,EAAET,KALT;AAME,QAAA,cAAc,EAAEC,cANlB;AAOE,QAAA,cAAc,EAAEC,cAPlB;AAQE,QAAA,WAAW,EAAEC,WARf;AASE,QAAA,iBAAiB,EAAEC,iBATrB;AAUE,QAAA,iBAAiB,EAAEC,iBAVrB;AAWE,QAAA,eAAe,EAAEC,eAXnB;AAYE,QAAA,gBAAgB,EAAEC,gBAZpB;AAaE,QAAA,OAAO,EAAE,KAAKK,OAbhB;AAcE,QAAA,UAAU,EAAE,KAAKC,UAdnB;AAeE,QAAA,YAAY,EAAEH,YAfhB;AAgBE,QAAA,aAAa,EAAEC,aAhBjB;AAiBE,QAAA,MAAM,EAAE;AAAA,iBAAa,MAAI,CAACoG,aAAL,OAAA,MAAI,YAAjB;AAAA,SAjBV;AAkBE,QAAA,MAAM,EAAE;AAAA,iBAAa,MAAI,CAACC,aAAL,OAAA,MAAI,YAAjB;AAAA,SAlBV;AAmBE,QAAA,OAAO,EAAE;AAAA,iBAAa,MAAI,CAACC,cAAL,OAAA,MAAI,YAAjB;AAAA,SAnBX;AAoBE,QAAA,WAAW,EAAE;AAAA,iBAAa,MAAI,CAACC,WAAL,OAAA,MAAI,YAAjB;AAAA,SApBf;AAqBE,QAAA,aAAa,EAAE,uBAAAC,YAAY;AAAA,iBAAI,MAAI,CAACC,aAAL,CAAmBD,YAAnB,CAAJ;AAAA,SArB7B;AAsBE,QAAA,MAAM,EAAE9F;AAtBV,SADF;AA0BD;;;;4GAED;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAyBF,gBAAAA,KAAzB,SAAyBA,KAAzB;AAAA;AAAA;AAAA,uBAE6B0C,qBAAewD,oBAAf,CAAoC;AAC3DlG,kBAAAA,KAAK,EAALA;AAD2D,iBAApC,CAF7B;;AAAA;AAAA;AAEYmG,gBAAAA,MAFZ,yBAEYA,MAFZ;AAAA,kDAKWA,MAAM,KAAK,GALtB;;AAAA;AAAA;AAAA;AAAA,kDAOW,KAPX;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAWA,oBAAW;AACT,aAAO,KAAKvF,UAAL,CAAgBmC,OAAhB,CAAwBqD,QAAxB,EAAP;AACD;;;;oHAED,kBAA+BX,gBAA/B;AAAA;AAAA;AAAA;AAAA;AAAA;AACQzF,gBAAAA,KADR,GAC8ByF,gBAD9B,CACQzF,KADR,EACeC,UADf,GAC8BwF,gBAD9B,CACexF,UADf;AAEEA,gBAAAA,UAAU,GAAGA,UAAU,IAAI,KAAKA,UAAhC;;AAFF,sBAGMA,UAAU,KAAKQ,SAAf,IAA4BR,UAAU,KAAK,IAHjD;AAAA;AAAA;AAAA;;AAAA,kDAG8D,IAH9D;;AAAA;AAAA,sBAIM,OAAOA,UAAP,KAAsB,UAAtB,IAAoCA,UAAU,EAJpD;AAAA;AAAA;AAAA;;AAAA,kDAI+D,IAJ/D;;AAAA;AAAA,+BAKMA,UAAU,KAAK,SALrB;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,uBAKyC,KAAKoG,gBAAL,CAAsB;AAAErG,kBAAAA,KAAK,EAALA;AAAF,iBAAtB,CALzC;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,kDAMW,IANX;;AAAA;AAAA,kDAOS,KAPT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAUA,mBAAU;AACR,UAAI,KAAKgC,cAAT,EAAyB,KAAKA,cAAL,CAAoBsE,aAApB;AACzB,4CAAuB,KAAKzF,IAA5B;AACA,UAAI,KAAKpB,OAAT,EAAkB,KAAKA,OAAL,CAAa8G,UAAb,CAAwB,KAAK7G,UAA7B;AACnB;;;;mGAED,kBAAa8G,IAAb;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmBf,gBAAAA,gBAAnB,8DAAsC,EAAtC;AACE,kIAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCACc,MAAI,CAACJ,wBAAL,CAA8BI,gBAA9B,CADd;;AAAA;AACJgB,0BAAAA,SADI;AAEV,8BAAIA,SAAJ,EACE,sBACE,MAAI,CAACC,YAAL,CAAkBF,IAAlB,EAAwBf,gBAAxB,CADF,EAEE,MAAI,CAACkB,iBAAL,CAAuBH,IAAvB,CAFF;;AAHQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAZ;;AADF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O","sourcesContent":["import { HubtypeService, INPUT } from '@botonic/core'\nimport merge from 'lodash.merge'\nimport React, { createRef } from 'react'\nimport { render, unmountComponentAtNode } from 'react-dom'\n\nimport { SENDERS, WEBCHAT } from './constants'\nimport { msgToBotonic } from './msg-to-botonic'\nimport { isShadowDOMSupported, onDOMLoaded } from './util/dom'\nimport { Webchat } from './webchat/webchat'\n\nexport class WebchatApp {\n constructor({\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableEmojiPicker,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n hostId,\n shadowDOM,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n appId,\n visibility,\n server,\n }) {\n this.theme = theme\n this.persistentMenu = persistentMenu\n this.coverComponent = coverComponent\n this.blockInputs = blockInputs\n this.enableEmojiPicker = enableEmojiPicker\n this.enableAttachments = enableAttachments\n this.enableUserInput = enableUserInput\n this.enableAnimations = enableAnimations\n this.shadowDOM = Boolean(\n typeof shadowDOM === 'function' ? shadowDOM() : shadowDOM\n )\n if (this.shadowDOM && !isShadowDOMSupported()) {\n console.warn('[botonic] ShadowDOM not supported on this browser')\n this.shadowDOM = false\n }\n this.hostId = hostId || WEBCHAT.DEFAULTS.HOST_ID\n this.defaultDelay = defaultDelay\n this.defaultTyping = defaultTyping\n this.storage = storage === undefined ? localStorage : storage\n this.storageKey = storageKey || WEBCHAT.DEFAULTS.STORAGE_KEY\n this.onInit = onInit\n this.onOpen = onOpen\n this.onClose = onClose\n this.onMessage = onMessage\n this.onConnectionChange = onConnectionChange\n this.visibility = visibility\n this.server = server\n this.webchatRef = createRef()\n this.appId = appId\n }\n\n createRootElement(host) {\n // Create root element <div id='root'> if not exists\n // Create shadowDOM to root element if needed\n if (host) {\n if (host.id && this.hostId) {\n if (host.id != this.hostId) {\n console.warn(\n `[botonic] Host ID \"${host.id}\" don't match 'hostId' option: ${this.hostId}. Using value: ${host.id}.`\n )\n this.hostId = host.id\n }\n } else if (host.id) this.hostId = host.id\n else if (this.hostId) host.id = this.hostId\n } else {\n host = document.getElementById(this.hostId)\n }\n if (!host) {\n host = document.createElement('div')\n host.id = this.hostId\n if (document.body.firstChild)\n document.body.insertBefore(host, document.body.firstChild)\n else document.body.appendChild(host)\n }\n this.host = this.shadowDOM ? host.attachShadow({ mode: 'open' }) : host\n }\n\n getReactMountNode(node) {\n if (!node) node = this.host\n return node.shadowRoot ? node.shadowRoot : node\n }\n\n onInitWebchat(...args) {\n this.onInit && this.onInit(this, ...args)\n }\n\n onOpenWebchat(...args) {\n this.onOpen && this.onOpen(this, ...args)\n }\n\n onCloseWebchat(...args) {\n this.onClose && this.onClose(this, ...args)\n }\n\n async onUserInput({ user, input }) {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.user, message: input })\n return this.hubtypeService.postMessage(user, input)\n }\n\n async onConnectionRegained() {\n return this.hubtypeService.onConnectionRegained()\n }\n\n onStateChange({ session: { user }, messagesJSON }) {\n const lastMessage = messagesJSON[messagesJSON.length - 1]\n const lastMessageId = lastMessage && lastMessage.id\n const lastMessageUpdateDate = this.getLastMessageUpdate()\n if (this.hubtypeService) {\n this.hubtypeService.lastMessageId = lastMessageId\n this.hubtypeService.lastMessageUpdateDate = lastMessageUpdateDate\n } else if (!this.hubtypeService && user) {\n this.hubtypeService = new HubtypeService({\n appId: this.appId,\n user,\n lastMessageId,\n lastMessageUpdateDate,\n onEvent: event => this.onServiceEvent(event),\n unsentInputs: () =>\n this.webchatRef.current\n .getMessages()\n .filter(msg => msg.ack === 0 && msg.unsentInput),\n server: this.server,\n })\n }\n }\n\n onServiceEvent(event) {\n if (event.action === 'connectionChange') {\n this.onConnectionChange && this.onConnectionChange(this, event.online)\n this.webchatRef.current.setOnline(event.online)\n } else if (event.action === 'update_message_info')\n this.updateMessageInfo(event.message.id, event.message)\n else if (event.message.type === 'update_webchat_settings')\n this.updateWebchatSettings(event.message.data)\n else if (event.message.type === 'sender_action')\n this.setTyping(event.message.data === 'typing_on')\n else {\n this.onMessage &&\n this.onMessage(this, { from: SENDERS.bot, message: event.message })\n this.addBotMessage(event.message)\n }\n }\n\n updateUser(user) {\n this.webchatRef.current.updateUser(user)\n }\n\n addBotMessage(message) {\n this.webchatRef.current.addBotResponse({\n response: msgToBotonic(\n message,\n (this.theme.message && this.theme.message.customTypes) ||\n this.theme.customMessageTypes\n ),\n })\n }\n\n addBotText(text) {\n this.addBotMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserMessage(message) {\n this.webchatRef.current.addUserMessage(message)\n }\n\n addUserText(text) {\n this.webchatRef.current.addUserMessage({ type: INPUT.TEXT, data: text })\n }\n\n addUserPayload(payload) {\n this.webchatRef.current.addUserMessage({ type: INPUT.POSTBACK, payload })\n }\n\n setTyping(typing) {\n this.webchatRef.current.setTyping(typing)\n }\n\n open() {\n this.webchatRef.current.openWebchat()\n }\n\n close() {\n this.webchatRef.current.closeWebchat()\n }\n\n toggle() {\n this.webchatRef.current.toggleWebchat()\n }\n\n openCoverComponent() {\n this.webchatRef.current.openCoverComponent()\n }\n\n closeCoverComponent() {\n this.webchatRef.current.closeCoverComponent()\n }\n\n renderCustomComponent(_customComponent) {\n this.webchatRef.current.renderCustomComponent(_customComponent)\n }\n\n unmountCustomComponent() {\n this.webchatRef.current.unmountCustomComponent()\n }\n\n toggleCoverComponent() {\n this.webchatRef.current.toggleCoverComponent()\n }\n\n getMessages() {\n return this.webchatRef.current.getMessages()\n }\n\n clearMessages() {\n this.webchatRef.current.clearMessages()\n }\n\n async getVisibility() {\n return this.resolveWebchatVisibility({\n appId: this.appId,\n visibility: this.visibility,\n })\n }\n\n getLastMessageUpdate() {\n return this.webchatRef.current.getLastMessageUpdate()\n }\n\n updateMessageInfo(msgId, messageInfo) {\n return this.webchatRef.current.updateMessageInfo(msgId, messageInfo)\n }\n\n updateWebchatSettings(settings) {\n return this.webchatRef.current.updateWebchatSettings(settings)\n }\n\n // eslint-disable-next-line complexity\n getComponent(host, optionsAtRuntime = {}) {\n let {\n theme = {},\n persistentMenu,\n coverComponent,\n blockInputs,\n enableAttachments,\n enableUserInput,\n enableAnimations,\n enableEmojiPicker,\n defaultDelay,\n defaultTyping,\n storage,\n storageKey,\n onInit,\n onOpen,\n onClose,\n onMessage,\n onConnectionChange,\n appId,\n visibility,\n server,\n hostId,\n ...webchatOptions\n } = optionsAtRuntime\n theme = merge(this.theme, theme)\n persistentMenu = persistentMenu || this.persistentMenu\n coverComponent = coverComponent || this.coverComponent\n blockInputs = blockInputs || this.blockInputs\n enableEmojiPicker = enableEmojiPicker || this.enableEmojiPicker\n enableAttachments = enableAttachments || this.enableAttachments\n enableUserInput = enableUserInput || this.enableUserInput\n enableAnimations = enableAnimations || this.enableAnimations\n defaultDelay = defaultDelay || this.defaultDelay\n defaultTyping = defaultTyping || this.defaultTyping\n server = server || this.server\n this.storage = storage || this.storage\n this.storageKey = storageKey || this.storageKey\n this.onInit = onInit || this.onInit\n this.onOpen = onOpen || this.onOpen\n this.onClose = onClose || this.onClose\n this.onMessage = onMessage || this.onMessage\n this.onConnectionChange = onConnectionChange || this.onConnectionChange\n this.visibility = visibility || this.visibility\n this.appId = appId || this.appId\n this.hostId = hostId || this.hostId\n this.createRootElement(host)\n return (\n <Webchat\n {...webchatOptions}\n ref={this.webchatRef}\n host={this.host}\n shadowDOM={this.shadowDOM}\n theme={theme}\n persistentMenu={persistentMenu}\n coverComponent={coverComponent}\n blockInputs={blockInputs}\n enableEmojiPicker={enableEmojiPicker}\n enableAttachments={enableAttachments}\n enableUserInput={enableUserInput}\n enableAnimations={enableAnimations}\n storage={this.storage}\n storageKey={this.storageKey}\n defaultDelay={defaultDelay}\n defaultTyping={defaultTyping}\n onInit={(...args) => this.onInitWebchat(...args)}\n onOpen={(...args) => this.onOpenWebchat(...args)}\n onClose={(...args) => this.onCloseWebchat(...args)}\n onUserInput={(...args) => this.onUserInput(...args)}\n onStateChange={webchatState => this.onStateChange(webchatState)}\n server={server}\n />\n )\n }\n\n async isWebchatVisible({ appId }) {\n try {\n const { status } = await HubtypeService.getWebchatVisibility({\n appId,\n })\n return status === 200\n } catch (e) {\n return false\n }\n }\n\n isOnline() {\n return this.webchatRef.current.isOnline()\n }\n\n async resolveWebchatVisibility(optionsAtRuntime) {\n let { appId, visibility } = optionsAtRuntime\n visibility = visibility || this.visibility\n if (visibility === undefined || visibility === true) return true\n if (typeof visibility === 'function' && visibility()) return true\n if (visibility === 'dynamic' && (await this.isWebchatVisible({ appId })))\n return true\n return false\n }\n\n destroy() {\n if (this.hubtypeService) this.hubtypeService.destroyPusher()\n unmountComponentAtNode(this.host)\n if (this.storage) this.storage.removeItem(this.storageKey)\n }\n\n async render(dest, optionsAtRuntime = {}) {\n onDOMLoaded(async () => {\n const isVisible = await this.resolveWebchatVisibility(optionsAtRuntime)\n if (isVisible)\n render(\n this.getComponent(dest, optionsAtRuntime),\n this.getReactMountNode(dest)\n )\n })\n }\n}\n"],"file":"webchat-app.js"}
|
package/package.json
CHANGED
package/src/webchat-app.jsx
CHANGED
|
@@ -312,8 +312,8 @@ export class WebchatApp {
|
|
|
312
312
|
enableAttachments={enableAttachments}
|
|
313
313
|
enableUserInput={enableUserInput}
|
|
314
314
|
enableAnimations={enableAnimations}
|
|
315
|
-
storage={storage}
|
|
316
|
-
storageKey={storageKey}
|
|
315
|
+
storage={this.storage}
|
|
316
|
+
storageKey={this.storageKey}
|
|
317
317
|
defaultDelay={defaultDelay}
|
|
318
318
|
defaultTyping={defaultTyping}
|
|
319
319
|
onInit={(...args) => this.onInitWebchat(...args)}
|