{"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"}