{"version":3,"file":"ClearentHelpers.js","sourceRoot":"","sources":["../../TS/ClearentHelpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { IJSModule } from \"./IJSModule.js\";\r\nimport { LoadScriptsHelpers } from \"./LoadScriptsHelpers.js\";\r\n\r\ndeclare global {\r\n interface Window {\r\n ClearentEntryModeChange(mode: any): void;\r\n ClearentCardReadStart(): void;\r\n ClearentCardReadComplete(): void;\r\n ClearentTokenSuccess(responseRaw: any, responseJSON: any): void;\r\n ClearentTokenError(responseRaw: any, responseJSON: any): void;\r\n ClearentValidation(messages: any): void;\r\n }\r\n}\r\n\r\nexport class ClearentHelpers implements IJSModule {\r\n //IJSService\r\n public serviceName: string;\r\n\r\n private componentInstanceObj = null;\r\n\r\n private formContainerId: string;\r\n\r\n public initialize(): boolean {\r\n this.serviceName = 'ClearentHelpers';\r\n\r\n window['ClearentHelpers'] = this;\r\n\r\n return true;\r\n }\r\n\r\n public passComponentInstance(obj: object) {\r\n this.componentInstanceObj = obj;\r\n }\r\n\r\n public initClearent(formContainerId: string, clearentSdkBaseUrl: string, publicKey: string, cardPlaceholder: string, expDatePlaceholder: string, cvcPlaceholder: string, cardMasked: boolean, expDateMasked: boolean, cvcMasked: boolean, ccFormCustomStyles: string, clearFormOnSuccess: boolean) {\r\n this.formContainerId = formContainerId;\r\n\r\n const baseUrl = clearentSdkBaseUrl;\r\n const pk = publicKey;\r\n\r\n let clearentInitData = {\r\n paymentFormId: formContainerId,\r\n baseUrl: baseUrl,\r\n pk: pk,\r\n cardPlaceholder: cardPlaceholder,\r\n expDatePlaceholder: expDatePlaceholder,\r\n cvcPlaceholder: cvcPlaceholder,\r\n\r\n cardMasked: cardMasked,\r\n expDateMasked: expDateMasked,\r\n cvcMasked: cvcMasked,\r\n\r\n showValidationMessages: false,\r\n\r\n styles: ccFormCustomStyles,\r\n\r\n clearFormOnSuccess: clearFormOnSuccess\r\n };\r\n\r\n this.loadClearentSdk(clearentSdkBaseUrl, clearentInitData);\r\n\r\n window.ClearentEntryModeChange = (mode: any) => { window.postMessage({ name: 'onClearentEntryModeChange_' + this.formContainerId, data: { mode: mode } }, '*'); }\r\n\r\n window.ClearentCardReadStart = () => { window.postMessage({ name: 'onClearentCardReadStart_' + this.formContainerId }, '*'); }\r\n\r\n window.ClearentCardReadComplete = () => { window.postMessage({ name: 'onClearentCardReadComplete_' + this.formContainerId }, '*'); }\r\n\r\n window.ClearentTokenSuccess = (responseRaw, responseJSON) => { window.postMessage({ name: 'onClearentTokenSuccess_' + this.formContainerId, data: { responseRaw: responseRaw, responseJSON: responseJSON } }, '*'); }\r\n\r\n window.ClearentTokenError = (responseRaw, responseJSON) => { window.postMessage({ name: 'onClearentTokenError_' + this.formContainerId, data: { responseRaw: responseRaw, responseJSON: responseJSON } }, '*'); }\r\n\r\n window.ClearentValidation = (messages) => { window.postMessage({ name: 'onClearentValidation_' + this.formContainerId, data: { messages: messages } }, '*'); }\r\n\r\n this.unsubscribeFromClearentIframeMessages();\r\n\r\n window.addEventListener(\"message\", (e) => this.receiveIframeWindowMessage(e, formContainerId), false);\r\n }\r\n\r\n private receiveIframeWindowMessage(event: any, formContainerId: string) {\r\n if (event.origin !== location.origin || !event.data) return;\r\n\r\n var message = event.data;\r\n\r\n if (!message || message.name == undefined || message.name == null || message.name == '')\r\n return;\r\n\r\n switch (message.name) {\r\n case `onClearentEntryModeChange_${formContainerId}`:\r\n if (message.data) {\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentEntryModeChange', message.data.mode);\r\n }\r\n break;\r\n\r\n case `onClearentCardReadStart_${formContainerId}`:\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentCardReadStart');\r\n break;\r\n\r\n case `onClearentCardReadComplete_${formContainerId}`:\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentCardReadComplete');\r\n break;\r\n\r\n case `onClearentTokenSuccess_${formContainerId}`:\r\n if (message.data) {\r\n let res = new ClearentResponseDataModel();\r\n res.RawData = message.data.responseRaw;\r\n res.JsonData = message.data.responseJSON;\r\n res.TokenData = this.getTokenData(message.data.responseJSON);\r\n\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentTokenSuccess', res);\r\n }\r\n break;\r\n\r\n case `onClearentTokenError_${formContainerId}`:\r\n if (message.data) {\r\n let res = new ClearentResponseDataModel();\r\n res.RawData = message.data.responseRaw;\r\n res.JsonData = message.data.responseJSON;\r\n\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentTokenError', res);\r\n }\r\n break;\r\n\r\n case `onClearentValidation_${formContainerId}`:\r\n if (message.data) {\r\n this.componentInstanceObj.invokeMethodAsync('OnClearentValidation', message.data.messages);\r\n }\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n public unsubscribeFromClearentIframeMessages() {\r\n window.removeEventListener(\"message\", (e) => this.receiveIframeWindowMessage(e, this.formContainerId), false);\r\n }\r\n\r\n private getTokenData(responseJson: any): ClarentTokenDataModel {\r\n if (!responseJson || responseJson['status'] != 'success') return null;\r\n\r\n let tokenResponse = responseJson.payload['mobile-jwt'];\r\n\r\n let res = new ClarentTokenDataModel();\r\n\r\n res.Type = tokenResponse['card-type'];\r\n res.LastFourDigits = tokenResponse['last-four'];\r\n res.TransactionToken = tokenResponse['jwt'];\r\n //res.Info = `${this.creditCardHelper.getCCTypeByName(res.Type)} *${res.LastFourDigits}`;\r\n res.ExpDate = tokenResponse['exp-date'];\r\n\r\n return res;\r\n }\r\n\r\n public getPaymentToken() {\r\n window['ClearentSDK'].getPaymentToken();\r\n }\r\n\r\n private loadClearentSdk(clearentSdkBaseUrl: string, clearentInitData: any) {\r\n if (window['ClearentSDK'] && window['ClearentSDK'].init) {\r\n window['ClearentSDK'].reset();\r\n window['ClearentSDK'].init(clearentInitData);\r\n\r\n return;\r\n }\r\n\r\n let loadScriptsHelpers = window['LoadScriptsHelpers'] as LoadScriptsHelpers;\r\n loadScriptsHelpers.loadScript(\r\n 'clearent-sdk',\r\n `${clearentSdkBaseUrl}/js-sdk/js/clearent-host.js`,\r\n () => window['ClearentSDK'].init(clearentInitData));\r\n }\r\n}\r\n\r\nexport class ClearentResponseDataModel {\r\n RawData: any;\r\n JsonData: any;\r\n\r\n TokenData: ClarentTokenDataModel;\r\n}\r\n\r\nexport class ClarentTokenDataModel {\r\n Type: string;\r\n ExpDate: string;\r\n LastFourDigits: string;\r\n Token: string;\r\n TransactionToken: string;\r\n Info: string;\r\n}"]}