{"version":3,"file":"static/js/1647.chunk.js","mappings":"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","sources":["common/components/ContentBuilder/ContentBuilder.tsx","common/components/ContentBuilder/ContentBuilderItem.tsx","common/hooks/useLetsTalkFormDictionary.ts","common/hooks/useRedirect404.ts","features/main/pages/MainPage.tsx"],"sourcesContent":["import React from 'react';\r\n\r\nimport { cn } from '../../utils/bem';\r\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\r\n\r\nimport { ContentBuilderItem } from './ContentBuilderItem';\r\nimport { nanoid } from '@reduxjs/toolkit';\r\nimport { RoutePaths } from '../../../router';\r\nimport { IContent } from '../../../types/common';\r\nimport { IDictionariesForm } from '../Form/models';\r\n\r\nexport type BodyType = Record<\r\n string,\r\n string | number | boolean | null | undefined\r\n>;\r\n\r\ntype Props = {\r\n items?: IContent[];\r\n aliases?: RoutePaths;\r\n dictionariesForm?: IDictionariesForm;\r\n onSubmitForm?: (body: BodyType) => Promise;\r\n onSubmitFileForm?: (body: BodyType) => Promise;\r\n CtaScrollerBtnLink?: string;\r\n pageId?: number | null;\r\n recaptchaKey?: string;\r\n titleTag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\r\n studyCardBtnText?: string | undefined;\r\n};\r\n\r\nexport const cnContentBuilder = cn('ContentBuilder');\r\n\r\nexport const ContentBuilder: React.FC = props => {\r\n const { items, aliases, ...otherProps } = usePropsHandler(\r\n cnContentBuilder(),\r\n props\r\n );\r\n\r\n return (\r\n
\r\n {items &&\r\n items.map(item => (\r\n
\r\n \r\n
\r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport { ContentBuilderItem } from './ContentBuilderItem';\r\n","import React from 'react';\r\n\r\nimport { cn } from '../../utils/bem';\r\nimport { usePropsHandler } from '../EventInterceptor/usePropsHandler';\r\nimport {\r\n BackgroundDecor,\r\n BackgroundDecorPropView,\r\n} from '@dataartdev/uikit/BackgroundDecor';\r\nimport { SiteBlock } from '../SiteBlock/SiteBlock';\r\n\r\nimport Components from './templates';\r\nimport { RoutePaths } from '../../../router';\r\nimport { BodyType } from './ContentBuilder';\r\nimport { Member } from './templates/models/CTI_3.props';\r\nimport { IContent } from '../../../types/common';\r\nimport { IDictionariesForm } from '../Form/models';\r\n\r\ninterface Props {\r\n type: number;\r\n items?: IContent[];\r\n id?: string;\r\n background?: BackgroundDecorPropView;\r\n contentId?: string | null;\r\n aliases?: RoutePaths;\r\n dictionariesForm?: IDictionariesForm;\r\n topGap?: string;\r\n bottomGap?: string;\r\n pageId?: number | null;\r\n title?: string;\r\n text?: string;\r\n recaptchaKey?: string;\r\n onSubmitForm?: (body: BodyType) => Promise;\r\n contentPaddingsOn?: boolean;\r\n hideContainer?: boolean;\r\n gridColumns?: number;\r\n member?: Member;\r\n}\r\n\r\nexport const cnContentBuilderItem = cn('ContentBuilderItem');\r\n\r\nexport function ContentBuilderItem(\r\n props: Props\r\n): React.ReactElement> | null {\r\n const {\r\n type,\r\n background,\r\n contentPaddingsOn,\r\n topGap = !contentPaddingsOn ? (type !== 37 ? '6xl' : '') : '',\r\n bottomGap = !contentPaddingsOn ? (type !== 37 ? '5xl' : '') : '',\r\n hideContainer,\r\n gridColumns = 12,\r\n ...otherProps\r\n } = usePropsHandler>(cnContentBuilderItem(), props);\r\n\r\n const TemplateTag = Components[\r\n type as keyof typeof Components\r\n ] as React.ComponentType>;\r\n\r\n if (!TemplateTag) return null;\r\n\r\n return (\r\n \r\n {background && }\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { useSelector } from 'react-redux';\r\nimport { dictionariesSelector } from '../../store';\r\nimport { CompanySiteCaseStudy, CompanySiteForm } from '../../types/store';\r\nimport { IDictionariesForm } from '../components/Form/models';\r\n\r\ntype TF = () => {\r\n companySiteForm: CompanySiteForm | undefined;\r\n dictionariesForm: IDictionariesForm;\r\n companySiteFormLetsTalkTitle: string | undefined;\r\n companySiteFormLetsTalkText: string | undefined;\r\n companySiteTableOfContent: string | undefined;\r\n companySiteCaseStudy: CompanySiteCaseStudy | undefined;\r\n linkLabel: string | undefined;\r\n badgeLabel: string | undefined;\r\n};\r\nexport const useLetsTalkFormDictionary: TF = () => {\r\n const {\r\n companySiteForm,\r\n companySiteTableOfContent,\r\n companySiteAllCasesStudy,\r\n companySiteCaseStudy,\r\n } = useSelector(dictionariesSelector) || {};\r\n const {\r\n companySiteFormLetsTalkName,\r\n companySiteFormLetsTalkAddInfo,\r\n companySiteFormLetsTalkEmail: {\r\n companySiteFormLetsTalkEmailError = '',\r\n } = {},\r\n companySiteFormLetsTalkTrackingID,\r\n companySiteFormLetsTalkRequiredField,\r\n companySiteFormLetsTalkSubmit,\r\n companySiteFormLetsTalkCompany,\r\n companySiteFormLetsTalkSuccessTitle,\r\n companySiteFormLetsTalkSuccessText,\r\n companySiteFormLetsTalkTitle,\r\n companySiteFormLetsTalkText,\r\n companySiteFormLetsTalkCompanyErrors: {\r\n companySiteFormLetsTalkCompanyMinCharactersError = '',\r\n companySiteFormLetsTalkCompanyMaxCharactersError = '',\r\n } = {},\r\n companySiteFormLetsTalkSubscribePolicy,\r\n companySiteFormLetsTalkPhone: {\r\n companySiteFormPhoneLetsTalkError = '',\r\n } = {},\r\n companySiteFormLetsTalkFirstName,\r\n companySiteFormLetsTalkLastName,\r\n companySiteFormLetsTalkMessage,\r\n } = companySiteForm?.companySiteFormLetsTalk || {};\r\n\r\n const dictionariesForm = {\r\n name: {\r\n label: companySiteFormLetsTalkName,\r\n },\r\n firstName: {\r\n label: companySiteFormLetsTalkFirstName,\r\n },\r\n lastName: {\r\n label: companySiteFormLetsTalkLastName,\r\n },\r\n phone: {\r\n label: 'Phone',\r\n error: companySiteFormPhoneLetsTalkError,\r\n },\r\n company: {\r\n label: companySiteFormLetsTalkCompany,\r\n error: {\r\n minError: companySiteFormLetsTalkCompanyMinCharactersError,\r\n maxError: companySiteFormLetsTalkCompanyMaxCharactersError,\r\n },\r\n },\r\n email: {\r\n label: 'Email',\r\n error: companySiteFormLetsTalkEmailError,\r\n },\r\n message: {\r\n label: companySiteFormLetsTalkMessage,\r\n },\r\n addInfo: {\r\n label: companySiteFormLetsTalkAddInfo,\r\n },\r\n success: {\r\n title: companySiteFormLetsTalkSuccessTitle,\r\n text: companySiteFormLetsTalkSuccessText,\r\n },\r\n required: companySiteFormLetsTalkRequiredField,\r\n button: companySiteFormLetsTalkSubmit,\r\n submitButtonID: companySiteFormLetsTalkTrackingID,\r\n policy: companySiteFormLetsTalkSubscribePolicy,\r\n };\r\n\r\n const {\r\n companySiteAllCasesStudyLinkLabel: linkLabel,\r\n companySiteAllCasesStudyBadgeLabel: badgeLabel,\r\n } = companySiteAllCasesStudy || {};\r\n\r\n return {\r\n companySiteForm,\r\n dictionariesForm,\r\n companySiteFormLetsTalkTitle,\r\n companySiteFormLetsTalkText,\r\n companySiteTableOfContent,\r\n companySiteCaseStudy,\r\n linkLabel,\r\n badgeLabel,\r\n };\r\n};\r\n","import { useEffect } from 'react';\r\nimport { redirect404 } from '../../router';\r\nimport { AxiosError } from 'axios';\r\nimport { History } from 'history';\r\n\r\ntype TF = (error: AxiosError | null, history: History) => void;\r\n\r\nexport const useRedirect404: TF = (error, history) => {\r\n useEffect(() => {\r\n if (error && error.response && error.response.status === 404) {\r\n redirect404(history);\r\n }\r\n\r\n if (error && error.response && error.response.status === 400) {\r\n history.replace({ ...history.location, state: { is400: true } });\r\n }\r\n }, [error, history]);\r\n};\r\n","import './MainPage.scss';\r\n\r\nimport React from 'react';\r\nimport { RouteComponentProps } from 'react-router-dom';\r\nimport { useDataQuery, useGTMDataSend } from 'common/hooks';\r\nimport { queryHomePage } from 'network';\r\nimport { PATH, RouteParams } from 'router';\r\nimport { cn } from 'ui/utils/bem';\r\nimport { ContentBuilder } from '../../../common/components/ContentBuilder/ContentBuilder';\r\nimport { mutationMainForm } from '../../../network';\r\nimport { useIntl } from 'react-intl';\r\nimport { useLetsTalkFormDictionary } from '../../../common/hooks/useLetsTalkFormDictionary';\r\nimport { useRedirect404 } from '../../../common/hooks/useRedirect404';\r\n\r\nconst cnMainPage = cn('MainPage');\r\n\r\ntype Props = RouteComponentProps & {};\r\n\r\nconst MainPage: React.FC = ({ history }) => {\r\n const { locale } = useIntl();\r\n const { loading, data, error } = useDataQuery(queryHomePage, {\r\n locale,\r\n });\r\n\r\n const { dictionariesForm } = useLetsTalkFormDictionary();\r\n const { metaTitle, content, id } = data || {};\r\n\r\n useRedirect404(error, history);\r\n useGTMDataSend(metaTitle);\r\n\r\n return (\r\n <>\r\n {!loading && (\r\n <>\r\n
\r\n await mutationMainForm({ body })}\r\n />\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MainPage;\r\n"],"names":["cnContentBuilder","cn","ContentBuilder","props","items","aliases","otherProps","usePropsHandler","_jsx","className","children","map","item","ContentBuilderItem","id","nanoid","cnContentBuilderItem","type","background","contentPaddingsOn","topGap","bottomGap","hideContainer","gridColumns","TemplateTag","Components","_jsxs","SiteBlock","BackgroundDecor","view","useLetsTalkFormDictionary","companySiteForm","companySiteTableOfContent","companySiteAllCasesStudy","companySiteCaseStudy","useSelector","dictionariesSelector","companySiteFormLetsTalkName","companySiteFormLetsTalkAddInfo","companySiteFormLetsTalkEmail","companySiteFormLetsTalkEmailError","companySiteFormLetsTalkTrackingID","companySiteFormLetsTalkRequiredField","companySiteFormLetsTalkSubmit","companySiteFormLetsTalkCompany","companySiteFormLetsTalkSuccessTitle","companySiteFormLetsTalkSuccessText","companySiteFormLetsTalkTitle","companySiteFormLetsTalkText","companySiteFormLetsTalkCompanyErrors","companySiteFormLetsTalkCompanyMinCharactersError","companySiteFormLetsTalkCompanyMaxCharactersError","companySiteFormLetsTalkSubscribePolicy","companySiteFormLetsTalkPhone","companySiteFormPhoneLetsTalkError","companySiteFormLetsTalkFirstName","companySiteFormLetsTalkLastName","companySiteFormLetsTalkMessage","companySiteFormLetsTalk","dictionariesForm","name","label","firstName","lastName","phone","error","company","minError","maxError","email","message","addInfo","success","title","text","required","button","submitButtonID","policy","companySiteAllCasesStudyLinkLabel","linkLabel","companySiteAllCasesStudyBadgeLabel","badgeLabel","useRedirect404","history","useEffect","response","status","redirect404","replace","location","state","is400","cnMainPage","_ref","locale","useIntl","loading","data","useDataQuery","queryHomePage","metaTitle","content","useGTMDataSend","_Fragment","pageId","PATH","onSubmitForm","async","mutationMainForm","body"],"sourceRoot":""}