{"version":3,"file":"rctWidgets-d5655f40441695352020.js","mappings":"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","sources":["webpack://@whistleout/webui/./Areas/Widgets/React/js/components/BroadbandAddressSearch.tsx","webpack://@whistleout/webui/./Areas/Widgets/React/js/index.js","webpack://@whistleout/webui/./Areas/Widgets/js/common/utils/EventHelper.js","webpack://@whistleout/webui/./Areas/Shared/js/vendor/react.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/common.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/index.ts","webpack://@whistleout/webui/./Areas/Widgets/js/common/widget.ts"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\n\nimport type { Address } from '../../../../Shared/js/@types/Address';\nimport { AddressSearchHandle } from '../../../../Shared/React/js/components/addressSearch/AddressAutocomplete';\nimport AddressSearch, {\n dispatchAddressChangedEvent\n} from '../../../../Shared/React/js/components/addressSearch/AddressSearch';\nimport type { BroadbandAddressSearchModel } from '../../../js/@types/BroadbandAddressSearchModel';\n\ntype Props = BroadbandAddressSearchModel;\n\nconst BroadbandAddressSearch = (props: Props) => {\n const [address, setAddress] = useState
(null);\n const ref = useRef();\n\n useEffect(() => {\n if (props.autoFillAddress) {\n wo$.ajax({\n url: props.getCurrentAddressUrl,\n type: 'POST',\n success: result => {\n if (result) {\n setAddress(result);\n dispatchAddressChangedEvent({\n sender: ref.current,\n address: result\n });\n }\n }\n });\n }\n }, [props.autoFillAddress, props.getCurrentAddressUrl]);\n\n return (\n \n \n \n );\n};\n\nexport default BroadbandAddressSearch;\n","import { initReact } from '../../../Shared/js/vendor/react';\nimport * as WidgetComponents from './components';\n\nfunction initWidgetComponents() {\n initReact();\n window['WidgetComponents'] = window['WidgetComponents'] || WidgetComponents;\n}\n\ninitWidgetComponents();\n","export function addEventListener(elements, events, handler) {\n _addOrRemoveListener('add', elements, events, handler);\n}\n\nexport function removeEventListener(elements, events, handler) {\n _addOrRemoveListener('remove', elements, events, handler);\n}\n\nexport function _addOrRemoveListener(action, elements, events, handler) {\n const eventsArray = events.split(' ');\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n\n for (let j = 0; j < eventsArray.length; j++) {\n const event = eventsArray[j];\n\n if (action === 'add') {\n element.addEventListener(event, handler);\n } else {\n element.removeEventListener(event, handler);\n }\n }\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nexport function initReact() {\n if (window === undefined) {\n return;\n }\n\n window.React = window.React || React;\n window.ReactDOM = window.ReactDOM || ReactDOM;\n}\n","/* globals ga */\n\nimport type { WoDataLayerItem } from '../../../Shared/js/@types/WoDataLayer';\nimport { WhistleOutContext } from '../../../Shared/js/common/common';\n\nexport class WhistleOutContextWidget extends WhistleOutContext {\n constructor() {\n super();\n this.scope = 'widget';\n }\n\n pushGtmEvent(category: string, action: string, label: string, value: { nonInteraction: boolean }) {\n try {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const data = analyticsClientSideData.data;\n\n this.pushDataLayerItem({\n event: `wo_${category}_${action}`.toLowerCase(),\n customCategory: category,\n customAction: action,\n customLabel: label,\n customValue: isNaN(value as never) ? undefined : +value,\n customCountry: data.country,\n customProductAreaId: data.productAreaId\n });\n } catch (err) {\n this.Rollbar.error(`WhistleOut.pushGtmEvent: category=${category}, action=${action}, label=${label}`, err);\n }\n }\n\n sendPageView(url: string) {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const config = analyticsClientSideData.config;\n\n try {\n if (config.trackPageImpression) {\n if ((!url || url.length <= 0) && analyticsClientSideData.data)\n url = analyticsClientSideData.data.trackingUrl;\n\n wo$.each(config.accounts, function (index, account) {\n ga('create', account.accountNumber, { name: account.trackerId, useAmpClientId: true }, 'auto');\n if (account.linkIdTracking) {\n ga(account.trackerId + '.require', 'linkid');\n }\n ga(account.trackerId + '.set', 'anonymizeIp', true);\n if (!url || url.length <= 0) {\n ga(account.trackerId + '.send', 'pageview');\n } else {\n ga(account.trackerId + '.send', 'pageview', {\n page: url\n });\n }\n });\n }\n } catch (err) {\n this.Rollbar.error(`WhistleOut.sendPageView url=${url}`, err);\n }\n }\n\n pushGtmWidgetPageView(url: string) {\n try {\n const analyticsClientSideData = this.getAnalyticsClientSideData();\n const customCountry = analyticsClientSideData.data.country;\n\n if (!url || url.length <= 0) {\n url = analyticsClientSideData.data.trackingUrl;\n }\n\n if (!url || url.length <= 0) url = `${location.pathname}${location.search}`;\n\n const dataLayerValue = {\n event: 'widgetCustomPageView',\n customUrl: url,\n customCountry: customCountry\n };\n\n this.pushDataLayerItem(dataLayerValue);\n } catch (err) {\n this.Rollbar.error('WhistleOut.ushGtmPageView', err);\n }\n }\n\n trackPageView(url?: string) {\n try {\n this.sendPageView(url);\n this.pushGtmWidgetPageView(url);\n } catch (err) {\n this.Rollbar.error(`WhistleOut.trackPageView url=${url}`, err);\n }\n }\n\n encodeHtml(str: string) {\n const el = document.createElement('span');\n el.append(document.createTextNode(str));\n return el.innerHTML;\n }\n\n async init() {\n if (this.isInitRequested) {\n return;\n }\n\n await this.initBase();\n }\n}\n","import '../../../Shared/js/polyfills';\n\nimport { WhistleOutContextWidget as WhistleOutContext } from './common';\nimport { widgetInit } from './widget';\n\n(async () => {\n if (window.WhistleOut.isInitRequested) {\n return;\n }\n\n await import(/* webpackMode: 'eager' */ '../vendor');\n\n // Some properties of window.WhistleOut can be initialised\n // by inline scripts before this main initialisation,\n // so we need to merge it\n window.WhistleOut = Object.assign(new WhistleOutContext(), window.WhistleOut || {});\n\n await window.WhistleOut.init();\n widgetInit();\n})();\n","import { pushDataLayerItemWidget } from '../../../Shared/js/utils/datalayer';\nimport * as EventHelper from './utils/EventHelper';\n\nexport function getWidget() {\n return wo$('#widget');\n}\n\nexport function widgetInit() {\n wo$(function () {\n const widget = getWidget();\n if (!widget.length) return;\n\n const controller = {\n resizeTaskId: null,\n resizeTaskAmpId: null,\n init: function () {\n const amp = widget.data('amp').toLowerCase() === 'true';\n const url = widget.data('url');\n\n const startTime = Date.now();\n pushDataLayerItemWidget({\n event: 'widget_load_begin',\n widget_placement: 'iframe'\n });\n\n const el = widget[0];\n\n if (amp) {\n EventHelper.addEventListener([window, el, el.parentElement], 'resize', this.resizeAmp.bind(this));\n EventHelper.addEventListener([window], 'load', this.resizeAmp.bind(this));\n } else {\n EventHelper.addEventListener([window, el, el.parentElement], 'resize', this.resize.bind(this));\n EventHelper.addEventListener([window], 'load', this.resize.bind(this));\n }\n\n wo$.ajax({\n context: this,\n type: 'GET',\n url: url,\n contentType: 'text/html'\n })\n .done(function (data) {\n widget.find('#widget-content').html(data);\n\n WhistleOut.applyPopover();\n WhistleOut.showTracking();\n\n if (WhistleOut.initWidget) {\n WhistleOut.initWidget();\n }\n })\n .fail(function (jqXHR, textStatus, error) {\n widget.find('#widget-content').html(widget.find('#widget-error').html());\n\n WhistleOut.Rollbar.error(\n `ajax error in Widget.js requesting ${url}, status: ${textStatus}, error: ${error}, responseText: ${jqXHR.responseText}`\n );\n\n pushDataLayerItemWidget({\n event: 'widget_error',\n widget_placement: 'iframe',\n error: error\n });\n })\n .always(() => {\n widget.find('#widget-error').remove();\n widget.find('#widget-loading').remove();\n\n const endTime = Date.now();\n pushDataLayerItemWidget({\n event: 'widget_load_end',\n widget_placement: 'iframe',\n duration: (endTime - startTime) / 1000\n });\n\n if (amp) {\n this.resizeAmp();\n } else {\n this.resize();\n }\n });\n },\n\n resize: function () {\n cancelIdleCallback(this.resizeTaskId);\n this.resizeTaskId = requestIdleCallback(this._resize.bind(this), {\n timeout: 300\n });\n },\n\n _resize: function () {\n window.parent.postMessage(\n {\n sentinel: 'whistleout-widget',\n url: document.location.href,\n height: widget.height()\n },\n '*'\n );\n },\n\n resizeAmp: function () {\n cancelIdleCallback(this.resizeTaskAmpId);\n this.resizeTaskAmpId = requestIdleCallback(this._resizeAmp.bind(this), {\n timeout: 300\n });\n },\n\n _resizeAmp: function () {\n window.parent.postMessage(\n {\n sentinel: 'amp',\n type: 'embed-size',\n height: widget.height()\n },\n '*'\n );\n }\n };\n\n controller.init();\n });\n}\n"],"names":["props","address","setAddress","useState","ref","useRef","useEffect","autoFillAddress","wo$","ajax","url","getCurrentAddressUrl","type","success","result","sender","current","AddressSearch","apiKey","countryCode","queryDelay","inputClassName","inputProps","types","placeholder","text","addressSearchPlaceHolder","initReact","window","WidgetComponents","addEventListener","elements","events","handler","action","eventsArray","split","i","length","element","j","event","_addOrRemoveListener","undefined","React","ReactDOM","WhistleOutContextWidget","constructor","super","this","scope","pushGtmEvent","category","label","value","data","getAnalyticsClientSideData","pushDataLayerItem","toLowerCase","customCategory","customAction","customLabel","customValue","isNaN","customCountry","country","customProductAreaId","productAreaId","err","Rollbar","error","sendPageView","analyticsClientSideData","config","trackPageImpression","trackingUrl","each","accounts","index","account","ga","accountNumber","name","trackerId","useAmpClientId","linkIdTracking","page","pushGtmWidgetPageView","location","pathname","search","dataLayerValue","customUrl","trackPageView","encodeHtml","str","el","document","createElement","append","createTextNode","innerHTML","init","isInitRequested","initBase","WhistleOut","Object","assign","widget","getWidget","widgetInit","resizeTaskId","resizeTaskAmpId","amp","startTime","Date","now","widget_placement","parentElement","resizeAmp","bind","resize","context","contentType","done","find","html","applyPopover","showTracking","initWidget","fail","jqXHR","textStatus","responseText","always","remove","endTime","duration","cancelIdleCallback","requestIdleCallback","_resize","timeout","parent","postMessage","sentinel","href","height","_resizeAmp"],"sourceRoot":""}