{"version":3,"file":"static/chunks/2916-22297d8c82ec767f.js","mappings":"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","sources":["webpack://_N_E/../../packages/api-domru/src/api-addresses/v1/suggest.ts","webpack://_N_E/../../packages/api-domru/src/dadata/v1/address/check/index.ts","webpack://_N_E/../../packages/shared/src/hooks/useOnceExecute.ts","webpack://_N_E/../../packages/unified-address-form/src/reducer/initialState.ts","webpack://_N_E/../../packages/unified-address-form/src/reducer/reducer.ts","webpack://_N_E/../../packages/unified-address-form/src/Ctx.tsx","webpack://_N_E/../../packages/unified-address-form/src/actions/checkingFinished.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/flush.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/initialization.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/selectAddressFromList.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/setAddress.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/startChecking.ts","webpack://_N_E/../../packages/unified-address-form/src/actions/submit.ts","webpack://_N_E/../../packages/unified-address-form/src/constants/actions.ts","webpack://_N_E/../../packages/unified-address-form/src/hooks/useCtxDispatch.ts","webpack://_N_E/../../packages/unified-address-form/src/hooks/useCtxSelector.ts","webpack://_N_E/../../packages/unified-address-form/src/helpers/getErrorBySelectedSuggestion.ts","webpack://_N_E/../../packages/unified-address-form/src/selectors/getAddressState.ts","webpack://_N_E/../../packages/unified-address-form/src/containers/AddressInput.tsx","webpack://_N_E/../../packages/unified-address-form/src/selectors/getCheckerResult.ts","webpack://_N_E/../../packages/unified-address-form/src/containers/ResultMessage.tsx","webpack://_N_E/../../packages/unified-address-form/src/containers/SubmitButton.tsx","webpack://_N_E/../../packages/unified-address-form/src/selectors/getSubmitButtonProps.ts"],"sourcesContent":["import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\nconst suggest = (query: string): IRequest => ({\n uri: 'v1/addresses/suggest',\n method: 'POST',\n body: JSON.stringify({ query }),\n withProvider: true,\n});\n\nexport default suggest;\n","import { IRequest } from '@r1-frontend/shared/types/IRequest';\n\ntype TQueryParams = {\n address: string,\n salePackageId?: number,\n withReissue?: boolean,\n};\n\n/**\n * Address checking for availability of connection\n * @param address\n * @param salePackageId\n * {@link https://master.dadata-proxy.sandbox.d2c.r-one.io/docs#/Check%20address/CheckAddressController_checkAddressAction}\n */\nconst check = (params: TQueryParams): IRequest => {\n const { address, salePackageId, withReissue = false } = params;\n\n const queryParams: Record = {\n address,\n };\n\n if (salePackageId) {\n queryParams['salePackageId'] = salePackageId;\n }\n\n if (withReissue) {\n queryParams['withReissue'] = 1;\n }\n\n return {\n uri: '/v1/address/check',\n method: 'GET',\n queryParams,\n withProvider: true,\n withAuth: withReissue,\n };\n};\n\nexport default check;\n","import { useCallback, useState } from 'react';\n\n/**\n * Вызывает функцию callBack не более одного раза.\n * Использование: отправка события аналитики при начале редактирования.\n */\n// todo: Перенести в shared\nexport const useOnceExecute = (callBack: () => void): () => void => {\n const [wasCalled, setWasCalled] = useState(false);\n\n return useCallback(() => {\n !wasCalled && setWasCalled((wasCalled) => {\n if (!wasCalled) {\n callBack();\n }\n\n return true;\n });\n }, [wasCalled, callBack]);\n};\n","import { ResponseDto } from '@r1-frontend/api-domru/dadata/v1/address/check/dto/ResponseDto';\n\nexport type TOwnSuggestion = {\n city?: string,\n street?: string,\n house?: string,\n flat?: string,\n ownData: {\n unifiedHouseId?: number,\n houseId?: number,\n },\n}\n\nexport type TFailedCheckResult = {\n isConnectionAvailable: boolean,\n isTariffAvailableForActivation?: boolean,\n message: string,\n}\n\nexport type TInitialState = {\n initialized: boolean,\n isLoading: boolean,\n hasError: boolean,\n\n salePackageId?: number,\n withReissue: boolean,\n\n address: string,\n suggestionSelected: boolean,\n\n checkResult: ResponseDto | TFailedCheckResult | null,\n}\n\nexport const initialState: TInitialState = {\n initialized: false,\n isLoading: false,\n hasError: false,\n\n salePackageId: undefined,\n withReissue: false,\n\n address: '',\n suggestionSelected: false,\n\n checkResult: null,\n};\n","import type { InferValueTypes } from '@r1-frontend/shared/types/Redux';\n\nimport * as actions from '../actions';\nimport { EActions } from '../constants/actions';\n\nimport { TInitialState } from './initialState';\n\nexport type TAction = ReturnType>\n\nconst reducer = (debugMode = false): (state: TInitialState, action: TAction) => TInitialState =>\n (state: TInitialState, action: TAction): TInitialState => {\n if (debugMode) {\n console.log(action);\n console.table(state);\n }\n switch (action.type) {\n case EActions.initialization: {\n return {\n ...state,\n salePackageId: action.payload.salePackageId,\n withReissue: action.payload.withReissue,\n };\n }\n case EActions.initialized: {\n return {\n ...state,\n initialized: true,\n };\n }\n case EActions.setAddress: {\n return {\n ...state,\n address: action.payload.address,\n suggestionSelected: false,\n };\n }\n case EActions.selectAddressFromList: {\n return {\n ...state,\n suggestionSelected: true,\n hasError: action.payload.hasError,\n };\n }\n case EActions.startChecking: {\n return {\n ...state,\n isLoading: true,\n };\n }\n case EActions.checkingFinish: {\n return {\n ...state,\n isLoading: false,\n checkResult: action.payload.checkResult,\n };\n }\n case EActions.flush: {\n return {\n ...state,\n address: '',\n checkResult: null,\n };\n }\n default: {\n return { ...state };\n }\n }\n };\n\nexport default reducer;\n","import { createContext, ReactNode, useEffect } from 'react';\nimport useThunkReducer, { ThunkDispatch } from 'react-hook-thunk-reducer';\n\nimport UnifiedAddressFormAnalytics from '@r1-frontend/unified-address-form/analytics';\n\nimport { initialState, TInitialState } from './reducer/initialState';\nimport { initialization } from './actions';\nimport { reducer, TAction } from './reducer';\n\nexport type TCtxDispatch = ThunkDispatch\n\nexport type TCtx = {\n analytics: UnifiedAddressFormAnalytics,\n debugMode?: boolean,\n dispatch: TCtxDispatch,\n state: TInitialState,\n}\n\nexport type TContext = {\n analytics?: UnifiedAddressFormAnalytics,\n children: ReactNode,\n debugMode?: boolean,\n salePackageId?: number,\n withReissue?: boolean,\n}\n\nconst defaultCtxProperties: TCtx = {\n analytics: new UnifiedAddressFormAnalytics(),\n debugMode: false,\n dispatch: () => null,\n state: initialState,\n};\n\nexport const Ctx = createContext(defaultCtxProperties);\n\nconst Context = ({ children, debugMode = false, salePackageId, withReissue, analytics }: TContext): JSX.Element => {\n const [state, dispatch] = useThunkReducer(reducer(debugMode), initialState);\n\n useEffect(() => {\n dispatch(initialization(salePackageId, withReissue));\n }, []);\n\n const providerProperties = {\n ...defaultCtxProperties,\n debugMode,\n dispatch,\n state,\n };\n\n if (analytics) {\n providerProperties.analytics = analytics;\n }\n\n return \n {children}\n ;\n};\n\nexport default Context;\n","import { ResponseDto } from '@r1-frontend/api-domru/dadata/v1/address/check/dto/ResponseDto';\n\nimport { IAction } from '@r1-frontend/shared/types/Redux';\n\nimport { EActions } from '../constants/actions';\nimport { TFailedCheckResult } from '../reducer/initialState';\n\nconst checkingFinished = (checkingResult: ResponseDto | TFailedCheckResult): IAction => ({\n type: EActions.checkingFinish,\n payload: {\n checkResult: checkingResult,\n },\n});\n\nexport default checkingFinished;\n","import { IAction } from '@r1-frontend/shared/types/Redux';\n\nimport { EActions } from '../constants/actions';\n\nconst flush = (): IAction => ({\n type: EActions.flush,\n payload: null,\n});\n\nexport default flush;\n","import { IAction } from '@r1-frontend/shared/types/Redux';\n\nimport { EActions } from '../constants/actions';\n\nconst initialization = (salePackageId?: number, withReissue = false): IAction => ({\n type: EActions.initialization,\n payload: {\n salePackageId,\n withReissue,\n },\n});\n\nexport default initialization;\n","import { IAction } from '@r1-frontend/shared/types/Redux';\n\nimport { EActions } from '../constants/actions';\n\nconst selectAddressFromList = (hasError = false): IAction => ({\n type: EActions.selectAddressFromList,\n payload: {\n hasError,\n },\n});\n\nexport default selectAddressFromList;\n","import { EActions } from '@r1-frontend/unified-address-form/constants/actions';\n\nimport { IAction } from '@r1-frontend/shared/types/Redux';\n\nconst setAddress = (address: string): IAction => ({\n type: EActions.setAddress,\n payload: {\n address,\n },\n});\n\nexport default setAddress;\n","import { IAction } from '@r1-frontend/shared/types/Redux';\n\nimport { EActions } from '../constants/actions';\n\nconst startChecking = (): IAction => ({\n type: EActions.startChecking,\n payload: null,\n});\n\nexport default startChecking;\n","import { doRequest } from '@r1-frontend/do-request';\nimport suggest from '@r1-frontend/api-domru/api-addresses/v1/suggest';\nimport { ResponseDto as DadataAddressSuggestionResponse } from '@r1-frontend/api-domru/dadata/suggest/dto/ResponseDto';\nimport check from '@r1-frontend/api-domru/dadata/v1/address/check';\nimport { ResponseDto } from '@r1-frontend/api-domru/dadata/v1/address/check/dto/ResponseDto';\n\nimport UnifiedAddressFormAnalytics from '@r1-frontend/unified-address-form/analytics';\n\nimport { checkingFinished, startChecking } from '../actions/index';\nimport { TSubmitButtonResult } from '../containers/SubmitButton';\nimport { TCtxDispatch } from '../Ctx';\nimport { TInitialState } from '../reducer/initialState';\n\nconst submit = (callback: (result: TSubmitButtonResult) => void, analytics: UnifiedAddressFormAnalytics) => async(dispatch: TCtxDispatch, getState: () => TInitialState) => {\n const { address, salePackageId, withReissue } = getState();\n\n analytics.checkClicked();\n dispatch(startChecking());\n\n const checkResponse = await doRequest.dadataProxy(check({ address, salePackageId, withReissue }));\n\n let checkingResult = {\n isConnectionAvailable: false,\n isTariffAvailableForActivation: undefined,\n message: 'Не смогли проверить ваш адрес. Пожалуйста, оставьте ваши ФИО и номер телефона — мы позвоним вам и всё проверим.',\n };\n let addressConnectionCost = undefined;\n let unifiedHouseId;\n let flat = '';\n\n if (checkResponse.isSuccess) {\n const connectionPrice = checkResponse.payload.connectionPrice;\n // @todo remove ignore, write dto\n // @ts-ignore\n checkingResult = {\n ...checkResponse.payload,\n };\n\n if (!checkResponse.payload.isConnectionAvailable || !checkResponse.payload.isInternetAvailable) {\n analytics.verificationFailed('Ваш дом пока не подключён к Дом.ру');\n }\n\n // if connection unavailable we will not need unified_house_id\n if (checkResponse.payload.isConnectionAvailable) {\n addressConnectionCost = connectionPrice?.value;\n\n analytics.verificationSuccess();\n const addressData = await doRequest.r1PlatformGateway(\n suggest(address),\n );\n\n if (addressData.isSuccess) {\n // @ts-ignore\n unifiedHouseId = Number(addressData.payload.suggestions[0].data.erth.unified_house_id);\n // @ts-ignore\n flat = addressData.payload.suggestions[0].data.flat;\n } else {\n analytics.verificationFailed('Не смогли проверить ваш адрес');\n }\n }\n } else {\n analytics.verificationFailed('Не смогли проверить ваш адрес');\n }\n\n dispatch(checkingFinished(checkingResult));\n\n callback({\n ...checkingResult,\n address: {\n value: address,\n flat,\n unifiedHouseId,\n connectionCost: addressConnectionCost,\n },\n });\n};\n\nexport default submit;\n","export enum EActions {\n initialization = '@unifiedAddressForm/initialization',\n initialized = '@unifiedAddressForm/initialized',\n\n setAddress = '@unifiedAddressForm/address/set',\n selectAddressFromList = '@unifiedAddressForm/address/selectFromList',\n\n startChecking = '@unifiedAddressForm/checking/start',\n checkingFinish = '@unifiedAddressForm/checking/finished',\n\n setCheckingResult = '@unifiedAddressForm/checking/setResult',\n\n submit = '@unifiedAddressForm/submit',\n\n flush = '@unifiedAddressForm/flush',\n}\n","import { useContext } from 'react';\n\nimport { Ctx, TCtxDispatch } from '../Ctx';\n\nconst useCtxDispatch = (): TCtxDispatch => {\n const { dispatch } = useContext(Ctx);\n\n return dispatch;\n};\n\n\nexport default useCtxDispatch;\n","import { useContext } from 'react';\n\nimport { Ctx } from '../Ctx';\nimport { TInitialState } from '../reducer/initialState';\n\nconst useCtxSelector = (selector: (state: TInitialState) => T) => {\n const { state } = useContext(Ctx);\n\n return selector(state);\n};\n\nexport default useCtxSelector;\n","import { TOwnSuggestion } from '@r1-frontend/unified-address-form/reducer';\n\nconst getErrorBySelectedSuggestion = (address: string, suggestions: Record, ignoreFlat = false) => {\n if (!address || address === '') {\n return {\n hasError: false,\n message: null,\n };\n }\n\n if (!(address in suggestions)) {\n return {\n hasError: true,\n message: 'Выберите адрес из списка',\n };\n }\n\n const result = {\n hasError: true,\n message: null,\n };\n\n if (!suggestions[address].street) {\n return { ...result, message: 'Необходимо ввести улицу' };\n }\n\n if (!suggestions[address].house) {\n return { ...result, message: 'Необходимо ввести номер дома' };\n }\n\n if (!suggestions[address].flat && !ignoreFlat) {\n return { ...result, message: 'Необходимо ввести номер квартиры' };\n }\n\n return {\n hasError: false,\n message: null,\n };\n};\n\nexport default getErrorBySelectedSuggestion;\n","import { TInitialState } from '../reducer/initialState';\n\nexport type TGetAddressState = {\n selectedAddress: string,\n suggestionSelected: boolean,\n isLoading: boolean,\n}\n\nconst getAddressState = (state: TInitialState): TGetAddressState => {\n return {\n selectedAddress: state.address,\n suggestionSelected: state.suggestionSelected,\n isLoading: state.isLoading,\n };\n};\n\nexport default getAddressState;\n","import { useCallback, useContext, useState } from 'react';\n\nimport { doRequest } from '@r1-frontend/do-request';\nimport { IResponseDto } from '@r1-frontend/api-domru/api-addresses/v1/dto/ResponseDto';\nimport suggest from '@r1-frontend/api-domru/api-addresses/v1/suggest';\n\nimport { selectAddressFromList, setAddress } from '@r1-frontend/unified-address-form/actions';\nimport { Ctx } from '@r1-frontend/unified-address-form/Ctx';\nimport getErrorBySelectedSuggestion from '@r1-frontend/unified-address-form/helpers/getErrorBySelectedSuggestion';\nimport { useCtxDispatch, useCtxSelector } from '@r1-frontend/unified-address-form/hooks';\nimport { TOwnSuggestion } from '@r1-frontend/unified-address-form/reducer';\nimport getAddressState from '@r1-frontend/unified-address-form/selectors/getAddressState';\n\nimport { Paragraph5 } from '@r1-frontend/ui-react/components/typography/paragraph';\nimport Autocomplete from '@r1-frontend/ui-react/organisms/Forms/PersonForm/Autocomplete';\nimport { COLORS } from '@r1-frontend/ui-react/tokens/colors';\nimport { useOnceExecute } from '@r1-frontend/shared/hooks/useOnceExecute';\n\ninterface IProps {\n cityName?: string,\n withoutFlat?: boolean,\n}\n\n/**\n * Компонент ввода адреса\n * @param withoutFlat - не требовать ввода квартиры\n */\nconst AddressInput = ({ withoutFlat }: IProps): JSX.Element => {\n const { analytics } = useContext(Ctx);\n const dispatch = useCtxDispatch();\n const {\n selectedAddress,\n isLoading,\n } = useCtxSelector(getAddressState);\n const [suggestions, setSuggestions] = useState>({});\n\n const analyticsInputStarted = useOnceExecute(() => analytics.inputStarted());\n\n const handleOnLoadSuggestions = useCallback(async(value) => {\n const resp = await doRequest.r1PlatformGateway(\n suggest(value),\n );\n\n const processedSuggestions = resp.isSuccess\n ? resp.payload.suggestions.reduce>((acc, cur) => {\n acc[cur.value] = {\n city: cur.data?.city,\n street: cur.data?.street,\n house: cur.data?.house,\n flat: cur.data?.flat,\n ownData: {\n unifiedHouseId: cur.data?.erth?.unified_house_id,\n houseId: cur.data?.erth?.house_id,\n },\n };\n return acc;\n }, {})\n : {};\n setSuggestions(processedSuggestions);\n return Object.keys(processedSuggestions);\n }, []);\n\n const handleSelectAddress = (value: string) => {\n analyticsInputStarted();\n dispatch(setAddress(value));\n if (value in suggestions) {\n analytics.selectAddress();\n dispatch(selectAddressFromList(getErrorBySelectedSuggestion(value, suggestions, !!withoutFlat).hasError));\n }\n };\n\n const error = getErrorBySelectedSuggestion(selectedAddress, suggestions, !!withoutFlat);\n\n return <>\n \n {error.hasError && (\n \n {error.message}\n \n )}\n ;\n};\n\nexport default AddressInput;\n","import { TAlertTypes } from '@r1-frontend/ui-react/components/Alert/TAlertTypes';\n\nimport { TInitialState } from '../reducer/initialState';\n\nexport type TNotChecked = {\n checked: false,\n alertType: 'info',\n message: null,\n};\n\nexport type TCheckResult = {\n checked: true,\n alertType: TAlertTypes,\n message: string,\n}\n\nconst getCheckerResult = (state: TInitialState): TNotChecked | TCheckResult => {\n const { checkResult } = state;\n\n if (!checkResult) {\n return { checked: false, alertType: 'info', message: null };\n }\n\n let alertType: TAlertTypes = 'success';\n\n if (checkResult) {\n const { isConnectionAvailable, isTariffAvailableForActivation } = checkResult;\n\n if (!isConnectionAvailable) {\n alertType = 'error';\n } else if (!isTariffAvailableForActivation) {\n alertType = 'info';\n }\n }\n\n\n return {\n checked: true,\n alertType,\n message: checkResult.message,\n };\n};\n\nexport default getCheckerResult;\n","import Alert from '@r1-frontend/ui-react/components/Alert';\nimport { Paragraph4 } from '@r1-frontend/ui-react/components/typography/paragraph';\n\nimport { useCtxSelector } from '../hooks';\nimport getCheckerResult from '../selectors/getCheckerResult';\n\nconst ResultMessage = (): JSX.Element | null => {\n const { checked, alertType, message } = useCtxSelector(getCheckerResult);\n\n if (!checked) {\n return null;\n }\n\n return \n \n ;\n};\n\nexport default ResultMessage;\n","import { useContext } from 'react';\n\nimport { ResponseDto } from '@r1-frontend/api-domru/dadata/v1/address/check/dto/ResponseDto';\n\nimport { Ctx } from '@r1-frontend/unified-address-form/Ctx';\n\nimport Button, { TButtonProps } from '@r1-frontend/ui-react/components/buttons/button';\n\nimport submit from '../actions/submit';\nimport { useCtxDispatch, useCtxSelector } from '../hooks';\nimport { TFailedCheckResult } from '../reducer/initialState';\nimport getSubmitButtonProps from '../selectors/getSubmitButtonProps';\n\nexport type TSubmitButtonResult = (ResponseDto | TFailedCheckResult) & {\n address: {\n value: string,\n flat: string,\n unifiedHouseId?: number,\n connectionCost?: number,\n },\n};\n\ntype TSubmitButtonProps = Omit & {\n onClick: (result: TSubmitButtonResult) => void,\n}\n\nconst SubmitButton = ({ onClick, ...buttonProps }: TSubmitButtonProps): JSX.Element => {\n const { analytics } = useContext(Ctx);\n const dispatch = useCtxDispatch();\n const { disabled } = useCtxSelector(getSubmitButtonProps);\n\n const handleSubmit = () => {\n dispatch(submit(onClick, analytics));\n };\n\n // @ts-ignore TS2769: No overload matches this call.\n return