{"version":3,"file":"chunks/534f72500ca912.js","mappings":"4UA+GA,QA1GMA,WACJ,WAAaC,EAAeC,I,4FAAQ,SAClCC,KAAKF,cAAgBG,EAAEH,GACvBE,KAAKD,OAASA,EACdC,KAAKE,YAAcC,EAAAA,EAAAA,iBACnBH,KAAKI,KAAO,kBAEZ,IAAMC,EAAUF,EAAAA,EAAAA,MACVG,EAAcH,EAAAA,EAAAA,UAGdI,EAAuB,GAC7BA,EAHuBJ,EAAAA,EAAAA,cAGgB,qCACvCI,EAAqBD,GAArB,UAA0CE,OAAOC,SAASC,SAASC,QAAQ,WAAa,EAAI,wCAA0CC,EAAAA,EAAAA,kBAAtI,aACAL,EAAqBF,GAAkBE,EAAqBD,GAE5DN,KAAKa,SAAWN,EAAqBP,KAAKE,aAAeF,KAAKI,KAE9DJ,KAAKc,KAAOb,EAAE,IAAD,OAAKD,KAAKD,OAAOgB,SAC9Bf,KAAKgB,YAAcf,EAAE,IAAD,OAAKD,KAAKD,OAAOkB,gBACrCjB,KAAKkB,iBAAmBjB,EAAE,IAAD,OAAKD,KAAKD,OAAOoB,qBAC1CnB,KAAKoB,aAAenB,EAAE,IAAD,OAAKD,KAAKD,OAAOsB,YACtCrB,KAAKsB,MAAQrB,EAAE,SAAUD,KAAKF,eAC9BE,KAAKuB,YAAc,GACnBvB,KAAKwB,YAAc,GACnBxB,KAAKyB,aAAe,GACpBzB,KAAK0B,a,+CAGP,WAAc,WACZ1B,KAAKgB,YAAYW,GAAG,UAAU,SAAAC,GAC5B,EAAKL,YAAcK,EAAMC,OAAOC,MAChC,EAAKZ,iBAAiBa,IAAI,EAAKC,2BAEjChC,KAAKkB,iBAAiBS,GAAG,SAAS,SAAAC,GAChC,EAAKJ,YAAcI,EAAMC,OAAOC,MAChCF,EAAMC,OAAOC,MAAQ,EAAKE,0BAE5BhC,KAAKc,KAAKa,GAAG,UAAU,SAAAC,GACrBA,EAAMK,iBACF,EAAKC,WACP,EAAKC,SAAS,EAAKV,cAEnB,EAAKW,e,kCAKX,WAEE,OAAOC,EAAAA,EAAAA,GAAa,CAACC,QADVtC,KACwBuB,YAAagB,MADrCvC,KACiDwB,aAAc,c,sBAG5E,WACE,IAAIU,GAAW,EACXM,GAAkBC,EAAAA,EAAAA,GAAYzC,KAAKwB,YAAaxB,KAAKuB,YAAa,CAAEmB,UAAU,IAQlF,MAPyB,KAArB1C,KAAKuB,YACPvB,KAAKyB,aAAezB,KAAKD,OAAO4C,iBACtBH,EAAgBI,MAG1BV,GAAW,EAFXlC,KAAKyB,aAAezB,KAAKD,OAAO8C,iBAI3BX,I,sBAGT,SAAUY,GACR9C,KAAKsB,MAAMyB,KAAKD,K,gCAGlB,WACE9C,KAAKc,KAAKkC,SAAS,YACnBhD,KAAKoB,aAAa6B,YAAY,c,qBAGhC,WAAW,WACLC,EAAO,CACT,QAAWlD,KAAKD,OAAOoD,QACvB,QAAWnD,KAAKuB,YAChB,YAAevB,KAAKwB,aAEtB4B,MAAMpD,KAAKa,SAAU,CACnBwC,OAAQ,OACRC,QAAS,CACP,eAAgB,oBAElBC,KAAMC,KAAKC,UAAUP,KAEtBQ,MAAK,SAAAC,GAAQ,OAAIA,EAASC,UAC1BF,MAAK,SAAAG,GACJ,IAAKA,EAAOC,QACV,MAAMD,EAER,EAAKE,wBAZP,OAcO,SAAAzC,GACL,IAAIwB,EAAU,EAAK/C,OAAOiE,aACtB1C,EAAMA,QAERwB,EAAUxB,EAAMA,OAElB,EAAKa,SAASW,W,sEArGdjD","sources":["webpack:///./resources/js/components/specific/sms-form.ts"],"sourcesContent":["import { formatNumber, parseNumber } from 'libphonenumber-js'\nimport Environment from '../../common/environment';\nimport stgConfig from \"../../../../config\";\nimport * as $ from \"jquery\";\n\nclass SmsForm {\n constructor (componentRoot, params) {\n this.componentRoot = $(componentRoot);\n this.params = params;\n this.environment = Environment.getEnvironment();\n this.path = '/texter/process';\n\n const DEV_ENV = Environment.dev();\n const STAGING_ENV = Environment.staging();\n const PRODUCTION_ENV = Environment.production();\n\n const BXP_EXPRESS_ENDPOINT = {};\n BXP_EXPRESS_ENDPOINT[PRODUCTION_ENV] = 'https://www.atlassian.com/endpoint';\n BXP_EXPRESS_ENDPOINT[STAGING_ENV] = `${window.location.hostname.indexOf('qa-wac') > -1 ? 'https://qa-wac.internal.atlassian.com' : stgConfig.stgWacInternalUrl}/endpoint`;\n BXP_EXPRESS_ENDPOINT[DEV_ENV] = BXP_EXPRESS_ENDPOINT[STAGING_ENV];\n\n this.endpoint = BXP_EXPRESS_ENDPOINT[this.environment] + this.path;\n\n this.form = $(`#${this.params.formId}`);\n this.selectInput = $(`#${this.params.selectInputId}`);\n this.phoneNumberInput = $(`#${this.params.phoneNumberInputId}`);\n this.successBlock = $(`#${this.params.successId}`);\n this.error = $('.error', this.componentRoot);\n this.countryCode = '';\n this.phoneNumber = ''\n this.errorMessage = '';\n this.bindEvents();\n }\n\n bindEvents () {\n this.selectInput.on('change', event => {\n this.countryCode = event.target.value;\n this.phoneNumberInput.val(this.formattedPhoneNumber());\n });\n this.phoneNumberInput.on('input', event => {\n this.phoneNumber = event.target.value;\n event.target.value = this.formattedPhoneNumber();\n });\n this.form.on('submit', event => {\n event.preventDefault();\n if (this.hasError()) {\n this.setError(this.errorMessage);\n } else {\n this.sendSms();\n }\n });\n }\n\n formattedPhoneNumber () {\n let self = this;\n return formatNumber({country: self.countryCode, phone: self.phoneNumber}, 'National');\n }\n\n hasError () {\n let hasError = true;\n let phoneNumberInfo = parseNumber(this.phoneNumber, this.countryCode, { extended: true });\n if (this.countryCode === '') {\n this.errorMessage = this.params.countryCodeError;\n } else if (!phoneNumberInfo.valid) {\n this.errorMessage = this.params.phoneNumberError;\n } else {\n hasError = false;\n }\n return hasError;\n }\n\n setError (message) {\n this.error.text(message);\n }\n\n hideFormShowSucess () {\n this.form.addClass('hide-all');\n this.successBlock.removeClass('hide-all');\n }\n\n sendSms () {\n let data = {\n \"product\": this.params.product,\n \"country\": this.countryCode,\n \"phoneNumber\": this.phoneNumber\n };\n fetch(this.endpoint, {\n method: 'POST',\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n })\n .then(response => response.json())\n .then(result => {\n if (!result.success) {\n throw result;\n }\n this.hideFormShowSucess();\n })\n .catch(error => {\n let message = this.params.genericError;\n if (error.error) {\n // this comes back from server\n message = error.error;\n }\n this.setError(message);\n });\n }\n}\n\nexport default SmsForm;\n"],"names":["SmsForm","componentRoot","params","this","$","environment","Environment","path","DEV_ENV","STAGING_ENV","BXP_EXPRESS_ENDPOINT","window","location","hostname","indexOf","stgConfig","endpoint","form","formId","selectInput","selectInputId","phoneNumberInput","phoneNumberInputId","successBlock","successId","error","countryCode","phoneNumber","errorMessage","bindEvents","on","event","target","value","val","formattedPhoneNumber","preventDefault","hasError","setError","sendSms","formatNumber","country","phone","phoneNumberInfo","parseNumber","extended","countryCodeError","valid","phoneNumberError","message","text","addClass","removeClass","data","product","fetch","method","headers","body","JSON","stringify","then","response","json","result","success","hideFormShowSucess","genericError"],"sourceRoot":""}