{"version":3,"file":"chunks/414.chunk.589da2af46ea22f1f0a9.js","mappings":"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","sources":["webpack://SMAesthetics/./common/react/components/Forms/FormikInput/FormikInput.tsx","webpack://SMAesthetics/./common/react/components/Forms/FormikField/FormikField.tsx","webpack://SMAesthetics/./common/react/utils/validationHelpers.ts","webpack://SMAesthetics/./common/react/components/Forms/PhoneInput/PhoneInput.tsx","webpack://SMAesthetics/./NorthernTunaCommon/react/components/UI/LogoLoader/LogoLoader.tsx","webpack://SMAesthetics/./NorthernTunaCommon/react/utils/useMobileView.ts","webpack://SMAesthetics/./NorthernTunaCommon/react/objects/Device.ts","webpack://SMAesthetics/./ClientApp/components/UI/Inquiry/Inquiry.tsx","webpack://SMAesthetics/delegated 5954 from dll-reference vendor_65419c0f306ecc94e7df","webpack://SMAesthetics/delegated 8193 from dll-reference vendor_65419c0f306ecc94e7df"],"sourcesContent":["import * as React from 'react';\n\nimport { FieldProps, ErrorMessage, getIn } from 'formik';\n\nexport type FormikInputRenderFunc = (fieldProps: FieldProps, inputProps?: React.HTMLProps) => React.ReactElement;\n\nexport interface FormikInputProps {\n\tfieldProps: FieldProps;\n\tcontainerClassName?: string;\n\trender?: FormikInputRenderFunc;\n\ttitle?: string;\n\tinputId?: string;\n\tshowValidateAfterSubmit?: boolean;\n\tinputProps?: React.HTMLProps;\n\tErrorComponent?: React.FC<{error: string}>;\n\twithValidIndicator?: boolean;\n\tcustomValidCondition?: (errors, touched, value, form) => boolean;\n}\n\nexport interface ValidFieldWrapperProps {\n\tfieldName: string;\n\tform: FieldProps['form'];\n\tcustomValidCondition?: (errors, touched, value, form) => boolean;\n}\n\nexport const ValidFieldWrapper: React.FC = ({\n\tfieldName,\n\tform,\n\tchildren,\n\tcustomValidCondition = (errors, touched, value, form) => !errors && value,\n}) => {\n\tconst errors = getIn(form.errors, fieldName);\n\tconst touched = getIn(form.touched, fieldName);\n\tconst value = getIn(form.values, fieldName);\n\n\treturn <>\n\t\t{customValidCondition(errors, touched, value, form) ?
: null}\n\t\t{children}\n\t;\n};\n\nconst defaultRender = ({ form, field }: FieldProps, inputProps?: React.HTMLProps) =>\n\t;\n\nexport const defaultErrorComponent: React.FC<{error: string | object}> = ({ error }) =>\n\t
\n\t\t{typeof error === 'string' ? error : Object.keys(error)\n\t\t\t.filter((key) => typeof error[key] === 'string')\n\t\t\t.map((key) => error[key])\n\t\t\t.join(', ')}\n\t
;\n\nexport const FormikInput: React.FC = ({\n\tfieldProps,\n\tcontainerClassName = 'form-group col-sm-6',\n\trender = defaultRender,\n\ttitle,\n\tinputId,\n\tshowValidateAfterSubmit = true,\n\tinputProps,\n\tErrorComponent = defaultErrorComponent,\n\twithValidIndicator,\n\tcustomValidCondition,\n}) => {\n\tconst { form, field } = fieldProps;\n\n\treturn
\n\t\t{title && }\n\t\t
\n\t\t\t{(showValidateAfterSubmit ? form.submitCount > 0 : true) && (\n\t\t\t\t }\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{withValidIndicator ? : null}\n\t\t\t{render(fieldProps, inputProps)}\n\t\t
\n\t
;\n};\n","import * as React from 'react';\n\nimport { Field, FieldProps } from 'formik';\n\nimport { FormikInput, FormikInputProps, FormikInputRenderFunc } from '@common/react/components/Forms/FormikInput/FormikInput';\n\ninterface DefaultRenders {\n\ttextarea: FormikInputRenderFunc;\n}\n\nconst defaultRenders: DefaultRenders = {\n\ttextarea: ({ field }: FieldProps) => ,\n};\n\nexport interface FormikFieldProps extends Omit {\n\tfieldName: string;\n\tdefaultRender?: keyof DefaultRenders;\n}\n\nconst FormikField: React.FC = (props) => {\n\treturn (\n\t\t\n\t\t\t{(fieldProps: FieldProps) =>\n\t\t\t\t\n\t\t\t}\n\t\t\n\t);\n};\n\nexport default FormikField;\n","import * as Yup from 'yup';\n\nimport { WithDeleted } from '@common/typescript/objects/WithDeleted';\n\nexport const phoneRegexp = /(\\(([0-9]{3})\\)\\s([0-9]{3})[-]([0-9]{4})|\\+([0-9]{11}))/;\n\nexport const formattedPhoneRegexp = /^\\+[1-9]+ \\([1-9]\\d{2}\\) \\d\\d\\d-\\d\\d\\d\\d$/;\n\nexport const stringOnlyLettersRegexp = /^[a-zA-Z]*$/;\n\nexport const simpleStringValidator = Yup.string().required();\n\nexport const nullableStringValidator = Yup.string().nullable().required();\n\nexport const nullableStringNotRequiredValidator = Yup.string().nullable().notRequired();\n\nexport const stringOnlyLettersValidator = Yup.string().matches(stringOnlyLettersRegexp, 'Use only letters').required();\n\nexport const simpleNumberValidator = Yup.number().required();\n\nexport const positiveNumberValidator = Yup.number().positive('Required field!');\n\nexport const notEmptyPositiveNumberValidator = Yup.number().required().positive('Required field!');\n\nexport const notNullValidator = Yup.mixed().test('is-not-null', 'Required field!', (value) => value !== null);\n\nexport const notNullPositiveValidator = Yup.mixed().test('is-not-null', 'Required field!', (value) => value !== null && value >= 0);\n\nexport const emailValidator = Yup.string().email().required();\n\nexport const optionalEmailValidator = Yup.string().email().nullable().notRequired();\n\nexport const dateValidator = Yup.number().required().nullable();\n\nexport const phoneRequiredValidator = Yup.string().matches(phoneRegexp, 'Invalid phone number').required();\n\nexport const phoneValidator = Yup.string().test('is-valid', 'Invalid phone number', (value) =>\n\t!value || phoneRegexp.test(value));\n\nexport const formattedPhoneValidator = Yup.string().test('is-formatted-valid', 'Invalid phone number', (value) =>\n\t!value || formattedPhoneRegexp.test(value));\n\nexport const alphaDigitPasswordValidator = Yup.string().matches(/^([0-9a-zA-Z])+$/, 'Password should only contains digits and latin letters');\n\nexport const nonEmptyArray = (message: string) => Yup.array().test(\n\t'Non-empty array',\n\tmessage,\n\t(value: Array | undefined) => (value ? value.some((v) => !v.deleted) : false),\n);\n\nexport const nameValidator = Yup.string().test({\n\tname: 'is-valid-name',\n\ttest(value) {\n\t\tif (value && (!value.match(/[a-z]/i) || value.match(/[^a-z ]{2,}/i))) {\n\t\t\treturn this.createError({\n\t\t\t\tmessage: 'Invalid Name',\n\t\t\t});\n\t\t}\n\t\treturn true;\n\t},\n});\n\nexport const nameWithNumbersValidator = Yup.string().test({\n\tname: 'is-valid-name',\n\ttest(value) {\n\t\tif (value && (!value.match(/[a-z0-9]/i) || value.match(/[^a-z0-9 ]{2,}/i))) {\n\t\t\treturn this.createError({\n\t\t\t\tmessage: 'Invalid Name',\n\t\t\t});\n\t\t}\n\t\treturn true;\n\t},\n});\n\nexport const nameValidatorWithLengthCheck = (maxNameLength) => nameValidator.max(maxNameLength, `max characters count: ${maxNameLength}`);\n\nexport const nameWithNumbersValidatorWithLengthCheck = (maxNameLength) =>\n\tnameWithNumbersValidator.max(maxNameLength, `max characters count: ${maxNameLength}`);\n\nexport const lengthValidator = (maxLength, customMessage?) => Yup.string().max(maxLength, customMessage);\n\nexport const lengthNullableValidator = (maxLength, customMessage?) => Yup.string().nullable().max(maxLength, customMessage);\n\nexport const lengthRequiredValidator = (maxLength, customMessage?) => Yup.string().max(maxLength, customMessage).required();\n\nexport const linesCountValidator = (maxLinesCount: number, chunkSize?: number) => Yup.string().test({\n\tname: 'max-rows-count',\n\ttest(value) {\n\t\tif (value) {\n\t\t\tif (chunkSize) {\n\t\t\t\tif (value.split(/\\r\\n|\\r|\\n/i).filter((str) => !!str)\n\t\t\t\t\t.reduce((sum, str) => sum + Math.ceil(str.length / chunkSize), 0) > maxLinesCount\n\t\t\t\t) {\n\t\t\t\t\treturn this.createError({\n\t\t\t\t\t\tmessage: `max lines count: ${maxLinesCount} (each line is ${chunkSize} characters long)`,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else if (value.split(/\\r\\n|\\r|\\n/i).filter((str) => !!str).length > maxLinesCount) {\n\t\t\t\treturn this.createError({\n\t\t\t\t\tmessage: `max lines count: ${maxLinesCount}`,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n});\n\nexport const minNotNullValidator = (min) => Yup.mixed().test('min', `Must be >= ${min}`, (value) => value !== null && value >= min);\n\nexport const minMaxNotNullValidator = (min, max) => Yup.mixed().test('min', `Must be >= ${min}`, (value) => value !== null && value >= min)\n\t.test('max', `Must be <= ${max}`, (value) => value !== null && value <= max);\n\nexport const minMaxValidator = (min, max) => Yup.mixed().test('min', `Must be >= ${min}`, (value) => value === null || value >= min)\n\t.test('max', `Must be <= ${max}`, (value) => value === null || value <= max);\n","import * as React from 'react';\n\ntype formEventHandler = (event: React.FormEvent) => void;\n\ninterface PhoneInputProps {\n\tclassName: string;\n\tid: string;\n\tvalue: string;\n\tformat?: string;\n\tonChange: formEventHandler;\n}\n\ninterface PhoneInputState {\n\tvalue: string;\n}\n\n/**\n\tPhone format: +d (ddd) ddd-dddd\n d is used for digit, other symbols are left as is\n */\nexport default class PhoneInput extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.handleChange = this.handleChange.bind(this);\n\t}\n\n\thandleChange(event: React.FormEvent) {\n\t\tlet value = event.currentTarget.value.replace(/[^0-9]/g, '');\n\t\tconst format = this.props.format || '+d (ddd) ddd-dddd';\n\n\t\tif (value.length > format.replace(/[^d]/g, '').length) return;\n\n\t\tfor (let i = 0; i < value.length && i < format.length; i++) {\n\t\t\tif (value[i] !== format[i] && format[i] !== 'd') {\n\t\t\t\tvalue = value.slice(0, i) + format[i] + value.slice(i);\n\t\t\t}\n\t\t}\n\n\t\tevent.currentTarget.value = value;\n\t\tthis.props.onChange(event);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n","import React from 'react';\n\nimport '@commonTuna/react/scss/components/logoLoader.scss';\n\ninterface IProps {\n\tsize?: number;\n\twithScale?: number;\n}\n\nconst LogoLoader: React.FC = ({ size = 60, withScale = 1 }) => {\n\tconst len = size * Math.PI;\n\tconst strokeWidth = `${size * (withScale / 30)}`;\n\n\treturn (\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t);\n};\n\nexport const LogoLoaderPage: React.FC = (props) => {\n\treturn (\n\t\t
\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default LogoLoader;\n","import * as React from 'react';\n\nexport const useMobileView = (size = 520) => {\n\tconst [isMobile, setIsMobile] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tconst resize = () => {\n\t\t\tsetIsMobile(window.innerWidth < size);\n\t\t};\n\n\t\tresize();\n\t\twindow.addEventListener('resize', resize);\n\t\treturn () => window.removeEventListener('resize', resize);\n\t}, []);\n\n\treturn isMobile;\n};\n","export enum Device {\n\tDesktop = 0,\n\tMobile = 1,\n\tAmp = 2\n}\n\nexport const DeviceTitle = {\n\t[Device.Desktop]: 'Desktop',\n\t[Device.Mobile]: 'Mobile',\n\t[Device.Amp]: 'AMP',\n};\n\nexport const DeviceIcon = {\n\t[Device.Desktop]: 'fa-television',\n\t[Device.Mobile]: 'fa-mobile fa-lg',\n\t[Device.Amp]: 'fa-flash',\n};\n","import React from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport {\n\tFieldProps, Form, Formik, FormikHelpers, FormikProps,\n} from 'formik';\nimport * as Yup from 'yup';\n\nimport FormikField from '@common/react/components/Forms/FormikField/FormikField';\nimport { emailValidator, phoneValidator, simpleStringValidator } from '@common/react/utils/validationHelpers';\nimport { request } from '@common/react/components/Api';\nimport PhoneInput from '@common/react/components/Forms/PhoneInput/PhoneInput';\n\nimport LogoLoader from '@commonTuna/react/components/UI/LogoLoader/LogoLoader';\nimport { useMobileView } from '@commonTuna/react/utils/useMobileView';\nimport { Device } from '@commonTuna/react/objects/Device';\n\ninterface FormValues {\n\tname: string;\n\temail: string;\n\ttext: string;\n\tphone: string;\n\tpath: string;\n\tdevice: Device;\n}\n\ninterface Props {\n\tclassName?: string;\n\tidPrefix?: string;\n\thideTitle?: boolean;\n\ttitle?: string;\n}\n\nconst initialValues: FormValues = {\n\tname: '',\n\temail: '',\n\ttext: '',\n\tphone: '',\n\tpath: '',\n\tdevice: Device.Desktop,\n};\n\nconst validationSchema = Yup.object().shape({\n\tname: simpleStringValidator,\n\tphone: phoneValidator,\n\temail: emailValidator,\n\t// text: simpleStringValidator\n});\n\nlet timer: any;\nconst successMessage = 'Thank you! Your inquiry has been successfully sent. Our manager will contact you as soon as possible';\n\nconst NewConcatForm: React.FC = ({\n\tclassName = '', idPrefix = '', hideTitle, title = 'Book Appointment',\n}) => {\n\tconst [message, setMessage] = React.useState('');\n\tconst [error, setError] = React.useState('');\n\tconst [loading, setLoading] = React.useState(false);\n\tconst [visible, setVisible] = React.useState(true);\n\n\tconst isMobile = useMobileView();\n\tconst history = useHistory();\n\n\tReact.useEffect(() => {\n\t\tif (!loading) {\n\t\t\tsetTimeout(() => setVisible(true), error ? 1000 : 5000);\n\t\t}\n\t}, [loading, error]);\n\n\tconst handleSubmit = (values: FormValues, formikHelpers: FormikHelpers) => {\n\t\tsetError('');\n\t\tsetMessage('');\n\t\tsetLoading(true);\n\t\tsetVisible(false);\n\n\t\trequest('inquiry', {\n\t\t\tname: values.name,\n\t\t\temail: values.email,\n\t\t\ttext: values.text,\n\t\t\tphone: values.phone,\n\t\t\tmobile: isMobile,\n\t\t\tpath: history.location.pathname,\n\t\t\tdevice: isMobile ? Device.Mobile : Device.Desktop,\n\t\t})\n\t\t\t.then((res) => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tsetMessage(successMessage);\n\t\t\t\t\tformikHelpers.resetForm({ values: initialValues });\n\t\t\t\t}, 800);\n\t\t\t\tsetTimeout(() => setMessage(''), 15000);\n\t\t\t})\n\t\t\t.catch((e) => {\n\t\t\t\tsetError('Something went wrong');\n\t\t\t\tsetTimeout(() => setLoading(false), 300);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tif (timer) {\n\t\t\t\t\tclearTimeout(timer);\n\t\t\t\t}\n\t\t\t\ttimer = setTimeout(() => setLoading(false), 1000);\n\t\t\t});\n\t};\n\n\tconst handleChange = (\n\t\te: React.ChangeEvent,\n\t\tform: FormikProps,\n\t\tname,\n\t) => {\n\t\tconst { value } = e.currentTarget;\n\t\tform.setFieldValue(name, value);\n\t};\n\n\treturn (\n\t\t
\n\t\t\t{(loading || error) &&
\n\t\t\t\t{loading && }\n\t\t\t\t{!loading && error &&
\n\t\t\t\t\t\n\t\t\t\t\t{' '}\n\t\t\t\t\t{error}\n\t\t\t\t
}\n\t\t\t
}\n\t\t\t{message\n\t\t\t\t&&
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t
{message}
\n\t\t\t\t
\n\t\t\t}\n\t\t\t
\n\t\t\t\t{title &&

{title}

}\n\t\t\t\t\n\t\t\t\t\t{(formikBag: FormikProps) => {\n\t\t\t\t\t\treturn (
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t) => (<>\n\t\t\t\t\t\t\t\t\t handleChange(e, form, field.name)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tSUBMIT\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t);\n\t\t\t\t\t}}\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{error &&
\n\t\t\t\t\t\t\n\t\t\t\t\t\t{' '}\n\t\t\t\t\t\t{error}\n\t\t\t\t\t
}\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default NewConcatForm;\n","module.exports = (__webpack_require__(4013))(5954);","module.exports = (__webpack_require__(4013))(8193);"],"names":["ValidFieldWrapper","fieldName","form","children","customValidCondition","errors","touched","value","getIn","values","className","defaultRender","inputProps","field","type","id","name","defaultErrorComponent","error","Object","keys","filter","key","map","join","FormikInput","fieldProps","containerClassName","render","title","inputId","showValidateAfterSubmit","ErrorComponent","withValidIndicator","htmlFor","submitCount","ErrorMessage","msg","defaultRenders","textarea","props","Field","phoneRegexp","formattedPhoneRegexp","simpleStringValidator","Yup","required","emailValidator","nullable","notRequired","matches","positive","test","email","phoneValidator","match","this","createError","message","PhoneInput","handleChange","bind","event","currentTarget","replace","format","length","i","slice","onChange","React","LogoLoader","size","withScale","len","Math","PI","strokeWidth","width","height","xmlns","r","cx","cy","style","strokeDasharray","strokeDashoffset","Device","Desktop","Mobile","Amp","timer","initialValues","text","phone","path","device","validationSchema","shape","idPrefix","hideTitle","setMessage","setError","loading","setLoading","visible","setVisible","isMobile","setIsMobile","resize","window","innerWidth","addEventListener","removeEventListener","useMobileView","history","useHistory","setTimeout","Formik","onSubmit","formikHelpers","request","mobile","location","pathname","then","res","resetForm","e","clearTimeout","formikBag","Form","setFieldValue","disabled","module","exports","__webpack_require__"],"sourceRoot":""}