{"version":3,"file":"js/widget-dbc6a36b288e505fdb76.js","mappings":"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","sources":["webpack://citymessenger-web/./app/webpacker/src/javascripts/components/widget/Message.tsx","webpack://citymessenger-web/./app/webpacker/src/javascripts/components/widget/WidgetCanvas.tsx","webpack://citymessenger-web/./app/webpacker/src/javascripts/components/widget/WidgetApp.tsx","webpack://citymessenger-web/./app/webpacker/src/javascripts/services/widget-message-service.ts","webpack://citymessenger-web/./app/webpacker/packs/widget.tsx","webpack://citymessenger-web/./app/webpacker/src/javascripts/ie_check.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/services/messageHelpers.tsx","webpack://citymessenger-web/./app/webpacker/src/javascripts/services/translations.ts","webpack://citymessenger-web/./node_modules/moment/locale/ sync ^\\.\\/.*$"],"sourcesContent":["import React from 'react';\nimport Linkify from 'react-linkify';\nimport { defaultAvatarForUser, formatDate } from 'src/javascripts/services/messageHelpers';\nimport { ChatMessage, Shop } from 'src/javascripts/shared/chat';\n\ninterface Props {\n message: ChatMessage;\n shop: Shop;\n}\n\nexport default ({ message, shop }: Props) => (\n
\n
\n \n {`${shop.name}\n \n \n \n \n
\n
{shop.name}
\n
\n {message.image && {message.text}}\n
\n {message.text}\n
\n
{formatDate(message.createdAt)}
\n
\n
\n);\n","import { throttle } from 'lodash';\nimport React from 'react';\n\nconst SWITCH_DEVICE_THRESHOLDS = [1.3, 1, 0.65];\n\ninterface Props {\n setChatClassNames: any;\n}\n\ninterface State {\n device: string;\n direction: string;\n}\n\nexport default class WidgetCanvas extends React.Component {\n state = {\n device: 'phone',\n direction: 'portrait',\n };\n\n componentDidMount() {\n window.addEventListener('resize', throttle(this.resize, 250).bind(this));\n\n this.resize();\n }\n\n componentDidUpdate() {\n this.props.setChatClassNames(`${this.state.device}-${this.state.direction}`);\n }\n\n resize() {\n const ration = window.innerHeight / window.innerWidth;\n\n if (ration > SWITCH_DEVICE_THRESHOLDS[0]) {\n this.setState({\n device: 'phone',\n direction: 'portrait',\n });\n } else if (ration > SWITCH_DEVICE_THRESHOLDS[1]) {\n this.setState({\n device: 'tablet',\n direction: 'portrait',\n });\n } else if (ration > SWITCH_DEVICE_THRESHOLDS[2]) {\n this.setState({\n device: 'tablet',\n direction: 'landscape',\n });\n } else {\n this.setState({\n device: 'phone',\n direction: 'landscape',\n });\n }\n }\n\n render() {\n return (\n <>\n
\n
\n \"mobile\n
\n

Live

\n \n
\n
\n
\n \n );\n }\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport Message from 'src/javascripts/components/widget/Message';\nimport WidgetCanvas from 'src/javascripts/components/widget/WidgetCanvas';\nimport t from 'src/javascripts/services/translations';\nimport WidgetMessageService from 'src/javascripts/services/widget-message-service';\nimport { Shop } from 'src/javascripts/shared/chat';\n\ninterface Props {\n messageService: WidgetMessageService;\n cityMessengerLogo: string;\n shops: Shop[];\n renderCanvas: boolean;\n transparentBackground: boolean;\n}\n\nexport default ({ messageService, shops, cityMessengerLogo, renderCanvas, transparentBackground }: Props) => {\n const [messages, setMessages] = useState(messageService.messages);\n const [chatClassNames, setChatClassNames] = useState('');\n let hasScrolled = false;\n\n const scrollWrapper = useRef(null);\n\n function scroll() {\n const $scrollWrapper = $(scrollWrapper.current);\n const atBottom = $scrollWrapper.scrollTop() + $scrollWrapper.height() >= $scrollWrapper.children().height();\n /* istanbul ignore next */\n if (atBottom && !hasScrolled) {\n messageService.loadOlderMessages();\n hasScrolled = true;\n }\n }\n\n useEffect(() => {\n messageService.subscribe(setMessages);\n scroll();\n return () => messageService.unsubscribe();\n });\n\n return (\n
\n \n \"City\n

{t('broadcast.widget.intro')}

\n
\n
\n
\n {!messages.length &&

{t('broadcast.widget.no_messages')}

}\n {messages.map(message => message.sender.id === shop.id)} key={message.id}/>)}\n
\n
\n {renderCanvas && }\n
\n );\n};\n","import { Subject, Subscription } from 'rxjs';\nimport { transformToChatMessage } from 'src/javascripts/services/messageHelpers';\nimport { ChatMessage, MultipartMessage, Shop } from 'src/javascripts/shared/chat';\n\nexport default class WidgetMessageService {\n messages: ChatMessage[];\n private subject: Subject;\n private subscription?: Subscription;\n private apiPath: string;\n private channels: Pusher.Channel[];\n\n constructor(shops: Shop[], private pusher: Pusher.Pusher) {\n this.apiPath = `/widget_api/messages?${shops.map(shop => `shop_ids[]=${shop.id}`).join('&')}`;\n this.channels = shops.map(shop => this.pusher.subscribe(`public-broadcasts-${shop.id}`));\n this.subject = new Subject();\n this.messages = [];\n }\n\n subscribe(observer: (messages: ChatMessage[]) => void) {\n this.channels.forEach(channel => channel.bind('new_message', this.addNewMessage, this));\n this.subscription = this.subject.subscribe(observer);\n }\n\n unsubscribe() {\n this.channels.forEach(channel => channel.unbind('new_message', this.addNewMessage, this));\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n\n async loadOlderMessages() {\n const olderMessages: ChatMessage[] = await fetch(this.apiPath)\n .then(response => this.parseResponse(response))\n .then(messages => messages.filter(message => !this.messages.map(message => message.id).includes(message.id)))\n .then(messages => messages.map(transformToChatMessage))\n .catch(() => null);\n if (olderMessages?.length) {\n this.messages = [...this.messages, ...olderMessages];\n this.subject.next(this.messages);\n }\n }\n\n addNewMessage(message: MultipartMessage) {\n const messageIds = this.messages.map(message => message.id);\n if (!messageIds.includes(message.id)) {\n this.messages = [transformToChatMessage(message), ...this.messages];\n this.subject.next(this.messages);\n }\n }\n\n private parseResponse(response: Response) {\n const regex = /<([^>]*)>; rel=\"next\"/;\n const match = response.headers.get('Link')?.match(regex);\n if (match) {\n this.apiPath = match[1];\n }\n return response.json();\n }\n}\n","import 'core-js/es/map';\nimport 'core-js/es/set';\nimport 'core-js/es/weak-map';\nimport Pusher from 'pusher-js';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport WidgetApp from 'src/javascripts/components/widget/WidgetApp';\nimport { setupTranslations } from 'src/javascripts/services/translations';\nimport WidgetMessageService from 'src/javascripts/services/widget-message-service';\nimport '../src/javascripts/ie_check';\n\nconst loadWidgetApp = () => {\n const config = window.CityMessenger.widgetConfig;\n const pusher = config.pusher = new Pusher(config.pusherKey, { cluster: 'eu', forceTLS: true });\n const messageService = new WidgetMessageService(config.shops, pusher);\n const renderCanvas = config.renderCanvas !== 'false';\n const transparentBackground = config.transparentBackground === 'true';\n setupTranslations();\n\n ReactDOM.render(\n (\n \n ),\n document.getElementById('widget-app'),\n );\n\n if (transparentBackground) {\n document.body.classList.add('bg-transparent');\n }\n};\n\nconst showIEWarning = () => {\n document.querySelector('.ie-warning').classList.add('needed');\n};\n\ndocument.addEventListener('DOMContentLoaded', window.CityMessenger.isIE ? showIEWarning : loadWidgetApp);\n","window.CityMessenger.isIE = /*@cc_on!@*/false || !!document.documentMode;\n","import moment from 'moment';\nimport React from 'react';\nimport t from 'src/javascripts/services/translations';\nimport {\n ChatMessage,\n ChatUser,\n Conversations,\n InlineMessagePart,\n MultipartMessage,\n MultipartPlannedBroadcastChatMessage,\n MultipartPlannedBroadcastChatMessagePerCategory,\n PlannedBroadcastChatMessage,\n UrlMessagePart,\n} from 'src/javascripts/shared/chat';\n\ntype AnyMessage = ChatMessage | PlannedBroadcastChatMessage;\n\nexport interface TransformableMessage extends Partial, Partial {\n}\n\nexport function transformToChatMessage(multipartMessage: TransformableMessage): T {\n const textParts = multipartMessage.parts.filter(part =>\n part.partType === 'inline' && part.payload.type === 'text/plain');\n\n const textPart = textParts[0] as InlineMessagePart;\n const quotedTextPart = (textParts.length > 1) ? textParts[1] as InlineMessagePart : undefined;\n\n const imagePart = multipartMessage.parts.find(part => part.partType === 'url') as UrlMessagePart;\n\n const text = textPart ? textPart.payload.content : '';\n const quote = quotedTextPart ? quotedTextPart.payload.content : '';\n const image = imagePart ? imagePart.payload.url : undefined;\n\n const { id, createdAt, sender, room, planned, plannedId, referencedCouponId } = multipartMessage;\n return { id, createdAt, sender, room, text, quote, image, planned, plannedId, referencedCouponId } as any;\n}\n\nexport function transformToChatMessages(multipartMessages: TransformableMessage[]) {\n return multipartMessages.map((multipartMessage) => transformToChatMessage(multipartMessage));\n}\n\nexport function transformPlannedMessagesToConversations(plannedMessages: MultipartPlannedBroadcastChatMessagePerCategory): Conversations {\n return Object.entries(plannedMessages).reduce(((conversations, [key, messages]) => {\n conversations[key] = { messages, unreadMessageIds: [] };\n return conversations;\n }), {});\n}\n\nexport function formatDate(time: string | Date) {\n moment.locale('de-ch');\n return moment(time).format('Do MMM HH:mm');\n}\n\nexport function defaultAvatarForUser(user: ChatUser) {\n return (user && user.avatar && user.avatar.thumb.url) || window.CityMessenger.avatarFallbackImage;\n}\n\nexport function notReady(message: string) {\n return (\n
\n
\n
{message}
\n
\n
\n );\n}\n\nexport const getQuotaMessage = (sentMessages: number, totalMessages: number, scope: 'bc' | 'dm') => {\n if (scope === 'bc' && totalMessages === 0) {\n return null;\n }\n\n if (totalMessages !== Infinity) {\n return `${sentMessages} / ${totalMessages} ${t(`chat.quota.${scope}`)}`;\n } else {\n return '';\n }\n};\n\nexport const selectTeaser = (messages: ChatMessage[]) => {\n for (let index = messages.length - 1; index >= 0; index--) {\n if (!isPlanned(messages[index]) || isSending(messages[index])) {\n return messages[index];\n }\n }\n};\n\nexport const isPlanned = (message: AnyMessage) => {\n return (message as PlannedBroadcastChatMessage).planned;\n};\n\nexport const isSending = (message: AnyMessage) => {\n return isPlanned(message) && Date.parse((message as any).createdAt) < Date.now();\n};\n\nexport const uniqMessageComparator = (message: AnyMessage, otherMessage: AnyMessage): boolean => {\n return message.id === otherMessage.id || (\n (message as PlannedBroadcastChatMessage).plannedId && (message as PlannedBroadcastChatMessage).plannedId === otherMessage.id\n ) || (\n (otherMessage as PlannedBroadcastChatMessage).plannedId && (otherMessage as PlannedBroadcastChatMessage).plannedId === message.id\n );\n};\n","import i18next from 'i18next';\n\nexport const setupTranslations = () => {\n i18next.init({\n fallbackLng: 'de',\n lng: 'de',\n initImmediate: false,\n resources: {\n de: {\n translation: window.CityMessenger.translations,\n },\n },\n interpolation: {\n prefix: '%{',\n suffix: '}',\n },\n parseMissingKeyHandler: key => {\n throw Error(`Translation missing: ${key}`);\n },\n });\n window.CityMessenger.i18next = i18next;\n};\n\nconst t = (...args): string => {\n return window.CityMessenger.i18next.t(...args);\n};\nexport default t;\n","var map = {\n\t\"./af\": 2786,\n\t\"./af.js\": 2786,\n\t\"./ar\": 867,\n\t\"./ar-dz\": 4130,\n\t\"./ar-dz.js\": 4130,\n\t\"./ar-kw\": 6135,\n\t\"./ar-kw.js\": 6135,\n\t\"./ar-ly\": 6440,\n\t\"./ar-ly.js\": 6440,\n\t\"./ar-ma\": 7702,\n\t\"./ar-ma.js\": 7702,\n\t\"./ar-sa\": 6040,\n\t\"./ar-sa.js\": 6040,\n\t\"./ar-tn\": 7100,\n\t\"./ar-tn.js\": 7100,\n\t\"./ar.js\": 867,\n\t\"./az\": 1083,\n\t\"./az.js\": 1083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 8338,\n\t\"./bg.js\": 8338,\n\t\"./bm\": 7438,\n\t\"./bm.js\": 7438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 6225,\n\t\"./bn-bd.js\": 6225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 1560,\n\t\"./bo.js\": 1560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 622,\n\t\"./bs.js\": 622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 877,\n\t\"./cv.js\": 877,\n\t\"./cy\": 7373,\n\t\"./cy.js\": 7373,\n\t\"./da\": 4780,\n\t\"./da.js\": 4780,\n\t\"./de\": 9740,\n\t\"./de-at\": 217,\n\t\"./de-at.js\": 217,\n\t\"./de-ch\": 894,\n\t\"./de-ch.js\": 894,\n\t\"./de.js\": 9740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 837,\n\t\"./el.js\": 837,\n\t\"./en-au\": 8348,\n\t\"./en-au.js\": 8348,\n\t\"./en-ca\": 7925,\n\t\"./en-ca.js\": 7925,\n\t\"./en-gb\": 2243,\n\t\"./en-gb.js\": 2243,\n\t\"./en-ie\": 6436,\n\t\"./en-ie.js\": 6436,\n\t\"./en-il\": 7207,\n\t\"./en-il.js\": 7207,\n\t\"./en-in\": 4175,\n\t\"./en-in.js\": 4175,\n\t\"./en-nz\": 6319,\n\t\"./en-nz.js\": 6319,\n\t\"./en-sg\": 1662,\n\t\"./en-sg.js\": 1662,\n\t\"./eo\": 2915,\n\t\"./eo.js\": 2915,\n\t\"./es\": 5655,\n\t\"./es-do\": 5251,\n\t\"./es-do.js\": 5251,\n\t\"./es-mx\": 6112,\n\t\"./es-mx.js\": 6112,\n\t\"./es-us\": 1146,\n\t\"./es-us.js\": 1146,\n\t\"./es.js\": 5655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 7763,\n\t\"./eu.js\": 7763,\n\t\"./fa\": 6959,\n\t\"./fa.js\": 6959,\n\t\"./fi\": 1897,\n\t\"./fi.js\": 1897,\n\t\"./fil\": 2549,\n\t\"./fil.js\": 2549,\n\t\"./fo\": 4694,\n\t\"./fo.js\": 4694,\n\t\"./fr\": 4470,\n\t\"./fr-ca\": 3049,\n\t\"./fr-ca.js\": 3049,\n\t\"./fr-ch\": 2330,\n\t\"./fr-ch.js\": 2330,\n\t\"./fr.js\": 4470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 9295,\n\t\"./ga.js\": 9295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 8794,\n\t\"./gl.js\": 8794,\n\t\"./gom-deva\": 7884,\n\t\"./gom-deva.js\": 7884,\n\t\"./gom-latn\": 3168,\n\t\"./gom-latn.js\": 3168,\n\t\"./gu\": 5349,\n\t\"./gu.js\": 5349,\n\t\"./he\": 4206,\n\t\"./he.js\": 4206,\n\t\"./hi\": 94,\n\t\"./hi.js\": 94,\n\t\"./hr\": 316,\n\t\"./hr.js\": 316,\n\t\"./hu\": 2138,\n\t\"./hu.js\": 2138,\n\t\"./hy-am\": 1423,\n\t\"./hy-am.js\": 1423,\n\t\"./id\": 9218,\n\t\"./id.js\": 9218,\n\t\"./is\": 135,\n\t\"./is.js\": 135,\n\t\"./it\": 626,\n\t\"./it-ch\": 150,\n\t\"./it-ch.js\": 150,\n\t\"./it.js\": 626,\n\t\"./ja\": 9183,\n\t\"./ja.js\": 9183,\n\t\"./jv\": 4286,\n\t\"./jv.js\": 4286,\n\t\"./ka\": 2105,\n\t\"./ka.js\": 2105,\n\t\"./kk\": 7772,\n\t\"./kk.js\": 7772,\n\t\"./km\": 8758,\n\t\"./km.js\": 8758,\n\t\"./kn\": 9282,\n\t\"./kn.js\": 9282,\n\t\"./ko\": 3730,\n\t\"./ko.js\": 3730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 3291,\n\t\"./ky.js\": 3291,\n\t\"./lb\": 6841,\n\t\"./lb.js\": 6841,\n\t\"./lo\": 5466,\n\t\"./lo.js\": 5466,\n\t\"./lt\": 7010,\n\t\"./lt.js\": 7010,\n\t\"./lv\": 7595,\n\t\"./lv.js\": 7595,\n\t\"./me\": 9861,\n\t\"./me.js\": 9861,\n\t\"./mi\": 5493,\n\t\"./mi.js\": 5493,\n\t\"./mk\": 5966,\n\t\"./mk.js\": 5966,\n\t\"./ml\": 7341,\n\t\"./ml.js\": 7341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 370,\n\t\"./mr.js\": 370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 1237,\n\t\"./ms-my.js\": 1237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 2126,\n\t\"./mt.js\": 2126,\n\t\"./my\": 6165,\n\t\"./my.js\": 6165,\n\t\"./nb\": 4924,\n\t\"./nb.js\": 4924,\n\t\"./ne\": 6744,\n\t\"./ne.js\": 6744,\n\t\"./nl\": 3901,\n\t\"./nl-be\": 9814,\n\t\"./nl-be.js\": 9814,\n\t\"./nl.js\": 3901,\n\t\"./nn\": 3877,\n\t\"./nn.js\": 3877,\n\t\"./oc-lnc\": 2135,\n\t\"./oc-lnc.js\": 2135,\n\t\"./pa-in\": 5858,\n\t\"./pa-in.js\": 5858,\n\t\"./pl\": 4495,\n\t\"./pl.js\": 4495,\n\t\"./pt\": 9520,\n\t\"./pt-br\": 7971,\n\t\"./pt-br.js\": 7971,\n\t\"./pt.js\": 9520,\n\t\"./ro\": 6459,\n\t\"./ro.js\": 6459,\n\t\"./ru\": 1793,\n\t\"./ru.js\": 1793,\n\t\"./sd\": 950,\n\t\"./sd.js\": 950,\n\t\"./se\": 7930,\n\t\"./se.js\": 7930,\n\t\"./si\": 124,\n\t\"./si.js\": 124,\n\t\"./sk\": 4249,\n\t\"./sk.js\": 4249,\n\t\"./sl\": 4985,\n\t\"./sl.js\": 4985,\n\t\"./sq\": 1104,\n\t\"./sq.js\": 1104,\n\t\"./sr\": 9131,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 9131,\n\t\"./ss\": 5893,\n\t\"./ss.js\": 5893,\n\t\"./sv\": 8760,\n\t\"./sv.js\": 8760,\n\t\"./sw\": 1172,\n\t\"./sw.js\": 1172,\n\t\"./ta\": 7333,\n\t\"./ta.js\": 7333,\n\t\"./te\": 3110,\n\t\"./te.js\": 3110,\n\t\"./tet\": 2095,\n\t\"./tet.js\": 2095,\n\t\"./tg\": 7321,\n\t\"./tg.js\": 7321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 9005,\n\t\"./tk.js\": 9005,\n\t\"./tl-ph\": 5768,\n\t\"./tl-ph.js\": 5768,\n\t\"./tlh\": 9444,\n\t\"./tlh.js\": 9444,\n\t\"./tr\": 2397,\n\t\"./tr.js\": 2397,\n\t\"./tzl\": 8254,\n\t\"./tzl.js\": 8254,\n\t\"./tzm\": 1106,\n\t\"./tzm-latn\": 699,\n\t\"./tzm-latn.js\": 699,\n\t\"./tzm.js\": 1106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 7691,\n\t\"./uk.js\": 7691,\n\t\"./ur\": 3795,\n\t\"./ur.js\": 3795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 588,\n\t\"./uz-latn.js\": 588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 9822,\n\t\"./vi.js\": 9822,\n\t\"./x-pseudo\": 4378,\n\t\"./x-pseudo.js\": 4378,\n\t\"./yo\": 5805,\n\t\"./yo.js\": 5805,\n\t\"./zh-cn\": 3839,\n\t\"./zh-cn.js\": 3839,\n\t\"./zh-hk\": 5726,\n\t\"./zh-hk.js\": 5726,\n\t\"./zh-mo\": 9807,\n\t\"./zh-mo.js\": 9807,\n\t\"./zh-tw\": 4152,\n\t\"./zh-tw.js\": 4152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;"],"names":["message","shop","className","href","id","target","src","defaultAvatarForUser","alt","name","image","text","onLoad","Linkify","properties","rel","formatDate","createdAt","SWITCH_DEVICE_THRESHOLDS","WidgetCanvas","device","direction","window","addEventListener","throttle","this","resize","bind","props","setChatClassNames","state","ration","innerHeight","innerWidth","setState","React","messageService","shops","cityMessengerLogo","renderCanvas","transparentBackground","useState","messages","setMessages","chatClassNames","hasScrolled","scrollWrapper","useRef","scroll","$scrollWrapper","$","current","scrollTop","height","children","loadOlderMessages","useEffect","subscribe","unsubscribe","onScroll","onWheel","t","ref","length","map","Message","find","sender","key","WidgetMessageService","pusher","apiPath","join","channels","subject","Subject","observer","forEach","channel","addNewMessage","subscription","unbind","undefined","fetch","then","response","parseResponse","filter","includes","transformToChatMessage","olderMessages","next","messageIds","match","headers","get","json","document","CityMessenger","isIE","querySelector","classList","add","config","widgetConfig","Pusher","pusherKey","cluster","forceTLS","setupTranslations","ReactDOM","WidgetApp","getElementById","body","documentMode","multipartMessage","textParts","parts","part","partType","payload","type","textPart","quotedTextPart","imagePart","content","quote","url","room","planned","plannedId","referencedCouponId","transformToChatMessages","multipartMessages","transformPlannedMessagesToConversations","plannedMessages","Object","entries","reduce","conversations","unreadMessageIds","time","moment","format","user","avatar","thumb","avatarFallbackImage","notReady","getQuotaMessage","sentMessages","totalMessages","scope","Infinity","selectTeaser","index","isPlanned","isSending","Date","parse","now","uniqMessageComparator","otherMessage","i18next","fallbackLng","lng","initImmediate","resources","de","translation","translations","interpolation","prefix","suffix","parseMissingKeyHandler","Error","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","resolve","module","exports"],"sourceRoot":""}