dialogshift-webchat-sdk 2.9.6 → 2.9.7

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.
@@ -1968,7 +1968,7 @@ var ActionButtonNormalizer = /** @class */ (function () {
1968
1968
  function ActionButtonNormalizer() {
1969
1969
  }
1970
1970
  ActionButtonNormalizer.normalize = function (data) {
1971
- var locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs'];
1971
+ var locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs', 'sv'];
1972
1972
  var result = {
1973
1973
  type: data.type,
1974
1974
  successor: data.successor,
@@ -1 +1 @@
1
- {"version":3,"file":"dialogshift-webchat-sdk.umd.js","mappings":"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","sources":["webpack://Dialogshift/./src/scripts/config/config.ts","webpack://Dialogshift/./src/scripts/config/env.ts","webpack://Dialogshift/./src/scripts/consts.ts","webpack://Dialogshift/./src/scripts/core/app.ts","webpack://Dialogshift/./src/scripts/core/base-widget.ts","webpack://Dialogshift/./src/scripts/core/event-emitter.ts","webpack://Dialogshift/./src/scripts/core/facade.ts","webpack://Dialogshift/./src/scripts/core/observable.ts","webpack://Dialogshift/./src/scripts/core/utils.ts","webpack://Dialogshift/./src/scripts/core/widget-manager.ts","webpack://Dialogshift/./src/scripts/enums.ts","webpack://Dialogshift/./src/scripts/models/action-button.ts","webpack://Dialogshift/./src/scripts/models/index.ts","webpack://Dialogshift/./src/scripts/services/api.service.ts","webpack://Dialogshift/./src/scripts/services/audio.service.ts","webpack://Dialogshift/./src/scripts/services/cookie.service.ts","webpack://Dialogshift/./src/scripts/services/ga.service.ts","webpack://Dialogshift/./src/scripts/services/http.service.ts","webpack://Dialogshift/./src/scripts/services/index.ts","webpack://Dialogshift/./src/scripts/services/token.service.ts","webpack://Dialogshift/./src/scripts/services/user.service.ts","webpack://Dialogshift/./src/scripts/services/webchat.service.ts","webpack://Dialogshift/./src/scripts/widgets/action-button-group.widget.ts","webpack://Dialogshift/./src/scripts/widgets/action-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/chat-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/chatbox.widget.ts","webpack://Dialogshift/./src/scripts/widgets/content-wrapper.widget.ts","webpack://Dialogshift/./src/scripts/widgets/footer.widget.ts","webpack://Dialogshift/./src/scripts/widgets/header/header-close-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/header/header.widget.ts","webpack://Dialogshift/./src/scripts/widgets/iframe-box.widget.ts","webpack://Dialogshift/./src/scripts/widgets/iframe.widget.ts","webpack://Dialogshift/./src/scripts/widgets/index.ts","webpack://Dialogshift/./src/scripts/widgets/teaser.widget.ts","webpack://Dialogshift/./src/scripts/widgets/unread.widget.ts","webpack://Dialogshift/./src/scripts/widgets/whatsapp-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/whatsapp-window.widget.ts","webpack://Dialogshift/./src/scripts/widgets/wrapper.widget.ts","webpack://Dialogshift/webpack/bootstrap","webpack://Dialogshift/webpack/runtime/define property getters","webpack://Dialogshift/webpack/runtime/hasOwnProperty shorthand","webpack://Dialogshift/webpack/runtime/make namespace object","webpack://Dialogshift/./src/scripts/index.ts"],"sourcesContent":["import { environment } from './env'\n\nexport const config = {\n widgetBase: 'ds-widget',\n widgetBaseFx: 'ds-widget--fx',\n widgetBaseVisible: 'ds-widget--visible',\n\n wrapperCls: 'ds-wrapper',\n wrapperNoButtonCls: 'ds-wrapper--no-button',\n wrapperTeaserIsOpenCls: 'ds-wrapper--teaser-opened',\n wrapperPositionLeftCls: 'ds-wrapper--pl',\n wrapperPositionRightCls: 'ds-wrapper--pr',\n wrapperDirectionRtlCls: 'ds-wrapper--rtl',\n\n contentWrapperCls: 'ds-content-wrapper',\n\n buttonCls: 'ds-button',\n buttonLogoCls: 'ds-button--logo',\n buttonIconContainerCls: 'ds-button--icon-container',\n buttonWithTextCls: 'ds-button--with-text',\n buttonActiveCls: 'ds-button--active',\n buttonHiddenCls: 'ds-button--hidden',\n\n chatCls: 'ds-chat',\n chatLoaderCls: 'ds-chat-loader',\n chatLoaderImageCls: 'ds-chat-loader-image',\n chatLoadingCls: 'ds-chat--loading',\n chatIsOpen: 'ds-chat--opened',\n chatHasExtendedWidth: 'ds-chat--extended-width',\n\n iframeCls: 'ds-iframe',\n\n teaserCls: 'ds-teaser',\n teaserCrossCls: 'ds-teaser__cross',\n teaserTextCls: 'ds-teaser__text',\n\n unreadCls: 'ds-unread',\n\n themeRound: 'ds-theme-round',\n themeTile: 'ds-theme-tile',\n\n actionButtonGroupCls: 'ds-action-button-group',\n\n actionButtonCls: 'ds-action-button',\n\n headerCls: 'ds-header',\n\n headerCloseButtonCls: 'ds-header-close-button',\n headerCloseButtonLeftCls: 'ds-header-close-button--left',\n\n env: environment,\n}\n","export const environment = {\n coreApiEndpoint: 'https://core.prod.co25.net',\n ibeApiEndpoint: 'https://ibe.prod.co25.net',\n iframeHost: 'https://webchat.dialogshift.com',\n}\n","export const iconSvg = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"30\" stroke=\"currentColor\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.549805 10.8695C0.549805 5.16744 5.84902 0.549988 12.3568 0.549988C18.8646 0.549988 24.1329 5.16744 24.1329 10.9005C24.1329 16.6336 18.8646 21.251 12.3568 21.251C10.0016 21.251 7.80137 20.6312 5.94199 19.5776C4.26855 20.5693 2.47116 20.5383 1.4485 20.3833C1.13861 20.3523 1.07663 19.9495 1.32454 19.7945C2.3472 19.1437 2.87402 18.2141 3.18392 17.3773C1.54147 15.6109 0.549805 13.3487 0.549805 10.8695ZM29.4631 28.5646C29.711 28.5336 29.773 28.2237 29.5561 28.0687C28.6883 27.5109 28.2235 26.7362 27.9756 26.0544C29.3391 24.5669 30.1449 22.7075 30.1449 20.6622C30.1449 17.7182 28.4404 15.0841 25.8373 13.5346C24.5048 19.0818 18.9576 23.2654 12.3568 23.2654C11.892 23.2654 11.4271 23.2344 10.9933 23.2034C12.2329 26.7052 15.9516 29.2773 20.3831 29.2773C22.3355 29.2773 24.1639 28.7815 25.7133 27.8828C27.1079 28.7195 28.5954 28.6885 29.4631 28.5646Z\"/><mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"31\" height=\"30\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.549805 10.8695C0.549805 5.16744 5.84902 0.549988 12.3568 0.549988C18.8646 0.549988 24.1329 5.16744 24.1329 10.9005C24.1329 16.6336 18.8646 21.251 12.3568 21.251C10.0016 21.251 7.80137 20.6312 5.94199 19.5776C4.26855 20.5693 2.47116 20.5383 1.4485 20.3833C1.13861 20.3523 1.07663 19.9495 1.32454 19.7945C2.3472 19.1437 2.87402 18.2141 3.18392 17.3773C1.54147 15.6109 0.549805 13.3487 0.549805 10.8695ZM29.4631 28.5646C29.711 28.5336 29.773 28.2237 29.5561 28.0687C28.6883 27.5109 28.2235 26.7362 27.9756 26.0544C29.3391 24.5669 30.1449 22.7075 30.1449 20.6622C30.1449 17.7182 28.4404 15.0841 25.8373 13.5346C24.5048 19.0818 18.9576 23.2654 12.3568 23.2654C11.892 23.2654 11.4271 23.2344 10.9933 23.2034C12.2329 26.7052 15.9516 29.2773 20.3831 29.2773C22.3355 29.2773 24.1639 28.7815 25.7133 27.8828C27.1079 28.7195 28.5954 28.6885 29.4631 28.5646Z\"/></mask><g mask=\"url(#mask0)\"/></svg>'\n","import { config } from '../config/config'\nimport { EventEmitter, Event } from './event-emitter'\nimport { WidgetManager } from './widget-manager'\nimport {\n ApiService,\n WebchatService,\n CookieService,\n UserService,\n TokenService\n} from '../services'\nimport {\n parseUrlParam,\n isExternalUrl,\n injectCss,\n mergeDeep,\n removeURLParameters,\n inIframe\n} from './utils'\nimport { MixedObject } from '../types'\nimport { CustidStoreMode } from '../enums'\n\nexport enum ChatPosition {\n left = 'left',\n right = 'right',\n}\n\nexport enum AppTheme {\n round = 'round',\n tile = 'tile',\n}\n\nexport interface InitialElement {\n successor?: string | null\n suppress?: boolean\n}\n\nexport interface AppOptions {\n id: string\n locale?: string\n position?: ChatPosition\n theme?: AppTheme\n isChatboxVisible?: boolean\n isButtonVisible?: boolean\n renderWaButton?: boolean\n showTeaserOnce?: boolean\n renderButton?: boolean\n showFooter?: boolean\n initialElement?: InitialElement\n unreadCounter?: number\n context?: MixedObject\n direction?: 'rtl' | 'ltr'\n extendedWidth?: boolean\n bwWaButton?: boolean\n baseCls?: string\n showInIframe?: boolean\n custidStoreMode?: CustidStoreMode\n loadGaContext?: boolean\n channelOverride?: string\n leftCloseButton?: boolean\n}\n\nconst appOptionsDefault = {\n locale: 'en',\n theme: AppTheme.round,\n position: ChatPosition.right,\n isChatboxVisible: false,\n isButtonVisible: true,\n renderWaButton: false,\n showTeaserOnce: false,\n renderButton: true,\n showFooter: true,\n initialElement: {\n successor: null,\n suppress: false,\n },\n unreadCounter: 0,\n context: {},\n direction: 'ltr',\n showInIframe: false,\n custidStoreMode: CustidStoreMode.cookie,\n loadGaContext: false,\n leftCloseButton: false,\n}\n\nexport enum ActionEventType {\n action = 'action',\n message = 'message',\n command = 'command',\n}\n\nexport enum ActionEventName {\n userReady = 'user.ready',\n tabOpen = 'tab.open',\n setTeaserText = 'set.teaser.text',\n showChatbox = 'show.chatbox',\n hideChatbox = 'hide.chatbox',\n showWhatsApp = 'show.whatsApp',\n}\n\nexport interface ActionEvent {\n type: ActionEventType\n name: string\n payload: MixedObject\n}\n\nexport class App {\n private broadcast: EventEmitter\n private webchatService: WebchatService\n private chatConfig: MixedObject\n private destroyed = false\n private ready = false\n private csrfToken: string\n private isTeaserVisible = false\n private widgetManager: WidgetManager\n public options: AppOptions\n\n constructor(options: AppOptions) {\n if (!options) {\n throw Error('Please provide Dialogshift chat configuration')\n }\n\n if (!options.id) {\n throw Error('Dialogshift app id is undefined.')\n }\n\n this.options = mergeDeep(appOptionsDefault, options) as AppOptions\n this.broadcast = new EventEmitter()\n this.widgetManager = new WidgetManager(this)\n\n this.init()\n }\n\n private init() {\n this.options.context['hostUrl'] = encodeURI(window.location.href);\n\n if (parseUrlParam(window.location.href, 'ctrl') === 'forcenew') {\n UserService.deleteUser()\n TokenService.deleteToken()\n // CookieService.delete('ds-keep-chat-open')\n removeURLParameters(['ctrl'])\n }\n\n const openUrlParam = parseUrlParam(window.location.href, 'dschat')\n\n if (openUrlParam === 'open' && window.innerWidth > 576) {\n this.options.isChatboxVisible = true\n }\n\n this.loadConfig().then(() => {\n if (this.chatConfig.showWebsiteChat === false) {\n return\n }\n\n if (this.chatConfig.enableCSRFProtection) {\n let csrfAfter = 0\n\n if (this.chatConfig.csrfAfter) {\n csrfAfter = this.chatConfig.csrfAfter\n }\n\n TokenService.touchToken(this.options.id, csrfAfter).then(\n (token: string) => {\n this.csrfToken = token\n },\n )\n\n this.afterInit()\n } else {\n this.afterInit()\n }\n })\n }\n\n private afterInit() {\n this.render()\n this.afterRender()\n this.bindEvents()\n setTimeout(() => {\n this.broadcast.fire('init')\n }, 20)\n }\n\n private initWebchatService() {\n this.webchatService = new WebchatService({\n targetWindow: this.widgetManager.getIframeWidget().getBoxElem(),\n })\n }\n\n private render() {\n const isWidgetManagerVisible = this.options.showInIframe\n ? true\n : inIframe()\n ? false\n : true\n\n this.widgetManager.renderWrapper(\n Object.assign({}, this.options, {\n visible: isWidgetManagerVisible,\n }),\n )\n this.widgetManager.renderContentWrapper()\n this.widgetManager.renderFooter()\n\n if (this.options.renderButton) {\n this.widgetManager.renderChatButton(this.options, this.chatConfig)\n }\n\n this.widgetManager.renderTeaserWidget(\n this.options,\n this.chatConfig,\n this.isTeaserVisible,\n )\n\n this.widgetManager.renderActionButtonGroupWidget(\n this,\n this.options,\n this.chatConfig,\n )\n\n this.widgetManager.renderChatboxWidget(this.options, () => {\n this.loadChat()\n })\n\n this.widgetManager.renderHeader(\n this.options,\n )\n\n this.widgetManager.renderUnreadWidget(this.options, this.chatConfig)\n\n if (this.options.renderWaButton) {\n this.widgetManager.renderWhatsappButtonWidget(this.chatConfig)\n this.widgetManager.renderWhatsappWindowWidget(this.options)\n }\n\n this.widgetManager.renderIframeBox()\n\n this.broadcast.on('ready', () => {\n this.ready = true\n })\n }\n\n private afterRender() {\n const { showTeaserAfter, hideTeaserAfter } = this.chatConfig\n\n if (showTeaserAfter) {\n setTimeout(() => {\n if (\n !this.widgetManager.getTeaserWidget().isVisible() &&\n !this.widgetManager.getChatboxWidget().isVisible()\n ) {\n this.widgetManager.getTeaserWidget().show()\n }\n }, showTeaserAfter * 1000)\n }\n\n if (hideTeaserAfter) {\n setTimeout(() => {\n this.widgetManager.getTeaserWidget().hide()\n }, hideTeaserAfter * 1000)\n }\n\n /* if (CookieService.get('keep-chat-open') === 'true') {\n this.setInitialElement({\n suppress: true,\n })\n this.loadChat()\n\n this.getBroadcast().once('ready', () => {\n setTimeout(() => {\n this.webchatService.setMinimized(true)\n }, 250)\n })\n } */\n }\n\n private bindEvents() {\n window.addEventListener('message', (event: MixedObject) => {\n if (event.origin === (config as MixedObject).env.iframeHost) {\n const message = event.data as ActionEvent\n\n if (message.type === ActionEventType.message) {\n this.broadcast.fire(message.name, message.payload)\n }\n\n if (message.type === ActionEventType.command) {\n this.broadcast.fire(message.name, message.payload)\n }\n\n if (message.type === ActionEventType.action) {\n this.proceedActionEvent(message)\n }\n\n if (message.payload && message.payload.openInBox === true) {\n this.widgetManager.getIframeBoxWidget().load(message.payload.url)\n\n setTimeout(() => {\n if (message.payload.boxWidth) {\n this.widgetManager\n .getIframeBoxWidget()\n .setWidth(message.payload.boxWidth)\n } else {\n this.widgetManager.getIframeBoxWidget().setWidth('376')\n }\n\n this.widgetManager.getIframeBoxWidget().show()\n }, 300)\n }\n }\n })\n\n this.broadcast.on('message.receive', (event: Event) => {\n if (\n !this.widgetManager.getChatboxWidget().isVisible() &&\n !event.data.fromHistory\n ) {\n this.widgetManager.getUnreadWidget().increase(1)\n }\n })\n\n this.broadcast.on('command.receive', (event: any) => {\n const commandModel = event.data\n\n if (commandModel.commandType === 'receivedCookieConsent') {\n UserService.switchToCookieModeAfterConsent()\n } else if (commandModel.commandType === 'dismissCookieConsent') {\n UserService.switchToSessionModeAfterConsentDismiss()\n } /* else if (commandModel.commandType === 'livechat') {\n if (\n commandModel.action === 'start' &&\n this.chatConfig.keepChatOpenDuringLivechat\n ) {\n CookieService.set('keep-chat-open', 'true')\n }\n\n if (commandModel.action === 'end') {\n CookieService.set('keep-chat-open', 'false')\n }\n } */\n })\n }\n\n private proceedActionEvent(message: MixedObject) {\n if (message.name === ActionEventName.tabOpen) {\n let url = message.payload.targetUrl\n\n if (message.payload.urlType === 'openSameTab') {\n if (!isExternalUrl(url)) {\n url += `${url.split('?')[1] ? '&' : '?'}dschat=open`\n }\n window.open(url, '_self')\n }\n\n if (message.payload.urlType === 'openNewTab') {\n window.open(url, '_blank')\n }\n }\n\n if (message.name === ActionEventName.setTeaserText) {\n this.widgetManager.getTeaserWidget().setContent(message.payload.text)\n this.widgetManager.getTeaserWidget().show({\n force: true,\n })\n }\n\n if (message.name === ActionEventName.showChatbox) {\n this.widgetManager.getChatboxWidget().show()\n }\n\n if (message.name === ActionEventName.hideChatbox) {\n this.widgetManager.getChatboxWidget().hide()\n }\n\n if (message.name === ActionEventName.showWhatsApp) {\n this.widgetManager.getWhatsappWindowWidget().show()\n }\n }\n\n private loadConfig(): Promise<MixedObject> {\n const channel = this.options.context.channel\n ? this.options.context.channel\n : 'pwa-embed'\n\n return ApiService.getConfig(\n this.options.id,\n UserService.getCustomerId(),\n window.location.host,\n window.location.pathname,\n channel,\n ).then((data: MixedObject) => {\n this.chatConfig = data\n\n if (data.websiteElementCss) {\n injectCss(data.websiteElementCss)\n }\n\n if (this.chatConfig.defaultLg) {\n this.chatConfig.defaultLocale = this.chatConfig.defaultLg\n delete this.chatConfig.defaultLg\n }\n\n if (this.chatConfig.channelOverride) {\n this.options.context.channel = this.chatConfig.channelOverride\n }\n\n this.applyConfig()\n\n return this.chatConfig\n })\n }\n\n private applyConfig() {\n const {\n setUnreadCounter,\n showTeaserAfter,\n hideTeaserAfter,\n theme,\n noCookieModeSdk,\n forgetCustomerAfterHours,\n isChatboxVisible,\n renderWaButton,\n extendedWidth,\n bwWaButton,\n custidStoreMode,\n loadGaContext,\n leftCloseButton,\n } = this.chatConfig\n\n if (setUnreadCounter) {\n this.options.unreadCounter = setUnreadCounter\n }\n\n if (isChatboxVisible !== undefined) {\n this.options.isChatboxVisible = isChatboxVisible\n }\n\n if (showTeaserAfter === 0) {\n this.isTeaserVisible = true\n }\n\n if (hideTeaserAfter === 0) {\n this.isTeaserVisible = false\n }\n\n if (theme && theme in AppTheme) {\n this.options.theme = theme\n }\n\n if (noCookieModeSdk === true) {\n CookieService.noCookieMode = true\n }\n\n if (forgetCustomerAfterHours) {\n UserService.updateCookieLifetime(forgetCustomerAfterHours)\n }\n\n if (renderWaButton) {\n this.options.renderWaButton = renderWaButton\n }\n\n if (extendedWidth) {\n this.options.extendedWidth = extendedWidth\n }\n\n if (bwWaButton) {\n this.options.bwWaButton = bwWaButton\n }\n\n if (custidStoreMode) {\n this.options.custidStoreMode = custidStoreMode\n UserService.custidStoreMode = custidStoreMode\n }\n\n if (loadGaContext) {\n this.options.loadGaContext = loadGaContext\n UserService.loadGaContext = loadGaContext\n }\n\n if (leftCloseButton) {\n this.options.leftCloseButton = leftCloseButton\n }\n }\n\n getWebchatService(): WebchatService {\n return this.webchatService\n }\n\n getBroadcast(): EventEmitter {\n return this.broadcast\n }\n\n getWidgetManager(): WidgetManager {\n return this.widgetManager\n }\n\n getContext(key: string): Promise<any> {\n return new Promise((resolve, reject) => {\n if (UserService.getCustomerId()) {\n ApiService.getContext(UserService.getCustomerId(), key).then(\n resolve,\n reject,\n )\n } else {\n reject('Can not load context. Customer is not created.')\n }\n })\n }\n\n setContext(key: string, value: any): Promise<any> {\n return new Promise((resolve, reject) => {\n if (UserService.getCustomerId()) {\n ApiService.setContext(UserService.getCustomerId(), key, value).then(\n resolve,\n reject,\n )\n } else {\n this.options.context[key] = value\n }\n })\n }\n\n getConfig(): MixedObject {\n return this.chatConfig\n }\n\n setInitialElement(initialElement: InitialElement) {\n const mergedInitialElement = mergeDeep(\n this.options.initialElement,\n initialElement,\n )\n\n this.options.initialElement = mergedInitialElement\n\n if (this.widgetManager.getIframeWidget()) {\n this.widgetManager\n .getIframeWidget()\n .setInitialElement(mergedInitialElement)\n }\n }\n\n getInitialElement(): InitialElement {\n return this.options.initialElement\n }\n\n triggerElement(options: {\n successor: string\n teaserButton?: boolean\n showChatbox?: boolean\n suppressInitialElement?: boolean\n }) {\n const config = {\n showChatbox: true,\n suppressInitialElement: true,\n ...options,\n }\n\n if (!this.isReady()) {\n this.getBroadcast().once('ready', () => {\n setTimeout(() => {\n this.webchatService.triggerElement({\n teaserButton: options.teaserButton,\n successor: options.successor,\n })\n }, 250)\n })\n\n if (config.suppressInitialElement) {\n this.setInitialElement({\n suppress: true,\n })\n }\n\n if (config.showChatbox) {\n this.widgetManager.getChatboxWidget().show()\n } else {\n this.loadChat()\n }\n }\n\n if (this.isReady()) {\n if (\n !this.widgetManager.getChatboxWidget().isVisible() &&\n config.showChatbox\n ) {\n this.widgetManager.getChatboxWidget().show()\n }\n\n this.webchatService.triggerElement({\n teaserButton: options.teaserButton,\n successor: options.successor,\n })\n }\n }\n\n destroy() {\n if (this.destroyed) {\n return\n }\n\n this.destroyed = true\n\n this.widgetManager.destroy()\n\n this.broadcast.fire('destroy')\n this.broadcast.offAll()\n }\n\n isDestroyed(): boolean {\n return this.destroyed\n }\n\n isReady(): boolean {\n return !this.destroyed && this.ready\n }\n\n loadChat() {\n const load = () => {\n const iframeWidget = this.widgetManager.getIframeWidget()\n\n if (!iframeWidget.isLoaded()) {\n iframeWidget.setLoaded(true)\n\n UserService.touchUser(\n this.options.id,\n this.options.locale,\n this.csrfToken,\n this.options.context,\n ).then((customerId: string) => {\n // Debug interval\n setTimeout(() => {\n iframeWidget.load(customerId)\n }, 20)\n })\n }\n }\n\n const iframeWidget = this.widgetManager.getIframeWidget()\n\n if (!iframeWidget || !iframeWidget.isRendered()) {\n const channel = this.options.context.channel\n ? this.options.context.channel\n : 'pwa-embed'\n const { id, initialElement, locale } = this.options\n\n this.widgetManager.renderIframeWidget(\n {\n id,\n initialElement,\n locale,\n channel,\n host: (config as MixedObject).env.iframeHost,\n },\n () => {\n // For a separate thread. @todo refactor render flow.\n setTimeout(() => {\n this.initWebchatService()\n load()\n }, 20)\n },\n )\n }\n }\n\n setActionButtons(buttons: MixedObject) {\n this.widgetManager.getActionButtonGroupWidget().clearButtons()\n\n buttons.forEach((item: MixedObject) => {\n this.widgetManager.getActionButtonGroupWidget().addButton({\n ...item,\n locale: this.options.locale,\n app: this,\n })\n })\n }\n\n setLocale(locale: string) {\n this.options.locale = locale\n this.widgetManager.setLocale(locale, this.chatConfig)\n }\n}\n","import { Observable, ObservableOptions } from './observable'\nimport { AudioSound, AudioService } from '../services/audio.service'\n\nexport const config = {\n rootCls: 'ds-widget',\n visibleCls: 'ds-widget--visible',\n fxCls: {\n fade: 'ds-widget-fx--fade',\n zoom: 'ds-widget-fx--zoom',\n fadeBottom: 'ds-widget-fx--fade-bottom',\n bounceInRight: 'ds-widget-fx--bounce-in-right',\n pulse: 'ds-widget-fx--pulse',\n bounce: 'ds-widget-fx--bounce',\n },\n}\n\nexport interface BaseWidgetEffectsOptions {\n appear?: 'fade' | 'fadeBottom' | 'zoom' | 'bounceInRight' | null\n delay?: number\n sound?: AudioSound\n attention?: 'pulse' | 'bounce' | null\n attentionInterval?: number\n}\n\nexport interface BaseWidgetOptions extends ObservableOptions {\n visible?: boolean\n baseCls?: string\n renderTo?: HTMLElement\n animationDelay?: number\n content?: string | number\n effects?: BaseWidgetEffectsOptions\n}\n\nexport type BaseWidgetDisplayMode = 'block' | 'flex'\n\nexport class BaseWidget extends Observable {\n private baseCls = ''\n private renderTo: HTMLElement\n private boxElem: HTMLElement\n private contentElem: HTMLElement\n private content: string | number\n private destroyed = false\n private displayMode: BaseWidgetDisplayMode = 'block'\n private effects: BaseWidgetEffectsOptions = {\n appear: null,\n delay: 0,\n attention: null,\n attentionInterval: 0,\n }\n private attentionInterval: any = null\n protected visible = true\n protected animationDelay = 250\n\n constructor(options: BaseWidgetOptions) {\n super({ events: options.events })\n\n if (!options.effects) {\n delete options.effects\n }\n\n Object.assign(this, options)\n\n if (this.renderTo) {\n this.render()\n }\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n boxElem.style.display = this.getDisplayMode()\n\n if (this.effects.appear) {\n this.showAnimateNode(boxElem)\n } else {\n setTimeout(() => {\n boxElem.classList.add(config.visibleCls)\n if (this.effects.sound) {\n AudioService.playSound(this.effects.sound)\n }\n }, 10)\n }\n\n if (this.effects.attention && this.effects.attentionInterval) {\n setTimeout(() => {\n this.startAttention()\n }, this.effects.delay)\n }\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n\n if (this.effects.attention && this.effects.attentionInterval) {\n this.stopAttention()\n }\n\n boxElem.classList.remove(config.visibleCls)\n\n if (this.effects.appear) {\n this.hideAnimateNode(boxElem)\n }\n\n setTimeout(() => {\n boxElem.style.display = 'none'\n }, this.animationDelay)\n }\n\n protected showAnimateNode(boxElem: HTMLElement) {\n setTimeout(() => {\n const handler = () => {\n boxElem.removeEventListener('animationend', handler)\n boxElem.classList.add(config.visibleCls)\n boxElem.classList.remove(config.fxCls[this.effects.appear])\n }\n\n boxElem.addEventListener('animationend', handler)\n\n boxElem.classList.add(config.fxCls[this.effects.appear])\n\n if (this.effects.sound) {\n AudioService.playSound(this.effects.sound)\n }\n }, this.effects.delay)\n }\n\n protected hideAnimateNode(boxElem: HTMLElement) {\n boxElem.style.removeProperty('animationDelay')\n boxElem.classList.remove(config.fxCls[this.effects.appear])\n }\n\n startAttention() {\n this.attentionInterval = setInterval(() => {\n const boxElem = this.getBoxElem()\n\n const handler = () => {\n boxElem.removeEventListener('animationend', handler)\n boxElem.classList.remove(config.fxCls[this.effects.attention])\n }\n boxElem.addEventListener('animationend', handler)\n\n boxElem.classList.add(config.fxCls[this.effects.attention])\n }, this.effects.attentionInterval)\n }\n\n stopAttention() {\n this.attentionInterval && clearInterval(this.attentionInterval)\n const boxElem = this.getBoxElem()\n boxElem.classList.remove(config.fxCls[this.effects.attention])\n }\n\n isDestroyed(): boolean {\n return this.destroyed\n }\n\n isVisible(): boolean {\n return this.visible\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return this.displayMode\n }\n\n getBaseCls(): string | string[] {\n return this.baseCls\n }\n\n createNode(): HTMLElement {\n return document.createElement('div')\n }\n\n getBoxElem(): HTMLElement {\n if (!this.boxElem) {\n this.boxElem = this.createNode()\n const baseCls = this.getBaseCls()\n let classes = [config.rootCls]\n\n if (typeof baseCls === 'string') {\n classes = [\n ...classes,\n ...(baseCls.indexOf(' ') < 0\n ? [baseCls]\n : baseCls.replace(/^\\s+|\\s+$/g, '').split(/\\s+/)),\n ]\n } else {\n classes = [...classes, ...baseCls]\n }\n\n classes.forEach((item: string) => this.boxElem.classList.add(item))\n }\n\n return this.boxElem\n }\n\n getContentElem(): HTMLElement {\n if (!this.contentElem) {\n this.contentElem = this.createNode()\n\n if (this.getBaseCls()) {\n this.contentElem.classList.add(`${this.getBaseCls()}__content`)\n }\n\n this.getBoxElem().appendChild(this.contentElem)\n }\n\n return this.contentElem\n }\n\n render(renderTo?: HTMLElement) {\n if (!renderTo && !this.renderTo) {\n throw Error('Please provide parent node to render widget')\n }\n\n if (this.isRendered()) {\n return\n }\n\n let renderToNode = this.renderTo\n if (renderTo) {\n renderToNode = renderTo\n }\n\n this.fire('before:render')\n\n const boxElem = this.getBoxElem()\n\n if (!this.visible) {\n this.hideNode()\n }\n\n if (this.content) {\n this.setContent(this.content)\n }\n\n renderToNode.appendChild(boxElem)\n\n this.fire('render')\n\n if (this.visible) {\n this.visible = false\n this.show()\n }\n }\n\n isRendered(): boolean {\n return this.boxElem && document.body.contains(this.boxElem)\n }\n\n show() {\n if (this.isVisible()) {\n return\n }\n\n this.fire('before:show')\n this.visible = true\n\n this.showNode()\n\n setTimeout(() => this.fire('show'), this.animationDelay)\n }\n\n hide() {\n if (!this.isVisible()) {\n return\n }\n\n this.fire('before:hide')\n this.visible = false\n\n this.hideNode()\n\n setTimeout(() => this.fire('hide'), this.animationDelay)\n }\n\n addCls(cls: string) {\n this.getBoxElem().classList.add(cls)\n }\n\n removeCls(cls: string) {\n this.getBoxElem().classList.remove(cls)\n }\n\n setContent(content: string | number, safe = false) {\n this.content = content\n\n if (safe) {\n this.getContentElem().innerText = content.toString()\n } else {\n this.getContentElem().innerHTML = content.toString()\n }\n }\n\n destroy() {\n super.destroy()\n\n const contentElem = this.getContentElem()\n\n if (contentElem && contentElem.parentNode) {\n contentElem.parentNode.removeChild(contentElem)\n }\n this.contentElem = null\n\n const boxElem = this.getBoxElem()\n\n if (boxElem && boxElem.parentNode) {\n boxElem.parentNode.removeChild(boxElem)\n }\n this.boxElem = null\n\n this.destroyed = true\n\n this.fire('destroy')\n }\n}\n","/**\n * A simple and lightweight EventEmitter by TypeScript for Node.js or Browsers.\n *\n * @author billjs\n * @see https://github.com/billjs/event-emitter\n * @license MIT(https://opensource.org/licenses/MIT)\n */\n\n/**\n * EventHandler\n *\n * @export\n */\nexport type EventHandler = ((evt: Event) => void) & { _once?: boolean }\n\n/**\n * Event Object\n *\n * @export\n * @interface Event\n */\nexport interface Event {\n /**\n * event type\n *\n * @type {string}\n * @memberof Event\n */\n type: string\n\n /**\n * event data\n *\n * @type {*}\n * @memberof Event\n */\n data: any\n\n /**\n * the timestamp when event fired\n *\n * @type {number}\n * @memberof Event\n */\n timestamp: number\n\n /**\n * it is an once event, that meaning listen off after event fired\n *\n * @type {boolean}\n * @memberof Event\n */\n once: boolean\n}\n\n/**\n * It's a class for managing events.\n * It can be extended to provide event functionality for other classes or object.\n *\n * @export\n * @class EventEmitter\n */\nexport class EventEmitter {\n /**\n * the all event handlers are added.\n * it's a Map data structure(key-value), the key is event type, and the value is event handler.\n *\n * @memberof EventEmitter\n */\n eventHandlers: Record<string, EventHandler[] | undefined> = {}\n\n /**\n * event type validator.\n *\n * @param {string} type event type\n * @returns {boolean}\n * @memberof EventEmitter\n */\n isValidType(type: string) {\n return typeof type === 'string'\n }\n\n /**\n * event handler validator.\n *\n * @param {EventHandler} handler event handler\n * @returns {boolean}\n * @memberof EventEmitter\n */\n isValidHandler(handler: EventHandler) {\n return typeof handler === 'function'\n }\n\n /**\n * listen on a new event by type and handler.\n * if listen on, the true is returned, otherwise the false.\n * The handler will not be listen if it is a duplicate.\n *\n * @param {string} type event type, it must be a unique string.\n * @param {EventHandler} handler event handler, when if the same handler is passed,\n * listen it by only once.\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.on('change:name', evt => {\n * console.log(evt);\n * });\n */\n on(type: string, handler: EventHandler) {\n if (!type || !handler) return false\n\n if (!this.isValidType(type)) return false\n if (!this.isValidHandler(handler)) return false\n\n let handlers = this.eventHandlers[type]\n if (!handlers) handlers = this.eventHandlers[type] = []\n\n // when the same handler is passed, listen it by only once.\n if (handlers.indexOf(handler) >= 0) return false\n\n handler._once = false\n handlers.push(handler)\n return true\n }\n\n /**\n * listen on an once event by type and handler.\n * when the event is fired, that will be listen off immediately and automatically.\n * The handler will not be listen if it is a duplicate.\n *\n * @param {string} type event type, it must be a unique string.\n * @param {EventHandler} handler event handler,\n * when if the same handler is passed, listen it by only once.\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.once('change:name', evt => {\n * console.log(evt);\n * });\n */\n once(type: string, handler: EventHandler) {\n if (!type || !handler) return false\n\n if (!this.isValidType(type)) return false\n if (!this.isValidHandler(handler)) return false\n\n const ret = this.on(type, handler)\n if (ret) {\n // set `_once` private property after listened,\n // avoid to modify event handler that has been listened.\n handler._once = true\n }\n\n return ret\n }\n\n /**\n * listen off an event by type and handler.\n * or listen off events by type, when if only type argument is passed.\n * or listen off all events, when if no arguments are passed.\n *\n * @param {string} [type] event type\n * @param {EventHandler} [handler] event handler\n * @returns\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * // listen off the specified event\n * emitter.off('change:name', evt => {\n * console.log(evt);\n * });\n * // listen off events by type\n * emitter.off('change:name');\n * // listen off all events\n * emitter.off();\n */\n off(type?: string, handler?: EventHandler) {\n // listen off all events, when if no arguments are passed.\n // it does samething as `offAll` method.\n if (!type) return this.offAll()\n\n // listen off events by type, when if only type argument is passed.\n if (!handler) {\n this.eventHandlers[type] = []\n return\n }\n\n if (!this.isValidType(type)) return\n if (!this.isValidHandler(handler)) return\n\n const handlers = this.eventHandlers[type]\n if (!handlers || !handlers.length) return\n\n // otherwise, listen off the specified event.\n for (let i = 0; i < handlers.length; i++) {\n const fn = handlers[i]\n if (fn === handler) {\n handlers.splice(i, 1)\n break\n }\n }\n }\n\n /**\n * listen off all events, that means every event will be emptied.\n *\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.offAll();\n */\n offAll() {\n this.eventHandlers = {}\n }\n\n /**\n * fire the specified event, and you can to pass a data.\n * When fired, every handler attached to that event will be executed.\n * But, if it's an once event, listen off it immediately after called handler.\n *\n * @param {string} type event type\n * @param {*} [data] event data\n * @returns\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.fire('change:name', 'new name');\n */\n fire(type: string, data?: any) {\n if (!type || !this.isValidType(type)) return\n\n const handlers = this.eventHandlers[type]\n if (!handlers || !handlers.length) return\n\n const event = this.createEvent(type, data)\n\n for (const handler of handlers) {\n if (!this.isValidHandler(handler)) continue\n if (handler._once) event.once = true\n\n // call event handler, and pass the event argument.\n handler(event)\n\n // if it's an once event, listen off it immediately after called handler.\n if (event.once) this.off(type, handler)\n }\n }\n\n /**\n * check whether the specified event has been listen on.\n * or check whether the events by type has been listen on, when if only `type` argument is passed.\n *\n * @param {string} type event type\n * @param {EventHandler} [handler] event handler, optional\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * const result = emitter.has('change:name');\n */\n has(type: string, handler?: EventHandler) {\n if (!type || !this.isValidType(type)) return false\n\n const handlers = this.eventHandlers[type]\n // if there are no any events, return false.\n if (!handlers || !handlers.length) return false\n\n // at lest one event, and no pass `handler` argument, then return true.\n if (!handler || !this.isValidHandler(handler)) return true\n\n // otherwise, need to traverse the handlers.\n return handlers.indexOf(handler) >= 0\n }\n\n /**\n * get the handlers for the specified event type.\n *\n * @param {string} type event type\n * @returns {EventHandler[]}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * const handlers = emitter.getHandlers('change:name');\n * console.log(handlers);\n */\n getHandlers(type: string) {\n if (!type || !this.isValidType(type)) return []\n return this.eventHandlers[type] || []\n }\n\n /**\n * create event object.\n *\n * @param {string} type event type\n * @param {*} [data] event data\n * @param {boolean} [once=false] is it an once event?\n * @returns {Event}\n * @memberof EventEmitter\n */\n createEvent(type: string, data?: any, once = false) {\n const event: Event = { type, data, once, timestamp: Date.now() }\n return event\n }\n}\n","import { EventHandler } from './event-emitter'\nimport { App, ChatPosition, InitialElement, AppTheme } from './app'\nimport { MixedObject } from '../types'\n\nconst c2o = [\n 'pro110d',\n 'pro1130',\n 'pro112b',\n 'pro1120',\n 'pro1190',\n 'pro118b',\n 'pro1185',\n 'pro11a1',\n]\n\nexport const createFacade = (instance: App) => {\n return {\n on(type: string, handler: EventHandler) {\n let typeToHandle = type\n\n if (c2o.indexOf(instance.options.id) !== -1 && type === 'ready') {\n typeToHandle = 'init'\n }\n\n instance.getBroadcast().on(typeToHandle, handler)\n },\n\n once(type: string, handler: EventHandler) {\n instance.getBroadcast().once(type, handler)\n },\n\n off(type?: string, handler?: EventHandler) {\n instance.getBroadcast().off(type, handler)\n },\n\n offAll() {\n instance.getBroadcast().offAll()\n },\n\n showChatbox() {\n instance.getWidgetManager().getChatboxWidget().show()\n },\n\n hideChatbox() {\n instance.getWidgetManager().getChatboxWidget().hide()\n },\n\n showButton() {\n instance.getWidgetManager().getChatButtonWidget().show()\n instance.getWidgetManager().getWhatsappButtonWidget().show()\n instance.getWidgetManager().getUnreadWidget().show()\n },\n\n hideButton() {\n instance.getWidgetManager().getChatButtonWidget().hide()\n instance.getWidgetManager().getWhatsappButtonWidget().hide()\n instance.getWidgetManager().getUnreadWidget().hide()\n },\n\n setButtonText(text: string) {\n instance.getWidgetManager().getChatButtonWidget().setContent(text)\n },\n\n showTeaser() {\n instance.getWidgetManager().getTeaserWidget().show()\n },\n\n hideTeaser() {\n instance.getWidgetManager().getTeaserWidget().hide()\n },\n\n setTeaserText(text: string) {\n instance.getWidgetManager().getTeaserWidget().setContent(text)\n },\n\n setPosition(position: ChatPosition) {\n instance.getWidgetManager().getWrapperWidget().setPosition(position)\n },\n\n setTheme(theme: AppTheme) {\n instance.getWidgetManager().getWrapperWidget().setTheme(theme)\n },\n\n showActionButtons() {\n instance.getWidgetManager().getActionButtonGroupWidget().show()\n },\n\n hideActionButtons() {\n instance.getWidgetManager().getActionButtonGroupWidget().hide()\n },\n\n setActionButtons(buttons: MixedObject[]) {\n instance.setActionButtons(buttons)\n },\n\n getContext(key: string): Promise<any> {\n return instance.getContext(key)\n },\n\n setContext(key: string, value: any): Promise<any> {\n return instance.setContext(key, value)\n },\n\n getConfig(): MixedObject {\n return instance.getConfig()\n },\n\n setUnreadCounter(amount: number) {\n instance.getWidgetManager().getUnreadWidget().setCounter(amount)\n },\n\n increaseUnreadCounter(amount: number) {\n instance.getWidgetManager().getUnreadWidget().increase(amount)\n },\n\n triggerElement(options: {\n successor: string\n showChatbox?: boolean\n suppressInitialElement?: boolean\n }) {\n instance.triggerElement(options)\n },\n\n setInitialElement(options: InitialElement) {\n instance.setInitialElement(options)\n },\n\n getInitialElement(): InitialElement {\n return instance.getInitialElement()\n },\n\n isChatboxVisible(): boolean {\n const chatbox = instance.getWidgetManager().getChatboxWidget()\n return chatbox ? chatbox.isVisible() : false\n },\n\n destroy() {\n instance.destroy()\n },\n\n isDestroyed() {\n return instance.isDestroyed()\n },\n\n isReady(): boolean {\n return instance.isReady()\n },\n\n setLocale(locale: string) {\n instance.setLocale(locale)\n },\n }\n}\n","import { EventEmitter, EventHandler } from './event-emitter'\n\nexport interface ObservableEvent {\n type: string\n callback: EventHandler\n once?: boolean\n}\n\nexport interface ObservableOptions {\n events?: ObservableEvent[]\n}\n\nexport class Observable extends EventEmitter {\n constructor(options: ObservableOptions) {\n super()\n const events = options.events || []\n\n events.forEach(item => {\n if (item.once) {\n this.once(item.type, item.callback)\n } else {\n this.on(item.type, item.callback)\n }\n })\n }\n\n destroy() {\n this.offAll()\n }\n}\n","export const parseUrlParam = (\n source: string,\n name: string,\n defaultReturn: string | null = null,\n): string | null => {\n const url = new URL(source)\n const param = url.searchParams.get(name)\n\n if (param && param.length >= 1) {\n return param\n }\n\n return defaultReturn\n}\n\nexport const isExternalUrl = (url: string): boolean => {\n const match = url.match(\n /^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/,\n )\n if (\n match != null &&\n typeof match[1] === 'string' &&\n match[1].length > 0 &&\n match[1].toLowerCase() !== location.protocol\n ) {\n return true\n }\n\n if (\n match != null &&\n typeof match[2] === 'string' &&\n match[2].length > 0 &&\n match[2].replace(\n new RegExp(\n `:( + { 'http:': 80, 'https:': 443 }[${location.protocol}] + )?$`,\n ),\n '',\n ) !== location.host\n ) {\n return true\n }\n\n return false\n}\n\nexport const injectCss = (css: string) => {\n const style = document.createElement('style')\n const head = document.querySelector('head')\n\n style.type = 'text/css'\n style.innerHTML = css\n\n if (head !== null) {\n head.appendChild(style)\n }\n}\n\nexport const isFontLoaded = (fontName: string): boolean => {\n let canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n const text = 'abcdefghijklmnopqrstuvwxyz0123456789'\n\n context.font = '72px monospace'\n\n const baselineSize = context.measureText(text).width\n\n context.font = `72px ${fontName}, monospace`\n\n const newSize = context.measureText(text).width\n\n canvas = null\n\n if (newSize === baselineSize) {\n return false\n }\n\n return true\n}\n\nexport const loadOpenSans = () => {}\n\nexport const isObject = (item: any): boolean => {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport const mergeDeep = <T extends object, U>(target: T, source: U): (T & U) | ({} & T) => {\n const output = Object.assign({}, target)\n\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key: any) => {\n if (isObject(source[key])) {\n if (!(key in target)) Object.assign(output, { [key]: source[key] })\n else output[key] = mergeDeep(target[key], source[key])\n } else {\n Object.assign(output, { [key]: source[key] })\n }\n })\n }\n\n return output\n}\n\nexport const removeURLParameters = (removeParams: string[]) => {\n const deleteRegex = new RegExp(`${removeParams.join('=|')}=`)\n\n const params = location.search.slice(1).split('&')\n const search = []\n\n for (let i = 0; i < params.length; i++) {\n if (!deleteRegex.test(params[i])) {\n search.push(params[i])\n }\n }\n\n const searchString = search.length ? `?${search.join('&')}` : ''\n const redirectUrl = `${location.pathname}${searchString}${location.hash}`\n\n window.history.replaceState({}, document.title, redirectUrl)\n}\n\nexport const isCrawler = (): boolean => {\n return /bot|google|baidu|bing|msn|teoma|slurp|yandex/i.test(\n navigator.userAgent,\n )\n}\n\nexport const inIframe = (): boolean => {\n try {\n return window.self !== window.top\n } catch (e) {\n return true\n }\n}\n","import {\n ChatButtonWidget,\n ChatboxWidget,\n WrapperWidget,\n ContentWrapperWidget,\n IframeWidget,\n TeaserWidget,\n UnreadWidget,\n ActionButtonGroupWidget,\n WhatsappButtonWidget,\n WhatsappWindowWidget,\n IframeBoxWidget,\n HeaderWidget,\n IframeWidgetOptions,\n ActionButtonWidget,\n FooterWidget\n} from '../widgets/index'\nimport { EventEmitter } from './event-emitter'\nimport { MixedObject } from '../types'\nimport { config } from '../config/config'\nimport { WebchatService } from '../services'\nimport { AppOptions, App } from './app'\n\nconst getTeaserText = ({\n teaserText,\n locale,\n defaultLocale,\n}: {\n teaserText?: { [key: string]: any }\n locale?: string\n defaultLocale?: string\n}): string => {\n let content = 'Can I help you?'\n\n if (teaserText) {\n if (teaserText[locale]) {\n content = teaserText[locale]\n } else if (defaultLocale && teaserText[defaultLocale]) {\n content = teaserText[defaultLocale]\n }\n }\n\n return content\n}\n\nexport class WidgetManager {\n private readonly app: App\n private chatButtonWidget: ChatButtonWidget\n private chatboxWidget: ChatboxWidget\n private wrapperWidget: WrapperWidget\n private contentWrapperWidget: ContentWrapperWidget\n private iframeWidget: IframeWidget\n private teaserWidget: TeaserWidget\n private unreadWidget: UnreadWidget\n private actionButtonGroupWidget: ActionButtonGroupWidget\n private whatsappButtonWidget: WhatsappButtonWidget\n private whatsappWindowWidget: WhatsappWindowWidget\n private iframeBoxWidget: IframeBoxWidget\n private headerWidget: HeaderWidget\n private footerWidget: FooterWidget\n\n constructor(app: App) {\n this.app = app\n }\n\n private getWebchatService(): WebchatService {\n return this.app.getWebchatService()\n }\n\n private getBroadcast(): EventEmitter {\n return this.app.getBroadcast()\n }\n\n private isAppReady(): boolean {\n return this.app.isReady()\n }\n\n renderHeader(options: AppOptions) {\n this.headerWidget = new HeaderWidget({\n renderTo: this.chatboxWidget.getBoxElem(),\n leftCloseButton: options.leftCloseButton,\n })\n\n this.headerWidget.getCloseButton().on('click', () => {\n if (this.whatsappWindowWidget && this.whatsappWindowWidget.isVisible()) {\n this.whatsappWindowWidget.hide()\n } else {\n this.chatboxWidget.hide()\n }\n })\n }\n\n renderIframeBox() {\n this.iframeBoxWidget = new IframeBoxWidget({\n visible: false,\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderFooter() {\n this.footerWidget = new FooterWidget({\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderWrapper(options: AppOptions & { visible: boolean }) {\n this.wrapperWidget = new WrapperWidget({\n renderTo: document.body,\n position: options.position,\n theme: options.theme,\n direction: options.direction,\n baseCustomCls: options.baseCls,\n visible: options.visible,\n })\n\n if (!options.renderButton) {\n this.wrapperWidget.addCls(config.wrapperNoButtonCls)\n }\n }\n\n renderContentWrapper() {\n this.contentWrapperWidget = new ContentWrapperWidget({\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderChatButton(options: AppOptions, chatConfig: MixedObject) {\n const { locale } = options\n const { buttonText, defaultLocale, effects } = chatConfig\n\n let content = ''\n\n if (buttonText) {\n if (buttonText[locale]) {\n content = buttonText[locale]\n } else if (defaultLocale && buttonText[defaultLocale]) {\n content = buttonText[defaultLocale]\n }\n }\n\n this.chatButtonWidget = new ChatButtonWidget({\n content,\n renderTo: this.footerWidget.getBoxElem(),\n visible: options.isButtonVisible,\n effects: effects?.chatButton,\n events: [\n {\n type: 'toggle',\n callback: (event: MixedObject) => {\n event.data.isPressed\n ? this.chatboxWidget.show()\n : this.chatboxWidget.hide()\n },\n },\n {\n type: 'before:show',\n callback: () => this.getBroadcast().fire('button.show.before'),\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('button.show'),\n },\n {\n type: 'before:hide',\n callback: () => this.getBroadcast().fire('button.hide.before'),\n },\n {\n type: 'hide',\n callback: () => this.getBroadcast().fire('button.hide'),\n },\n ],\n })\n\n this.chatButtonWidget.once('toggle', () => {\n this.chatButtonWidget.stopAttention()\n\n if (this.whatsappButtonWidget) {\n this.whatsappButtonWidget.stopAttention()\n }\n })\n }\n\n renderIframeWidget(options: IframeWidgetOptions, afterRender: () => void) {\n this.iframeWidget = new IframeWidget({\n host: options.host,\n id: options.id,\n initialElement: options.initialElement,\n locale: options.locale,\n renderTo: this.getChatboxWidget().getBoxElem(),\n channel: options.channel,\n events: [\n {\n type: 'render',\n callback: () => {\n afterRender()\n },\n },\n ],\n })\n }\n\n renderTeaserWidget(\n options: AppOptions,\n chatConfig: MixedObject,\n isTeaserVisible: boolean,\n ) {\n const { locale } = options\n const { teaserText, defaultLocale, effects } = chatConfig\n\n const content = getTeaserText({ teaserText, locale, defaultLocale })\n\n this.teaserWidget = new TeaserWidget({\n content,\n showTeaserOnce: chatConfig.showTeaserOnce,\n hideTeaserAfterTimes: chatConfig.hideTeaserAfterTimes,\n renderTo: this.contentWrapperWidget.getBoxElem(),\n visible: isTeaserVisible,\n effects: effects?.teaser,\n custidStoreMode: options.custidStoreMode,\n events: [\n {\n type: 'before:show',\n callback: () => {\n this.getBroadcast().fire('teaser.show.before')\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.show()\n }\n\n this.wrapperWidget.addCls(config.wrapperTeaserIsOpenCls)\n },\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('teaser.show'),\n },\n {\n type: 'before:hide',\n callback: () => {\n this.wrapperWidget.removeCls(config.wrapperTeaserIsOpenCls)\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.hide()\n }\n\n this.getBroadcast().fire('teaser.hide.before')\n },\n },\n {\n type: 'hide',\n callback: () => this.getBroadcast().fire('teaser.hide'),\n },\n {\n type: 'click',\n callback: () => this.chatboxWidget.show(),\n },\n ],\n })\n }\n\n renderUnreadWidget(options: AppOptions, chatConfig: MixedObject) {\n const { effects } = chatConfig\n\n this.unreadWidget = new UnreadWidget({\n visible: options.unreadCounter > 0 ? true : false,\n renderTo: this.wrapperWidget.getBoxElem(),\n unreadCounter: options.unreadCounter,\n effects: effects?.unreadCounter,\n })\n }\n\n renderChatboxWidget(options: AppOptions, beforeShowCallback: () => void) {\n this.chatboxWidget = new ChatboxWidget({\n visible: options.isChatboxVisible,\n hasExtendedWidth: options.extendedWidth,\n events: [\n {\n type: 'before:show',\n callback: () => {\n this.getBroadcast().fire('chatbox.show.before')\n\n this.teaserWidget.hide()\n\n if (this.unreadWidget) {\n this.unreadWidget.reset()\n }\n\n if (this.chatButtonWidget) {\n this.chatButtonWidget.toggle(true)\n }\n\n if (this.getWebchatService()) {\n this.getWebchatService().setMinimized(false)\n }\n\n beforeShowCallback()\n },\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('chatbox.show'),\n },\n {\n type: 'before:hide',\n callback: () => {\n this.getBroadcast().fire('chatbox.hide.before')\n\n if (this.teaserWidget.isVisible()) {\n this.teaserWidget.show()\n }\n\n if (this.iframeBoxWidget.isVisible()) {\n this.iframeBoxWidget.hide()\n }\n\n this.chatButtonWidget.toggle(false)\n\n if (this.getWebchatService()) {\n this.getWebchatService().setMinimized(true)\n }\n },\n },\n {\n type: 'hide',\n callback: () => {\n this.getBroadcast().fire('chatbox.hide')\n },\n },\n ],\n })\n\n this.chatboxWidget.render(this.wrapperWidget.getBoxElem())\n\n this.getBroadcast().on('ready', () => {\n this.chatboxWidget.setState('ready')\n })\n }\n\n renderActionButtonGroupWidget(\n app: App,\n options: AppOptions,\n chatConfig: MixedObject,\n ) {\n const { actionButtons, effects } = chatConfig\n\n this.actionButtonGroupWidget = new ActionButtonGroupWidget({\n renderTo: this.contentWrapperWidget.getBoxElem(),\n effects: effects?.actionButtons,\n visible:\n actionButtons &&\n actionButtons.length > 0 &&\n this.teaserWidget.isVisible(),\n })\n\n if (actionButtons && actionButtons.length > 0) {\n actionButtons.forEach((item: MixedObject) => {\n this.actionButtonGroupWidget.addButton({\n ...item,\n app,\n locale: options.locale,\n defaultLocale: chatConfig.defaultLocale,\n })\n })\n }\n }\n\n renderWhatsappButtonWidget(chatConfig: MixedObject) {\n const { effects, bwWaButton, slideWaButton } = chatConfig\n\n this.whatsappButtonWidget = new WhatsappButtonWidget({\n slideWaButton,\n renderTo: this.footerWidget.getBoxElem(),\n effects: effects?.whatsappButton,\n blackWhiteStyle: bwWaButton,\n events: [\n {\n type: 'toggle',\n callback: (event: MixedObject) => {\n if (event.data.isPressed) {\n if (!this.isAppReady()) {\n this.getBroadcast().once('ready', () => {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.show()\n }\n })\n } else {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.show()\n }\n }\n\n this.chatButtonWidget.toggle(true)\n this.wrapperWidget.addCls('ds-whatsapp--opened')\n } else {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.hide()\n }\n\n this.wrapperWidget.removeCls('ds-whatsapp--opened')\n }\n },\n },\n ],\n })\n\n this.chatboxWidget.on('before:hide', () => {\n this.whatsappButtonWidget.toggle(false)\n })\n }\n\n renderWhatsappWindowWidget(options: AppOptions) {\n this.whatsappWindowWidget = new WhatsappWindowWidget({\n renderTo: this.chatboxWidget.getBoxElem(),\n visible: false,\n clientId: options.id,\n locale: options.locale,\n events: [\n {\n type: 'before:hide',\n callback: () => {\n this.iframeWidget.show()\n this.whatsappButtonWidget.toggle(false)\n },\n },\n {\n type: 'before:show',\n callback: () => {\n this.iframeWidget.hide()\n },\n },\n ],\n })\n\n this.chatboxWidget.on('before:hide', () => {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.hide()\n }\n })\n }\n\n getChatButtonWidget(): ChatButtonWidget {\n return this.chatButtonWidget\n }\n\n getWrapperWidget(): WrapperWidget {\n return this.wrapperWidget\n }\n\n getIframeWidget(): IframeWidget {\n return this.iframeWidget\n }\n\n getChatboxWidget(): ChatboxWidget {\n return this.chatboxWidget\n }\n\n getTeaserWidget(): TeaserWidget {\n return this.teaserWidget\n }\n\n getUnreadWidget(): UnreadWidget {\n return this.unreadWidget\n }\n\n getActionButtonGroupWidget(): ActionButtonGroupWidget {\n return this.actionButtonGroupWidget\n }\n\n getWhatsappButtonWidget(): WhatsappButtonWidget {\n return this.whatsappButtonWidget\n }\n\n getWhatsappWindowWidget(): WhatsappWindowWidget {\n return this.whatsappWindowWidget\n }\n\n getIframeBoxWidget(): IframeBoxWidget {\n return this.iframeBoxWidget\n }\n\n setLocale(locale: string, chatConfig: { [key: string]: any }) {\n const { teaserText, defaultLocale } = chatConfig\n\n if (this.teaserWidget) {\n const teaserContent = getTeaserText({ teaserText, locale, defaultLocale })\n this.teaserWidget.setContent(teaserContent)\n }\n\n if (this.actionButtonGroupWidget) {\n const buttons = this.actionButtonGroupWidget.getButtons()\n buttons.forEach((button: ActionButtonWidget) => button.setLocale(locale))\n }\n\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.setLocale(locale)\n }\n }\n\n destroy() {\n if (this.unreadWidget) {\n this.unreadWidget.destroy()\n }\n\n if (this.teaserWidget) {\n this.teaserWidget.destroy()\n }\n\n if (this.chatButtonWidget) {\n this.chatButtonWidget.destroy()\n }\n\n if (this.iframeWidget) {\n this.iframeWidget.destroy()\n }\n\n if (this.chatboxWidget) {\n this.chatboxWidget.destroy()\n }\n\n if (this.wrapperWidget) {\n this.wrapperWidget.destroy()\n }\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.destroy()\n }\n\n if (this.iframeBoxWidget) {\n this.iframeBoxWidget.destroy()\n }\n\n if (this.headerWidget) {\n this.headerWidget.destroy()\n }\n\n if (this.footerWidget) {\n this.footerWidget.destroy()\n }\n\n if (this.whatsappButtonWidget) {\n this.whatsappButtonWidget.destroy()\n }\n\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.destroy()\n }\n }\n}\n","export enum CustidStoreMode {\n cookie = 'cookie',\n session = 'session',\n}\n","import { MixedObject } from '../types'\n\nexport enum ActionButtonType {\n quickreply = 'quickreply',\n callback = 'callback',\n}\n\nexport class ActionButton {\n private type: ActionButtonType\n private successor: string\n private l10n: {\n [key: string]: {\n title: string,\n },\n }\n private callback: Function\n private defaultLocale?: string\n\n constructor(options: MixedObject) {\n this.type = options.type\n this.successor = options.successor\n this.l10n = options.l10n\n\n if (options.callback) {\n this.callback = options.callback\n }\n\n if (options.defaultLocale) {\n this.defaultLocale = options.defaultLocale\n }\n }\n\n static fromJson(json: MixedObject): ActionButton {\n const normalizedData = ActionButtonNormalizer.normalize(json)\n\n return new ActionButton(normalizedData)\n }\n\n getTitle(locale: string): string | null {\n if (this.l10n[locale]) {\n return this.l10n[locale].title\n }\n\n if (this.l10n[this.defaultLocale]) {\n return this.l10n[this.defaultLocale].title\n }\n\n return null\n }\n\n getSuccessor(): string {\n return this.successor\n }\n\n getType(): ActionButtonType {\n return this.type\n }\n\n getCallback(): Function {\n return this.callback\n }\n}\n\nexport class ActionButtonNormalizer {\n static normalize(data: MixedObject): MixedObject {\n const locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs']\n const result: MixedObject = {\n type: data.type,\n successor: data.successor,\n l10n: {},\n }\n\n locales.forEach((locale: string) => {\n if (data.hasOwnProperty(locale)) {\n result.l10n[locale] = data[locale]\n }\n })\n\n if (data.callback) {\n result.callback = data.callback\n }\n\n if (data.defaultLocale) {\n result.defaultLocale = data.defaultLocale\n }\n\n return result\n }\n}\n","export * from './action-button'\n","import { HttpService } from './http.service'\nimport { config } from '../config/config'\nimport { MixedObject } from '../types'\n\nexport class ApiService {\n static getTransport() {\n return HttpService\n }\n\n static getCoreEndpoint(): string {\n return (config as MixedObject).env.coreApiEndpoint\n }\n\n static getIbeEndpoint(): string {\n return (config as MixedObject).env.ibeApiEndpoint\n }\n\n static setContext(\n customerId: string,\n key: string,\n value: string | number,\n ): Promise<MixedObject | Error> {\n const context = {}\n context[key] = value\n\n const data = {\n custid: customerId,\n context: JSON.stringify(context),\n }\n\n return ApiService.getTransport().postRequest(\n `${ApiService.getCoreEndpoint()}/config/context`,\n data,\n )\n }\n\n static getContext(\n customerId: string,\n variable: string,\n ): Promise<MixedObject> {\n return ApiService.getTransport()\n .getRequest(\n `${ApiService.getCoreEndpoint()}/config/context/${customerId}/${variable}`,\n )\n .then((response: MixedObject) => {\n return response[variable] ? response[variable] : null\n })\n }\n\n static getConfig(\n clientId: string,\n customerId = 'none',\n host: string,\n path: string,\n channel?: string,\n ): Promise<MixedObject> {\n let url = `${ApiService.getCoreEndpoint()}/config/webapp/${clientId}/${customerId}`\n\n const queryData = {\n host,\n path,\n }\n if (channel) {\n queryData['channel'] = channel\n }\n const queryString = new URLSearchParams(queryData)\n url += `?${queryString.toString()}`\n\n return ApiService.getTransport().getRequest(url)\n }\n\n static createUser(options: {\n clientId: string\n source: string\n locale: string\n csrfToken?: string\n context?: MixedObject\n debug?: string\n }): Promise<MixedObject | Error> {\n let url = `${ApiService.getCoreEndpoint()}/customer/v2/createnew/${\n options.source\n }/${options.clientId}/${options.locale}`\n\n if (options.csrfToken) {\n url += `?csrftoken=${options.csrfToken}`\n }\n\n if (options.context) {\n options.csrfToken ? (url += '&') : (url += '?')\n url += `context=${encodeURIComponent(JSON.stringify(options.context))}`\n }\n\n url.indexOf('?') === -1 ? (url += '?origin=sdk') : (url += '&origin=sdk')\n\n url += '&v=2.3.16'\n\n if (options.debug) {\n url += `&debug=${options.debug}`\n }\n\n return ApiService.getTransport().getRequest(url)\n }\n\n static validateUser(options: {\n clientId: string\n customerId: string\n currentURL: string\n context?: MixedObject\n }): Promise<MixedObject> {\n const data: { [key: string]: any } = {\n currentURL: options.currentURL,\n clientid: options.clientId,\n custid: options.customerId,\n }\n\n if (options.context) {\n data.context = JSON.stringify(options.context)\n }\n\n return ApiService.getTransport().postRequest(\n `${ApiService.getCoreEndpoint()}/customer/validate`,\n data,\n )\n }\n\n static createToken(options: {\n clientId: string\n realUserScore: number\n csrftoken?: string\n sec?: string\n }): Promise<MixedObject> {\n const data: MixedObject = {\n clid: options.clientId,\n sec: options.sec,\n realUserScore: options.realUserScore,\n }\n\n if (options.csrftoken) {\n data.csrftoken = options.csrftoken\n }\n\n return ApiService.getTransport().getRequest(\n `${ApiService.getCoreEndpoint()}/customer/csrf`,\n data,\n )\n }\n\n static getWhatsappLink(\n clientid: string,\n custid: string,\n ): Promise<MixedObject> {\n return ApiService.getTransport().getRequest(\n `${ApiService.getIbeEndpoint()}/whatsapp/onboard`,\n {\n clientid,\n custid,\n },\n )\n }\n}\n","export enum AudioSound {\n appear = 'appear',\n}\n\nconst soundConfig = {\n appear: 'https://assets.dialogshift.com/sounds/appear.mp3',\n}\n\nexport class AudioService {\n static playSound(name: AudioSound) {\n const url = soundConfig[name]\n const audio = new Audio(url)\n\n try {\n audio.play()\n } catch (e) {}\n }\n}\n","import { MixedObject } from '../types'\n\nexport class CookieService {\n static noCookieMode = false\n\n static get(name: string): string | null {\n const arrcookies = document.cookie.split(';')\n\n for (let i = 0; i < arrcookies.length; i++) {\n let x = arrcookies[i].substr(0, arrcookies[i].indexOf('='))\n const y = arrcookies[i].substr(arrcookies[i].indexOf('=') + 1)\n x = x.replace(/^\\s+|\\s+$/g, '')\n\n if (x === name) {\n return unescape(y)\n }\n }\n\n return null\n }\n\n static set(\n name: string,\n value: string | number | boolean,\n options: MixedObject = {},\n ): void {\n if (CookieService.noCookieMode) {\n return\n }\n\n const params: MixedObject = {\n samesite: 'lax',\n path: '/',\n ...options,\n }\n\n let expires = params.expires\n\n if (typeof expires === 'number' && expires) {\n const d = new Date()\n\n d.setTime(d.getTime() + expires * 1000)\n expires = params.expires = d\n }\n\n if (expires && expires.toUTCString) {\n params.expires = expires.toUTCString()\n }\n\n const encodedValue = encodeURIComponent(value)\n\n let updatedCookie = `${name}=${encodedValue}`\n\n for (const propName in params) {\n updatedCookie = `${updatedCookie}; ${propName}`\n\n const propValue = params[propName]\n\n if (propValue !== true) {\n updatedCookie = `${updatedCookie}=${propValue}`\n }\n }\n\n document.cookie = updatedCookie\n }\n\n static delete(name: string) {\n CookieService.set(name, '', {\n 'max-age': -1,\n })\n }\n}\n","export class GaService {\n static getGaValue(): string | null {\n for (const c of document.cookie.split(';')) {\n const d = c.trim();\n if (d.startsWith('_ga=')) {\n return d.split('=', 2)[1];\n }\n }\n return null;\n }\n}\n","import { MixedObject } from '../types'\n\nexport class HttpService {\n private static processError(response): Promise<any> {\n if (response.status >= 200 && response.status < 300) {\n return Promise.resolve(response)\n }\n\n return Promise.reject(new Error(response.statusText))\n }\n\n private static processJson(response): MixedObject {\n return response.json()\n }\n\n static getRequest(\n url: string,\n options?: MixedObject,\n ): Promise<MixedObject | Error> {\n const queryString = options\n ? `${url}?${new URLSearchParams(options).toString()}`\n : url\n\n return fetch(queryString).then(this.processError).then(this.processJson)\n }\n\n static postRequest(\n url: string,\n data: MixedObject = {},\n ): Promise<MixedObject | Error> {\n return fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n mode: 'cors',\n body: JSON.stringify(data),\n }).then(this.processError)\n }\n}\n","export * from './api.service'\nexport * from './http.service'\nexport * from './webchat.service'\nexport * from './cookie.service'\nexport * from './user.service'\nexport * from './token.service'\n","import { MixedObject } from '../types'\nimport { ApiService, CookieService, UserService } from '.'\nimport { isCrawler } from '../core/utils'\n\nconst csrfCookieName = 'ds-csrf'\n\nexport class TokenService {\n static touchToken(clientId: string, csrfAfter: number): Promise<string> {\n return new Promise((resolve: any) => {\n const customerId = UserService.getCustomerId()\n const csrftoken = CookieService.get(csrfCookieName)\n const sec = btoa(window.screen.width.toString())\n const realUserScore = isCrawler() ? 0 : 100\n\n if (customerId) {\n resolve(customerId)\n } else if (csrftoken) {\n resolve(csrftoken)\n } else {\n setTimeout(() => {\n if (UserService.getCustomerId()) {\n return\n }\n\n ApiService.createToken({\n clientId,\n csrftoken,\n sec,\n realUserScore,\n }).then((response: MixedObject) => {\n if (!csrftoken) {\n CookieService.set(csrfCookieName, response.csrftoken, {\n expires: 86400 * 7, // 7 days\n })\n\n resolve(response.csrftoken)\n }\n })\n }, csrfAfter)\n }\n })\n }\n\n static deleteToken() {\n CookieService.delete(csrfCookieName)\n }\n}\n","import { ApiService, CookieService, TokenService } from './'\nimport { parseUrlParam } from '../core/utils'\nimport { MixedObject } from '../types'\nimport { CustidStoreMode } from '../enums'\nimport { GaService } from './ga.service'\n\nconst customerIdCookieName = 'ds-custid'\n\nexport class UserService {\n static custidStoreMode = CustidStoreMode.cookie\n static loadGaContext = false\n static customerId: string | null = null\n\n static getCustomerId(): string | null {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n return CookieService.get(customerIdCookieName)\n } else {\n let customerId: string | null = this.customerId\n /* let customerId: string | null = null\n try {\n customerId = sessionStorage.getItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n if (customerId === null) {\n customerId = CookieService.get(customerIdCookieName)\n }\n return customerId\n }\n }\n\n static setCustomerId(id: string, expires?: number) {\n this.saveCustomerId(id, expires)\n\n TokenService.deleteToken()\n }\n\n static saveCustomerId(id: string, expires?: number) {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n CookieService.set(customerIdCookieName, id, {\n expires: expires ? expires : 86400 * 90, // 90 days\n })\n } else {\n this.customerId = id\n /* try {\n sessionStorage.setItem(customerIdCookieName, id)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n }\n\n static deleteCustomerId() {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n CookieService.delete(customerIdCookieName)\n } else {\n this.customerId = null\n /* try {\n sessionStorage.removeItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }\n if (CookieService.get(customerIdCookieName) !== null) {\n CookieService.delete(customerIdCookieName)\n }*/\n }\n }\n\n static updateCookieLifetime(forgetCustomerAfterHours: number) {\n if (this.custidStoreMode === CustidStoreMode.cookie && UserService.getCustomerId()) {\n UserService.setCustomerId(\n UserService.getCustomerId(),\n 3600 * forgetCustomerAfterHours,\n )\n }\n }\n\n static switchToCookieModeAfterConsent() {\n this.custidStoreMode = CustidStoreMode.cookie\n const customerId = this.customerId\n /* let customerId = null\n try {\n customerId = sessionStorage.getItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n if (customerId !== null) {\n UserService.saveCustomerId(customerId)\n /* try {\n sessionStorage.removeItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n }\n\n static switchToSessionModeAfterConsentDismiss() {\n const customerId = CookieService.get(customerIdCookieName)\n UserService.deleteCustomerId()\n this.custidStoreMode = CustidStoreMode.session\n if (customerId !== null) {\n this.customerId = customerId\n /* try {\n sessionStorage.setItem(customerIdCookieName, customerId)\n } catch (e) {\n console.log('Session storage blocked.');\n }*/\n }\n }\n\n static touchUser(\n clientId: string,\n locale: string,\n csrfToken?: string,\n context?: MixedObject,\n ): Promise<string> {\n return new Promise((resolve: any) => {\n let source = 'pwa-embed'\n const customerId = this.getCustomerId()\n\n if (!clientId) {\n throw new Error('Client ID is undefined')\n }\n\n if (location.pathname.indexOf('/g/') !== -1) {\n source = 'pwa-c2o'\n }\n\n if (this.loadGaContext) {\n const ga = GaService.getGaValue()\n if (ga !== null) {\n context['_ga'] = ga\n }\n }\n\n // remove one month later 03.03.2021\n if (!customerId && customerId !== 'null') {\n ApiService.createUser({\n clientId,\n source,\n locale,\n csrfToken,\n context,\n debug: '1',\n }).then((data: any) => {\n UserService.setCustomerId(data.custid)\n\n resolve(data.custid)\n })\n } else {\n const currentURL = parseUrlParam(window.location.href, 'curl')\n\n ApiService.validateUser({\n clientId,\n customerId,\n currentURL,\n context,\n })\n .then(() => {\n resolve(customerId)\n })\n .catch(() => {\n ApiService.createUser({\n clientId,\n source,\n locale,\n // csrfToken,\n debug: '2',\n }).then((data: any) => {\n UserService.setCustomerId(data.custid)\n\n resolve(data.custid)\n })\n })\n }\n })\n }\n\n static deleteUser() {\n this.deleteCustomerId()\n /* try {\n sessionStorage.removeItem('ds-times-counter')\n sessionStorage.removeItem('ds-teaser-display')\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n}\n","export interface WebchatServiceOptions {\n targetWindow: HTMLIFrameElement\n}\n\nexport interface WebchatServiceTriggerOptions {\n successor?: string\n teaserButton?: boolean\n}\n\nexport class WebchatService {\n private targetWindow: HTMLIFrameElement\n\n constructor(options: WebchatServiceOptions) {\n this.targetWindow = options.targetWindow\n }\n\n triggerElement(options: WebchatServiceTriggerOptions) {\n const message: any = {\n successor: options.successor,\n type: 'trigger',\n }\n\n if (options.teaserButton) {\n message.teaserButton = options.teaserButton\n }\n\n this.targetWindow.contentWindow.postMessage(message, '*')\n }\n\n setMinimized(isMinimized: boolean) {\n const message = {\n isMinimized,\n type: 'setMinimized',\n }\n\n this.targetWindow.contentWindow.postMessage(message, '*')\n }\n}\n","import {\n BaseWidgetOptions,\n BaseWidget,\n BaseWidgetDisplayMode\n} from '../core/base-widget'\nimport { config } from '../config/config'\nimport { ActionButtonWidget } from './action-button.widget'\nimport { ActionButton } from '../models'\nimport { MixedObject } from '../types'\n\nexport class ActionButtonGroupWidget extends BaseWidget {\n private buttons: ActionButtonWidget[] = []\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.actionButtonGroupCls\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return 'flex'\n }\n\n addButton(options: MixedObject) {\n const button = new ActionButtonWidget({\n locale: options.locale,\n actionButton: ActionButton.fromJson(options),\n renderTo: this.getBoxElem(),\n app: options.app,\n })\n\n this.buttons.push(button)\n }\n\n getButtons(): ActionButtonWidget[] {\n return this.buttons\n }\n\n clearButtons() {\n this.buttons.forEach((item: ActionButtonWidget) => item.destroy())\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.display = this.getDisplayMode()\n boxElem.style.maxHeight = '147px'\n\n setTimeout(() => {\n boxElem.style.overflowY = 'visible'\n boxElem.style.maxHeight = 'auto'\n }, 500)\n\n super.showNode()\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.overflowY = 'hidden'\n\n setTimeout(() => (boxElem.style.maxHeight = '0'), 250)\n setTimeout(() => (boxElem.style.display = 'none'), 500)\n\n super.hideNode()\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { ActionButton, ActionButtonType } from '../models'\nimport { App } from '../core/app'\n\nexport interface ActionButtonWidgetOptions extends BaseWidgetOptions {\n actionButton: ActionButton\n locale: string\n app: App\n}\n\nexport class ActionButtonWidget extends BaseWidget {\n private actionButton: ActionButton\n private locale: string\n private app: App\n\n constructor(options: ActionButtonWidgetOptions) {\n super(options)\n\n this.setLocale(this.locale)\n }\n\n private bindEvents() {\n if (this.actionButton.getType() === ActionButtonType.quickreply) {\n this.getBoxElem().addEventListener('click', () => {\n this.app.triggerElement({\n successor: this.actionButton.getSuccessor(),\n teaserButton: true,\n })\n })\n }\n\n if (this.actionButton.getType() === ActionButtonType.callback) {\n this.getBoxElem().addEventListener('click', () => {\n const callback = this.actionButton.getCallback()\n callback()\n })\n }\n }\n\n render() {\n super.render()\n\n this.bindEvents()\n }\n\n getBaseCls(): string {\n return config.actionButtonCls\n }\n\n setLocale(locale: string) {\n this.locale = locale\n\n let title = this.actionButton.getTitle(this.locale)\n\n if (!title) {\n title = 'Press me'\n }\n\n this.setContent(title)\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { iconSvg } from '../consts'\n\nexport class ChatButtonWidget extends BaseWidget {\n private isPressed = false\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.toggle()\n })\n }\n\n getBaseCls(): string {\n return config.buttonCls\n }\n\n render() {\n const boxElem = this.getBoxElem()\n\n const iconContainer = document.createElement('div')\n iconContainer.classList.add(config.buttonIconContainerCls)\n iconContainer.innerHTML = iconSvg\n boxElem.appendChild(iconContainer)\n\n boxElem.classList.add(config.buttonLogoCls)\n\n this.bindEvents()\n\n super.render()\n }\n\n toggle(state?: boolean, suppressEvent = false, timeout = 100): void {\n const isPressed = state === undefined ? !this.isPressed : !!state\n\n if (isPressed === this.isPressed) {\n return\n }\n\n this.isPressed = isPressed\n\n if (isPressed) {\n this.getBoxElem().classList.add(config.buttonHiddenCls)\n } else {\n setTimeout(() => {\n this.getBoxElem().classList.remove(config.buttonHiddenCls)\n }, timeout)\n }\n\n if (!suppressEvent) {\n this.fire('toggle', {\n isPressed,\n })\n }\n }\n\n setContent(text: string) {\n super.setContent(text)\n\n if (text) {\n this.getBoxElem().classList.add(config.buttonWithTextCls)\n } else {\n this.getBoxElem().classList.remove(config.buttonWithTextCls)\n }\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface ChatboxWidgetOptions extends BaseWidgetOptions {\n hasExtendedWidth: boolean\n}\n\ntype ChatboxWidgetState = 'loading' | 'ready'\n\nexport class ChatboxWidget extends BaseWidget {\n private hasExtendedWidth = false\n\n constructor(options: ChatboxWidgetOptions) {\n super(options)\n\n this.setState('loading')\n\n if (options.hasExtendedWidth) {\n this.hasExtendedWidth = true\n this.getBoxElem().classList.add(config.chatHasExtendedWidth)\n }\n\n this.on('before:show', () => document.body.classList.add(config.chatIsOpen))\n this.on('before:hide', () =>\n document.body.classList.remove(config.chatIsOpen),\n )\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.zIndex = '30'\n boxElem.style.visibility = 'visible'\n\n setTimeout(() => {\n boxElem.style.opacity = '1'\n boxElem.style.transform = 'translateY(0)'\n })\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n boxElem.style.opacity = '0'\n boxElem.style.transform = 'translateY(10px)'\n\n setTimeout(() => {\n boxElem.style.zIndex = '-1'\n boxElem.style.visibility = 'hidden'\n }, 100)\n }\n\n getBaseCls(): string {\n return config.chatCls\n }\n\n setState(state: ChatboxWidgetState) {\n if (state === 'loading') {\n this.getBoxElem().classList.add(config.chatLoadingCls)\n }\n\n if (state === 'ready') {\n this.getBoxElem().classList.remove(config.chatLoadingCls)\n }\n }\n\n renderLoader(): HTMLElement {\n const loaderAnimation =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64px\" height=\"64px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><g transform=\"rotate(0 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.9166666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(30 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.8333333333333334s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(60 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.75s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(90 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.6666666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(120 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5833333333333334s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(150 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(180 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.4166666666666667s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(210 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.3333333333333333s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(240 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.25s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(270 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.16666666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(300 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.08333333333333333s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(330 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"0s\" repeatCount=\"indefinite\"></animate></rect></g></svg>'\n const loader = document.createElement('div')\n loader.classList.add(config.chatLoaderCls)\n\n const loaderImage = document.createElement('div')\n loaderImage.classList.add(config.chatLoaderImageCls)\n loaderImage.innerHTML = loaderAnimation\n\n loader.appendChild(loaderImage)\n\n return loader\n }\n\n render(renderTo?: HTMLElement) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.chatCls)\n boxElem.appendChild(this.renderLoader())\n\n super.render(renderTo)\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\nexport class ContentWrapperWidget extends BaseWidget {\n protected visible = false\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.contentWrapperCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-footer',\n}\n\nexport class FooterWidget extends BaseWidget {\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../../core/base-widget'\nimport { config } from '../../config/config'\n\ninterface HeaderCloseButtonWidgetOptions extends BaseWidgetOptions {\n leftCloseButton: boolean\n}\n\nexport class HeaderCloseButtonWidget extends BaseWidget {\n private readonly leftCloseButton: boolean\n\n constructor(options: HeaderCloseButtonWidgetOptions) {\n super(options)\n this.leftCloseButton = options.leftCloseButton\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.fire('click')\n })\n }\n\n render() {\n super.render()\n\n this.bindEvents()\n }\n\n getBaseCls(): string {\n let cls: string = config.headerCloseButtonCls\n if (this.leftCloseButton) {\n cls += ` ${config.headerCloseButtonLeftCls}`\n }\n\n return cls\n }\n}\n","import {\n BaseWidgetOptions,\n BaseWidget,\n BaseWidgetDisplayMode\n} from '../../core/base-widget'\nimport { config } from '../../config/config'\nimport { HeaderCloseButtonWidget } from './header-close-button.widget'\n\ninterface HeaderWidgetOptions extends BaseWidgetOptions {\n leftCloseButton: boolean\n}\n\nexport class HeaderWidget extends BaseWidget {\n private closeButton: HeaderCloseButtonWidget\n private readonly leftCloseButton: boolean\n\n constructor(options: HeaderWidgetOptions) {\n super(options)\n this.leftCloseButton = options.leftCloseButton\n }\n\n getBaseCls(): string {\n return config.headerCls\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return 'flex'\n }\n\n renderCloseButton() {\n this.closeButton = new HeaderCloseButtonWidget({\n renderTo: this.getBoxElem(),\n leftCloseButton: this.leftCloseButton,\n })\n }\n\n getCloseButton(): HeaderCloseButtonWidget {\n return this.closeButton\n }\n\n render(renderTo?: HTMLElement) {\n super.render(renderTo)\n\n this.renderCloseButton()\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-iframe-box',\n crossCls: 'ds-iframe-box__cross',\n}\n\ninterface IframeBoxWidgetOptions extends BaseWidgetOptions {}\n\nexport class IframeBoxWidget extends BaseWidget {\n private loaded = false\n private crossElem: HTMLElement\n private iframe: HTMLIFrameElement | null\n\n constructor(options: IframeBoxWidgetOptions) {\n super(options)\n }\n\n protected hideNode() {\n super.hideNode()\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n\n isLoaded(): boolean {\n return this.loaded\n }\n\n load(url: string): IframeBoxWidget {\n if (!this.iframe) {\n this.iframe = document.createElement('iframe')\n this.iframe.src = url\n this.iframe.scrolling = 'yes'\n this.iframe.frameBorder = '0'\n this.iframe.sandbox.add('allow-same-origin')\n this.iframe.sandbox.add('allow-scripts')\n this.iframe.sandbox.add('allow-forms')\n\n this.getBoxElem().appendChild(this.iframe)\n } else {\n this.iframe.src = url\n }\n\n return this\n }\n\n setContent() {\n throw new Error('Method is not allowed for an iframe')\n }\n\n getContentElem(): null {\n return null\n }\n\n render() {\n this.crossElem = this.createNode()\n this.crossElem.classList.add(config.crossCls)\n this.bindEvents()\n\n this.getBoxElem().appendChild(this.crossElem)\n\n super.render()\n }\n\n bindEvents() {\n this.crossElem.addEventListener('click', (event: MouseEvent) => {\n event.stopPropagation()\n this.iframe.parentNode.removeChild(this.iframe)\n this.iframe = null\n this.hide()\n })\n }\n\n setWidth(width: string) {\n this.getBoxElem().style.width = `${width}px`\n }\n}\n","import { InitialElement } from '../core/app'\nimport { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\nexport interface IframeWidgetOptions extends BaseWidgetOptions {\n host: string\n id: string\n customerId?: string\n initialElement?: InitialElement\n locale?: string\n channel?: string\n}\n\nexport class IframeWidget extends BaseWidget {\n private host: string\n private id: string\n private customerId: string\n private loaded = false\n private initialElement: InitialElement = {\n successor: null,\n suppress: false,\n }\n private locale: string\n private channel: string\n\n constructor(options: IframeWidgetOptions) {\n super(options)\n\n this.initialElement = options.initialElement\n this.channel = options.channel || 'pwa-embed'\n }\n\n getBaseCls(): string {\n return config.iframeCls\n }\n\n getBoxElem(): HTMLIFrameElement {\n return super.getBoxElem() as HTMLIFrameElement\n }\n\n setLoaded(value: boolean) {\n this.loaded = value\n }\n\n isLoaded(): boolean {\n return this.loaded\n }\n\n createNode(): HTMLIFrameElement {\n return document.createElement('iframe')\n }\n\n getViewportWidth(): number {\n return Math.max(\n document.documentElement.clientWidth || 0,\n window.innerWidth || 0,\n )\n }\n\n buildUrl(): string {\n let iframeUrl = `${this.host}?clid=${this.id}&cid=${this.customerId}`\n\n if (this.initialElement.suppress) {\n iframeUrl += '&init=suppress'\n } else if (this.initialElement.successor) {\n iframeUrl += `&init=${this.initialElement.successor}`\n }\n\n if (this.locale) {\n iframeUrl += `&lg=${this.locale}`\n }\n\n iframeUrl += `&source=${this.channel}`\n\n iframeUrl += `&viewport=${this.getViewportWidth()}`\n iframeUrl += `&curl=${location.origin + location.pathname}`\n\n return iframeUrl\n }\n\n load(customerId: string) {\n this.customerId = customerId\n\n if (this.isRendered()) {\n this.getBoxElem().src = this.buildUrl()\n }\n }\n\n setContent() {\n throw new Error('Method is not allowed for an iframe')\n }\n\n getContentElem(): null {\n return null\n }\n\n getInitialElement(): InitialElement {\n return this.initialElement\n }\n\n setInitialElement(initialElement: InitialElement) {\n this.initialElement = initialElement\n }\n}\n","export * from './wrapper.widget'\nexport * from './chatbox.widget'\nexport * from './chat-button.widget'\nexport * from './iframe.widget'\nexport * from './teaser.widget'\nexport * from './unread.widget'\nexport * from './content-wrapper.widget'\nexport * from './action-button.widget'\nexport * from './action-button-group.widget'\nexport * from './whatsapp-button.widget'\nexport * from './whatsapp-window.widget'\nexport * from './iframe-box.widget'\nexport * from './header/header.widget'\nexport * from './footer.widget'\n","import { BaseWidget, BaseWidgetOptions } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { CustidStoreMode } from '../enums';\n\ninterface TeaserWidgetOptions extends BaseWidgetOptions {\n showTeaserOnce: boolean\n hideTeaserAfterTimes: number\n custidStoreMode: CustidStoreMode\n}\n\nexport class TeaserWidget extends BaseWidget {\n private crossElem: HTMLElement\n private showTeaserOnce: boolean\n private hideTeaserAfterTimes: number\n private custidStoreMode: CustidStoreMode\n\n constructor(options: TeaserWidgetOptions) {\n super(options)\n this.custidStoreMode = options.custidStoreMode\n }\n\n getBaseCls(): string {\n return config.teaserCls\n }\n\n render() {\n this.crossElem = this.createNode()\n this.crossElem.classList.add(config.teaserCrossCls)\n\n this.bindEvents()\n\n this.getBoxElem().appendChild(this.crossElem)\n\n super.render()\n }\n\n checkTimes(): boolean {\n if (this.hideTeaserAfterTimes === undefined) {\n return true\n }\n\n let timesCounter = 0\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n let storedTimesCounter = null\n try {\n storedTimesCounter = sessionStorage.getItem('ds-times-counter')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n if (storedTimesCounter !== null) {\n timesCounter = parseInt(storedTimesCounter, 10)\n }\n }\n\n timesCounter += 1\n\n if (timesCounter > this.hideTeaserAfterTimes) {\n return false\n }\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n sessionStorage.setItem('ds-times-counter', timesCounter.toString())\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n\n return true\n }\n\n show(options = { force: false }): void {\n if (options.force) {\n super.show()\n return\n }\n\n if (!this.checkTimes()) {\n this.hideNode()\n return\n }\n\n let teaserDisplay = null\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n teaserDisplay = sessionStorage.getItem('ds-teaser-display')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n if (this.showTeaserOnce && teaserDisplay !== null) {\n return\n }\n\n super.show()\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n sessionStorage.setItem('ds-teaser-display', 'true')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n }\n\n bindEvents() {\n this.crossElem.addEventListener('click', (event: MouseEvent) => {\n event.stopPropagation()\n this.hide()\n })\n\n this.getBoxElem().addEventListener('click', () => this.fire('click'))\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface UnreadWidgetOptions extends BaseWidgetOptions {\n unreadCounter?: number\n}\n\nexport class UnreadWidget extends BaseWidget {\n private unreadCounter = 0\n\n constructor(options: UnreadWidgetOptions) {\n super(options)\n\n if (options.unreadCounter) {\n this.increase(options.unreadCounter)\n }\n }\n\n getBaseCls(): string {\n return config.unreadCls\n }\n\n setCounter(amount: number) {\n if (amount < 1) {\n this.reset()\n } else {\n this.unreadCounter = amount\n this.setContent(this.unreadCounter)\n\n if (!this.isVisible()) {\n this.show()\n }\n }\n }\n\n increase(amount = 1) {\n if (amount < 1) {\n return\n }\n\n this.unreadCounter += amount\n this.setContent(this.unreadCounter)\n\n if (!this.isVisible()) {\n this.show()\n }\n }\n\n reset() {\n this.unreadCounter = 0\n\n if (this.isVisible()) {\n this.hide()\n setTimeout(() => this.setContent(this.unreadCounter), this.animationDelay)\n }\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-whatsapp-button',\n activeCls: 'ds-whatsapp-button--active',\n bwCls: 'ds-whatsapp-button--bw',\n slideCls: 'ds-whatsapp-button--slide',\n}\n\ninterface WhatsappButtonWidgetOptions extends BaseWidgetOptions {\n blackWhiteStyle?: boolean\n slideWaButton?: boolean\n}\n\nexport class WhatsappButtonWidget extends BaseWidget {\n private isPressed = false\n private blackWhiteStyle = false\n private slideWaButton = false\n\n constructor(options: WhatsappButtonWidgetOptions) {\n super(options)\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.toggle()\n })\n }\n\n render() {\n if (this.blackWhiteStyle) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.bwCls)\n }\n\n if (this.slideWaButton) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.slideCls)\n }\n\n super.render()\n\n this.bindEvents()\n }\n\n toggle(state?: boolean, suppressEvent = false): void {\n const isPressed = state === undefined ? !this.isPressed : !!state\n\n if (isPressed === this.isPressed) {\n return\n }\n\n this.isPressed = isPressed\n\n if (isPressed) {\n this.getBoxElem().classList.add(config.activeCls)\n } else {\n this.getBoxElem().classList.remove(config.activeCls)\n }\n\n if (!suppressEvent) {\n this.fire('toggle', {\n isPressed,\n })\n }\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { ApiService, UserService } from '../services'\nimport { MixedObject } from '../types'\n\nconst config = {\n baseCls: 'ds-whatsapp-window',\n hideLoadingCls: 'ds-whatsapp-window--hide-loading',\n loadedCls: 'ds-whatsapp-window--loaded',\n titleCls: 'ds-whatsapp-window__title',\n textCls: 'ds-whatsapp-window__text',\n textLinkCls: 'ds-whatsapp-window__text-link',\n textLinkMobileCls: 'ds-whatsapp-window__text-link-mobile',\n qr: 'ds-whatsapp-window__qr',\n linkCls: 'ds-whatsapp-window__link',\n linkTestCls: 'ds-whatsapp-window__link-text',\n}\n\nconst texts = {\n en: {\n title: 'Use WhatsApp',\n description: 'Scan the QR code with your phone',\n linkText: 'or click the link below',\n linkMobileText: 'Click the button below to connect WhatsApp',\n link: 'Open WhatsApp',\n },\n de: {\n title: 'WhatsApp',\n description: 'QR-Code mit dem Smartphone scannen',\n linkText: 'auf dem Computer auch mit diesem Link',\n linkMobileText: 'Klicke den Button um WhatsApp zu öffnen',\n link: 'WhatsApp öffnen',\n },\n}\n\nconst getText = (locale: string, key: string) => {\n let lg = locale\n\n if (lg !== 'de' && lg !== 'en') {\n lg = 'en'\n }\n\n return texts[lg][key]\n}\n\ninterface WhatsappWindowWidgetOptions extends BaseWidgetOptions {\n clientId: string\n locale?: string\n}\n\nexport class WhatsappWindowWidget extends BaseWidget {\n private isLoaded = false\n private clientId: string\n private waSvg: string\n private waLink: string\n private locale = 'en'\n\n constructor(options: WhatsappWindowWidgetOptions) {\n super(options)\n\n this.clientId = options.clientId\n\n if (options.locale) {\n this.locale = options.locale\n }\n\n this.on('before:show', () => {\n this.loadQR()\n })\n }\n\n private loadQR() {\n if (!this.isLoaded) {\n this.isLoaded = true\n\n ApiService.getWhatsappLink(\n this.clientId,\n UserService.getCustomerId(),\n ).then((response: MixedObject) => {\n this.waLink = response.waLink\n this.waSvg = response.waSvg\n this.renderContent()\n\n this.addCls(config.hideLoadingCls)\n\n setTimeout(() => {\n this.addCls(config.loadedCls)\n this.removeCls(config.hideLoadingCls)\n }, 250)\n })\n }\n }\n\n private renderContent() {\n const title = `<div class=\"${config.titleCls}\">${getText(\n this.locale,\n 'title',\n )}</div>`\n const description = `<div class=\"${config.textCls}\">${getText(\n this.locale,\n 'description',\n )}</div>`\n const qr = `<div class=\"${config.qr}\">${this.waSvg}</div>`\n const linkText = `<div class=\"${config.textLinkCls}\">${getText(\n this.locale,\n 'linkText',\n )}</div>`\n const linkMobileText = `<div class=\"${config.textLinkMobileCls}\">${getText(\n this.locale,\n 'linkMobileText',\n )}</div>`\n const link = `<a class=\"${config.linkCls}\" href=\"${\n this.waLink\n }\" target=\"_blank\">\n <span class=\"${config.linkTestCls}\">${getText(this.locale, 'link')}</span>\n </a>`\n\n this.setContent(title + description + qr + linkText + linkMobileText + link)\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n\n setLocale(locale: string) {\n this.locale = locale\n\n if (this.isLoaded) {\n this.renderContent()\n }\n }\n}\n","import { ChatPosition, AppTheme } from '../core/app'\nimport { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface WrapperWidgetOptions extends BaseWidgetOptions {\n position: ChatPosition\n theme: AppTheme\n direction: 'rtl' | 'ltr'\n baseCustomCls?: string\n}\n\nexport class WrapperWidget extends BaseWidget {\n private position: ChatPosition\n private theme: AppTheme\n private direction: 'rtl' | 'ltr' = 'ltr'\n private baseCustomCls: string\n\n constructor(options: WrapperWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.wrapperCls\n }\n\n setPosition(position: ChatPosition) {\n this.position = position\n\n const boxElem = this.getBoxElem()\n\n boxElem.classList.remove(config.wrapperPositionLeftCls)\n boxElem.classList.remove(config.wrapperPositionRightCls)\n\n boxElem.classList.add(\n position === ChatPosition.left\n ? config.wrapperPositionLeftCls\n : config.wrapperPositionRightCls,\n )\n }\n\n setTheme(theme: AppTheme): void {\n if (!(theme in AppTheme)) {\n return\n }\n\n this.theme = theme\n\n const boxElem = this.getBoxElem()\n const themeCls =\n config[`theme${theme.charAt(0).toUpperCase() + theme.slice(1)}`]\n\n boxElem.classList.remove(config.themeRound)\n boxElem.classList.remove(config.themeTile)\n boxElem.classList.add(themeCls)\n }\n\n render() {\n this.setPosition(this.position)\n this.setTheme(this.theme)\n\n if (this.direction === 'rtl') {\n this.getBoxElem().classList.add(config.wrapperDirectionRtlCls)\n }\n\n if (this.baseCustomCls) {\n this.getBoxElem().classList.add(this.baseCustomCls)\n }\n\n super.render()\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { createFacade } from './core/facade'\nimport { App, AppOptions } from './core/app'\n\nlet facade = null\nconst instance = (options?: AppOptions) => {\n if (facade && !facade.isDestroyed()) {\n return facade\n }\n\n facade = createFacade(new App(options))\n return facade\n}\n\nexport { instance }\n"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"dialogshift-webchat-sdk.umd.js","mappings":"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","sources":["webpack://Dialogshift/./src/scripts/config/config.ts","webpack://Dialogshift/./src/scripts/config/env.ts","webpack://Dialogshift/./src/scripts/consts.ts","webpack://Dialogshift/./src/scripts/core/app.ts","webpack://Dialogshift/./src/scripts/core/base-widget.ts","webpack://Dialogshift/./src/scripts/core/event-emitter.ts","webpack://Dialogshift/./src/scripts/core/facade.ts","webpack://Dialogshift/./src/scripts/core/observable.ts","webpack://Dialogshift/./src/scripts/core/utils.ts","webpack://Dialogshift/./src/scripts/core/widget-manager.ts","webpack://Dialogshift/./src/scripts/enums.ts","webpack://Dialogshift/./src/scripts/models/action-button.ts","webpack://Dialogshift/./src/scripts/models/index.ts","webpack://Dialogshift/./src/scripts/services/api.service.ts","webpack://Dialogshift/./src/scripts/services/audio.service.ts","webpack://Dialogshift/./src/scripts/services/cookie.service.ts","webpack://Dialogshift/./src/scripts/services/ga.service.ts","webpack://Dialogshift/./src/scripts/services/http.service.ts","webpack://Dialogshift/./src/scripts/services/index.ts","webpack://Dialogshift/./src/scripts/services/token.service.ts","webpack://Dialogshift/./src/scripts/services/user.service.ts","webpack://Dialogshift/./src/scripts/services/webchat.service.ts","webpack://Dialogshift/./src/scripts/widgets/action-button-group.widget.ts","webpack://Dialogshift/./src/scripts/widgets/action-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/chat-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/chatbox.widget.ts","webpack://Dialogshift/./src/scripts/widgets/content-wrapper.widget.ts","webpack://Dialogshift/./src/scripts/widgets/footer.widget.ts","webpack://Dialogshift/./src/scripts/widgets/header/header-close-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/header/header.widget.ts","webpack://Dialogshift/./src/scripts/widgets/iframe-box.widget.ts","webpack://Dialogshift/./src/scripts/widgets/iframe.widget.ts","webpack://Dialogshift/./src/scripts/widgets/index.ts","webpack://Dialogshift/./src/scripts/widgets/teaser.widget.ts","webpack://Dialogshift/./src/scripts/widgets/unread.widget.ts","webpack://Dialogshift/./src/scripts/widgets/whatsapp-button.widget.ts","webpack://Dialogshift/./src/scripts/widgets/whatsapp-window.widget.ts","webpack://Dialogshift/./src/scripts/widgets/wrapper.widget.ts","webpack://Dialogshift/webpack/bootstrap","webpack://Dialogshift/webpack/runtime/define property getters","webpack://Dialogshift/webpack/runtime/hasOwnProperty shorthand","webpack://Dialogshift/webpack/runtime/make namespace object","webpack://Dialogshift/./src/scripts/index.ts"],"sourcesContent":["import { environment } from './env'\n\nexport const config = {\n widgetBase: 'ds-widget',\n widgetBaseFx: 'ds-widget--fx',\n widgetBaseVisible: 'ds-widget--visible',\n\n wrapperCls: 'ds-wrapper',\n wrapperNoButtonCls: 'ds-wrapper--no-button',\n wrapperTeaserIsOpenCls: 'ds-wrapper--teaser-opened',\n wrapperPositionLeftCls: 'ds-wrapper--pl',\n wrapperPositionRightCls: 'ds-wrapper--pr',\n wrapperDirectionRtlCls: 'ds-wrapper--rtl',\n\n contentWrapperCls: 'ds-content-wrapper',\n\n buttonCls: 'ds-button',\n buttonLogoCls: 'ds-button--logo',\n buttonIconContainerCls: 'ds-button--icon-container',\n buttonWithTextCls: 'ds-button--with-text',\n buttonActiveCls: 'ds-button--active',\n buttonHiddenCls: 'ds-button--hidden',\n\n chatCls: 'ds-chat',\n chatLoaderCls: 'ds-chat-loader',\n chatLoaderImageCls: 'ds-chat-loader-image',\n chatLoadingCls: 'ds-chat--loading',\n chatIsOpen: 'ds-chat--opened',\n chatHasExtendedWidth: 'ds-chat--extended-width',\n\n iframeCls: 'ds-iframe',\n\n teaserCls: 'ds-teaser',\n teaserCrossCls: 'ds-teaser__cross',\n teaserTextCls: 'ds-teaser__text',\n\n unreadCls: 'ds-unread',\n\n themeRound: 'ds-theme-round',\n themeTile: 'ds-theme-tile',\n\n actionButtonGroupCls: 'ds-action-button-group',\n\n actionButtonCls: 'ds-action-button',\n\n headerCls: 'ds-header',\n\n headerCloseButtonCls: 'ds-header-close-button',\n headerCloseButtonLeftCls: 'ds-header-close-button--left',\n\n env: environment,\n}\n","export const environment = {\n coreApiEndpoint: 'https://core.prod.co25.net',\n ibeApiEndpoint: 'https://ibe.prod.co25.net',\n iframeHost: 'https://webchat.dialogshift.com',\n}\n","export const iconSvg = '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"30\" stroke=\"currentColor\" fill=\"currentColor\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.549805 10.8695C0.549805 5.16744 5.84902 0.549988 12.3568 0.549988C18.8646 0.549988 24.1329 5.16744 24.1329 10.9005C24.1329 16.6336 18.8646 21.251 12.3568 21.251C10.0016 21.251 7.80137 20.6312 5.94199 19.5776C4.26855 20.5693 2.47116 20.5383 1.4485 20.3833C1.13861 20.3523 1.07663 19.9495 1.32454 19.7945C2.3472 19.1437 2.87402 18.2141 3.18392 17.3773C1.54147 15.6109 0.549805 13.3487 0.549805 10.8695ZM29.4631 28.5646C29.711 28.5336 29.773 28.2237 29.5561 28.0687C28.6883 27.5109 28.2235 26.7362 27.9756 26.0544C29.3391 24.5669 30.1449 22.7075 30.1449 20.6622C30.1449 17.7182 28.4404 15.0841 25.8373 13.5346C24.5048 19.0818 18.9576 23.2654 12.3568 23.2654C11.892 23.2654 11.4271 23.2344 10.9933 23.2034C12.2329 26.7052 15.9516 29.2773 20.3831 29.2773C22.3355 29.2773 24.1639 28.7815 25.7133 27.8828C27.1079 28.7195 28.5954 28.6885 29.4631 28.5646Z\"/><mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"31\" height=\"30\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.549805 10.8695C0.549805 5.16744 5.84902 0.549988 12.3568 0.549988C18.8646 0.549988 24.1329 5.16744 24.1329 10.9005C24.1329 16.6336 18.8646 21.251 12.3568 21.251C10.0016 21.251 7.80137 20.6312 5.94199 19.5776C4.26855 20.5693 2.47116 20.5383 1.4485 20.3833C1.13861 20.3523 1.07663 19.9495 1.32454 19.7945C2.3472 19.1437 2.87402 18.2141 3.18392 17.3773C1.54147 15.6109 0.549805 13.3487 0.549805 10.8695ZM29.4631 28.5646C29.711 28.5336 29.773 28.2237 29.5561 28.0687C28.6883 27.5109 28.2235 26.7362 27.9756 26.0544C29.3391 24.5669 30.1449 22.7075 30.1449 20.6622C30.1449 17.7182 28.4404 15.0841 25.8373 13.5346C24.5048 19.0818 18.9576 23.2654 12.3568 23.2654C11.892 23.2654 11.4271 23.2344 10.9933 23.2034C12.2329 26.7052 15.9516 29.2773 20.3831 29.2773C22.3355 29.2773 24.1639 28.7815 25.7133 27.8828C27.1079 28.7195 28.5954 28.6885 29.4631 28.5646Z\"/></mask><g mask=\"url(#mask0)\"/></svg>'\n","import { config } from '../config/config'\nimport { EventEmitter, Event } from './event-emitter'\nimport { WidgetManager } from './widget-manager'\nimport {\n ApiService,\n WebchatService,\n CookieService,\n UserService,\n TokenService\n} from '../services'\nimport {\n parseUrlParam,\n isExternalUrl,\n injectCss,\n mergeDeep,\n removeURLParameters,\n inIframe\n} from './utils'\nimport { MixedObject } from '../types'\nimport { CustidStoreMode } from '../enums'\n\nexport enum ChatPosition {\n left = 'left',\n right = 'right',\n}\n\nexport enum AppTheme {\n round = 'round',\n tile = 'tile',\n}\n\nexport interface InitialElement {\n successor?: string | null\n suppress?: boolean\n}\n\nexport interface AppOptions {\n id: string\n locale?: string\n position?: ChatPosition\n theme?: AppTheme\n isChatboxVisible?: boolean\n isButtonVisible?: boolean\n renderWaButton?: boolean\n showTeaserOnce?: boolean\n renderButton?: boolean\n showFooter?: boolean\n initialElement?: InitialElement\n unreadCounter?: number\n context?: MixedObject\n direction?: 'rtl' | 'ltr'\n extendedWidth?: boolean\n bwWaButton?: boolean\n baseCls?: string\n showInIframe?: boolean\n custidStoreMode?: CustidStoreMode\n loadGaContext?: boolean\n channelOverride?: string\n leftCloseButton?: boolean\n}\n\nconst appOptionsDefault = {\n locale: 'en',\n theme: AppTheme.round,\n position: ChatPosition.right,\n isChatboxVisible: false,\n isButtonVisible: true,\n renderWaButton: false,\n showTeaserOnce: false,\n renderButton: true,\n showFooter: true,\n initialElement: {\n successor: null,\n suppress: false,\n },\n unreadCounter: 0,\n context: {},\n direction: 'ltr',\n showInIframe: false,\n custidStoreMode: CustidStoreMode.cookie,\n loadGaContext: false,\n leftCloseButton: false,\n}\n\nexport enum ActionEventType {\n action = 'action',\n message = 'message',\n command = 'command',\n}\n\nexport enum ActionEventName {\n userReady = 'user.ready',\n tabOpen = 'tab.open',\n setTeaserText = 'set.teaser.text',\n showChatbox = 'show.chatbox',\n hideChatbox = 'hide.chatbox',\n showWhatsApp = 'show.whatsApp',\n}\n\nexport interface ActionEvent {\n type: ActionEventType\n name: string\n payload: MixedObject\n}\n\nexport class App {\n private broadcast: EventEmitter\n private webchatService: WebchatService\n private chatConfig: MixedObject\n private destroyed = false\n private ready = false\n private csrfToken: string\n private isTeaserVisible = false\n private widgetManager: WidgetManager\n public options: AppOptions\n\n constructor(options: AppOptions) {\n if (!options) {\n throw Error('Please provide Dialogshift chat configuration')\n }\n\n if (!options.id) {\n throw Error('Dialogshift app id is undefined.')\n }\n\n this.options = mergeDeep(appOptionsDefault, options) as AppOptions\n this.broadcast = new EventEmitter()\n this.widgetManager = new WidgetManager(this)\n\n this.init()\n }\n\n private init() {\n this.options.context['hostUrl'] = encodeURI(window.location.href);\n\n if (parseUrlParam(window.location.href, 'ctrl') === 'forcenew') {\n UserService.deleteUser()\n TokenService.deleteToken()\n // CookieService.delete('ds-keep-chat-open')\n removeURLParameters(['ctrl'])\n }\n\n const openUrlParam = parseUrlParam(window.location.href, 'dschat')\n\n if (openUrlParam === 'open' && window.innerWidth > 576) {\n this.options.isChatboxVisible = true\n }\n\n this.loadConfig().then(() => {\n if (this.chatConfig.showWebsiteChat === false) {\n return\n }\n\n if (this.chatConfig.enableCSRFProtection) {\n let csrfAfter = 0\n\n if (this.chatConfig.csrfAfter) {\n csrfAfter = this.chatConfig.csrfAfter\n }\n\n TokenService.touchToken(this.options.id, csrfAfter).then(\n (token: string) => {\n this.csrfToken = token\n },\n )\n\n this.afterInit()\n } else {\n this.afterInit()\n }\n })\n }\n\n private afterInit() {\n this.render()\n this.afterRender()\n this.bindEvents()\n setTimeout(() => {\n this.broadcast.fire('init')\n }, 20)\n }\n\n private initWebchatService() {\n this.webchatService = new WebchatService({\n targetWindow: this.widgetManager.getIframeWidget().getBoxElem(),\n })\n }\n\n private render() {\n const isWidgetManagerVisible = this.options.showInIframe\n ? true\n : inIframe()\n ? false\n : true\n\n this.widgetManager.renderWrapper(\n Object.assign({}, this.options, {\n visible: isWidgetManagerVisible,\n }),\n )\n this.widgetManager.renderContentWrapper()\n this.widgetManager.renderFooter()\n\n if (this.options.renderButton) {\n this.widgetManager.renderChatButton(this.options, this.chatConfig)\n }\n\n this.widgetManager.renderTeaserWidget(\n this.options,\n this.chatConfig,\n this.isTeaserVisible,\n )\n\n this.widgetManager.renderActionButtonGroupWidget(\n this,\n this.options,\n this.chatConfig,\n )\n\n this.widgetManager.renderChatboxWidget(this.options, () => {\n this.loadChat()\n })\n\n this.widgetManager.renderHeader(\n this.options,\n )\n\n this.widgetManager.renderUnreadWidget(this.options, this.chatConfig)\n\n if (this.options.renderWaButton) {\n this.widgetManager.renderWhatsappButtonWidget(this.chatConfig)\n this.widgetManager.renderWhatsappWindowWidget(this.options)\n }\n\n this.widgetManager.renderIframeBox()\n\n this.broadcast.on('ready', () => {\n this.ready = true\n })\n }\n\n private afterRender() {\n const { showTeaserAfter, hideTeaserAfter } = this.chatConfig\n\n if (showTeaserAfter) {\n setTimeout(() => {\n if (\n !this.widgetManager.getTeaserWidget().isVisible() &&\n !this.widgetManager.getChatboxWidget().isVisible()\n ) {\n this.widgetManager.getTeaserWidget().show()\n }\n }, showTeaserAfter * 1000)\n }\n\n if (hideTeaserAfter) {\n setTimeout(() => {\n this.widgetManager.getTeaserWidget().hide()\n }, hideTeaserAfter * 1000)\n }\n\n /* if (CookieService.get('keep-chat-open') === 'true') {\n this.setInitialElement({\n suppress: true,\n })\n this.loadChat()\n\n this.getBroadcast().once('ready', () => {\n setTimeout(() => {\n this.webchatService.setMinimized(true)\n }, 250)\n })\n } */\n }\n\n private bindEvents() {\n window.addEventListener('message', (event: MixedObject) => {\n if (event.origin === (config as MixedObject).env.iframeHost) {\n const message = event.data as ActionEvent\n\n if (message.type === ActionEventType.message) {\n this.broadcast.fire(message.name, message.payload)\n }\n\n if (message.type === ActionEventType.command) {\n this.broadcast.fire(message.name, message.payload)\n }\n\n if (message.type === ActionEventType.action) {\n this.proceedActionEvent(message)\n }\n\n if (message.payload && message.payload.openInBox === true) {\n this.widgetManager.getIframeBoxWidget().load(message.payload.url)\n\n setTimeout(() => {\n if (message.payload.boxWidth) {\n this.widgetManager\n .getIframeBoxWidget()\n .setWidth(message.payload.boxWidth)\n } else {\n this.widgetManager.getIframeBoxWidget().setWidth('376')\n }\n\n this.widgetManager.getIframeBoxWidget().show()\n }, 300)\n }\n }\n })\n\n this.broadcast.on('message.receive', (event: Event) => {\n if (\n !this.widgetManager.getChatboxWidget().isVisible() &&\n !event.data.fromHistory\n ) {\n this.widgetManager.getUnreadWidget().increase(1)\n }\n })\n\n this.broadcast.on('command.receive', (event: any) => {\n const commandModel = event.data\n\n if (commandModel.commandType === 'receivedCookieConsent') {\n UserService.switchToCookieModeAfterConsent()\n } else if (commandModel.commandType === 'dismissCookieConsent') {\n UserService.switchToSessionModeAfterConsentDismiss()\n } /* else if (commandModel.commandType === 'livechat') {\n if (\n commandModel.action === 'start' &&\n this.chatConfig.keepChatOpenDuringLivechat\n ) {\n CookieService.set('keep-chat-open', 'true')\n }\n\n if (commandModel.action === 'end') {\n CookieService.set('keep-chat-open', 'false')\n }\n } */\n })\n }\n\n private proceedActionEvent(message: MixedObject) {\n if (message.name === ActionEventName.tabOpen) {\n let url = message.payload.targetUrl\n\n if (message.payload.urlType === 'openSameTab') {\n if (!isExternalUrl(url)) {\n url += `${url.split('?')[1] ? '&' : '?'}dschat=open`\n }\n window.open(url, '_self')\n }\n\n if (message.payload.urlType === 'openNewTab') {\n window.open(url, '_blank')\n }\n }\n\n if (message.name === ActionEventName.setTeaserText) {\n this.widgetManager.getTeaserWidget().setContent(message.payload.text)\n this.widgetManager.getTeaserWidget().show({\n force: true,\n })\n }\n\n if (message.name === ActionEventName.showChatbox) {\n this.widgetManager.getChatboxWidget().show()\n }\n\n if (message.name === ActionEventName.hideChatbox) {\n this.widgetManager.getChatboxWidget().hide()\n }\n\n if (message.name === ActionEventName.showWhatsApp) {\n this.widgetManager.getWhatsappWindowWidget().show()\n }\n }\n\n private loadConfig(): Promise<MixedObject> {\n const channel = this.options.context.channel\n ? this.options.context.channel\n : 'pwa-embed'\n\n return ApiService.getConfig(\n this.options.id,\n UserService.getCustomerId(),\n window.location.host,\n window.location.pathname,\n channel,\n ).then((data: MixedObject) => {\n this.chatConfig = data\n\n if (data.websiteElementCss) {\n injectCss(data.websiteElementCss)\n }\n\n if (this.chatConfig.defaultLg) {\n this.chatConfig.defaultLocale = this.chatConfig.defaultLg\n delete this.chatConfig.defaultLg\n }\n\n if (this.chatConfig.channelOverride) {\n this.options.context.channel = this.chatConfig.channelOverride\n }\n\n this.applyConfig()\n\n return this.chatConfig\n })\n }\n\n private applyConfig() {\n const {\n setUnreadCounter,\n showTeaserAfter,\n hideTeaserAfter,\n theme,\n noCookieModeSdk,\n forgetCustomerAfterHours,\n isChatboxVisible,\n renderWaButton,\n extendedWidth,\n bwWaButton,\n custidStoreMode,\n loadGaContext,\n leftCloseButton,\n } = this.chatConfig\n\n if (setUnreadCounter) {\n this.options.unreadCounter = setUnreadCounter\n }\n\n if (isChatboxVisible !== undefined) {\n this.options.isChatboxVisible = isChatboxVisible\n }\n\n if (showTeaserAfter === 0) {\n this.isTeaserVisible = true\n }\n\n if (hideTeaserAfter === 0) {\n this.isTeaserVisible = false\n }\n\n if (theme && theme in AppTheme) {\n this.options.theme = theme\n }\n\n if (noCookieModeSdk === true) {\n CookieService.noCookieMode = true\n }\n\n if (forgetCustomerAfterHours) {\n UserService.updateCookieLifetime(forgetCustomerAfterHours)\n }\n\n if (renderWaButton) {\n this.options.renderWaButton = renderWaButton\n }\n\n if (extendedWidth) {\n this.options.extendedWidth = extendedWidth\n }\n\n if (bwWaButton) {\n this.options.bwWaButton = bwWaButton\n }\n\n if (custidStoreMode) {\n this.options.custidStoreMode = custidStoreMode\n UserService.custidStoreMode = custidStoreMode\n }\n\n if (loadGaContext) {\n this.options.loadGaContext = loadGaContext\n UserService.loadGaContext = loadGaContext\n }\n\n if (leftCloseButton) {\n this.options.leftCloseButton = leftCloseButton\n }\n }\n\n getWebchatService(): WebchatService {\n return this.webchatService\n }\n\n getBroadcast(): EventEmitter {\n return this.broadcast\n }\n\n getWidgetManager(): WidgetManager {\n return this.widgetManager\n }\n\n getContext(key: string): Promise<any> {\n return new Promise((resolve, reject) => {\n if (UserService.getCustomerId()) {\n ApiService.getContext(UserService.getCustomerId(), key).then(\n resolve,\n reject,\n )\n } else {\n reject('Can not load context. Customer is not created.')\n }\n })\n }\n\n setContext(key: string, value: any): Promise<any> {\n return new Promise((resolve, reject) => {\n if (UserService.getCustomerId()) {\n ApiService.setContext(UserService.getCustomerId(), key, value).then(\n resolve,\n reject,\n )\n } else {\n this.options.context[key] = value\n }\n })\n }\n\n getConfig(): MixedObject {\n return this.chatConfig\n }\n\n setInitialElement(initialElement: InitialElement) {\n const mergedInitialElement = mergeDeep(\n this.options.initialElement,\n initialElement,\n )\n\n this.options.initialElement = mergedInitialElement\n\n if (this.widgetManager.getIframeWidget()) {\n this.widgetManager\n .getIframeWidget()\n .setInitialElement(mergedInitialElement)\n }\n }\n\n getInitialElement(): InitialElement {\n return this.options.initialElement\n }\n\n triggerElement(options: {\n successor: string\n teaserButton?: boolean\n showChatbox?: boolean\n suppressInitialElement?: boolean\n }) {\n const config = {\n showChatbox: true,\n suppressInitialElement: true,\n ...options,\n }\n\n if (!this.isReady()) {\n this.getBroadcast().once('ready', () => {\n setTimeout(() => {\n this.webchatService.triggerElement({\n teaserButton: options.teaserButton,\n successor: options.successor,\n })\n }, 250)\n })\n\n if (config.suppressInitialElement) {\n this.setInitialElement({\n suppress: true,\n })\n }\n\n if (config.showChatbox) {\n this.widgetManager.getChatboxWidget().show()\n } else {\n this.loadChat()\n }\n }\n\n if (this.isReady()) {\n if (\n !this.widgetManager.getChatboxWidget().isVisible() &&\n config.showChatbox\n ) {\n this.widgetManager.getChatboxWidget().show()\n }\n\n this.webchatService.triggerElement({\n teaserButton: options.teaserButton,\n successor: options.successor,\n })\n }\n }\n\n destroy() {\n if (this.destroyed) {\n return\n }\n\n this.destroyed = true\n\n this.widgetManager.destroy()\n\n this.broadcast.fire('destroy')\n this.broadcast.offAll()\n }\n\n isDestroyed(): boolean {\n return this.destroyed\n }\n\n isReady(): boolean {\n return !this.destroyed && this.ready\n }\n\n loadChat() {\n const load = () => {\n const iframeWidget = this.widgetManager.getIframeWidget()\n\n if (!iframeWidget.isLoaded()) {\n iframeWidget.setLoaded(true)\n\n UserService.touchUser(\n this.options.id,\n this.options.locale,\n this.csrfToken,\n this.options.context,\n ).then((customerId: string) => {\n // Debug interval\n setTimeout(() => {\n iframeWidget.load(customerId)\n }, 20)\n })\n }\n }\n\n const iframeWidget = this.widgetManager.getIframeWidget()\n\n if (!iframeWidget || !iframeWidget.isRendered()) {\n const channel = this.options.context.channel\n ? this.options.context.channel\n : 'pwa-embed'\n const { id, initialElement, locale } = this.options\n\n this.widgetManager.renderIframeWidget(\n {\n id,\n initialElement,\n locale,\n channel,\n host: (config as MixedObject).env.iframeHost,\n },\n () => {\n // For a separate thread. @todo refactor render flow.\n setTimeout(() => {\n this.initWebchatService()\n load()\n }, 20)\n },\n )\n }\n }\n\n setActionButtons(buttons: MixedObject) {\n this.widgetManager.getActionButtonGroupWidget().clearButtons()\n\n buttons.forEach((item: MixedObject) => {\n this.widgetManager.getActionButtonGroupWidget().addButton({\n ...item,\n locale: this.options.locale,\n app: this,\n })\n })\n }\n\n setLocale(locale: string) {\n this.options.locale = locale\n this.widgetManager.setLocale(locale, this.chatConfig)\n }\n}\n","import { Observable, ObservableOptions } from './observable'\nimport { AudioSound, AudioService } from '../services/audio.service'\n\nexport const config = {\n rootCls: 'ds-widget',\n visibleCls: 'ds-widget--visible',\n fxCls: {\n fade: 'ds-widget-fx--fade',\n zoom: 'ds-widget-fx--zoom',\n fadeBottom: 'ds-widget-fx--fade-bottom',\n bounceInRight: 'ds-widget-fx--bounce-in-right',\n pulse: 'ds-widget-fx--pulse',\n bounce: 'ds-widget-fx--bounce',\n },\n}\n\nexport interface BaseWidgetEffectsOptions {\n appear?: 'fade' | 'fadeBottom' | 'zoom' | 'bounceInRight' | null\n delay?: number\n sound?: AudioSound\n attention?: 'pulse' | 'bounce' | null\n attentionInterval?: number\n}\n\nexport interface BaseWidgetOptions extends ObservableOptions {\n visible?: boolean\n baseCls?: string\n renderTo?: HTMLElement\n animationDelay?: number\n content?: string | number\n effects?: BaseWidgetEffectsOptions\n}\n\nexport type BaseWidgetDisplayMode = 'block' | 'flex'\n\nexport class BaseWidget extends Observable {\n private baseCls = ''\n private renderTo: HTMLElement\n private boxElem: HTMLElement\n private contentElem: HTMLElement\n private content: string | number\n private destroyed = false\n private displayMode: BaseWidgetDisplayMode = 'block'\n private effects: BaseWidgetEffectsOptions = {\n appear: null,\n delay: 0,\n attention: null,\n attentionInterval: 0,\n }\n private attentionInterval: any = null\n protected visible = true\n protected animationDelay = 250\n\n constructor(options: BaseWidgetOptions) {\n super({ events: options.events })\n\n if (!options.effects) {\n delete options.effects\n }\n\n Object.assign(this, options)\n\n if (this.renderTo) {\n this.render()\n }\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n boxElem.style.display = this.getDisplayMode()\n\n if (this.effects.appear) {\n this.showAnimateNode(boxElem)\n } else {\n setTimeout(() => {\n boxElem.classList.add(config.visibleCls)\n if (this.effects.sound) {\n AudioService.playSound(this.effects.sound)\n }\n }, 10)\n }\n\n if (this.effects.attention && this.effects.attentionInterval) {\n setTimeout(() => {\n this.startAttention()\n }, this.effects.delay)\n }\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n\n if (this.effects.attention && this.effects.attentionInterval) {\n this.stopAttention()\n }\n\n boxElem.classList.remove(config.visibleCls)\n\n if (this.effects.appear) {\n this.hideAnimateNode(boxElem)\n }\n\n setTimeout(() => {\n boxElem.style.display = 'none'\n }, this.animationDelay)\n }\n\n protected showAnimateNode(boxElem: HTMLElement) {\n setTimeout(() => {\n const handler = () => {\n boxElem.removeEventListener('animationend', handler)\n boxElem.classList.add(config.visibleCls)\n boxElem.classList.remove(config.fxCls[this.effects.appear])\n }\n\n boxElem.addEventListener('animationend', handler)\n\n boxElem.classList.add(config.fxCls[this.effects.appear])\n\n if (this.effects.sound) {\n AudioService.playSound(this.effects.sound)\n }\n }, this.effects.delay)\n }\n\n protected hideAnimateNode(boxElem: HTMLElement) {\n boxElem.style.removeProperty('animationDelay')\n boxElem.classList.remove(config.fxCls[this.effects.appear])\n }\n\n startAttention() {\n this.attentionInterval = setInterval(() => {\n const boxElem = this.getBoxElem()\n\n const handler = () => {\n boxElem.removeEventListener('animationend', handler)\n boxElem.classList.remove(config.fxCls[this.effects.attention])\n }\n boxElem.addEventListener('animationend', handler)\n\n boxElem.classList.add(config.fxCls[this.effects.attention])\n }, this.effects.attentionInterval)\n }\n\n stopAttention() {\n this.attentionInterval && clearInterval(this.attentionInterval)\n const boxElem = this.getBoxElem()\n boxElem.classList.remove(config.fxCls[this.effects.attention])\n }\n\n isDestroyed(): boolean {\n return this.destroyed\n }\n\n isVisible(): boolean {\n return this.visible\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return this.displayMode\n }\n\n getBaseCls(): string | string[] {\n return this.baseCls\n }\n\n createNode(): HTMLElement {\n return document.createElement('div')\n }\n\n getBoxElem(): HTMLElement {\n if (!this.boxElem) {\n this.boxElem = this.createNode()\n const baseCls = this.getBaseCls()\n let classes = [config.rootCls]\n\n if (typeof baseCls === 'string') {\n classes = [\n ...classes,\n ...(baseCls.indexOf(' ') < 0\n ? [baseCls]\n : baseCls.replace(/^\\s+|\\s+$/g, '').split(/\\s+/)),\n ]\n } else {\n classes = [...classes, ...baseCls]\n }\n\n classes.forEach((item: string) => this.boxElem.classList.add(item))\n }\n\n return this.boxElem\n }\n\n getContentElem(): HTMLElement {\n if (!this.contentElem) {\n this.contentElem = this.createNode()\n\n if (this.getBaseCls()) {\n this.contentElem.classList.add(`${this.getBaseCls()}__content`)\n }\n\n this.getBoxElem().appendChild(this.contentElem)\n }\n\n return this.contentElem\n }\n\n render(renderTo?: HTMLElement) {\n if (!renderTo && !this.renderTo) {\n throw Error('Please provide parent node to render widget')\n }\n\n if (this.isRendered()) {\n return\n }\n\n let renderToNode = this.renderTo\n if (renderTo) {\n renderToNode = renderTo\n }\n\n this.fire('before:render')\n\n const boxElem = this.getBoxElem()\n\n if (!this.visible) {\n this.hideNode()\n }\n\n if (this.content) {\n this.setContent(this.content)\n }\n\n renderToNode.appendChild(boxElem)\n\n this.fire('render')\n\n if (this.visible) {\n this.visible = false\n this.show()\n }\n }\n\n isRendered(): boolean {\n return this.boxElem && document.body.contains(this.boxElem)\n }\n\n show() {\n if (this.isVisible()) {\n return\n }\n\n this.fire('before:show')\n this.visible = true\n\n this.showNode()\n\n setTimeout(() => this.fire('show'), this.animationDelay)\n }\n\n hide() {\n if (!this.isVisible()) {\n return\n }\n\n this.fire('before:hide')\n this.visible = false\n\n this.hideNode()\n\n setTimeout(() => this.fire('hide'), this.animationDelay)\n }\n\n addCls(cls: string) {\n this.getBoxElem().classList.add(cls)\n }\n\n removeCls(cls: string) {\n this.getBoxElem().classList.remove(cls)\n }\n\n setContent(content: string | number, safe = false) {\n this.content = content\n\n if (safe) {\n this.getContentElem().innerText = content.toString()\n } else {\n this.getContentElem().innerHTML = content.toString()\n }\n }\n\n destroy() {\n super.destroy()\n\n const contentElem = this.getContentElem()\n\n if (contentElem && contentElem.parentNode) {\n contentElem.parentNode.removeChild(contentElem)\n }\n this.contentElem = null\n\n const boxElem = this.getBoxElem()\n\n if (boxElem && boxElem.parentNode) {\n boxElem.parentNode.removeChild(boxElem)\n }\n this.boxElem = null\n\n this.destroyed = true\n\n this.fire('destroy')\n }\n}\n","/**\n * A simple and lightweight EventEmitter by TypeScript for Node.js or Browsers.\n *\n * @author billjs\n * @see https://github.com/billjs/event-emitter\n * @license MIT(https://opensource.org/licenses/MIT)\n */\n\n/**\n * EventHandler\n *\n * @export\n */\nexport type EventHandler = ((evt: Event) => void) & { _once?: boolean }\n\n/**\n * Event Object\n *\n * @export\n * @interface Event\n */\nexport interface Event {\n /**\n * event type\n *\n * @type {string}\n * @memberof Event\n */\n type: string\n\n /**\n * event data\n *\n * @type {*}\n * @memberof Event\n */\n data: any\n\n /**\n * the timestamp when event fired\n *\n * @type {number}\n * @memberof Event\n */\n timestamp: number\n\n /**\n * it is an once event, that meaning listen off after event fired\n *\n * @type {boolean}\n * @memberof Event\n */\n once: boolean\n}\n\n/**\n * It's a class for managing events.\n * It can be extended to provide event functionality for other classes or object.\n *\n * @export\n * @class EventEmitter\n */\nexport class EventEmitter {\n /**\n * the all event handlers are added.\n * it's a Map data structure(key-value), the key is event type, and the value is event handler.\n *\n * @memberof EventEmitter\n */\n eventHandlers: Record<string, EventHandler[] | undefined> = {}\n\n /**\n * event type validator.\n *\n * @param {string} type event type\n * @returns {boolean}\n * @memberof EventEmitter\n */\n isValidType(type: string) {\n return typeof type === 'string'\n }\n\n /**\n * event handler validator.\n *\n * @param {EventHandler} handler event handler\n * @returns {boolean}\n * @memberof EventEmitter\n */\n isValidHandler(handler: EventHandler) {\n return typeof handler === 'function'\n }\n\n /**\n * listen on a new event by type and handler.\n * if listen on, the true is returned, otherwise the false.\n * The handler will not be listen if it is a duplicate.\n *\n * @param {string} type event type, it must be a unique string.\n * @param {EventHandler} handler event handler, when if the same handler is passed,\n * listen it by only once.\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.on('change:name', evt => {\n * console.log(evt);\n * });\n */\n on(type: string, handler: EventHandler) {\n if (!type || !handler) return false\n\n if (!this.isValidType(type)) return false\n if (!this.isValidHandler(handler)) return false\n\n let handlers = this.eventHandlers[type]\n if (!handlers) handlers = this.eventHandlers[type] = []\n\n // when the same handler is passed, listen it by only once.\n if (handlers.indexOf(handler) >= 0) return false\n\n handler._once = false\n handlers.push(handler)\n return true\n }\n\n /**\n * listen on an once event by type and handler.\n * when the event is fired, that will be listen off immediately and automatically.\n * The handler will not be listen if it is a duplicate.\n *\n * @param {string} type event type, it must be a unique string.\n * @param {EventHandler} handler event handler,\n * when if the same handler is passed, listen it by only once.\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.once('change:name', evt => {\n * console.log(evt);\n * });\n */\n once(type: string, handler: EventHandler) {\n if (!type || !handler) return false\n\n if (!this.isValidType(type)) return false\n if (!this.isValidHandler(handler)) return false\n\n const ret = this.on(type, handler)\n if (ret) {\n // set `_once` private property after listened,\n // avoid to modify event handler that has been listened.\n handler._once = true\n }\n\n return ret\n }\n\n /**\n * listen off an event by type and handler.\n * or listen off events by type, when if only type argument is passed.\n * or listen off all events, when if no arguments are passed.\n *\n * @param {string} [type] event type\n * @param {EventHandler} [handler] event handler\n * @returns\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * // listen off the specified event\n * emitter.off('change:name', evt => {\n * console.log(evt);\n * });\n * // listen off events by type\n * emitter.off('change:name');\n * // listen off all events\n * emitter.off();\n */\n off(type?: string, handler?: EventHandler) {\n // listen off all events, when if no arguments are passed.\n // it does samething as `offAll` method.\n if (!type) return this.offAll()\n\n // listen off events by type, when if only type argument is passed.\n if (!handler) {\n this.eventHandlers[type] = []\n return\n }\n\n if (!this.isValidType(type)) return\n if (!this.isValidHandler(handler)) return\n\n const handlers = this.eventHandlers[type]\n if (!handlers || !handlers.length) return\n\n // otherwise, listen off the specified event.\n for (let i = 0; i < handlers.length; i++) {\n const fn = handlers[i]\n if (fn === handler) {\n handlers.splice(i, 1)\n break\n }\n }\n }\n\n /**\n * listen off all events, that means every event will be emptied.\n *\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.offAll();\n */\n offAll() {\n this.eventHandlers = {}\n }\n\n /**\n * fire the specified event, and you can to pass a data.\n * When fired, every handler attached to that event will be executed.\n * But, if it's an once event, listen off it immediately after called handler.\n *\n * @param {string} type event type\n * @param {*} [data] event data\n * @returns\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * emitter.fire('change:name', 'new name');\n */\n fire(type: string, data?: any) {\n if (!type || !this.isValidType(type)) return\n\n const handlers = this.eventHandlers[type]\n if (!handlers || !handlers.length) return\n\n const event = this.createEvent(type, data)\n\n for (const handler of handlers) {\n if (!this.isValidHandler(handler)) continue\n if (handler._once) event.once = true\n\n // call event handler, and pass the event argument.\n handler(event)\n\n // if it's an once event, listen off it immediately after called handler.\n if (event.once) this.off(type, handler)\n }\n }\n\n /**\n * check whether the specified event has been listen on.\n * or check whether the events by type has been listen on, when if only `type` argument is passed.\n *\n * @param {string} type event type\n * @param {EventHandler} [handler] event handler, optional\n * @returns {boolean}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * const result = emitter.has('change:name');\n */\n has(type: string, handler?: EventHandler) {\n if (!type || !this.isValidType(type)) return false\n\n const handlers = this.eventHandlers[type]\n // if there are no any events, return false.\n if (!handlers || !handlers.length) return false\n\n // at lest one event, and no pass `handler` argument, then return true.\n if (!handler || !this.isValidHandler(handler)) return true\n\n // otherwise, need to traverse the handlers.\n return handlers.indexOf(handler) >= 0\n }\n\n /**\n * get the handlers for the specified event type.\n *\n * @param {string} type event type\n * @returns {EventHandler[]}\n * @memberof EventEmitter\n * @example\n * const emitter = new EventEmitter();\n * const handlers = emitter.getHandlers('change:name');\n * console.log(handlers);\n */\n getHandlers(type: string) {\n if (!type || !this.isValidType(type)) return []\n return this.eventHandlers[type] || []\n }\n\n /**\n * create event object.\n *\n * @param {string} type event type\n * @param {*} [data] event data\n * @param {boolean} [once=false] is it an once event?\n * @returns {Event}\n * @memberof EventEmitter\n */\n createEvent(type: string, data?: any, once = false) {\n const event: Event = { type, data, once, timestamp: Date.now() }\n return event\n }\n}\n","import { EventHandler } from './event-emitter'\nimport { App, ChatPosition, InitialElement, AppTheme } from './app'\nimport { MixedObject } from '../types'\n\nconst c2o = [\n 'pro110d',\n 'pro1130',\n 'pro112b',\n 'pro1120',\n 'pro1190',\n 'pro118b',\n 'pro1185',\n 'pro11a1',\n]\n\nexport const createFacade = (instance: App) => {\n return {\n on(type: string, handler: EventHandler) {\n let typeToHandle = type\n\n if (c2o.indexOf(instance.options.id) !== -1 && type === 'ready') {\n typeToHandle = 'init'\n }\n\n instance.getBroadcast().on(typeToHandle, handler)\n },\n\n once(type: string, handler: EventHandler) {\n instance.getBroadcast().once(type, handler)\n },\n\n off(type?: string, handler?: EventHandler) {\n instance.getBroadcast().off(type, handler)\n },\n\n offAll() {\n instance.getBroadcast().offAll()\n },\n\n showChatbox() {\n instance.getWidgetManager().getChatboxWidget().show()\n },\n\n hideChatbox() {\n instance.getWidgetManager().getChatboxWidget().hide()\n },\n\n showButton() {\n instance.getWidgetManager().getChatButtonWidget().show()\n instance.getWidgetManager().getWhatsappButtonWidget().show()\n instance.getWidgetManager().getUnreadWidget().show()\n },\n\n hideButton() {\n instance.getWidgetManager().getChatButtonWidget().hide()\n instance.getWidgetManager().getWhatsappButtonWidget().hide()\n instance.getWidgetManager().getUnreadWidget().hide()\n },\n\n setButtonText(text: string) {\n instance.getWidgetManager().getChatButtonWidget().setContent(text)\n },\n\n showTeaser() {\n instance.getWidgetManager().getTeaserWidget().show()\n },\n\n hideTeaser() {\n instance.getWidgetManager().getTeaserWidget().hide()\n },\n\n setTeaserText(text: string) {\n instance.getWidgetManager().getTeaserWidget().setContent(text)\n },\n\n setPosition(position: ChatPosition) {\n instance.getWidgetManager().getWrapperWidget().setPosition(position)\n },\n\n setTheme(theme: AppTheme) {\n instance.getWidgetManager().getWrapperWidget().setTheme(theme)\n },\n\n showActionButtons() {\n instance.getWidgetManager().getActionButtonGroupWidget().show()\n },\n\n hideActionButtons() {\n instance.getWidgetManager().getActionButtonGroupWidget().hide()\n },\n\n setActionButtons(buttons: MixedObject[]) {\n instance.setActionButtons(buttons)\n },\n\n getContext(key: string): Promise<any> {\n return instance.getContext(key)\n },\n\n setContext(key: string, value: any): Promise<any> {\n return instance.setContext(key, value)\n },\n\n getConfig(): MixedObject {\n return instance.getConfig()\n },\n\n setUnreadCounter(amount: number) {\n instance.getWidgetManager().getUnreadWidget().setCounter(amount)\n },\n\n increaseUnreadCounter(amount: number) {\n instance.getWidgetManager().getUnreadWidget().increase(amount)\n },\n\n triggerElement(options: {\n successor: string\n showChatbox?: boolean\n suppressInitialElement?: boolean\n }) {\n instance.triggerElement(options)\n },\n\n setInitialElement(options: InitialElement) {\n instance.setInitialElement(options)\n },\n\n getInitialElement(): InitialElement {\n return instance.getInitialElement()\n },\n\n isChatboxVisible(): boolean {\n const chatbox = instance.getWidgetManager().getChatboxWidget()\n return chatbox ? chatbox.isVisible() : false\n },\n\n destroy() {\n instance.destroy()\n },\n\n isDestroyed() {\n return instance.isDestroyed()\n },\n\n isReady(): boolean {\n return instance.isReady()\n },\n\n setLocale(locale: string) {\n instance.setLocale(locale)\n },\n }\n}\n","import { EventEmitter, EventHandler } from './event-emitter'\n\nexport interface ObservableEvent {\n type: string\n callback: EventHandler\n once?: boolean\n}\n\nexport interface ObservableOptions {\n events?: ObservableEvent[]\n}\n\nexport class Observable extends EventEmitter {\n constructor(options: ObservableOptions) {\n super()\n const events = options.events || []\n\n events.forEach(item => {\n if (item.once) {\n this.once(item.type, item.callback)\n } else {\n this.on(item.type, item.callback)\n }\n })\n }\n\n destroy() {\n this.offAll()\n }\n}\n","export const parseUrlParam = (\n source: string,\n name: string,\n defaultReturn: string | null = null,\n): string | null => {\n const url = new URL(source)\n const param = url.searchParams.get(name)\n\n if (param && param.length >= 1) {\n return param\n }\n\n return defaultReturn\n}\n\nexport const isExternalUrl = (url: string): boolean => {\n const match = url.match(\n /^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/,\n )\n if (\n match != null &&\n typeof match[1] === 'string' &&\n match[1].length > 0 &&\n match[1].toLowerCase() !== location.protocol\n ) {\n return true\n }\n\n if (\n match != null &&\n typeof match[2] === 'string' &&\n match[2].length > 0 &&\n match[2].replace(\n new RegExp(\n `:( + { 'http:': 80, 'https:': 443 }[${location.protocol}] + )?$`,\n ),\n '',\n ) !== location.host\n ) {\n return true\n }\n\n return false\n}\n\nexport const injectCss = (css: string) => {\n const style = document.createElement('style')\n const head = document.querySelector('head')\n\n style.type = 'text/css'\n style.innerHTML = css\n\n if (head !== null) {\n head.appendChild(style)\n }\n}\n\nexport const isFontLoaded = (fontName: string): boolean => {\n let canvas = document.createElement('canvas')\n const context = canvas.getContext('2d')\n const text = 'abcdefghijklmnopqrstuvwxyz0123456789'\n\n context.font = '72px monospace'\n\n const baselineSize = context.measureText(text).width\n\n context.font = `72px ${fontName}, monospace`\n\n const newSize = context.measureText(text).width\n\n canvas = null\n\n if (newSize === baselineSize) {\n return false\n }\n\n return true\n}\n\nexport const loadOpenSans = () => {}\n\nexport const isObject = (item: any): boolean => {\n return item && typeof item === 'object' && !Array.isArray(item)\n}\n\nexport const mergeDeep = <T extends object, U>(target: T, source: U): (T & U) | ({} & T) => {\n const output = Object.assign({}, target)\n\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key: any) => {\n if (isObject(source[key])) {\n if (!(key in target)) Object.assign(output, { [key]: source[key] })\n else output[key] = mergeDeep(target[key], source[key])\n } else {\n Object.assign(output, { [key]: source[key] })\n }\n })\n }\n\n return output\n}\n\nexport const removeURLParameters = (removeParams: string[]) => {\n const deleteRegex = new RegExp(`${removeParams.join('=|')}=`)\n\n const params = location.search.slice(1).split('&')\n const search = []\n\n for (let i = 0; i < params.length; i++) {\n if (!deleteRegex.test(params[i])) {\n search.push(params[i])\n }\n }\n\n const searchString = search.length ? `?${search.join('&')}` : ''\n const redirectUrl = `${location.pathname}${searchString}${location.hash}`\n\n window.history.replaceState({}, document.title, redirectUrl)\n}\n\nexport const isCrawler = (): boolean => {\n return /bot|google|baidu|bing|msn|teoma|slurp|yandex/i.test(\n navigator.userAgent,\n )\n}\n\nexport const inIframe = (): boolean => {\n try {\n return window.self !== window.top\n } catch (e) {\n return true\n }\n}\n","import {\n ChatButtonWidget,\n ChatboxWidget,\n WrapperWidget,\n ContentWrapperWidget,\n IframeWidget,\n TeaserWidget,\n UnreadWidget,\n ActionButtonGroupWidget,\n WhatsappButtonWidget,\n WhatsappWindowWidget,\n IframeBoxWidget,\n HeaderWidget,\n IframeWidgetOptions,\n ActionButtonWidget,\n FooterWidget\n} from '../widgets/index'\nimport { EventEmitter } from './event-emitter'\nimport { MixedObject } from '../types'\nimport { config } from '../config/config'\nimport { WebchatService } from '../services'\nimport { AppOptions, App } from './app'\n\nconst getTeaserText = ({\n teaserText,\n locale,\n defaultLocale,\n}: {\n teaserText?: { [key: string]: any }\n locale?: string\n defaultLocale?: string\n}): string => {\n let content = 'Can I help you?'\n\n if (teaserText) {\n if (teaserText[locale]) {\n content = teaserText[locale]\n } else if (defaultLocale && teaserText[defaultLocale]) {\n content = teaserText[defaultLocale]\n }\n }\n\n return content\n}\n\nexport class WidgetManager {\n private readonly app: App\n private chatButtonWidget: ChatButtonWidget\n private chatboxWidget: ChatboxWidget\n private wrapperWidget: WrapperWidget\n private contentWrapperWidget: ContentWrapperWidget\n private iframeWidget: IframeWidget\n private teaserWidget: TeaserWidget\n private unreadWidget: UnreadWidget\n private actionButtonGroupWidget: ActionButtonGroupWidget\n private whatsappButtonWidget: WhatsappButtonWidget\n private whatsappWindowWidget: WhatsappWindowWidget\n private iframeBoxWidget: IframeBoxWidget\n private headerWidget: HeaderWidget\n private footerWidget: FooterWidget\n\n constructor(app: App) {\n this.app = app\n }\n\n private getWebchatService(): WebchatService {\n return this.app.getWebchatService()\n }\n\n private getBroadcast(): EventEmitter {\n return this.app.getBroadcast()\n }\n\n private isAppReady(): boolean {\n return this.app.isReady()\n }\n\n renderHeader(options: AppOptions) {\n this.headerWidget = new HeaderWidget({\n renderTo: this.chatboxWidget.getBoxElem(),\n leftCloseButton: options.leftCloseButton,\n })\n\n this.headerWidget.getCloseButton().on('click', () => {\n if (this.whatsappWindowWidget && this.whatsappWindowWidget.isVisible()) {\n this.whatsappWindowWidget.hide()\n } else {\n this.chatboxWidget.hide()\n }\n })\n }\n\n renderIframeBox() {\n this.iframeBoxWidget = new IframeBoxWidget({\n visible: false,\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderFooter() {\n this.footerWidget = new FooterWidget({\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderWrapper(options: AppOptions & { visible: boolean }) {\n this.wrapperWidget = new WrapperWidget({\n renderTo: document.body,\n position: options.position,\n theme: options.theme,\n direction: options.direction,\n baseCustomCls: options.baseCls,\n visible: options.visible,\n })\n\n if (!options.renderButton) {\n this.wrapperWidget.addCls(config.wrapperNoButtonCls)\n }\n }\n\n renderContentWrapper() {\n this.contentWrapperWidget = new ContentWrapperWidget({\n renderTo: this.wrapperWidget.getBoxElem(),\n })\n }\n\n renderChatButton(options: AppOptions, chatConfig: MixedObject) {\n const { locale } = options\n const { buttonText, defaultLocale, effects } = chatConfig\n\n let content = ''\n\n if (buttonText) {\n if (buttonText[locale]) {\n content = buttonText[locale]\n } else if (defaultLocale && buttonText[defaultLocale]) {\n content = buttonText[defaultLocale]\n }\n }\n\n this.chatButtonWidget = new ChatButtonWidget({\n content,\n renderTo: this.footerWidget.getBoxElem(),\n visible: options.isButtonVisible,\n effects: effects?.chatButton,\n events: [\n {\n type: 'toggle',\n callback: (event: MixedObject) => {\n event.data.isPressed\n ? this.chatboxWidget.show()\n : this.chatboxWidget.hide()\n },\n },\n {\n type: 'before:show',\n callback: () => this.getBroadcast().fire('button.show.before'),\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('button.show'),\n },\n {\n type: 'before:hide',\n callback: () => this.getBroadcast().fire('button.hide.before'),\n },\n {\n type: 'hide',\n callback: () => this.getBroadcast().fire('button.hide'),\n },\n ],\n })\n\n this.chatButtonWidget.once('toggle', () => {\n this.chatButtonWidget.stopAttention()\n\n if (this.whatsappButtonWidget) {\n this.whatsappButtonWidget.stopAttention()\n }\n })\n }\n\n renderIframeWidget(options: IframeWidgetOptions, afterRender: () => void) {\n this.iframeWidget = new IframeWidget({\n host: options.host,\n id: options.id,\n initialElement: options.initialElement,\n locale: options.locale,\n renderTo: this.getChatboxWidget().getBoxElem(),\n channel: options.channel,\n events: [\n {\n type: 'render',\n callback: () => {\n afterRender()\n },\n },\n ],\n })\n }\n\n renderTeaserWidget(\n options: AppOptions,\n chatConfig: MixedObject,\n isTeaserVisible: boolean,\n ) {\n const { locale } = options\n const { teaserText, defaultLocale, effects } = chatConfig\n\n const content = getTeaserText({ teaserText, locale, defaultLocale })\n\n this.teaserWidget = new TeaserWidget({\n content,\n showTeaserOnce: chatConfig.showTeaserOnce,\n hideTeaserAfterTimes: chatConfig.hideTeaserAfterTimes,\n renderTo: this.contentWrapperWidget.getBoxElem(),\n visible: isTeaserVisible,\n effects: effects?.teaser,\n custidStoreMode: options.custidStoreMode,\n events: [\n {\n type: 'before:show',\n callback: () => {\n this.getBroadcast().fire('teaser.show.before')\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.show()\n }\n\n this.wrapperWidget.addCls(config.wrapperTeaserIsOpenCls)\n },\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('teaser.show'),\n },\n {\n type: 'before:hide',\n callback: () => {\n this.wrapperWidget.removeCls(config.wrapperTeaserIsOpenCls)\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.hide()\n }\n\n this.getBroadcast().fire('teaser.hide.before')\n },\n },\n {\n type: 'hide',\n callback: () => this.getBroadcast().fire('teaser.hide'),\n },\n {\n type: 'click',\n callback: () => this.chatboxWidget.show(),\n },\n ],\n })\n }\n\n renderUnreadWidget(options: AppOptions, chatConfig: MixedObject) {\n const { effects } = chatConfig\n\n this.unreadWidget = new UnreadWidget({\n visible: options.unreadCounter > 0 ? true : false,\n renderTo: this.wrapperWidget.getBoxElem(),\n unreadCounter: options.unreadCounter,\n effects: effects?.unreadCounter,\n })\n }\n\n renderChatboxWidget(options: AppOptions, beforeShowCallback: () => void) {\n this.chatboxWidget = new ChatboxWidget({\n visible: options.isChatboxVisible,\n hasExtendedWidth: options.extendedWidth,\n events: [\n {\n type: 'before:show',\n callback: () => {\n this.getBroadcast().fire('chatbox.show.before')\n\n this.teaserWidget.hide()\n\n if (this.unreadWidget) {\n this.unreadWidget.reset()\n }\n\n if (this.chatButtonWidget) {\n this.chatButtonWidget.toggle(true)\n }\n\n if (this.getWebchatService()) {\n this.getWebchatService().setMinimized(false)\n }\n\n beforeShowCallback()\n },\n },\n {\n type: 'show',\n callback: () => this.getBroadcast().fire('chatbox.show'),\n },\n {\n type: 'before:hide',\n callback: () => {\n this.getBroadcast().fire('chatbox.hide.before')\n\n if (this.teaserWidget.isVisible()) {\n this.teaserWidget.show()\n }\n\n if (this.iframeBoxWidget.isVisible()) {\n this.iframeBoxWidget.hide()\n }\n\n this.chatButtonWidget.toggle(false)\n\n if (this.getWebchatService()) {\n this.getWebchatService().setMinimized(true)\n }\n },\n },\n {\n type: 'hide',\n callback: () => {\n this.getBroadcast().fire('chatbox.hide')\n },\n },\n ],\n })\n\n this.chatboxWidget.render(this.wrapperWidget.getBoxElem())\n\n this.getBroadcast().on('ready', () => {\n this.chatboxWidget.setState('ready')\n })\n }\n\n renderActionButtonGroupWidget(\n app: App,\n options: AppOptions,\n chatConfig: MixedObject,\n ) {\n const { actionButtons, effects } = chatConfig\n\n this.actionButtonGroupWidget = new ActionButtonGroupWidget({\n renderTo: this.contentWrapperWidget.getBoxElem(),\n effects: effects?.actionButtons,\n visible:\n actionButtons &&\n actionButtons.length > 0 &&\n this.teaserWidget.isVisible(),\n })\n\n if (actionButtons && actionButtons.length > 0) {\n actionButtons.forEach((item: MixedObject) => {\n this.actionButtonGroupWidget.addButton({\n ...item,\n app,\n locale: options.locale,\n defaultLocale: chatConfig.defaultLocale,\n })\n })\n }\n }\n\n renderWhatsappButtonWidget(chatConfig: MixedObject) {\n const { effects, bwWaButton, slideWaButton } = chatConfig\n\n this.whatsappButtonWidget = new WhatsappButtonWidget({\n slideWaButton,\n renderTo: this.footerWidget.getBoxElem(),\n effects: effects?.whatsappButton,\n blackWhiteStyle: bwWaButton,\n events: [\n {\n type: 'toggle',\n callback: (event: MixedObject) => {\n if (event.data.isPressed) {\n if (!this.isAppReady()) {\n this.getBroadcast().once('ready', () => {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.show()\n }\n })\n } else {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.show()\n }\n }\n\n this.chatButtonWidget.toggle(true)\n this.wrapperWidget.addCls('ds-whatsapp--opened')\n } else {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.hide()\n }\n\n this.wrapperWidget.removeCls('ds-whatsapp--opened')\n }\n },\n },\n ],\n })\n\n this.chatboxWidget.on('before:hide', () => {\n this.whatsappButtonWidget.toggle(false)\n })\n }\n\n renderWhatsappWindowWidget(options: AppOptions) {\n this.whatsappWindowWidget = new WhatsappWindowWidget({\n renderTo: this.chatboxWidget.getBoxElem(),\n visible: false,\n clientId: options.id,\n locale: options.locale,\n events: [\n {\n type: 'before:hide',\n callback: () => {\n this.iframeWidget.show()\n this.whatsappButtonWidget.toggle(false)\n },\n },\n {\n type: 'before:show',\n callback: () => {\n this.iframeWidget.hide()\n },\n },\n ],\n })\n\n this.chatboxWidget.on('before:hide', () => {\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.hide()\n }\n })\n }\n\n getChatButtonWidget(): ChatButtonWidget {\n return this.chatButtonWidget\n }\n\n getWrapperWidget(): WrapperWidget {\n return this.wrapperWidget\n }\n\n getIframeWidget(): IframeWidget {\n return this.iframeWidget\n }\n\n getChatboxWidget(): ChatboxWidget {\n return this.chatboxWidget\n }\n\n getTeaserWidget(): TeaserWidget {\n return this.teaserWidget\n }\n\n getUnreadWidget(): UnreadWidget {\n return this.unreadWidget\n }\n\n getActionButtonGroupWidget(): ActionButtonGroupWidget {\n return this.actionButtonGroupWidget\n }\n\n getWhatsappButtonWidget(): WhatsappButtonWidget {\n return this.whatsappButtonWidget\n }\n\n getWhatsappWindowWidget(): WhatsappWindowWidget {\n return this.whatsappWindowWidget\n }\n\n getIframeBoxWidget(): IframeBoxWidget {\n return this.iframeBoxWidget\n }\n\n setLocale(locale: string, chatConfig: { [key: string]: any }) {\n const { teaserText, defaultLocale } = chatConfig\n\n if (this.teaserWidget) {\n const teaserContent = getTeaserText({ teaserText, locale, defaultLocale })\n this.teaserWidget.setContent(teaserContent)\n }\n\n if (this.actionButtonGroupWidget) {\n const buttons = this.actionButtonGroupWidget.getButtons()\n buttons.forEach((button: ActionButtonWidget) => button.setLocale(locale))\n }\n\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.setLocale(locale)\n }\n }\n\n destroy() {\n if (this.unreadWidget) {\n this.unreadWidget.destroy()\n }\n\n if (this.teaserWidget) {\n this.teaserWidget.destroy()\n }\n\n if (this.chatButtonWidget) {\n this.chatButtonWidget.destroy()\n }\n\n if (this.iframeWidget) {\n this.iframeWidget.destroy()\n }\n\n if (this.chatboxWidget) {\n this.chatboxWidget.destroy()\n }\n\n if (this.wrapperWidget) {\n this.wrapperWidget.destroy()\n }\n\n if (this.actionButtonGroupWidget) {\n this.actionButtonGroupWidget.destroy()\n }\n\n if (this.iframeBoxWidget) {\n this.iframeBoxWidget.destroy()\n }\n\n if (this.headerWidget) {\n this.headerWidget.destroy()\n }\n\n if (this.footerWidget) {\n this.footerWidget.destroy()\n }\n\n if (this.whatsappButtonWidget) {\n this.whatsappButtonWidget.destroy()\n }\n\n if (this.whatsappWindowWidget) {\n this.whatsappWindowWidget.destroy()\n }\n }\n}\n","export enum CustidStoreMode {\n cookie = 'cookie',\n session = 'session',\n}\n","import { MixedObject } from '../types'\n\nexport enum ActionButtonType {\n quickreply = 'quickreply',\n callback = 'callback',\n}\n\nexport class ActionButton {\n private type: ActionButtonType\n private successor: string\n private l10n: {\n [key: string]: {\n title: string,\n },\n }\n private callback: Function\n private defaultLocale?: string\n\n constructor(options: MixedObject) {\n this.type = options.type\n this.successor = options.successor\n this.l10n = options.l10n\n\n if (options.callback) {\n this.callback = options.callback\n }\n\n if (options.defaultLocale) {\n this.defaultLocale = options.defaultLocale\n }\n }\n\n static fromJson(json: MixedObject): ActionButton {\n const normalizedData = ActionButtonNormalizer.normalize(json)\n\n return new ActionButton(normalizedData)\n }\n\n getTitle(locale: string): string | null {\n if (this.l10n[locale]) {\n return this.l10n[locale].title\n }\n\n if (this.l10n[this.defaultLocale]) {\n return this.l10n[this.defaultLocale].title\n }\n\n return null\n }\n\n getSuccessor(): string {\n return this.successor\n }\n\n getType(): ActionButtonType {\n return this.type\n }\n\n getCallback(): Function {\n return this.callback\n }\n}\n\nexport class ActionButtonNormalizer {\n static normalize(data: MixedObject): MixedObject {\n const locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs', 'sv']\n const result: MixedObject = {\n type: data.type,\n successor: data.successor,\n l10n: {},\n }\n\n locales.forEach((locale: string) => {\n if (data.hasOwnProperty(locale)) {\n result.l10n[locale] = data[locale]\n }\n })\n\n if (data.callback) {\n result.callback = data.callback\n }\n\n if (data.defaultLocale) {\n result.defaultLocale = data.defaultLocale\n }\n\n return result\n }\n}\n","export * from './action-button'\n","import { HttpService } from './http.service'\nimport { config } from '../config/config'\nimport { MixedObject } from '../types'\n\nexport class ApiService {\n static getTransport() {\n return HttpService\n }\n\n static getCoreEndpoint(): string {\n return (config as MixedObject).env.coreApiEndpoint\n }\n\n static getIbeEndpoint(): string {\n return (config as MixedObject).env.ibeApiEndpoint\n }\n\n static setContext(\n customerId: string,\n key: string,\n value: string | number,\n ): Promise<MixedObject | Error> {\n const context = {}\n context[key] = value\n\n const data = {\n custid: customerId,\n context: JSON.stringify(context),\n }\n\n return ApiService.getTransport().postRequest(\n `${ApiService.getCoreEndpoint()}/config/context`,\n data,\n )\n }\n\n static getContext(\n customerId: string,\n variable: string,\n ): Promise<MixedObject> {\n return ApiService.getTransport()\n .getRequest(\n `${ApiService.getCoreEndpoint()}/config/context/${customerId}/${variable}`,\n )\n .then((response: MixedObject) => {\n return response[variable] ? response[variable] : null\n })\n }\n\n static getConfig(\n clientId: string,\n customerId = 'none',\n host: string,\n path: string,\n channel?: string,\n ): Promise<MixedObject> {\n let url = `${ApiService.getCoreEndpoint()}/config/webapp/${clientId}/${customerId}`\n\n const queryData = {\n host,\n path,\n }\n if (channel) {\n queryData['channel'] = channel\n }\n const queryString = new URLSearchParams(queryData)\n url += `?${queryString.toString()}`\n\n return ApiService.getTransport().getRequest(url)\n }\n\n static createUser(options: {\n clientId: string\n source: string\n locale: string\n csrfToken?: string\n context?: MixedObject\n debug?: string\n }): Promise<MixedObject | Error> {\n let url = `${ApiService.getCoreEndpoint()}/customer/v2/createnew/${\n options.source\n }/${options.clientId}/${options.locale}`\n\n if (options.csrfToken) {\n url += `?csrftoken=${options.csrfToken}`\n }\n\n if (options.context) {\n options.csrfToken ? (url += '&') : (url += '?')\n url += `context=${encodeURIComponent(JSON.stringify(options.context))}`\n }\n\n url.indexOf('?') === -1 ? (url += '?origin=sdk') : (url += '&origin=sdk')\n\n url += '&v=2.3.16'\n\n if (options.debug) {\n url += `&debug=${options.debug}`\n }\n\n return ApiService.getTransport().getRequest(url)\n }\n\n static validateUser(options: {\n clientId: string\n customerId: string\n currentURL: string\n context?: MixedObject\n }): Promise<MixedObject> {\n const data: { [key: string]: any } = {\n currentURL: options.currentURL,\n clientid: options.clientId,\n custid: options.customerId,\n }\n\n if (options.context) {\n data.context = JSON.stringify(options.context)\n }\n\n return ApiService.getTransport().postRequest(\n `${ApiService.getCoreEndpoint()}/customer/validate`,\n data,\n )\n }\n\n static createToken(options: {\n clientId: string\n realUserScore: number\n csrftoken?: string\n sec?: string\n }): Promise<MixedObject> {\n const data: MixedObject = {\n clid: options.clientId,\n sec: options.sec,\n realUserScore: options.realUserScore,\n }\n\n if (options.csrftoken) {\n data.csrftoken = options.csrftoken\n }\n\n return ApiService.getTransport().getRequest(\n `${ApiService.getCoreEndpoint()}/customer/csrf`,\n data,\n )\n }\n\n static getWhatsappLink(\n clientid: string,\n custid: string,\n ): Promise<MixedObject> {\n return ApiService.getTransport().getRequest(\n `${ApiService.getIbeEndpoint()}/whatsapp/onboard`,\n {\n clientid,\n custid,\n },\n )\n }\n}\n","export enum AudioSound {\n appear = 'appear',\n}\n\nconst soundConfig = {\n appear: 'https://assets.dialogshift.com/sounds/appear.mp3',\n}\n\nexport class AudioService {\n static playSound(name: AudioSound) {\n const url = soundConfig[name]\n const audio = new Audio(url)\n\n try {\n audio.play()\n } catch (e) {}\n }\n}\n","import { MixedObject } from '../types'\n\nexport class CookieService {\n static noCookieMode = false\n\n static get(name: string): string | null {\n const arrcookies = document.cookie.split(';')\n\n for (let i = 0; i < arrcookies.length; i++) {\n let x = arrcookies[i].substr(0, arrcookies[i].indexOf('='))\n const y = arrcookies[i].substr(arrcookies[i].indexOf('=') + 1)\n x = x.replace(/^\\s+|\\s+$/g, '')\n\n if (x === name) {\n return unescape(y)\n }\n }\n\n return null\n }\n\n static set(\n name: string,\n value: string | number | boolean,\n options: MixedObject = {},\n ): void {\n if (CookieService.noCookieMode) {\n return\n }\n\n const params: MixedObject = {\n samesite: 'lax',\n path: '/',\n ...options,\n }\n\n let expires = params.expires\n\n if (typeof expires === 'number' && expires) {\n const d = new Date()\n\n d.setTime(d.getTime() + expires * 1000)\n expires = params.expires = d\n }\n\n if (expires && expires.toUTCString) {\n params.expires = expires.toUTCString()\n }\n\n const encodedValue = encodeURIComponent(value)\n\n let updatedCookie = `${name}=${encodedValue}`\n\n for (const propName in params) {\n updatedCookie = `${updatedCookie}; ${propName}`\n\n const propValue = params[propName]\n\n if (propValue !== true) {\n updatedCookie = `${updatedCookie}=${propValue}`\n }\n }\n\n document.cookie = updatedCookie\n }\n\n static delete(name: string) {\n CookieService.set(name, '', {\n 'max-age': -1,\n })\n }\n}\n","export class GaService {\n static getGaValue(): string | null {\n for (const c of document.cookie.split(';')) {\n const d = c.trim();\n if (d.startsWith('_ga=')) {\n return d.split('=', 2)[1];\n }\n }\n return null;\n }\n}\n","import { MixedObject } from '../types'\n\nexport class HttpService {\n private static processError(response): Promise<any> {\n if (response.status >= 200 && response.status < 300) {\n return Promise.resolve(response)\n }\n\n return Promise.reject(new Error(response.statusText))\n }\n\n private static processJson(response): MixedObject {\n return response.json()\n }\n\n static getRequest(\n url: string,\n options?: MixedObject,\n ): Promise<MixedObject | Error> {\n const queryString = options\n ? `${url}?${new URLSearchParams(options).toString()}`\n : url\n\n return fetch(queryString).then(this.processError).then(this.processJson)\n }\n\n static postRequest(\n url: string,\n data: MixedObject = {},\n ): Promise<MixedObject | Error> {\n return fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n mode: 'cors',\n body: JSON.stringify(data),\n }).then(this.processError)\n }\n}\n","export * from './api.service'\nexport * from './http.service'\nexport * from './webchat.service'\nexport * from './cookie.service'\nexport * from './user.service'\nexport * from './token.service'\n","import { MixedObject } from '../types'\nimport { ApiService, CookieService, UserService } from '.'\nimport { isCrawler } from '../core/utils'\n\nconst csrfCookieName = 'ds-csrf'\n\nexport class TokenService {\n static touchToken(clientId: string, csrfAfter: number): Promise<string> {\n return new Promise((resolve: any) => {\n const customerId = UserService.getCustomerId()\n const csrftoken = CookieService.get(csrfCookieName)\n const sec = btoa(window.screen.width.toString())\n const realUserScore = isCrawler() ? 0 : 100\n\n if (customerId) {\n resolve(customerId)\n } else if (csrftoken) {\n resolve(csrftoken)\n } else {\n setTimeout(() => {\n if (UserService.getCustomerId()) {\n return\n }\n\n ApiService.createToken({\n clientId,\n csrftoken,\n sec,\n realUserScore,\n }).then((response: MixedObject) => {\n if (!csrftoken) {\n CookieService.set(csrfCookieName, response.csrftoken, {\n expires: 86400 * 7, // 7 days\n })\n\n resolve(response.csrftoken)\n }\n })\n }, csrfAfter)\n }\n })\n }\n\n static deleteToken() {\n CookieService.delete(csrfCookieName)\n }\n}\n","import { ApiService, CookieService, TokenService } from './'\nimport { parseUrlParam } from '../core/utils'\nimport { MixedObject } from '../types'\nimport { CustidStoreMode } from '../enums'\nimport { GaService } from './ga.service'\n\nconst customerIdCookieName = 'ds-custid'\n\nexport class UserService {\n static custidStoreMode = CustidStoreMode.cookie\n static loadGaContext = false\n static customerId: string | null = null\n\n static getCustomerId(): string | null {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n return CookieService.get(customerIdCookieName)\n } else {\n let customerId: string | null = this.customerId\n /* let customerId: string | null = null\n try {\n customerId = sessionStorage.getItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n if (customerId === null) {\n customerId = CookieService.get(customerIdCookieName)\n }\n return customerId\n }\n }\n\n static setCustomerId(id: string, expires?: number) {\n this.saveCustomerId(id, expires)\n\n TokenService.deleteToken()\n }\n\n static saveCustomerId(id: string, expires?: number) {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n CookieService.set(customerIdCookieName, id, {\n expires: expires ? expires : 86400 * 90, // 90 days\n })\n } else {\n this.customerId = id\n /* try {\n sessionStorage.setItem(customerIdCookieName, id)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n }\n\n static deleteCustomerId() {\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n CookieService.delete(customerIdCookieName)\n } else {\n this.customerId = null\n /* try {\n sessionStorage.removeItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }\n if (CookieService.get(customerIdCookieName) !== null) {\n CookieService.delete(customerIdCookieName)\n }*/\n }\n }\n\n static updateCookieLifetime(forgetCustomerAfterHours: number) {\n if (this.custidStoreMode === CustidStoreMode.cookie && UserService.getCustomerId()) {\n UserService.setCustomerId(\n UserService.getCustomerId(),\n 3600 * forgetCustomerAfterHours,\n )\n }\n }\n\n static switchToCookieModeAfterConsent() {\n this.custidStoreMode = CustidStoreMode.cookie\n const customerId = this.customerId\n /* let customerId = null\n try {\n customerId = sessionStorage.getItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n if (customerId !== null) {\n UserService.saveCustomerId(customerId)\n /* try {\n sessionStorage.removeItem(customerIdCookieName)\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n }\n\n static switchToSessionModeAfterConsentDismiss() {\n const customerId = CookieService.get(customerIdCookieName)\n UserService.deleteCustomerId()\n this.custidStoreMode = CustidStoreMode.session\n if (customerId !== null) {\n this.customerId = customerId\n /* try {\n sessionStorage.setItem(customerIdCookieName, customerId)\n } catch (e) {\n console.log('Session storage blocked.');\n }*/\n }\n }\n\n static touchUser(\n clientId: string,\n locale: string,\n csrfToken?: string,\n context?: MixedObject,\n ): Promise<string> {\n return new Promise((resolve: any) => {\n let source = 'pwa-embed'\n const customerId = this.getCustomerId()\n\n if (!clientId) {\n throw new Error('Client ID is undefined')\n }\n\n if (location.pathname.indexOf('/g/') !== -1) {\n source = 'pwa-c2o'\n }\n\n if (this.loadGaContext) {\n const ga = GaService.getGaValue()\n if (ga !== null) {\n context['_ga'] = ga\n }\n }\n\n // remove one month later 03.03.2021\n if (!customerId && customerId !== 'null') {\n ApiService.createUser({\n clientId,\n source,\n locale,\n csrfToken,\n context,\n debug: '1',\n }).then((data: any) => {\n UserService.setCustomerId(data.custid)\n\n resolve(data.custid)\n })\n } else {\n const currentURL = parseUrlParam(window.location.href, 'curl')\n\n ApiService.validateUser({\n clientId,\n customerId,\n currentURL,\n context,\n })\n .then(() => {\n resolve(customerId)\n })\n .catch(() => {\n ApiService.createUser({\n clientId,\n source,\n locale,\n // csrfToken,\n debug: '2',\n }).then((data: any) => {\n UserService.setCustomerId(data.custid)\n\n resolve(data.custid)\n })\n })\n }\n })\n }\n\n static deleteUser() {\n this.deleteCustomerId()\n /* try {\n sessionStorage.removeItem('ds-times-counter')\n sessionStorage.removeItem('ds-teaser-display')\n } catch (e) {\n console.log('Session storage blocked.')\n }*/\n }\n}\n","export interface WebchatServiceOptions {\n targetWindow: HTMLIFrameElement\n}\n\nexport interface WebchatServiceTriggerOptions {\n successor?: string\n teaserButton?: boolean\n}\n\nexport class WebchatService {\n private targetWindow: HTMLIFrameElement\n\n constructor(options: WebchatServiceOptions) {\n this.targetWindow = options.targetWindow\n }\n\n triggerElement(options: WebchatServiceTriggerOptions) {\n const message: any = {\n successor: options.successor,\n type: 'trigger',\n }\n\n if (options.teaserButton) {\n message.teaserButton = options.teaserButton\n }\n\n this.targetWindow.contentWindow.postMessage(message, '*')\n }\n\n setMinimized(isMinimized: boolean) {\n const message = {\n isMinimized,\n type: 'setMinimized',\n }\n\n this.targetWindow.contentWindow.postMessage(message, '*')\n }\n}\n","import {\n BaseWidgetOptions,\n BaseWidget,\n BaseWidgetDisplayMode\n} from '../core/base-widget'\nimport { config } from '../config/config'\nimport { ActionButtonWidget } from './action-button.widget'\nimport { ActionButton } from '../models'\nimport { MixedObject } from '../types'\n\nexport class ActionButtonGroupWidget extends BaseWidget {\n private buttons: ActionButtonWidget[] = []\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.actionButtonGroupCls\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return 'flex'\n }\n\n addButton(options: MixedObject) {\n const button = new ActionButtonWidget({\n locale: options.locale,\n actionButton: ActionButton.fromJson(options),\n renderTo: this.getBoxElem(),\n app: options.app,\n })\n\n this.buttons.push(button)\n }\n\n getButtons(): ActionButtonWidget[] {\n return this.buttons\n }\n\n clearButtons() {\n this.buttons.forEach((item: ActionButtonWidget) => item.destroy())\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.display = this.getDisplayMode()\n boxElem.style.maxHeight = '147px'\n\n setTimeout(() => {\n boxElem.style.overflowY = 'visible'\n boxElem.style.maxHeight = 'auto'\n }, 500)\n\n super.showNode()\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.overflowY = 'hidden'\n\n setTimeout(() => (boxElem.style.maxHeight = '0'), 250)\n setTimeout(() => (boxElem.style.display = 'none'), 500)\n\n super.hideNode()\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { ActionButton, ActionButtonType } from '../models'\nimport { App } from '../core/app'\n\nexport interface ActionButtonWidgetOptions extends BaseWidgetOptions {\n actionButton: ActionButton\n locale: string\n app: App\n}\n\nexport class ActionButtonWidget extends BaseWidget {\n private actionButton: ActionButton\n private locale: string\n private app: App\n\n constructor(options: ActionButtonWidgetOptions) {\n super(options)\n\n this.setLocale(this.locale)\n }\n\n private bindEvents() {\n if (this.actionButton.getType() === ActionButtonType.quickreply) {\n this.getBoxElem().addEventListener('click', () => {\n this.app.triggerElement({\n successor: this.actionButton.getSuccessor(),\n teaserButton: true,\n })\n })\n }\n\n if (this.actionButton.getType() === ActionButtonType.callback) {\n this.getBoxElem().addEventListener('click', () => {\n const callback = this.actionButton.getCallback()\n callback()\n })\n }\n }\n\n render() {\n super.render()\n\n this.bindEvents()\n }\n\n getBaseCls(): string {\n return config.actionButtonCls\n }\n\n setLocale(locale: string) {\n this.locale = locale\n\n let title = this.actionButton.getTitle(this.locale)\n\n if (!title) {\n title = 'Press me'\n }\n\n this.setContent(title)\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { iconSvg } from '../consts'\n\nexport class ChatButtonWidget extends BaseWidget {\n private isPressed = false\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.toggle()\n })\n }\n\n getBaseCls(): string {\n return config.buttonCls\n }\n\n render() {\n const boxElem = this.getBoxElem()\n\n const iconContainer = document.createElement('div')\n iconContainer.classList.add(config.buttonIconContainerCls)\n iconContainer.innerHTML = iconSvg\n boxElem.appendChild(iconContainer)\n\n boxElem.classList.add(config.buttonLogoCls)\n\n this.bindEvents()\n\n super.render()\n }\n\n toggle(state?: boolean, suppressEvent = false, timeout = 100): void {\n const isPressed = state === undefined ? !this.isPressed : !!state\n\n if (isPressed === this.isPressed) {\n return\n }\n\n this.isPressed = isPressed\n\n if (isPressed) {\n this.getBoxElem().classList.add(config.buttonHiddenCls)\n } else {\n setTimeout(() => {\n this.getBoxElem().classList.remove(config.buttonHiddenCls)\n }, timeout)\n }\n\n if (!suppressEvent) {\n this.fire('toggle', {\n isPressed,\n })\n }\n }\n\n setContent(text: string) {\n super.setContent(text)\n\n if (text) {\n this.getBoxElem().classList.add(config.buttonWithTextCls)\n } else {\n this.getBoxElem().classList.remove(config.buttonWithTextCls)\n }\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface ChatboxWidgetOptions extends BaseWidgetOptions {\n hasExtendedWidth: boolean\n}\n\ntype ChatboxWidgetState = 'loading' | 'ready'\n\nexport class ChatboxWidget extends BaseWidget {\n private hasExtendedWidth = false\n\n constructor(options: ChatboxWidgetOptions) {\n super(options)\n\n this.setState('loading')\n\n if (options.hasExtendedWidth) {\n this.hasExtendedWidth = true\n this.getBoxElem().classList.add(config.chatHasExtendedWidth)\n }\n\n this.on('before:show', () => document.body.classList.add(config.chatIsOpen))\n this.on('before:hide', () =>\n document.body.classList.remove(config.chatIsOpen),\n )\n }\n\n protected showNode() {\n const boxElem = this.getBoxElem()\n\n boxElem.style.zIndex = '30'\n boxElem.style.visibility = 'visible'\n\n setTimeout(() => {\n boxElem.style.opacity = '1'\n boxElem.style.transform = 'translateY(0)'\n })\n }\n\n protected hideNode() {\n const boxElem = this.getBoxElem()\n boxElem.style.opacity = '0'\n boxElem.style.transform = 'translateY(10px)'\n\n setTimeout(() => {\n boxElem.style.zIndex = '-1'\n boxElem.style.visibility = 'hidden'\n }, 100)\n }\n\n getBaseCls(): string {\n return config.chatCls\n }\n\n setState(state: ChatboxWidgetState) {\n if (state === 'loading') {\n this.getBoxElem().classList.add(config.chatLoadingCls)\n }\n\n if (state === 'ready') {\n this.getBoxElem().classList.remove(config.chatLoadingCls)\n }\n }\n\n renderLoader(): HTMLElement {\n const loaderAnimation =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64px\" height=\"64px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\"><g transform=\"rotate(0 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.9166666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(30 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.8333333333333334s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(60 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.75s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(90 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.6666666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(120 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5833333333333334s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(150 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(180 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.4166666666666667s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(210 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.3333333333333333s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(240 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.25s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(270 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.16666666666666666s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(300 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.08333333333333333s\" repeatCount=\"indefinite\"></animate></rect></g><g transform=\"rotate(330 50 50)\"><rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#6a6a6a\"><animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"0s\" repeatCount=\"indefinite\"></animate></rect></g></svg>'\n const loader = document.createElement('div')\n loader.classList.add(config.chatLoaderCls)\n\n const loaderImage = document.createElement('div')\n loaderImage.classList.add(config.chatLoaderImageCls)\n loaderImage.innerHTML = loaderAnimation\n\n loader.appendChild(loaderImage)\n\n return loader\n }\n\n render(renderTo?: HTMLElement) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.chatCls)\n boxElem.appendChild(this.renderLoader())\n\n super.render(renderTo)\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\nexport class ContentWrapperWidget extends BaseWidget {\n protected visible = false\n\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.contentWrapperCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-footer',\n}\n\nexport class FooterWidget extends BaseWidget {\n constructor(options: BaseWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../../core/base-widget'\nimport { config } from '../../config/config'\n\ninterface HeaderCloseButtonWidgetOptions extends BaseWidgetOptions {\n leftCloseButton: boolean\n}\n\nexport class HeaderCloseButtonWidget extends BaseWidget {\n private readonly leftCloseButton: boolean\n\n constructor(options: HeaderCloseButtonWidgetOptions) {\n super(options)\n this.leftCloseButton = options.leftCloseButton\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.fire('click')\n })\n }\n\n render() {\n super.render()\n\n this.bindEvents()\n }\n\n getBaseCls(): string {\n let cls: string = config.headerCloseButtonCls\n if (this.leftCloseButton) {\n cls += ` ${config.headerCloseButtonLeftCls}`\n }\n\n return cls\n }\n}\n","import {\n BaseWidgetOptions,\n BaseWidget,\n BaseWidgetDisplayMode\n} from '../../core/base-widget'\nimport { config } from '../../config/config'\nimport { HeaderCloseButtonWidget } from './header-close-button.widget'\n\ninterface HeaderWidgetOptions extends BaseWidgetOptions {\n leftCloseButton: boolean\n}\n\nexport class HeaderWidget extends BaseWidget {\n private closeButton: HeaderCloseButtonWidget\n private readonly leftCloseButton: boolean\n\n constructor(options: HeaderWidgetOptions) {\n super(options)\n this.leftCloseButton = options.leftCloseButton\n }\n\n getBaseCls(): string {\n return config.headerCls\n }\n\n getDisplayMode(): BaseWidgetDisplayMode {\n return 'flex'\n }\n\n renderCloseButton() {\n this.closeButton = new HeaderCloseButtonWidget({\n renderTo: this.getBoxElem(),\n leftCloseButton: this.leftCloseButton,\n })\n }\n\n getCloseButton(): HeaderCloseButtonWidget {\n return this.closeButton\n }\n\n render(renderTo?: HTMLElement) {\n super.render(renderTo)\n\n this.renderCloseButton()\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-iframe-box',\n crossCls: 'ds-iframe-box__cross',\n}\n\ninterface IframeBoxWidgetOptions extends BaseWidgetOptions {}\n\nexport class IframeBoxWidget extends BaseWidget {\n private loaded = false\n private crossElem: HTMLElement\n private iframe: HTMLIFrameElement | null\n\n constructor(options: IframeBoxWidgetOptions) {\n super(options)\n }\n\n protected hideNode() {\n super.hideNode()\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n\n isLoaded(): boolean {\n return this.loaded\n }\n\n load(url: string): IframeBoxWidget {\n if (!this.iframe) {\n this.iframe = document.createElement('iframe')\n this.iframe.src = url\n this.iframe.scrolling = 'yes'\n this.iframe.frameBorder = '0'\n this.iframe.sandbox.add('allow-same-origin')\n this.iframe.sandbox.add('allow-scripts')\n this.iframe.sandbox.add('allow-forms')\n\n this.getBoxElem().appendChild(this.iframe)\n } else {\n this.iframe.src = url\n }\n\n return this\n }\n\n setContent() {\n throw new Error('Method is not allowed for an iframe')\n }\n\n getContentElem(): null {\n return null\n }\n\n render() {\n this.crossElem = this.createNode()\n this.crossElem.classList.add(config.crossCls)\n this.bindEvents()\n\n this.getBoxElem().appendChild(this.crossElem)\n\n super.render()\n }\n\n bindEvents() {\n this.crossElem.addEventListener('click', (event: MouseEvent) => {\n event.stopPropagation()\n this.iframe.parentNode.removeChild(this.iframe)\n this.iframe = null\n this.hide()\n })\n }\n\n setWidth(width: string) {\n this.getBoxElem().style.width = `${width}px`\n }\n}\n","import { InitialElement } from '../core/app'\nimport { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\nexport interface IframeWidgetOptions extends BaseWidgetOptions {\n host: string\n id: string\n customerId?: string\n initialElement?: InitialElement\n locale?: string\n channel?: string\n}\n\nexport class IframeWidget extends BaseWidget {\n private host: string\n private id: string\n private customerId: string\n private loaded = false\n private initialElement: InitialElement = {\n successor: null,\n suppress: false,\n }\n private locale: string\n private channel: string\n\n constructor(options: IframeWidgetOptions) {\n super(options)\n\n this.initialElement = options.initialElement\n this.channel = options.channel || 'pwa-embed'\n }\n\n getBaseCls(): string {\n return config.iframeCls\n }\n\n getBoxElem(): HTMLIFrameElement {\n return super.getBoxElem() as HTMLIFrameElement\n }\n\n setLoaded(value: boolean) {\n this.loaded = value\n }\n\n isLoaded(): boolean {\n return this.loaded\n }\n\n createNode(): HTMLIFrameElement {\n return document.createElement('iframe')\n }\n\n getViewportWidth(): number {\n return Math.max(\n document.documentElement.clientWidth || 0,\n window.innerWidth || 0,\n )\n }\n\n buildUrl(): string {\n let iframeUrl = `${this.host}?clid=${this.id}&cid=${this.customerId}`\n\n if (this.initialElement.suppress) {\n iframeUrl += '&init=suppress'\n } else if (this.initialElement.successor) {\n iframeUrl += `&init=${this.initialElement.successor}`\n }\n\n if (this.locale) {\n iframeUrl += `&lg=${this.locale}`\n }\n\n iframeUrl += `&source=${this.channel}`\n\n iframeUrl += `&viewport=${this.getViewportWidth()}`\n iframeUrl += `&curl=${location.origin + location.pathname}`\n\n return iframeUrl\n }\n\n load(customerId: string) {\n this.customerId = customerId\n\n if (this.isRendered()) {\n this.getBoxElem().src = this.buildUrl()\n }\n }\n\n setContent() {\n throw new Error('Method is not allowed for an iframe')\n }\n\n getContentElem(): null {\n return null\n }\n\n getInitialElement(): InitialElement {\n return this.initialElement\n }\n\n setInitialElement(initialElement: InitialElement) {\n this.initialElement = initialElement\n }\n}\n","export * from './wrapper.widget'\nexport * from './chatbox.widget'\nexport * from './chat-button.widget'\nexport * from './iframe.widget'\nexport * from './teaser.widget'\nexport * from './unread.widget'\nexport * from './content-wrapper.widget'\nexport * from './action-button.widget'\nexport * from './action-button-group.widget'\nexport * from './whatsapp-button.widget'\nexport * from './whatsapp-window.widget'\nexport * from './iframe-box.widget'\nexport * from './header/header.widget'\nexport * from './footer.widget'\n","import { BaseWidget, BaseWidgetOptions } from '../core/base-widget'\nimport { config } from '../config/config'\nimport { CustidStoreMode } from '../enums';\n\ninterface TeaserWidgetOptions extends BaseWidgetOptions {\n showTeaserOnce: boolean\n hideTeaserAfterTimes: number\n custidStoreMode: CustidStoreMode\n}\n\nexport class TeaserWidget extends BaseWidget {\n private crossElem: HTMLElement\n private showTeaserOnce: boolean\n private hideTeaserAfterTimes: number\n private custidStoreMode: CustidStoreMode\n\n constructor(options: TeaserWidgetOptions) {\n super(options)\n this.custidStoreMode = options.custidStoreMode\n }\n\n getBaseCls(): string {\n return config.teaserCls\n }\n\n render() {\n this.crossElem = this.createNode()\n this.crossElem.classList.add(config.teaserCrossCls)\n\n this.bindEvents()\n\n this.getBoxElem().appendChild(this.crossElem)\n\n super.render()\n }\n\n checkTimes(): boolean {\n if (this.hideTeaserAfterTimes === undefined) {\n return true\n }\n\n let timesCounter = 0\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n let storedTimesCounter = null\n try {\n storedTimesCounter = sessionStorage.getItem('ds-times-counter')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n if (storedTimesCounter !== null) {\n timesCounter = parseInt(storedTimesCounter, 10)\n }\n }\n\n timesCounter += 1\n\n if (timesCounter > this.hideTeaserAfterTimes) {\n return false\n }\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n sessionStorage.setItem('ds-times-counter', timesCounter.toString())\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n\n return true\n }\n\n show(options = { force: false }): void {\n if (options.force) {\n super.show()\n return\n }\n\n if (!this.checkTimes()) {\n this.hideNode()\n return\n }\n\n let teaserDisplay = null\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n teaserDisplay = sessionStorage.getItem('ds-teaser-display')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n if (this.showTeaserOnce && teaserDisplay !== null) {\n return\n }\n\n super.show()\n\n if (this.custidStoreMode === CustidStoreMode.cookie) {\n try {\n sessionStorage.setItem('ds-teaser-display', 'true')\n } catch (e) {\n console.log('Session storage blocked.')\n }\n }\n }\n\n bindEvents() {\n this.crossElem.addEventListener('click', (event: MouseEvent) => {\n event.stopPropagation()\n this.hide()\n })\n\n this.getBoxElem().addEventListener('click', () => this.fire('click'))\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface UnreadWidgetOptions extends BaseWidgetOptions {\n unreadCounter?: number\n}\n\nexport class UnreadWidget extends BaseWidget {\n private unreadCounter = 0\n\n constructor(options: UnreadWidgetOptions) {\n super(options)\n\n if (options.unreadCounter) {\n this.increase(options.unreadCounter)\n }\n }\n\n getBaseCls(): string {\n return config.unreadCls\n }\n\n setCounter(amount: number) {\n if (amount < 1) {\n this.reset()\n } else {\n this.unreadCounter = amount\n this.setContent(this.unreadCounter)\n\n if (!this.isVisible()) {\n this.show()\n }\n }\n }\n\n increase(amount = 1) {\n if (amount < 1) {\n return\n }\n\n this.unreadCounter += amount\n this.setContent(this.unreadCounter)\n\n if (!this.isVisible()) {\n this.show()\n }\n }\n\n reset() {\n this.unreadCounter = 0\n\n if (this.isVisible()) {\n this.hide()\n setTimeout(() => this.setContent(this.unreadCounter), this.animationDelay)\n }\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\n\nconst config = {\n baseCls: 'ds-whatsapp-button',\n activeCls: 'ds-whatsapp-button--active',\n bwCls: 'ds-whatsapp-button--bw',\n slideCls: 'ds-whatsapp-button--slide',\n}\n\ninterface WhatsappButtonWidgetOptions extends BaseWidgetOptions {\n blackWhiteStyle?: boolean\n slideWaButton?: boolean\n}\n\nexport class WhatsappButtonWidget extends BaseWidget {\n private isPressed = false\n private blackWhiteStyle = false\n private slideWaButton = false\n\n constructor(options: WhatsappButtonWidgetOptions) {\n super(options)\n }\n\n private bindEvents() {\n this.getBoxElem().addEventListener('click', () => {\n this.toggle()\n })\n }\n\n render() {\n if (this.blackWhiteStyle) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.bwCls)\n }\n\n if (this.slideWaButton) {\n const boxElem = this.getBoxElem()\n boxElem.classList.add(config.slideCls)\n }\n\n super.render()\n\n this.bindEvents()\n }\n\n toggle(state?: boolean, suppressEvent = false): void {\n const isPressed = state === undefined ? !this.isPressed : !!state\n\n if (isPressed === this.isPressed) {\n return\n }\n\n this.isPressed = isPressed\n\n if (isPressed) {\n this.getBoxElem().classList.add(config.activeCls)\n } else {\n this.getBoxElem().classList.remove(config.activeCls)\n }\n\n if (!suppressEvent) {\n this.fire('toggle', {\n isPressed,\n })\n }\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n}\n","import { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { ApiService, UserService } from '../services'\nimport { MixedObject } from '../types'\n\nconst config = {\n baseCls: 'ds-whatsapp-window',\n hideLoadingCls: 'ds-whatsapp-window--hide-loading',\n loadedCls: 'ds-whatsapp-window--loaded',\n titleCls: 'ds-whatsapp-window__title',\n textCls: 'ds-whatsapp-window__text',\n textLinkCls: 'ds-whatsapp-window__text-link',\n textLinkMobileCls: 'ds-whatsapp-window__text-link-mobile',\n qr: 'ds-whatsapp-window__qr',\n linkCls: 'ds-whatsapp-window__link',\n linkTestCls: 'ds-whatsapp-window__link-text',\n}\n\nconst texts = {\n en: {\n title: 'Use WhatsApp',\n description: 'Scan the QR code with your phone',\n linkText: 'or click the link below',\n linkMobileText: 'Click the button below to connect WhatsApp',\n link: 'Open WhatsApp',\n },\n de: {\n title: 'WhatsApp',\n description: 'QR-Code mit dem Smartphone scannen',\n linkText: 'auf dem Computer auch mit diesem Link',\n linkMobileText: 'Klicke den Button um WhatsApp zu öffnen',\n link: 'WhatsApp öffnen',\n },\n}\n\nconst getText = (locale: string, key: string) => {\n let lg = locale\n\n if (lg !== 'de' && lg !== 'en') {\n lg = 'en'\n }\n\n return texts[lg][key]\n}\n\ninterface WhatsappWindowWidgetOptions extends BaseWidgetOptions {\n clientId: string\n locale?: string\n}\n\nexport class WhatsappWindowWidget extends BaseWidget {\n private isLoaded = false\n private clientId: string\n private waSvg: string\n private waLink: string\n private locale = 'en'\n\n constructor(options: WhatsappWindowWidgetOptions) {\n super(options)\n\n this.clientId = options.clientId\n\n if (options.locale) {\n this.locale = options.locale\n }\n\n this.on('before:show', () => {\n this.loadQR()\n })\n }\n\n private loadQR() {\n if (!this.isLoaded) {\n this.isLoaded = true\n\n ApiService.getWhatsappLink(\n this.clientId,\n UserService.getCustomerId(),\n ).then((response: MixedObject) => {\n this.waLink = response.waLink\n this.waSvg = response.waSvg\n this.renderContent()\n\n this.addCls(config.hideLoadingCls)\n\n setTimeout(() => {\n this.addCls(config.loadedCls)\n this.removeCls(config.hideLoadingCls)\n }, 250)\n })\n }\n }\n\n private renderContent() {\n const title = `<div class=\"${config.titleCls}\">${getText(\n this.locale,\n 'title',\n )}</div>`\n const description = `<div class=\"${config.textCls}\">${getText(\n this.locale,\n 'description',\n )}</div>`\n const qr = `<div class=\"${config.qr}\">${this.waSvg}</div>`\n const linkText = `<div class=\"${config.textLinkCls}\">${getText(\n this.locale,\n 'linkText',\n )}</div>`\n const linkMobileText = `<div class=\"${config.textLinkMobileCls}\">${getText(\n this.locale,\n 'linkMobileText',\n )}</div>`\n const link = `<a class=\"${config.linkCls}\" href=\"${\n this.waLink\n }\" target=\"_blank\">\n <span class=\"${config.linkTestCls}\">${getText(this.locale, 'link')}</span>\n </a>`\n\n this.setContent(title + description + qr + linkText + linkMobileText + link)\n }\n\n getBaseCls(): string {\n return config.baseCls\n }\n\n setLocale(locale: string) {\n this.locale = locale\n\n if (this.isLoaded) {\n this.renderContent()\n }\n }\n}\n","import { ChatPosition, AppTheme } from '../core/app'\nimport { BaseWidgetOptions, BaseWidget } from '../core/base-widget'\nimport { config } from '../config/config'\n\ninterface WrapperWidgetOptions extends BaseWidgetOptions {\n position: ChatPosition\n theme: AppTheme\n direction: 'rtl' | 'ltr'\n baseCustomCls?: string\n}\n\nexport class WrapperWidget extends BaseWidget {\n private position: ChatPosition\n private theme: AppTheme\n private direction: 'rtl' | 'ltr' = 'ltr'\n private baseCustomCls: string\n\n constructor(options: WrapperWidgetOptions) {\n super(options)\n }\n\n getBaseCls(): string {\n return config.wrapperCls\n }\n\n setPosition(position: ChatPosition) {\n this.position = position\n\n const boxElem = this.getBoxElem()\n\n boxElem.classList.remove(config.wrapperPositionLeftCls)\n boxElem.classList.remove(config.wrapperPositionRightCls)\n\n boxElem.classList.add(\n position === ChatPosition.left\n ? config.wrapperPositionLeftCls\n : config.wrapperPositionRightCls,\n )\n }\n\n setTheme(theme: AppTheme): void {\n if (!(theme in AppTheme)) {\n return\n }\n\n this.theme = theme\n\n const boxElem = this.getBoxElem()\n const themeCls =\n config[`theme${theme.charAt(0).toUpperCase() + theme.slice(1)}`]\n\n boxElem.classList.remove(config.themeRound)\n boxElem.classList.remove(config.themeTile)\n boxElem.classList.add(themeCls)\n }\n\n render() {\n this.setPosition(this.position)\n this.setTheme(this.theme)\n\n if (this.direction === 'rtl') {\n this.getBoxElem().classList.add(config.wrapperDirectionRtlCls)\n }\n\n if (this.baseCustomCls) {\n this.getBoxElem().classList.add(this.baseCustomCls)\n }\n\n super.render()\n }\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { createFacade } from './core/facade'\nimport { App, AppOptions } from './core/app'\n\nlet facade = null\nconst instance = (options?: AppOptions) => {\n if (facade && !facade.isDestroyed()) {\n return facade\n }\n\n facade = createFacade(new App(options))\n return facade\n}\n\nexport { instance }\n"],"names":[],"sourceRoot":""}
@@ -47,7 +47,7 @@ var ActionButtonNormalizer = /** @class */ (function () {
47
47
  function ActionButtonNormalizer() {
48
48
  }
49
49
  ActionButtonNormalizer.normalize = function (data) {
50
- var locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs'];
50
+ var locales = ['en', 'de', 'fr', 'it', 'ru', 'ar', 'nl', 'cz', 'hu', 'ro', 'es', 'da', 'pl', 'cs', 'sv'];
51
51
  var result = {
52
52
  type: data.type,
53
53
  successor: data.successor,
@@ -1 +1 @@
1
- {"version":3,"file":"action-button.js","sourceRoot":"","sources":["../../src/scripts/models/action-button.ts"],"names":[],"mappings":";;;AAEA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED;IAWE,sBAAY,OAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAExB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAClC,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC5C,CAAC;IACH,CAAC;IAEM,qBAAQ,GAAf,UAAgB,IAAiB;QAC/B,IAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAE7D,OAAO,IAAI,YAAY,CAAC,cAAc,CAAC,CAAA;IACzC,CAAC;IAED,+BAAQ,GAAR,UAAS,MAAc;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAA;QAC5C,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,mCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,8BAAO,GAAP;QACE,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,kCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,oCAAY;AAwDzB;IAAA;IAyBA,CAAC;IAxBQ,gCAAS,GAAhB,UAAiB,IAAiB;QAChC,IAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QACpG,IAAM,MAAM,GAAgB;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,EAAE;SACT,CAAA;QAED,OAAO,CAAC,OAAO,CAAC,UAAC,MAAc;YAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QAC3C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,wDAAsB"}
1
+ {"version":3,"file":"action-button.js","sourceRoot":"","sources":["../../src/scripts/models/action-button.ts"],"names":[],"mappings":";;;AAEA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,6CAAyB,CAAA;IACzB,yCAAqB,CAAA;AACvB,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAED;IAWE,sBAAY,OAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QAExB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QAClC,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAC5C,CAAC;IACH,CAAC;IAEM,qBAAQ,GAAf,UAAgB,IAAiB;QAC/B,IAAM,cAAc,GAAG,sBAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAE7D,OAAO,IAAI,YAAY,CAAC,cAAc,CAAC,CAAA;IACzC,CAAC;IAED,+BAAQ,GAAR,UAAS,MAAc;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAA;QAC5C,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,mCAAY,GAAZ;QACE,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED,8BAAO,GAAP;QACE,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,kCAAW,GAAX;QACE,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IACH,mBAAC;AAAD,CAAC,AAtDD,IAsDC;AAtDY,oCAAY;AAwDzB;IAAA;IAyBA,CAAC;IAxBQ,gCAAS,GAAhB,UAAiB,IAAiB;QAChC,IAAM,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1G,IAAM,MAAM,GAAgB;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,EAAE;SACT,CAAA;QAED,OAAO,CAAC,OAAO,CAAC,UAAC,MAAc;YAC7B,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QACjC,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAA;QAC3C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IACH,6BAAC;AAAD,CAAC,AAzBD,IAyBC;AAzBY,wDAAsB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dialogshift-webchat-sdk",
3
- "version": "2.9.6",
3
+ "version": "2.9.7",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/dialogshift/dialogshift-webchat-sdk"