{"version":3,"file":"js/application-831d5b313772eae02a98.js","mappings":"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","sources":["webpack://citymessenger-web/./app/webpacker/src/javascripts/charts/BlockingBroadcastGraph.ts","webpack://citymessenger-web/./app/webpacker/src/javascripts/message_counter.ts","webpack://citymessenger-web/./app/webpacker/src/javascripts/widget_settings.ts","webpack://citymessenger-web/./app/webpacker/src/javascripts/panelToggles.ts","webpack://citymessenger-web/./app/webpacker/src/javascripts/collapse_faqs.ts","webpack://citymessenger-web/./app/webpacker/packs/application.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/coupons.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/dynamic_button.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/google_analytics.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/recaptcha.js","webpack://citymessenger-web/./app/webpacker/src/javascripts/submit_file_upload.ts"],"sourcesContent":["import t from 'src/javascripts/services/translations';\n\nexport class BlockingBroadcastGraph {\n daysSinceFirstBlocking: string[];\n broadcastMessagesPerDay: Array<[]>;\n blockingUsersCountPerDay: number[];\n columnChartElement: HTMLElement;\n\n chartOptions = {\n title: t('statistics.charts.labels.title'),\n colors: ['#0fe70f'],\n vAxis: {\n title: t('statistics.charts.labels.blockings'),\n },\n legend: { position: 'none' as google.visualization.ChartLegendPosition },\n hAxis: {\n gridlines: { color: 'transparent' },\n },\n annotations: {\n alwaysOutside: true,\n textStyle: {\n color: '#009dff',\n },\n },\n explorer: {\n actions: ['dragToZoom', 'rightClickToReset'],\n axis: 'horizontal', keepInBounds: true },\n };\n\n constructor() {\n const $blockingUsersChart = $('[data-blocking-users-count-per-day]');\n this.columnChartElement = $blockingUsersChart[0];\n this.blockingUsersCountPerDay = $blockingUsersChart.data('blocking-users-count-per-day');\n this.daysSinceFirstBlocking = $blockingUsersChart.data('days-since-first-blocking').map(day => new Date(day));\n this.broadcastMessagesPerDay = $blockingUsersChart.data('broadcast-messages-per-day');\n }\n\n init = () => {\n const maxMessagesCount = Math.max(...this.broadcastMessagesPerDay.map(messages => messages.length));\n const chart = new google.visualization.ColumnChart(this.columnChartElement);\n google.visualization.events.addListener(chart, 'error', error => {\n chart.clearChart();\n console.error(error);\n });\n chart.draw(this.getData(maxMessagesCount), this.chartOptions);\n }\n\n getRows(maxMessagesCount) {\n return this.daysSinceFirstBlocking.map((day, index) => {\n const broadcastMessages = this.broadcastMessagesPerDay[index];\n const labelsAndText = [];\n broadcastMessages.forEach(broadcastMessage => labelsAndText.push('BN', broadcastMessage));\n while (labelsAndText.length < maxMessagesCount * 2) {\n labelsAndText.push(undefined, undefined);\n }\n return [day, this.blockingUsersCountPerDay[index], ...labelsAndText];\n });\n }\n\n private getData(maxMessagesCount) {\n const data = new google.visualization.DataTable();\n data.addColumn('date', 'day');\n data.addColumn('number', t('statistics.charts.labels.blockings'));\n Array.from({ length: maxMessagesCount }, () => {\n data.addColumn({ type: 'string', role: 'annotation' });\n data.addColumn({ type: 'string', role: 'annotationText' });\n });\n data.addRows(this.getRows(maxMessagesCount));\n return data;\n }\n}\n","export default class MessageCounter {\n maxLength: string;\n messageInput: JQuery;\n placeholderElement: JQuery;\n currentLength: number;\n\n attach(inputElement: JQuery, placeholderElement: JQuery) {\n this.maxLength = inputElement.attr('maxlength');\n this.messageInput = inputElement;\n this.placeholderElement = placeholderElement;\n this.messageInput.on('keyup', () => {\n this.renderLength();\n });\n this.renderLength();\n }\n\n renderLength() {\n this.currentLength = (this.messageInput.val() as string).length;\n this.placeholderElement.text(`${this.currentLength}/${this.maxLength}`);\n }\n}\n\nexport const onReady = () => {\n $('[data-message-counter]').each((index, obj) => {\n const placeholderElement = $(obj);\n const inputElement = $('#' + placeholderElement.attr('data-message-counter'));\n new MessageCounter().attach(inputElement, placeholderElement);\n });\n};\n\n$(document).ready(onReady);\n","export default class WidgetSettings {\n appViewElement: JQuery;\n allMessagesElement: JQuery;\n codeElement: JQuery;\n iframeElement: JQuery;\n baseUrl: string;\n shopId: number;\n hubId: number;\n\n constructor(appViewElement: JQuery, allMessagesElement: JQuery,\n codeElement: JQuery, iframeElement: JQuery) {\n\n this.appViewElement = appViewElement;\n this.allMessagesElement = allMessagesElement;\n this.codeElement = codeElement;\n this.iframeElement = iframeElement;\n\n this.baseUrl = iframeElement.attr('src').split('&')[0];\n this.shopId = parseInt(iframeElement.attr('src').split('shop_id=')[1], 10);\n this.hubId = iframeElement.data('hub-id');\n\n appViewElement.change(() => { this.updateUrl(); });\n allMessagesElement.change(() => { this.updateUrl(); });\n }\n\n updateUrl() {\n let url: string = this.baseUrl;\n let width: number = 300;\n let height: number = 550;\n\n if (!this.allMessagesElement.is(':checked')) {\n url += '&shop_id=' + this.shopId;\n } else {\n url += '&hub_id=' + this.hubId;\n }\n\n if (!this.appViewElement.is(':checked')) {\n width = 360;\n height = 480;\n url += '&canvas=false';\n }\n\n this.codeElement.text(``);\n this.iframeElement.attr('src', url);\n this.iframeElement.attr('width', width);\n this.iframeElement.attr('height', height);\n }\n}\n\nexport const onReady = (): WidgetSettings => {\n if (!$('#widget-settings-iframe').length) { return; }\n return new WidgetSettings($('#widget-settings-app-view'), $('#widget-settings-all-messages'),\n $('#widget-settings-code'), $('#widget-settings-iframe'));\n};\n\n$(document).ready(onReady);\n","export default function onReady() {\n const parent = $('[data-toggle=\"section\"]').first();\n\n if (!parent.length) {\n return;\n }\n\n const key = parent.attr('id');\n const sections = parent.next().find(parent.data('toggle'));\n const activateSection = (index: number) => {\n sections.removeClass('active');\n $(sections[index]).addClass('active');\n };\n const buttons = parent.find('button');\n const activateButton = (index: number) => {\n buttons.removeClass('btn-primary').addClass('btn-secondary');\n $(buttons[index]).removeClass('btn-secondary').addClass('btn-primary');\n };\n const openIndex = Number(sessionStorage.getItem(key)) || 0;\n activateSection(openIndex);\n activateButton(openIndex);\n\n $(sections[openIndex]).find('.error_explanation').addClass('keep');\n parent.next().find('.error_explanation:not(.keep)').remove();\n\n buttons.each((index, btn) => {\n $(btn).on('click', () => {\n activateButton(index);\n activateSection(index);\n sessionStorage.setItem(key, ''+index);\n });\n });\n}\n\n$(document).ready(onReady);\n","export default function initShowFaqClickListener() {\n $('[data-show-faq]').on('click', (event) => {\n const broadcastCategory = $(event.target).data('show-faq');\n ($(`#faq-${broadcastCategory}`) as any).collapse('show');\n location.href = `#faq-${broadcastCategory}-title`;\n return false;\n });\n}\n\n$(initShowFaqClickListener);\n","import 'core-js/stable';\nimport 'regenerator-runtime/runtime';\nimport Rails from 'rails-ujs';\nimport 'bootstrap/dist/js/bootstrap';\n\nimport { setupTranslations } from \"../src/javascripts/services/translations\";\nimport { BlockingBroadcastGraph } from \"../src/javascripts/charts/BlockingBroadcastGraph\";\n\nRails.start();\nsetupTranslations();\nwindow.$ = jQuery;\nrequire.context('../images', true);\n\nimport \"chartkick/chart.js\"\nimport '../../../node_modules/highcharts';\nimport '../../webpacker/src/javascripts/ie_check';\nimport '../../webpacker/src/javascripts/components/messages/Messenger';\nimport '../../webpacker/src/javascripts/dynamic_button';\nimport '../../webpacker/src/javascripts/message_counter';\nimport '../../webpacker/src/javascripts/widget_settings';\nimport '../../webpacker/src/javascripts/panelToggles';\nimport '../../webpacker/src/javascripts/submit_file_upload';\nimport '../src/javascripts/collapse_faqs';\nimport '../src/javascripts/recaptcha';\nimport '../src/javascripts/google_analytics';\nimport '../src/javascripts/coupons';\nimport 'controllers';\n\nconst initCharts = () => {\n google.charts.load('current', {packages: ['corechart'], language: 'de'});\n google.charts.setOnLoadCallback(new BlockingBroadcastGraph().init);\n};\n\n$(document).ready(() => {\n if ($('[data-blocking-users-count-per-day]').length) {\n initCharts();\n }\n\n if ($('#profile-panel').length) {\n const tab = location.hash.replace(/^#/, '');\n $('button[data-settings=\"' + tab + '\"]').trigger('click');\n }\n});\n","$(document).ready(() => {\n $('[data-coupon-book]').on('change', (event) => {\n $('[data-external-shop-coupon-book]').each(function () {\n this.value = event.target.value;\n });\n });\n});\n","$(document).ready(() => {\n $('#broadcast_message_schedule_for_collapse')\n .on('shown.bs.collapse', () => {\n $('#submit-button').val($('#when_scheduled').text())\n })\n .on('hidden.bs.collapse', () => {\n $('#submit-button').val($('#when_not_scheduled').text())\n });\n})\n","if (CityMessenger.googleAnalyticsId) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(['js', new Date()]);\n window.dataLayer.push(['config', CityMessenger.googleAnalyticsId, {'anonymize_ip': true}]);\n}\n","$(document).ready(() => {\n if (typeof(RecaptchaKey) !== 'undefined') {\n $('[data-recaptcha]').submit(function (event) {\n grecaptcha.ready(function () {\n grecaptcha.execute(RecaptchaKey, { action: 'new_contact_request' })\n .then(function (token) {\n var hiddenTag = $('');\n hiddenTag.val(token);\n $(event.target).append(hiddenTag);\n event.target.submit();\n });\n });\n return false;\n });\n }\n});\n","$(() => {\n $('#shop_shop_images')\n .on('change', () => {\n $('#shop_image_upload').trigger('submit');\n });\n});\n"],"names":["BlockingBroadcastGraph","title","t","colors","vAxis","legend","position","hAxis","gridlines","color","annotations","alwaysOutside","textStyle","explorer","actions","axis","keepInBounds","maxMessagesCount","Math","max","broadcastMessagesPerDay","map","messages","length","chart","google","visualization","ColumnChart","columnChartElement","events","addListener","error","clearChart","console","draw","getData","chartOptions","$blockingUsersChart","$","this","blockingUsersCountPerDay","data","daysSinceFirstBlocking","day","Date","index","broadcastMessages","labelsAndText","forEach","broadcastMessage","push","undefined","DataTable","addColumn","Array","from","type","role","addRows","getRows","MessageCounter","inputElement","placeholderElement","maxLength","attr","messageInput","on","renderLength","currentLength","val","text","document","ready","each","obj","attach","WidgetSettings","appViewElement","allMessagesElement","codeElement","iframeElement","baseUrl","split","shopId","parseInt","hubId","change","updateUrl","url","width","height","is","parent","first","key","sections","next","find","activateSection","removeClass","addClass","buttons","activateButton","openIndex","Number","sessionStorage","getItem","remove","btn","setItem","event","broadcastCategory","target","collapse","location","href","Rails","setupTranslations","window","jQuery","require","charts","load","packages","language","setOnLoadCallback","init","tab","hash","replace","trigger","value","CityMessenger","googleAnalyticsId","dataLayer","RecaptchaKey","submit","grecaptcha","execute","action","then","token","hiddenTag","append"],"sourceRoot":""}