{"version":3,"file":"PaymentPageHelpers-0nXsdZcI.js","sources":["../../payment-page/src/features/PaymentMethodForm/PaymentPageHelpers.ts"],"sourcesContent":["import {\r\n PaymentPageFormValues,\r\n PaymentPageModel,\r\n ScheduledPaymentsEndOption,\r\n TransactionAttribute,\r\n WithCreditCardInformation,\r\n} from \"./PaymentInfoModel\";\r\nimport { mapFromQuerystring } from \"#utilities/QueryString\";\r\n\r\nexport const handleValidThrough = (data: WithCreditCardInformation) => {\r\n if (data.validThrough.length !== 0) {\r\n data.month = Number(data.validThrough.substring(0, 2));\r\n data.year = Number(\"20\" + data.validThrough.substring(3));\r\n }\r\n};\r\n\r\nexport const getNewPaymentPageValues = () => {\r\n const paymentPageInitialValues: PaymentPageFormValues = {\r\n payer: \"\",\r\n emailaddress: \"\",\r\n amount: \"\",\r\n comments: \"\",\r\n authorize: \"\",\r\n bankAccountHolder: \"\",\r\n routingNumber: \"\",\r\n accountNumber: \"\",\r\n confirmAccountNumber: \"\",\r\n cardAccountHolder: \"\",\r\n cardNumber: \"\",\r\n validThrough: \"\",\r\n cvc: \"\",\r\n postalCode: \"\",\r\n paymentMethod: \"Ach\",\r\n reCaptchaToken: null,\r\n tokenPublicId: null,\r\n savePaymentOption: false,\r\n fileModels: new Map(),\r\n invoicePayments: [],\r\n transactionAttributes: {},\r\n clientNotificationId: null,\r\n enableAutoPay: false,\r\n startDate: new Date().toISOString().split(\"T\")[0],\r\n numberOfPayments: 1,\r\n intervalCount: 1,\r\n scheduledPaymentsEndOption: ScheduledPaymentsEndOption.Never,\r\n intervalId: 3,\r\n };\r\n return paymentPageInitialValues;\r\n};\r\n\r\n// a map from the object keys to the query string parameters\r\nconst preFillMap: { [key in keyof PaymentPageFormValues]?: string } = {\r\n payer: \"payer\",\r\n emailaddress: \"emailAddress\",\r\n comments: \"comments\",\r\n amount: \"amount\",\r\n clientNotificationId: \"notificationId\",\r\n};\r\n\r\n/**\r\n * Populate the values for the form based on data loaded from the server\r\n * and values in the query string\r\n * @param pageData\r\n * @returns default values\r\n */\r\nexport const prefillPaymentPage = (pageData: PaymentPageModel) => {\r\n const defaultFormValues = getNewPaymentPageValues();\r\n\r\n const defaultAcceptedPaymentMethod = pageData.AcceptedPaymentMethods[0];\r\n defaultFormValues.paymentMethod = defaultAcceptedPaymentMethod;\r\n\r\n const isACH = defaultAcceptedPaymentMethod === \"Ach\";\r\n defaultFormValues.tokenPublicId =\r\n pageData.PayerTokenViewModels.find((f) =>\r\n isACH ? f.PaymentMethodType === \"ACH\" : f.PaymentMethodType !== \"ACH\"\r\n )?.PublicId ?? null;\r\n\r\n if (pageData.ManagedInvoice) {\r\n defaultFormValues.payer = pageData.ManagedInvoice.Payer;\r\n defaultFormValues.emailaddress = pageData.ManagedInvoice.EmailAddress;\r\n defaultFormValues.managedInvoicePaymentMethod = \"payNow\";\r\n }\r\n\r\n const defaultValues = mapFromQuerystring<PaymentPageFormValues>(\r\n defaultFormValues,\r\n preFillMap,\r\n (queryString, values) => {\r\n for (const entry of pageData.TransactionAttributes) {\r\n if (queryString[entry.ParameterName]) {\r\n values.transactionAttributes[entry.ParameterName] = queryString[\r\n entry.ParameterName\r\n ] as string;\r\n }\r\n }\r\n }\r\n );\r\n\r\n if (pageData.ManagedInvoice) {\r\n defaultValues.invoicePayments = [\r\n {\r\n id: pageData.ManagedInvoice.InvoiceNumber,\r\n dataToken: \"\",\r\n verification: \"\",\r\n divisionId: \"\",\r\n financedDownAmount: 0,\r\n name: pageData.ManagedInvoice.CustomerName,\r\n paidAmount: pageData.ManagedInvoice.Amount,\r\n },\r\n ];\r\n }\r\n\r\n return defaultValues;\r\n};\r\n\r\nexport const hasPaymentInfo = (data: PaymentPageFormValues) => {\r\n const hasBankIfo =\r\n data.bankAccountHolder && data.accountNumber && data.routingNumber && data.confirmAccountNumber;\r\n\r\n const hasCreditCardInfo = data.cardAccountHolder && data.cardNumber && data.validThrough;\r\n\r\n return hasBankIfo || hasCreditCardInfo;\r\n};\r\n\r\nexport const getTransactionAttributeDisplayValue = (\r\n transactionAttributeValues: { [key: string]: string },\r\n transactionAttribute: TransactionAttribute\r\n) => {\r\n if (transactionAttribute.Options?.length > 0) {\r\n const transactionAttributeOptionModel = transactionAttribute.Options.find(\r\n (ta) => ta.Value === transactionAttributeValues[transactionAttribute.ParameterName]\r\n );\r\n\r\n if (transactionAttributeOptionModel) {\r\n return transactionAttributeOptionModel.Text;\r\n }\r\n }\r\n\r\n return transactionAttributeValues[transactionAttribute.ParameterName];\r\n};\r\n"],"names":["handleValidThrough","data","getNewPaymentPageValues","ScheduledPaymentsEndOption","preFillMap","prefillPaymentPage","pageData","defaultFormValues","defaultAcceptedPaymentMethod","isACH","_a","f","defaultValues","mapFromQuerystring","queryString","values","entry","hasPaymentInfo","hasBankIfo","hasCreditCardInfo","getTransactionAttributeDisplayValue","transactionAttributeValues","transactionAttribute","transactionAttributeOptionModel","ta"],"mappings":"gDASa,MAAAA,EAAsBC,GAAoC,CACjEA,EAAK,aAAa,SAAW,IAC/BA,EAAK,MAAQ,OAAOA,EAAK,aAAa,UAAU,EAAG,CAAC,CAAC,EACrDA,EAAK,KAAO,EAAO,KAAOA,EAAK,aAAa,UAAU,CAAC,GAE3D,EAEaC,EAA0B,KACmB,CACtD,MAAO,GACP,aAAc,GACd,OAAQ,GACR,SAAU,GACV,UAAW,GACX,kBAAmB,GACnB,cAAe,GACf,cAAe,GACf,qBAAsB,GACtB,kBAAmB,GACnB,WAAY,GACZ,aAAc,GACd,IAAK,GACL,WAAY,GACZ,cAAe,MACf,eAAgB,KAChB,cAAe,KACf,kBAAmB,GACnB,eAAgB,IAChB,gBAAiB,CAAC,EAClB,sBAAuB,CAAC,EACxB,qBAAsB,KACtB,cAAe,GACf,cAAe,OAAO,YAAc,EAAA,MAAM,GAAG,EAAE,CAAC,EAChD,iBAAkB,EAClB,cAAe,EACf,2BAA4BC,EAA2B,MACvD,WAAY,CAAA,GAMVC,EAAgE,CACpE,MAAO,QACP,aAAc,eACd,SAAU,WACV,OAAQ,SACR,qBAAsB,gBACxB,EAQaC,EAAsBC,GAA+B,OAChE,MAAMC,EAAoBL,IAEpBM,EAA+BF,EAAS,uBAAuB,CAAC,EACtEC,EAAkB,cAAgBC,EAElC,MAAMC,EAAQD,IAAiC,MAC7BD,EAAA,gBAChBG,EAAAJ,EAAS,qBAAqB,KAAMK,GAClCF,EAAQE,EAAE,oBAAsB,MAAQA,EAAE,oBAAsB,KAAA,IADlE,YAAAD,EAEG,WAAY,KAEbJ,EAAS,iBACOC,EAAA,MAAQD,EAAS,eAAe,MAChCC,EAAA,aAAeD,EAAS,eAAe,aACzDC,EAAkB,4BAA8B,UAGlD,MAAMK,EAAgBC,EACpBN,EACAH,EACA,CAACU,EAAaC,IAAW,CACZ,UAAAC,KAASV,EAAS,sBACvBQ,EAAYE,EAAM,aAAa,IACjCD,EAAO,sBAAsBC,EAAM,aAAa,EAAIF,EAClDE,EAAM,aACR,EAGN,CAAA,EAGF,OAAIV,EAAS,iBACXM,EAAc,gBAAkB,CAC9B,CACE,GAAIN,EAAS,eAAe,cAC5B,UAAW,GACX,aAAc,GACd,WAAY,GACZ,mBAAoB,EACpB,KAAMA,EAAS,eAAe,aAC9B,WAAYA,EAAS,eAAe,MACtC,CAAA,GAIGM,CACT,EAEaK,EAAkBhB,GAAgC,CAC7D,MAAMiB,EACJjB,EAAK,mBAAqBA,EAAK,eAAiBA,EAAK,eAAiBA,EAAK,qBAEvEkB,EAAoBlB,EAAK,mBAAqBA,EAAK,YAAcA,EAAK,aAE5E,OAAOiB,GAAcC,CACvB,EAEaC,EAAsC,CACjDC,EACAC,IACG,OACC,KAAAZ,EAAAY,EAAqB,UAArB,YAAAZ,EAA8B,QAAS,EAAG,CACtC,MAAAa,EAAkCD,EAAqB,QAAQ,KAClEE,GAAOA,EAAG,QAAUH,EAA2BC,EAAqB,aAAa,CAAA,EAGpF,GAAIC,EACF,OAAOA,EAAgC,IAE3C,CAEO,OAAAF,EAA2BC,EAAqB,aAAa,CACtE"}