{"version":3,"file":"CreditCard-B_-K5I7c.js","sources":["../../Client/legacy/Components/FormGroups/CreditCard.tsx"],"sourcesContent":["import '@shared/Polyfills/Date';\r\nimport { Rules, Value } from '@webkit/index';\r\nimport dayjs from 'dayjs';\r\nimport * as React from 'react';\r\nimport { InlineError } from '../../FormFields';\r\nimport { FormGroup, IFormGroupProps } from './Base';\r\nimport { ITextFormGroupProps, TextFormGroup } from './Text';\r\n\r\nexport interface ICreditCardNumberFormGroupProps extends IFormGroupProps {\r\n    /** The change handler for the credit card number field. */\r\n    onChange: (e: any) => void;\r\n\r\n    /** The value containing input properties and validation state. */\r\n    value: Value<string>;\r\n\r\n    /** The optional placeholder string for the input element. */\r\n    placeholder?: string;\r\n\r\n    /** The optional CSS class for the input element. */\r\n    inputClassName?: string;\r\n}\r\n\r\nexport class CreditCardNumberFormGroup extends React.Component<ICreditCardNumberFormGroupProps, {}> {\r\n    componentDidMount() {\r\n        this.props.value.addRule(Rules.creditCard());\r\n    }\r\n\r\n    render() {\r\n        const { id, ...p } = this.props;\r\n        return (\r\n            <FormGroup {...p}>\r\n                <input\r\n                    onChange={e => p.onChange(e)}\r\n                    value={p.value.content}\r\n                    className={`form-group-input-cp ${p.inputClassName} ${\r\n                        p.value.error ? 'form-group-input-error-cp' : ''\r\n                    }`}\r\n                    tabIndex={p.tabIndex}\r\n                    id={id}\r\n                />\r\n\r\n                <InlineError error={p.value.error} />\r\n            </FormGroup>\r\n        );\r\n    }\r\n}\r\n\r\nexport interface ICreditCardExpirationDateFormGroupProps extends Omit<ITextFormGroupProps, 'value'> {\r\n    value: Value<dayjs.Dayjs | null>;\r\n}\r\n\r\nexport class CreditCardExpirationDateFormGroup extends React.Component<ICreditCardExpirationDateFormGroupProps> {\r\n    componentDidMount() {\r\n        this.props.value.addRule(Rules.after(dayjs().startOf('month').add(-1, 'seconds')));\r\n    }\r\n\r\n    render() {\r\n        const { id, ...p } = this.props;\r\n        return (\r\n            <FormGroup {...p}>\r\n                <input\r\n                    placeholder={p.placeholder}\r\n                    onChange={e => this.onChange(e.target.value)}\r\n                    className={`form-group-input-cp ${p.inputClassName} ${\r\n                        p.value.error ? 'form-group-input-error-cp' : ''\r\n                    }`}\r\n                    tabIndex={p.tabIndex}\r\n                    id={id}\r\n                />\r\n\r\n                <InlineError error={p.value.error} />\r\n            </FormGroup>\r\n        );\r\n    }\r\n\r\n    private onChange(value: string) {\r\n        let date = dayjs(value, 'MM/YYYY');\r\n        if (date.isValid()) date = date.endOf('m');\r\n        this.props.onChange && this.props.onChange(date);\r\n    }\r\n}\r\n\r\nexport interface ICreditCardCvvFormGroupProps extends ITextFormGroupProps {}\r\n\r\nexport class CreditCardCvvFormGroup extends React.Component<ICreditCardCvvFormGroupProps, {}> {\r\n    componentDidMount() {\r\n        this.props.value.addRule(Rules.regex(/^[0-9]{3,4}/));\r\n    }\r\n\r\n    render() {\r\n        return <TextFormGroup {...this.props} />;\r\n    }\r\n}\r\n\r\nexport interface ICreditCardZipCodeFormGroupProps extends ITextFormGroupProps {}\r\n\r\nexport class CreditCardZipCodeFormGroup extends React.Component<ICreditCardZipCodeFormGroupProps, {}> {\r\n    componentDidMount() {\r\n        this.props.value.addRule(Rules.zip());\r\n    }\r\n\r\n    render() {\r\n        return <TextFormGroup {...this.props} />;\r\n    }\r\n}\r\n"],"names":["CreditCardNumberFormGroup","React.Component","Rules.creditCard","id","p","jsxs","FormGroup","jsx","e","InlineError","CreditCardExpirationDateFormGroup","Rules.after","dayjs","value","date","CreditCardCvvFormGroup","Rules.regex","TextFormGroup","CreditCardZipCodeFormGroup","Rules.zip"],"mappings":"gXAsBa,MAAAA,UAAkCC,EAAAA,SAAqD,CAChG,mBAAoB,CAChB,KAAK,MAAM,MAAM,QAAQC,GAAkB,CAAA,CAG/C,QAAS,CACL,KAAM,CAAE,GAAAC,EAAI,GAAGC,GAAM,KAAK,MAEtB,OAAAC,EAAA,KAACC,EAAW,CAAA,GAAGF,EACX,SAAA,CAAAG,EAAA,IAAC,QAAA,CACG,SAAUC,GAAKJ,EAAE,SAASI,CAAC,EAC3B,MAAOJ,EAAE,MAAM,QACf,UAAW,uBAAuBA,EAAE,cAAc,IAC9CA,EAAE,MAAM,MAAQ,4BAA8B,EAClD,GACA,SAAUA,EAAE,SACZ,GAAAD,CAAA,CACJ,EAECI,EAAA,IAAAE,EAAA,CAAY,MAAOL,EAAE,MAAM,KAAO,CAAA,CAAA,EACvC,CAAA,CAGZ,CAMa,MAAAM,UAA0CT,EAAAA,SAAyD,CAC5G,mBAAoB,CAChB,KAAK,MAAM,MAAM,QAAQU,EAAYC,EAAM,EAAE,QAAQ,OAAO,EAAE,IAAI,GAAI,SAAS,CAAC,CAAC,CAAA,CAGrF,QAAS,CACL,KAAM,CAAE,GAAAT,EAAI,GAAGC,GAAM,KAAK,MAEtB,OAAAC,EAAA,KAACC,EAAW,CAAA,GAAGF,EACX,SAAA,CAAAG,EAAA,IAAC,QAAA,CACG,YAAaH,EAAE,YACf,SAAeI,GAAA,KAAK,SAASA,EAAE,OAAO,KAAK,EAC3C,UAAW,uBAAuBJ,EAAE,cAAc,IAC9CA,EAAE,MAAM,MAAQ,4BAA8B,EAClD,GACA,SAAUA,EAAE,SACZ,GAAAD,CAAA,CACJ,EAECI,EAAA,IAAAE,EAAA,CAAY,MAAOL,EAAE,MAAM,KAAO,CAAA,CAAA,EACvC,CAAA,CAIA,SAASS,EAAe,CACxB,IAAAC,EAAOF,EAAMC,EAAO,SAAS,EAC7BC,EAAK,QAAQ,IAAUA,EAAAA,EAAK,MAAM,GAAG,GACzC,KAAK,MAAM,UAAY,KAAK,MAAM,SAASA,CAAI,CAAA,CAEvD,CAIa,MAAAC,UAA+Bd,EAAAA,SAAkD,CAC1F,mBAAoB,CAChB,KAAK,MAAM,MAAM,QAAQe,EAAY,aAAa,CAAC,CAAA,CAGvD,QAAS,CACL,OAAQT,EAAA,IAAAU,EAAA,CAAe,GAAG,KAAK,KAAO,CAAA,CAAA,CAE9C,CAIa,MAAAC,UAAmCjB,EAAAA,SAAsD,CAClG,mBAAoB,CAChB,KAAK,MAAM,MAAM,QAAQkB,GAAW,CAAA,CAGxC,QAAS,CACL,OAAQZ,EAAA,IAAAU,EAAA,CAAe,GAAG,KAAK,KAAO,CAAA,CAAA,CAE9C"}