{"version":3,"file":"chunks/b6e62e9f7ca443.js","mappings":"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","sources":["webpack:///./resources/js/common/streamHub.ts","webpack:///./resources/js/common/webinar-signup-form-with-consent.ts"],"sourcesContent":["import axios from 'axios';\nimport stgConfig from \"../../../config\";\nimport Environment from '../buyer-experience/common/environment';\n\nconst STAGING_ENDPOINT = `${window.location.hostname.indexOf('qa-wac') > -1 ? 'https://qa-wac.internal.atlassian.com' : stgConfig.stgWacInternalUrl}/endpoint`;\n\nconst BXP_EXPRESS_ENDPOINT = {\n [Environment.production()]: 'https://www.atlassian.com/endpoint',\n [Environment.staging()]: STAGING_ENDPOINT,\n [Environment.dev()]: STAGING_ENDPOINT,\n};\n\n/**\n * Submit a post request to bxp express /webinarsignup/updatestreamhub endpoint\n * this endpoint should take the email address and emit an event to streamhub\n * @param {*} userEmail\n */\n\nexport const postEmailToStreamHub = (userEmail: string) => {\n const environment = Environment.getEnvironment();\n return axios.post(`${BXP_EXPRESS_ENDPOINT[environment]}/webinarsignup/updatestreamhub`, {\n user_email: userEmail\n });\n};\n\nexport const postObjectToStreamhubContact = (obj, endpoint, responseHandler, errorHandler, state) => {\n console.log('endpoint', endpoint)\n const environment = Environment.getEnvironment();\n return axios.post(`${BXP_EXPRESS_ENDPOINT[environment]}/streamhub/${endpoint}`, obj)\n .then(\n (response) => {\n if (responseHandler) {\n new responseHandler(response, state);\n }\n },\n (error) => {\n if (errorHandler) {\n new errorHandler(error, state);\n }\n }\n );\n}","import * as $ from \"jquery\";\nimport { ConsentHelper as ConsentHelperV2 } from './ConsentHubV2';\nimport { postEmailToStreamHub } from './streamHub';\nimport storage from \"../utils/storage\";\nimport url from '../utils/url';\nimport 'jquery-validation';\nimport '@types/jquery.validation';\n\n$.validator.methods.email = function( value: string, element: any ) {\n return this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n}\n\nexport default class WebinarSignupFormWithConsent {\n domRoot: JQuery;\n params: any;\n form: JQuery;\n consentHubPromise?: Promise;\n isInGDPRLocal: boolean;\n currLanguage: any;\n formLabels: any;\n addCompanyName: any;\n\n constructor(domRoot: HTMLElement, params: { currLanguage: any; formLabels: any; addCompanyName: any; }) {\n this.domRoot = $(domRoot);\n this.params = { ...params };\n\n // Component elements\n this.form = $('.webinar-signup-component--form', this.domRoot);\n this.isInGDPRLocal = false;\n this.currLanguage = params.currLanguage;\n this.formLabels = params.formLabels;\n this.addCompanyName = params.addCompanyName;\n this.init();\n }\n\n async init() {\n this.bindEvents();\n this.consentHubPromise = (new ConsentHelperV2(this.params, this.form)).configPromise;\n this.isInGDPRLocal = !this.form.find('.gdpr-checkbox input[type=\"checkbox\"]').attr('checked');\n this.bindFormValidation();\n }\n\n bindFormValidation() {\n var self = this;\n\n // Bind validation rules to our form using jQuery Validate functions\n var rules = {\n email: {\n required: true,\n email: true\n },\n firstname: {\n required: true\n },\n lastname: {\n required: true\n },\n job_title: {\n required: true\n },\n country: {\n required: true\n },\n company_size: {\n required: true\n }\n };\n\n if (this.currLanguage === 'ja') {\n rules.std1 = {\n required: true\n }\n }\n if (this.addCompanyName) {\n rules.company = {\n required: true\n }\n }\n\n this.form.on('submit', (event, force) => {\n this.form.validate({\n rules: rules,\n messages: {\n firstname: this.formLabels.required,\n lastname: this.formLabels.required,\n country: this.formLabels.required,\n std1: this.formLabels.required,\n job_title: this.formLabels.missingJob,\n company: this.formLabels.missingCompany,\n company_size: this.formLabels.required,\n email: this.formLabels.invalidEmail\n }\n });\n if (!force) {\n event.preventDefault();\n const formData = new FormData(event.target);\n const hasAltEmailField = formData.has('alternate_email');\n const isEmptyAltEmail = hasAltEmailField ? this.form.find('#alternate_email').val() === \"\" : true;\n if (this.form.valid() && isEmptyAltEmail) {\n if(hasAltEmailField) {\n formData.delete('alternate_email');\n }\n self.consentHubPromise?.then((consentHub: { submitForm: (arg0: () => void, arg1: () => void) => void; }) => {\n consentHub.submitForm(() => self.submitSuccess(formData), () => self.submitError());\n }).catch(() => {\n self.submitError();\n });\n }\n }\n });\n\n }\n\n submitSuccess(formData: FormData) {\n const self = this;\n const userEmail = formData.get('email');\n const webinarKey = formData.get('key');\n const eventId = formData.get('eventid');\n\n postEmailToStreamHub(userEmail).then(() => {\n self.sendTrackingToGrowAnalytics(webinarKey, eventId);\n self.form.trigger('submit', [true])\n });\n if (self.params.saveCookie == \"yes\") {\n storage.setCookie(self.params.cookieKey, self.params.cookieValue, 60, 'lax');\n }\n }\n\n submitError() {\n if ($('.error--server', this.domRoot).length === 0) {\n this.form.after(`
${this.params.serverError}
`);\n }\n }\n // @TODO -- the ftl template is outdated with hardcoded IDs that should be made dynamic (i.e. uuids)\n bindEvents() {\n this.updatePartnerRef();\n setTimeout(function() {\n $(\".region\").change(function() {\n $(\"#webinarkey\").attr('value', $(this).attr('data-key'));\n $(\"#eventid\").attr('value', $(this).attr('value'));\n });\n $(\"#webinarkey\").attr('value', $(\".region\").first().attr('data-key'));\n $(\"#eventid\").attr('value', $(\".region\").first().attr('value'));\n }, 10);\n this.onCountrySelected();\n this.onCompanySizeSelected();\n }\n\n updatePartnerRef() {\n var urlParams = url.getUrlParams() || {};\n var param = urlParams[\"partnerref\"] || false;\n\n if (param) {\n $(\"#partnerref\").val(param);\n }\n }\n\n sendTrackingToGrowAnalytics(webinarKey: any, eventId: any){\n if(window.GROW){\n const tracking = new window.GROW.Analytics('SCI');\n tracking.send('on24_form_complete', {'webinar_key': webinarKey, 'event_id': eventId});\n }\n }\n\n onCountrySelected() {\n const countryDropdown = this.form.find('#country');\n countryDropdown.on('change', () => {\n const optVal= $(\"#country option:selected\").val();\n if(optVal) {\n countryDropdown.css('color', 'rgba(0, 0, 0, 1)');\n } else {\n countryDropdown.css('color', 'rgba(0, 0, 0, 0.5)');\n }\n const additionalParams = {\n forceShowConsentMessaging: !this.isInGDPRLocal && this.isCountrySelectedGDPR(optVal),\n isAllowSetCustomLocale: !this.isInGDPRLocal,\n selectedLocale: this.params.gDPRCountries[optVal]\n };\n this.params = { ...this.params, ...additionalParams };\n\n this.form.find('.gdpr-checkbox').remove();\n this.consentHubPromise = (new ConsentHelperV2(this.params, this.form)).configPromise;\n });\n }\n\n isCountrySelectedGDPR(optVal: string | number | string[] | undefined) {\n const listOfGDPRCountries = Object.keys(this.params.gDPRCountries);\n return listOfGDPRCountries.includes(optVal);\n }\n\n onCompanySizeSelected(){\n const companySizeDropdown = this.form.find('#company_size');\n companySizeDropdown.on('change', () => {\n const optVal= $(\"#company_size option:selected\").val();\n if(optVal) {\n companySizeDropdown.css('color', 'rgba(0, 0, 0, 1)');\n } else {\n companySizeDropdown.css('color', 'rgba(0, 0, 0, 0.5)');\n }\n })\n }\n\n}\n"],"names":["STAGING_ENDPOINT","window","location","hostname","indexOf","stgConfig","BXP_EXPRESS_ENDPOINT","Environment","postEmailToStreamHub","userEmail","environment","axios","user_email","postObjectToStreamhubContact","obj","endpoint","responseHandler","errorHandler","state","console","log","then","response","error","i","$","value","element","this","optional","test","WebinarSignupFormWithConsent","domRoot","params","form","isInGDPRLocal","currLanguage","formLabels","addCompanyName","init","bindEvents","consentHubPromise","ConsentHelperV2","configPromise","find","attr","bindFormValidation","self","rules","email","required","firstname","lastname","job_title","country","company_size","std1","company","on","event","force","validate","messages","missingJob","missingCompany","invalidEmail","preventDefault","formData","FormData","target","hasAltEmailField","has","isEmptyAltEmail","val","valid","consentHub","submitForm","submitSuccess","submitError","get","webinarKey","eventId","sendTrackingToGrowAnalytics","trigger","saveCookie","storage","cookieKey","cookieValue","length","after","serverError","updatePartnerRef","setTimeout","change","first","onCountrySelected","onCompanySizeSelected","param","url","GROW","Analytics","send","countryDropdown","optVal","css","additionalParams","forceShowConsentMessaging","isCountrySelectedGDPR","isAllowSetCustomLocale","selectedLocale","gDPRCountries","remove","Object","keys","includes","companySizeDropdown"],"sourceRoot":""}