{"version":3,"mappings":"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,CACE,KAAM,UACN,QAAS,8BACT,SAAU,qCACV,MAAO,CACT,EACA,CACE,KAAM,UACN,QAAS,sCACT,SAAU,OACV,MAAO,CACT,EACA,CACE,KAAM,SACN,QAAS,wBACT,SAAU,sCACV,MAAO,CACT,EACA,CACE,KAAM,eACN,QAAS,4BACT,SAAU,iEACV,MAAO,EACT,EACA,CACE,KAAM,UACN,QAAS,wBACT,SAAU,0CACV,MAAO,EACT,EACA,CACE,KAAM,SACN,QAAS,wFACT,SAAU,iGACV,MAAO,EACT,EACA,CACE,KAAM,WACN,QAAS,wDACT,SAAU,yDACV,MAAO,EACT,EACA,CACE,KAAM,YACN,QAAS,uDACT,SAAU,2CACV,MAAO,EACT,EACA,CACE,KAAM,aACN,QAAS,uBACT,SAAU,OACV,MAAO,EACT,EACA,CACE,KAAM,QACN,QAAS,6CACT,SAAU,mBACV,MAAO,EACT,EACA,CACE,KAAM,WACN,QAAS,uDACT,SAAU,sDACV,MAAO,EACT,EACA,CACE,KAAM,mBACN,QAAS,uCACT,SAAU,+CACV,MAAO,EACT,EACA,CACE,KAAM,cACN,QAAS,mDACT,SAAU,yCACV,MAAO,EACT,EACA,CACE,KAAM,cACN,QAAS,qBACT,SAAU,2EACV,MAAO,EACT,EACA,CACE,KAAM,QACN,QAAS,sCACT,SAAU,uCACV,MAAO,EACT,EACA,CACE,KAAM,YACN,QACE,0GACF,SAAU,iDACV,MAAO,EACT,EACA,CACE,KAAM,iBACN,QAAS,4EACT,SAAU,OACV,MAAO,EACT,EACA,CACE,KAAM,kBACN,QAAS,oFACT,SAAU,OACV,MAAO,EACT,EACA,CACE,KAAM,QACN,QAAS,+BACT,SAAU,qCACV,MAAO,EACT,EACA,CACE,KAAM,cACN,QAAS,kCACT,SAAU,OACV,MAAO,EACT,EACA,CACE,KAAM,WACN,QAAS,oBACT,SAAU,iFACV,MAAO,EACT,EACA,CACE,KAAM,SACN,QAAS,uEACT,SAAU,qCACV,MAAO,EACT,EACA,CACE,KAAM,SACN,QAAS,oEACT,SAAU,uCACV,MAAO,EACT,EACA,CACE,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AG,iDACH,EAAG,2EACL,EACA,CACE,EAAG,qCACH,EAAG,sPACL,EACA,CACE,EAAG,iEACH,EAAG;AAAA;AAAA,IACL,EACA,CACE,EAAG,kEACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CACL,EACA,CACE,EAAG,0DACH,EAAG;AAAA,CACL,EACA,CACE,EAAG,wFACH,EAAG,yGACL,EACA,CACE,EAAG,uDACH,EAAG,wbACL,EACA,CACE,EAAG,oCACH,EAAG,shCACL,EACA,CACE,EAAG,qCACH,EAAG,wMACL,EACA,CACE,EAAG,oCACH,EAAG,4XACL,EACA,CACE,EAAG,oCACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACL,EACA,CACE,EAAG,iFACH,EAAG;AAAA;AAAA,CACL,EACA,CACE,EAAG,yCACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACL,EACA,CACE,EAAG,2EACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACL,EACA,CACE,EAAG,qEACH,EAAG;AAAA,KACL,EACA,CACE,EAAG,6BACH,EAAG;AAAA;AAAA;AAAA,KACL,EACA,CACE,EAAG,sBACH,EAAG,0VACL,EACA,CACE,EAAG,mCACH,EAAG,s/BACL,EACA,CACE,EAAG,8CACH,EAAG;AAAA,CACL,EACA,CACE,EAAG,8BACH,EAAG;AAAA,KACL,EACA,CACE,EAAG,wCACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACL,EACA,CACE,EAAG,qBACH,EAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CACL,CACF,EAEaC,GAA4B,CACvC,CACE,EAAG,yCACH,EAAG,2GACL,EACA,CACE,EAAG,+GACH,EAAG,kUACL,EACA,CACE,EAAG,8EACH,EAAG,4EACL,EACA,CACE,EAAG,0CACH,EAAG,gJACL,EACA,CACE,EAAG,0BACH,EAAG,iOACL,EACA,CACE,E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EkpB,QAAS,QACTlpB,KAAM,uLAER,CACEkpB,QAAS,QACTlpB,KAAM,uHAER,CACEkpB,QAAS,QACTlpB,KAAM,+IACP,GAGL,CACEkpB,QAAS,MACTlpB,KAAM,gEACN+yF,YAAa,CACX,CACE7pE,QAAS,QACTlpB,KAAM,4uCAER,CACEkpB,QAAS,QACTlpB,KAAM,iQAER,CACEkpB,QAAS,QACTlpB,KAAM,meAER,CACEkpB,QAAS,QACTlpB,KAAM,gsBAER,CACEkpB,QAAS,QACTlpB,KAAM,kMAER,CACEkpB,QAAS,QACTlpB,KAAM,uSAER,CACEkpB,QAAS,QACTlpB,KAAM,2cAER,CACEkpB,QAAS,QACTlpB,KAAM,wRACP,GAGL,CACEkpB,QAAS,MACTlpB,KAAM,8YACP,GAGL,CACEU,MAAO,qDACPlG,QAAS,CACP,CACE0uB,QAAS,MACTlpB,KAAM,ocAER,CACEkpB,QAAS,MACTlpB,KAAM,6QAER,CACEkpB,QAAS,MACTlpB,KAAM,orBAER,CACEkpB,QAAS,MACTlpB,KAAM,6OAER,CACEkpB,QAAS,MACTlpB,KAAM,geACN+yF,YAAa,CACX,CACE7pE,QAAS,QACTlpB,KAAM,sEAER,CACEkpB,QAAS,QACTlpB,KAAM,8EAER,CACEkpB,QAAS,QACTlpB,KAAM,+BAER,CACEkpB,QAAS,QACTlpB,KAAM,6KAER,CACEkpB,QAAS,QACTlpB,KAAM,8DAER,CACEkpB,QAAS,QACTlpB,KAAM,uGACP,GAGL,CACEkpB,QAAS,MACTlpB,KAAM,+lBAER,CACEkpB,QAAS,MACTlpB,KAAM,uQAER,CACEkpB,QAAS,MACTlpB,KAAM,8QAER,CACEkpB,QAAS,MACTlpB,KAAM,2WAER,CACEkpB,QAAS,OACTlpB,KAAM,uVAER,CACEkpB,QAAS,OACTlpB,KAAM,ijBAER,CACEkpB,QAAS,OACTlpB,KAAM,uHAER,CACEkpB,QAAS,OACTlpB,KAAM,iWAER,CACEkpB,QAAS,OACTlpB,KAAM,6JAER,CACEkpB,QAAS,OACTlpB,KAAM,kFAER,CACEkpB,QAAS,OACTlpB,KAAM,05BAER,CA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","names":["appConfigDev","appConfigProd","appConfigStage","appConfig","getConfig","prod","stage","dev","config","getEnvironment","ELockPhoto","ElockReason","ElockInfoStatus","getSharedKey","key","getLkGeneralKey","STORAGE_PREFIX","STORAGE_KEY","memoryStorage","setLocalStorageData","value","jsonValue","fullKey","getFullKey","clearLocalStorageData","getLocalStorageData","PromoRoutesEnum","PromoGeRoutesEnum","AuthRoutesEnum","LKRoutesEnum","HttpResponseError","response","message","data","assertHttpResponse","fullUrlPrev","requestPrev","isSuccess","error","status","serverErrorMsg","msg","request","body","fullUrl","resp","handle401Error","_b","_a","_d","_c","HttpService","prefixUrl","newPrefixUrl","url","options","method","requestFromPromo","headers","disableToken","token","xRequestId","errorCodeLabel","i18next","retryResp","prefix","apiUrl","__publicField","toCamelCase","str","match","isObject","item","convertKeysToCamelCase","obj","newObject","camelCaseKey","TicketType","TicketReason","TicketPhotoType","TicketStatus","ticketsService","ticketApi","result","ticketId","grade","WEB_LINK_REGEXP","NOT_NUMBERS_REGEXP","TELEGRAM_REGEXP","ALL_EXCEPT_NUMBERS_REGEXP","NOT_LATIN_CYRILLIC_HYPHEN","NOT_LATIN_CYRILLIC","REPLACE_NOT_NUMBERS_REGEXP","uuid4","uuid","ii","SCROLL_TO_ID","SECTIONS_IDS","colors","DATE_FORMAT_DEFAULT","DATE_FORMAT_WITH_TIME","TIME_FORMAT","DATE_FORMAT_EMPTY_TIME","SEARCH_PARAMS","VIDEO_FORMATS","PHOTO_FORMATS","VIDEO_VALIDATE","PHOTO_VALIDATE","CHECK_NETWORK_URL","widths","getArrayQueryParam","items","acc","getQueryUrl","apiService","promoService","metricsService","appMgmtService","apiDiscoveryService","requests","patch","isoString","userAgent","platform","queryUrl","dayjs","api","FileEntityType","divideBase64","base64","dividedMap","partsCount","i","FileService","entityId","entityType","files","isTicket","savedFiles","promiseFiles","content","totalSize","res","file","chunkToData","chunkNum","fileService","discoveryService","eLockApi","eLockName","orderId","photos","employeeId","lockName","lockNoSet","ttl","tokenType","updatedFields","reasonForm","Alert","props","jsx","AlertAntd","Button","children","type","newType","style","disabled","buttonColor","orange","ButtonAntd","backgroundColor","undefined","Checkbox","CheckboxAntd","Col","ColAntd","Collapse","size","CollapseAntd","Divider","DividerAntd","Drawer","DrawerAntd","Dropdown","DropdownAntd","Flex","FlexAntd","Form","layout","FormAntd","FormItem","Image","ImageAntd","Input","InputAntd","InputOTP","Search","TextArea","className","Header","Layout","s","Menu","MenuAntd","Modal","centered","ModalAntd","Pagination","PaginationAntd","Popover","PopoverAntd","Rate","RateAntd","Select","optionFilterProp","SelectAntd","Skeleton","active","SkeletonAntd","Space","SpaceAntd","Steps","StepsAntd","Link","LinkAntd","Typography","text","Paragraph","ParagraphAntd","Text","TextAntd","Title","TitleAntd","level","classes","classNames","title","titleLevel1","titleLevel2","titleLevel3","titleLevel4","titleLevel5","RangePicker","TimeRangePickerAntd","TimePicker","TimeRangePicker","Tooltip","TooltipAntd","StatusUIType","green","red","corp","gray","getColorFromType","corpMain","secondary","Status","smallSize","border","color","fontSize","PickPointFileType","PickPointType","Country","CurrencyFromCountry","SupportedLanguages","USER_PERMISSION","hostName","OrderStatus","PickPointLocation","CouriersAccess","OrderPaymentStatus","SignboardSize","SignboardFormat","ConfirmedToOpen","FurnitureOrderType","SubsidyHexType","OrderKeys","entranceItems","pickPointLocationLabels","floorItems","couriersAccessItems","orderStatusTranslator","pickPointTypeOptions","timetableGeneralOptions","eLockReasonOptions","regionsWithReferralCode","subsidySumKey","countriesWithSubsidy","getSeparatedFiles","newFiles","oldFiles","photo","getKey","ElockReasonModel","makeAutoObservable","notification","newPhotos","oldPhotos","uploadedPhotos","__decorateClass","observable","action","ELockApiStore","uiStore","savedPhotos","photoItem","index","ELockUiStore","rootStore","makeObservable","computed","employeeApi","shard","getHashCode","strOrObject","hash","char","Entity","entity","BaseStore","totalCount","entities","ent","obj1","obj2","_Employee","userId","other","pvzId","Employee","EmployeeStore","UserModuleKeys","DEVICE_TYPE","PersonalDataStep","PersonalDataStep2","DocTypeParam","DocumentType","UrlType","Citizenship","TaxTypes","TaxCheckStatusType","CompanyType","GenderNumber","PASSPORT_STATUSES","OWNER_STATUS","GENDER","taxCheckStatusName","STEPS_TITLES","countriesWithMultipleDocuments","countriesAuth","countries","citizenshipOptions","documentsTypeOptions","identificationCardLabels","companyNameWithCompanyType","countryInnValue","accountDetails","DaDataOrderLoadProp","genderOptions","PassportPhotos","PassportPhotos2","AppCountryPhoneViewModel","EmployeeActiveStatus","activeEmployeeOptions","MIN_NAME_LENGTH","ViewEmployeeApiStore","ViewEmployeeUiStore","PICKPOINT_DESCRIPTION_MIN","PICKPOINT_DESCRIPTION_MAX","COURIER_WAY_MAX","DEFAULT_START_TIME","DEFAULT_END_TIME","DEFAULT_GENERAL_TIME","MIN_WORKING_DAYS","MIN_OPENING_HOURS","MIN_PUBLIC_PHOTO","defaultFileData","DEFAULT_WEEK_DAYS","signboardSizeOptions","signboardFormatOptions","getOrderModuleKey","getOrderPageKey","getCreateOrderPageKey","getActivateOrderPageKey","getOrderItemPageKey","getOrderFilesStepKey","getOrderWorkConditionsStepKey","getOrderRequirementsStepKey","parseTariffDescription","tariffDescription","tariffDescriptionArray","parsed","getMedia","actualUrls","hasActualUrls","videos","documents","isDocument","getActualUrls","reqVideos","video","reqPhotos","reqDocuments","getTimetableModel","timetable","openClose","days","day","defaultTimeTable","SendByType","_OrderComment","dto","OrderComment","_Order","comments","stockArea","comment","Order","PickPointFilesViewModel","typedPhoto","pickPointFileTypeKeys","typedKey","actionType","photosForCreation","photosForActivation","doc","isOrder","oldVideos","oldDocuments","newVideos","newDocuments","x","savedVideos","savedDocuments","captureException","id","service","camerasService","ordersApi","area","lat","lon","typePoint","page","pageSize","converted","externalPickPointId","vendor","login","password","description","willOpen","referralCode","coordinates","tariff","OrderCCTVApiStore","model","OrderCCTVModel","isEqual","ActivateOrderApiStore","disableLoadList","ActivateOrderUiStore","order","format","fileList","document","OrderLocationViewModel","country","subsidy","subsidyKeyTranslated","subsidySumKeyTranslated","subsidyLabel","changeCoordinates","streetWithoutHouse","street","TimetableModel","pvz","timetableModel","weekDays","isDayOff","endHours","startHours","endMinutes","startMinutes","pickPointType","floorLevel","start","end","OrderWorkConditionsViewModel","sendEvent","eventName","params","SectionName","EventType","AdriverEventType","CreateOrderApiStore","location","CreateOrderUiStore","OrderStore","orders","ViewOrderApiStore","ViewOrderUiStore","reaction","a","b","commentItem","messageItem","moment","workConditions","pvzApi","updatedFieldsLocal","pickpointId","EditAreaStatus","TimetableStatus","ratingRanges","MIN_UPDATE_REASON_LENGTH","PvzKeys","timetableStatusTranslator","_Pvz","Pvz","PvzStore","pvzList","PvzAreaViewModel","ViewPvzApiStore","selectedPvz","areaModel","ViewPvzUiStore","pvzRoleInfo","MIN_DESCRIPTION_LENGTH","initialTicketFileValue","TicketKeys","ticketTypeLabels","ticketReasonLabels","ticketTypeOptions","ticketReasonOptions","ticketStatusTranslator","ticketStatusOptions","ticketPhotoValidate","ticketFileValidate","ticketGradeTranslator","CreateTicketUiStore","reason","descriptionProblem","_Ticket","log","Ticket","TicketStore","disableLoading","tickets","ticket","ViewTicketApiStore","ViewTicketUiStore","isSameLink","TimeWaiter","sunOfSec","codeEta","isGeDomain","currentDomain","savedIsStage","httpService","discoveryHttpService","authHttpService","offerHttpService","userApi","param","countryСode","version","countryCode","docType","citizenship","mobileToken","authHash","LoginStatus","LoginUiStore","resend","code_length","code","mask","OfferApiStore","success","getApiKey","OfferUiStore","offers","offer","needSignOffer","SvgArrow1","React.createElement","ButtonPromo","variant","fullWidth","round","onClick","btn","ArrowIcon","arrowIcon","Href","href","linkType","target","download","white","HashLink","getAltFromSrc","src","canPush","alt","Chat","messages","t","useTranslation","ref","useRef","useEffect","current","length","scrollTop","scrollHeight","map","messageWrap","me","jsxs","messageFromMe","messageNotFromMe","name","timeWrap","time","TextPromo","fontFamily","weight","pointer","center","underline","classnames","cls","InputPromo","suffix","onChangeText","onChange","inputRef","containerStyle","isFocused","setIsFocused","useState","inputWrapper","inputWrapperFocused","marginRight","black","input","SUPPORTED_LANGUAGES","getNormalizedLanguage","currentLanguage","i18n","isLanguage","language","LangSwitcher","languageMapping","ru","ka","label","changeLanguage","then","setItem","window","reload","menu","marginTop","langSwitcher","GlobalOutlined","Margin","m","mt","mb","ml","mr","mx","my","margin","getStyle","styles","marginBottom","marginLeft","Padding","p","pt","pb","pl","pr","px","py","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","ReactSelect","async","isSearchable","Fragment","MySelectAsync","theme","primary25","corpLight","primary","MySelect","direction","width","height","masks","phonePrefix","getPhoneWithoutPrefix","phone","startsWith","slice","phoneAMlength","CountryPhoneInput","setPhone","setSelectedCountry","disableCountry","phoneAM","countryPhoneInput","AM","localizedCountries","useMemo","localizedCountry","handlePaste","event","preventDefault","pasteData","clipboardData","getData","replace","countryPrefix","formattedNumber","find","codeInput","InputMask","phoneInput","e","cisPassportData","RequisitesCIS","passport","DepartmentCodeFormat","documentNumberFormat","fioPlaceholders","passportIssuedPlaceholders","regExpOnlyLatin","validateAnBik","account","bik","bikRs","checksum","coefficients","getDataKey","CompanyDetailsViewModel","payAccount","setPrefix","digits","innResponse","bikResponse","inn","payAccountWithPrefix","convertedPayAccount","validRegexp","clearFile","suggestions","activeIndex","cb","mapValue","passportRequisites","maxLenght","_","payAccountExtremum","tmpBik","ProfileViewModel","_e","countryItemAdditionalPhone","ValidatePersonalDataStore","profile","companyDetails","isInvalid","company","selectedCountry","toJS","ProfileApiStore","dateOfBirthday","dateOfIssue","departmentCode","documentPhoto","gender","passportIssued","placeOfBirth","registrationAddress","permanentResidenceAddress","identificationNumber","userInfo","legalAddress","ownerId","updateFields","withDocumentPhoto","documentType","expirationDate","nationality","socialCardNumber","documentNumber","personalNumber","iin","innCitizen","firstName","lastName","middleName","genderNumber","getPassportData","passportData","basePassport","expiration_date","bankName","companyName","corAccount","companyType","gln","getRequisitesData","requisitesData","idCard","ProfileUiStore","snils","additionalPhoneModel","telegramLogin","additionalPhone","countryItem","RegistartionApiStore","RegistrationUiStore","formateTime","date","hours","minutes","searchEngineV2HttpService","searchEngineV2Api","MAX_MESSAGE_LENGTH","INITIAL_MESSAGE","DialogBranches","chatIcon","RegularChatBranch","SearchEngineUiStore","serverTime","timeMatch","AppStore","info","additional_phone_country","middle_name","countryTmp","additionalPhoneCountryTmp","user_id","owner","deviceId","RootStore","r","RootStoreContext","createContext","Provider","useStore","store","useContext","ActionType","ActionType2","adminMenuUiStateReducer","state","blocks","blockIndex","initialAdminMenuUiState","AdminMenuUiStateContext","dispatch","AdminMenuUiStateProvider","React","useReducer","promoPageStateReducer","array","oldElem","el","newElem","currentSection","stateSection","parsedSectionFromServer","saveSection","section","setSections","sections","setIsChangesUpdatingBlocked","dots","BlockWrap","textFontSize","bgColor","setDraggable","useContextSelector","PromoPageStateContext","context","isVisible","setVisible","clickHandler","block","header","open","join","rightHeader","line","childrenWrap","AdminAddElemButton","button","AdminInput","labelWeight","labelSize","changeHandler","fontWeight","cursor","SvgChat","SvgLike","SvgPen","SvgPhone","SvgResend","SvgArrow","special","slav","prim","trip","promo","icon","like","Like","pen","Pen","chat","back","Arrow","Phone","Resend","iconType","buttonType","iconRotate180","iconColor","iconClasses","iconSlav","iconWhite","AdminSaveButton","showSuccess","saveButtonWrap","AdminTextArea","textArea","userStateReducer","adminRole","setUserRole","initialUserState","UserStateContext","UserStateProvider","getWeekNumber","firstDayOfYear","pastDaysYear","createDate","locale","dayNumber","dayNumberInWeek","dayShort","year","yearShort","monthName","monthShort","monthNumber","monthIndex","week","timestamp","getMonthNumberOfDays","yearNumber","createMonth","getDay","conferenceData","conferences","conference","getMonthNames","monthNames","newDate","getWeekDaysNames","weekDaysNames","scrollToIdWithOffset","offsetPx","element","bodyRect","offsetPosition","getYearsInterval","startYear","Math","floor","Array","useCalendar","Date","ctx","selectedDate","setSelectedDate","selectedMonth","setSelectedMonth","selectedYear","setSelectedYear","selectedYearsInterval","setSelectedYearsInterval","mode","setMode","weekDayNames","selectedWeek","setSelectedWeek","viewMode","setViewMode","updateWeek","weekday","formattedStart","formattedEnd","updateMonthIndexIfNeeded","selectedMonthIndex","setMonthIndex","newMonthIndex","month","goToPreviousWeekOrMonth","newStartOfWeek","subtract","toDate","updatedDate","newStartOfMonth","startOf","goToNextWeekOrMonth","add","createMonthDays","goToCurrentWeek","setTimeout","conferencePageToday","getCurrentWeekDays","startOfWeek","endOfWeek","endOf","currentWeekDays","filter","dayDate","isSameOrAfter","isSameOrBefore","daysFromPreviousMonth","getMonth","additionalPrevDays","getFullYear","isBefore","push","daysFromNextMonth","additionalNextDays","isAfter","visibleDays","monthNumberOfDays","firstDayNumber","lastDayNumber","previousMonthDays","nextMonthDays","previousMonthAdditionalDays","nextMonthAdditionalDays","mergeWeekends","filteredDays","mergedDays","weekendDays","forEach","onClickArrow","includes","formatMonthName","monthNameWithoutLastChar","checkDateIsEqual","firstDate","secondDate","SvgCaretBlack","AdminCalendar","wrap","calendar","ToggleIcon","toggleIcon","headerText","rotate","main","weekDaysName","isToday","isSelectedDay","isAdditionalDay","dayWithConference","pickItemsWrap","isCurrentMonth","isSelectedMonth","pickItem","unClosableYear","isCurrentYear","isSelectedYear","deleteImg","AdminHeaderBlockElem","titleWrap","deleteButton","ConferenceBlockItem","calendarState","localPromoState","existingConferences","setLocalPromoState","handleSave","conferenceLocal","setConferenceLocal","isEdit","setIsEdit","startTime","setStartTime","String","startDate","getHours","getMinutes","padStart","endTime","setEndTime","endDate","trim","link","deleteConferenceHandler","stateCopy","filteredConferences","timeHandler","startOrEnd","numberValue","currentTime","changeInputHandler","handleConferenceSave","setHours","sameTime","some","getTime","linkToVideo","timeWrapper","ConferencesBlock","setTitle","setDescription","addConferenceHandler","arrow$3","AdminElemVisibilityToggle","slidesTitleWrap","arrowImg","arrowImgBottom","arrow","handleFileInput","localFile","createFileData","resolve","reject","reader","dataUrl","base64String","fileNameParts","fileFormat","uploadFile","ContractorBlockItem","dataType","setState","websiteLink","instructionsLink","additionalLink","img","email","countryData","videoConnectionData","contractor","contractors","deleteContractorHandler","contractorData","changeFileHandler","imgUrl","imgFileWrap","imgWrap","urlToImgWrap","ContractorsBlock","isVideoConnectionVisible","setIsVideoConnectionVisible","countryVisibility","setCountryVisibility","draggable","currentBlockIndex","setCurrentBlockIndex","changeTitleHandler","addContractorHandler","contractorType","newCountryData","newVideoContractor","dragStartHandler","oldIndex","dragLeaveHandler","dragOverHandler","dragDropHandler","newIndex","draggedContractor","targetContractor","sort","toggleCountryVisibility","prev","contractorsVisibleToggle","c","Contractor","ElockBlockItem","lock","onLinkChange","onDelete","isExpanded","setExpanded","elock","lockType","forDoors","voltage","keyOpen","alwaysOpen","links","instruction","webSite","manual","elockPassport","installationScheme","ElockBlock","isInstallDataVisible","setInstallDataVisible","elockTableData","elockHowToInstallData","Object","values","addLockModelHandler","lockData","details","handleChange","handleInstallDataChange","installData","handleLinksChange","linkKey","deleteLockModelHandler","prevState","updatedLocks","installationInstructions","controllerDescription","FaqEl","faqData","question","answer","hrefText","deleteFaqHandler","faq","faqEl","FaqBlock","faqElements","addFaqHandler","faqsWrap","SortingCenterBlockItem","sortingCenter","sortingCenterLocal","setSortingCenterLocal","city","address","workTime","filteredSortingCenters","sortingCentersData","SortingCentersBlock","sortingCenters","addSortingCenterHandler","localeCompare","initialPromoPageState","PromoPageStateProvider","savedLanguage","Backend","initReactI18next","enTranslations","ruTranslations","kaTranslations","PromoPageKeys","Spinner","spinner","borderRightColor","borderBottomColor","SvgMainLogo","SvgMainLogoGe","MainLogo","logo","GE","LogoGe","Logo","checkIfPWAInstalled","useAsyncEffect","args","useResize","setWidth","innerWidth","handleResize","addEventListener","removeEventListener","isMobile","mobile","isSTablet","isTablet","tablet","isSDesktop","isDesktop","URLS","TIME_CHECK_OFFER","OfferModal","observer","offerStore","appStore","setStage","sending","setSending","isOfertaPageLoading","setOfertaPageLoading","versionOfferIntervalId","setInterval","checkOfferVersion","user","authenticated","clearInterval","onFinishPress","Promise","all","offersForSign","apiStore","signOfferVersion","lastVersion","setModalVisible","handleAcceptPress","useCallback","nextStage","linksForOfferModal","modalVisible","LKGeneralLayoutKeys","LKGeneralLayout","MenuKeys","pwa","menuItems","ShoppingOutlined","BankOutlined","WarningOutlined","DownloadOutlined","SvgCaret","SvgLogoNewWhite","SvgLogoNewWhiteGe","viewOrderUiStore","loginUiStore","sidebarCollapsed","setSidebarCollapsed","isDrawerOpen","setDrawerOpen","personalMenuCollapsed","setPersonalMenuCollapsed","pageKey","setPageKey","pathname","navigate","useNavigate","searchParams","setSearchParams","useSearchParams","get","latitude","longitude","subsidyHexType","getPromoKey","shared","isPWAInstalled","menuItemsFiltered","handleProfile","exitButtonHandler","logout","dropdownItems","personalMenuItem","UserOutlined","LogoutOutlined","setLoadingApp","getAuthHash","delete","useAuthHash","bootstrap","COORDINATES","PICK_POINT_TYPE","SUBSIDY_HEX_TYPE","isLoadingUserInfo","needRegistration","registration","isLoadingApp","ROLE_NONE","matchedKey","route","handleLeftMenuItem","handleMenuItemClick","handleDrawerItem","startTransition","pwaEvent","prompt","handleBurgerButton","privatePolicyLink","policyLink","wbMarketPrivatePolicyGe","wbMarketPrivatePolicy","mainLogoConainer","burgerButton","MenuUnfoldOutlined","MenuFoldOutlined","root","LogoIconGe","logoGe","LogoIcon","logoWithoutText","isOpen","personalMenuWrapper","userIcon","first_name","last_name","CaretIcon","caret","transform","darkAnt","flex","CloseOutlined","drawerItem","drawerItemActive","menuItem","drawerItemIconContainer","drawerItemText","Suspense","Outlet","ContainerLK","disableMaxWidth","container","subContainer","maxWidth","getRouteWithPagination","baseRoute","queryParams","getOrderItemRoute","getActivateOrderRoute","getActivateELockRoute","getOrderPaymentRoute","getCreateMovingOrderRoute","getPvzItemRoute","getPvzEditAreaRoute","getPvzEditTimetableRoute","getMovingPvzPageRoute","getPvzSignboardRoute","getTicketItemRoute","getEmployeePageRoute","getAddEmployeePageRoute","BYTE_IN_MEGABYTE","filesValidate","fileValidationOptions","flag","fileSizeInMb","UploadFile","contentUrl","maxFileSizeMb","hidePreview","dataTestId","isFileUploading","loading","setLoading","fileInputRef","isDisabled","loadFile","deleteButtonHandler","fileInputWrap","DeleteOutlined","upload","backgroundImage","PlusCircleOutlined","plusIcon","display","isArray","eLockPhotoTypeToTitle","OpenELockModal","isModalVisible","setIsModalVisible","eLockUiStore","isConfirmModalVisible","setIsConfirmModalVisible","isActive","openButtonHandler","okButtonHandler","isOnline","activateELock","warning","cancelButtonHandler","fromActivateELockPage","eLockModule","eLockConnectInfo","ssid","psk","linkToOpen","ActivateELockForm","fromOrder","form","useForm","isRemark","eLockReason","remark","isDisable","invalidPhotos","isFormDisabled","setFieldValue","fileType","setPhotoData","fileSize","getELockConnectInfo","updateELock","required","toUpperCase","setELockName","doorFromInsidePhoto","doorFromInside","doorFromTheEndPhoto","doorFromTheEnd","controllerPhoto","controller","ActivateELockPage","useParams","messageApi","contextHolder","useMessage","timeout","checkNetwork","selectedOrder","getOrderList","setSelectedOrder","getOrder","eLockInfo","initialize","reset","duration","setIsOnline","ArrowLeftOutlined","ActivateELockPageAsync","lazy","__vitePreload","ActivateELockPage$1","personalDataApi","ItemBox","hasNotice","PersonalData","showErrorMessage","setPersonalData","getPersonalData","isVisiblePersonalData","setVisiblePersonalData","isVisibleButton","setVisibleButton","personalDataButtonHandler","personalData","pvzPage","RatingBadge","rate","ratingColor","rating","range","min","max","Boolean","regexpMap","phonePipe","maskPhone","pipe","snilsPipe","EmployeeItemHeader","employee","minWidth","isDeleted","getUserData","EmployeePage","viewEmployeeUiStore","viewPvzUiStore","useLocation","showAdditional","employeeList","generalLoading","employeeStore","URLSearchParams","search","pageFromUrl","Number","pageSizeFromUrl","setPage","setPageSize","getPvzList","switchPvz","getEmployeeList","addEmployeeHandler","setSelectedStep","flexDirection","activeStatus","setActiveStatus","employeeFilteredList","emptyBlock","EmployeePageAsync","EmployeePage$1","Container","SNILS_LENGTH","getSnilsError","sum","checkDigit","ValidateFormService","hasNotErrors","errors","singleError","msgs","ValidateAddEmployee","snilsError","validateAddEmployee","PersonalEmployeeDataStep","setFieldsValue","validate","addEmployee","selectedStep","count","setLastName","setFirstName","onlyNumbers","setSnils","phoneModel","CodeInput","elements","querySelectorAll","elem","setAttribute","InputOtp","VerificationEmployeeStep","setCode","handleSetCode","verifyEmployee","stepTitles","steps","Map","AddEmployeePage","getElementById","scrollTo","AddEmployeePageAsync","AddEmployeePage$1","formateDate","createdDate","Timer","timeLeftInSeconds","returnText","timeBeforeCLoseInitial","diff","timeBeforeCLose","setTimeBeforeCLose","isTimeUp","setIsTimeUp","timer","interval","checkTimeIsLeft","formatTimeLeft","totalHours","formattedTime","OrderItemHeader","timeLeft","setTimeLeft","waitingPayment","seconds","getPaymentDeadline","orderPage","orderItemClickHandler","statusWrap","deleted","outOfDraftDate","fullAddress","OrderPage","createOrderUiStore","orderStore","orderList","paginationChange","createOrderHandler","createOrder","orderCreate","loadingOrderList","ProfileOutlined","OrderPageAsync","OrderPage$1","colorTypes","warn","Info","showBorder","disableMargin","borderColor","urlForSecretImages","createOrderPhotoItems","signboardPhotoItems","pickPointPhotoItems","pickPointVideoItem","baseLeaseDocumentData","baseBtiDocumentData","pickPointDocumentForEditAreaItems","PickPointFileItem","isCreation","initialized","localContentData","setLocalContentData","documentUrl","setDocumentUrl","leaseDocument","btiDocument","leaseDocumentEditArea","btiDocumentEditArea","isPhoto","isVideo","pickPointOrder","pickPoint","getDocumentsPhoto","getSecretImages","videoItem","uploadVideo","setVideoFile","isPublic","uploadPhotos","filesStep","setPhotoIsPublic","checked","PickPointFilesForm","isActivation","photoItems","videoURL","pattern","setVideoURL","OrderBYCompanyForm","activateOrderUiStore","molName","glnPvz","ownerGln","listStyleType","QuestionCircleOutlined","setOwnerGln","setGlnPvz","setMolName","ValidatePickPointFiles","filesModel","returnType","validatePickPointFiles","ValidateOrderActivate","companyCountry","validateOrderActivate","ActivateOrderForm","isModalOpen","setIsModalOpen","eLockStatus","validateForm","activateOrderHandler","updateOrder","accepted","makeOrderReadyActivate","clear","activateOrderPage","BY","signboardSizeItem","setSignboardSizeItem","signboardFormatItem","setSignboardFormatItem","setComment","isNoChanges","approved","CCTVModal","cameras","wordWrap","wordBreak","columns","dataIndex","render","Table","camera","idCamera","ValidateOrderCCTV","validateOrderCCTV","maxLength","OrderCCTVForm","cctv","getVendorList","initializedCCTVInfo","nextStepHandler","addCCTVInfo","validateCCTVInfo","setShowCCTVModal","vendorValue","setVendorValue","vendorList","setUrl","setLogin","setPassword","hasToken","setToken","validateCCTVResult","showCCTVModal","ActivateOrderPage","getCCTVInfo","remarkFromActivate","init","ActivateOrderPageAsync","ActivateOrderPage$1","thousandsWhiteSpacing","counter","Subsidy","subsidyItem","subsidyInfo","subsidyHexTypeItem","subsidyType","getSubsidy","initialState","subsidyTypeItem","setInitialState","getSubsidyItem","Tariff","draft","tariffs","setTariffs","tariffsLoading","setTariffsLoading","tariffFromRequest","tariffDescriptionString","parseFloat","toString","getTariffs","tariffString","split","word","setTariff","FilesUploadingStep","setSubsidyInfo","orderStep","step","application_id","feedback","partner","ErrorText","pin$1","redSquare","tbilisi","OrdersMap","centerLongitude","centerLatitude","viewState","zoom","onLoadHandler","entries","rawLayers","sources","addSource","tiles","TILE_SERVER_URL","layers","layer","loadImage","addImage","addLayer","mapContainer","pin","YApi","axios","cityName","lang","geocoderResponseLocalities","yApi","toponyms","uniqWith","localities","localitiesFilteredByCountry","geocode","filteredByCountry","featureMember","yApiGeoObjectsA","yApiGeoObjectsB","yApiGeoObjects","kinds","filteredKinds","kind","eleven","anyStreets","v","geo","pos","house","cmp","locality","fields","searchParamsStr","requestUrl","debounce","func","delay","timeoutId","usePickPointLocation","isCityLoading","setIsCityLoading","isStreetLoading","setIsStreetLoading","setLongitude","setLatitude","timerRef","geocoderLanguage","getAddressFromCoordinates","cities","getCitiesByCoords","streets","getHousesByCoordinates","handleCoordinates","normalizedValue","clearTimeout","searchCity","query","callback","addresses","getCitiesByCityName","searchStreet","cityItem","getStreet","setStreetOptions","cityChangeHandler","setCityItem","streetChangeHandler","setStreetItem","lng","OrderAddress","control","setValue","watch","defaultValues","streetItem","coordinatesFromLS","setCoordinates","handleCityChange","resetAddress","resetSubsidy","handleStreetChange","locationStep","formattedAddress","Controller","field","cityOptions","CustomInputForCity","Option","CustomOptionForCity","streetHouse","streetOptions","CustomInputForStreet","CustomOptionForStreet","components","PickPointTypeTooltip","textStyle","SubsidyTypeInfo","SubsidyInfo","DownOutlined","sumKey","orderModule","guaranteedIncome","OrderLocationForm","isMoving","pickPointTypeItem","courierWay","couriersAccess","exPvzId","isShoppingMall","shoppingMall","isSubsidyTypeDisabled","isCouriersAccessVisible","RU","setPickPointType","folk","setSubsidyHexTypeItem","pvzItem","getPvz","getSubsidyTypeOptions","isSubsidyLoading","minLength","noWhiteSpace","fieldState","setCourierWay","setCouriersAccess","ValidateOrderLocation","locationModel","isCIS","validateOrderLocation","LocationStep","register","handleSubmit","entrance","isCountryWithShoppingMall","exPickPointId","checkOrderAddress","createElement","setFloorLevel","setEntrance","ListItem","decimal","ELockListItem","listStyle","docs","staticDocs","getBrandbookPath","RequirementsStep","requirementsStep","ul","li","stylesForMarker","brandbook","offerGE","applicationGe","application","agreedWithRequirements","setAgreedWithRequirements","TimetableForm","hideInfo","isFlexibleTimetable","rangePickerStatus","invalidOpeningHours","dayOffChangeHandler","setWeekDays","openingHoursChangeHandler","close","setTimetableStart","setTimetableEnd","workConditionsStep","timetableStart","timetableEnd","timetableGeneral","setTimetableGeneral","OrderWorkConditionsForm","warehouseArea","dressingRoomsCount","cellingHeight","setArea","setWarehouseArea","setCellingHeight","setDressRoomsCount","ValidateTimetable","numberOfWorkingDays","validateTimetable","ValidateWorkConditions","workConditionsModel","validateWorkConditions","WorkConditionsStep","createOrderPage","CreateOrderPage","externalId","setExPickPointId","CreateOrderPageAsync","CreateOrderPage$1","OrderELockForm","hideTitle","eLockReasonValue","deleteFileHandler","activateWithoutELockPhotos","splice","setActivateWithoutELockPhotos","setELockReasonValue","resize","from","OrderComments","getOrderMessages","orderItemPage","allMessages","ValidateOrderUpdate","isMove","validateOrderUpdate","OrderItemForm","canEditOrder","remarkFromCreated","readyActivate","pickPointCreated","updateButtonHandler","created","none","backIcon","exclaimIcon","failureIcon","successIcon","waitIcon","typeToIng","wait","failure","exclaim","OrderItemStatusHeader","subTitle","grayLight","iconWrapper","getELockModuleKey","ValidateTicketForm","validateTicketForm","createTicket","CreateTicketModal","setIsDeleteModalOpen","createTicketUiStore","viewTicketUiStore","setSelectedOrderId","resetFields","ticketTypeValue","createTicketHandler","getTicketList","generalPhoto","openingOrder","setFiles","setFileData","setTicketTypeValue","selectedOrderId","ordersOptions","ticketReasonValue","setTicketReasonValue","setLink","roomLayout","ValidateElockForm","validateElockForm","ActivateWithoutELockModal","setIsOpen","eLockInfoStatus","formDisabled","pending","updateELockReason","setELockReason","htmlType","ConfirmOrderModal","setIsConfirmed","agree","setAgree","confirmOrder","confirmedToOpen","true","deleteOrder","ELockOrderText","apps","FurnitureOrderText","furnitureOrderType","auto","OrderStatusAccepted","isCreateTicketModalOpen","setIsCreateTicketModalOpen","isConfirmModalOpen","setIsConfirmModalOpen","isActivateWithoutELockModalOpen","setIsActivateWithoutELockModalOpen","isELockSectionOpened","setIsELockSectionOpened","isConfirmed","loadingFurnitureOrderType","setLoadingFurnitureOrderType","setFurnitureOrderType","getFurnitureOrderType","activateELockStepHandler","activateOrderStep","OrderStatusActivated","OrderStatusCreated","OrderStatusDeclined","OrderStatusDraft","loadingPublish","setLoadingPublish","loadingDelete","setLoadingDelete","isPublishModalOpen","setIsPublishModalOpen","isDeleteModalOpen","setReferralCode","isRegionWithReferralCode","district","region","publishOrderHandler","assignReferralCodeResult","assignReferralCode","publishOrderResult","publishOrder","orderPayment","deleteOrderHandler","OrderStatusReadyToActivate","OrderStatusRemark","isRemarkFromActivate","isRemarkELockStatus","activateStepHandler","lastComment","elockName","enabled","paid","OrderStatusWaitingPayment","paymentStatus","hasErrorWithPayment","hasError","orderPaymentStatus","OrderItemStatusView","orderStatusItem","declined","OrderItemPage","checkOrderPayment","backButtonHandler","OrderItemPageAsync","OrderItemPage$1","OrderPaymentPage","agreed","setAgreed","isPaid","setIsPaid","addOrderPayment","orgName","orderPaymentInfo","paymentUrl","OrderPaymentPageAsync","OrderPaymentPage$1","getOrderKey","ValidatePvzEditArea","validatePvzEditArea","editAreaPage","PvzEditAreaForm","loadingUpdate","setLoadingUpdate","isOwner","blockTime","isEditAreaStatusInProgress","editAreaStatus","inProgress","updatePvz","documentItem","isAreaWasChanged","isSwitchPvzLoading","PvzEditAreaPage","setSelectedPvz","PvzEditAreaPageAsync","PvzEditAreaPage$1","editTimetablePage","PvzEditTimetablePage","loadingStatus","setLoadingStatus","isTimetableStatusWaiting","timetableEditStatus","waiting","getTimetableEditStatus","timetableUpdateReason","setTimetableUpdateReason","PvzEditTimetablePageAsync","PvzEditTimetablePage$1","getPvzItemPageKey","getPvzEditAreaPageKey","ValidatePvz","getLocationKey","getWorkConditionsKey","validatePvz","PvzItemForm","racksCount","cellsCount","maxCellsCount","alarmSystem","navigateTo","setAlarmSystem","setDressingRoomsCount","setRacksCount","setCellsCount","setMaxCellsCount","pvzItemPage","PvzItemPage","loadingPvzList","PvzItemPageAsync","PvzItemPage$1","getPromoModuleKey","PvzItemHeader","pvzItemClickHandler","stopPropagation","MoreOutlined","menuIcon","PvzPage","pvzStore","PvzPageAsync","PvzPage$1","ticketItemPage","TicketActions","canRate","isCloseTicketModalOpen","setIsCloseTicketModalOpen","isGradeTicketModalOpen","setIsGradeTicketModalOpen","setGrade","gradeComment","setGradeComment","closeTicketButtonHandler","closeTicket","selectedTicket","gradeTicketButtonHandler","rateTicket","cancelGradeButtonHandler","closed","SvgSendMessageIcon","TicketChat","supportLogs","sendMessageButton","createSupportLog","imageUrls","documentUrls","videoUrls","isManager","fio","setMessage","SendMessageIcon","getTicketPage","TicketInfo","CheckCircleTwoTone","finishDate","ticketGrade","TicketItemPage","setSelectedTicket","getTicket","ticketStore","TicketItemPageAsync","TicketItemPage$1","ticketPage","TicketItemHeader","firstSentenceInDescription","ticketItemClickHandler","ticketTypeName","noTicketImg","TicketPage","isEmpty","ticketList","showAllOption","changeSearchHandler","setSearch","setSearchTrigger","searchTrigger","setStatus","ticketType","setTicketType","emptyImg","emptyFilters","TicketPageAsync","TicketPage$1","ProfileForm","showSnils","contactInfoStep","setTelegramLogin","setEmail","ContactInfoStep","EditContactPage","profileUiStore","isVisibleAskForm","setVisibleAskForm","createEditData","clearCompanyInfo","handleUpdateContact","updateContact","handleChangeCitizenship","setSelectedCitizenship","option","selectedCitizenship","loadingPassportData","isSendingData","validateStore","isInvalidContactInfo","EditContactPageAsync","EditContactPage$1","useSendPassportFile","fileUpload","OldPassportPhoto","trySendPassportFile","isPassport","handleFile","imageUrl","documentPhotoUI","handleDeleteFile","PassportPhoto","passportPhotoStep","photoType","firtsPageWithPassportPhoto","withDocumentPhotoUI","secondPageWithPassportPhoto","firstPagePassportPhoto","secondPagePassportPhoto","PassportPhotoStep","OldIdentificationForm","getRequisitesKey","requisites","stylePicker","handleSetDateOfIssue","dateString","setDateOfIssue","handleSetDateOfBirthday","setDateOfBirthday","identification","KZ","KG","TJ","placeholder","setIdentificationNumber","DatePicker","setPassportIssued","setPlaceOfBirth","OldPassportForm","passportStep","setPassport","UZ","setDepartmentCode","newItem","setGender","setRegistrationAddress","setPermanentResidenceAddress","FORMAT_DATE","IdentificationForm","localizedGenderOptions","isIdentificationNumberVisible","isPersonalNumberVisible","isPassportIssuedVisible","isDepartmentCodeVisible","handleSetExpirationDate","setExpirationDate","setDocumentNumber","setIin","setNationality","setSocialCardNumber","setPersonalNumber","setInnCitizen","PassportForm","isNationalityVisible","isPlaceOfBirthVisible","PassportStep","isCountryWithMultipleDocuments","isMiddleNameVisible","isIdentification","clearPassportStep","setDocumentType","getDocumentTypeOptions","localizedSitizenship","getSharedCountriesKey","setMiddleName","EditPassportPage","isVisibleOldForm","setVisibleOldForm","isDisabledButtonUpdateOldForm","isInvalidOldPassport","isInvalidOldIdentification","isDisabledButtonUpdateNewForm","isInvalidPassportForm","isInvalidIdentificationForm","isInvalidDocumentPhoto","isInvalidWithDocumentPhoto","isDisabledButtonUpdate","getDocument","updateOldPassport","updateNewForm","updateOnlyPassport","handleUpdatePassport","handleCloseForm","EditPassportPageAsync","EditPassportPage$1","useSendTaxFile","accountPlacehorders","MIN_PAY_ACCOUNT_FOR_ALL_COUNTRY","MIN_BIK_FOR_ALL_COUNTRY","ActivityStep","trySendTaxFile","isFilesEmpty","setFilesEmpty","activityStep","taxType","isTaxCheckStatusVisible","hasTaxFiles","taxCheckStatus","review","innLabel","innLable","isBikOrPayAccountInvalid","isAnBikInvalid","taxTooltip","osn","handleInnChange","textDirty","innMaxLength","setInn","setInnText","handlePressText","newCompanyType","setCompanyType","handleTaxType","setTaxType","setTaxFiles","setTaxFilesUI","handleSelectedCountry","clearActivityStep","getSharedCountryKey","getStatusColor","canceled","innText","getInnPlaceholder","innPlaceholder","bikNormalize","normalizePayAccount","usn","onlyTaxUsnCountry","lowerRate5","lowerRate7","taxFilesUI","taxCheckStatusComment","loadingCompanyInfo","isValidInn","setCompanyName","setBankName","setLegalAddress","setGln","bikMinLength","validator","isBikInvalid","Error","bikMaxLength","dadataMap","setBik","payAccountMinLength","setPayAccount","payAccountMaxLength","corAccountMaxLength","setCorAccount","setAcceptPersonalInfo","acceptPersonalInfo","privacyPolicy","EditRequisitesPage","updateRequisites","isInvalidRequisitesData","EditRequisitesPageAsync","EditRequisitesPage$1","ProfileItem","descriptionContainer","ProfilePage","profilePage","additional_phone","telegram_login","editRequisites","passport_approve_status","editPassport","editContact","ProfilePageAsync","ProfilePage$1","signboardPage","pvzModule","PvzSignboardPage","isLoading","setIsLoading","isFormChanged","setIsFormChanged","handleValuesChange","touched","isFieldsTouched","getPvzSignboardList","signboardData","signboardFormat","signboardSize","updateSignboardData","updatePvzSignboard","handleUpdateSignboard","hasSignboardChanges","hasPhotoChanges","rows","getFieldValue","getFieldsError","promoColors","LoginPage","loginPage","getKeyPromo","openPickPointForm","computedDefaultOption","codeLength","validateCode","setDefaultState","handlePressBtn","tryLogin","loggedIn","setValidateVisible","screen","timeIsNotOver","timeExpired","timeWaiter","isValidateVisible","span","nbsp","newBgPrimary","textDecoration","fullPhone","RegistrationPage","registrationUiStore","isOfertaVisible","setOfertaVisible","regisgtrationPage","stepsTitles","personalDataStep","step4","getOfferVersion","handleNextStep","step1","setPersonalDataStep","step2","step3","handlePrevStep","localStorage","linksForRegistration","catch","tryRegisterOwner","ReactNativeWebView","postMessage","JSON","stringify","isRegistrationSuccess","cancelOffer","isDisabledNextStep","buttonTitle","isRegistrationLoading","ELockPageAsync","ELockContractorsPageAsync","AppsPageAsync","sber","tBank","tochka","bankingServicesItemData","textAlign","BankingServicesItem","BankingServicesPage","titleWrapper","BankingServicesPageAsync","BankingServicesPage$1","ConferencesPageAsync","DownloadsPageAsync","ListSignBoardsContractorsPageAsync","ListSignBoardsSortingCentersPageAsync","scrollToId","step1Mobile","step1Tablet","step2Mobile","step2Tablet","step3Mobile","step3Tablet","step4Mobile","step4Tablet","step5","step5Mobile","step5Tablet","stepsData","Step","desktopImage","mobileImage","tabletImage","caption","customClass","imageSrc","openingSteps","textCaption","br","OpeningSteps","customStepClasses","stepsContainer","OpeningStepsSection","formatPhoneNumberForText","phoneNumber","SvgArrow3","CustomOption","innerRef","innerProps","isSelected","alignItems","borderBottom","currentTarget","CustomSingleValue","CountrySelectWithFlags","forwardRef","SingleValue","IndicatorSeparator","displayName","countrySelectCustomStyles","customStyles","menuPlacement","base","CODE_LENGTH","OpenPickPointForm","sixDigitsCode","setSixDigitsCode","inputRefs","selectRef","setMenuPlacement","countryKey","handleScroll","windowHeight","innerHeight","rect","controlRef","getBoundingClientRect","spaceBelow","bottom","spaceAbove","top","handleInputChange","digit","newCode","nextInput","focus","handleKeyDown","previousInput","clearTimer","MainFormPUPSend","MainFormPUPT","handleCountryChange","type_detail","handleSetDefaultState","openPPForm","authForm","customInput","parentElement","closest","removeAttribute","customSelect","loginButton","allowLogin","pickpointImg","houseImg","Authorization","isUserAuth","isSimplified","simplifiedConditions","sectionWrapper","contentWrapper","formWrapper","imageWrapper","image","runAdriverTracking","n","o","d","u","COOKIE_POLICY_NAME","CHANNEL_NAME","MILLISECONDS_IN_A_DAY","CookiePolicy","layoutModel","setIsVisible","cookiePolicy","channel","privatePolicyUrl","checkCookiePolicy","getCookie","loadAnalyticsScript","hideBanner","showBanner","analytic","BroadcastChannel","eventBus","dispatchEvent","CustomEvent","w","q","l","now","getElementsByTagName","parentNode","insertBefore","wba","counterId","clientId","handleOkClick","cookie","RegExp","setCookie","expires","toUTCString","wrapper","sendAdriverEvent","sz","customParams","eventParams","serializeParams","separator","assigner","cookies","random","SvgArrow2","FaqItem","isHovered","setIsHovered","handleToggle","hovered","__html","faqList","colorBox","color1","color2","color3","color4","color5","color6","questionAnswers","simplifiedQuestionAnswers","Faq","showAll","setShowAll","selectedQuestion","setSelectedQuestion","questionsData","questionsPart","questions","handleSelect","toggleShowAll","allQuestions","faqSection","simplifiedConditionsM","courierL","courierM","courierS","simplifiedConditionsL","simplifiedConditionsS","banners","Banner","currentIndex","setCurrentIndex","prevIndex","handleSlideChange","swiper","realIndex","handleClick","findOutMore","currentBanner","bannerImg","imgMobile","imgTablet","imgDesktop","bannerWrapper","Swiper","Autoplay","disableOnInteraction","banner","SwiperSlide","paginationWrapper","pagination","indicator","indicatorActive","sliderButton","sliderButtonPrev","sliderButtonNext","home","partnerLinks","companyLinks","simplifiedConditionsLink","otherLinks","policyLinks","openPickPointLink","loginLink","getHeaderGeItems","headerItems","loginGePageLink","auctionData","MapGe","mapLink","pick_point_map_ge","pick_point_map","mapSection","box","mapImage","MainCartPUPT","markerItems","SvgMapMarker","activeMarker","setActiveMarker","mapRef","mapDimensions","setMapDimensions","offsetWidth","offsetHeight","handleItemClick","textWrapper","list","listItem","circle","textWithIcon","mainText","arrowIconActive","buttonLink","openMap","mapWrapper","mobileCoordinates","Marker","marker","left","xPercent","yPercent","LimitedOffer","opacity","heroImgM","heroImg$1","heroImgSD","heroImgT","Hero","hero","getImgSrc","heroImg","buttonHero","openPVZ","path","heroHome","heroForm","textContainer","brandPreview","villagePreview","labels","brandPPData","villagePPData","pickpointType","PickPointBox","typeOfPickpoint","buttonFontSize","isSimplifiedPage","isMainPage","getButtonConfig","standard","brandbookSimplified","correlationPPBox","simplified","conditions","conditionItem","preview","conditionItemWrapper","conditionLabel","labelKey","conditionText","descriptionPart","idx","KindsOfPickPoints","pickPoints","pickPointKinds","correlationTable","MarkerIcon","ZipIcon","statisticsData","MarketPlaceStat","marketPlaceStatContainer","statisticsContent","statsItem","statsValue","statsDescription","statsIcon","IconLink","bookImg","giftImg","walletImg","illustrations","SupportCard","card","cardContainer","imgWrapper","cardImage","cardTitle","supportCardsText","supportSteps","SvgDownloadArrow","handleClickLink","auction","showVariants","PromoLink","isDownloadLink","promoLinkWrapper","linkHref","linkText","arrowWrapper","DownloadArrow","SvgPlay","LazyLoadVideo","poster","useIframe","videoRef","isPlaying","setIsPlaying","handlePlayPause","pause","play","IntersectionObserver","entry","isIntersecting","unobserve","threshold","observe","videoWrapper","paused","visible","hidden","playButton","PlayIcon","VideoSection","videoSrc","isHomePage","videoSection","videoFrame","checklist","downloadChecklist","videoImg","PromoPage","RatingPageAsync","SignBoardPageAsync","SimplifiedConditionsPageAsync","VideoConnectionPageAsync","updatePageHeight","footer","pageHeight","footerHeight","calculatedHeight","SvgMinus","SvgPlus","FooterLinksWrapper","wide","collapsed","setCollapsed","toggle","handleSelectMenuItem","showToggler","footerLinks","categoryTitle","MinusIcon","PlusIcon","footerLink","SvgMobileQr","rutubeLogo","logo$3","youtubeLogo","Footer","handleSocialLinkClick","socialIcons","appStoresList","MobileLinkQr","qr","footNote","disclaimer","youtube","socialIconWrapper","socialIcon","rutube","appDownloadButton","appLink","downloadButton","linksBlock","FooterNew","SideMenu","SvgBurgerNew","SvgCross","SvgUserAuthIcon","SvgUserIcon","HEADER_HEIGHT","sideMenuOpened","setSideMenuOpened","repairMenuOpened","setRepairMenuOpened","bodyTopPoint","setBodyTopPoint","getHeaderKey","isOpenPvzLinkVisible","additionalActions","additionalActionsContainer","authenticatedLink","UserAuthIcon","UserIcon","logoIcon","headerGeItems","renderRepairMenu","subMenu","subMenuItem","subMenuLink","activeLink","openPvzLinkItem","openPvzLinkWrapper","openPvzLink","openPVZHeader","appsLink","handleClickOutside","toggleSideMenu","toggleRepairMenu","HeaderT","bodyTopPointValue","renderLinks","menuItemActive","CrossIcon","cross","BurgerIcon","burger","navigation","linksWrapper","desktopBackground","desktopBackgroundGe","mobileBackgroundGe","tabletBackgroundGe","loginPageBackground","PromoGeneralLayout","isGeLoginPage","backgroundUrl","getBackgroundUrl","layoutClassName","PromoGeneralLayoutLoginPage","PromoSidePageLayout","layoutStyles","backgroundRepeat","backgroundPosition","LoginPageGe","PromoPageGe","inputCustomStyles","subSections","PrivacyPolicy","position","handleSelectChange","selectedOption","querySelector","scrollIntoView","behavior","listWrapper","subSection","subIdx","toc","movingPage","MovingPvzPage","RouteList","decodeURIComponent","parse","lkRoutes","employees","filteredRoutes","routesConfig","AppsPage","Navigate","DownloadsPage","signboard","SignBoardPage","listSignBoardsContractors","ListSignBoardsContractorsPage","listSignBoardsSortingCenters","ListSignBoardsSortingCentersPage","listELockContractors","ELockContractorsPage","eLock","ELockPage","videoConnection","VideoConnectionPage","ConferencesPage","RatingPage","bankingServices","SimplifiedConditionsPage","Routes","useRoutes","errorMessages","phoneValidationRules","SvgFeedbackFormError","SvgFeedbackFormSuccess","FeedbackForm","isResolveVisible","isRejectVisible","isPending","setIsFormVisible","addReview","searchEngineUiStore","fieldStates","setFieldStates","telegram","submittable","setSubmittable","useWatch","phoneError","setPhoneError","validateFields","validateOnly","handleFinish","requestData","fieldName","getFieldError","handleCloseTicketButton","setIsRejectVisible","setIsResolveVisible","closeFormButton","closeButton","isCheckboxChecked","phoneRequired","phoneInvalid","validationRule","isNumeric","test","placeholderText","inputPhoneWrapper","borderRadius","inputPhone","outline","boxShadow","emailInvalid","emailRequired","telegramInvalid","telegramRequired","messageRequired","messageTooShort","messageWithOnlySpaces","textAreaWrap","textarea","checkboxWrap","checkbox","SuccessIcon","ErrorIcon","Icon","getCurrentDate","messageFromMeText","answerTime","iconContainer","ThreeDotLoader","loader","dot","CustomSpin","Spin","ChatFooter","isButtonActive","setIsButtonActive","buttonRef","disableSendBtn","inputMode","dialogBranch","regularChat","handleFocus","handleSend","sendMessage","handleSetMessage","enteredValue","numericMatch","numericValue","footerSpinner","minRows","maxRows","sendMessageIcon","ChatHeader","SvgCloseIcon","ChatModal","toggleIsOpen","setProblemReportModalOpen","problemReportModalOpen","setIsPending","scrollPosition","setScrollPosition","shouldReset","setShouldReset","scrollY","overflow","sendReviewMessage","handleReportModalOpen","handleAfterOpen","dataAdapter","CloseIcon","maxHeight","overflowY","SvgSearchEngineIcon","SearchEngine","handleOpenModal","searchEngineActivationBtn","searchEngineIcon","searchEngineButtonText","clipboard","getSectionReq","sectionsReq","Admin","inputValue","setInputValue","fileLoading","setFileLoading","publishLoading","setPublishLoading","blockMapData","blockEl","blockWrap","menuComponent","handlePublishChanges","isChangesUpdatingBlocked","updateSections","openButton","linksWrap","fileWrap","buttonWrap","immediatelySent","ScrollToTop","App","promoCtx","setLocale","ru_RU","getItem","set","fetchData","handler","setPwaEvent","ka_GE","en_US","getSections","parsedData","ConfigProvider","colorPrimary","titleMarginBottom","itemMarginBottom","withProfiler","extend","customParseFormat","advancedFormat","localeData","weekOfYear","weekYear","isoWeek","placement","env","Sentry","dsn","environment","integrations","tracesSampleRate","replaysSessionSampleRate","replaysOnErrorSampleRate","lazyLoadedSentry","addIntegration","replayIntegration","browserTracingIntegration","createRoot","BrowserRouter"],"sources":["../../src/config/environment/appConfigDev.ts","../../src/config/environment/appConfigProd.ts","../../src/config/environment/appConfigStage.ts","../../src/config/environment/appConfig.ts","../../src/sections/LKSection/modules/ELockModule/types.ts","../../src/utils/helpers/i18n/getKeys.ts","../../src/services/localStorage.service.ts","../../src/shared/constants/routes.ts","../../src/services/Errors/HttpResponseError.ts","../../src/services/ResponseHandlerService.ts","../../src/services/HttpService.ts","../../src/utils/helpers/convertKeysToCamelCase.ts","../../src/sections/LKSection/modules/TicketModule/types.ts","../../src/sections/LKSection/modules/TicketModule/api.ts","../../src/shared/constants/regExp.ts","../../src/utils/helpers/uuid4.ts","../../src/shared/constants/values.ts","../../src/services/utils/getQueryUrl.ts","../../src/services/api.ts","../../src/services/FileService.ts","../../src/sections/LKSection/modules/ELockModule/api.ts","../../src/components/uiKit/Alert/Alert.tsx","../../src/components/uiKit/Button/Button.tsx","../../src/components/uiKit/Checkbox/Checkbox.tsx","../../src/components/uiKit/Col/Col.tsx","../../src/components/uiKit/Collapse/Collapse.tsx","../../src/components/uiKit/Divider/Divider.tsx","../../src/components/uiKit/Drawer/Drawer.tsx","../../src/components/uiKit/Dropdown/Dropdown.tsx","../../src/components/uiKit/Flex/Flex.tsx","../../src/components/uiKit/Form/Form.tsx","../../src/components/uiKit/FormItem/FormItem.tsx","../../src/components/uiKit/Image/Image.tsx","../../src/components/uiKit/Input/Input/Input.tsx","../../src/components/uiKit/Input/InputOtp/InputOTP.tsx","../../src/components/uiKit/Input/Search/Search.tsx","../../src/components/uiKit/Input/TextArea/TextArea.tsx","../../src/components/uiKit/Layout/Header/Header.tsx","../../src/components/uiKit/Menu/Menu.tsx","../../src/components/uiKit/Modal/Modal.tsx","../../src/components/uiKit/Pagination/Pagination.tsx","../../src/components/uiKit/Popover/Popover.tsx","../../src/components/uiKit/Rate/Rate.tsx","../../src/components/uiKit/Select/Select.tsx","../../src/components/uiKit/Skeleton/Skeleton.tsx","../../src/components/uiKit/Space/Space.tsx","../../src/components/uiKit/Steps/Steps.tsx","../../src/components/uiKit/Text/Link/Link.tsx","../../src/components/uiKit/Text/Paragraph/Paragraph.tsx","../../src/components/uiKit/Text/Text/Text.tsx","../../src/components/uiKit/Text/Title/Title.tsx","../../src/components/uiKit/TimePicker/TimeRangePicker/TimeRangePicker.tsx","../../src/components/uiKit/Tooltip/Tooltip.tsx","../../src/sections/LKSection/shared/components/Status/Status.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/types.ts","../../src/shared/types/types.ts","../../src/sections/LKSection/modules/OrderModule/types.ts","../../src/sections/LKSection/modules/OrderModule/data.ts","../../src/utils/helpers/files/getSeparatedFiles.ts","../../src/sections/LKSection/modules/ELockModule/stores/Reason/ElockReasonModel.ts","../../src/sections/LKSection/modules/ELockModule/stores/ELockApiStore.ts","../../src/sections/LKSection/modules/ELockModule/stores/ELockUiStore.ts","../../src/sections/LKSection/modules/EmployeeModule/api.ts","../../src/utils/helpers/getHashCode.ts","../../src/shared/stores/BaseStore.ts","../../src/sections/LKSection/modules/EmployeeModule/stores/entity/Employee.ts","../../src/sections/LKSection/modules/EmployeeModule/stores/entity/EmployeeStore.ts","../../src/sections/LKSection/modules/UserModule/types.ts","../../src/sections/LKSection/modules/UserModule/data.ts","../../src/sections/LKSection/modules/UserModule/stores/models/AppCountryPhoneViewModel.ts","../../src/sections/LKSection/modules/EmployeeModule/data.ts","../../src/sections/LKSection/modules/EmployeeModule/stores/ViewEmployeeApiStore.ts","../../src/sections/LKSection/modules/EmployeeModule/stores/ViewEmployeeUiStore.ts","../../src/sections/LKSection/shared/PickPointSharedModule/data.ts","../../src/sections/LKSection/modules/OrderModule/utils.ts","../../src/sections/LKSection/shared/PickPointSharedModule/utils.ts","../../src/sections/LKSection/modules/OrderModule/stores/entity/OrderComment/OrderComment.ts","../../src/sections/LKSection/modules/OrderModule/stores/entity/Order.ts","../../src/sections/LKSection/shared/PickPointSharedModule/models/PickPointFilesViewModel.ts","../../src/sections/LKSection/modules/OrderModule/api.ts","../../src/sections/LKSection/modules/OrderModule/stores/models/OrderCCTVModel/OrderCCTVApiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/models/OrderCCTVModel/OrderCCTVModel.ts","../../src/sections/LKSection/modules/OrderModule/stores/ActivateOrder/ActivateOrderApiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/ActivateOrder/ActivateOrderUiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/models/OrderLocationViewModel.ts","../../src/sections/LKSection/shared/PickPointSharedModule/models/TimetableModel/TimetableModel.ts","../../src/sections/LKSection/modules/OrderModule/stores/models/OrderWorkConditionsViewModel.ts","../../src/utils/helpers/sendEvent.ts","../../src/types/types.ts","../../src/sections/LKSection/modules/OrderModule/stores/CreateOrder/CreateOrderApiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/CreateOrder/CreateOrderUiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/entity/OrderStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/ViewOrder/ViewOrderApiStore.ts","../../src/sections/LKSection/modules/OrderModule/stores/ViewOrder/ViewOrderUiStore.ts","../../src/sections/LKSection/modules/PvzModule/api.ts","../../src/sections/LKSection/modules/PvzModule/types/types.ts","../../src/sections/LKSection/modules/PvzModule/data.ts","../../src/sections/LKSection/modules/PvzModule/stores/entity/Pvz.ts","../../src/sections/LKSection/modules/PvzModule/stores/entity/PvzStore.ts","../../src/sections/LKSection/modules/PvzModule/stores/models/PvzAreaModel.ts","../../src/sections/LKSection/modules/PvzModule/stores/ViewPvz/ViewPvzApiStore.ts","../../src/sections/LKSection/modules/PvzModule/stores/ViewPvz/ViewPvzUiStore.ts","../../src/sections/LKSection/modules/TicketModule/data.ts","../../src/sections/LKSection/modules/TicketModule/stores/CreateTicketUiStore.ts","../../src/sections/LKSection/modules/TicketModule/stores/entity/Ticket.ts","../../src/sections/LKSection/modules/TicketModule/stores/entity/TicketStore.ts","../../src/sections/LKSection/modules/TicketModule/stores/ViewTicket/ViewTicketApiStore.ts","../../src/sections/LKSection/modules/TicketModule/stores/ViewTicket/ViewTicketUiStore.ts","../../src/services/TimeWaiter.ts","../../src/utils/helpers/domains/getDomain.ts","../../src/sections/LKSection/modules/UserModule/api.ts","../../src/sections/LKSection/modules/UserModule/stores/LoginUiStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Offer/OfferApiStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Offer/OfferUiStore.ts","../../src/assets/img/shared/arrow1.svg?react","../../src/components/ui/ButtonPromo/ButtonPromo.tsx","../../src/components/ui/Href/Href.tsx","../../src/utils/helpers/getAltFromSrc/getAltFromSrc.ts","../../src/components/ui/Chat/Chat.tsx","../../src/components/ui/TextPromo/TextPromo.tsx","../../src/components/ui/InputPromo/InputPromo.tsx","../../src/utils/helpers/i18n/getCurrentLanguage.ts","../../src/components/ui/LangSwitcher/LangSwitcher.tsx","../../src/components/ui/Margin/Margin.tsx","../../src/components/ui/Padding/Padding.tsx","../../src/components/ui/Select/ReactSelect.tsx","../../src/components/ui/Space/Space.tsx","../../src/components/CountryPhoneInput/data.ts","../../src/components/CountryPhoneInput/CountryPhoneInput.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportForm/requisites.ts","../../src/sections/LKSection/modules/UserModule/utils/getRequiredError.ts","../../src/sections/LKSection/modules/UserModule/utils/validateAnBik.ts","../../src/sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel.ts","../../src/sections/LKSection/modules/UserModule/stores/models/ProfileViewModel.ts","../../src/sections/LKSection/modules/UserModule/stores/ValidatePersonalDataStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Profile/ProfileApiStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Profile/ProfileUiStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Registration/RegistrationApiStore.ts","../../src/sections/LKSection/modules/UserModule/stores/Registration/RegistrationUiStore.ts","../../src/utils/formatting/formateTime/formateTime.ts","../../src/sections/PromoSection/modules/SearchEngineModule/api.ts","../../src/sections/PromoSection/modules/SearchEngineModule/data.ts","../../src/sections/PromoSection/modules/SearchEngineModule/types.ts","../../src/assets/img/searchEngine/chat__icon.svg","../../src/sections/PromoSection/modules/SearchEngineModule/SearchEngineStore.ts","../../src/shared/stores/AppStore.ts","../../src/store/root.ts","../../src/store/useStore.ts","../../src/states/AdminMenuUiState/actions.ts","../../src/states/AdminMenuUiState/reducer.ts","../../src/states/AdminMenuUiState/state.ts","../../src/states/AdminMenuUiState/AdminMenuUiStateProvider.tsx","../../src/states/PromoPageState/actions.ts","../../src/states/PromoPageState/reducer.ts","../../src/assets/img/admin/dots-menu.svg","../../src/components/AdminV2/BlockWrap/BlockWrap.tsx","../../src/components/AdminV2/UI/AddElemButton/AdminAddElemButton.tsx","../../src/components/AdminV2/UI/Input/AdminInput.tsx","../../src/assets/img/feedback/chat.svg?react","../../src/assets/img/feedback/like.svg?react","../../src/assets/img/feedback/pen.svg?react","../../src/assets/img/phone.svg?react","../../src/assets/img/resend.svg?react","../../src/assets/img/shared/arrow.svg?react","../../src/components/ui/Button/Button.tsx","../../src/components/AdminV2/UI/SaveButton/AdminSaveButton.tsx","../../src/components/AdminV2/UI/TextArea/AdminTextArea.tsx","../../src/states/UserState/actions.ts","../../src/states/UserState/reducer.ts","../../src/states/UserState/state.ts","../../src/states/UserState/UserStateProvider.tsx","../../src/utils/helpers/date/getWeekNumber.ts","../../src/utils/helpers/date/createDate.ts","../../src/utils/helpers/date/getMonthNumberOfDays.ts","../../src/utils/helpers/date/createMonth.ts","../../src/utils/helpers/date/getMonthNames.ts","../../src/utils/helpers/date/getWeekDaysNames.ts","../../src/utils/helpers/scrollToIdWithOffset.ts","../../src/utils/hooks/useCalendar.tsx","../../src/utils/formatting/formateMonthName/formateMonthName.ts","../../src/utils/helpers/date/checkDateIsEqual.ts","../../src/assets/img/caret--black.svg?react","../../src/components/AdminV2/Blocks/ConferencesBlock/Calendar/AdminCalendar.tsx","../../src/assets/img/admin/delete.svg","../../src/components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem.tsx","../../src/components/AdminV2/Blocks/ConferencesBlock/ConferenceBlockItem/ConferenceBlockItem.tsx","../../src/components/AdminV2/Blocks/ConferencesBlock/ConferencesBlock.tsx","../../src/assets/img/admin/right-arrows.png","../../src/components/AdminV2/UI/ElemVisibilityToggle/AdminElemVisibilityToggle.tsx","../../src/utils/helpers/files/fileUpload.ts","../../src/components/AdminV2/Blocks/ContractorsBlock/ContractorBlockItem/ContractorBlockItem.tsx","../../src/components/AdminV2/Blocks/ContractorsBlock/ContractorsBlock.tsx","../../src/components/AdminV2/Blocks/ElockBlock/ElockBlockItem/ElockBlockItem.tsx","../../src/components/AdminV2/Blocks/ElockBlock/ElockBlock.tsx","../../src/components/AdminV2/Blocks/FaqBlock/FaqEl/FaqEl.tsx","../../src/components/AdminV2/Blocks/FaqBlock/FaqBlock.tsx","../../src/components/AdminV2/Blocks/SortingCentersBlock/SortingCenterBlockItem/SortingCenterBlockItem.tsx","../../src/components/AdminV2/Blocks/SortingCentersBlock/SortingCentersBlock.tsx","../../src/states/PromoPageState/state.ts","../../src/states/PromoPageState/PromoPageStateProvider.tsx","../../src/config/i18n/i18n.ts","../../src/sections/PromoSection/pages/PromoPage/types.ts","../../src/components/ui/Spinner/Spinner.tsx","../../src/assets/icons/logo/main-logo.svg?react","../../src/assets/icons/logo/main-logo-ge.svg?react","../../src/components/MainLogo/MainLogo.tsx","../../src/utils/helpers/checkIfPWAInstalled.ts","../../src/utils/hooks/useAsyncEffect.ts","../../src/utils/hooks/useResize.tsx","../../src/shared/constants/urls.ts","../../src/sections/LKSection/modules/UserModule/components/OfferModal/OfferModal.tsx","../../src/sections/LKSection/LKGeneralLayout/types.ts","../../src/sections/LKSection/LKGeneralLayout/data.tsx","../../src/assets/icons/caret.svg?react","../../src/assets/icons/logo/logo-new-white.svg?react","../../src/assets/icons/logo/logo-new-white-ge.svg?react","../../src/sections/LKSection/LKGeneralLayout/LKGeneralLayout.tsx","../../src/sections/LKSection/shared/components/ContainerLK/ContainerLK.tsx","../../src/utils/helpers/getRouteWithPagination.ts","../../src/utils/helpers/getRoutes.ts","../../src/utils/helpers/files/filesValidate.ts","../../src/components/ui/UploadFile/UploadFile.tsx","../../src/sections/LKSection/modules/ELockModule/data.ts","../../src/sections/LKSection/modules/ELockModule/components/OpenELockModal/OpenELockModal.tsx","../../src/sections/LKSection/modules/ELockModule/components/ActivateELockForm/ActivateELockForm.tsx","../../src/sections/LKSection/modules/ELockModule/ActivateELockPage.tsx","../../src/sections/LKSection/shared/api.ts","../../src/sections/LKSection/shared/components/ItemBox/ItemBox.tsx","../../src/sections/LKSection/shared/components/PersonalData/PersonalData.tsx","../../src/sections/LKSection/shared/components/RatingBadge/RatingBadge.tsx","../../src/utils/pipes.ts","../../src/sections/LKSection/modules/EmployeeModule/components/EmployeeItemHeader/EmployeeItemHeader.tsx","../../src/sections/LKSection/modules/EmployeeModule/EmployeePage.tsx","../../src/components/ui/Container/Container.tsx","../../src/sections/LKSection/modules/UserModule/utils/getSnilsError.ts","../../src/services/ValidateFormService.tsx","../../src/sections/LKSection/modules/EmployeeModule/pages/AddEmployeePage/Steps/PersonalEmployeeDataStep/validate.ts","../../src/sections/LKSection/modules/EmployeeModule/pages/AddEmployeePage/Steps/PersonalEmployeeDataStep/PersonalEmployeeDataStep.tsx","../../src/sections/LKSection/shared/components/CodeInput/CodeInput.tsx","../../src/sections/LKSection/modules/EmployeeModule/pages/AddEmployeePage/Steps/VerificationEmployeeStep/VerificationEmployeeStep.tsx","../../src/sections/LKSection/modules/EmployeeModule/pages/AddEmployeePage/AddEmployeePage.tsx","../../src/utils/formatting/formateDate/formateDate.ts","../../src/sections/LKSection/modules/OrderModule/components/Timer/Timer.tsx","../../src/sections/LKSection/modules/OrderModule/components/OrderItemHeader/OrderItemHeader.tsx","../../src/sections/LKSection/modules/OrderModule/OrderPage.tsx","../../src/components/ui/Info/Info.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/data.ts","../../src/sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFileItem/PickPointFileItem.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFilesForm.tsx","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/OrderBYCompanyForm/OrderBYCompanyForm.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/ActivateOrderForm.tsx","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/OrderCCTVForm/CCTVModal/CCTVModal.tsx","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/OrderCCTVForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderForm/OrderCCTVForm/OrderCCTVForm.tsx","../../src/sections/LKSection/modules/OrderModule/pages/ActivateOrderPage/ActivateOrderPage.tsx","../../src/utils/formatting/thousandsWhiteSpacing/thousandsWhiteSpacing.ts","../../src/sections/LKSection/modules/OrderModule/components/Subsidy/Subsidy.tsx","../../src/sections/LKSection/modules/OrderModule/components/Tariff/Tariff.tsx","../../src/sections/LKSection/modules/OrderModule/pages/CreateOrderPage/Steps/FilesUploadingStep/FilesUploadingStep.tsx","../../src/components/ui/Text/Text.tsx","../../src/assets/img/map/pin-map-select.svg","../../src/sections/LKSection/modules/OrderModule/components/OrdersMap/OrdersMap.tsx","../../src/services/yandexApi/yApi.ts","../../src/utils/helpers/debounce.ts","../../src/utils/hooks/usePickPointLocation.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/Address/OrderAddress.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/PickPointTypeTooltip/PickPointTypeTooltip.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/SubsidyTypeInfo/SubsidyTypeInfo.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/OrderLocationForm.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/CreateOrderPage/Steps/LocationStep/LocationStep.tsx","../../src/components/ui/ListItem/ListItem.tsx","../../src/shared/constants/docs.ts","../../src/utils/helpers/getBrandbookPath.ts","../../src/sections/LKSection/modules/OrderModule/pages/CreateOrderPage/Steps/RequirementsStep/RequirementsStep.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/components/TimetableForm/TimetableForm.tsx","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderWorkConditionsForm/OrderWorkConditionsForm.tsx","../../src/sections/LKSection/shared/PickPointSharedModule/components/TimetableForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/components/Forms/OrderWorkConditionsForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/CreateOrderPage/Steps/WorkConditionsStep/WorkConditionsStep.tsx","../../src/sections/LKSection/modules/OrderModule/pages/CreateOrderPage/CreateOrderPage.tsx","../../src/sections/LKSection/modules/ELockModule/components/OrderELockForm/OrderELockForm.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemForm/OrderComments/OrderComments.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemForm/OrderItemForm.tsx","../../src/assets/img/lk-section/Order/order-statuses/back.png","../../src/assets/img/lk-section/Order/order-statuses/exclaim.png","../../src/assets/img/lk-section/Order/order-statuses/failure.png","../../src/assets/img/lk-section/Order/order-statuses/success.png","../../src/assets/img/lk-section/Order/order-statuses/wait.png","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/OrderItemStatusHeader/OrderItemStatusHeader.tsx","../../src/sections/LKSection/modules/ELockModule/utils.ts","../../src/sections/LKSection/modules/TicketModule/components/CreateTicketModal/validate.ts","../../src/sections/LKSection/modules/TicketModule/components/CreateTicketModal/CreateTicketModal.tsx","../../src/sections/LKSection/modules/ELockModule/components/OrderELockForm/validate.ts","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/ActivateWithoutELockModal/ActivateWithoutELockModal.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/Accepted/ConfirmOrderModal/ConfirmOrderModal.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/Accepted/ELockOrderText/ELockOrderText.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/Accepted/FurnitureOrderText/FurnitureOrderText.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/Accepted/OrderStatusAccepted.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusActivated.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusCreated.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusDeclined.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusDraft.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusReadyToActivate.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusRemark.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/OrderStatusWaitingPayment.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/OrderItemStatusView.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemPage.tsx","../../src/sections/LKSection/modules/OrderModule/pages/OrderPaymentPage/OrderPaymentPage.tsx","../../src/sections/LKSection/modules/PvzModule/pages/PvzEditAreaPage/PvzEditAreaForm/validate.ts","../../src/sections/LKSection/modules/PvzModule/pages/PvzEditAreaPage/PvzEditAreaForm/PvzEditAreaForm.tsx","../../src/sections/LKSection/modules/PvzModule/pages/PvzEditAreaPage/PvzEditAreaPage.tsx","../../src/sections/LKSection/modules/PvzModule/pages/PvzEditTimetablePage/PvzEditTimetablePage.tsx","../../src/sections/LKSection/modules/PvzModule/utils.ts","../../src/sections/LKSection/modules/PvzModule/pages/PvzItemPage/PvzItemForm/validate.ts","../../src/sections/LKSection/modules/PvzModule/pages/PvzItemPage/PvzItemForm/PvzItemForm.tsx","../../src/sections/LKSection/modules/PvzModule/pages/PvzItemPage/PvzItemPage.tsx","../../src/sections/PromoSection/shared/utils.ts","../../src/sections/LKSection/modules/PvzModule/components/PvzItemHeader/PvzItemHeader.tsx","../../src/sections/LKSection/modules/PvzModule/PvzPage.tsx","../../src/sections/LKSection/modules/TicketModule/pages/TicketItemPage/Actions/TicketActions.tsx","../../src/assets/img/searchEngine/send-message__icon.svg?react","../../src/sections/LKSection/modules/TicketModule/pages/TicketItemPage/Chat/TicketChat.tsx","../../src/sections/LKSection/modules/TicketModule/utils.ts","../../src/sections/LKSection/modules/TicketModule/pages/TicketItemPage/Info/TicketInfo.tsx","../../src/sections/LKSection/modules/TicketModule/pages/TicketItemPage/TicketItemPage.tsx","../../src/sections/LKSection/modules/TicketModule/components/TicketItemHeader/TicketItemHeader.tsx","../../src/assets/img/lk-section/Ticket/no-ticket.png","../../src/sections/LKSection/modules/TicketModule/TicketPage.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/ContactInfoStep/ProfileForm/ProfileForm.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/ContactInfoStep/ContactInfoStep.tsx","../../src/sections/LKSection/modules/UserModule/pages/EditContactPage/EditContactPage.tsx","../../src/sections/LKSection/modules/UserModule/utils/useSendPassportFile.ts","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportPhotoStep/OldPassportPhoto.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportPhotoStep/PassportPhoto.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportPhotoStep/PassportPhotoStep.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportForm/OldIdentificationForm.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportForm/OldPassportForm.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportForm/IdentificationForm.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportForm/PassportForm.tsx","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/PassportStep/PassportStep.tsx","../../src/sections/LKSection/modules/UserModule/pages/EditPassportPage/EditPassportPage.tsx","../../src/sections/LKSection/modules/UserModule/utils/useSendTaxFile.ts","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/ActivityStep/data.ts","../../src/sections/LKSection/modules/UserModule/components/PersonalDataSteps/ActivityStep/ActivityStep.tsx","../../src/sections/LKSection/modules/UserModule/pages/EditRequisitesPage/EditRequisitesPage.tsx","../../src/sections/LKSection/modules/UserModule/components/ProfileItem/ProfileItem.tsx","../../src/sections/LKSection/modules/UserModule/pages/ProfilePage/ProfilePage.tsx","../../src/sections/LKSection/modules/PvzModule/pages/PvzSignboardPage/PvzSignboardPage.tsx","../../src/sections/PromoSection/shared/constants.ts","../../src/sections/LKSection/modules/UserModule/pages/LoginPage/LoginPage.tsx","../../src/sections/LKSection/modules/UserModule/pages/RegistrationPage/RegistrationPage.tsx","../../src/sections/PromoSection/modules/ELockModule/ELockPage.async.tsx","../../src/sections/PromoSection/modules/ELockModule/pages/ELockContractorsPage/ELockContractorsPage.async.tsx","../../src/sections/PromoSection/pages/AppsPage/AppsPage.async.tsx","../../src/assets/img/banking-services/sber.svg","../../src/assets/img/banking-services/t-bank.svg","../../src/assets/img/banking-services/tochka.svg","../../src/sections/PromoSection/pages/BankingServicesPage/components/BankingServicesItem/data/BankingServicesItemData.ts","../../src/components/ui/Title/Title.tsx","../../src/sections/PromoSection/pages/BankingServicesPage/components/BankingServicesItem/BankingServicesItem.tsx","../../src/sections/PromoSection/pages/BankingServicesPage/BankingServicesPage.tsx","../../src/sections/PromoSection/pages/ConferencesPage/ConferencesPage.async.tsx","../../src/sections/PromoSection/pages/DownloadsPage/DownloadsPage.async.tsx","../../src/sections/PromoSection/pages/ListPages/ListSignBoardsContractorsPage/ListSignBoardsContractorsPage.async.tsx","../../src/sections/PromoSection/pages/ListPages/ListSignBoardsSortingCentersPage/ListSignBoardsSortingCentersPage.async.tsx","../../src/utils/helpers/scrollToId.ts","../../src/assets/img/promo-page/opening-steps/1.webp","../../src/assets/img/promo-page/opening-steps/1-mobile.webp","../../src/assets/img/promo-page/opening-steps/1-tablet.webp","../../src/assets/img/promo-page/opening-steps/2.webp","../../src/assets/img/promo-page/opening-steps/2-mobile.webp","../../src/assets/img/promo-page/opening-steps/2-tablet.webp","../../src/assets/img/promo-page/opening-steps/3.webp","../../src/assets/img/promo-page/opening-steps/3-mobile.webp","../../src/assets/img/promo-page/opening-steps/3-tablet.webp","../../src/assets/img/promo-page/opening-steps/4.webp","../../src/assets/img/promo-page/opening-steps/4-mobile.webp","../../src/assets/img/promo-page/opening-steps/4-tablet.webp","../../src/assets/img/promo-page/opening-steps/5.webp","../../src/assets/img/promo-page/opening-steps/5-mobile.webp","../../src/assets/img/promo-page/opening-steps/5-tablet.webp","../../src/sections/PromoSection/pages/PromoPage/PromoPageGe/data.ts","../../src/sections/PromoSection/components/OpeningSteps/components/Step/Step.tsx","../../src/sections/PromoSection/components/OpeningSteps/OpeningSteps.tsx","../../src/sections/PromoSection/pages/PromoPage/PromoPageGe/Sections/OpeningSteps/OpeningStepsSection.tsx","../../src/utils/formatting/formatPhoneNumber/formatPhomeNumberForText/formatPhoneNumberForText.ts","../../src/assets/img/shared/arrow3.svg?react","../../src/sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/components/customOptions/CustomOption.tsx","../../src/sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/components/customOptions/CustomSingleValue.tsx","../../src/sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/components/customSelect/CountrySelectWithFlags.tsx","../../src/sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/countrySelectCustomStyles.ts","../../src/sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/OpenPickPointForm.tsx","../../src/assets/img/promo-page/pickpoint.webp","../../src/assets/img/promo-page/simplified-conditions/houseImg.webp","../../src/sections/PromoSection/pages/PromoPage/Sections/Authorization/Authorization.tsx","../../src/utils/adriver/runAdriverTracking.js","../../src/components/CookiePolicy/CookiePolicy.tsx","../../src/utils/adriver/sendAdriverEvent.js","../../src/assets/img/shared/arrow2.svg?react","../../src/sections/PromoSection/pages/PromoPage/Sections/Faq/components/FaqItem.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/Faq/data.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/Faq/Faq.tsx","../../src/assets/img/promo-page/banners/simplifiedConditionsM.png","../../src/assets/img/promo-page/banners/courier-l.png","../../src/assets/img/promo-page/banners/courier-m.png","../../src/assets/img/promo-page/banners/courier-s.png","../../src/assets/img/promo-page/banners/simplifiedConditionsL.png","../../src/assets/img/promo-page/banners/simplifiedConditionsS.png","../../src/sections/PromoSection/pages/PromoPage/Sections/Hero/Banner/data.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/Hero/Banner/Banner.tsx","../../src/sections/PromoSection/pages/PromoPage/data.ts","../../src/sections/PromoSection/pages/PromoPage/PromoPageGe/Sections/Map/MapGe.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/Map/data.ts","../../src/assets/img/promo-page/mapMarker.svg?react","../../src/sections/PromoSection/pages/PromoPage/Sections/Map/Map.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/Hero/LimitedOffer/LimitedOffer.tsx","../../src/assets/img/promo-page/heroBgM.webp","../../src/assets/img/promo-page/heroBgNew.webp","../../src/assets/img/promo-page/heroBgNew-sd.webp","../../src/assets/img/promo-page/heroBgNew-t.webp","../../src/sections/PromoSection/pages/PromoPage/Sections/Hero/Hero.tsx","../../src/assets/img/promo-page/brand-pp-preview.png","../../src/assets/img/promo-page/village-pp-preview.png","../../src/sections/PromoSection/pages/PromoPage/Sections/KindsOfPickPoints/data.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/KindsOfPickPoints/types.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/KindsOfPickPoints/components/PickPointBox/PickPointBox.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/KindsOfPickPoints/KindsOfPickPoints.tsx","../../src/assets/img/promo-page/markerIcon.webp","../../src/assets/img/promo-page/zipIcon.webp","../../src/sections/PromoSection/pages/PromoPage/Sections/MarketPlaceStat/data.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/MarketPlaceStat/MarketPlaceStat.tsx","../../src/assets/img/promo-page/support-card/bookImg.webp","../../src/assets/img/promo-page/support-card/giftImg.webp","../../src/assets/img/promo-page/support-card/walletImg.webp","../../src/sections/PromoSection/pages/PromoPage/Sections/OpeningSteps/components/SupportCard/SupportCard.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/OpeningSteps/data.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/OpeningSteps/OpeningSteps.tsx","../../src/assets/img/shared/downloadArrow.svg?react","../../src/sections/PromoSection/pages/PromoPage/Sections/PromoLink/PromoLink.tsx","../../src/assets/icons/play.svg?react","../../src/sections/PromoSection/pages/PromoPage/Sections/VideoSection/components/LazyLoadVideo.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/VideoSection/VideoSection.tsx","../../src/assets/img/video-section/intro-video-preview.webp","../../src/sections/PromoSection/pages/PromoPage/PromoPage.tsx","../../src/sections/PromoSection/pages/PromoPage/RatingPage/RatingPage.async.tsx","../../src/sections/PromoSection/pages/PromoPage/SignBoardPage/SignBoardPage.async.tsx","../../src/sections/PromoSection/pages/SimplifiedConditionsPage/SimplifiedConditionsPage.async.tsx","../../src/sections/PromoSection/pages/VideoConnectionPage/VideoConnectionPage.async.tsx","../../src/sections/PromoSection/pages/PromoPage/helpers/updatePageHeight.ts","../../src/assets/icons/minus.svg?react","../../src/assets/icons/plus.svg?react","../../src/components/Footer/components/FooterLinksWrapper.tsx","../../src/assets/img/promo-page/mobileQr.svg?react","../../src/assets/img/promo-page/rutubeLogo.svg","../../src/assets/img/promo-page/wb-logo.webp","../../src/assets/img/promo-page/youtubeLogo.svg","../../src/components/Footer/Footer.tsx","../../src/components/FooterNew/FooterNew.tsx","../../src/components/Header/SideMenu/SideMenu.tsx","../../src/assets/icons/burgerNew.svg?react","../../src/assets/icons/cross.svg?react","../../src/assets/icons/userAuthIcon.svg?react","../../src/assets/icons/userIcon.svg?react","../../src/components/Header/Header.tsx","../../src/assets/img/promo-page/desktopOverlay.webp","../../src/assets/img/promo-page/hero-bg-ny-d.webp","../../src/assets/img/promo-page/hero-bg-ny-m.webp","../../src/assets/img/promo-page/hero-bg-ny-t.webp","../../src/assets/img/promo-page/login-page-background-ge.webp","../../src/sections/PromoSection/PromoGeneralLayout/PromoGeneralLayout.tsx","../../src/sections/PromoSection/pages/PromoPage/PromoPageGe/pages/LoginPage/LoginPageGe.tsx","../../src/sections/PromoSection/pages/PromoPage/PromoPageGe/PromoPageGe.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/PrivacyPolicy/inputCustomStyles.ts","../../src/sections/PromoSection/pages/PromoPage/Sections/PrivacyPolicy/data.tsx","../../src/sections/PromoSection/pages/PromoPage/Sections/PrivacyPolicy/PrivacyPolicy.tsx","../../src/sections/LKSection/modules/PvzModule/pages/MovingPvzPage/MovingPvzPage.tsx","../../src/RouteList.tsx","../../src/sections/PromoSection/modules/SearchEngineModule/components/FeedbackForm/data.ts","../../src/assets/img/feedback/feedbackForm-error.svg?react","../../src/assets/img/feedback/feedbackForm-success.svg?react","../../src/sections/PromoSection/modules/SearchEngineModule/components/FeedbackForm/FeedbackForm.tsx","../../src/assets/img/searchEngine/avatar_bot.svg","../../src/sections/PromoSection/modules/SearchEngineModule/components/Chat/Chat.tsx","../../src/components/ui/ThreeDotLoader/ThreeDotLoader.tsx","../../src/assets/img/searchEngine/sendMessageIcon.svg?react","../../src/sections/PromoSection/modules/SearchEngineModule/components/ChatModal/ChatModalFooter/ChatModalFooter.tsx","../../src/sections/PromoSection/modules/SearchEngineModule/components/ChatModal/ChatModalHeader/ChatModalHeader.tsx","../../src/assets/img/searchEngine/close-icon.svg?react","../../src/sections/PromoSection/modules/SearchEngineModule/components/ChatModal/ChatModal.tsx","../../src/assets/img/searchEngine/searchEngineIcon.svg?react","../../src/sections/PromoSection/modules/SearchEngineModule/SearchEngine.tsx","../../src/utils/helpers/clipboard.ts","../../src/components/AdminV2/utils/getSectionReq.ts","../../src/assets/img/gallery--close.svg","../../src/components/AdminV2/Admin.tsx","../../src/components/CookiePolicy/layoutModel.tsx","../../src/utils/helpers/ScrollToTop.tsx","../../src/App.tsx","../../src/index.tsx"],"sourcesContent":["export const appConfigDev = {\n API_URL: 'https://point-stage.wb.ru/',\n API_SHARD_URL: 'https://point-stage.wb.ru/',\n DISCOVERY_URL: 'http://api-feature-PPVZD-2309.extdelivery-discovery.k8s.dev-el/',\n PROMO_URL: 'https://point-promo.wb.ru/',\n METRICS_URL: 'https://point-metrics.wb.ru/',\n AUTH_API_URL: 'https://r-point-stage.wb.ru/',\n ELOCK_URL: 'https://elock-stage.wb.ru/',\n TICKETS_URL: 'https://tickets-stage.wb.ru/',\n APP_MGMT_URL: 'http://extdelivery-infra-ingress-controller.extdelivery-infra.k8s.extdelivery-stage-dm/app-conf-manager/',\n SEARCH_ENGINE_URL: 'https://point-search-stage.wb.ru/',\n OFFER_URL: 'https://point-quality-stage.wb.ru/offer',\n CAMERAS_URL: 'https://point-cameras-stage.wb.ru/',\n TILE_SERVER_URL: 'https://pvz-map-tile-server-stage.wb.ru',\n}\n","export const appConfigProd = {\n API_URL: 'https://point.wb.ru/',\n API_SHARD_URL: 'https://s-point.wb.ru/s1',\n DISCOVERY_URL: 'https://api-discovery.wildberries.ru/',\n PROMO_URL: 'https://point-promo.wb.ru/',\n METRICS_URL: 'https://point-metrics.wb.ru/',\n TICKETS_URL: 'https://tickets.wb.ru/',\n AUTH_API_URL: 'https://r-point.wb.ru',\n ELOCK_URL: 'https://elock.wb.ru/',\n APP_MGMT_URL: 'https://app-mgmt-point.wb.ru/',\n SEARCH_ENGINE_URL: 'https://point-search.wb.ru/',\n OFFER_URL: 'https://point-quality.wb.ru/offer',\n CAMERAS_URL: 'https://point-cameras.wildberries.ru/',\n TILE_SERVER_URL: 'https://pvz-map-tile-server.wildberries.ru',\n}\n","export const appConfigStage = {\n API_URL: 'https://point-stage.wb.ru/',\n API_SHARD_URL: 'https://point-stage.wb.ru/',\n DISCOVERY_URL: 'https://api-discovery-stage.wildberries.ru/',\n PROMO_URL: 'https://point-promo.wb.ru/',\n METRICS_URL: 'https://point-metrics.wb.ru/',\n AUTH_API_URL: 'https://r-point-stage.wb.ru/',\n ELOCK_URL: 'https://elock-stage.wb.ru/',\n TICKETS_URL: 'https://tickets-stage.wb.ru/',\n APP_MGMT_URL: 'http://extdelivery-infra-ingress-controller.extdelivery-infra.k8s.extdelivery-stage-dm/app-conf-manager/',\n SEARCH_ENGINE_URL: 'https://point-search-stage.wb.ru/',\n OFFER_URL: 'https://point-quality-stage.wb.ru/offer',\n CAMERAS_URL: 'https://point-cameras-stage.wb.ru/',\n TILE_SERVER_URL: 'https://pvz-map-tile-server-stage.wb.ru',\n}\n","import { appConfigDev } from './appConfigDev'\nimport { appConfigProd } from './appConfigProd'\nimport { appConfigStage } from './appConfigStage'\n\nexport const appConfig = getConfig(appConfigProd, appConfigStage, appConfigDev)\n\nexport function getConfig(prod: TConfig, stage: TConfig, dev: TConfig): TConfig {\n let config = prod\n const environment = getEnvironment()\n\n switch (environment) {\n case 'stage':\n config = stage\n break\n case 'dev':\n config = dev\n break\n }\n\n if (location.origin.includes('stage')) {\n config = stage\n }\n\n return config\n}\n\nexport function getEnvironment(): 'stage' | 'prod' | 'dev' {\n return import.meta.env.VITE_NODE_ENV\n}\n","export type ELockInfoRequest = {\n lockName: string\n orderId: number\n employeeId: number\n tokenType?: 0 | 1\n /** Если токен нужно получить для замка который не установлен на ПВЗ, проставляется true,\n * в таком случае будет использовано поле lock_name вместо pickpoint_id.\n */\n lockNoSet: boolean\n /** Время в течении которого можно воспользоваться ключом.\n * Время действия с момента получения токена + ttl\n * (время в часах, значение ttl в диапазоне 1-6, при tll = 0 либо > 6, значение по умолчанию - 6)\n */\n ttl?: number\n}\n\nexport type ELockConnectInfoDTO = {\n /** токен для открытия замка */\n virtualKey: string\n /** название точки доступа (wi-fi) */\n ssid: string\n /** пароль к точке доступа (wi-fi) */\n psk: number\n /** Время истечения срока действия ключа UNIX (отметка времени в секундах) */\n endDate: string\n linkToOpen: string\n}\n\nexport enum ELockPhoto {\n doorFromInside = 'doorFromInsidePhoto',\n doorFromTheEnd = 'doorFromTheEndPhoto',\n controller = 'controllerPhoto',\n /** Тип фотографий в форме активации без замка */\n reason = 'ELockReasonPhoto',\n}\n\nexport type ELockFileItem = {\n url: string\n type: ELockPhoto\n size: number\n}\n\nexport type ActivateELockRequest = {\n orderId: number\n eLockName: string\n photos: ELockFileItem[]\n}\n\nexport enum ElockReason {\n none = 'PickpointOrderElockNoReason',\n other = 'PickpointOrderElockOtherReason',\n glassDoor = 'PickpointOrderElockGlassDoor',\n northernRegion = 'PickpointOrderElockNorthernRegion',\n}\n\nexport type SetELockReasonPhotoType = {\n type: string\n url: string\n}\n\nexport type OrderELockInfoDTO = {\n reason: ElockReason\n photos: {\n type: ELockPhoto\n url: string\n }[]\n status: ElockInfoStatus\n description: string\n /** признак активации */\n enabled: boolean\n elockName: string\n}\n\nexport enum ElockInfoStatus {\n none = 'PickpointOrderElockStatusNONE',\n pending = 'PickpointOrderElockStatusPENDING',\n remark = 'PickpointOrderElockStatusREVISION',\n approved = 'PickpointOrderElockStatusAPPROVED',\n}\n\nexport type SetELockReasonRequest = {\n orderId: number\n reason: ElockReason\n description: string\n photos: SetELockReasonPhotoType[]\n}\n\nexport type UpdateELockRequest = SetELockReasonRequest & {\n eLockName: string\n photos: SetELockReasonPhotoType[] | ELockFileItem[]\n}\n","export const getSharedKey = (key: string) => `shared.${key}`\nexport const getLkGeneralKey = (key: string) => `lkGeneral.${key}`\n","export const STORAGE_PREFIX = '@promo.'\n\nexport enum STORAGE_KEY {\n AUTHENTICATED = 'authenticated',\n ACCESS_TOKEN = 'token',\n REFRESH_TOKEN = 'refreshToken',\n USER_INFO = 'user.info',\n DEVICE_UUID = 'deviceUuid',\n\n /** сохранение координат для заявки */\n COORDINATES = 'coordinates',\n /** для проверки доступа к админке */\n USER_TOKEN = 'user_token',\n /** сохранение типа ПВЗ для заявки */\n PICK_POINT_TYPE = 'typePoint',\n /** сохранение типа субсидии для заявки */\n SUBSIDY_HEX_TYPE = 'subsidyHexType',\n BANNER_HIDDEN = 'bannerHidden',\n}\n\nconst memoryStorage = new Map()\n\nexport const setLocalStorageData = (key: STORAGE_KEY, value: any) => {\n try {\n const jsonValue = JSON.stringify(value)\n const fullKey = getFullKey(key)\n memoryStorage.set(fullKey, jsonValue)\n localStorage.setItem(fullKey, jsonValue)\n } catch (e) {\n // saving error\n }\n}\n\nexport const clearLocalStorageData = (key: STORAGE_KEY) => {\n try {\n const fullKey = getFullKey(key)\n memoryStorage.delete(fullKey)\n localStorage.removeItem(fullKey)\n } catch (e) {\n // saving error\n }\n}\n\nexport const getLocalStorageData = (key: STORAGE_KEY) => {\n const fullKey = getFullKey(key)\n let value: string | undefined | null = memoryStorage.get(fullKey)\n\n if (!value) {\n value = localStorage.getItem(fullKey)\n }\n\n if (value) {\n try {\n return JSON.parse(value)\n } catch (error) {\n return value\n }\n }\n}\n\nexport const memoryStorageClear = () => {\n memoryStorage.clear()\n}\n\nconst getFullKey = (key: string) => STORAGE_PREFIX + key\n","export const enum PromoRoutesEnum {\n root = '/',\n banners = '/banners',\n signboard = '/signboard',\n videoConnection = '/video-connection',\n listSignBoardsContractors = '/list-sign-boards-contractors',\n listSignBoardsSortingCenters = '/list-sign-boards-sorting-centers',\n listELockContractors = '/list-elock-contractors',\n eLock = '/elock',\n conferences = '/conferences',\n rating = '/rating',\n apps = '/apps',\n contractors = '/contractors',\n privacyPolicy = 'privacy-policy',\n bankingServices = '/banking-services',\n simplifiedConditions = '/simplified-conditions',\n}\n\nexport const enum PromoGeRoutesEnum {\n root = '/',\n apps = '/apps',\n login = '/login-page',\n}\n\nexport const enum AuthRoutesEnum {\n login = '/login',\n registration = '/registration',\n}\nexport const enum MapRoutesEnum {\n map = '/map',\n orders = '/map/orders',\n}\n\nexport const enum LKRoutesEnum {\n orders = '/lk/orders',\n orderCreate = '/lk/orders/create',\n orderPayment = '/lk/orders/payment',\n pvz = '/lk/pvz',\n tickets = '/lk/tickets',\n ticketCreate = '/lk/tickets/create',\n employees = '/lk/employees',\n addEmployee = '/lk/employees/add',\n profile = '/lk/profile',\n editRequisites = '/lk/profile/editRequisites',\n editPassport = '/lk/profile/editPassport',\n editContact = '/lk/profile/editContact',\n}\n","import { ErrorResponseData, PropType } from '../../types/types'\n\nexport class HttpResponseError extends Error {\n constructor(\n public response: Response,\n message = '',\n public data: PropType | null = null,\n ) {\n super(message)\n }\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { AuthRoutesEnum } from 'shared/constants/routes'\n\nimport { ErrorResponseData } from '../types/types'\nimport { HttpResponseError } from './Errors/HttpResponseError'\nimport { getLocalStorageData, setLocalStorageData, STORAGE_KEY } from './localStorage.service'\n\nexport async function assertHttpResponse(response: Response, fullUrlPrev: string, requestPrev: RequestInit) {\n if (isSuccess(response)) {\n return\n }\n\n const { error }: ErrorResponseData = await response.json()\n\n const { status } = response\n const serverErrorMsg = 'Ошибка на сервере. Обратитесь к администратору'\n let msg: string = ''\n\n switch (status) {\n case 400:\n msg = error?.message ?? 'Ошибка запроса.'\n break\n case 401: {\n const headers = {\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n 'X-Token': getLocalStorageData(STORAGE_KEY.ACCESS_TOKEN),\n }\n\n const request: RequestInit = {\n method: 'POST',\n headers,\n }\n\n const body = {\n backoffice: false,\n token: getLocalStorageData(STORAGE_KEY.REFRESH_TOKEN),\n }\n\n request.body = JSON.stringify(body)\n\n const url = 'api/v2/token/refresh'\n const fullUrl = `${appConfig.API_URL}${url}`\n const resp = await fetch(fullUrl, request)\n const data = await resp.json()\n\n if (!isSuccess(resp)) {\n handle401Error()\n } else {\n setLocalStorageData(STORAGE_KEY.ACCESS_TOKEN, data.access.token)\n setLocalStorageData(STORAGE_KEY.REFRESH_TOKEN, data.refresh.token)\n\n // @ts-expect-error: @\n requestPrev.headers['X-Token'] = data.access.token\n\n return await fetch(fullUrlPrev, requestPrev)\n }\n break\n }\n case 500:\n msg = (error?.data?.[0]?.value || error?.message) ?? serverErrorMsg\n break\n case 502:\n break\n default:\n msg = (error?.data?.[0]?.value || error?.message) ?? serverErrorMsg\n break\n }\n\n throw new HttpResponseError(response, msg, error)\n}\n\nfunction isSuccess(response: Response): boolean {\n return response.status >= 200 && response.status < 300\n}\n\nfunction handle401Error() {\n localStorage.clear()\n window.location.href = AuthRoutesEnum.login\n}\n","import { appConfig } from 'config/environment/appConfig'\nimport i18next from 'i18next'\n\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nimport { getLocalStorageData, STORAGE_KEY } from './localStorage.service'\nimport { assertHttpResponse } from './ResponseHandlerService'\n\nenum HTTP_METHOD {\n GET = 'get',\n POST = 'post',\n PATCH = 'patch',\n PUT = 'put',\n DELETE = 'delete',\n}\n\nexport type RequestOptions = {\n body?: any\n requestFromPromo?: boolean\n headers?: HeadersInit\n disableToken?: boolean\n}\n\nexport class HttpService {\n private static headers: HeadersInit\n\n constructor(\n private prefixUrl?: string,\n private newPrefixUrl?: string,\n ) {}\n\n async get(url: string, options?: RequestOptions): Promise {\n return this.request(HTTP_METHOD.GET, url, options)\n }\n\n async post(url: string, options?: RequestOptions): Promise {\n return this.request(HTTP_METHOD.POST, url, options)\n }\n\n async delete(url: string, options?: RequestOptions): Promise {\n return this.request(HTTP_METHOD.DELETE, url, options)\n }\n\n async put(url: string, options?: RequestOptions): Promise {\n return this.request(HTTP_METHOD.PUT, url, options)\n }\n\n async patch(url: string, options?: RequestOptions): Promise {\n return this.request(HTTP_METHOD.PATCH, url, options)\n }\n\n async request(\n method: HTTP_METHOD,\n url: string,\n { body, requestFromPromo, headers = {}, disableToken }: RequestOptions = {},\n ): Promise {\n const token = await this.getTokens(Boolean(requestFromPromo))\n\n const headersForLK = requestFromPromo\n ? undefined\n : {\n 'X-App-Version': 'v20.00.00',\n 'X-App-Type': 'prod',\n }\n\n const request: RequestInit = {\n method,\n headers: {\n Accept: 'application/json, text/plain, */*, promo',\n 'Content-Type': 'application/json',\n ...headersForLK,\n ...headers,\n },\n }\n\n if (!disableToken && token) {\n request.headers = { 'X-Token': token, ...request.headers }\n }\n\n if (method !== HTTP_METHOD.GET) {\n request.body = JSON.stringify(body)\n }\n\n if (this.newPrefixUrl) {\n try {\n const fullUrl = this.buildFullUrl(url, this.newPrefixUrl)\n\n const resp = await fetch(fullUrl, request)\n await assertHttpResponse(resp, fullUrl, request)\n\n return (await resp.json()) as Promise\n } catch (error) {\n return await this.generalRequest(url, request)\n }\n } else {\n return await this.generalRequest(url, request)\n }\n }\n\n async generalRequest(url: string, request: RequestInit) {\n let xRequestId: string | null = ''\n const errorCodeLabel = i18next.t(getSharedKey('api.X-Request-Id'))\n\n try {\n const fullUrl = this.prefixUrl ? this.buildFullUrl(url, this.prefixUrl) : url\n\n const resp = await fetch(fullUrl, request)\n\n xRequestId = resp.headers.get('X-Request-Id')\n\n const retryResp = await assertHttpResponse(resp, fullUrl, request)\n\n return retryResp ? ((await retryResp.json()) as Promise) : ((await resp.json()) as Promise)\n } catch (error) {\n throw new Error(`${(error as Error).message}${xRequestId ? `\\n\\n${errorCodeLabel}: ${xRequestId}` : ''}`)\n }\n }\n\n setPrefixUrl(prefix: string) {\n this.prefixUrl = prefix\n return this\n }\n\n async getTokens(requestFromPromo: boolean) {\n const token = getLocalStorageData(requestFromPromo ? STORAGE_KEY.USER_TOKEN : STORAGE_KEY.ACCESS_TOKEN)\n return token ? token : getLocalStorageData(STORAGE_KEY.ACCESS_TOKEN) || getLocalStorageData(STORAGE_KEY.USER_TOKEN)\n }\n\n buildFullUrl(url: string, apiUrl = appConfig.API_URL) {\n if (url.includes(apiUrl)) return url\n\n url = url.startsWith('/') ? url : `/${url}`\n const prefix = apiUrl[apiUrl.length - 1] === '/' ? apiUrl.slice(0, -1) : apiUrl\n return `${prefix}${url}`\n }\n\n static setHeaders(headers: HeadersInit) {\n this.headers = { ...this.headers, ...headers }\n return this\n }\n}\n","function toCamelCase(str: string): string {\n return str.replace(/([-_][a-z])/gi, (match) => {\n // Переводим первую букву после символа '-' или '_' в верхний регистр\n return match[1].toUpperCase()\n })\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isObject(item: any): item is Record {\n return typeof item === 'object' && !Array.isArray(item) && item !== null\n}\n\n/** Функция рекурсивно преобразует ключи объекта в camelCase */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default function convertKeysToCamelCase(obj: any): any {\n if (isObject(obj)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const newObject: any = {}\n\n for (const key in obj) {\n if (key in obj) {\n const camelCaseKey: string = toCamelCase(key)\n newObject[camelCaseKey] = convertKeysToCamelCase(obj[key])\n }\n }\n\n return newObject\n } else if (Array.isArray(obj)) {\n return obj.map(convertKeysToCamelCase)\n }\n\n return obj\n}\n","export enum TicketType {\n /** Заявка по открытию ПВЗ */\n openingOrder = 62,\n /** Планировка помещения */\n roomLayout = 72,\n}\n\nexport enum TicketReason {\n eLock = 111,\n signboard = 112,\n}\n\nexport type CreateTicketRequest = {\n ticketType: number\n description: string\n orderId: number\n files: TicketFiles\n ticketReason?: number\n}\n\nexport type TicketFiles = {\n document_urls: string[]\n image_urls: string[]\n video_urls: string[]\n}\n\nexport type TicketFileUploadDTO = {\n chunkNum: number\n status: string\n uploadedSize: number\n url: string\n uuid: string\n}\n\nexport enum TicketPhotoType {\n /** Фасад здания днем */\n generalPhoto = 'generalPhoto',\n /** Документ БТИ */\n btiDocument = 'btiDocument',\n}\n\nexport type TicketDTO = {\n id: number\n userId: number\n createDate: string\n finishDate: string\n description: string\n imageUrls: string[]\n videoUrls: string[]\n documentUrls: string[]\n ticketTypeId: number\n ticketTypeName: string\n ticketStateId: number\n supportLogs: TicketSupportLogsDTO[]\n ticketHistory: TicketHistoryDTO[]\n ticketGrade: number\n gradeComment: string\n openAfterAnswer: number\n isRead: boolean\n managerId: number\n updateDate: string\n orderId: number\n autoClose: number\n}\n\nexport type TicketSupportLogsDTO = {\n id: number\n ticketId: number\n message: string\n userId: number\n isSend: boolean\n createDate: string\n imageUrls: string[] | null\n videoUrls: string[] | null\n documentUrls: string[] | null\n fio: string\n isManager: boolean\n}\n\nexport type TicketHistoryDTO = {\n userId: number\n createDate: string\n fio: string\n state: number\n stateName: string\n ticketId: number\n}\n\nexport type GetTicketListRequest = {\n page: number\n pageSize: number\n search?: string\n ticketStateId?: number\n ticketTypeIds?: number[]\n sortByCreateDate?: 'asc' | 'desc'\n}\n\nexport type CreateSupportLogRequest = {\n ticketId: number\n message: string\n files?: TicketFiles\n}\n\nexport enum TicketStatus {\n open = 1,\n inProgress = 2,\n closed = 3,\n}\n\nexport type RateTicketRequest = {\n ticketId: number\n grade: number\n message: string\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { FileUploadRequest } from 'services/FileService'\nimport { HttpService } from 'services/HttpService'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { ResponseListData } from 'shared/types/types'\n\nimport {\n CreateSupportLogRequest,\n CreateTicketRequest,\n GetTicketListRequest,\n RateTicketRequest,\n TicketDTO,\n TicketFileUploadDTO,\n TicketStatus,\n} from './types'\n\nconst ticketsService = new HttpService(appConfig.TICKETS_URL)\n\nexport const ticketApi = {\n createTicket: async (data: CreateTicketRequest): Promise<{ ticketId: number }> => {\n const result = await ticketsService.post('/api/v1/user/tickets', {\n body: {\n ticket_type_id: data.ticketType,\n ticket_reason_id: data.ticketReason,\n description: data.description,\n files: data.files,\n id_order: data.orderId,\n },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n ticketFileUpload: async (data: FileUploadRequest): Promise => {\n const result = await ticketsService.post('api/v2/common/upload', {\n body: {\n chunk_num: data.chunkNum,\n entity_type: data.entityType,\n total_size: data.totalSize,\n chunk: data.chunk,\n uuid: data.uuid,\n },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n getTicketList: async (data: GetTicketListRequest): Promise> => {\n const result = await ticketsService.post>('api/v3/user/tickets/all', {\n body: {\n offset: data.page * data.pageSize - data.pageSize,\n limit: data.pageSize,\n search: data.search,\n ticketStateId: data.ticketStateId,\n sort_by_create_date: data.sortByCreateDate,\n ticket_type_ids: data.ticketTypeIds,\n only_my_tickets: true,\n },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n createSupportLog: async (data: CreateSupportLogRequest) => {\n return await ticketsService.post('api/v1/user/support-log', {\n body: {\n ticket_id: data.ticketId,\n message: data.message,\n document_urls: data.files?.document_urls,\n image_urls: data.files?.image_urls,\n video_urls: data.files?.video_urls,\n },\n })\n },\n\n closeTicket: async (ticketId: number) => {\n return await ticketsService.post('api/v1/user/tickets/set-state', {\n body: {\n ticket_id: ticketId,\n ticket_state_id: TicketStatus.closed,\n },\n })\n },\n\n rateTicket: async ({ ticketId, grade, message }: RateTicketRequest) => {\n return await ticketsService.post('api/v1/user/grade', {\n body: {\n ticket_id: ticketId,\n grade,\n message,\n },\n })\n },\n}\n","/** Для проверки валидности ссылки */\nexport const WEB_LINK_REGEXP =\n /(https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|www\\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\\.[^\\s]{2,}|https?:\\/\\/(?:www\\.|(?!www))[a-zA-Z0-9]+\\.[^\\s]{2,}|www\\.[a-zA-Z0-9]+\\.[^\\s]{2,})/\n\n/** Находит символы, которые не являются цифрами и точкой */\nexport const NOT_NUMBERS_REGEXP = /[^\\d.]/g\n\nexport const TELEGRAM_REGEXP = /^@\\w{2,}$/\n\nexport const ALL_EXCEPT_NUMBERS_REGEXP = /[^\\d]/g\n\n/** Находит символы, которые не являются кириллицей, латинницей и дефисом */\nexport const NOT_LATIN_CYRILLIC_HYPHEN = /[^a-zA-Zа-яА-ЯёЁ-]/g\nexport const NOT_LATIN_CYRILLIC = /[^a-zA-Zа-яА-ЯёЁ]/g\nexport const REPLACE_NOT_NUMBERS_REGEXP = /[^0-9.]/g\n\nexport const NUMBERS_REGEXP = /[0-9]/g\n","export function uuid4() {\n let uuid = '',\n ii\n for (ii = 0; ii < 32; ii += 1) {\n switch (ii) {\n case 8:\n case 20:\n uuid += ((Math.random() * 16) | 0).toString(16)\n break\n case 12:\n uuid += '4'\n break\n case 16:\n uuid += ((Math.random() * 4) | 8).toString(16)\n break\n default:\n uuid += ((Math.random() * 16) | 0).toString(16)\n }\n }\n return uuid\n}\n","export const enum SCROLL_TO_ID {\n intro = 'intro',\n branding = 'branding',\n faq = 'faq',\n feedback = 'feedback',\n footer = 'footer',\n videoSection = 'opening-video',\n openingSection = 'opening',\n pickPointKinds = 'pick-point-kinds',\n heroHome = 'home',\n heroForm = 'opening-form',\n conferencePageToday = 'today',\n authForm = 'authForm',\n}\n\nexport const SECTIONS_IDS = [1, 2, 3, 4, 5, 6, 7]\n\nexport const MILLISECONDS_IN_DAY = 86400000\n\nexport const APP_PREFIX = 'promo'\n\nexport const colors = {\n corp: '#cb11ab',\n corpLight: '#FFE6F7',\n corpMain: '#ad49fb',\n secondary: 'rgb(0 0 0 / 45%)',\n grayLight: 'rgb(128 128 128 / 15%)',\n grayLightHover: 'rgb(128 128 128 / 6.8%)',\n red: '#eb3546',\n orange: '#E47A00',\n black: '#090909',\n green: '#1ea52d',\n white: '#FFFFFF',\n darkAnt: '#001529',\n info: '#7b61ff',\n}\n\nexport const DATE_FORMAT_DEFAULT = 'DD.MM.YYYY'\nexport const DATE_FORMAT_WITH_TIME = 'DD.MM.YYYY [в] HH:mm'\nexport const TIME_FORMAT = 'HH:mm'\nexport const DATE_FORMAT_EMPTY_TIME = 'YYYY-MM-DDTHH:mm:ss[Z]'\n\nexport const enum SEARCH_PARAMS {\n pickPointType = 'open_condition',\n latitude = 'latitude',\n longitude = 'longitude',\n subsidyHexType = 'subsidy_hex_type',\n mobileToken = 'mobile_token',\n page = 'page',\n pageSize = 'pageSize',\n}\n\nexport const VIDEO_FORMATS = ['mp4', 'mov']\nexport const PHOTO_FORMATS = ['jpeg', 'png', 'jpg']\n\nexport const VIDEO_VALIDATE = { allowedFileFormats: VIDEO_FORMATS, maxFileSizeMb: 100 }\nexport const PHOTO_VALIDATE = { allowedFileFormats: PHOTO_FORMATS, maxFileSizeMb: 20 }\n\nexport const CHECK_NETWORK_URL = 'https://www.wildberries.ru/'\n\nexport const widths = {\n mobile: 440,\n tablet: 768,\n}\n","type Primitives = string | number | boolean | undefined\n\nexport function getArrayQueryParam(key: string, items: any[]): string {\n let result = items.reduce((acc, item) => `${acc}&${key}=${encodeURIComponent(item)}`, '') as string\n result = result.slice(1)\n return result\n}\n\nexport function getQueryUrl>(obj: T) {\n let url = ''\n for (const [key, value] of Object.entries(obj)) {\n if (value === undefined) continue\n const result = value\n if (result instanceof Array) {\n url += `&${getArrayQueryParam(key, result)}`\n } else {\n url += `&${key}=${encodeURIComponent(result)}`\n }\n }\n\n return url.slice(1)\n}\n","import dayjs from 'dayjs'\n\nimport { DesktopBundleInfoDTO } from 'sections/PromoSection/pages/AppsPage/types'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { uuid4 } from 'utils/helpers/uuid4'\n\nimport { appConfig } from '../config/environment/appConfig'\nimport { SECTIONS_IDS } from '../shared/constants/values'\nimport { FileUploadDTO, SectionsResponseType } from '../shared/types/types'\nimport { PromoSiteContactRequest, SectionsDTO } from '../types/types'\nimport { getQueryUrl } from './utils/getQueryUrl'\nimport { FileUploadRequest } from './FileService'\nimport { HttpService } from './HttpService'\n\nHttpService.setHeaders({\n Accept: 'application/json, text/plain, */*',\n 'Content-Type': 'application/json',\n})\n\nconst apiService = new HttpService(appConfig.API_SHARD_URL)\nconst promoService = new HttpService(appConfig.PROMO_URL)\nconst metricsService = new HttpService(appConfig.METRICS_URL)\nconst appMgmtService = new HttpService(appConfig.APP_MGMT_URL)\nconst apiDiscoveryService = new HttpService(appConfig.DISCOVERY_URL)\n\nconst requests = {\n updateSections: async (patch: SectionsDTO) => {\n const str = JSON.stringify(patch)\n\n const result = await promoService.post('content/admin/promo-content-sections/v2', {\n body: { data: str, id: 3 },\n requestFromPromo: true,\n })\n\n return result\n },\n\n getSections: async () => {\n const result = await promoService.post('content/promo-content-sections/v2', {\n body: { ids: SECTIONS_IDS },\n requestFromPromo: true,\n })\n return result\n },\n\n fileUpload: async (data: FileUploadRequest, requestFromPromo: boolean = false): Promise => {\n const result = await apiService.post('api/v2/file/upload', {\n body: {\n chunk_num: data.chunkNum,\n entity_type: data.entityType,\n entity_id: data.entityId,\n total_size: data.totalSize,\n chunk: data.chunk,\n uuid: data.uuid,\n },\n requestFromPromo,\n })\n\n return convertKeysToCamelCase(result)\n },\n\n addReview: async (data: PromoSiteContactRequest) => {\n await apiDiscoveryService.post('api/v4/ticket/promo-site-contact', {\n body: data,\n })\n },\n\n sendAppMetrics: async () => {\n const date = new Date()\n const isoString = date.toISOString()\n const userAgent = navigator.userAgent\n\n await metricsService.post('api/v1/events', {\n body: [\n {\n reqid: uuid4(),\n timestamp: isoString,\n kind: 'regular',\n type: 'USER_ACTION',\n tags: ['download', 'events', 'promo'],\n extra_data: { 'user-agent': userAgent },\n },\n ],\n })\n },\n\n getDesktopBundleLink: async (platform: 'windows' | 'linux'): Promise => {\n const queryUrl = getQueryUrl({\n is_promo: true,\n })\n return await appMgmtService.get(`api/v2/update-by-pickpoint?${queryUrl}`, {\n headers: { 'x-os-type': platform, 'x-timestamp': dayjs().format('YYYY-MM-DD HH:mm:ss') },\n disableToken: true,\n })\n },\n}\n\nexport default {\n requests,\n}\n","import { ticketApi } from 'sections/LKSection/modules/TicketModule/api'\nimport { TicketFileUploadDTO } from 'sections/LKSection/modules/TicketModule/types'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\nimport { FileUploadDTO } from 'shared/types/types'\n\nimport api from './api'\n\nexport enum FileEntityType {\n pickPointOrder = 1,\n user = 2,\n pickPoint = 4,\n ticket = 5,\n passport = 12,\n document = 15, // leaseDocument и btiDocument\n}\n\nexport type FileUploadRequest = {\n chunkNum: number\n entityType: FileEntityType\n totalSize: number | undefined\n chunk: string\n uuid?: string\n entityId?: number\n}\n\nexport type FileUploadData = {\n entityType: FileEntityType\n totalSize: number | undefined\n content: string\n entityId?: number\n requestFromPromo?: boolean\n}\n\ntype Files = {\n totalSize: number\n content: string\n}\n\ntype FilesUploadData = {\n files: Files[]\n entityType: FileEntityType\n entityId?: number\n isTicket?: boolean\n}\n\nexport function divideBase64(base64: string): Map {\n const partLength = 1_000_000\n const dividedMap = new Map()\n const partsCount = Math.ceil(base64.length / partLength)\n\n for (let i = 0; i < partsCount; i++) {\n dividedMap.set(i, base64.slice(0, partLength))\n base64 = base64.substr(partLength)\n }\n\n return dividedMap\n}\n\nexport class FileService {\n filesUpload = async ({\n entityId,\n entityType,\n files,\n isTicket = false,\n }: FilesUploadData): Promise => {\n let savedFiles: Array = []\n const promiseFiles: Promise[] = []\n\n try {\n for (const { content, totalSize } of files) {\n const res = isTicket\n ? this.ticketFileUpload({\n content,\n totalSize,\n entityType,\n })\n : this.fileUpload({\n entityId,\n content,\n totalSize,\n entityType,\n })\n\n promiseFiles.push(res)\n }\n\n savedFiles = await Promise.all(promiseFiles)\n } catch (error) {\n throw new Error((error as Error).message)\n }\n\n savedFiles = savedFiles.filter((file) => Boolean(file))\n\n savedFiles = isTicket\n ? (savedFiles as TicketFileUploadDTO[]).map((file) => ({\n imageUrl: file.url,\n uploadedSize: file.uploadedSize,\n chunkNum: file.chunkNum,\n uuid: file.uuid,\n }))\n : savedFiles\n\n return savedFiles as FileUploadDTO[]\n }\n\n fileUpload = async ({ content, entityId, entityType, totalSize, requestFromPromo = false }: FileUploadData) => {\n const chunkToData = divideBase64(content)\n let response: FileUploadDTO | null = null\n\n try {\n for (const [chunkNum, data] of chunkToData.entries()) {\n response = WEB_LINK_REGEXP.test(data)\n ? {\n imageUrl: data,\n uuid: '',\n chunkNum: 0,\n uploadedSize: 0,\n }\n : await api.requests.fileUpload(\n {\n chunk: data,\n totalSize,\n entityId,\n chunkNum,\n entityType,\n /* @ts-expect-error: ложная ошибка */\n uuid: response?.uuid,\n },\n requestFromPromo,\n )\n }\n\n return response\n } catch (error) {\n throw new Error((error as Error).message)\n }\n }\n\n ticketFileUpload = async ({ content, entityType, totalSize }: FileUploadData) => {\n const chunkToData = divideBase64(content)\n let response: TicketFileUploadDTO | null = null\n\n try {\n for (const [chunkNum, data] of chunkToData.entries()) {\n response = await ticketApi.ticketFileUpload({\n chunk: data,\n totalSize,\n chunkNum,\n entityType,\n uuid: response?.uuid,\n })\n }\n\n return response\n } catch (error) {\n throw new Error((error as Error).message)\n }\n }\n}\n\nexport const fileService = new FileService()\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { ResponseListData } from 'shared/types/types'\n\nimport {\n ActivateELockRequest,\n ELockConnectInfoDTO,\n ELockInfoRequest,\n SetELockReasonRequest,\n UpdateELockRequest,\n} from './types'\n\nconst discoveryService = new HttpService(appConfig.DISCOVERY_URL)\n\nexport const eLockApi = {\n activateELock: async ({ eLockName, orderId, photos }: ActivateELockRequest): Promise => {\n return await discoveryService.post('/api/v2/pickpoint-order/elock/activate', {\n body: {\n pickpoint_order_id: orderId,\n elock_name: eLockName,\n photos,\n },\n })\n },\n\n /** @see https://youtrack.wildberries.ru/articles/ED-A-133 (описание запроса)*/\n getELockConnectInfo: async ({\n orderId,\n employeeId,\n lockName,\n lockNoSet,\n ttl = 6,\n tokenType = 1,\n }: ELockInfoRequest): Promise => {\n const result = await discoveryService.post | undefined>(\n '/api/v4/pickpoint-order/elock/get-token',\n {\n body: {\n pickpoint_id: orderId,\n employee_id: employeeId,\n lock_name: lockName,\n token_type: tokenType,\n lock_no_set: lockNoSet,\n ttl,\n },\n },\n )\n\n return result?.data ? convertKeysToCamelCase(result.data) : undefined\n },\n\n setELockReason: async (data: SetELockReasonRequest): Promise => {\n const res = await discoveryService.post>('/api/v2/pickpoint-order/elock/set-reason', {\n body: {\n pickpoint_order_id: data.orderId,\n reason: data.reason,\n description: data.description,\n photos: data.photos,\n },\n })\n\n return res?.data\n },\n\n updateELock: async (data: Partial): Promise => {\n const updatedFields = Object.entries(data)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key]) => key)\n\n /* Если указано имя замка, то обновляем фото замка (контроллер и тд), иначе обновляем форму причины активации без замка */\n const reasonForm = data.eLockName\n ? undefined\n : {\n reason: data.reason,\n description: data.description,\n update_fields: updatedFields,\n }\n\n const res = await discoveryService.post>('/api/v2/pickpoint-order/elock/update', {\n body: {\n pickpoint_order_id: data.orderId,\n elock_name: data.eLockName,\n photos: data.photos,\n ...reasonForm,\n },\n })\n\n return res?.data\n },\n}\n","import { Alert as AlertAntd, AlertProps as AlertAntdProps } from 'antd'\n\ninterface AlertProps extends AlertAntdProps {}\n\nexport const Alert = ({ ...props }: AlertProps) => {\n return \n}\n","import { Button as ButtonAntd } from 'antd'\nimport { ButtonProps as ButtonAntdProps } from 'antd/es/button/button'\n\nimport { colors } from 'shared/constants/values'\n\ninterface ButtonProps extends ButtonAntdProps {\n newType?: 'warning'\n}\n\nexport const Button = ({ children, type = 'primary', newType, style, disabled = false, ...props }: ButtonProps) => {\n const buttonColor = {\n ['warning']: colors.orange,\n }\n\n return (\n \n {children}\n \n )\n}\n","import { Checkbox as CheckboxAntd, CheckboxProps as CheckboxPropsAntd } from 'antd'\ninterface CheckboxProps extends CheckboxPropsAntd {}\n\nexport const Checkbox = ({ children, ...props }: CheckboxProps) => {\n return {children}\n}\n","import { Col as ColAntd, ColProps as ColPropsAntd } from 'antd'\nimport { ReactNode } from 'react'\n\ninterface ColProps extends ColPropsAntd {\n children: ReactNode\n}\n\nexport const Col = ({ children, ...props }: ColProps) => {\n return {children}\n}\n","import { Collapse as CollapseAntd, CollapseProps as CollapsePropsAntd } from 'antd'\n\ninterface CollapseProps extends CollapsePropsAntd {}\n\nexport const Collapse = ({ size = 'small', ...props }: CollapseProps) => {\n return \n}\n","import { Divider as DividerAntd, DividerProps as DividerPropsAntd } from 'antd'\n\ninterface DividerProps extends DividerPropsAntd {}\n\nexport const Divider = ({ ...props }: DividerProps) => {\n return \n}\n","import { Drawer as DrawerAntd, DrawerProps as DrawerPropsAntd } from 'antd'\n\ninterface DrawerProps extends DrawerPropsAntd {}\n\nexport const Drawer = ({ children, ...props }: DrawerProps) => {\n return {children}\n}\n","import { Dropdown as DropdownAntd, DropdownProps as DropdownPropsAntd } from 'antd'\n\ninterface DropdownProps extends DropdownPropsAntd {}\n\nexport const Dropdown = ({ children, ...props }: DropdownProps) => {\n return {children}\n}\n","import { Flex as FlexAntd, FlexProps as FlexPropsAntd } from 'antd'\nimport { ReactNode } from 'react'\n\ninterface FlexProps extends FlexPropsAntd {\n children: ReactNode\n}\n\nexport const Flex = ({ children, ...props }: FlexProps) => {\n return {children}\n}\n","import { Form as FormAntd } from 'antd'\nimport { FormProps as FormAntdProps } from 'antd/es/form/Form'\nimport { ReactNode } from 'react'\n\ninterface FormProps extends FormAntdProps {\n children: ReactNode\n}\n\nexport const Form = ({ children, layout = 'vertical', ...props }: FormProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Form as FormAntd } from 'antd'\nimport { FormItemProps as FormItemAntdProps } from 'antd/es/form/FormItem'\n\ninterface FormItemProps extends FormItemAntdProps {}\n\nexport const FormItem = ({ children, ...props }: FormItemProps) => {\n return {children}\n}\n","import { Image as ImageAntd } from 'antd'\nimport { ImageProps as ImageAntdProps } from 'antd'\n\ninterface ImageProps extends ImageAntdProps {}\n\nexport const Image = ({ ...props }: ImageProps) => {\n return \n}\n","import { Input as InputAntd, InputProps as InputPropsAntd } from 'antd'\n\ninterface InputProps extends InputPropsAntd {}\n\nexport const Input = ({ ...props }: InputProps) => {\n return \n}\n","import { Input as InputAntd } from 'antd'\nimport { OTPProps } from 'antd/es/input/OTP'\n\ninterface InputOTPProps extends OTPProps {}\n\nexport const InputOTP = ({ ...props }: InputOTPProps) => {\n return \n}\n","import { Input as InputAntd } from 'antd'\nimport { SearchProps as SearchPropsAntd } from 'antd/es/input/Search'\n\ninterface SearchProps extends SearchPropsAntd {}\n\nexport const Search = ({ ...props }: SearchProps) => {\n return \n}\n","import { Input as InputAntd } from 'antd'\nimport { TextAreaProps as TextAreaPropsAntd } from 'antd/es/input/TextArea'\n\ninterface TextAreaProps extends TextAreaPropsAntd {\n className?: string\n}\n\nexport const TextArea = ({ className, ...props }: TextAreaProps) => {\n return \n}\n","import { Layout } from 'antd'\nimport { BasicProps } from 'antd/es/layout/layout'\nimport { ReactNode } from 'react'\n\nimport s from './Header.module.scss'\n\ninterface HeaderProps extends BasicProps {\n children: ReactNode\n}\n\nexport const Header = ({ children, ...props }: HeaderProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Menu as MenuAntd } from 'antd'\nimport { MenuProps as MenuPropsAntd } from 'antd'\n\nimport s from './Menu.module.scss'\ninterface MenuProps extends MenuPropsAntd {}\n\nexport const Menu = ({ ...props }: MenuProps) => {\n return \n}\n","import { Modal as ModalAntd } from 'antd'\nimport { ModalProps as ModalPropsAntd } from 'antd'\n\ninterface ModalProps extends ModalPropsAntd {}\n\nexport const Modal = ({ centered = true, ...props }: ModalProps) => {\n return \n}\n","import { Pagination as PaginationAntd, PaginationProps as PaginationPropsAntd } from 'antd'\n\nimport './Pagination.scss'\n\ninterface PaginationProps extends PaginationPropsAntd {}\n\nexport const Pagination = (props: PaginationProps) => {\n return \n}\n","import { Popover as PopoverAntd, PopoverProps as PopoverPropsAntd } from 'antd'\n\ninterface PopoverProps extends PopoverPropsAntd {}\n\nexport const Popover = (props: PopoverProps) => {\n return \n}\n","import { Rate as RateAntd, RateProps as RatePropsAntd } from 'antd'\n\ninterface RateProps extends RatePropsAntd {}\n\nexport const Rate = ({ ...props }: RateProps) => {\n return \n}\n","import { Select as SelectAntd, SelectProps as SelectPropsAntd } from 'antd'\n\ninterface SelectProps extends SelectPropsAntd {}\n\nexport const Select = ({ optionFilterProp = 'label', ...props }: SelectProps) => {\n return \n}\n","import { Skeleton as SkeletonAntd, SkeletonProps as SkeletonPropsAntd } from 'antd'\nimport { ReactNode } from 'react'\n\ninterface SkeletonProps extends SkeletonPropsAntd {\n children?: ReactNode\n active?: boolean\n}\n\nexport const Skeleton = ({ children, active = true, ...props }: SkeletonProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Space as SpaceAntd, SpaceProps as SpacePropsAntd } from 'antd'\n\ninterface SpaceProps extends SpacePropsAntd {}\n\nexport const Space = ({ children, ...props }: SpaceProps) => {\n return {children}\n}\n","import { Steps as StepsAntd, StepsProps as StepsPropsAntd } from 'antd'\n\ninterface StepsProps extends StepsPropsAntd {}\n\nexport const Steps = ({ ...props }: StepsProps) => {\n return \n}\n","import { Typography } from 'antd'\nimport { LinkProps as LinkAntdProps } from 'antd/es/typography/Link'\nimport { ReactNode } from 'react'\n\nimport s from '../Text.module.scss'\n\nconst { Link: LinkAntd } = Typography\n\ninterface LinkProps extends LinkAntdProps {\n children: ReactNode\n}\n\nexport const Link = ({ children, ...props }: LinkProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Typography } from 'antd'\nimport { ParagraphProps as ParagraphAntdProps } from 'antd/es/typography/Paragraph'\nimport { ReactNode } from 'react'\n\nimport s from '../Text.module.scss'\n\nconst { Paragraph: ParagraphAntd } = Typography\n\ninterface ParagraphProps extends ParagraphAntdProps {\n children: ReactNode\n}\n\nexport const Paragraph = ({ children, ...props }: ParagraphProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Typography } from 'antd'\nimport { TextProps as TextAntdProps } from 'antd/es/typography/Text'\nimport { ReactNode } from 'react'\n\nimport s from '../Text.module.scss'\n\nconst { Text: TextAntd } = Typography\n\ninterface TextProps extends TextAntdProps {\n children: ReactNode\n fontSize?: string\n color?: string\n}\n\nexport const Text = ({ children, className, ...props }: TextProps) => {\n return (\n \n {children}\n \n )\n}\n","import { Typography } from 'antd'\nimport { TitleProps as TitleAntdProps } from 'antd/es/typography/Title'\nimport classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport s from '../Text.module.scss'\n\nconst { Title: TitleAntd } = Typography\n\ninterface TitleProps extends TitleAntdProps {\n children: ReactNode\n}\n\nexport const Title = ({ children, level = 1, ...props }: TitleProps) => {\n const classes = classNames(s.title, {\n [s.titleLevel1]: level === 1,\n [s.titleLevel2]: level === 2,\n [s.titleLevel3]: level === 3,\n [s.titleLevel4]: level === 4,\n [s.titleLevel5]: level === 5,\n })\n\n return (\n \n {children}\n \n )\n}\n","import { TimePicker, TimeRangePickerProps as TimePickerPropsAntd } from 'antd'\n\ninterface RangeTimePickerProps extends TimePickerPropsAntd {}\n\nconst { RangePicker: TimeRangePickerAntd } = TimePicker\n\nexport const TimeRangePicker = ({ ...props }: RangeTimePickerProps) => {\n return \n}\n","import { Tooltip as TooltipAntd, TooltipProps } from 'antd'\n\nexport const Tooltip = ({ children, ...props }: TooltipProps) => {\n return {children}\n}\n","import { Flex, Text } from 'components/uiKit'\nimport { colors } from 'shared/constants/values'\n\nimport s from './Status.module.scss'\n\nexport const enum StatusUIType {\n green = 'green',\n orange = 'orange',\n red = 'red',\n corp = 'corp',\n gray = 'gray',\n}\n\nconst getColorFromType = {\n [StatusUIType.green]: colors.green,\n [StatusUIType.orange]: colors.orange,\n [StatusUIType.red]: colors.red,\n [StatusUIType.corp]: colors.corpMain,\n [StatusUIType.gray]: colors.secondary,\n}\n\ntype StatusProps = {\n title: string\n type: StatusUIType\n smallSize?: boolean\n}\n\nexport const Status = ({ title, type, smallSize }: StatusProps) => {\n return (\n \n {title}\n \n )\n}\n","export interface PickPointVideoItemType {\n url: string\n name: string\n format?: string\n}\n\nexport type PickPointFileItemType = {\n url: string\n type: PickPointFileType\n isPublic: boolean\n size: number\n}\n\nexport enum PickPointFileType {\n /** Фасад здания днем */\n generalPhoto = 'generalPhoto',\n /** Фасад здания ночью */\n nightlyGeneralPhoto = 'nightlyGeneralPhoto',\n /** Кронштейн */\n bracketPhoto = 'bracketPhoto',\n /** Входная группа */\n fittingRoomsPhoto = 'fittingRoomsPhoto',\n /** Помещение внутри */\n clientAreaPhoto = 'clientAreaPhoto',\n /** Фото складской зоны */\n warehouseAreaPhoto = 'warehouseAreaPhoto',\n /** Фото видеонаблюдения */\n surveillancePhoto = 'surveillancePhoto',\n\n /** Видеопрогулка */\n video = 'video',\n\n /** Документ аренды */\n leaseDocument = 'leaseDocument',\n /** Документ БТИ */\n btiDocument = 'btiDocument',\n\n /** Документ аренды используемый при редактировании площади ПВЗ */\n leaseDocumentEditArea = 'leaseDocumentEditArea',\n /** Документ БТИ используемый при редактировании площади ПВЗ */\n btiDocumentEditArea = 'btiDocumentEditArea',\n}\n\nexport type WeekDays = {\n label: string\n value: string\n isDayOff: boolean\n}\n\nexport type WorkTime = {\n open: string\n close: string\n}\n\ntype TimetableDay = WorkTime & { is_day_off: boolean }\nexport type TimetableDays = { [key: string]: TimetableDay }\n\nexport interface Timetable {\n daily: WorkTime\n sat: WorkTime\n sun: WorkTime\n week: {\n days: TimetableDays\n }\n}\n\nexport enum PickPointType {\n none = 'TYPE_POINT_NONE',\n /** партнёрский ПВЗ брендированный (стандартный тариф) */\n partner = 'TYPE_POINT_8',\n /** народный ПВЗ (упрощенный тариф) */\n folk = 'TYPE_POINT_28',\n}\n","export interface FileUploadDTO {\n uploadedSize: number\n uuid: string\n chunkNum: number\n imageUrl: string\n error?: string\n}\n\nexport type SectionsResponseType = {\n sections: {\n data: string\n id?: number\n }[]\n}\n\nexport enum Country {\n RU = 'RU',\n AM = 'AM',\n KZ = 'KZ',\n BY = 'BY',\n UZ = 'UZ',\n KG = 'KG',\n GE = 'GE',\n TJ = 'TJ',\n TM = 'TM',\n}\n\nexport const CurrencyFromCountry: Record = {\n [Country.RU]: '₽',\n [Country.AM]: '֏',\n [Country.KZ]: '₸',\n [Country.BY]: 'Br',\n [Country.KG]: 'с',\n [Country.UZ]: 'Soʻm',\n [Country.GE]: '₾',\n [Country.TJ]: 'SM',\n [Country.TM]: 'TMT',\n}\n\nexport const enum SupportedLanguages {\n RU = 'ru',\n GE = 'ka',\n}\n\nexport type BaseOption = {\n value: TValue\n label: string\n}\n\n/** Роли пользователей в системе. */\nexport enum USER_PERMISSION {\n /** Отсутствие роли, нет доступов. */\n PERM_NONE = 'PERM_NONE',\n /** Сотрудник партнерского ПВЗ */\n PERM_EMPLOYEE = 'PERM_EMPLOYEE',\n /** Собственник партнерского ПВЗ. */\n PERM_OWNER = 'PERM_OWNER',\n /** Сотрудник фирменного ПВЗ. */\n PERM_FIRM_EMPLOYEE = 'PERM_FIRM_EMPLOYEE',\n /** Собственник фирменного ПВЗ. */\n PERM_FIRM_OWNER = 'PERM_FIRM_OWNER',\n /** Роль аудитора, который проводит инвентаризацию для закрытых пвз */\n PERM_AUDITOR = 'PERM_AUDITOR',\n}\n\nexport type ResponseListData = {\n data: T\n total?: number\n}\n\nexport type PaginationType = {\n page: number\n pageSize: number\n}\n\nexport const enum hostName {\n RU = 'pvz-promo.wb.ru',\n GE = 'pvz-promo.wildberries.ge',\n}\n","import { PickPointType, WeekDays } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { BaseOption, Country, ResponseListData } from 'shared/types/types'\n\nimport { OrderELockInfoDTO } from '../ELockModule/types'\n\nexport type Coordinate = {\n latitude: string\n longitude: string\n}\n\nexport interface VideoFile {\n url: string\n name: string\n size: number\n binary?: ArrayBuffer\n}\n\nexport type CreateOrderRequest = {\n phone: number\n cityId: number\n cityName: string\n area: number\n warehouseArea: number\n description: string\n courierWay: string\n dressingRoomsCount: number\n house: string\n street: string\n timetable: string\n latitude: string\n longitude: string\n region: string\n district: string\n actualUrls: string\n country: Country\n locations: PickPointLocation[]\n accessType: CouriersAccess\n cellingHeight: number\n pickPointType: PickPointType\n /** признак переезда */\n exPickPointId?: number\n subsidyHexType?: SubsidyHexType\n}\n\nexport type UpdateOrderRequest = {\n id: number\n actualUrls?: string\n description?: string\n courierWay?: string\n house?: string\n street?: string\n longitude?: string\n latitude?: string\n timetable?: string\n area?: string\n warehouseArea?: string\n dressingRoomsCount?: string\n cellingHeight?: string\n comment?: string\n pickPointType?: PickPointType\n signboardSize?: SignboardSize\n signboardFormat?: SignboardFormat\n subsidyHexType?: SubsidyHexType\n couriersAccess?: CouriersAccess\n glnPvz?: string\n molName?: string\n ownerGln?: string\n}\n\nexport enum OrderStatus {\n /** черновик */\n draft = 'ORDER_DRAFT', // 0\n /** новые заявки */\n created = 'ORDER_CREATED', // 1\n /** одобренные заявки */\n accepted = 'ORDER_ACCEPTED', // 2\n /** отмененные заявки */\n canceled = 'ORDER_CANCELED', // 3\n /** Заявка отправлена на доработку из статуса ORDER_PICKPOINT_READY_ACTIVATE (8) */\n remarkFromActivate = 'ORDER_REMARK', // 4\n /** отозванные заявки? */\n declined = 'ORDER_DECLINED', // 5\n /** пвз создан */\n pickPointCreated = 'ORDER_PICKPOINT_CREATED', // 6\n /** Собственник, отправил запрос на активацию. Активация происходит через админку. */\n readyActivate = 'ORDER_PICKPOINT_READY_ACTIVATE', // 8\n /** Заявка на доработке */\n remarkFromCreated = 'ORDER_REMARK_FROM_CREATED', // 9\n /** Заявка удалена */\n deleted = 'ORDER_DELETED', // 9\n /** Ожидает оплату взноса по QR */\n waitingPayment = 'ORDER_WAITING_QR_CODE_PAYMENT', // 11\n /** Взнос по QR не оплачен */\n notPaid = 'ORDER_NOT_PAID_BY_QR_CODE', // 12\n //** Ожидает доработку платежной информации */\n remarkFromPayment = 'ORDER_REMARK_FROM_PAYMENT', // 13\n}\n\nexport interface OrderCommentDTO {\n comment: string\n dt: string\n sendBy: string\n}\n\nexport enum PickPointLocation {\n none = 'PICKPOINT_LOCATION_NONE',\n firstLine = 'PICKPOINT_LOCATION_FIRST_LINE',\n inTheYards = 'PICKPOINT_LOCATION_IN_THE_YARDS',\n plinth = 'PICKPOINT_LOCATION_PLINTH',\n shoppingMall = 'PICKPOINT_LOCATION_SHOPPING_MALL',\n secondFloor = 'PICKPOINT_LOCATION_2ND_FLOOR',\n firstFloor = 'PICKPOINT_LOCATION_1ND_FLOOR',\n cellar = 'PICKPOINT_LOCATION_CELLAR',\n}\n\nexport const enum CouriersAccess {\n none = 'ACCESS_TYPE_NONE',\n night = 'ACCESS_TYPE_NIGHT_ONLY_ACCESS',\n fulltime = 'ACCESS_TYPE_ROUND_THE_CLOCK_ACCESS',\n openingHours = 'ACCESS_TYPE_ONLY_ACCORDING_THE_OPENING_HOURS',\n}\n\nexport type OrderDTO = {\n cityId: number\n cityName: string\n country: Country\n description: string\n courierWay: string\n house: string\n id: number\n latitude: string\n longitude: string\n status: OrderStatus\n street: string\n timetable: string\n created: string\n updated: string\n deleted?: string\n area: number\n stockArea: number\n cellingHeight: number\n actualUrls: string\n comments: OrderCommentDTO[]\n hasDressRoom: boolean\n dressingRoomsCount: number\n district: string\n region: string\n isBranded: boolean\n locations: PickPointLocation[]\n accessType: CouriersAccess\n tariffDescription?: string\n /** Дата создания заявки. */\n outOfDraftDate?: string | null\n /** признак фирменного ПВЗ */\n wbCompany: boolean\n /** признак переезда */\n exPickpointId: number\n typePoint: PickPointType\n signboardSize: SignboardSize\n signboardFormat: SignboardFormat\n confirmedToOpen: ConfirmedToOpen\n elockInfo: OrderELockInfoDTO | null\n subsidyHexType: SubsidyHexType\n /* 3 поля для Беларуси */\n ownerGln: string\n pickpointGln: string\n molName: string\n /** Внешний ID ПВЗ который будет создан при активации заявки. */\n pickpointId?: number\n}\n\nexport interface GetTariffsRequest {\n lat: number\n lon: number\n area: number\n typePoint: PickPointType\n}\n\nexport type GetTariffDTO = {\n tariff: number\n tariffDescription: string\n typePoint: PickPointType\n reward: number\n profit: number\n}\n\nexport type PublishOrderDTO = ResponseListData & {\n status: OrderStatus\n}\n\nexport type AddOrderPaymentDTO = ResponseListData<{\n sumRub: string\n currency: Country\n}> & {\n paymentUrl: string\n}\n\nexport type AddOrderPayment = ResponseListData<{\n sum: string\n country: Country\n}> & {\n paymentUrl: string\n}\n\nexport enum OrderPaymentStatus {\n none = 'CHECK_STATUS_NONE',\n /** Оплата не прошла. Ошибка */\n error = 'CHECK_STATUS_ERROR',\n /** Оплата успешно проведена */\n paid = 'CHECK_STATUS_PAID',\n /** Транзакция находится в обработке. Необходимо перезапросить информацию повторно */\n //pending = 'CHECK_STATUS_PENDING',\n /** Косячное название на беке. Транзакция находится в обработке. Необходимо перезапросить информацию повторно */\n pending = 'PickpointOrderCheckStatusNotPaid',\n}\n\nexport type OrderInitialStateType = {\n description: string\n courierWay: string\n lat: string\n lng: string\n area: string | null\n timetableStart: string\n timetableEnd: string\n timetableGeneral: string\n weekDays: WeekDays[]\n warehouseArea: string | null\n dressingRoomsCount: string | null\n cellingHeight: string | null\n videos: string[]\n documents: string[]\n photos: {\n url: string\n isPublic: boolean\n }[]\n comment: string\n typePointItem: PickPointType | null\n subsidyTypeItem: BaseOption | null\n couriersAccess: CouriersAccess\n}\n\nexport type OrderMessageDTO = {\n createdAt: string\n fileUrl: string[]\n id: number\n message: string\n pickpointOrderId: number\n sentBy: number\n}\n\ntype CCTVBaseInfo = {\n url: string\n login: string\n password: string\n description: string\n}\n\nexport type AddCCTVInfoRequest = CCTVBaseInfo & {\n orderId: number\n}\n\nexport type ValidateCCTVInfoRequest = CCTVBaseInfo & {\n token: string | null\n vendor: number\n externalPickPointId: number\n}\n\nexport type Cameras = {\n idCamera: string\n name: string\n limitDays: number\n status: number\n archAvailability: boolean\n}\n\nexport type ValidateCCTVInfoDTO = {\n externalPickpointId: number\n isValidated: true\n cameraCheck: true\n statusCheck: true\n archiveCheck: true\n cameras: Cameras[]\n}\n\nexport type CCTVInfoDTO = {\n id: number\n url: string\n login: string\n password: string\n description: string\n created: string\n updated: string\n pickpointId: number\n pickpointOrderId: number\n status: AuthorizationState\n}\n\nexport type VendorList = {\n id: number\n name: string\n hasToken: boolean\n}\n\nexport type CameraVendorListDTO = {\n vendor_list: VendorList[]\n}\n\nexport enum AuthorizationState {\n loading,\n success,\n failed,\n}\n\nexport enum SignboardSize {\n none = 'SIGNBOARD_SIZE_NONE',\n mini = 'SIGNBOARD_SIZE_MINI',\n small = 'SIGNBOARD_SIZE_SMALL', //300\n middle = 'SIGNBOARD_SIZE_MIDDLE', //400\n big = 'SIGNBOARD_SIZE_BIG', //500\n}\n\nexport enum SignboardFormat {\n none = 'SIGNBOARD_FORMAT_NONE',\n old = 'SIGNBOARD_FORMAT_OLD',\n new = 'SIGNBOARD_FORMAT_NEW',\n}\n\nexport enum ConfirmedToOpen {\n none = 'none',\n true = 'true',\n false = 'false',\n}\n\nexport type CheckOrderAddressRequest = {\n cityId: string\n cityName: string\n region: string\n country: Country\n house: string\n street: string\n coordinates: {\n latitude: number\n longitude: number\n }\n}\n\nexport enum FurnitureOrderType {\n none = 'FURNITURE_ORDER_SCHEME_UNKNOWN',\n auto = 'FURNITURE_ORDER_SCHEME_AUTO',\n self = 'FURNITURE_ORDER_SCHEME_SELF',\n}\n\nexport enum SubsidyHexType {\n none = 'SUBSIDY_HEX_TYPE_NONE',\n single = 'SUBSIDY_HEX_TYPE_SINGLE',\n guaranteedIncome = 'SUBSIDY_HEX_TYPE_GUARANTEED_INCOME',\n singleAfterActivation = 'SUBSIDY_HEX_TYPE_SINGLE_AFTER_ACTIVATION',\n}\n\nexport type SubsidyTypeDTO = {\n subsidy_info: SubsidyInfo[]\n}\n\nexport type SubsidyInfo = {\n subsidy: number\n subsidyType: SubsidyHexType\n}\n\nexport type GetPaymentDeadlineDTO = {\n time_remaining: {\n seconds: number\n }\n}\n\nexport type PwaEventType = { prompt: () => Promise }\n\nexport type OrderReadyActivateRequest = {\n orderId: number\n ownerGln?: string\n glnPvz?: string\n molName?: string\n}\n","import { StatusUIType } from 'sections/LKSection/shared/components/Status/Status'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { ElockReason } from '../ELockModule/types'\nimport { CouriersAccess, OrderStatus, PickPointLocation } from './types'\n\nexport const enum OrderKeys {\n shared = 'shared',\n\n orderModule = 'orderModule',\n orderPage = 'orderModule.orderPage',\n createOrderPage = 'orderModule.createOrderPage',\n requirementsStep = 'orderModule.createOrderPage.requirementsStep',\n locationStep = 'orderModule.createOrderPage.locationStep',\n workConditionsStep = 'orderModule.createOrderPage.workConditionsStep',\n filesStep = 'orderModule.createOrderPage.filesStep',\n activateOrderPage = 'orderModule.activateOrderPage',\n orderItemPage = 'orderModule.orderItemPage',\n\n eLockModule = 'eLockModule',\n}\n\nexport const entranceItems = [PickPointLocation.firstLine, PickPointLocation.inTheYards]\n\nexport const pickPointLocationLabels = {\n [PickPointLocation.none]: '',\n [PickPointLocation.firstLine]: 'Первая линия',\n [PickPointLocation.inTheYards]: 'Во дворах',\n [PickPointLocation.plinth]: 'Цоколь',\n [PickPointLocation.shoppingMall]: 'Торговый Центр',\n [PickPointLocation.secondFloor]: '2 этаж',\n [PickPointLocation.firstFloor]: '1 этаж',\n [PickPointLocation.cellar]: 'Подвал',\n}\n\nexport const floorItems = [PickPointLocation.firstFloor, PickPointLocation.plinth]\nexport const couriersAccessItems = [CouriersAccess.fulltime, CouriersAccess.openingHours, CouriersAccess.night]\n\nexport const orderStatusTranslator: Record = {\n [OrderStatus.draft]: { title: 'Черновик', type: StatusUIType.gray },\n [OrderStatus.created]: { title: 'Отправлена', type: StatusUIType.gray },\n [OrderStatus.accepted]: { title: 'Одобрена', type: StatusUIType.corp },\n [OrderStatus.pickPointCreated]: { title: 'ПВЗ активирован', type: StatusUIType.green },\n [OrderStatus.canceled]: { title: 'Отменена', type: StatusUIType.red },\n [OrderStatus.remarkFromActivate]: { title: 'На доработке', type: StatusUIType.red },\n [OrderStatus.remarkFromCreated]: { title: 'На доработке', type: StatusUIType.red },\n [OrderStatus.readyActivate]: { title: 'Отправлена на активацию', type: StatusUIType.corp },\n [OrderStatus.declined]: { title: 'Отклонена', type: StatusUIType.red },\n [OrderStatus.waitingPayment]: { title: 'Ожидает оплаты', type: StatusUIType.orange },\n [OrderStatus.notPaid]: { title: 'Отклонена', type: StatusUIType.red },\n [OrderStatus.remarkFromPayment]: { title: 'Есть замечания', type: StatusUIType.red },\n [OrderStatus.deleted]: { title: 'Удалена', type: StatusUIType.red },\n}\n\nexport const pickPointTypeOptions: Array & { className: string }> = [\n { label: 'Упрощенный', value: PickPointType.folk, className: 'folkType' },\n { label: 'Стандартный', value: PickPointType.partner, className: 'partnerType' },\n]\n\nexport const pointTypeLabels = {\n [PickPointType.folk]: 'Упрощенный',\n [PickPointType.partner]: 'Стандартный',\n [PickPointType.none]: 'Нет',\n}\n\nexport const timetableGeneralOptions = [\n { value: '09:00-21:00', label: '09:00-21:00' },\n { value: '10:00-22:00', label: '10:00-22:00' },\n]\n\nexport const eLockReasonOptions = [\n { value: ElockReason.glassDoor, label: 'Неподходящая дверь' },\n { value: ElockReason.northernRegion, label: 'Низкие температуры' },\n { value: ElockReason.other, label: 'Другая причина' },\n]\n\nexport const regionsWithReferralCode = [\n 'Москва',\n 'Санкт-Петербург',\n 'Московская область',\n 'Калининградская область',\n 'Ленинградская область',\n]\n\nexport const subsidySumKey = {\n [Country.RU]: 'SUBSIDY_SINGLE_SUM_RU',\n [Country.GE]: 'SUBSIDY_SINGLE_SUM_GE',\n [Country.AM]: '',\n [Country.KZ]: '',\n [Country.UZ]: '',\n [Country.BY]: '',\n [Country.KG]: '',\n [Country.TJ]: '',\n [Country.TM]: '',\n}\n\nexport const countriesWithSubsidy = [Country.RU, Country.GE]\n","import { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport { ConvertedFile } from './fileUpload'\n\ntype SeparatedFiles = {\n newFiles: ConvertedFile[]\n oldFiles: ConvertedFile[]\n}\n\nexport const getSeparatedFiles = (files: ConvertedFile[]): SeparatedFiles => {\n const newFiles: ConvertedFile[] = []\n const oldFiles: ConvertedFile[] = []\n\n for (const photo of files) {\n if (WEB_LINK_REGEXP.test(photo.content)) {\n oldFiles.push(photo)\n } else {\n newFiles.push(photo)\n }\n }\n\n return { newFiles, oldFiles }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeAutoObservable, observable } from 'mobx'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { eLockApi } from 'sections/LKSection/modules/ELockModule/api'\nimport {\n ElockInfoStatus,\n ELockPhoto,\n ElockReason,\n OrderELockInfoDTO,\n} from 'sections/LKSection/modules/ELockModule/types'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { getSeparatedFiles } from 'utils/helpers/files/getSeparatedFiles'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nconst getKey = (key: string) => `${OrderKeys.eLockModule}.api.${key}`\n\nexport class ElockReasonModel {\n @observable eLockReasonValue: ElockReason | null = null\n @observable description = ''\n @observable activateWithoutELockPhotos: ConvertedFile[] = []\n @observable status: ElockInfoStatus = ElockInfoStatus.none\n\n constructor() {\n makeAutoObservable(this)\n }\n\n initialize = (value: OrderELockInfoDTO) => {\n if (value.reason !== ElockReason.none) {\n this.setELockReasonValue(value.reason)\n }\n this.setDescription(value.description)\n this.setActivateWithoutELockPhotos(\n value.photos\n .filter((photo) => photo.type === ELockPhoto.reason)\n .map((photo) => ({ content: photo.url, fileSize: 0, format: '', name: '' })),\n )\n this.setStatus(value.status)\n }\n\n @action\n setELockReasonValue = (value: ElockReason | null) => {\n this.eLockReasonValue = value\n }\n\n @action\n setDescription = (value: string) => {\n this.description = value\n }\n\n @action\n setActivateWithoutELockPhotos = (value: ConvertedFile[]) => {\n this.activateWithoutELockPhotos = value\n }\n\n @action\n setStatus = (value: ElockInfoStatus) => {\n this.status = value\n }\n\n reset = () => {\n this.setELockReasonValue(null)\n this.setDescription('')\n this.setActivateWithoutELockPhotos([])\n }\n\n async setELockReason(orderId: number) {\n const photos = await this.filesUpload(this.activateWithoutELockPhotos, orderId)\n\n if (photos) {\n try {\n await eLockApi.setELockReason({\n orderId,\n reason: this.eLockReasonValue ?? ElockReason.other,\n description: this.description,\n photos,\n })\n\n notification.success({ message: i18next.t(getSharedKey('api.createOrderSuccess')) })\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.createOrderError')),\n description: (error as Error).message,\n })\n }\n }\n }\n\n async updateELockReason(orderId: number) {\n const photos = await this.filesUpload(this.activateWithoutELockPhotos, orderId)\n\n if (photos) {\n try {\n await eLockApi.updateELock({\n orderId,\n photos,\n description: this.description,\n reason: this.eLockReasonValue ?? ElockReason.other,\n })\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('updateELockReasonError')),\n description: (error as Error).message,\n })\n }\n }\n }\n\n async filesUpload(photos: ConvertedFile[], orderId: number) {\n const { newFiles: newPhotos, oldFiles: oldPhotos } = getSeparatedFiles(photos)\n\n try {\n const uploadedPhotos = await fileService.filesUpload({\n entityId: orderId,\n entityType: FileEntityType.pickPointOrder,\n files: newPhotos.map((photo) => ({ content: photo.content, totalSize: photo.fileSize })),\n })\n\n if (uploadedPhotos.length < newPhotos.length) {\n notification.error({\n message: i18next.t(getSharedKey('api.filesUploadError')),\n })\n\n return false\n }\n\n return [\n ...uploadedPhotos.map((photo) => ({ url: photo.imageUrl, type: ELockPhoto.reason })),\n ...oldPhotos.map((photo) => ({ url: photo.content, type: ELockPhoto.reason })),\n ]\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.photosUploadError')),\n description: (error as Error).message,\n })\n\n return false\n }\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { makeAutoObservable } from 'mobx'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\nimport { CHECK_NETWORK_URL } from 'shared/constants/values'\n\nimport { OrderKeys } from '../../OrderModule/data'\nimport { eLockApi } from '../api'\nimport { ELockFileItem } from '../types'\nimport { ELockUiStore } from './ELockUiStore'\n\nconst getKey = (key: string) => `${OrderKeys.eLockModule}.api.${key}`\n\nexport class ELockApiStore {\n constructor(protected readonly uiStore: ELockUiStore) {\n makeAutoObservable(this)\n }\n\n async getELockConnectInfo() {\n try {\n if (this.uiStore.orderId) {\n const result = await eLockApi.getELockConnectInfo({\n orderId: this.uiStore.orderId,\n employeeId: this.uiStore.userId,\n lockName: this.uiStore.eLockName,\n lockNoSet: !this.uiStore.isActive,\n })\n\n if (result) {\n this.uiStore.setELockConnectInfo(result)\n return result\n } else {\n notification.error({\n message: i18next.t(getKey('getELockConnectInfoEmpty')),\n })\n }\n }\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getELockConnectInfoError')),\n description: (error as Error).message,\n })\n }\n }\n\n async activateELock() {\n if (!this.uiStore.orderId) {\n return false\n }\n\n try {\n const savedPhotos = await this.filesUpload(this.uiStore.orderId, this.uiStore.photos)\n\n await eLockApi.activateELock({\n orderId: this.uiStore.orderId,\n eLockName: this.uiStore.eLockName,\n photos: savedPhotos,\n })\n\n notification.success({\n message: i18next.t(getKey('activateELockSuccess')),\n })\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('activateELockError')),\n description: (error as Error).message,\n })\n\n return false\n }\n }\n\n async updateELock() {\n if (!this.uiStore.orderId) {\n return\n }\n\n try {\n const photos = await this.filesUpload(this.uiStore.orderId, this.uiStore.photos)\n\n await eLockApi.updateELock({\n orderId: this.uiStore.orderId,\n eLockName: this.uiStore.eLockName,\n photos,\n })\n\n notification.success({\n message: i18next.t(getKey('updateELockSuccess')),\n })\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('updateELockError')),\n description: (error as Error).message,\n })\n }\n }\n\n async filesUpload(orderId: number, photos: ELockFileItem[]) {\n const newPhotos: ELockFileItem[] = []\n const oldPhotos: ELockFileItem[] = []\n\n for (const photo of photos) {\n if (WEB_LINK_REGEXP.test(photo.url)) {\n oldPhotos.push(photo)\n } else {\n newPhotos.push(photo)\n }\n }\n\n try {\n const res = await fileService.filesUpload({\n entityId: orderId,\n entityType: FileEntityType.pickPointOrder,\n files: newPhotos.map((photo) => ({ content: photo.url, totalSize: photo.size })),\n })\n\n if (res.length < newPhotos.length) {\n throw new Error(i18next.t(getKey('eLockFilesUploadError')))\n }\n\n return [\n ...res.map((photoItem, index) => ({\n size: photoItem.uploadedSize,\n url: photoItem.imageUrl,\n type: newPhotos[index].type,\n })),\n ...oldPhotos,\n ]\n } catch (error) {\n throw new Error(`${i18next.t(getSharedKey('api.photosUploadError'))}. ${(error as Error).message}`)\n }\n }\n\n async checkNetwork() {\n try {\n await fetch(CHECK_NETWORK_URL, {\n mode: 'no-cors',\n signal: AbortSignal.timeout(3000),\n })\n\n return true\n } catch (error) {\n return false\n }\n }\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\n\nimport { ELockConnectInfoDTO, ELockFileItem, ELockPhoto, OrderELockInfoDTO } from '../types'\nimport { ElockReasonModel } from './Reason/ElockReasonModel'\nimport { ELockApiStore } from './ELockApiStore'\n\nexport class ELockUiStore {\n @observable eLockName = ''\n @observable isActive = false\n @observable eLockConnectInfo: ELockConnectInfoDTO | null = null\n\n @observable eLockReason = new ElockReasonModel()\n\n @observable isOnline: boolean = true\n\n /** Фото двери изнутри (с установленным замком) */\n @observable doorFromInsidePhoto: ELockFileItem = {\n url: '',\n type: ELockPhoto.doorFromInside,\n size: 0,\n }\n /** Фото двери с торца (с установленным замком) */\n @observable doorFromTheEndPhoto: ELockFileItem = {\n url: '',\n type: ELockPhoto.doorFromTheEnd,\n size: 0,\n }\n /** Фотография контроллера с его номером */\n @observable controllerPhoto: ELockFileItem = { url: '', type: ELockPhoto.controller, size: 0 }\n\n @observable readonly apiStore = new ELockApiStore(this)\n\n constructor(readonly rootStore: IRootStore) {\n makeObservable(this)\n }\n\n get viewOrderUiStore() {\n return this.rootStore.viewOrderUiStore\n }\n\n get orderId() {\n return this.rootStore.viewOrderUiStore.selectedOrder?.id\n }\n\n get order() {\n return this.rootStore.viewOrderUiStore.selectedOrder\n }\n\n get userId() {\n return this.rootStore.appStore.user.info.user_id\n }\n\n @computed\n get photos(): ELockFileItem[] {\n return [this.doorFromInsidePhoto, this.doorFromTheEndPhoto, this.controllerPhoto]\n }\n\n @computed\n get invalidPhotos() {\n const photos = [this.doorFromInsidePhoto, this.doorFromTheEndPhoto, this.controllerPhoto]\n return photos.some((photo) => !photo.url || photo.url.length === 0)\n }\n\n initialize = (value: OrderELockInfoDTO) => {\n const photos = value.photos\n .filter((photo) => photo.type !== ELockPhoto.reason)\n .map((photo) => ({ ...photo, size: 0 }))\n\n this.setELockPhotos(photos)\n this.setELockName(value.elockName)\n this.setIsActive(value.enabled)\n\n this.eLockReason.initialize(value)\n }\n\n @action\n setELockName = (value: string) => {\n this.eLockName = value\n }\n\n @action\n setIsActive = (value: boolean) => {\n this.isActive = value\n }\n\n @action\n setPhotoData = (key: ELockPhoto) =>\n action((item: Omit) => {\n if (key !== ELockPhoto.reason) {\n this[key].url = item.url\n this[key].size = item.size\n this[key].type = key\n }\n })\n\n @action\n setIsOnline = (value: boolean) => {\n this.isOnline = value\n }\n\n @action\n setELockConnectInfo = (value: ELockConnectInfoDTO | null) => {\n this.eLockConnectInfo = value\n }\n\n @action\n setELockPhotos = (value: ELockFileItem[]) => {\n for (const photo of value) {\n this.setPhotoData(photo.type as ELockPhoto)(photo)\n }\n }\n\n @action\n reset = () => {\n this.setELockConnectInfo(null)\n this.setELockName('')\n this.doorFromInsidePhoto.url = ''\n this.doorFromTheEndPhoto.url = ''\n this.controllerPhoto.url = ''\n\n this.eLockReason.reset()\n }\n\n async getELockConnectInfo() {\n return await this.apiStore.getELockConnectInfo()\n }\n\n async checkNetwork() {\n return await this.apiStore.checkNetwork()\n }\n\n async activateELock() {\n return await this.apiStore.activateELock()\n }\n\n async updateELock() {\n return await this.apiStore.updateELock()\n }\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport { getQueryUrl } from 'services/utils/getQueryUrl'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { ResponseListData } from 'shared/types/types'\n\nimport { AddEmployeeRequest, EmployeeDTO } from './types/typesDTO'\n\nconst apiService = new HttpService(appConfig.API_URL)\nconst discoveryService = new HttpService(appConfig.DISCOVERY_URL)\n\nexport const employeeApi = {\n getPvzEmployees: async (shard: number): Promise> => {\n const queryUrl = getQueryUrl({\n show_deleted: true,\n })\n\n const result = await apiService.get>(\n `s${shard}/api/v2/pickpoint/user/list?${queryUrl}`,\n )\n\n return convertKeysToCamelCase(result)\n },\n\n addEmployee: async (data: AddEmployeeRequest): Promise<{ token: string }> => {\n return await discoveryService.post('/api/v3/pickpoint/user/add/verify', {\n body: {\n first_name: data.firstName,\n last_name: data.lastName,\n permission: data.permission,\n phone: data.phone,\n pickpoint_id: data.pickPointId,\n country: data.country,\n snils: data.snils,\n },\n })\n },\n\n verifyEmployee: async (data: AddEmployeeRequest): Promise<{ data: boolean }> => {\n return await discoveryService.post('/api/v3/pickpoint/user/add', {\n body: {\n first_name: data.firstName,\n last_name: data.lastName,\n permission: data.permission,\n phone: data.phone,\n pickpoint_id: data.pickPointId,\n country: data.country,\n snils: data.snils,\n token: data.token,\n code: data.code,\n },\n })\n },\n}\n","/**\n * Возвращает hash код строки\n * @param {string | Object} strOrObject - строка или объекта, для которой вычисляется hash код\n */\nexport function getHashCode(strOrObject: string | object) {\n let hash = 0\n const str = typeof strOrObject === 'string' ? strOrObject : JSON.stringify(strOrObject)\n\n if (str.length === 0) {\n return hash\n }\n\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i)\n hash = (hash << 5) - hash + char\n hash = hash & hash\n }\n\n return hash\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nimport { getHashCode } from 'utils/helpers/getHashCode'\n\nexport abstract class Entity {\n @observable id: number | null = null\n\n constructor(entity: Entity) {\n makeObservable(this)\n Object.assign(this, entity)\n }\n}\n\nexport abstract class BaseStore {\n @observable loading = false\n @observable entities = observable.map()\n @observable totalCount = 0\n\n constructor() {\n makeObservable(this)\n }\n\n @computed\n get size() {\n return this.entities.size\n }\n\n @computed\n get list() {\n return [...this.entities.values()]\n }\n\n getEntity = (entityId: TKey) => {\n return this.entities.get(entityId)\n }\n\n @action\n setLoading(value: boolean) {\n this.loading = value\n }\n\n @action\n setTotalCount(totalCount: number | undefined) {\n if (totalCount !== undefined) {\n this.totalCount = totalCount\n }\n }\n\n @action\n putEntity(entity: TEntity | TEntity[]) {\n const entities = entity instanceof Array ? entity : [entity]\n\n for (const ent of entities) {\n this.entities.set(this.getKey(ent), ent)\n }\n }\n\n /**\n * заменяет все сущности в хранилище на те, которые переданы в массиве\n *\n * @param {BaseEntityInstance[]} entities - новые сущности. Только они будут в хранилище\n */\n @action\n putEntities(entities: TEntity[]) {\n this.entities.clear()\n this.putEntity(entities)\n }\n\n @action\n patchEntity(entityId: TKey, patch: Omit, 'id'>) {\n const entity = this.entities.get(entityId)\n\n if (!entity) {\n return\n }\n\n Object.assign(entity, patch)\n\n this.entities.set(entityId, entity)\n }\n\n @action\n removeEntity(entityId: TKey) {\n this.entities.delete(entityId)\n }\n\n @action\n clear() {\n this.entities.clear()\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n protected isEqual(obj1: any, obj2: any) {\n return getHashCode(obj1) === getHashCode(obj2)\n }\n\n protected getKey(obj: TEntity): TKey {\n return obj.id as unknown as TKey\n }\n}\n","import { observable } from 'mobx'\n\nimport { EmployeeDTO } from 'sections/LKSection/modules/EmployeeModule/types/typesDTO'\nimport { Entity } from 'shared/stores/BaseStore'\nimport { Country, USER_PERMISSION } from 'shared/types/types'\n\nexport class Employee extends Entity {\n @observable firstName = ''\n @observable lastName = ''\n @observable middleName = ''\n @observable name = ''\n @observable permission = USER_PERMISSION.PERM_NONE\n @observable phone = ''\n @observable country = Country.RU\n @observable pvzId = 0\n @observable rating = 0\n @observable isDeleted = false\n\n constructor(props: Employee) {\n super(props)\n Object.assign(this, props)\n }\n\n static create({ userId, ...other }: EmployeeDTO, pvzId: number) {\n return new Employee({ ...other, id: userId, pvzId })\n }\n}\n","import { notification } from 'antd'\nimport { action, makeObservable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { employeeApi } from 'sections/LKSection/modules/EmployeeModule/api'\nimport { BaseStore } from 'shared/stores/BaseStore'\n\nimport { Employee } from './Employee'\n\nexport class EmployeeStore extends BaseStore {\n constructor(private readonly rootStore: IRootStore) {\n super()\n makeObservable(this)\n }\n\n @action\n setEmployeeList = async (value: Employee[]) => {\n this.putEntities(value)\n }\n\n @action\n async loadList(pvzId: number, shard: number) {\n try {\n this.setLoading(true)\n\n const res = await employeeApi.getPvzEmployees(shard)\n const items = res?.data?.map((item) => Employee.create(item, pvzId)) ?? []\n\n this.putEntities(items)\n this.setTotalCount(res?.data?.length)\n } catch (error) {\n notification.error({\n message: 'Ошибка получения списка сотрудников',\n description: (error as Error).message,\n })\n } finally {\n this.setLoading(false)\n }\n }\n}\n","import { Country, USER_PERMISSION } from 'shared/types/types'\n\nexport const UserModuleKeys = {\n loginPage: 'userModule.loginPage',\n countryPhoneInput: 'userModule.countryPhoneInput',\n codeInput: 'userModule.codeInput',\n countries: 'shared.countries',\n regisgtrationPage: 'userModule.registrationPage',\n activityStep: 'userModule.activityStep',\n passportStep: 'userModule.passportStep',\n passportPhotoStep: 'userModule.passportPhotoStep',\n contactInfoStep: 'userModule.contactInfoStep',\n data: 'userModule.data',\n requisites: 'userModule.requisites',\n api: 'userModule.api',\n profilePage: 'userModule.profilePage',\n}\n\nexport interface SendSmsCodeData {\n token: string\n code: string\n deviceToken?: string\n deviceType?: DEVICE_TYPE\n deviceUuid?: string\n alianDevice: boolean\n deviceName: string | null\n appVersion: string\n}\n\nexport interface LoginByPhoneData {\n country: Country\n phone: number\n resend?: boolean\n deviceUuid: string\n deviceType: DEVICE_TYPE | undefined\n}\n\nexport const enum DEVICE_TYPE {\n DEVICE_NONE = 'DEVICE_NONE',\n DEVICE_ANDROID = 'DEVICE_ANDROID',\n DEVICE_IOS = 'DEVICE_IOS',\n DEVICE_WEB = 'DEVICE_WEB',\n}\n\nexport const enum PersonalDataStep {\n 'step1',\n 'step2',\n 'step3',\n 'step4',\n}\n\nexport type GetDocumentParams = {\n userId: string\n docType: DocTypeParam\n citizenship: Citizenship\n}\n\nexport const enum DocTypeParam {\n passport = 'DOC_TYPE_PASSPORT',\n identification = 'DOC_TYPE_ID_CARD',\n}\n\nexport const enum DocumentType {\n passport = 'passport',\n identification = 'identification',\n}\n\nexport const enum UrlType {\n company = 'party',\n bank = 'bank',\n}\n\nexport const enum Citizenship {\n RU = 'RU',\n KZ = 'KZ',\n AM = 'AM',\n BY = 'BY',\n UZ = 'UZ',\n KG = 'KG',\n GE = 'GE',\n TJ = 'TJ',\n}\n\nexport type CountryItem = {\n label: string\n value: string\n country: Country\n}\n\nexport type UpdateCompanyDataDTO = {\n id: number\n bik: string\n email: string\n inn: string\n kpp: string\n ogrn: string\n okopf: string\n okpo: string\n orgName: string\n payAccount: string\n orgType: CompanyType\n\n taxFiles: string[]\n taxType: TaxTypes\n\n country: Country\n /** расчетный счет получателя KZ */\n bankInn: string\n corAccount: string\n bankName: string\n bankCode: string\n externalAd: string\n beneficiaryPayAccount: string\n localPayAccount: string\n localBik: string\n\n /** паспортные данные */\n passport: string\n date_of_issue: string | undefined\n department_code: string\n passport_urls: string[]\n gender: string\n dateOfBirthday?: string\n placeOfBirth: string\n passportIssued: string\n registrationAddress: string\n permanentResidenceAddress: string\n identification_number: string\n}\n\nexport interface CompanyDTO {\n id: number\n bik: string\n email: string\n inn: string\n isActive: boolean\n isOfferAccepted: boolean\n kpp: string\n name: string\n ogrn: string\n okopf: string\n okpo: string\n orgName: string\n payAccount: string\n phone: number\n wbUserId: number\n\n taxType: TaxTypes\n taxFiles: string[]\n taxCheckStatus: TaxCheckStatusType\n taxCheckStatusComment: string\n\n orgType: CompanyType\n offerCreated: string\n\n country: Country\n bankInn: string\n /** расчетный счет получателя KZ */\n corAccount: string\n\n bankName: string\n beneficiaryPayAccount: string\n localPayAccount: string\n localBik: string\n\n availableStatus: OwnerAvailableStatus\n\n gln: string\n legalAddress: string\n}\n\nexport const enum TaxTypes {\n usn = 'TAX_USN',\n osn = 'TAX_OSN',\n lowerRate5 = 'TAX_LOWER_RATE_5',\n lowerRate7 = 'TAX_LOWER_RATE_7',\n}\n\nexport const enum TaxCheckStatusType {\n review = 0,\n success = 1,\n remark = 2,\n canceled = 3,\n}\n\nexport const enum CompanyType {\n ip = 'ORG_IP',\n ooo = 'ORG_OOO',\n}\n\nexport const enum OwnerAvailableStatus {\n OWNER_AVAILABLE_STATUS_NONE = 'OWNER_AVAILABLE_STATUS_NONE', // не оплачен\n OWNER_AVAILABLE_STATUS_PAID = 'OWNER_AVAILABLE_STATUS_PAID', // оплачен\n}\n\nexport type CompanyInfoDTO = {\n suggestions?: {\n value?: string\n data: {\n state: {\n status: 'ACTIVE' | 'ANY'\n }\n ogrn?: string\n okpo?: string\n kpp?: string\n bik?: string\n\n name?: {\n full?: string\n }\n\n management?: {\n name?: string\n }\n }\n }[]\n}\n\nexport const enum GenderNumber {\n MALE = 1,\n FEMALE = 2,\n}\n\nexport type RegisterOwnerBody = {\n owner_data: OwnerData\n}\n\nexport type UpdateOwnerBody = {\n id: string\n activity_form?: ActivityForm\n contact_info?: ContactInfo\n requisites_data?: RequisitesData\n passport?: Passport\n update_fields: string[]\n}\n\nexport type OwnerData = {\n activity_form: ActivityForm\n contact_info: ContactInfo\n requisites_data: RequisitesData\n passport: Passport\n}\n\nexport type Passport = {\n passport_ru?: PassportRu\n passport_kz?: PassportKz\n id_card_kz?: IdCardKz\n passport_am?: PassportAm\n id_card_am?: IdCardAm\n passport_by?: PassportBy\n id_card_by?: IdCardBy\n passport_uz?: PassportUz\n id_card_uz?: IdCardUz\n passport_kg?: PassportKg\n id_card_kg?: IdCardKg\n id_card_ge?: IdCardGe\n id_card_tj?: IdCardTj\n}\n\nexport interface BaseDocumentDTO {\n first_name: string\n last_name: string\n document_photo: string[]\n with_document_photo: string[]\n issue_date: string\n date_of_birth: string\n}\n\nexport interface IdCardTj extends BaseDocumentDTO {\n patronymic: string\n document_number: string\n expiration_date: string\n gender: GenderNumber\n issued_by: string\n identification_number: string\n place_of_birth: string\n inn_citizen: string\n}\n\nexport interface IdCardGe extends BaseDocumentDTO {\n document_number: string\n expiration_date: string\n gender: GenderNumber\n issued_by: string\n identification_number: string\n place_of_birth: string\n}\n\nexport interface IdCardKg extends BaseDocumentDTO {\n patronymic: string\n gender: GenderNumber\n citizenship: string\n document_number: string\n expiration_date: string\n department_code: string\n personal_number: string\n place_of_birth: string\n}\n\nexport interface PassportKg extends BaseDocumentDTO {\n patronymic: string\n gender: GENDER\n citizenship: string\n nationality: string\n department_code: string\n personal_number: string\n passport_number: string\n expiration_date: string\n}\n\nexport interface IdCardUz extends BaseDocumentDTO {\n patronymic: string\n gender: GenderNumber\n expiration_date: string\n citizenship: string\n document_number: string\n personal_number: string\n place_of_birth: string\n department_code: string\n}\n\nexport interface PassportUz extends BaseDocumentDTO {\n patronymic: string\n gender: GENDER\n place_of_birth: string\n nationality: string\n issued_by: string\n passport_number: string\n expiration_date: string\n}\n\nexport interface IdCardBy extends BaseDocumentDTO {\n citizenship: Citizenship\n document_number: string\n patronymic: string\n gender: GenderNumber\n expiration_date: string\n department_code: string\n identification_number: string\n place_of_birth: string\n}\n\nexport interface PassportBy extends BaseDocumentDTO {\n gender: GenderNumber\n identification_number: string\n issued_by: string\n expiration_date: string\n patronymic: string\n nationality: string\n passport_number: string\n place_of_birth: string\n}\n\nexport interface IdCardAm extends BaseDocumentDTO {\n document_number: string\n patronymic: string\n gender: GenderNumber\n expiration_date: string\n department_code: string\n social_card_number: string\n}\n\nexport interface PassportAm extends BaseDocumentDTO {\n patronymic: string\n gender: GenderNumber\n expiration_date: string\n department_code: string\n passport_number: string\n registration_address: string\n}\n\nexport interface IdCardKz extends BaseDocumentDTO {\n patronymic: string\n iin: string\n document_number: string\n place_of_birth: string\n nationality: string\n expiration_date: string\n issued_by: string\n gender: GENDER\n}\n\nexport interface PassportKz extends BaseDocumentDTO {\n patronymic: string\n gender: GENDER\n identification_number: string\n expiration_date: string\n issued_by: string\n nationality: string\n passport_number: string\n place_of_birth: string\n}\n\nexport interface PassportRu extends BaseDocumentDTO {\n department_code: string\n patronymic: string\n gender: GENDER\n issued_by: string\n passport_number: string\n place_of_birth: string\n}\n\nexport type ActivityForm = {\n country: Country\n identity_photos: string[]\n organization_form: CompanyType\n organization_tax: TaxTypes\n}\n\nexport type ContactInfo = {\n email: string\n phone_number: string\n telegram: string\n snils?: string\n legal_address?: string\n gln?: string\n}\n\nexport type RequisitesData = {\n requisites_ru?: RequisitesRu\n requisites_by?: RequisitesBy\n requisites_kz?: RequisitesKz\n requisites_am?: RequisitesAm\n requisites_kg?: RequisitesKg\n requisites_uz?: RequisitesUz\n requisites_ge?: RequisitesGe\n requisites_tj?: RequisitesTj\n}\n\ntype Requisites = {\n account_number: string\n bank_name: string\n company_name: string\n}\n\nexport interface RequisitesTj extends Requisites {\n bik: string\n inn: string\n}\n\nexport interface RequisitesGe extends Requisites {\n bik_8?: string\n bik_11?: string\n inn: string\n}\n\nexport interface RequisitesUz extends Requisites {\n bik_mfo: string\n ooo_inn?: string\n pinfl?: string\n}\n\nexport interface RequisitesKg extends Requisites {\n bik: string\n inn: string\n}\n\nexport interface RequisitesAm extends Requisites {\n bik_11?: string\n bik_8?: string\n inn: string\n}\n\nexport interface RequisitesKz extends Requisites {\n bik_11?: string\n bik_8?: string\n iin_bin: string\n}\n\nexport interface RequisitesRu extends Requisites {\n bik: string\n correspondent_account: string\n ip_inn?: string\n ooo_inn?: string\n}\n\nexport interface RequisitesBy extends Requisites {\n bik_8?: string\n bik_11?: string\n unp: string\n}\n\nexport const enum PASSPORT_STATUSES {\n none = 'PASSPORT_NULL_DATA',\n hasPassport = 'PASSPORT_NEED_APPROVE',\n remark = 'PASSPORT_NEED_UPGRADE',\n approved = 'PASSPORT_APPROVED',\n}\n\nexport interface User {\n authenticated: boolean\n token: string\n cookie: string\n info: UserInfoDTO\n}\n\nexport interface UserInfoDTO {\n first_name: string\n last_name: string\n middle_name: string\n country: Country\n name: string\n owner: OWNER_STATUS\n phone: number\n email: string\n roles?: UserOfficeRoleDTO[]\n user_id: number\n last_push_id: number\n snils: number\n additional_phone: number\n telegram_login: string\n additional_phone_country: Country\n passport_approve_status: PASSPORT_STATUSES\n}\n\nexport const enum OWNER_STATUS {\n ROLE_ACCEPTED = 'ROLE_ACCEPTED',\n ROLE_NONE = 'ROLE_NONE',\n ROLE_NOT_ACCEPTED = 'ROLE_NOT_ACCEPTED',\n}\n\nexport interface UserOfficeRoleDTO {\n permission: USER_PERMISSION\n pickpoint_id: number\n is_owner: boolean\n}\n\nexport type ValidFormItem = {\n error: string\n invalid: boolean\n id?: number | string\n}\n\nexport interface UserInfoDTO {\n first_name: string\n last_name: string\n middle_name: string\n country: Country\n name: string\n owner: OWNER_STATUS\n phone: number\n email: string\n roles?: UserOfficeRoleDTO[]\n user_id: number\n last_push_id: number\n snils: number\n additional_phone: number\n telegram_login: string\n additional_phone_country: Country\n passport_approve_status: PASSPORT_STATUSES\n}\n\nexport type OfferVersionResponse = {\n offers: OfferDTO[]\n}\n\nexport type OfferDTO = {\n application: string\n countryCode: Country\n lastVersion: number\n offer: string\n signedVersion: number\n static: string\n tariffs: string\n}\n\nexport type OfferSignParams = {\n version: number\n countryCode: Country\n}\n\nexport interface UserFioUpdateData {\n firstName: string\n lastName: string\n middleName: string\n snils: number\n\n /** Доп. номер для контакта и телеграмм аккаунт */\n additionalPhone?: number\n additionalPhoneCountry?: Country\n telegramLogin?: string\n}\n\nexport type PhoneCountryItem = {\n label: string\n value: string\n country: Country\n}\n\nexport const enum GENDER {\n MALE = 'MALE',\n FEMALE = 'FEMALE',\n}\n\nexport type GetDocumentResponse = {\n DocumentData: {\n passportData?: PassportDataDTO\n idCardData?: IdCardDataDTO\n } | null\n}\n\nexport type PassportDataDTO = {\n dateOfBirth: string\n departmentCode: string\n documentPhoto: string[]\n expirationDate: string\n firstName: string\n gender: GENDER\n identificationNumber: string\n issueDate: string\n issuedBy: string\n lastName: string\n nationality: string\n passportNumber: string\n patronymic: string\n personalNumber: string\n placeOfBirth: string\n registrationAddress: string\n withDocumentPhoto: string[]\n}\n\nexport type IdCardDataDTO = {\n lastName: string\n firstName: string\n patronymic: string\n gender: GENDER\n dateOfBirth: string\n issueDate: string\n expirationDate: string\n citizenship: string\n nationality: string\n documentNumber: string\n personalNumber: string\n iin: string\n placeOfBirth: string\n departmentCode: string\n issuedBy: string\n socialCardNumber: string\n innCitizen: string\n identificationNumber: string\n documentPhoto: string[]\n withDocumentPhoto: string[]\n}\n","import { StepProps } from 'antd'\n\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { Citizenship, CompanyType, CountryItem, DocumentType, GENDER, TaxCheckStatusType } from './types'\n\nexport const taxCheckStatusName = {\n [TaxCheckStatusType.review]: 'Документы по обновлению ставки налогообложения находятся на проверке',\n [TaxCheckStatusType.success]: 'Ставка налогообложения обновлена',\n [TaxCheckStatusType.remark]: 'Документы не подтверждены. Необходимо внести актуальные данные',\n [TaxCheckStatusType.canceled]: 'Документы не подтверждены. Необходимо внести актуальные данные',\n}\n\nexport const STEPS_TITLES: StepProps[] = [\n { title: 'Форма деятельности' },\n { title: 'Персональные данные' },\n { title: 'Прикрепление фотографий удостоверения личности' },\n { title: 'Контактная информация' },\n]\n\nexport const countriesWithMultipleDocuments = [\n Citizenship.AM,\n Citizenship.KG,\n Citizenship.KZ,\n Citizenship.UZ,\n Citizenship.BY,\n]\n\nexport const countriesAuth: BaseOption[] = [\n { label: 'Россия', value: { label: 'Россия', value: '7', country: Country.RU } },\n { label: 'Казахстан', value: { label: 'Казахстан', value: '7', country: Country.KZ } },\n { label: 'Армения', value: { label: 'Армения', value: '374', country: Country.AM } },\n { label: 'Беларусь', value: { label: 'Беларусь', value: '375', country: Country.BY } },\n { label: 'Узбекистан', value: { label: 'Узбекистан', value: '998', country: Country.UZ } },\n { label: 'Кыргызстан', value: { label: 'Кыргызстан', value: '996', country: Country.KG } },\n { label: 'Грузия', value: { label: 'Грузия', value: '995', country: Country.GE } },\n { label: 'Таджикистан', value: { label: 'Таджикистан', value: '992', country: Country.TJ } },\n { label: 'Туркменистан', value: { label: 'Туркменистан', value: '993', country: Country.TM } },\n]\n\nexport const countries: BaseOption[] = [\n { label: 'Россия', value: { label: 'Россия', value: '7', country: Country.RU } },\n { label: 'Казахстан', value: { label: 'Казахстан', value: '7', country: Country.KZ } },\n { label: 'Армения', value: { label: 'Армения', value: '374', country: Country.AM } },\n { label: 'Беларусь', value: { label: 'Беларусь', value: '375', country: Country.BY } },\n { label: 'Узбекистан', value: { label: 'Узбекистан', value: '998', country: Country.UZ } },\n { label: 'Кыргызстан', value: { label: 'Кыргызстан', value: '996', country: Country.KG } },\n { label: 'Грузия', value: { label: 'Грузия', value: '995', country: Country.GE } },\n { label: 'Таджикистан', value: { label: 'Таджикистан', value: '992', country: Country.TJ } },\n]\n\nexport const citizenshipOptions = [\n { label: 'Россия', value: Citizenship.RU },\n { label: 'Казахстан', value: Citizenship.KZ },\n { label: 'Армения', value: Citizenship.AM },\n { label: 'Беларусь', value: Citizenship.BY },\n { label: 'Узбекистан', value: Citizenship.UZ },\n { label: 'Кыргызстан', value: Citizenship.KG },\n { label: 'Грузия', value: Citizenship.GE },\n { label: 'Таджикистан', value: Citizenship.TJ },\n]\n\nexport const documentsTypeOptions = [\n { label: 'Паспорт', value: DocumentType.passport },\n { label: 'Идентификационная карта', value: DocumentType.identification },\n]\n\nexport const identificationCardLabels = {\n [Citizenship.AM]: 'Идентификационная карта/ID card',\n [Citizenship.KG]: 'Идентификационная карта',\n [Citizenship.KZ]: 'Удостоверение личности',\n [Citizenship.UZ]: 'Идентификационная карта',\n [Citizenship.BY]: 'Идентификационная карта',\n [Citizenship.GE]: 'Идентификационная карта',\n [Citizenship.TJ]: 'Идентификационная карта',\n [Citizenship.RU]: 'Идентификационная карта',\n}\n\nexport const companyNameWithCompanyType = {\n [Country.RU]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.AM]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.KZ]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.BY]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.UZ]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.KG]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.GE]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n\n [Country.TJ]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n [Country.TM]: [\n ['ИП', CompanyType.ip],\n ['ООО', CompanyType.ooo],\n ],\n}\n\nexport const countryInnValue = {\n [Country.KZ]: 'ИИН/БИН',\n [Country.AM]: 'ИНН',\n [Country.RU]: 'ИНН',\n [Country.UZ]: {\n [CompanyType.ip]: 'ПИНФЛ',\n [CompanyType.ooo]: 'ИНН',\n },\n [Country.BY]: 'УНП',\n [Country.KG]: 'ИНН',\n [Country.GE]: 'ИНН',\n [Country.TJ]: 'ИНН',\n [Country.TM]: 'ИНН',\n}\n\nexport const companyTypeName = {\n [CompanyType.ip]: 'Название организации',\n [CompanyType.ooo]: 'Название компании',\n}\n\nexport const accountDetails = {\n [Country.RU]: {\n bik: 9,\n payAccount: 20,\n corAccount: 20,\n inn: {\n [CompanyType.ip]: 12,\n [CompanyType.ooo]: 10,\n },\n },\n\n [Country.AM]: {\n inn: 8,\n payAccount: [10, 16],\n bik: [8, 11],\n },\n\n [Country.KZ]: {\n inn: 12,\n bik: [8, 11],\n payAccount: 20,\n },\n\n [Country.BY]: {\n inn: 9,\n bik: [8, 11],\n payAccount: 28,\n gln: 13,\n },\n\n [Country.UZ]: {\n inn: {\n [CompanyType.ip]: 14,\n [CompanyType.ooo]: 9,\n },\n bik: 5,\n payAccount: 20,\n },\n\n [Country.KG]: {\n inn: 14,\n payAccount: 16,\n bik: 6,\n },\n\n [Country.GE]: {\n inn: 14,\n bik: [8, 11],\n payAccount: 22,\n },\n\n [Country.TJ]: {\n inn: 9,\n payAccount: 20,\n bik: 9,\n },\n\n [Country.TM]: {\n inn: 9,\n payAccount: 20,\n bik: 9,\n },\n}\n\nexport enum DaDataOrderLoadProp {\n bik = 'bik',\n companyName = 'companyName',\n}\n\nexport const genderOptions = [\n { value: GENDER.MALE, label: 'МУЖ' },\n { value: GENDER.FEMALE, label: 'ЖЕН' },\n]\n\nexport enum PassportPhotos {\n firtsPageWithPassportPhoto,\n secondPageWithPassportPhoto,\n firstPagePassportPhoto,\n secondPagePassportPhoto,\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { Country } from 'shared/types/types'\n\nimport { countries } from '../../data'\nimport { PhoneCountryItem } from '../../types'\n\nexport class AppCountryPhoneViewModel {\n @observable phone: string = ''\n @observable selectedCountry: PhoneCountryItem = countries[0].value\n\n constructor() {\n makeObservable(this)\n this.reset()\n }\n\n @computed\n get phonePrefix() {\n return this.selectedCountry.value\n }\n\n @computed\n get isValidPhone() {\n if (\n this.selectedCountry.country === Country.BY ||\n this.selectedCountry.country === Country.UZ ||\n this.selectedCountry.country === Country.KG ||\n this.selectedCountry.country === Country.GE ||\n this.selectedCountry.country === Country.TJ\n ) {\n return this.fullPhone.toString().length === 12\n } else {\n return this.fullPhone.toString().length === 11\n }\n }\n\n @computed\n get fullPhone() {\n return Number(`${this.phonePrefix}${this.phone}`)\n }\n\n @action\n setPhone = (value: string) => {\n this.phone = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setSelectedCountry = (value: CountryItem) => {\n this.selectedCountry = value\n this.phone = ''\n }\n\n @action\n reset = () => {\n this.selectedCountry = countries[0].value\n this.phone = ''\n }\n}\n","export const enum EmployeeActiveStatus {\n active = 'active',\n inactive = 'inactive',\n}\n\nexport const activeEmployeeOptions = [\n { value: null, label: 'Все' },\n { value: EmployeeActiveStatus.active, label: 'Активные' },\n { value: EmployeeActiveStatus.inactive, label: 'Неактивные' },\n]\n\nexport const MIN_NAME_LENGTH = 2\n","import { notification } from 'antd'\nimport { makeAutoObservable } from 'mobx'\n\nimport { USER_PERMISSION } from 'shared/types/types'\n\nimport { employeeApi } from '../api'\nimport { ViewEmployeeUiStore } from './ViewEmployeeUiStore'\n\nexport class ViewEmployeeApiStore {\n constructor(protected readonly uiStore: ViewEmployeeUiStore) {\n makeAutoObservable(this)\n }\n\n async addEmployee() {\n try {\n if (this.uiStore.viewPvzUiStore.selectedPvz?.id) {\n const { token } = await employeeApi.addEmployee({\n lastName: this.uiStore.lastName,\n firstName: this.uiStore.firstName,\n snils: Number(this.uiStore.snils),\n pickPointId: this.uiStore.viewPvzUiStore.selectedPvz.id,\n phone: this.uiStore.phoneModel.fullPhone,\n country: this.uiStore.phoneModel.selectedCountry.country,\n permission: USER_PERMISSION.PERM_EMPLOYEE,\n })\n\n this.uiStore.setToken(token)\n\n return true\n }\n } catch (error) {\n notification.error({\n message: 'Ошибка верификации сотрудника',\n description: (error as Error).message,\n })\n }\n }\n\n async verifyEmployee() {\n try {\n if (this.uiStore.viewPvzUiStore.selectedPvz?.id) {\n const result = await employeeApi.verifyEmployee({\n lastName: this.uiStore.lastName,\n firstName: this.uiStore.firstName,\n snils: Number(this.uiStore.snils),\n pickPointId: this.uiStore.viewPvzUiStore.selectedPvz.id,\n phone: this.uiStore.phoneModel.fullPhone,\n country: this.uiStore.phoneModel.selectedCountry.country,\n permission: USER_PERMISSION.PERM_EMPLOYEE,\n code: this.uiStore.code,\n token: this.uiStore.token,\n })\n\n return result.data\n }\n } catch (error) {\n notification.error({\n message: 'Ошибка добавления сотрудника',\n description: (error as Error).message,\n })\n }\n }\n}\n","import { action, computed, makeAutoObservable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\n\nimport { AppCountryPhoneViewModel } from '../../UserModule/stores/models/AppCountryPhoneViewModel'\nimport { EmployeeActiveStatus } from '../data'\nimport { ViewEmployeeApiStore } from './ViewEmployeeApiStore'\n\nexport class ViewEmployeeUiStore {\n activeStatus: null | EmployeeActiveStatus = null\n\n selectedStep = 1\n lastName = ''\n firstName = ''\n snils = ''\n code = ''\n token = ''\n\n readonly phoneModel = new AppCountryPhoneViewModel()\n readonly apiStore = new ViewEmployeeApiStore(this)\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n }\n\n get employeeStore() {\n return this.rootStore.employeeStore\n }\n\n get viewPvzUiStore() {\n return this.rootStore.viewPvzUiStore\n }\n\n get employeeList() {\n return this.employeeStore.list\n }\n\n get loadingEmployeeList() {\n return this.employeeStore.loading\n }\n\n @computed\n get employeeFilteredList() {\n if (this.activeStatus === EmployeeActiveStatus.active) {\n return this.employeeStore.list.filter((item) => !item.isDeleted)\n } else if (this.activeStatus === EmployeeActiveStatus.inactive) {\n return this.employeeStore.list.filter((item) => item.isDeleted)\n }\n\n return this.employeeStore.list\n }\n\n @action\n setActiveStatus = (value: EmployeeActiveStatus | null) => {\n this.activeStatus = value\n }\n\n @action\n setSelectedStep = (value: number) => {\n this.selectedStep = value\n }\n\n @action\n setLastName = (value: string) => {\n this.lastName = value\n }\n\n @action\n setFirstName = (value: string) => {\n this.firstName = value\n }\n\n @action\n setSnils = (value: string) => {\n this.snils = value\n }\n\n @action\n setCode = (value: string) => {\n this.code = value\n }\n\n @action\n setToken = (value: string) => {\n this.token = value\n }\n\n reset = () => {\n this.setLastName('')\n this.setFirstName('')\n this.setSnils('')\n this.setCode('')\n this.phoneModel.reset()\n }\n\n async getEmployeeList() {\n if (this.viewPvzUiStore.selectedPvz?.id) {\n return await this.rootStore.employeeStore.loadList(\n this.viewPvzUiStore.selectedPvz.id,\n this.viewPvzUiStore.selectedPvz.shard,\n )\n }\n }\n\n async addEmployee() {\n return await this.apiStore.addEmployee()\n }\n\n async verifyEmployee() {\n return await this.apiStore.verifyEmployee()\n }\n}\n","import { SignboardFormat, SignboardSize } from 'sections/LKSection/modules/OrderModule/types'\nimport { BaseOption } from 'shared/types/types'\n\nimport { WeekDays } from './types'\n\nexport const PICKPOINT_DESCRIPTION_MIN = 30\nexport const PICKPOINT_DESCRIPTION_MAX = 200\nexport const COURIER_WAY_MAX = 256\n\nexport const DEFAULT_START_TIME = '10:00'\nexport const DEFAULT_END_TIME = '22:00'\nexport const DEFAULT_GENERAL_TIME = `${DEFAULT_START_TIME}-${DEFAULT_END_TIME}`\n\nexport const MIN_WORKING_DAYS = 5\nexport const MIN_OPENING_HOURS = 6\nexport const MIN_PUBLIC_PHOTO = 3\n\nexport const defaultFileData = {\n url: '',\n size: 0,\n isPublic: false,\n}\n\nexport const DEFAULT_WEEK_DAYS: WeekDays[] = [\n {\n label: 'Понедельник',\n value: 'monday',\n isDayOff: false,\n },\n {\n label: 'Вторник',\n value: 'tuesday',\n isDayOff: false,\n },\n {\n label: 'Среда',\n value: 'wednesday',\n isDayOff: false,\n },\n {\n label: 'Четверг',\n value: 'thursday',\n isDayOff: false,\n },\n {\n label: 'Пятница',\n value: 'friday',\n isDayOff: false,\n },\n {\n label: 'Суббота',\n value: 'saturday',\n isDayOff: false,\n },\n {\n label: 'Воскресенье',\n value: 'sunday',\n isDayOff: false,\n },\n]\n\nexport const signboardSizeOptions: BaseOption[] = [\n { value: SignboardSize.mini, label: 'Mini' },\n { value: SignboardSize.small, label: '300 (2395х300)' },\n { value: SignboardSize.middle, label: '400 (3218х400)' },\n { value: SignboardSize.big, label: '500 (4034х500)' },\n]\n\nexport const signboardFormatOptions: BaseOption[] = [\n { value: SignboardFormat.old, label: 'Старый формат' },\n { value: SignboardFormat.new, label: 'Новый формат' },\n]\n","import { OrderKeys } from './data'\n\nexport const getOrderModuleKey = (key: string) => `${OrderKeys.orderModule}.${key}`\nexport const getOrderPageKey = (key: string) => `${OrderKeys.orderPage}.${key}`\nexport const getCreateOrderPageKey = (key: string) => `${OrderKeys.createOrderPage}.${key}`\nexport const getActivateOrderPageKey = (key: string) => `${OrderKeys.activateOrderPage}.${key}`\nexport const getOrderItemPageKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\nexport const getOrderFilesStepKey = (key: string) => `${OrderKeys.filesStep}.${key}`\nexport const getOrderWorkConditionsStepKey = (key: string) => `${OrderKeys.workConditionsStep}.${key}`\nexport const getOrderRequirementsStepKey = (key: string) => `${OrderKeys.requirementsStep}.${key}`\n\nexport const parseTariffDescription = (tariffDescription: string): string[] => {\n let tariffDescriptionArray: string[]\n\n try {\n const parsed = JSON.parse(tariffDescription)\n tariffDescriptionArray = Array.isArray(parsed) ? parsed : []\n } catch (error) {\n tariffDescriptionArray = []\n }\n\n return tariffDescriptionArray\n}\n","import { DEFAULT_WEEK_DAYS } from './data'\nimport { PickPointFileItemType, PickPointFileType, PickPointVideoItemType, Timetable, TimetableDays } from './types'\n\nexport function getMedia(actualUrls: string): {\n videos: PickPointVideoItemType[]\n photos: PickPointFileItemType[]\n documents: PickPointFileItemType[]\n} {\n const hasActualUrls = actualUrls?.trim().length > 0\n\n const photos: PickPointFileItemType[] = []\n const videos: PickPointVideoItemType[] = []\n const documents: PickPointFileItemType[] = []\n\n if (hasActualUrls) {\n const parsed = JSON.parse(actualUrls) as (PickPointFileItemType & PickPointVideoItemType)[]\n\n for (const item of parsed) {\n const isDocument =\n item.type === PickPointFileType.leaseDocument ||\n item.type === PickPointFileType.btiDocument ||\n item.type === PickPointFileType.btiDocumentEditArea ||\n item.type === PickPointFileType.leaseDocumentEditArea\n\n if (item.type === PickPointFileType.video) {\n videos.push(item)\n } else if (isDocument) {\n documents.push(item)\n } else {\n photos.push(item)\n }\n }\n }\n\n return { videos, photos, documents }\n}\n\nexport const getActualUrls = (\n photos: PickPointFileItemType[],\n videos: PickPointVideoItemType[],\n documents: PickPointFileItemType[],\n) => {\n if (!videos && !photos) {\n return null\n }\n\n const reqVideos = videos ? videos.filter((video) => video?.url) : []\n const reqPhotos = photos || []\n const reqDocuments = documents || []\n\n return JSON.stringify(\n reqPhotos\n .map((value) => ({ isPublic: value.isPublic, type: value.type, url: value.url }))\n .concat(reqVideos.map((value) => ({ isPublic: false, type: PickPointFileType.video, url: value.url })))\n .concat(reqDocuments.map((value) => ({ isPublic: false, type: value.type, url: value.url }))),\n )\n}\n\nexport const getTimetableModel = (timetable: string) => {\n const openClose = { open: '', close: '' }\n\n const days: TimetableDays = {}\n\n for (const day of DEFAULT_WEEK_DAYS) {\n days[day.value] = { ...openClose, is_day_off: day.isDayOff }\n }\n\n const defaultTimeTable: Timetable = {\n daily: openClose,\n sat: openClose,\n sun: openClose,\n week: {\n days,\n },\n }\n\n try {\n const res = JSON.parse(timetable) as Timetable | undefined\n return res ?? defaultTimeTable\n } catch (error) {\n return defaultTimeTable\n }\n}\n","import { makeAutoObservable, observable } from 'mobx'\n\nimport { OrderCommentDTO } from 'sections/LKSection/modules/OrderModule/types'\n\nexport enum SendByType {\n owner = 'OWNER',\n admin = 'ADMIN',\n}\n\nexport class OrderComment {\n @observable comment: string = ''\n @observable date: Date = new Date()\n @observable sendBy: SendByType = SendByType.admin\n\n constructor(props: OrderComment) {\n makeAutoObservable(this)\n Object.assign(this, props)\n }\n\n static create(dto: OrderCommentDTO) {\n return new OrderComment({\n comment: dto.comment,\n date: new Date(dto.dt),\n sendBy: dto.sendBy as SendByType,\n })\n }\n}\n","import { computed, observable } from 'mobx'\n\nimport { OrderELockInfoDTO } from 'sections/LKSection/modules/ELockModule/types'\nimport {\n ConfirmedToOpen,\n CouriersAccess,\n OrderDTO,\n OrderStatus,\n PickPointLocation,\n SignboardFormat,\n SignboardSize,\n SubsidyHexType,\n} from 'sections/LKSection/modules/OrderModule/types'\nimport { parseTariffDescription } from 'sections/LKSection/modules/OrderModule/utils'\nimport { PickPointFileItemType, PickPointType, PickPointVideoItemType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { getMedia } from 'sections/LKSection/shared/PickPointSharedModule/utils'\nimport { Entity } from 'shared/stores/BaseStore'\nimport { Country } from 'shared/types/types'\n\nimport { OrderComment } from './OrderComment/OrderComment'\n\nexport class Order extends Entity {\n @observable cityId: number = 0\n @observable cityName: string = ''\n @observable country: Country = Country.RU\n @observable description: string = ''\n @observable courierWay: string = ''\n @observable district: string = ''\n @observable house: string = ''\n @observable region: string = ''\n @observable latitude: string = ''\n @observable longitude: string = ''\n @observable street: string = ''\n @observable typePoint: PickPointType = PickPointType.none\n @observable confirmedToOpen: ConfirmedToOpen = ConfirmedToOpen.none\n @observable subsidyHexType: SubsidyHexType = SubsidyHexType.none\n @observable couriersAccess: CouriersAccess = CouriersAccess.none\n\n @observable dressingRoomsCount: number = 0\n @observable floorLevel: PickPointLocation = PickPointLocation.firstFloor\n\n @observable updated: string = ''\n @observable created: string = ''\n @observable deleted?: string | null\n @observable accepted?: string | null\n @observable status: OrderStatus = OrderStatus.draft\n @observable tariffDescription: string[] = []\n @observable outOfDraftDate?: string | null\n @observable comments: OrderComment[] = []\n @observable timetable = ''\n\n @observable area: number = 0\n @observable warehouseArea: number = 0\n @observable cellingHeight: number = 0\n\n @observable photos: PickPointFileItemType[] = []\n @observable videos: PickPointVideoItemType[] = []\n @observable documents: PickPointFileItemType[] = []\n\n @observable isBranded: boolean = false\n /** признак фирменного ПВЗ */\n @observable wbCompany: boolean = false\n @observable pickpointId?: number\n /** признак переезда */\n @observable exPickPointId = 0\n\n @observable signboardSize: SignboardSize = SignboardSize.none\n @observable signboardFormat: SignboardFormat = SignboardFormat.none\n\n @observable ownerGln = ''\n @observable glnPvz = ''\n @observable molName = ''\n\n @observable eLockInfo: OrderELockInfoDTO | null = null\n\n /* Здесь перечислены свойства, которых нет в DTO модели */\n constructor(props: Omit) {\n super(props)\n Object.assign(this, props)\n }\n\n static create({ actualUrls, comments, tariffDescription, stockArea, ...other }: OrderDTO) {\n const { videos, photos, documents } = getMedia(actualUrls)\n\n const tariffDescriptionArray = tariffDescription ? parseTariffDescription(tariffDescription) : []\n\n return new Order({\n ...other,\n photos,\n videos,\n documents,\n comments: comments?.map((comment) => OrderComment.create(comment)) ?? [],\n tariffDescription: tariffDescriptionArray,\n warehouseArea: stockArea,\n exPickPointId: other?.exPickpointId,\n eLockInfo: other?.elockInfo,\n couriersAccess: other?.accessType,\n floorLevel: other?.locations?.[0] ?? PickPointLocation.none,\n glnPvz: other.pickpointGln,\n })\n }\n\n @computed\n get fullAddress() {\n if (!this.cityName) {\n return ''\n }\n if (!this.street) {\n return this.cityName\n }\n if (!this.house) {\n return `${this.cityName}, ${this.street}`\n }\n if (!this.district || this.district.trim?.().length === 0) {\n return `${this.cityName}, ${this.street}, ${this.house}`\n }\n\n return `${this.district}, ${this.cityName}, ${this.street}, ${this.house}`\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\nimport { captureException } from '@sentry/react'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { VideoFile } from 'sections/LKSection/modules/OrderModule/types'\nimport { Pvz } from 'sections/LKSection/modules/PvzModule/stores/entity/Pvz'\nimport {\n PickPointFileItemType,\n PickPointFileType,\n PickPointVideoItemType,\n} from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { getActualUrls } from 'sections/LKSection/shared/PickPointSharedModule/utils'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport { defaultFileData, MIN_PUBLIC_PHOTO } from './../data'\n\nexport class PickPointFilesViewModel {\n /** Фото фасада с вывеской */\n @observable generalPhoto: PickPointFileItemType = { ...defaultFileData, type: PickPointFileType.generalPhoto }\n /** Ночное фото фасада */\n @observable nightlyGeneralPhoto: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.nightlyGeneralPhoto,\n }\n /** Фото клиентской зоны */\n @observable clientAreaPhoto: PickPointFileItemType = { ...defaultFileData, type: PickPointFileType.clientAreaPhoto }\n /** Фото примерочной */\n @observable fittingRoomsPhoto: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.fittingRoomsPhoto,\n }\n /** Фото складской зоны */\n @observable warehouseAreaPhoto: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.warehouseAreaPhoto,\n }\n /** Фото видеонаблюдения */\n @observable surveillancePhoto: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.surveillancePhoto,\n }\n /** Фото кронштейна */\n @observable bracketPhoto: PickPointFileItemType = { ...defaultFileData, type: PickPointFileType.bracketPhoto }\n\n /** Документ аренды */\n @observable leaseDocument: PickPointFileItemType = { ...defaultFileData, type: PickPointFileType.leaseDocument }\n /** Документ БТИ */\n @observable btiDocument: PickPointFileItemType = { ...defaultFileData, type: PickPointFileType.btiDocument }\n\n /** Документ аренды используемый при редактировании площади ПВЗ */\n @observable leaseDocumentEditArea: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.leaseDocumentEditArea,\n }\n /** Документ БТИ используемый при редактировании площади ПВЗ */\n @observable btiDocumentEditArea: PickPointFileItemType = {\n ...defaultFileData,\n type: PickPointFileType.btiDocumentEditArea,\n }\n\n /** Видеопрогулка */\n @observable video: VideoFile = { url: '', name: '', size: 0 }\n /** Ссылка на видеопрогулку */\n @observable videoURL: string = ''\n\n constructor() {\n makeAutoObservable(this)\n this.reset()\n }\n\n @computed\n get photos(): PickPointFileItemType[] {\n return [\n this.generalPhoto,\n this.nightlyGeneralPhoto,\n this.clientAreaPhoto,\n this.fittingRoomsPhoto,\n this.warehouseAreaPhoto,\n this.surveillancePhoto,\n this.bracketPhoto,\n ]\n }\n\n @computed\n get documents(): PickPointFileItemType[] {\n return [this.leaseDocument, this.btiDocument]\n }\n\n @computed\n get documentsForEditArea(): PickPointFileItemType[] {\n return [this.leaseDocumentEditArea, this.btiDocumentEditArea]\n }\n\n @computed\n get videos(): VideoFile[] {\n return [this.video, { name: '', size: 0, url: this.videoURL || '' }]\n }\n\n @computed\n invalidPhotos(actionType: 'create' | 'activate') {\n const photosForCreation = [\n this.generalPhoto,\n this.nightlyGeneralPhoto,\n this.clientAreaPhoto,\n this.fittingRoomsPhoto,\n ]\n const photosForActivation = [\n ...photosForCreation,\n this.warehouseAreaPhoto,\n this.surveillancePhoto,\n this.bracketPhoto,\n ]\n const photos = actionType === 'create' ? photosForCreation : photosForActivation\n\n return photos.some((photo) => !photo?.url?.length)\n }\n\n @computed\n get invalidPublicPhotos() {\n return this.photos.filter((photo) => photo.isPublic && photo.url).length < MIN_PUBLIC_PHOTO\n }\n\n @computed\n get invalidDocuments() {\n return this.documents.some((doc) => doc?.url === '')\n }\n\n @computed\n get invalidVideo() {\n return !(this.videos[0]?.url || this.videos[1]?.url)\n }\n\n @computed\n get invalidVideoCount() {\n // если загружена видепрогулка и ссылка на нее - ошибка\n return Boolean(this.videos[0]?.url && this.videos[1]?.url)\n }\n\n @computed\n get invalidVideoUrl() {\n return this.videoURL && !WEB_LINK_REGEXP.test(this.videoURL)\n }\n\n @action\n setPhotoData = (key: PickPointFileType) =>\n action((item: Omit) => {\n if (key !== PickPointFileType.video) {\n this[key].url = item.url\n this[key].size = item.size\n this[key].type = key\n }\n })\n\n @action\n setPhotoIsPublic = (key: PickPointFileType) =>\n action((value: boolean) => {\n if (key !== PickPointFileType.video) {\n this[key].isPublic = value\n }\n })\n\n @action\n setVideoFile = (value: VideoFile) => {\n this.video = value\n }\n\n @action\n setVideoURL = (value: string) => {\n this.videoURL = value.replace(/\\s/g, '')\n }\n\n @action\n setPhotos = (photos: PickPointFileItemType[]) => {\n for (const photo of photos) {\n if (this[photo.type]) {\n const typedPhoto = this[photo.type] as PickPointFileItemType\n\n typedPhoto.url = photo.url\n typedPhoto.isPublic = photo.isPublic\n }\n }\n }\n\n async processFiles(entity: Order | Pvz) {\n if (!entity.id) {\n return false\n }\n\n const isOrder = entity instanceof Order\n const entityType = isOrder ? FileEntityType.pickPointOrder : FileEntityType.pickPoint\n\n const oldVideos: PickPointVideoItemType[] = []\n const oldPhotos: PickPointFileItemType[] = []\n const oldDocuments: PickPointFileItemType[] = []\n\n const newVideos: VideoFile[] = []\n const newPhotos: PickPointFileItemType[] = []\n const newDocuments: PickPointFileItemType[] = []\n\n for (const item of this.videos ?? []) {\n if (entity.videos?.some((video) => video.url === item.url)) {\n oldVideos.push(item)\n } else {\n item.url && newVideos.push(item)\n }\n }\n for (const item of this.photos ?? []) {\n if (entity.photos?.some((x) => x.url === item.url)) {\n oldPhotos.push(item)\n } else {\n item.url && newPhotos.push(item)\n }\n }\n for (const item of [...this.documents, ...this.documentsForEditArea]) {\n if (entity.documents?.some((x) => x.url === item.url)) {\n oldDocuments.push(item)\n } else {\n item.url && newDocuments.push(item)\n }\n }\n\n try {\n const [savedVideos, savedPhotos, savedDocuments] = await Promise.all([\n this.uploadVideo(entity.id, newVideos, entityType),\n this.uploadPhotos(entity.id, newPhotos, entityType),\n this.uploadPhotos(entity.id, newDocuments, entityType, true),\n ])\n\n const actualUrls =\n getActualUrls(\n oldPhotos.concat(savedPhotos),\n oldVideos.concat(savedVideos),\n oldDocuments.concat(savedDocuments),\n ) || false\n\n return actualUrls\n } catch (error) {\n captureException(\n `Ошибка загрузки файлов для ${isOrder ? 'заявки' : 'ПВЗ'} № ${entity.id}: ${(error as Error).message}`,\n )\n notification.error({ message: (error as Error).message })\n return false\n }\n }\n\n @action\n async uploadPhotos(\n id: number,\n photos: PickPointFileItemType[],\n entityType: FileEntityType,\n isDocument: boolean = false,\n ): Promise {\n try {\n const res = await fileService.filesUpload({\n entityId: id,\n entityType: isDocument ? FileEntityType.document : entityType,\n files: photos.map((photo) => ({ content: photo.url, totalSize: photo.size })),\n })\n\n if (res.length < photos.length) {\n throw new Error(i18next.t(getSharedKey(isDocument ? 'api.documentsUploadError' : 'api.photosUploadError')))\n }\n\n return res.map((photo, index) => ({\n size: photo.uploadedSize,\n url: photo.imageUrl,\n type: photos[index].type,\n isPublic: photos[index].isPublic,\n }))\n } catch (error) {\n throw new Error(\n `${i18next.t(getSharedKey(isDocument ? 'api.documentsUploadError' : 'api.photosUploadError'))}. ${\n (error as Error).message\n }`,\n )\n }\n }\n\n @action\n async uploadVideo(id: number, videos: VideoFile[], entityType: FileEntityType): Promise {\n try {\n const res = await fileService.filesUpload({\n entityId: id,\n entityType,\n files: videos.map((video) => ({ content: video.url, totalSize: video.size })),\n })\n\n if (res.length < videos.length) {\n throw new Error(i18next.t(getSharedKey('api.videoUploadError')))\n }\n\n return res.map((video, index) => ({ size: video.uploadedSize, url: video.imageUrl, name: videos[index].name }))\n } catch (error) {\n throw new Error(`${i18next.t(getSharedKey('api.videoUploadError'))}. ${(error as Error).message}`)\n }\n }\n\n @action\n reset = () => {\n const pickPointFileTypeKeys = Object.keys(PickPointFileType)\n\n for (const key of pickPointFileTypeKeys) {\n const typedKey = key as PickPointFileType\n\n if (typedKey !== PickPointFileType.video) {\n this[typedKey] = { ...defaultFileData, type: typedKey }\n }\n }\n\n this.video = { url: '', name: '', size: 0 }\n this.videoURL = ''\n }\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport { getQueryUrl } from 'services/utils/getQueryUrl'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { PaginationType, ResponseListData } from 'shared/types/types'\n\nimport {\n AddCCTVInfoRequest,\n AddOrderPayment,\n AddOrderPaymentDTO,\n CameraVendorListDTO,\n CCTVInfoDTO,\n CheckOrderAddressRequest,\n Coordinate,\n CreateOrderRequest,\n FurnitureOrderType,\n GetPaymentDeadlineDTO,\n GetTariffDTO,\n GetTariffsRequest,\n OrderDTO,\n OrderMessageDTO,\n OrderPaymentStatus,\n OrderReadyActivateRequest,\n PublishOrderDTO,\n SubsidyInfo,\n SubsidyTypeDTO,\n UpdateOrderRequest,\n ValidateCCTVInfoDTO,\n ValidateCCTVInfoRequest,\n VendorList,\n} from './types'\n\nconst service = new HttpService()\nconst discoveryService = new HttpService(appConfig.DISCOVERY_URL)\nconst camerasService = new HttpService(appConfig.CAMERAS_URL)\n\nexport const ordersApi = {\n createOrder: (data: CreateOrderRequest): Promise<{ data: number }> => {\n return discoveryService.post('/api/v2/pickpoint/order/add', {\n body: {\n area: data.area,\n stock_area: data.warehouseArea,\n actual_urls: data.actualUrls,\n latitude: data.latitude,\n longitude: data.longitude,\n dressing_rooms_count: data.dressingRoomsCount,\n country: data.country,\n phone: data.phone,\n locations: data.locations,\n access_type: data.accessType,\n timetable: data.timetable,\n description: data.description,\n courier_way: data.courierWay,\n ex_pickpoint_id: data.exPickPointId,\n city_id: data.cityId,\n city_name: data.cityName,\n house: data.house,\n street: data.street,\n region: data.region,\n district: data.district,\n celling_height: data.cellingHeight,\n subsidy_hex_type: data.subsidyHexType,\n type_point: data.pickPointType,\n description_pickpoint_type: '',\n has_dress_room: true,\n is_branded: true,\n /* для разделения заявки с промо и мобилки */\n client_type: 'CLIENT_TYPE_SITE',\n },\n })\n },\n\n updateOrder: (data: UpdateOrderRequest): Promise<{ data: boolean }> => {\n const patch = {\n house: data.house,\n street: data.street,\n latitude: data.latitude,\n longitude: data.longitude,\n description: data.description,\n courier_way: data.courierWay,\n metadata: data.courierWay,\n type_point: data.pickPointType,\n timetable: data.timetable,\n area: data.area,\n stock_area: data.warehouseArea,\n dressing_rooms_count: data.dressingRoomsCount,\n celling_height: data.cellingHeight,\n comment: data.comment,\n actual_urls: data.actualUrls,\n signboard_size: data.signboardSize,\n signboard_format: data.signboardFormat,\n subsidy_hex_type: data.subsidyHexType,\n access_type: data.couriersAccess,\n owner_gln: data.ownerGln,\n pickpoint_gln: data.glnPvz,\n mol_name: data.molName,\n }\n\n const updatedFields = Object.entries(patch)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key]) => key)\n\n return discoveryService.post(`/api/v2/pickpoint/order/${data.id}/update`, {\n body: {\n ...patch,\n update_fields: updatedFields,\n },\n })\n },\n\n deleteOrder: async (id: number): Promise<{ data: boolean }> => {\n return await discoveryService.post(`/api/v2/pickpoint/order/${id}/delete`, {\n body: {\n id,\n },\n })\n },\n\n publishOrder: (id: number): Promise => {\n return discoveryService.post(`/api/v2/pickpoint/order/${id}/publish`, {\n body: {\n id,\n },\n })\n },\n\n getTariffs: async ({ area, lat, lon, typePoint }: GetTariffsRequest): Promise => {\n const result = await discoveryService.post>('api/v4/tariff_2', {\n body: {\n latitude: lat,\n longitude: lon,\n area,\n type_point: typePoint,\n },\n })\n\n return result.data.length > 0 ? convertKeysToCamelCase(result.data[0]) : undefined\n },\n\n getOrderList: async ({ page, pageSize }: PaginationType): Promise> => {\n const queryUrl = getQueryUrl({\n page_size: pageSize,\n page,\n 'filter.order_field': 'created',\n 'filter.sort_desc': true,\n 'filter.is_deleted': true,\n })\n\n const result = await discoveryService.get>(`/api/v2/pickpoint/order/list?${queryUrl}`)\n\n return result ? convertKeysToCamelCase(result) : undefined\n },\n\n addOrderPayment: async (orderId: number): Promise => {\n const result = await discoveryService.post('/api/v2/pickpoint/order/check/add', {\n body: {\n client_type: 'CLIENT_TYPE_SITE',\n pickpoint_order_id: orderId,\n },\n })\n\n const converted = convertKeysToCamelCase(result) as AddOrderPaymentDTO\n\n return {\n paymentUrl: converted.paymentUrl,\n data: {\n country: converted.data.currency,\n sum: converted.data.sumRub,\n },\n }\n },\n\n checkOrderPayment: async (orderId: number): Promise<{ status: OrderPaymentStatus }> => {\n const result = await discoveryService.get>(\n `/api/v2/pickpoint/order/check/${orderId}`,\n )\n\n return result.data\n },\n\n getSecretImages: async (url: string): Promise => {\n const result = await service.get<{ file: string }>(url)\n return result.file\n },\n\n getOrderMessages: async (orderId: number): Promise => {\n const result = await discoveryService.get>(\n `/api/v2/pickpoint/order/pickpoint-information/list/${orderId}`,\n )\n\n return convertKeysToCamelCase(result.data)\n },\n\n getVendorList: async (): Promise => {\n const result = await camerasService.get('/api/v2/manage/camera/token/vendor/list')\n return convertKeysToCamelCase(result?.vendor_list)\n },\n\n validateCCTVInfo: async ({\n externalPickPointId,\n vendor,\n url,\n login,\n password,\n token,\n description,\n }: ValidateCCTVInfoRequest): Promise => {\n const result = await camerasService.post('/api/cameras/validate/check', {\n body: {\n external_pickpoint_id: externalPickPointId,\n vendor,\n url,\n login,\n password,\n token,\n description,\n },\n headers: {\n 'X-Token': 'YjWVWLD5qCsYSsElXtTr7C8IGVBAk9w5',\n },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n addCCTVInfo: async ({\n orderId,\n url,\n login,\n password,\n description,\n }: AddCCTVInfoRequest): Promise<{ camera: CCTVInfoDTO }> => {\n const result = await discoveryService.post<{ camera: CCTVInfoDTO }>(`/api/v2/order/cameras/${orderId}`, {\n body: {\n url,\n login,\n password,\n description,\n },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n getCCTVInfo: async (orderId: number): Promise => {\n const result = await discoveryService.get>(`/api/v2/order/cameras/${orderId}`)\n return convertKeysToCamelCase(result?.data)\n },\n\n makeOrderReadyActivate: async (data: OrderReadyActivateRequest): Promise => {\n const result = await discoveryService.post>(\n `api/v2/pickpoint/order/${data.orderId}/ready-activate`,\n {\n body: {\n id: data.orderId,\n owner_gln: data.ownerGln,\n pickpoint_gln: data.glnPvz,\n mol_name: data.molName,\n },\n },\n )\n\n return result.data\n },\n\n confirmOrder: async (orderId: number, willOpen: boolean) => {\n const queryUrl = getQueryUrl({\n will_open: willOpen,\n })\n\n return await discoveryService.post(`api/v4/order/open/confirm/${orderId}?${queryUrl}`)\n },\n\n checkOrderAddress: async (data: CheckOrderAddressRequest): Promise => {\n const result = await discoveryService.post>('/api/v4/check/address', {\n body: {\n lat_long: {\n latitude: data.coordinates.latitude,\n longitude: data.coordinates.longitude,\n },\n country: data.country,\n city_id: data.cityId,\n city_name: data.cityName,\n house: data.house,\n street: data.street,\n region: data.region,\n },\n })\n\n return result.data\n },\n\n assignReferralCode: async (orderId: number, referralCode: string): Promise => {\n const result = await discoveryService.post<{ success: boolean }>(`/api/v4/pickpoint/referral/${orderId}/assign`, {\n body: {\n referral_code: referralCode,\n },\n })\n\n return result.success\n },\n\n getFurnitureOrderType: async (orderId: number): Promise<{ orderScheme: FurnitureOrderType }> => {\n const result = await discoveryService.get>(\n `/api/v4/order/${orderId}/furniture`,\n )\n return convertKeysToCamelCase(result?.data)\n },\n\n getSubsidy: async (coordinates: Coordinate, tariff: number): Promise => {\n const queryUrl = getQueryUrl({\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n tariff,\n })\n\n const result = await discoveryService.get(`/api/v4/pickpoint/subsidy?${queryUrl}`)\n\n return convertKeysToCamelCase(result?.subsidy_info)\n },\n\n getPaymentDeadline: async (orderId: number): Promise<{ seconds: number }> => {\n const result = await discoveryService.get(`/api/v4/pickpoint/${orderId}/removal_time`)\n return result?.time_remaining\n },\n}\n","import { notification } from 'antd'\nimport { makeAutoObservable } from 'mobx'\n\nimport { ordersApi } from '../../../api'\nimport { OrderCCTVModel } from './OrderCCTVModel'\n\nexport class OrderCCTVApiStore {\n constructor(protected readonly model: OrderCCTVModel) {\n makeAutoObservable(this)\n }\n\n async validateCCTVInfo(pvzId: number) {\n if (!this.model.vendorValue) {\n return\n }\n\n try {\n const res = await ordersApi.validateCCTVInfo({\n externalPickPointId: pvzId,\n vendor: this.model.vendorValue,\n url: this.model.url.trim(),\n login: this.model.login.trim(),\n password: this.model.password,\n token: this.model.token,\n description: this.model.description.trim(),\n })\n\n this.model.setValidateCCTVResult(res)\n\n if (!res.isValidated) {\n notification.error({\n message: 'Ошибка валидации',\n description: 'Для успешной валидации нужно произвести настройки в видеосервисе согласно инструкции',\n })\n\n return false\n }\n\n if (!res.cameraCheck) {\n notification.error({\n message: 'Количество переданных камер меньше 3',\n })\n }\n\n if (!res.statusCheck) {\n notification.error({\n message: 'Имеются выключенные камеры',\n })\n }\n\n if (!res.archiveCheck) {\n notification.error({\n message: 'Имеются камеры с нарушениями по глубине хранения видео архива',\n })\n }\n\n if (!res.archiveCheck || !res.cameraCheck || !res.statusCheck) {\n return false\n }\n\n return true\n } catch (error) {\n return true\n }\n }\n\n async addCCTVInfo(orderId: number) {\n try {\n await ordersApi.addCCTVInfo({\n orderId,\n url: this.model.url.trim(),\n login: this.model.login.trim(),\n password: this.model.password,\n description: this.model.description.trim(),\n })\n } catch (error) {\n throw new Error(`Не удалось сохранить данные о видеонаблюдении. ${(error as Error).message}`)\n }\n }\n\n async getVendorList() {\n try {\n const res = await ordersApi.getVendorList()\n this.model.setVendorList(res)\n } catch (error) {\n throw new Error(`Не удалось получить список поставщиков. ${(error as Error).message}`)\n }\n }\n\n async getCCTVInfo(orderId: number) {\n try {\n const result = await ordersApi.getCCTVInfo(orderId)\n\n if (result) {\n this.model.initCCTVInfo(result)\n }\n } catch (error) {\n notification.error({ message: `Не удалось получить данные о видеонаблюдении. ${(error as Error).message}` })\n }\n }\n}\n","import { isEqual } from 'lodash'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport { CCTVInfoDTO, ValidateCCTVInfoDTO, VendorList } from '../../../types'\nimport { OrderCCTVApiStore } from './OrderCCTVApiStore'\nimport { OrderCCTVInitialStateType } from './types'\n\nexport class OrderCCTVModel {\n @observable vendorList: VendorList[] = []\n @observable vendorValue: number | null = null\n\n @observable url = ''\n @observable login = ''\n @observable password = ''\n @observable token = ''\n @observable description = ''\n\n @observable validateCCTVResult: ValidateCCTVInfoDTO | null = null\n @observable showCCTVModal = false\n @observable initializedCCTVInfo = false\n\n private initialState: OrderCCTVInitialStateType | null = null\n\n readonly apiStore = new OrderCCTVApiStore(this)\n\n constructor() {\n makeAutoObservable(this)\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n @computed\n get invalidUrl() {\n return this.url && !WEB_LINK_REGEXP.test(this.url)\n }\n\n @computed\n get hasToken() {\n return this.vendorList.find((vendor) => vendor.id === this.vendorValue)?.hasToken\n }\n\n get hashFormState(): OrderCCTVInitialStateType {\n return {\n vendorValue: this.vendorValue,\n url: this.url.trim(),\n login: this.login.trim(),\n password: this.password.trim(),\n token: this.token.trim(),\n description: this.description.trim(),\n }\n }\n\n initCCTVInfo = async (value: CCTVInfoDTO) => {\n this.setUrl(value.url)\n this.setLogin(value.login)\n this.setPassword(value.password)\n this.setDescription(value.description)\n this.setInitialState(this.hashFormState)\n this.setInitializedCCTVInfo(true)\n }\n\n @action\n setInitialState = (value: OrderCCTVInitialStateType | null) => {\n this.initialState = value\n }\n\n @action\n setVendorList = (value: VendorList[]) => {\n this.vendorList = value\n }\n\n @action\n setVendorValue = (value: number | null) => {\n this.vendorValue = value\n }\n\n @action\n setUrl = (value: string) => {\n this.url = value\n }\n\n @action\n setLogin = (value: string) => {\n this.login = value\n }\n\n @action\n setPassword = (value: string) => {\n this.password = value\n }\n\n @action\n setToken = (value: string) => {\n this.token = value\n }\n\n @action\n setDescription = (value: string) => {\n this.description = value\n }\n\n @action\n setValidateCCTVResult = (value: ValidateCCTVInfoDTO) => {\n this.validateCCTVResult = value\n }\n\n @action\n setShowCCTVModal = (value: boolean) => {\n this.showCCTVModal = value\n }\n\n @action\n setInitializedCCTVInfo = (value: boolean) => {\n this.initializedCCTVInfo = value\n }\n\n @action\n resetCCTVInfo = () => {\n this.setVendorValue(null)\n this.setUrl('')\n this.setLogin('')\n this.setPassword('')\n this.setToken('')\n this.setDescription('')\n this.setInitializedCCTVInfo(false)\n }\n\n async getVendorList() {\n return await this.apiStore.getVendorList()\n }\n\n async validateCCTVInfo(pvzId: number) {\n return await this.apiStore.validateCCTVInfo(pvzId)\n }\n\n async addCCTVInfo(orderId: number) {\n return await this.apiStore.addCCTVInfo(orderId)\n }\n\n async getCCTVInfo(orderId: number) {\n return await this.apiStore.getCCTVInfo(orderId)\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { makeAutoObservable } from 'mobx'\nimport { captureException } from '@sentry/react'\n\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nimport { ordersApi } from '../../api'\nimport { OrderKeys } from '../../data'\nimport { OrderStatus } from '../../types'\nimport { ActivateOrderUiStore } from './ActivateOrderUiStore'\n\nconst getKey = (key: string) => `${OrderKeys.orderModule}.api.${key}`\n\nexport class ActivateOrderApiStore {\n constructor(protected readonly uiStore: ActivateOrderUiStore) {\n makeAutoObservable(this)\n }\n\n async updateOrder(orderId: number, disableLoadList: boolean = false) {\n if (!this.uiStore.selectedOrder) {\n return\n }\n\n const actualUrls = await this.uiStore.fileList.processFiles(this.uiStore.selectedOrder)\n const status = this.uiStore.selectedOrder?.status\n\n if (!actualUrls) {\n captureException(`Ошибка загрузки файлов для активации заявки № ${orderId}`)\n throw new Error(i18next.t(getSharedKey('api.filesUploadError')))\n }\n\n try {\n await this.uiStore.rootStore.orderStore.updateOrder(\n {\n id: orderId,\n actualUrls,\n signboardSize: this.uiStore.signboardSizeItem?.value,\n signboardFormat: this.uiStore.signboardFormatItem?.value,\n comment: this.uiStore.comment.trim(),\n glnPvz: this.uiStore.glnPvz.trim(),\n molName: this.uiStore.molName.trim(),\n ownerGln: this.uiStore.ownerGln.trim(),\n },\n disableLoadList,\n )\n\n if (status === OrderStatus.remarkFromActivate) {\n notification.success({ message: i18next.t(getKey('updateOrderSuccess'), { count: orderId }) })\n }\n } catch (error) {\n captureException(`Не удалось обновить заявку для активации заявки № ${orderId}`)\n throw new Error(i18next.t(getSharedKey('api.filesUploadError')))\n }\n }\n\n async makeOrderReadyActivate(orderId: number) {\n try {\n await ordersApi.makeOrderReadyActivate({\n orderId,\n glnPvz: this.uiStore.glnPvz.trim(),\n molName: this.uiStore.molName.trim(),\n ownerGln: this.uiStore.ownerGln.trim(),\n })\n notification.success({ message: i18next.t(getKey('activateOrderSuccess'), { count: orderId }) })\n } catch (error) {\n captureException(`Не удалось отправить заявку № ${orderId} на активацию. ${(error as Error).message}`)\n throw new Error(`${i18next.t(getKey('makeOrderReadyActivateError'))}. ${(error as Error).message}`)\n }\n }\n}\n","import { isEqual } from 'lodash'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { signboardFormatOptions, signboardSizeOptions } from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { PickPointFilesViewModel } from 'sections/LKSection/shared/PickPointSharedModule/models/PickPointFilesViewModel'\nimport { BaseOption } from 'shared/types/types'\n\nimport { SignboardFormat, SignboardSize } from '../../types'\nimport { OrderCCTVModel } from '../models/OrderCCTVModel/OrderCCTVModel'\nimport { ActivateOrderApiStore } from './ActivateOrderApiStore'\nimport { OrderActivateInitialStateType } from './types'\n\nexport class ActivateOrderUiStore {\n @observable selectedStep = 1\n\n @observable signboardSizeItem: BaseOption | null = null\n @observable signboardFormatItem: BaseOption | null = null\n @observable comment = ''\n @observable initialized = false\n\n @observable fileList = new PickPointFilesViewModel()\n @observable cctv = new OrderCCTVModel()\n\n @observable ownerGln = ''\n @observable glnPvz = ''\n @observable molName = ''\n\n readonly apiStore = new ActivateOrderApiStore(this)\n private initialState: OrderActivateInitialStateType | null = null\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n @computed\n get selectedOrder() {\n return this.rootStore.viewOrderUiStore.selectedOrder\n }\n\n @computed\n get orderId() {\n return this.rootStore.viewOrderUiStore.selectedOrder?.id\n }\n\n @computed\n get pvzId() {\n return this.rootStore.viewOrderUiStore.selectedOrder?.pickpointId\n }\n\n get hashFormState(): OrderActivateInitialStateType {\n const fileList = this.fileList\n\n return {\n signboardSize: this.signboardSizeItem?.value,\n signboardFormat: this.signboardFormatItem?.value,\n videos: fileList.videos.map((video) => video.url),\n documents: fileList.documents.map((document) => document.url),\n photos: fileList.photos.map((photo) => ({ url: photo.url, isPublic: photo.isPublic })),\n vendorValue: this.cctv.vendorValue,\n url: this.cctv.url.trim(),\n login: this.cctv.login.trim(),\n password: this.cctv.password.trim(),\n token: this.cctv.token.trim(),\n description: this.cctv.description.trim(),\n comment: this.comment.trim(),\n ownerGln: this.ownerGln.trim(),\n glnPvz: this.glnPvz.trim(),\n molName: this.molName.trim(),\n }\n }\n\n init = async () => {\n if (!this.selectedOrder?.id) {\n return\n }\n\n const order = this.selectedOrder\n\n this.setSignboardSizeItem(signboardSizeOptions.find((size) => size.value === order.signboardSize) || null)\n this.setSignboardFormatItem(signboardFormatOptions.find((format) => format.value === order.signboardFormat) || null)\n\n this.setGlnPvz(order.glnPvz)\n this.setMolName(order.molName)\n this.setOwnerGln(order.ownerGln)\n\n if (order.videos?.length && order.videos[0]?.url) {\n this.fileList.setVideoURL(order.videos[0].url)\n }\n this.fileList.setPhotos([...order.photos, ...order.documents])\n\n this.setInitialState(this.hashFormState)\n\n this.setInitialized(true)\n }\n\n @action\n setSelectedStep = (value: number) => {\n this.selectedStep = value\n }\n\n @action\n setSignboardSizeItem = (value: BaseOption | null) => {\n this.signboardSizeItem = value\n }\n\n @action\n setSignboardFormatItem = (value: BaseOption | null) => {\n this.signboardFormatItem = value\n }\n\n @action\n setInitialState = (value: OrderActivateInitialStateType | null) => {\n this.initialState = value\n }\n\n @action\n setComment = (value: string) => {\n this.comment = value\n }\n\n @action\n setInitialized(value: boolean) {\n this.initialized = value\n }\n\n @action\n setOwnerGln = (value: string) => {\n this.ownerGln = value\n }\n\n @action\n setGlnPvz = (value: string) => {\n this.glnPvz = value\n }\n\n @action\n setMolName = (value: string) => {\n this.molName = value\n }\n\n @action\n resetBYCompanyInfo = () => {\n this.setOwnerGln('')\n this.setGlnPvz('')\n this.setMolName('')\n }\n\n @action\n reset = () => {\n this.setSignboardSizeItem(null)\n this.setSignboardFormatItem(null)\n this.setComment('')\n this.setInitialized(false)\n this.resetBYCompanyInfo()\n\n this.fileList.reset()\n this.cctv.resetCCTVInfo()\n }\n\n async updateOrder(orderId: number, disableLoadList: boolean = false) {\n return await this.apiStore.updateOrder(orderId, disableLoadList)\n }\n\n async makeOrderReadyActivate(orderId: number) {\n return await this.apiStore.makeOrderReadyActivate(orderId)\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { CityDTO, StreetDTO } from 'services/yandexApi/types'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { ordersApi } from '../../api'\nimport { OrderKeys, subsidySumKey } from '../../data'\nimport { Coordinate, CouriersAccess, PickPointLocation, SubsidyHexType, SubsidyInfo } from '../../types'\nimport { getOrderModuleKey } from '../../utils'\n\nexport class OrderLocationViewModel {\n @observable pickPointType: PickPointType | null = null\n\n @observable cityItem: CityDTO | null = null\n @observable cityOptions: CityDTO[] = []\n @observable street: string = ''\n @observable streetOptions: StreetDTO[] = []\n @observable streetItem: StreetDTO | null = null\n @observable house: string = ''\n @observable houseWasSelected: boolean = false\n @observable coordinates: Coordinate = {\n longitude: '',\n latitude: '',\n }\n\n @observable subsidyHexTypeItem: BaseOption | null = null\n @observable subsidyInfo: SubsidyInfo[] = []\n @observable isSubsidyLoading = false\n\n @observable description: string = ''\n @observable courierWay: string = ''\n @observable couriersAccess: CouriersAccess = CouriersAccess.fulltime\n @observable floorLevel = PickPointLocation.firstFloor\n @observable entrance = PickPointLocation.firstLine\n\n constructor() {\n makeAutoObservable(this)\n }\n\n @computed\n get streetHouse() {\n let street = this.street\n\n if (this.streetItem !== null && this.house !== null && this.house.trim().length > 0) {\n street = `${street}, ${this.house}`\n }\n\n return street\n }\n\n getSubsidyTypeOptions = (country: Country) => {\n return this.subsidyInfo.map((subsidy) => {\n const subsidyKeyTranslated = i18next.t(`${OrderKeys.orderModule}.${subsidy.subsidyType}`)\n const subsidySumKeyTranslated = i18next.t(`${OrderKeys.orderModule}.${subsidySumKey[country]}`)\n\n const subsidyLabel =\n subsidy.subsidyType === SubsidyHexType.single\n ? `${subsidyKeyTranslated} ${subsidySumKeyTranslated}`\n : subsidyKeyTranslated\n\n return {\n value: subsidy.subsidyType,\n label: subsidyLabel,\n }\n })\n }\n\n getSubsidyItem = (country: Country) => {\n return this.getSubsidyTypeOptions(country).find((item) => item.value === this.subsidyHexTypeItem?.value)\n }\n\n @action\n setPickPointType = (value: PickPointType | null) => {\n this.pickPointType = value\n }\n\n @action\n setCityOptions = (value: CityDTO[]) => {\n this.cityOptions = value\n }\n\n @action\n setStreetOptions = (value: StreetDTO[]) => {\n this.streetOptions = value\n }\n\n @action\n setCityItem = (item: CityDTO | null) => {\n this.cityItem = item\n }\n\n @action\n setStreetItem = (value: StreetDTO | null, changeCoordinates: boolean = true) => {\n this.streetItem = value\n\n if (value == null) {\n this.setHouseWasSelected(false)\n this.setCoordinates({ latitude: '', longitude: '' })\n } else {\n this.setAddress(value)\n\n if (changeCoordinates) {\n this.setCoordinates({ latitude: value.lat || '', longitude: value.lng || '' })\n }\n }\n }\n\n @action\n setStreet = (value: string) => {\n this.street = value\n }\n\n @action\n setHouse = (value: string) => {\n this.house = value\n }\n\n @action\n setAddress = (value: StreetDTO) => {\n if (value.house) {\n this.setHouseWasSelected(true)\n\n this.setStreet(value.street)\n\n if (typeof value.street === 'string' && value.street.trim().length === 0) {\n const streetWithoutHouse = value.name\n .split(',')\n .map((x) => x.trim())\n .filter((x) => x !== value.house)\n .join(', ')\n\n this.setStreet(streetWithoutHouse)\n } else if (!value.name.includes(value.street)) {\n this.setStreet(value.name.split(',')[0] || value.street)\n }\n\n this.setHouse(value.house)\n } else if (value.kind === 'district') {\n this.setStreet(value.name)\n } else {\n this.setStreet(value.street)\n }\n }\n\n @action\n setCoordinates = (value: Coordinate) => {\n this.coordinates = value\n }\n\n @action\n setSubsidyHexTypeItem = (value: BaseOption | null) => {\n this.subsidyHexTypeItem = value\n }\n\n @action\n setSubsidyInfo = (value: SubsidyInfo[]) => {\n this.subsidyInfo = value\n }\n\n @action\n setIsSubsidyLoading = (value: boolean) => {\n this.isSubsidyLoading = value\n }\n\n @action\n setDescription = (value: string) => {\n this.description = value\n }\n\n @action\n setCourierWay = (value: string) => {\n this.courierWay = value\n }\n\n @action\n setFloorLevel = (value: PickPointLocation) => {\n this.floorLevel = value\n }\n\n @action\n setEntrance = (value: PickPointLocation) => {\n this.entrance = value\n }\n\n @action\n setCouriersAccess = (value: CouriersAccess) => {\n this.couriersAccess = value\n }\n\n @action\n private setHouseWasSelected = (value: boolean) => {\n this.houseWasSelected = value\n }\n\n @action\n resetSubsidy = () => {\n this.setSubsidyHexTypeItem(null)\n this.setSubsidyInfo([])\n }\n\n @action\n resetAddress = () => {\n this.setStreet('')\n this.setStreetOptions([])\n this.setStreetItem(null)\n this.setHouseWasSelected(false)\n this.setHouse('')\n this.setCoordinates({\n longitude: '',\n latitude: '',\n })\n }\n\n @action\n reset = () => {\n this.setPickPointType(null)\n this.setCityItem(null)\n this.setCityOptions([])\n this.resetAddress()\n this.resetSubsidy()\n this.setDescription('')\n this.setCourierWay('')\n this.setCouriersAccess(CouriersAccess.fulltime)\n this.setFloorLevel(PickPointLocation.firstFloor)\n this.setEntrance(PickPointLocation.firstLine)\n }\n\n async getSubsidy(tariff: number) {\n try {\n this.setIsSubsidyLoading(true)\n const res = await ordersApi.getSubsidy(this.coordinates, tariff)\n this.setSubsidyInfo(res)\n } catch (error) {\n notification.error({\n message: i18next.t(getOrderModuleKey('api.getSubsidyError')),\n description: (error as Error).message,\n })\n } finally {\n this.setIsSubsidyLoading(false)\n }\n }\n}\n","import { isEqual } from 'lodash'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport { Pvz } from 'sections/LKSection/modules/PvzModule/stores/entity/Pvz'\nimport {\n DEFAULT_END_TIME,\n DEFAULT_GENERAL_TIME,\n DEFAULT_START_TIME,\n DEFAULT_WEEK_DAYS,\n MIN_OPENING_HOURS,\n} from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Timetable, TimetableDays, WeekDays } from 'sections/LKSection/shared/PickPointSharedModule/types'\n\nimport { getTimetableModel } from '../../utils'\nimport { InitialTimetableModelStateType } from './types'\n\nexport class TimetableModel {\n @observable timetableStart = DEFAULT_START_TIME\n @observable timetableEnd = DEFAULT_END_TIME\n @observable timetableGeneral = DEFAULT_GENERAL_TIME\n @observable weekDays: WeekDays[] = DEFAULT_WEEK_DAYS\n @observable timetableUpdateReason = ''\n\n @observable initialized = false\n\n private initialState: InitialTimetableModelStateType | null = null\n\n constructor() {\n makeAutoObservable(this)\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n @computed\n get hashFormState(): InitialTimetableModelStateType {\n return {\n timetableStart: this.timetableStart,\n timetableEnd: this.timetableEnd,\n timetableGeneral: this.timetableGeneral,\n weekDays: this.weekDays,\n }\n }\n\n @computed\n get invalidOpeningHours() {\n const endHours = Number(this.timetableEnd.split(':')[0])\n const startHours = Number(this.timetableStart.split(':')[0])\n const endMinutes = Number(this.timetableEnd.split(':')[1])\n const startMinutes = Number(this.timetableStart.split(':')[1])\n\n return (\n endHours - startHours < MIN_OPENING_HOURS ||\n (endHours - startHours === MIN_OPENING_HOURS && endMinutes - startMinutes < 0)\n )\n }\n\n @computed\n getTimetable(pickPointType: PickPointType, floorLevel: PickPointLocation): Timetable {\n const [start, end] =\n pickPointType === PickPointType.partner && floorLevel !== PickPointLocation.shoppingMall\n ? this.timetableGeneral.split('-')\n : [this.timetableStart, this.timetableEnd]\n\n const openClose = { open: start, close: end }\n\n const days: TimetableDays = {}\n\n for (const day of this.weekDays) {\n days[day.value] = { ...openClose, is_day_off: day.isDayOff }\n }\n\n return {\n daily: openClose,\n sat: openClose,\n sun: openClose,\n week: {\n days,\n },\n }\n }\n\n init = (pvz: Pvz) => {\n const timetableModel = getTimetableModel(pvz.timetable)\n const timetable = timetableModel.daily\n const days = timetableModel.week?.days\n\n const weekDays = this.weekDays.map((day) => {\n const isDayOff = days?.[day.value].is_day_off ?? false\n return { ...day, isDayOff }\n })\n\n this.setTimetableStart(timetable.open)\n this.setTimetableEnd(timetable.close)\n this.setTimetableGeneral(`${timetable.open}-${timetable.close}`)\n this.setWeekDays(weekDays)\n\n this.setInitialState(this.hashFormState)\n this.setInitialized(true)\n }\n\n @action\n setTimetableStart = (value: string) => {\n this.timetableStart = value\n }\n\n @action\n setTimetableEnd = (value: string) => {\n this.timetableEnd = value\n }\n\n @action\n setTimetableGeneral = (value: string) => {\n this.timetableGeneral = value\n }\n\n @action\n setWeekDays = (value: WeekDays[]) => {\n this.weekDays = value\n }\n\n @action\n setTimetableUpdateReason = (value: string) => {\n this.timetableUpdateReason = value\n }\n\n @action\n setInitialState = (value: InitialTimetableModelStateType) => {\n this.initialState = value\n }\n\n @action\n setInitialized(value: boolean) {\n this.initialized = value\n }\n\n @action\n reset = () => {\n this.setTimetableStart(DEFAULT_START_TIME)\n this.setTimetableEnd(DEFAULT_END_TIME)\n this.setTimetableGeneral(DEFAULT_GENERAL_TIME)\n this.setWeekDays(DEFAULT_WEEK_DAYS)\n }\n}\n","import { action, makeAutoObservable, observable } from 'mobx'\n\nimport { TimetableModel } from 'sections/LKSection/shared/PickPointSharedModule/models/TimetableModel/TimetableModel'\n\nexport class OrderWorkConditionsViewModel {\n @observable area: string | null = null\n @observable warehouseArea: string | null = null\n @observable dressingRoomsCount: string | null = null\n @observable cellingHeight: string | null = null\n\n @observable timetable = new TimetableModel()\n\n constructor() {\n makeAutoObservable(this)\n }\n\n @action\n setArea = (value: string | null) => {\n this.area = value\n }\n\n @action\n setWarehouseArea = (value: string | null) => {\n this.warehouseArea = value\n }\n\n @action\n setDressRoomsCount = (value: string | null) => {\n this.dressingRoomsCount = value\n }\n\n @action\n setCellingHeight = (value: string | null) => {\n this.cellingHeight = value\n }\n\n @action\n reset = () => {\n this.setArea(null)\n this.setWarehouseArea(null)\n this.setDressRoomsCount(null)\n this.setCellingHeight(null)\n this.timetable.reset()\n }\n}\n","import { EventType, WbaEventParams } from 'types/types'\n\nexport const sendEvent = (eventName: EventType, params?: WbaEventParams): void => {\n if (typeof window.wba === 'function') {\n window.wba(eventName, params)\n } else {\n console.warn(`Analytics script is not loaded. Event \"${eventName}\" was not sent.`)\n }\n}\n","import { eLockInfo } from 'sections/PromoSection/modules/ELockModule/components/Description/types'\nimport { ConferenceDataType } from 'sections/PromoSection/pages/ConferencesPage/types'\nimport { SortingCenterType } from 'sections/PromoSection/pages/ListPages/ListSignBoardsSortingCentersPage/types'\n\nexport type LinkType = {\n href: string\n hrefText: string\n linkType?: 'hash' | 'search' | 'pathname'\n path?: string\n download?: boolean\n target?: '_blank' | '_self'\n img?: string\n}\n\nexport type InputRangeData = {\n title: string\n minValue: number\n maxValue: number\n stepValue: number\n defaultValue: number\n}\n\nexport type ErrorResponseData = {\n error: {\n code: string\n data?: { key: string; value: string }[]\n message?: string\n }\n}\n\nexport type PropType = TObj[TProp]\n\nexport type FaqData = {\n index: number\n answer: string\n question: string\n} & Partial\n\nexport type ConferenceData = {\n conferenceData: ConferenceDataType\n description: string\n}\n\nexport type SortingCentersData = {\n sortingCentersData: SortingCenterType[]\n}\n\nexport enum SectionName {\n faq = 'Faq',\n contractors = 'Contractors',\n conferences = 'Conferences',\n sortingCenters = 'SortingCenters',\n elock = 'ELock',\n}\n\nexport type ElockData = {\n elockTableData: eLockInfo[]\n elockHowToInstallData: ElockHowToInstallData[]\n}\n\nexport type ElockHowToInstallData = {\n installationInstructions: string\n controllerDescription: string\n index: number\n}\n\nexport type ContractorDataItemType = {\n index: number\n img: string\n title: string\n description: string\n link: string\n additionalLink: string\n email: string\n downloadLink: string\n phone: string\n}\n\nexport type VideoMonitoringContractorDataItem = {\n index: number\n title: string\n websiteLink: string\n instructionsLink: string\n}\n\nexport type VideoMonitoringCountryData = {\n index: number\n country: string\n contractors: VideoMonitoringContractorDataItem[]\n}\n\nexport type ContractorData = {\n videoConnectionData: VideoMonitoringCountryData[]\n signboardData: ContractorDataItemType[]\n outsourcingData: ContractorDataItemType[]\n description: string\n}\n\nexport type SectionContent = {\n title: string\n visible: boolean\n data: SectionData\n}\n\nexport type SectionData = FaqData[] | ContractorData | ConferenceData | SortingCentersData | ElockData\n\nexport type SectionDTO = {\n content: SectionData\n index: number\n title: string\n type: SectionName\n}\n\nexport type SectionsDTO = {\n sections: SectionDTO[]\n}\n\nexport interface WbaEventParams {\n [key: string]: string | number | boolean\n}\n\ninterface WbaFunction {\n (eventName: string, params?: WbaEventParams): void\n}\n\ndeclare global {\n interface Window {\n wba: WbaFunction\n wbaQueue: Array<[string, WbaEventParams]>\n _wba?: WbaFunction\n ReactNativeWebView: {\n postMessage: (message: string) => void\n }\n }\n}\n\nexport const enum EventType {\n HeaderT = 'Header_T',\n MainFormPUPT = 'Main_Form_PUP_T',\n MainCartPUPT = 'Main_Cart_PUP_T',\n MainFormPUPSend = 'Main_Form_PUP_Send',\n MainFindRoomT = 'Main_Find_Room_T',\n MainSendRequestT = 'Main_Send_Request_T',\n createOrder = 'Create_Application_T',\n orderStep = 'Create_Application_Response',\n registration = 'Register_Step_Response',\n}\n\nexport const enum AdriverEventType {\n allQuestions = 'Vse_voprosy_i_otvety',\n openMap = 'Otkryt_kartu',\n openMapSimplifiedPage= 'Otkryt_kartu_uproshennye',\n showVariants = 'Posmotret_varianty',\n downloadChecklist = 'Skachat_chek-list_po_otkrytiyu_PVZ',\n socialIcons = 'Ssylki_na_soc_seti',\n findOutMore = 'Uznat_podrobnee',\n openPVZ = 'Otkryt_PVZ',\n openPVZHeader = 'Otkryt_PVZ_header',\n openPVZSimplifiedPage = 'Otkryt_PVZ_uproshennye',\n}\n\nexport interface PromoSiteContactRequest {\n phoneNumber: string\n email: string\n telegram: string\n message: string\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeAutoObservable } from 'mobx'\nimport { captureException } from '@sentry/react'\n\nimport { FileEntityType } from 'services/FileService'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { getActualUrls } from 'sections/LKSection/shared/PickPointSharedModule/utils'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { EventType } from 'types/types'\n\nimport { ordersApi } from '../../api'\nimport { OrderKeys } from '../../data'\nimport { GetTariffsRequest, OrderStatus } from '../../types'\nimport { CreateOrderUiStore } from './CreateOrderUiStore'\n\nconst getKey = (key: string) => `${OrderKeys.createOrderPage}.api.${key}`\n\nexport class CreateOrderApiStore {\n constructor(protected readonly uiStore: CreateOrderUiStore) {\n makeAutoObservable(this)\n }\n\n @action\n createOrder = async () => {\n this.uiStore.setIsLoading(true)\n\n let orderId: number = 0\n const location = this.uiStore.location\n\n if (!this.uiStore.hasErrorWithFiles) {\n try {\n if (location.cityItem) {\n const res = await ordersApi.createOrder({\n actualUrls: '',\n area: +(this.uiStore.workConditions.area || 0),\n warehouseArea: +(this.uiStore.workConditions.warehouseArea || 0),\n cellingHeight: +(this.uiStore.workConditions.cellingHeight || 0),\n dressingRoomsCount: +(this.uiStore.workConditions.dressingRoomsCount || 0),\n phone: this.uiStore.getUserPhone,\n timetable: JSON.stringify(\n this.uiStore.workConditions.timetable.getTimetable(\n location.pickPointType ?? PickPointType.partner,\n location.floorLevel,\n ),\n ),\n exPickPointId: this.uiStore.exPickPointId || undefined,\n locations: [location.floorLevel, location.entrance],\n description: location.description,\n courierWay: location.courierWay,\n accessType: location.couriersAccess,\n cityId: location.cityItem.id,\n cityName: location.cityItem.prefix,\n country: this.uiStore.companyCountry,\n district: location.cityItem.name,\n house: location.house,\n latitude: location.coordinates.latitude,\n longitude: location.coordinates.longitude,\n region: location.cityItem.formattedAddress.split(', ')[1],\n street: location.street,\n pickPointType: location.pickPointType || PickPointType.none,\n subsidyHexType: location.subsidyHexTypeItem?.value,\n })\n\n orderId = res.data\n } else {\n throw new Error()\n }\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.createOrderError')),\n description: (error as Error).message,\n })\n sendEvent(EventType.orderStep, {\n step: 4,\n success: 0,\n reason: `Ошибка создания заявки: ${(error as Error).message}`,\n })\n captureException(`Ошибка создания заявки: ${(error as Error).message}`)\n\n return false\n } finally {\n this.uiStore.setIsLoading(false)\n }\n }\n\n const videos = this.uiStore.fileList.videos.filter((video) => video?.url)\n const photos = this.uiStore.fileList.photos.filter((photo) => photo?.url)\n const documents = this.uiStore.fileList.documents.filter((document) => document?.url)\n\n let actualUrls: string | null = ''\n\n try {\n const [savedVideos, savedPhotos, savedDocuments] = await Promise.all([\n this.uiStore.fileList.uploadVideo(orderId, videos, FileEntityType.pickPointOrder),\n this.uiStore.fileList.uploadPhotos(orderId, photos, FileEntityType.pickPointOrder),\n this.uiStore.fileList.uploadPhotos(orderId, documents, FileEntityType.pickPointOrder, true),\n ])\n\n actualUrls = getActualUrls(savedPhotos, savedVideos, savedDocuments)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('fileUploadError')),\n description: (error as Error).message,\n })\n\n sendEvent(EventType.orderStep, {\n step: 4,\n success: 0,\n reason: `Ошибка загрузки файлов для заявки: ${(error as Error).message}`,\n })\n captureException(`Ошибка загрузки файлов для заявки № ${orderId}: ${(error as Error).message}`)\n this.uiStore.setHasErrorWithFiles(true)\n\n return false\n }\n\n try {\n if (actualUrls) {\n await this.uiStore.orderStore.updateOrder({\n id: orderId,\n actualUrls,\n })\n\n notification.success({ message: i18next.t(getKey('createOrderSuccess'), { orderId }) })\n this.uiStore.setHasErrorWithFiles(false)\n\n return orderId\n } else {\n return false\n }\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('addFilesToOrderError')),\n description: (error as Error).message,\n })\n\n sendEvent(EventType.orderStep, {\n step: 4,\n success: 0,\n reason: `Ошибка добавления файлов к заявке: ${(error as Error).message}`,\n })\n captureException(`Ошибка добавления файлов к заявке № ${orderId}: ${(error as Error).message}`)\n this.uiStore.setHasErrorWithFiles(true)\n\n return false\n } finally {\n this.uiStore.setIsLoading(false)\n }\n }\n\n async getTariffs({ area, lat, lon, typePoint }: GetTariffsRequest) {\n try {\n const result = await ordersApi.getTariffs({\n area,\n lat,\n lon,\n typePoint,\n })\n\n let tariff = ''\n\n if (result) {\n this.uiStore.setTariff(result.tariff)\n\n try {\n tariff = JSON.parse(result.tariffDescription)\n } catch {\n tariff = result.tariffDescription\n }\n } else {\n notification.error({\n message: i18next.t(getKey('calculateTariffError')),\n })\n }\n\n return tariff\n } catch (error) {\n notification.error({ message: i18next.t(getKey('getTariffError')), description: (error as Error).message })\n }\n }\n\n @action\n async publishOrder(orderId: number) {\n try {\n const result = await ordersApi.publishOrder(orderId)\n\n this.uiStore.setOrderId(null)\n\n if (result.status === OrderStatus.created) {\n notification.success({\n message: i18next.t(getKey('publishOrderSuccess')),\n })\n }\n\n this.uiStore.rootStore.orderStore.loadList()\n\n return result\n } catch (error) {\n this.uiStore.setOrderId(null)\n notification.error({\n message: i18next.t(getKey('publishOrderError')),\n description: (error as Error).message,\n })\n }\n }\n\n @action\n async checkOrderAddress() {\n const location = this.uiStore.location\n\n try {\n if (location.cityItem) {\n const result = await ordersApi.checkOrderAddress({\n cityId: location.cityItem.id.toString(),\n cityName: location.cityItem.prefix,\n country: this.uiStore.companyCountry,\n house: location.house,\n region: location.cityItem.formattedAddress.split(', ')[1],\n street: location.street,\n coordinates: {\n latitude: +location.coordinates.latitude,\n longitude: +location.coordinates.longitude,\n },\n })\n\n return result\n }\n } catch (error) {\n sendEvent(EventType.orderStep, {\n step: 2,\n success: 0,\n reason: `Выбранный адрес не подходит: ${(error as Error).message}`,\n })\n\n notification.error({\n message: i18next.t(getKey('checkOrderAddressError')),\n description: (error as Error).message,\n })\n return false\n }\n }\n}\n","import { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { clearLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { IRootStore } from 'store/types'\nimport { PickPointFilesViewModel } from 'sections/LKSection/shared/PickPointSharedModule/models/PickPointFilesViewModel'\n\nimport { GetTariffsRequest } from '../../types'\nimport { OrderLocationViewModel } from '../models/OrderLocationViewModel'\nimport { OrderWorkConditionsViewModel } from '../models/OrderWorkConditionsViewModel'\nimport { CreateOrderApiStore } from './CreateOrderApiStore'\n\nexport class CreateOrderUiStore {\n @observable selectedStep = 1\n @observable isLoading = false\n @observable hasErrorWithFiles = false\n @observable orderId: number | null = null\n @observable tariff = 0\n\n @observable agreedWithRequirements = false\n\n /** Признак переезда */\n @observable exPickPointId: number | null = null\n\n @observable readonly location = new OrderLocationViewModel()\n @observable readonly fileList = new PickPointFilesViewModel()\n @observable readonly workConditions = new OrderWorkConditionsViewModel()\n\n @observable readonly apiStore = new CreateOrderApiStore(this)\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n }\n\n @computed\n get orderStore() {\n return this.rootStore.orderStore\n }\n\n @computed\n get companyCountry() {\n return this.rootStore.appStore.companyCountry\n }\n\n @computed\n get getUserPhone() {\n return this.rootStore.appStore.user.info.phone\n }\n\n @action\n setSelectedStep = (value: number) => {\n this.selectedStep = value\n }\n\n @action\n setAgreedWithRequirements = (value: boolean) => {\n this.agreedWithRequirements = value\n }\n\n @action\n setIsLoading = (value: boolean) => {\n this.isLoading = value\n }\n\n @action\n setExPickPointId = (value: number | null) => {\n this.exPickPointId = value\n }\n\n @action\n setOrderId = (value: number | null) => {\n this.orderId = value\n }\n\n @action\n setTariff = (value: number) => {\n this.tariff = value\n }\n\n @action\n setHasErrorWithFiles = (value: boolean) => {\n this.hasErrorWithFiles = value\n }\n\n @action\n reset = () => {\n /* 1 шаг */\n this.setAgreedWithRequirements(false)\n\n /* 2 шаг */\n this.location.reset()\n\n /* 3 шаг */\n this.workConditions.reset()\n\n /* 4 шаг */\n this.fileList.reset()\n\n this.setTariff(0)\n this.setExPickPointId(null)\n }\n\n @action\n async createOrder() {\n const orderId = await this.apiStore.createOrder()\n\n if (orderId) {\n clearLocalStorageData(STORAGE_KEY.COORDINATES)\n clearLocalStorageData(STORAGE_KEY.PICK_POINT_TYPE)\n clearLocalStorageData(STORAGE_KEY.SUBSIDY_HEX_TYPE)\n this.reset()\n this.setOrderId(orderId)\n }\n\n return orderId\n }\n\n @action\n async getTariffs({ area, lat, lon, typePoint }: GetTariffsRequest) {\n return await this.apiStore.getTariffs({ area, lat, lon, typePoint })\n }\n\n @action\n async publishOrder(orderId: number) {\n return await this.apiStore.publishOrder(orderId)\n }\n\n @action\n async checkOrderAddress() {\n return await this.apiStore.checkOrderAddress()\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeObservable } from 'mobx'\nimport { captureException } from '@sentry/react'\n\nimport { IRootStore } from 'store/types'\nimport { ordersApi } from 'sections/LKSection/modules/OrderModule/api'\nimport { BaseStore } from 'shared/stores/BaseStore'\nimport { PaginationType } from 'shared/types/types'\n\nimport { OrderKeys } from '../../data'\nimport { UpdateOrderRequest } from '../../types'\nimport { Order } from './Order'\n\nconst getKey = (key: string) => `${OrderKeys.createOrderPage}.api.${key}`\n\nexport class OrderStore extends BaseStore {\n constructor(private readonly rootStore: IRootStore) {\n super()\n makeObservable(this)\n }\n\n @action\n setOrderList = async (value: Order[]) => {\n this.putEntities(value)\n }\n\n @action\n async loadList(data: PaginationType = { page: 1, pageSize: 20 }) {\n try {\n this.setLoading(true)\n\n const res = await ordersApi.getOrderList({ page: data.page, pageSize: data.pageSize })\n const orders = res?.data?.map((x) => Order.create(x)) ?? []\n\n this.putEntities(orders)\n this.setTotalCount(res?.total)\n } catch (error) {\n captureException(`Ошибка получения список заявок. ${(error as Error).message}`)\n notification.error({\n message: i18next.t(getKey('getOrderListError')),\n description: (error as Error).message,\n })\n } finally {\n this.setLoading(false)\n }\n }\n\n @action\n async updateOrder(data: UpdateOrderRequest, disableLoadList: boolean = false) {\n try {\n const result = await ordersApi.updateOrder(data)\n\n if (!disableLoadList) {\n this.loadList()\n }\n\n return result.data\n } catch (error) {\n throw new Error((error as Error).message)\n }\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeAutoObservable } from 'mobx'\n\nimport { ordersApi } from '../../api'\nimport { OrderKeys } from '../../data'\nimport { ViewOrderUiStore } from './ViewOrderUiStore'\n\nconst getKey = (key: string) => `${OrderKeys.orderModule}.api.${key}`\n\nexport class ViewOrderApiStore {\n constructor(protected readonly uiStore: ViewOrderUiStore) {\n makeAutoObservable(this)\n }\n\n @action\n async updateOrder() {\n if (!this.uiStore.selectedOrder || !this.uiStore.hashFormState || !this.uiStore.selectedOrder.id) {\n return false\n }\n\n const actualUrls = await this.uiStore.fileList.processFiles(this.uiStore.selectedOrder)\n\n if (!actualUrls || !this.uiStore.location.pickPointType) {\n return false\n }\n\n try {\n const data = await this.uiStore.orderStore.updateOrder({\n id: this.uiStore.selectedOrder.id,\n description: this.uiStore.location.description.trim(),\n courierWay: this.uiStore.location.courierWay.trim(),\n house: this.uiStore.location.house,\n street: this.uiStore.location.street,\n latitude: this.uiStore.location.coordinates.latitude,\n longitude: this.uiStore.location.coordinates.longitude,\n timetable: JSON.stringify(\n this.uiStore.workConditions.timetable.getTimetable(\n this.uiStore.location.pickPointType,\n this.uiStore.location.floorLevel,\n ),\n ),\n area: this.uiStore.workConditions.area || undefined,\n warehouseArea: this.uiStore.workConditions.warehouseArea || undefined,\n dressingRoomsCount: this.uiStore.workConditions.dressingRoomsCount || undefined,\n cellingHeight: this.uiStore.workConditions.cellingHeight || undefined,\n actualUrls,\n comment: this.uiStore.comment.trim(),\n pickPointType: this.uiStore.location.pickPointType,\n subsidyHexType: this.uiStore.location.subsidyHexTypeItem?.value,\n couriersAccess: this.uiStore.location.couriersAccess,\n })\n\n notification.success({\n message: i18next.t(getKey('updateOrderSuccess'), { count: this.uiStore.selectedOrder.id }),\n })\n\n return data\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('updateOrderError')),\n description: (error as Error).message,\n })\n return false\n }\n }\n\n @action\n async deleteOrder(orderId: number) {\n try {\n const { data } = await ordersApi.deleteOrder(orderId)\n void this.uiStore.getOrderList()\n return data\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('deleteOrderError')),\n description: (error as Error).message,\n })\n return false\n }\n }\n\n @action\n async addOrderPayment(orderId: number) {\n try {\n const res = await ordersApi.addOrderPayment(orderId)\n this.uiStore.setOrderPaymentInfo(res)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('addOrderPaymentError')),\n description: (error as Error).message,\n })\n }\n }\n\n @action\n async checkOrderPayment(orderId: number) {\n try {\n const res = await ordersApi.checkOrderPayment(orderId)\n this.uiStore.setOrderPaymentStatus(res.status)\n return res\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('checkOrderPaymentError')),\n description: (error as Error).message,\n })\n }\n }\n\n @action\n async getOrderMessages(id: number) {\n try {\n const res = await ordersApi.getOrderMessages(id)\n this.uiStore.setMessages(res)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getOrderMessagesError')),\n description: (error as Error).message,\n })\n }\n }\n\n @action\n async confirmOrder(id: number, willOpen: boolean) {\n try {\n await ordersApi.confirmOrder(id, willOpen)\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('confirmOrderError')),\n description: (error as Error).message,\n })\n return false\n }\n }\n\n @action\n async assignReferralCode(id: number, referralCode: string) {\n try {\n return await ordersApi.assignReferralCode(id, referralCode)\n } catch (error) {\n notification.error({ message: (error as Error).message })\n return false\n }\n }\n\n async getFurnitureOrderType(id: number) {\n try {\n const result = await ordersApi.getFurnitureOrderType(id)\n return result?.orderScheme\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getFurnitureOrderTypeError')),\n description: (error as Error).message,\n })\n }\n }\n\n async getPaymentDeadline(id: number) {\n try {\n const result = await ordersApi.getPaymentDeadline(id)\n return result.seconds\n } catch (error) {\n /* Отображение ошибки не нужно */\n console.error(`Не удалось получить дедлайн оплаты заявки ${(error as Error).message}`)\n }\n }\n}\n","import dayjs from 'dayjs'\nimport i18next from 'i18next'\nimport { isEqual } from 'lodash'\nimport { action, computed, makeAutoObservable, observable, reaction } from 'mobx'\nimport moment from 'moment'\n\nimport { IRootStore } from 'store/types'\nimport { PickPointFilesViewModel } from 'sections/LKSection/shared/PickPointSharedModule/models/PickPointFilesViewModel'\nimport { getTimetableModel } from 'sections/LKSection/shared/PickPointSharedModule/utils'\nimport { MessagesType } from 'components/ui/Chat/Chat'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { DATE_FORMAT_WITH_TIME } from 'shared/constants/values'\n\nimport { OrderKeys } from '../../data'\nimport { AddOrderPayment, OrderInitialStateType, OrderMessageDTO, OrderPaymentStatus, PwaEventType } from '../../types'\nimport { Order } from '../entity/Order'\nimport { SendByType } from '../entity/OrderComment/OrderComment'\nimport { OrderLocationViewModel } from '../models/OrderLocationViewModel'\nimport { OrderWorkConditionsViewModel } from '../models/OrderWorkConditionsViewModel'\nimport { ViewOrderApiStore } from './ViewOrderApiStore'\n\nexport class ViewOrderUiStore {\n @observable page = 1\n @observable pageSize = 20\n @observable pwaEvent: PwaEventType | null = null\n\n @observable selectedOrder: Order | null = null\n @observable orderPaymentInfo: AddOrderPayment | null = null\n @observable orderPaymentStatus: OrderPaymentStatus | null = null\n @observable messages: OrderMessageDTO[] = []\n\n /* редактируемые свойства */\n @observable location = new OrderLocationViewModel()\n @observable fileList = new PickPointFilesViewModel()\n @observable workConditions = new OrderWorkConditionsViewModel()\n @observable comment = ''\n\n @observable initialized = false\n\n @observable private readonly apiStore = new ViewOrderApiStore(this)\n\n initialState: OrderInitialStateType | null = null\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n\n reaction(\n () => [this.page, this.pageSize],\n () => {\n void this.getOrderList()\n },\n )\n }\n\n @computed\n get orderStore() {\n return this.rootStore.orderStore\n }\n\n @computed\n get createOrderUiStore() {\n return this.rootStore.createOrderUiStore\n }\n\n @computed\n get eLockUiStore() {\n return this.rootStore.eLockUiStore\n }\n\n @computed\n get orderList() {\n return this.orderStore.list\n }\n\n @computed\n get loadingOrderList() {\n return this.orderStore.loading\n }\n\n @computed\n get createOrderApiStore() {\n return this.rootStore.createOrderUiStore.apiStore\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n @computed\n get lastComment() {\n if (this.selectedOrder) {\n const [comment] = this.selectedOrder.comments.sort((a, b) => b.date.getTime() - a.date.getTime())\n return comment\n }\n }\n\n @computed\n get formattedComments(): MessagesType[] {\n if (!this.selectedOrder) {\n return []\n }\n\n return this.selectedOrder.comments?.map((commentItem) => ({\n name:\n commentItem.sendBy === SendByType.owner\n ? this.rootStore.appStore.user.info.name || ''\n : i18next.t(getSharedKey('operator')),\n text: commentItem.comment,\n time: dayjs(commentItem.date).format(DATE_FORMAT_WITH_TIME),\n date: commentItem.date,\n me: commentItem.sendBy === SendByType.owner,\n files: [],\n }))\n }\n\n @computed\n get formattedMessages(): MessagesType[] {\n if (!this.selectedOrder) {\n return []\n }\n\n return (\n this.messages?.map((messageItem) => ({\n name: i18next.t(getSharedKey('operator')),\n text: messageItem.message,\n time: moment(messageItem.createdAt).format(DATE_FORMAT_WITH_TIME),\n date: new Date(messageItem.createdAt),\n me: false,\n photos: messageItem.fileUrl || [],\n })) ?? []\n )\n }\n\n @computed\n get allMessages(): MessagesType[] {\n return [...this.formattedComments, ...this.formattedMessages].sort((a, b) =>\n new Date(a.date).getTime() > new Date(b.date).getTime() ? 1 : -1,\n )\n }\n\n getOrder(orderId: number) {\n return this.orderStore.getEntity(orderId) ?? null\n }\n\n get hashFormState(): OrderInitialStateType {\n const location = this.location\n const fileList = this.fileList\n const workConditions = this.workConditions\n const timetable = workConditions.timetable\n\n return {\n description: location.description.trim(),\n courierWay: location.courierWay.trim(),\n lat: location.coordinates.latitude,\n lng: location.coordinates.longitude,\n timetableStart: timetable.timetableStart,\n timetableEnd: timetable.timetableEnd,\n timetableGeneral: timetable.timetableGeneral,\n area: workConditions.area,\n warehouseArea: workConditions.warehouseArea,\n dressingRoomsCount: workConditions.dressingRoomsCount,\n cellingHeight: workConditions.cellingHeight,\n videos: fileList.videos.map((video) => video.url),\n documents: fileList.documents.map((document) => document.url),\n photos: [\n { url: fileList.generalPhoto.url, isPublic: fileList.generalPhoto.isPublic },\n { url: fileList.nightlyGeneralPhoto.url, isPublic: fileList.nightlyGeneralPhoto.isPublic },\n { url: fileList.clientAreaPhoto.url, isPublic: fileList.clientAreaPhoto.isPublic },\n { url: fileList.fittingRoomsPhoto.url, isPublic: fileList.fittingRoomsPhoto.isPublic },\n ],\n comment: this.comment.trim(),\n typePointItem: this.location.pickPointType,\n subsidyTypeItem: this.location.subsidyHexTypeItem,\n couriersAccess: this.location.couriersAccess,\n weekDays: timetable.weekDays,\n }\n }\n\n @action\n setInitialState(value: OrderInitialStateType | null) {\n this.initialState = value\n }\n\n init(order: Order) {\n this.initLocation(order)\n this.initWorkConditions(order)\n this.initFiles(order)\n\n if (order.eLockInfo) {\n this.eLockUiStore.initialize(order.eLockInfo)\n }\n\n this.setInitialState(this.hashFormState)\n this.setInitialized(true)\n }\n\n initLocation(order: Order) {\n this.location.setPickPointType(order.typePoint)\n this.location.setCityItem({\n id: order.cityId,\n name: order.district,\n prefix: order.cityName,\n formattedAddress: `${order.district}, ${order.cityName}`,\n })\n this.location.setStreetItem({\n street: order.street,\n house: order.house,\n lat: order.latitude,\n lng: order.longitude,\n precision: '',\n kind: '',\n postCode: 0,\n description: '',\n name: '',\n })\n this.location.setSubsidyHexTypeItem({\n value: order.subsidyHexType,\n label: i18next.t(`${OrderKeys.orderModule}.${order.subsidyHexType}`),\n })\n this.location.setDescription(order.description)\n this.location.setCourierWay(order.courierWay)\n this.location.setCoordinates({ latitude: order.latitude, longitude: order.longitude })\n this.location.setFloorLevel(order.floorLevel)\n this.location.setCouriersAccess(order.couriersAccess)\n }\n\n initWorkConditions(order: Order) {\n const timetableModel = getTimetableModel(order.timetable)\n const timetable = timetableModel.daily\n const days = timetableModel.week?.days\n\n const weekDays = this.workConditions.timetable.weekDays.map((day) => {\n const isDayOff = days?.[day.value].is_day_off ?? false\n return { ...day, isDayOff }\n })\n\n this.workConditions.timetable.setTimetableStart(timetable.open)\n this.workConditions.timetable.setTimetableEnd(timetable.close)\n this.workConditions.timetable.setTimetableGeneral(`${timetable.open}-${timetable.close}`)\n this.workConditions.timetable.setWeekDays(weekDays)\n this.workConditions.setArea(order.area.toString())\n this.workConditions.setWarehouseArea(order.warehouseArea.toString())\n this.workConditions.setDressRoomsCount(order.dressingRoomsCount.toString())\n this.workConditions.setCellingHeight(order.cellingHeight.toString())\n }\n\n initFiles(order: Order) {\n if (order.videos?.length && order.videos[0]?.url) {\n this.fileList.setVideoURL(order.videos[0].url)\n }\n\n this.fileList.setPhotos([...order.photos, ...order.documents])\n }\n\n @action\n setPage(value: number) {\n this.page = value\n }\n\n @action\n setPageSize(value: number) {\n if (this.pageSize !== value) {\n this.pageSize = value\n this.setPage(1)\n }\n }\n\n @action\n setPwaEvent(value: PwaEventType) {\n this.pwaEvent = value\n }\n\n @action\n setSelectedOrder(value: Order | null) {\n this.selectedOrder = value\n\n if (this.selectedOrder) {\n this.init(this.selectedOrder)\n }\n\n if (value === null) {\n this.setInitialized(false)\n }\n }\n\n @action\n setOrderPaymentInfo(value: AddOrderPayment | null) {\n this.orderPaymentInfo = value\n }\n\n @action\n setOrderPaymentStatus(value: OrderPaymentStatus | null) {\n this.orderPaymentStatus = value\n }\n\n @action\n setMessages(value: OrderMessageDTO[]) {\n this.messages = value\n }\n\n @action\n setComment(value: string) {\n this.comment = value\n }\n\n @action\n setInitialized(value: boolean) {\n this.initialized = value\n }\n\n reset = () => {\n this.setInitialized(false)\n this.setSelectedOrder(null)\n this.setOrderPaymentInfo(null)\n this.setOrderPaymentStatus(null)\n this.setComment('')\n\n this.location.reset()\n this.workConditions.reset()\n this.fileList.reset()\n\n this.eLockUiStore.reset()\n this.createOrderUiStore.setTariff(0)\n }\n\n async getOrderList() {\n await this.orderStore.loadList({ page: this.page, pageSize: this.pageSize })\n }\n\n async updateOrder() {\n return await this.apiStore.updateOrder()\n }\n\n async deleteOrder(orderId: number) {\n return await this.apiStore.deleteOrder(orderId)\n }\n\n async addOrderPayment(orderId: number) {\n return await this.apiStore.addOrderPayment(orderId)\n }\n\n async checkOrderPayment(orderId: number) {\n return await this.apiStore.checkOrderPayment(orderId)\n }\n\n async getOrderMessages(id: number) {\n return await this.apiStore.getOrderMessages(id)\n }\n\n async confirmOrder(id: number, willOpen: boolean) {\n return await this.apiStore.confirmOrder(id, willOpen)\n }\n\n async assignReferralCode(id: number, referralCode: string) {\n return await this.apiStore.assignReferralCode(id, referralCode)\n }\n\n async getFurnitureOrderType(id: number) {\n return await this.apiStore.getFurnitureOrderType(id)\n }\n\n async getPaymentDeadline(id: number) {\n return await this.apiStore.getPaymentDeadline(id)\n }\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport { getQueryUrl } from 'services/utils/getQueryUrl'\nimport { TokensDTO } from 'sections/LKSection/shared/types/types'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { PaginationType, ResponseListData } from 'shared/types/types'\n\nimport { TimetableStatus } from './types/types'\nimport { PvzDTO, SignboardDTO, UpdatePvzRequest, UpdateSignboardData } from './types/typesDTO'\n\nconst discoveryService = new HttpService(appConfig.DISCOVERY_URL)\n\nexport const pvzApi = {\n getPvzList: async ({ page, pageSize }: PaginationType): Promise> => {\n const queryUrl = getQueryUrl({\n page_size: pageSize,\n page,\n })\n\n const result = await discoveryService.get>(`/api/v2/pickpoint/list?${queryUrl}`)\n\n return result ? convertKeysToCamelCase(result) : undefined\n },\n\n updatePvz: (data: UpdatePvzRequest, updatedFields?: string[]): Promise<{ data: number }> => {\n const patch = {\n description: data.description,\n courier_way: data.courierWay,\n alarm_system: data.alarmSystem,\n metadata: data.courierWay,\n dressing_rooms_count: data.dressingRoomsCount,\n actual_urls: data.actualUrls,\n requested_area: data.area,\n stock_area: data.warehouseArea,\n timetable: data.timetable,\n timetable_update_reason: data.timetableUpdateReason,\n racks_count: +data.racksCount,\n cells_count: +data.cellsCount,\n max_cells_count: +data.maxCellsCount,\n }\n\n const updatedFieldsLocal =\n updatedFields ??\n Object.entries(patch)\n .filter(([, value]) => value !== undefined && value !== null)\n .map(([key]) => key)\n\n return discoveryService.post(`/api/v2/pickpoint/${data.pvzId}/update`, {\n body: {\n ...patch,\n update_fields: updatedFieldsLocal,\n },\n })\n },\n\n switchPvz: async (pvzId: number): Promise => {\n const result = await discoveryService.get(`/api/v2/pickpoint/${pvzId}/switch`)\n return result ? convertKeysToCamelCase(result) : undefined\n },\n\n getTimetableEditStatus: async (pvzId: number): Promise<{ status: TimetableStatus } | null> => {\n const result = await discoveryService.get<{ timetable_order: { status: TimetableStatus } | null }>(\n `/api/v4/pickpoint/${pvzId}/timetable-order`,\n )\n\n return result?.timetable_order\n },\n\n getPvzSignboard: async (pickpointId: number): Promise => {\n const result = await discoveryService.get(`/api/v2/pickpoint/signboard/${pickpointId}`, {})\n\n return convertKeysToCamelCase(result)\n },\n\n updatePvzSignboard: async (patch: UpdateSignboardData) => {\n const result = await discoveryService.post('/api/v2/pickpoint/signboard/update', { body: patch })\n return result\n },\n}\n","export type PvzInitialStateType = {\n description: string\n courierWay: string\n alarmSystem: string\n dressingRoomsCount: string\n racksCount: string\n cellsCount: string\n maxCellsCount: string\n videos: string[]\n documents: string[]\n photos: {\n url: string\n isPublic: boolean\n }[]\n}\n\n/** Статус запроса на изменение площади */\nexport enum EditAreaStatus {\n none = 'REQUESTED_AREA_STATUS_NONE',\n inProgress = 'REQUESTED_AREA_STATUS_IN_PROCESS',\n accepted = 'REQUESTED_AREA_STATUS_ACCEPTED',\n}\n\nexport enum TimetableStatus {\n none = '',\n approve = 'TIMETABLE_STATUS_APPROVE',\n waiting = 'TIMETABLE_STATUS_WAITING',\n reject = 'TIMETABLE_STATUS_NONE_APPROVE',\n}\n","import { TimetableStatus } from './types/types'\n\nexport const ratingRanges = [\n { min: 0, max: 1.1, color: '#910000' },\n { min: 1, max: 1.6, color: '#FE0000' },\n { min: 1.6, max: 2.6, color: '#FF9A00' },\n { min: 2.6, max: 3.6, color: '#FFCA00' },\n { min: 3.6, max: 4.6, color: '#6CD240' },\n { min: 4.6, max: 5, color: '#2D9400' },\n]\n\nexport const MIN_UPDATE_REASON_LENGTH = 30\n\nexport const enum PvzKeys {\n pvzModule = 'pvzModule',\n pvzPage = 'pvzModule.pvzPage',\n pvzItemPage = 'pvzModule.pvzItemPage',\n editTimetablePage = 'pvzModule.editTimetablePage',\n editAreaPage = 'pvzModule.editAreaPage',\n movingPage = 'pvzModule.movingPage',\n signboardPage = 'pvzModule.signboardPage',\n}\n\nexport const timetableStatusTranslator: Record = {\n [TimetableStatus.waiting]: 'Ожидает подтверждения',\n [TimetableStatus.approve]: 'Подтверждено',\n [TimetableStatus.reject]: 'Отклонено',\n [TimetableStatus.none]: '',\n}\n","import { computed, observable } from 'mobx'\n\nimport { PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport {\n PickPointFileItemType,\n PickPointType,\n PickPointVideoItemType,\n} from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { getMedia } from 'sections/LKSection/shared/PickPointSharedModule/utils'\nimport { Entity } from 'shared/stores/BaseStore'\n\nimport { EditAreaStatus } from '../../types/types'\nimport { PvzDTO } from '../../types/typesDTO'\n\nexport class Pvz extends Entity {\n @observable district = ''\n @observable name = ''\n @observable latitude = ''\n @observable longitude = ''\n\n @observable externalId = 0\n @observable rate = 0\n @observable isActive = true\n @observable blockTime = ''\n @observable description = ''\n @observable courierWay = ''\n @observable alarmSystem = ''\n @observable dressingRoomsCount = ''\n @observable timetable = ''\n @observable area = ''\n @observable warehouseArea = ''\n @observable editAreaStatus = EditAreaStatus.none\n @observable typePoint: PickPointType = PickPointType.none\n @observable floorLevel: PickPointLocation = PickPointLocation.firstFloor\n @observable shard = 0\n @observable racksCount = ''\n @observable cellsCount = ''\n @observable maxCellsCount = ''\n\n @observable photos: PickPointFileItemType[] = []\n @observable videos: PickPointVideoItemType[] = []\n @observable documents: PickPointFileItemType[] = []\n\n /* Здесь перечислены свойства, которых нет в DTO модели */\n constructor(props: Omit) {\n super(props)\n Object.assign(this, props)\n }\n\n static create({ actualUrls, ...other }: PvzDTO) {\n const { videos, photos, documents } = getMedia(actualUrls)\n\n return new Pvz({\n ...other,\n videos,\n photos,\n documents,\n warehouseArea: other.stockArea,\n editAreaStatus: other.requestedAreaStatus,\n floorLevel: other.locations?.[0] ?? PickPointLocation.none,\n })\n }\n\n @computed\n get address() {\n if (!this.district || this.district.trim?.().length === 0) {\n return this.name\n }\n\n return `${this.district}, ${this.name}`\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeObservable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { BaseStore } from 'shared/stores/BaseStore'\nimport { PaginationType } from 'shared/types/types'\n\nimport { pvzApi } from '../../api'\nimport { PvzKeys } from '../../data'\nimport { Pvz } from './Pvz'\n\nconst getKey = (key: string) => `${PvzKeys.pvzModule}.api.${key}`\n\nexport class PvzStore extends BaseStore {\n constructor(private readonly rootStore: IRootStore) {\n super()\n makeObservable(this)\n }\n\n @action\n setPvzList = async (value: Pvz[]) => {\n this.putEntities(value)\n }\n\n @action\n async loadList(data: PaginationType = { page: 1, pageSize: 20 }) {\n try {\n this.setLoading(true)\n\n const res = await pvzApi.getPvzList({ page: data.page, pageSize: data.pageSize })\n const pvzList = res?.data?.map((x) => Pvz.create(x)) ?? []\n\n this.putEntities(pvzList)\n this.setTotalCount(res?.total)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getPvzListError')),\n description: (error as Error).message,\n })\n } finally {\n this.setLoading(false)\n }\n }\n}\n","import { isEqual } from 'lodash'\nimport { action, makeAutoObservable, observable } from 'mobx'\n\nimport { Pvz } from '../entity/Pvz'\nimport { ViewPvzUiStore } from '../ViewPvz/ViewPvzUiStore'\nimport { InitialAreaModelStateType } from './types'\n\nexport class PvzAreaViewModel {\n @observable area = ''\n @observable warehouseArea = ''\n\n @observable initialized = false\n\n private initialState: InitialAreaModelStateType | null = null\n\n constructor(protected readonly uiStore: ViewPvzUiStore) {\n makeAutoObservable(this)\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n get isAreaWasChanged() {\n return this.initialState?.area !== this.area.toString()\n }\n\n get invalidEditAreaDocuments() {\n return this.isAreaWasChanged && this.uiStore.fileList.documentsForEditArea.some((document) => !document.url)\n }\n\n get hashFormState(): InitialAreaModelStateType {\n const fileList = this.uiStore.fileList\n\n return {\n area: this.area.toString(),\n warehouseArea: this.warehouseArea.toString(),\n documents: fileList.documentsForEditArea.map((document) => document.url),\n }\n }\n\n init(pvz: Pvz) {\n this.setArea(pvz.area)\n this.setWarehouseArea(pvz.warehouseArea)\n this.setInitialState(this.hashFormState)\n this.setInitialized(true)\n }\n\n @action\n setArea = (value: string) => {\n this.area = value\n }\n\n @action\n setWarehouseArea = (value: string) => {\n this.warehouseArea = value\n }\n\n @action\n setInitialState = (value: InitialAreaModelStateType) => {\n this.initialState = value\n }\n\n @action\n setInitialized(value: boolean) {\n this.initialized = value\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { makeAutoObservable } from 'mobx'\n\nimport { setLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { SignboardFormat, SignboardSize } from 'sections/LKSection/modules/OrderModule/types'\n\nimport { pvzApi } from '../../api'\nimport { PvzKeys } from '../../data'\nimport { TimetableStatus } from '../../types/types'\nimport { UpdateSignboardData } from '../../types/typesDTO'\nimport { ViewPvzUiStore } from './ViewPvzUiStore'\n\nconst getKey = (key: string) => `${PvzKeys.pvzModule}.api.${key}`\n\nexport class ViewPvzApiStore {\n constructor(protected readonly uiStore: ViewPvzUiStore) {\n makeAutoObservable(this)\n }\n\n async updatePvz(pvzId: number, updatedFields?: string[]) {\n if (!this.uiStore.selectedPvz?.id || !this.uiStore.hashFormState) {\n return false\n }\n\n const selectedPvz = this.uiStore.selectedPvz\n const actualUrls = await this.uiStore.fileList.processFiles(selectedPvz)\n const areaModel = this.uiStore.areaModel\n const timetable = this.uiStore.timetable\n\n if (!actualUrls) {\n return false\n }\n\n try {\n const result = await pvzApi.updatePvz(\n {\n pvzId,\n description: this.uiStore.description.trim(),\n courierWay: this.uiStore.courierWay.trim(),\n alarmSystem: this.uiStore.alarmSystem.trim(),\n actualUrls,\n dressingRoomsCount: this.uiStore.dressingRoomsCount ?? undefined,\n area: areaModel.isAreaWasChanged ? areaModel.area : undefined,\n warehouseArea: areaModel.warehouseArea,\n timetable: JSON.stringify(timetable.getTimetable(selectedPvz.typePoint, selectedPvz.floorLevel)),\n timetableUpdateReason: timetable.timetableUpdateReason.trim() || undefined,\n racksCount: this.uiStore.racksCount,\n cellsCount: this.uiStore.cellsCount,\n maxCellsCount: this.uiStore.maxCellsCount,\n },\n updatedFields,\n )\n this.uiStore.getPvzList()\n\n notification.success({\n message: i18next.t(getKey('updatePvzSuccess'), { count: this.uiStore.selectedPvz.externalId }),\n })\n\n return result\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('updatePvzError')),\n description: (error as Error).message,\n })\n }\n }\n\n async switchPvz(pvzId: number) {\n if (pvzId !== this.uiStore.switchedPvzId) {\n try {\n this.uiStore.setIsSwitchPvzLoading(true)\n this.uiStore.setSwitchedPvzId(pvzId)\n\n const pvz = this.uiStore.getPvz(+pvzId)\n this.uiStore.setSelectedPvz(pvz)\n\n const result = await pvzApi.switchPvz(pvzId)\n\n setLocalStorageData(STORAGE_KEY.ACCESS_TOKEN, result.access.token)\n setLocalStorageData(STORAGE_KEY.REFRESH_TOKEN, result.refresh.token)\n\n return result\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('switchPvzError')),\n description: (error as Error).message,\n })\n } finally {\n this.uiStore.setIsSwitchPvzLoading(false)\n }\n }\n }\n\n async getTimetableEditStatus(pvzId: number) {\n try {\n const result = await pvzApi.getTimetableEditStatus(pvzId)\n this.uiStore.setTimetableEditStatus(result?.status ?? TimetableStatus.none)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getTimetableEditStatusError')),\n description: (error as Error).message,\n })\n }\n }\n\n async getPvzSignboardList(pvzId: number) {\n try {\n const result = await pvzApi.getPvzSignboard(pvzId)\n this.uiStore.setSignboardData(result)\n } catch (error) {\n this.uiStore.setSignboardData({\n isCheck: false,\n signboardFormat: SignboardFormat.none,\n signboardSize: SignboardSize.none,\n signboardUrls: [],\n })\n notification.error({\n message: i18next.t(getKey('getPvzSignboardListError')),\n description: (error as Error).message,\n })\n }\n }\n\n async updatePvzSignboard(patch: UpdateSignboardData) {\n try {\n const result = await pvzApi.updatePvzSignboard(patch)\n return result\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('updatePvzSignboardError')),\n description: (error as Error).message,\n })\n }\n }\n}\n","import { isEqual } from 'lodash'\nimport { action, computed, makeAutoObservable, observable, reaction } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { SignboardFormat, SignboardSize } from 'sections/LKSection/modules/OrderModule/types'\nimport { PickPointFilesViewModel } from 'sections/LKSection/shared/PickPointSharedModule/models/PickPointFilesViewModel'\nimport { TimetableModel } from 'sections/LKSection/shared/PickPointSharedModule/models/TimetableModel/TimetableModel'\nimport { USER_PERMISSION } from 'shared/types/types'\n\nimport { PvzInitialStateType, TimetableStatus } from '../../types/types'\nimport { SignboardDTO, UpdateSignboardData } from '../../types/typesDTO'\nimport { Pvz } from '../entity/Pvz'\nimport { PvzAreaViewModel } from '../models/PvzAreaModel'\nimport { ViewPvzApiStore } from './ViewPvzApiStore'\n\nexport class ViewPvzUiStore {\n @observable page = 1\n @observable pageSize = 20\n\n @observable selectedPvz: Pvz | null = null\n @observable switchedPvzId = 0\n\n @observable racksCount = ''\n @observable cellsCount = ''\n @observable maxCellsCount = ''\n\n @observable description = ''\n @observable courierWay = ''\n @observable alarmSystem = ''\n @observable dressingRoomsCount = ''\n @observable timetableEditStatus = TimetableStatus.none\n @observable signboardData: SignboardDTO = {\n isCheck: false,\n signboardFormat: SignboardFormat.none,\n signboardSize: SignboardSize.none,\n signboardUrls: [],\n }\n\n @observable readonly areaModel = new PvzAreaViewModel(this)\n @observable readonly fileList = new PickPointFilesViewModel()\n @observable readonly timetable = new TimetableModel()\n\n @observable isSwitchPvzLoading = false\n @observable initialized = false\n\n @observable private readonly apiStore = new ViewPvzApiStore(this)\n\n private initialState: PvzInitialStateType | null = null\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n\n reaction(\n () => [this.page, this.pageSize],\n () => {\n void this.getPvzList()\n },\n )\n }\n\n get appStore() {\n return this.rootStore.appStore\n }\n\n get pvzStore() {\n return this.rootStore.pvzStore\n }\n\n get pvzList() {\n return this.pvzStore.list\n }\n\n get loadingPvzList() {\n return this.pvzStore.loading\n }\n\n get isNoChanges() {\n return isEqual(this.initialState, this.hashFormState)\n }\n\n get hashFormState(): PvzInitialStateType {\n const fileList = this.fileList\n\n return {\n description: this.description.trim(),\n courierWay: this.courierWay.trim(),\n alarmSystem: this.alarmSystem.trim(),\n dressingRoomsCount: this.dressingRoomsCount,\n videos: fileList.videos.map((video) => video.url),\n documents: fileList.documents.map((document) => document.url),\n photos: fileList.photos.map((photo) => ({ url: photo.url, isPublic: photo.isPublic })),\n racksCount: this.racksCount,\n cellsCount: this.cellsCount,\n maxCellsCount: this.maxCellsCount,\n }\n }\n\n @computed\n isOwner = (pvzId: number) => {\n const pvzRoleInfo = this.appStore.user.info.roles?.find((item) => item.pickpoint_id === pvzId)\n\n return Boolean(\n pvzRoleInfo?.is_owner &&\n (pvzRoleInfo.permission === USER_PERMISSION.PERM_OWNER ||\n pvzRoleInfo.permission === USER_PERMISSION.PERM_FIRM_OWNER),\n )\n }\n\n getPvz = (pvzId: number) => {\n return this.pvzStore.getEntity(pvzId) ?? null\n }\n\n init = (pvz: Pvz) => {\n this.setDescription(pvz.description)\n this.setCourierWay(pvz.courierWay)\n this.setAlarmSystem(pvz.alarmSystem)\n this.setDressingRoomsCount(pvz.dressingRoomsCount.toString())\n this.setRacksCount(pvz.racksCount.toString())\n this.setCellsCount(pvz.cellsCount.toString())\n this.setMaxCellsCount(pvz.maxCellsCount.toString())\n\n this.initFiles(pvz)\n this.areaModel.init(pvz)\n this.timetable.init(pvz)\n\n this.setInitialState(this.hashFormState)\n this.setInitialized(true)\n }\n\n initFiles = (pvz: Pvz) => {\n if (pvz.videos?.length && pvz.videos[0]?.url) {\n this.fileList.setVideoURL(pvz.videos[0].url)\n this.fileList.setVideoFile({ url: '', name: '', size: 0 })\n }\n\n this.fileList.setPhotos([...pvz.photos, ...pvz.documents])\n }\n\n @action\n setInitialState = (value: PvzInitialStateType) => {\n this.initialState = value\n }\n\n @action\n setPage = (value: number) => {\n this.page = value\n }\n\n @action\n setPageSize = (value: number) => {\n if (this.pageSize !== value) {\n this.pageSize = value\n this.setPage(1)\n }\n }\n\n @action\n setSelectedPvz = (value: Pvz | null) => {\n if (this.selectedPvz?.id !== value?.id) {\n this.reset()\n }\n\n this.selectedPvz = value\n\n if (value) {\n this.init(value)\n } else {\n this.setInitialized(false)\n }\n }\n\n @action\n setSwitchedPvzId = (value: number) => {\n this.switchedPvzId = value\n }\n\n @action\n setRacksCount = (value: string) => {\n this.racksCount = value\n }\n\n @action\n setCellsCount = (value: string) => {\n this.cellsCount = value\n }\n\n @action\n setMaxCellsCount = (value: string) => {\n this.maxCellsCount = value\n }\n\n @action\n setDescription = (value: string) => {\n this.description = value\n }\n\n @action\n setCourierWay = (value: string) => {\n this.courierWay = value\n }\n\n @action\n setAlarmSystem = (value: string) => {\n this.alarmSystem = value\n }\n\n @action\n setDressingRoomsCount = (value: string) => {\n this.dressingRoomsCount = value\n }\n\n @action\n setTimetableEditStatus = (value: TimetableStatus) => {\n this.timetableEditStatus = value\n }\n\n @action\n setIsSwitchPvzLoading = (value: boolean) => {\n this.isSwitchPvzLoading = value\n }\n\n @action\n setInitialized = (value: boolean) => {\n this.initialized = value\n }\n\n @action\n setSignboardData = (value: SignboardDTO) => {\n this.signboardData = value\n }\n\n reset = () => {\n this.setDescription('')\n this.setDressingRoomsCount('')\n this.fileList.reset()\n this.setInitialized(false)\n }\n\n async getPvzList() {\n return await this.pvzStore.loadList({ page: this.page, pageSize: this.pageSize })\n }\n\n async updatePvz(pvzId: number, updatedFields?: string[]) {\n return await this.apiStore.updatePvz(pvzId, updatedFields)\n }\n\n async switchPvz(pvzId: number) {\n return await this.apiStore.switchPvz(pvzId)\n }\n\n async getTimetableEditStatus(pvzId: number) {\n return await this.apiStore.getTimetableEditStatus(pvzId)\n }\n\n async getPvzSignboardList(pvzId: number) {\n return await this.apiStore.getPvzSignboardList(pvzId)\n }\n\n async updatePvzSignboard(patch: UpdateSignboardData) {\n return await this.apiStore.updatePvzSignboard(patch)\n }\n}\n","import { StatusUIType } from 'sections/LKSection/shared/components/Status/Status'\nimport { PHOTO_FORMATS, VIDEO_FORMATS } from 'shared/constants/values'\n\nimport { TicketReason, TicketStatus, TicketType } from './types'\n\nexport const MIN_DESCRIPTION_LENGTH = 20\n\nexport const initialTicketFileValue = { content: '', fileSize: 0, format: '', name: '' }\n\nexport const enum TicketKeys {\n ticketModule = 'ticketModule',\n ticketPage = 'ticketModule.ticketPage',\n ticketItemPage = 'ticketModule.ticketItemPage',\n createTicket = 'ticketModule.createTicket',\n}\n\nexport const ticketTypeLabels = {\n [TicketType.openingOrder]: 'Заявка по открытию ПВЗ',\n [TicketType.roomLayout]: 'Планировка помещения',\n}\n\nexport const ticketReasonLabels = {\n [TicketReason.eLock]: 'Вопрос по электронному замку в подарок',\n [TicketReason.signboard]: 'Вопрос по вывеске/кронштейну в подарок',\n}\n\nexport const ticketTypeOptions = [\n { value: TicketType.openingOrder, label: ticketTypeLabels[TicketType.openingOrder] },\n { value: TicketType.roomLayout, label: ticketTypeLabels[TicketType.roomLayout] },\n]\n\nexport const ticketReasonOptions = [\n { value: TicketReason.eLock, label: ticketReasonLabels[TicketReason.eLock] },\n { value: TicketReason.signboard, label: ticketReasonLabels[TicketReason.signboard] },\n]\n\nexport const ticketStatusTranslator: Record = {\n [TicketStatus.open]: {\n title: 'Новый',\n type: StatusUIType.corp,\n },\n [TicketStatus.inProgress]: {\n title: 'В работе',\n type: StatusUIType.gray,\n },\n [TicketStatus.closed]: {\n title: 'Решён',\n type: StatusUIType.green,\n },\n}\n\nexport const ticketStatusOptions = [\n { value: TicketStatus.open, label: ticketStatusTranslator[TicketStatus.open].title },\n { value: TicketStatus.inProgress, label: ticketStatusTranslator[TicketStatus.inProgress].title },\n { value: TicketStatus.closed, label: ticketStatusTranslator[TicketStatus.closed].title },\n]\n\nexport const ticketPhotoValidate = { allowedFileFormats: PHOTO_FORMATS, maxFileSizeMb: 10 }\nexport const ticketFileValidate = { allowedFileFormats: [...PHOTO_FORMATS, ...VIDEO_FORMATS], maxFileSizeMb: 10 }\n\nexport const ticketGradeTranslator = {\n 1: 'Очень плохо',\n 2: 'Плохо',\n 3: 'Нормально',\n 4: 'Хорошо',\n 5: 'Отлично',\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeAutoObservable, observable } from 'mobx'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { IRootStore } from 'store/types'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\nimport { PHOTO_FORMATS, VIDEO_FORMATS } from 'shared/constants/values'\n\nimport { OrderStatus } from '../../OrderModule/types'\nimport { ticketApi } from '../api'\nimport { TicketFileUploadDTO, TicketPhotoType, TicketReason, TicketType } from '../types'\nimport { initialTicketFileValue, TicketKeys, ticketReasonLabels } from './../data'\n\nconst getKey = (key: string) => `${TicketKeys.ticketModule}.${key}`\n\nexport class CreateTicketUiStore {\n @observable ticketTypeValue = TicketType.openingOrder\n @observable ticketReasonValue = TicketReason.eLock\n @observable selectedOrderId: null | number = null\n @observable description = ''\n @observable link = ''\n\n @observable files: ConvertedFile[] = []\n /** Фасад здания днем */\n @observable generalPhoto: ConvertedFile = initialTicketFileValue\n /** Документ БТИ */\n @observable btiDocument: ConvertedFile = initialTicketFileValue\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n }\n\n @computed\n get ordersOptions() {\n return this.rootStore.orderStore.list\n .filter((order) => order.status === OrderStatus.accepted)\n .map((order) => ({ value: order.id, label: order.fullAddress }))\n }\n\n @computed\n get getFiles() {\n return this.ticketTypeValue === TicketType.openingOrder ? this.files : [this.generalPhoto, this.btiDocument]\n }\n\n @computed\n get invalidPhotos() {\n return this.getFiles.some((file) => !file || !file.content || file.content.length === 0)\n }\n\n @computed\n get invalidVideoUrl() {\n return this.link.trim() && !WEB_LINK_REGEXP.test(this.link)\n }\n\n @action\n setTicketTypeValue(value: TicketType) {\n this.ticketTypeValue = value\n }\n\n @action\n setTicketReasonValue(value: TicketReason) {\n this.ticketReasonValue = value\n }\n\n @action\n setSelectedOrderId(value: number) {\n this.selectedOrderId = value\n }\n\n @action\n setDescription(value: string) {\n this.description = value\n }\n\n @action\n setLink(value: string) {\n this.link = value\n }\n\n @action\n setFiles(value: ConvertedFile[]) {\n this.files = value\n }\n\n @action\n setFileData = (key: TicketPhotoType) =>\n action((item: ConvertedFile) => {\n if (this[key]) {\n this[key].content = item.content\n this[key].fileSize = item.fileSize\n this[key].format = item.format\n this[key].name = item.name\n }\n })\n\n reset = () => {\n this.setDescription('')\n this.setFiles([])\n this.setLink('')\n this.setFileData(TicketPhotoType.generalPhoto)(initialTicketFileValue)\n this.setFileData(TicketPhotoType.btiDocument)(initialTicketFileValue)\n }\n\n getCreateTicketArgs(orderId: number, photos: (TicketFileUploadDTO | null)[], videos: (TicketFileUploadDTO | null)[]) {\n const reason =\n this.ticketTypeValue === TicketType.openingOrder\n ? `${i18next.t(getKey('createTicket.Причина обращения'))}: ${ticketReasonLabels[this.ticketReasonValue]}\\n`\n : ''\n const descriptionProblem =\n this.ticketTypeValue === TicketType.openingOrder\n ? `${i18next.t(getKey('createTicket.Описание проблемы'))}: ${this.description.trim()}\\n`\n : ''\n\n return {\n ticketType: this.ticketTypeValue,\n ticketReason: this.ticketTypeValue === TicketType.openingOrder ? this.ticketReasonValue : undefined,\n description: [\n reason,\n descriptionProblem,\n this.link ? `${i18next.t(getKey('createTicket.Прикрепленная ссылка'))}: ${this.link.trim()}` : '',\n ].join(''),\n files: {\n image_urls: photos.map((file) => file?.url ?? ''),\n video_urls: videos.map((file) => file?.url ?? ''),\n document_urls: [],\n },\n orderId,\n }\n }\n\n async createTicket() {\n if (!this.selectedOrderId) {\n return false\n }\n\n const photos = await this.fileUpload(\n this.getFiles.filter((file) => PHOTO_FORMATS.includes(file.format.toLowerCase())),\n )\n const videos = await this.fileUpload(\n this.getFiles.filter((file) => VIDEO_FORMATS.includes(file.format.toLowerCase())),\n )\n\n const files = [...photos, ...videos]\n\n if (files.length < this.getFiles.length || files.some((file) => file?.url === '')) {\n notification.error({\n message: i18next.t(getSharedKey('api.filesUploadError')),\n description: i18next.t(getKey('api.ticketUploadFilesErrorMessage')),\n })\n\n return false\n }\n\n try {\n const result = await ticketApi.createTicket(this.getCreateTicketArgs(this.selectedOrderId, photos, videos))\n\n notification.success({\n message: i18next.t(getKey('api.createTicketSuccess'), {\n count: result.ticketId,\n }),\n })\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('api.createTicketErrorMessage')),\n description: (error as Error).message,\n })\n return false\n }\n }\n\n async fileUpload(files: ConvertedFile[]) {\n try {\n const promiseFiles: Promise[] = []\n\n for (const file of files) {\n /* mytodo: поменять после выкатки замков */\n const res = fileService.ticketFileUpload({\n totalSize: file.fileSize,\n content: file.content,\n entityType: FileEntityType.ticket,\n })\n\n promiseFiles.push(res)\n }\n\n return await Promise.all(promiseFiles)\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.filesUploadError')),\n description: (error as Error).message,\n })\n\n return []\n }\n }\n}\n","import { computed, observable } from 'mobx'\n\nimport { Entity } from 'shared/stores/BaseStore'\n\nimport { TicketDTO, TicketHistoryDTO, TicketStatus, TicketSupportLogsDTO } from '../../types'\n\nexport class Ticket extends Entity {\n @observable userId = 0\n @observable createDate: string = ''\n @observable finishDate: string = ''\n @observable description: string = ''\n @observable imageUrls: string[] = []\n @observable videoUrls: string[] = []\n @observable documentUrls: string[] = []\n @observable ticketTypeId = 0\n @observable ticketTypeName: string = ''\n @observable status = TicketStatus.open\n @observable supportLogs: TicketSupportLogsDTO[] = []\n @observable ticketHistory: TicketHistoryDTO[] = []\n @observable ticketGrade = 0\n @observable gradeComment = ''\n @observable openAfterAnswer = 0\n @observable isRead = false\n @observable managerId = 0\n @observable updateDate: string = ''\n @observable orderId = 0\n @observable autoClose = 0\n\n /* Здесь перечислены свойства, которых нет в DTO модели */\n constructor(props: Omit) {\n super(props)\n Object.assign(this, props)\n }\n\n static create({ ...data }: TicketDTO) {\n return new Ticket({\n ...data,\n videoUrls: data.videoUrls ?? [],\n imageUrls: data.imageUrls ?? [],\n documentUrls: data.documentUrls ?? [],\n status: data.ticketStateId,\n })\n }\n\n @computed\n get hasManagerComment() {\n return this.supportLogs.some((log) => log.isManager)\n }\n\n get canRate() {\n return this.status === TicketStatus.closed && !this.ticketGrade && this.hasManagerComment && !this.autoClose\n }\n\n @computed\n get hasNotice() {\n return this.status === TicketStatus.inProgress && this.supportLogs[this.supportLogs.length - 1]?.isManager\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeObservable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { BaseStore } from 'shared/stores/BaseStore'\n\nimport { ticketApi } from '../../api'\nimport { TicketKeys } from '../../data'\nimport { GetTicketListRequest } from '../../types'\nimport { Ticket } from './Ticket'\n\nconst getKey = (key: string) => `${TicketKeys.ticketModule}.${key}`\n\nexport class TicketStore extends BaseStore {\n constructor(private readonly rootStore: IRootStore) {\n super()\n makeObservable(this)\n }\n\n @action\n setTicketList = async (value: Ticket[]) => {\n this.putEntities(value)\n }\n\n @action\n async loadList(disableLoading: boolean = false, data: GetTicketListRequest) {\n try {\n if (!disableLoading) {\n this.setLoading(true)\n }\n\n const res = await ticketApi.getTicketList({\n ...data,\n })\n\n const tickets = res.data.map((ticket) => Ticket.create(ticket))\n\n this.setTicketList(tickets)\n this.setTotalCount(res.total)\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('getTicketListError')),\n description: (error as Error).message,\n })\n } finally {\n this.setLoading(false)\n }\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { makeAutoObservable } from 'mobx'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { PHOTO_FORMATS, VIDEO_FORMATS } from 'shared/constants/values'\n\nimport { ticketApi } from '../../api'\nimport { TicketKeys } from '../../data'\nimport { TicketFileUploadDTO, TicketStatus } from '../../types'\nimport { ViewTicketUiStore } from './ViewTicketUiStore'\n\nconst getKey = (key: string) => `${TicketKeys.ticketModule}.api.${key}`\n\nexport class ViewTicketApiStore {\n constructor(protected readonly uiStore: ViewTicketUiStore) {\n makeAutoObservable(this)\n }\n\n async createSupportLog() {\n const ticketId = this.uiStore.selectedTicket?.id\n\n if (!ticketId) {\n return\n }\n\n const photos = await this.fileUpload(\n this.uiStore.files.filter((file) => PHOTO_FORMATS.includes(file.format.toLowerCase())),\n )\n const videos = await this.fileUpload(\n this.uiStore.files.filter((file) => VIDEO_FORMATS.includes(file.format.toLowerCase())),\n )\n\n const files = [...photos, ...videos]\n\n if (files.length < this.uiStore.files.length || files.some((file) => file?.url === '')) {\n notification.error({\n message: i18next.t(getSharedKey('api.filesUploadError')),\n })\n\n return false\n }\n\n try {\n await ticketApi.createSupportLog({\n message: this.uiStore.message.trim(),\n ticketId,\n files: {\n image_urls: photos.map((file) => file?.url ?? ''),\n video_urls: videos.map((file) => file?.url ?? ''),\n document_urls: [],\n },\n })\n\n await this.uiStore.getTicketList(true)\n this.uiStore.setSelectedTicket(this.uiStore.getTicket(ticketId))\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.sendMessageError')),\n description: (error as Error).message,\n })\n }\n }\n\n async fileUpload(files: ConvertedFile[]) {\n try {\n const promiseFiles: Promise[] = []\n\n for (const file of files) {\n /* mytodo: поменять после выкатки замков */\n const res = fileService.ticketFileUpload({\n totalSize: file.fileSize,\n content: file.content,\n entityType: FileEntityType.ticket,\n })\n\n promiseFiles.push(res)\n }\n\n return await Promise.all(promiseFiles)\n } catch (error) {\n notification.error({\n message: i18next.t(getSharedKey('api.filesUploadError')),\n description: (error as Error).message,\n })\n\n return []\n }\n }\n\n async closeTicket() {\n const ticketId = this.uiStore.selectedTicket?.id\n\n if (!ticketId) {\n return\n }\n\n try {\n await ticketApi.closeTicket(ticketId)\n\n this.uiStore.ticketStore.patchEntity(ticketId, {\n status: TicketStatus.closed,\n finishDate: new Date().toISOString(),\n })\n this.uiStore.setSelectedTicket(this.uiStore.getTicket(ticketId), true)\n\n return true\n } catch (error) {\n notification.error({ message: i18next.t(getKey('closeTicketError')), description: (error as Error).message })\n }\n }\n\n async rateTicket(grade: number, message: string) {\n const ticketId = this.uiStore.selectedTicket?.id\n\n if (!ticketId) {\n return\n }\n\n try {\n await ticketApi.rateTicket({ ticketId, grade, message })\n\n this.uiStore.ticketStore.patchEntity(ticketId, {\n ticketGrade: grade,\n gradeComment: message,\n })\n\n notification.success({ message: i18next.t(getKey('rateTicketSuccess')) })\n\n return true\n } catch (error) {\n notification.error({ message: i18next.t(getKey('rateTicketError')), description: (error as Error).message })\n }\n }\n}\n","import { action, computed, makeAutoObservable, observable, reaction } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\n\nimport { TicketStatus, TicketType } from '../../types'\nimport { Ticket } from '../entity/Ticket'\nimport { ViewTicketApiStore } from './ViewTicketApiStore'\n\nexport class ViewTicketUiStore {\n @observable page = 1\n @observable pageSize = 20\n @observable search = ''\n @observable searchTrigger = false\n @observable status: TicketStatus | null = null\n @observable ticketType: TicketType | null = null\n\n @observable selectedTicket: Ticket | null = null\n @observable message = ''\n @observable files: ConvertedFile[] = []\n\n @observable private readonly apiStore = new ViewTicketApiStore(this)\n\n constructor(readonly rootStore: IRootStore) {\n makeAutoObservable(this)\n\n reaction(\n () => [this.page, this.pageSize, this.searchTrigger, this.status, this.ticketType],\n () => {\n void this.getTicketList()\n },\n )\n }\n\n @computed\n get ticketStore() {\n return this.rootStore.ticketStore\n }\n\n @computed\n get ticketList() {\n return this.ticketStore.list\n }\n\n @computed\n getTicket(ticketId: number) {\n return this.ticketStore.getEntity(ticketId) ?? null\n }\n\n @computed\n get emptyFilters() {\n return this.search === '' && this.status === null && this.ticketType === null\n }\n\n @action\n setPage(value: number) {\n this.page = value\n }\n\n @action\n setPageSize(value: number) {\n if (this.pageSize !== value) {\n this.pageSize = value\n this.setPage(1)\n }\n }\n\n @action\n setSearch(value: string) {\n if (this.search !== value) {\n this.search = value.trim()\n this.setPage(1)\n }\n }\n\n @action\n setSearchTrigger(value: boolean) {\n this.searchTrigger = value\n }\n\n @action\n setStatus(value: TicketStatus | null) {\n this.status = value\n this.setPage(1)\n }\n\n @action\n setTicketType(value: TicketType | null) {\n this.ticketType = value\n this.setPage(1)\n }\n\n /** @param isSameLink Если true, то будет сброшен selectedTicket\n * Нужен для перерисовки, когда ссылка на элемент не меняется, но меняются отдельные поля\n */\n @action\n setSelectedTicket = (value: Ticket | null, isSameLink: boolean = false) => {\n if (isSameLink) {\n this.selectedTicket = null\n }\n\n this.selectedTicket = value\n }\n\n @action\n setMessage = (value: string) => {\n this.message = value\n }\n\n @action\n setFiles(value: ConvertedFile[]) {\n this.files = value\n }\n\n reset = () => {\n this.setMessage('')\n this.setFiles([])\n }\n\n async getTicketList(disableLoading: boolean = false) {\n return await this.ticketStore.loadList(disableLoading, {\n page: this.page,\n pageSize: this.pageSize,\n search: this.search,\n ticketStateId: this.status ?? undefined,\n sortByCreateDate: 'desc',\n ticketTypeIds: this.ticketType === null ? [TicketType.openingOrder, TicketType.roomLayout] : [this.ticketType],\n })\n }\n\n async createSupportLog() {\n return await this.apiStore.createSupportLog()\n }\n\n async closeTicket() {\n return await this.apiStore.closeTicket()\n }\n\n async rateTicket(grade: number, message: string) {\n return await this.apiStore.rateTicket(grade, message)\n }\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nexport class TimeWaiter {\n constructor(private readonly sunOfSec: number = 59) {\n makeObservable(this)\n }\n\n @observable private timeWait: number = 0\n private timerId: NodeJS.Timeout | null = null\n\n @computed\n get timeExpired() {\n const codeEta = `${this.timeWait / 1000}`\n return this.timeWait < 10000 ? `0${codeEta}` : codeEta\n }\n\n @computed\n get timeIsNotOver() {\n return this.timeWait > 0\n }\n\n startTimer = () => {\n this.setTimeWaitCodeSend(this.sunOfSec * 1000)\n this.timerId = setInterval(() => {\n this.setTimeWaitCodeSend(this.timeWait - 1000)\n if (this.timeWait <= 0) {\n this.clearTimer()\n }\n }, 1000)\n }\n\n clearTimer = () => {\n if (this.timerId) {\n clearInterval(this.timerId)\n }\n }\n\n @action\n private setTimeWaitCodeSend = (value: number) => {\n this.timeWait = value\n }\n}\n","import { hostName } from 'shared/types/types'\n\nexport const isGeDomain = (): boolean => {\n const currentDomain = window.location.hostname\n\n const searchParams = new URLSearchParams(window.location.search)\n const isStage = searchParams.get('isStage') === 'true'\n\n if (isStage) {\n localStorage.setItem('isStage', 'true')\n }\n\n const savedIsStage = localStorage.getItem('isStage') === 'true'\n\n return currentDomain === hostName.GE || savedIsStage\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport { getQueryUrl } from 'services/utils/getQueryUrl'\nimport { TokensDTO } from 'sections/LKSection/shared/types/types'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\nimport { Country, ResponseListData } from 'shared/types/types'\n\nimport {\n CompanyDTO,\n CompanyInfoDTO,\n GetDocumentParams,\n GetDocumentResponse,\n LoginByPhoneData,\n OfferSignParams,\n OfferVersionResponse,\n RegisterOwnerBody,\n SendSmsCodeData,\n UpdateCompanyDataDTO,\n UpdateOwnerBody,\n UrlType,\n UserInfoDTO,\n} from './types'\n\nconst httpService = new HttpService(appConfig.API_URL)\nconst discoveryHttpService = new HttpService(appConfig.DISCOVERY_URL)\nconst authHttpService = new HttpService(appConfig.AUTH_API_URL)\nconst offerHttpService = new HttpService(appConfig.OFFER_URL)\n\nexport const userApi = {\n loginByPhone: async (data: LoginByPhoneData): Promise<{ data: string; code?: string; code_length: number }> => {\n return await authHttpService.post('/api/v1/login', {\n body: {\n phone: data.phone,\n resend: data.resend,\n device_type: data.deviceType,\n country: data.country,\n device_uuid: data.deviceUuid,\n },\n })\n },\n\n sendSmsCode: async (data: SendSmsCodeData): Promise => {\n return authHttpService.post('/api/v1/validate', {\n body: {\n token: data.token,\n code: data.code,\n device_token: data.deviceToken,\n device_type: data.deviceType,\n device_uuid: data.deviceUuid,\n alian_device: data.alianDevice,\n device_name: data.deviceName,\n app_version: data.appVersion,\n },\n })\n },\n\n registerOwner: async (body: RegisterOwnerBody) => {\n await discoveryHttpService.post('/api/v3/owner/register', {\n body,\n })\n },\n\n getUser: async (): Promise> => {\n return await httpService.get('/api/v2/user')\n },\n\n getCompanies: async (): Promise => {\n const result = await discoveryHttpService.get>('/api/v3/pickpoint/owner/info')\n return result?.data ? convertKeysToCamelCase(result.data) : undefined\n },\n\n getCompanyInfo: async (param: string, type: UrlType): Promise => {\n const url = 'https://suggestions.dadata.ru/suggestions/api/4_1/rs/findById/' + type\n const token = '6aa6c4610172cd3ac53226f64516c1b6969ed7df'\n\n const response = await fetch(url, {\n method: 'POST',\n mode: 'cors',\n body: JSON.stringify({ query: param }),\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: 'Token ' + token,\n },\n })\n\n if (type === UrlType.bank && !response.ok) {\n throw new Error('')\n }\n\n return await response.json()\n },\n\n getOfferVersion: async (countryСode?: Country): Promise => {\n const queryUrl = getQueryUrl({\n country_code: countryСode,\n })\n const result = await offerHttpService.get(`/api/v3/offer?${queryUrl}`)\n\n return convertKeysToCamelCase(result)\n },\n\n signOfferVersion: async ({ version, countryCode }: OfferSignParams): Promise<{ success: boolean }> => {\n return await offerHttpService.post('/api/v2/sign', {\n body: {\n version,\n country_code: countryCode,\n },\n })\n },\n\n getDocument: async ({ userId, docType, citizenship }: GetDocumentParams): Promise => {\n const result = await discoveryHttpService.get(\n `/api/v4/owner/${userId}/document?doc_type=${docType}&citizenship=CITIZEN_${citizenship}`,\n )\n return convertKeysToCamelCase(result)\n },\n\n updateOwner: async (body: UpdateOwnerBody): Promise<{ data: true }> => {\n return await discoveryHttpService.post('/api/v3/owner/update', {\n body,\n })\n },\n\n updateCompany: async (data: Partial): Promise<{ data: boolean }> => {\n const patch = {\n id: data.id,\n bik: data.bik,\n email: data.email,\n inn: data.inn,\n kpp: data.kpp,\n ogrn: data.ogrn,\n okopf: data.okopf,\n okpo: data.okpo,\n org_name: data.orgName,\n org_type: data.orgType,\n\n tax_type: data.taxType,\n tax_files: data.taxFiles,\n\n pay_account: data.payAccount,\n country: data.country,\n bank_inn: data.bankInn,\n cor_account: data.corAccount,\n external_ad: data.externalAd,\n bank_name: data.bankName,\n bank_code: data.bankCode,\n beneficiary_pay_account: data.beneficiaryPayAccount,\n local_pay_account: data.localPayAccount,\n local_bik: data.localBik,\n\n identification_number: data.identification_number,\n passport: data.passport,\n date_of_issue: data.date_of_issue,\n department_code: data.department_code,\n passport_urls: data.passport_urls,\n gender: data.gender,\n date_of_birthday: data.dateOfBirthday,\n place_of_birth: data.placeOfBirth,\n passport_issued: data.passportIssued,\n registration_address: data.registrationAddress,\n permanent_residence_address: data.permanentResidenceAddress,\n }\n\n const result = await discoveryHttpService.post('/api/v3/pickpoint/owner/update', {\n body: { ...patch },\n })\n\n return convertKeysToCamelCase(result)\n },\n\n getAuthHash: async (mobileToken: string): Promise<{ token: string }> => {\n const result = await authHttpService.get<{ token: string }>('/api/v1/hash/get', {\n disableToken: true,\n headers: { 'x-token': mobileToken },\n })\n\n return result\n },\n\n useAuthHash: async (authHash: string): Promise => {\n return await authHttpService.post('/api/v1/hash/use', {\n body: {\n token: authHash,\n },\n })\n },\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeObservable, observable } from 'mobx'\n\nimport { setLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { TimeWaiter } from 'services/TimeWaiter'\nimport { IRootStore } from 'store/types'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { Country } from 'shared/types/types'\n\nimport { userApi } from '../api'\nimport { CountryItem, DEVICE_TYPE, UserModuleKeys } from '../types'\n\nconst getKey = (key: string) => `${UserModuleKeys.api}.${key}`\n\nexport enum LoginStatus {\n /** получили токен при входе (еще не токен для входа в приложение) */\n loggedIn = 0,\n /** не успешный вход */\n notLogged = 1,\n /** получили токен авторизации (токен для входа в приложение) */\n validateCode = 3,\n}\n\nexport class LoginUiStore {\n constructor(private readonly rootStore: IRootStore) {\n makeObservable(this)\n this.setDefaultState()\n }\n\n @observable phonePrefix: string = '+7'\n @observable countryCode: string = '7'\n @observable phone: string = ''\n @observable code: string = ''\n @observable codeLength: number = 0\n @observable loading: boolean = false\n timeWaiter = new TimeWaiter()\n\n // Сделано как временное решение пока нет дизайна\n @observable isValidateVisible: boolean = false\n\n /** токен, который получаем после api/v2/login */\n private loginToken: string = ''\n private timerId: NodeJS.Timeout | null = null\n private authHash = ''\n\n get appStore() {\n return this.rootStore.appStore\n }\n\n get country() {\n return this.rootStore.appStore.selectedCountry\n }\n\n @computed\n get fullPhone() {\n return `${this.phonePrefix}${this.phone}`\n }\n\n @computed\n get maxPhoneLengthByCountry() {\n let result = 0\n\n if ([Country.BY, Country.UZ, Country.KG, Country.GE, Country.TJ].includes(this.country)) {\n result = 12 - this.countryCode.length\n } else {\n result = 11 - this.countryCode.length\n }\n\n return result\n }\n\n @computed\n get phoneMaskByCountry() {\n let mask = '000 000-00-00'\n\n if ([Country.BY, Country.UZ, Country.KG].includes(this.country)) {\n mask = '00-000-00-00'\n } else if ([Country.GE, Country.TJ].includes(this.country)) {\n mask = '00-000-0000'\n } else if ([Country.AM].includes(this.country)) {\n mask = '00-000000'\n }\n\n return mask\n }\n\n @computed\n get allowLogin() {\n return this.maxPhoneLengthByCountry === this.phone.length\n }\n\n @action\n setValidateVisible = (value: boolean) => {\n this.isValidateVisible = value\n }\n\n @action\n setPhonePrefix = (value: string) => {\n this.phonePrefix = value\n }\n\n @action\n setCountryCode = (value: string) => {\n this.countryCode = value\n }\n\n @action\n setPhone = (value: string) => {\n this.phone = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setCode = (value: string) => {\n this.code = value\n }\n\n @action\n setCodeLength = (value: number) => {\n this.codeLength = value\n }\n\n @action\n setLoading = (value: boolean) => {\n this.loading = value\n }\n\n @action\n setSelectedCountry = (value?: CountryItem) => {\n if (!value) return\n this.rootStore.appStore.setSelectedCountry(value.country)\n this.phonePrefix = value.value\n this.setCountryCode(value.value)\n }\n\n @action\n setAuthHash = (value: string) => {\n this.authHash = value\n }\n\n @action\n tryLogin = async (resend: boolean) => {\n if (this.loading) {\n return LoginStatus.notLogged\n }\n\n try {\n this.setLoading(true)\n this.timeWaiter.clearTimer() // если таймер запущен, то останавливаем его, чтобы не запускать несколько таймеров\n\n const response = await userApi.loginByPhone({\n phone: +`${this.phonePrefix}${this.phone}`,\n resend,\n deviceType: DEVICE_TYPE.DEVICE_WEB,\n deviceUuid: await this.getDeviceUuid(),\n country: this.rootStore.appStore.selectedCountry,\n })\n\n const { data, code_length, code } = response\n\n this.setLoginToken(data)\n this.setCodeLength(code_length)\n\n if (code) {\n this.setLoading(false)\n this.setCode(code)\n const result = await this.validateCode()\n if (result) {\n return LoginStatus.validateCode\n }\n }\n this.timeWaiter.startTimer()\n return LoginStatus.loggedIn\n } catch (error) {\n notification.open({\n message: i18next.t(getKey('tryLogin')),\n description: (error as Error).message,\n duration: 3,\n })\n return LoginStatus.notLogged\n } finally {\n this.setLoading(false)\n }\n }\n\n validateCode = async () => {\n if (this.loading || this.code.length !== this.codeLength) {\n return\n }\n\n try {\n this.setLoading(true)\n const response = await userApi.sendSmsCode({\n token: this.loginToken,\n code: this.code,\n // TODO узнать за deviceToken возможно из-за него неправильное сообщение\n // При блокировке на 5 мин\n // deviceToken: this.rootStore.appStore.deviceToken,\n deviceType: DEVICE_TYPE.DEVICE_WEB,\n deviceUuid: await this.getDeviceUuid(),\n alianDevice: false,\n appVersion: 'v20.00.00',\n deviceName: 'mobile',\n })\n\n setLocalStorageData(STORAGE_KEY.ACCESS_TOKEN, response.access.token)\n setLocalStorageData(STORAGE_KEY.REFRESH_TOKEN, response.refresh.token)\n this.clearTimer()\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('tryLogin')),\n description: (error as Error).message,\n })\n return false\n } finally {\n this.setLoading(false)\n }\n }\n\n clearTimer = () => {\n if (this.timerId) {\n clearInterval(this.timerId)\n }\n }\n\n getAuthHash = async (mobileToken: string) => {\n try {\n const res = await userApi.getAuthHash(mobileToken)\n this.setAuthHash(res.token)\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('tryLogin')),\n description: (error as Error).message,\n })\n }\n }\n\n useAuthHash = async () => {\n try {\n const response = await userApi.useAuthHash(this.authHash)\n\n setLocalStorageData(STORAGE_KEY.ACCESS_TOKEN, response.access.token)\n setLocalStorageData(STORAGE_KEY.REFRESH_TOKEN, response.refresh.token)\n\n return true\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('tryLogin')),\n description: (error as Error).message,\n })\n }\n }\n\n @action\n setDefaultState = () => {\n if (isGeDomain()) {\n this.rootStore.appStore.setSelectedCountry(Country.GE)\n this.countryCode = '995'\n this.phonePrefix = '+995'\n } else {\n this.rootStore.appStore.setSelectedCountry(Country.RU)\n this.countryCode = '7'\n this.phonePrefix = '+7'\n }\n\n this.phone = ''\n this.code = ''\n this.loading = false\n this.timeWaiter = new TimeWaiter()\n this.loginToken = ''\n this.timerId = null\n this.isValidateVisible = false\n }\n\n @action\n private setLoginToken = (value: string) => {\n this.loginToken = value\n }\n\n private async getDeviceUuid() {\n return this.rootStore.appStore.getDeviceUuid()\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, makeAutoObservable } from 'mobx'\n\nimport { Country } from 'shared/types/types'\n\nimport { userApi } from '../../api'\nimport { OfferSignParams, UserModuleKeys } from '../../types'\nimport { OfferUiStore } from './OfferUiStore'\n\nconst getKey = (key: string) => `${UserModuleKeys.regisgtrationPage}.${key}`\n\nexport class OfferApiStore {\n constructor(protected readonly uiStore: OfferUiStore) {\n makeAutoObservable(this)\n }\n\n @action\n signOfferVersion = async (params: OfferSignParams): Promise => {\n this.uiStore.setLoading(true)\n try {\n const { success } = await userApi.signOfferVersion(params)\n return success\n } catch (error) {\n notification.error({\n message: i18next.t(getKey('Ошибка подписания оферты')),\n description: (error as Error).message,\n })\n throw error\n } finally {\n this.uiStore.setLoading(false)\n }\n }\n\n @action\n getOfferVersion = async (countryCode?: Country) => {\n const uiStore = this.uiStore\n const result = await userApi.getOfferVersion(countryCode)\n\n uiStore.setOffers(result.offers)\n }\n}\n","import { Modal } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeObservable, observable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { colors } from 'shared/constants/values'\n\nimport { OfferDTO, UserModuleKeys } from '../../types'\nimport { OfferApiStore } from './OfferApiStore'\n\nconst getApiKey = (key: string) => `${UserModuleKeys.api}.${key}`\nexport class OfferUiStore {\n @observable offers: OfferDTO[] = []\n\n @observable modalVisible: boolean = false\n @observable apiStore = new OfferApiStore(this)\n @observable loading = false\n\n constructor(private readonly rootStore: IRootStore) {\n makeObservable(this)\n }\n\n @action\n setModalVisible = (value: boolean) => {\n this.modalVisible = value\n }\n\n @computed\n get linksForOfferModal() {\n return this.offersForSign\n .map((offer) => {\n return [offer.offer, offer.application, offer.tariffs, offer.static]\n })\n .flat()\n }\n\n @computed\n get linksForRegistration() {\n return this.offers\n .map((offer) => {\n return [offer.offer, offer.application, offer.tariffs, offer.static]\n })\n .flat()\n }\n\n @computed\n get btnTitles() {\n return [i18next.t(getSharedKey('next')), i18next.t(getSharedKey('next')), i18next.t(getSharedKey('cancel'))]\n }\n\n @computed\n get offersForSign() {\n return this.offers.filter((offer) => offer.signedVersion < offer.lastVersion)\n }\n\n @computed\n get needSignOffer() {\n let needSignOffer = false\n this.offers.forEach((offer) => {\n if (offer.signedVersion < offer.lastVersion) {\n needSignOffer = true\n }\n })\n return needSignOffer\n }\n\n @action\n setOffers = (offers: OfferDTO[]) => {\n this.offers = offers\n }\n\n @action\n setLoading = (value: boolean) => {\n this.loading = value\n }\n\n @action\n checkOfferVersion = async () => {\n await this.apiStore.getOfferVersion()\n if (this.rootStore.appStore.hasEntity && this.rootStore.appStore.user.authenticated) {\n if (!this.modalVisible && this.needSignOffer) {\n Modal.info({\n title: i18next.t(getApiKey('Вышла новая версия оферты')),\n content: i18next.t(getApiKey('Для продолжения работы с приложением')),\n onOk: () => this.setModalVisible(true),\n okButtonProps: { style: { backgroundColor: colors.corp } },\n })\n }\n }\n }\n}\n","import * as React from \"react\";\nconst SvgArrow1 = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 13 23\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.25 21.25L1.5 11.5L11.25 1.75\", stroke: \"#090909\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrow1;\n","import classNames from 'classnames'\nimport { FC, HTMLAttributes } from 'react'\n\nimport ArrowIcon from 'assets/img/shared/arrow1.svg?react'\nimport s from './ButtonPromo.module.scss'\n\ninterface ButtonProps extends HTMLAttributes {\n variant?: 'white' | 'purple' | 'pink' | 'arrow' | 'darkGray'\n fullWidth?: boolean\n disabled?: boolean\n round?: boolean\n style?: React.CSSProperties\n className?: string\n}\n\nexport const ButtonPromo: FC = ({\n children,\n variant = 'purple',\n fullWidth = false,\n disabled = false,\n round = false,\n style,\n className,\n onClick,\n ...props\n}) => {\n const classes = classNames(s.btn, [s[variant]], className, {\n [s.fullWidth]: fullWidth,\n [s.disabled]: disabled,\n [s.round]: round,\n })\n\n return (\n \n )\n}\n","import classNames from 'classnames'\nimport { FC } from 'react'\nimport { Link } from 'react-router-dom'\nimport { HashLink } from 'react-router-hash-link'\n\nimport s from './Href.module.scss'\n\ninterface PropsType extends Omit, 'type'> {\n href: string\n /**\n * - 'hash' - ссылка будет иметь вид \"#/yourpath, для якорных ссылок\n * - 'search' - для перехода на другой сайт\n * - 'pathname' - для перехода на другую страницу\n */\n linkType?: 'hash' | 'search' | 'pathname'\n type?: 'white' | 'corp' | 'text'\n target?: '_blank' | '_self'\n download?: boolean | string\n onClick?: React.MouseEventHandler\n}\n\nexport const Href: FC = ({\n href,\n children,\n linkType = 'pathname',\n type = 'corp',\n target = '_self',\n download = false,\n className,\n style,\n onClick,\n}) => {\n const classes = classNames(\n {\n [s.white]: type === 'white',\n [s.corp]: type === 'corp',\n [s.text]: type === 'text',\n },\n className,\n )\n\n return (\n <>\n {linkType === 'pathname' && (\n \n {children}\n \n )}\n\n {linkType === 'hash' && (\n \n {children}\n \n )}\n\n {linkType === 'search' && (\n \n {children}\n \n )}\n \n )\n}\n","export const getAltFromSrc = (src: string) => {\n if (!src) return 'img'\n\n let canPush = false\n const alt: string[] = []\n\n for (let i = src.length - 1; i >= 0; i--) {\n if (src[i] === '/') {\n break\n }\n\n if (!canPush && src[i + 1] === '.') {\n canPush = true\n }\n\n if (canPush) {\n alt.unshift(src[i])\n }\n }\n\n return alt.join('').split('.')[0] || ''\n}\n","import { useEffect, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex, Image, Text } from 'components/uiKit'\nimport { getAltFromSrc } from 'utils/helpers/getAltFromSrc/getAltFromSrc'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { colors } from 'shared/constants/values'\n\nimport s from './Chat.module.scss'\n\nexport type MessagesType = {\n name: string\n text: string\n me: boolean\n date: Date\n time?: string\n photos?: string[]\n videos?: string[]\n}\n\ntype ChatProps = {\n messages: MessagesType[]\n}\n\nexport const Chat = ({ messages }: ChatProps) => {\n const { t } = useTranslation()\n\n const ref = useRef(null)\n\n useEffect(() => {\n if (ref.current && messages.length) {\n ref.current.scrollTop = ref.current.scrollHeight\n }\n }, [messages])\n\n return (\n
\n \n {messages.map((message, index) => (\n \n \n \n {message.name}\n \n\n {message.text}\n\n \n {message.photos?.map((file) => {getAltFromSrc(file)})}\n \n\n {message.videos?.map((file) => (\n \n \n {t(getSharedKey('videoURL'))}\n \n \n ))}\n\n \n {message.time}\n \n \n \n ))}\n \n
\n )\n}\n","import classnames from 'classnames'\nimport { ComponentProps, FC } from 'react'\n\nimport cls from './TextPromo.module.scss'\n\ninterface TextProps extends ComponentProps<'div'> {\n size?:\n | 's12'\n | 's14'\n | 's16'\n | 's18'\n | 's20'\n | 's22'\n | 's23'\n | 's24'\n | 's28'\n | 's30'\n | 's32'\n | 's36'\n | 's40'\n | 's48'\n | 's44'\n | 's48'\n | 's56'\n | 's64'\n | 's70'\n | 's96'\n | 's103'\n | 's106'\n | 's128'\n color?: 'default' | 'white' | 'primary' | 'gray' | 'blue' | 'greyInvert'\n weight?: 'w400' | 'w500' | 'w550' | 'w700'\n fontFamily?: 'ASLHauss' | 'Unbounded' | 'ASLHaussVF'\n pointer?: boolean\n center?: boolean\n underline?: boolean\n}\n\nexport const TextPromo: FC = ({\n children,\n size = 'medium',\n color = 'default',\n fontFamily = 'Unbounded',\n weight = '400',\n className,\n pointer = false,\n center,\n underline,\n ...props\n}) => {\n const classes = classnames(cls.text, cls[`text--${size}`], cls[`text--${color}`], className, [\n cls[`text--${fontFamily}`],\n cls[`text--${weight}`],\n {\n [cls.pointer]: pointer,\n [cls.center]: center,\n [cls.underline]: underline,\n },\n ])\n\n return (\n \n {children}\n \n )\n}\n","import classNames from 'classnames'\nimport { CSSProperties, FC, InputHTMLAttributes, LegacyRef, useState } from 'react'\n\nimport { Flex } from 'components/uiKit'\nimport { colors } from 'shared/constants/values'\n\nimport { TextPromo } from '../TextPromo/TextPromo'\n\nimport s from './InputPromo.module.scss'\n\ninterface IInputProps extends InputHTMLAttributes {\n containerStyle?: CSSProperties\n onChangeText?: (value: string) => void\n suffix?: string\n inputRef?: LegacyRef | undefined\n}\n\nexport const InputPromo: FC = ({\n value,\n className,\n suffix,\n onChangeText,\n onChange,\n inputRef,\n containerStyle,\n ...other\n}) => {\n const [isFocused, setIsFocused] = useState(false)\n\n return (\n \n \n {suffix && (\n \n {suffix}\n \n )}\n onChangeText(value) : onChange}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n ref={inputRef}\n {...other}\n />\n \n \n )\n}\n","import i18n from 'i18next'\n\nimport { SupportedLanguages } from 'shared/types/types'\n\nconst SUPPORTED_LANGUAGES = [SupportedLanguages.RU, SupportedLanguages.GE] as const\n\nexport const getNormalizedLanguage = (): SupportedLanguages => {\n const currentLanguage = i18n.language.split('-')[0]\n if (SUPPORTED_LANGUAGES.includes(currentLanguage as SupportedLanguages)) {\n return currentLanguage as SupportedLanguages\n }\n return SupportedLanguages.RU\n}\n\nexport const isLanguage = (language: SupportedLanguages): boolean => {\n return getNormalizedLanguage() === language\n}\n","import { MenuProps } from 'antd'\nimport { useTranslation } from 'react-i18next'\nimport { GlobalOutlined } from '@ant-design/icons'\n\nimport { Dropdown, Flex } from 'components/uiKit'\nimport { getNormalizedLanguage } from 'utils/helpers/i18n/getCurrentLanguage'\nimport { colors } from 'shared/constants/values'\n\nimport { TextPromo } from '../TextPromo/TextPromo'\n\nimport s from './LangSwitcher.module.scss'\n\ntype SupportedLanguages = 'ru' | 'ka'\n\ntype LangSwitcherProps = {\n style?: React.CSSProperties\n}\n\nexport const LangSwitcher = ({ style }: LangSwitcherProps) => {\n const { i18n } = useTranslation()\n\n const languageMapping: Record = {\n ru: 'RU',\n ka: 'GE',\n }\n\n const items: MenuProps['items'] = [\n {\n key: '1',\n label: 'Русский',\n onClick: () => {\n i18n.changeLanguage('ru').then(() => {\n sessionStorage.setItem('i18nextLng', 'ru')\n window.location.reload()\n })\n },\n },\n {\n key: '3',\n label: 'ქართული',\n onClick: () => {\n i18n.changeLanguage('ka').then(() => {\n sessionStorage.setItem('i18nextLng', 'ka')\n window.location.reload()\n })\n },\n },\n ]\n\n return (\n
{menu}
}\n >\n \n \n {languageMapping[getNormalizedLanguage()]}\n \n \n \n \n )\n}\n","import { ReactNode } from 'react'\n\ntype MarginProps = {\n /** margin общий */\n m?: number\n /** margin сверху */\n mt?: number\n /** margin снизу */\n mb?: number\n /** margin слева */\n ml?: number\n /** margin справа */\n mr?: number\n /** margin слева и справа */\n mx?: number\n /** margin сверху и снизу */\n my?: number\n className?: string\n children?: ReactNode\n}\n\nexport const Margin = ({ m, mt, mb, ml, mr, mx, my, className, children }: MarginProps) => {\n const margin = m ? m : mx ? `0 ${mx}px` : my ? `${my}px 0` : undefined\n\n const getStyle = () => {\n let styles = {}\n\n if (margin) {\n styles = { ...styles, margin }\n }\n if (mt) {\n styles = { ...styles, marginTop: mt }\n }\n if (mb) {\n styles = { ...styles, marginBottom: mb }\n }\n if (ml) {\n styles = { ...styles, marginLeft: ml }\n }\n if (mr) {\n styles = { ...styles, marginRight: mr }\n }\n return styles\n }\n\n return (\n
\n {children}\n
\n )\n}\n","import { ReactNode } from 'react'\n\ntype PaddingProps = {\n /** padding общий */\n p?: number\n /** padding сверху */\n pt?: number\n /** padding снизу */\n pb?: number\n /** padding слева */\n pl?: number\n /** padding справа */\n pr?: number\n /** padding слева и справа */\n px?: number\n /** padding сверху и снизу */\n py?: number\n className?: string\n style?: React.CSSProperties\n children?: ReactNode\n}\n\nexport const Padding = ({ p, pt, pb, pl, pr, px, py, className, style, children }: PaddingProps) => {\n const padding = p ? p : px ? `0 ${px}px` : py ? `${py}px 0` : undefined\n\n const getStyle = () => {\n if (padding) {\n return {\n padding,\n }\n } else if (pt) {\n return {\n paddingTop: pt,\n }\n } else if (pb) {\n return {\n paddingBottom: pb,\n }\n } else if (pl) {\n return {\n paddingLeft: pl,\n }\n } else if (pr) {\n return {\n paddingRight: pr,\n }\n }\n }\n\n return (\n
\n {children}\n
\n )\n}\n","import { default as MySelect } from 'react-select'\nimport { default as MySelectAsync } from 'react-select/async'\n\nimport { colors } from 'shared/constants/values'\n\ntype ReactSelectProps = React.ComponentProps &\n Partial> & {\n async?: boolean,\n isSearchable?:boolean\n }\n\nexport const ReactSelect = ({ async = false, isSearchable = false, ...props }: ReactSelectProps) => {\n return (\n <>\n {async ? (\n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: colors.corpLight,\n primary: colors.corp,\n },\n })}\n />\n ) : (\n ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: colors.corpLight,\n primary: colors.corp,\n },\n })}\n />\n )}\n \n )\n}\n","import React, { InputHTMLAttributes } from 'react'\n\ninterface SpaceProps extends InputHTMLAttributes {\n size: number\n direction?: 'horizontal' | 'vertical'\n}\n\nexport const Space: React.FC = ({ size, direction = 'vertical', ...other }) => {\n const style = direction === 'horizontal' ? { width: `${size}px` } : { height: `${size}px` }\n\n return
\n}\n","import { Country } from 'shared/types/types'\n\nexport const masks = {\n [Country.RU]: '999 999-99-99',\n [Country.KZ]: '999 999-99-99',\n [Country.UZ]: '99 999 9999',\n [Country.BY]: '99 999-99-99',\n [Country.AM]: '99 999999',\n [Country.KG]: '999 999999',\n [Country.GE]: '99 999 9999',\n [Country.TJ]: '99 999 9999',\n [Country.TM]: '99 99 99-99',\n}\n\nexport const masksForFullPhone = {\n [Country.RU]: `+9 ${masks.RU}`,\n [Country.KZ]: `+9 ${masks.KZ}`,\n [Country.AM]: `+999 ${masks.AM}`,\n [Country.BY]: `+999 ${masks.BY}`,\n [Country.UZ]: `+999 ${masks.UZ}`,\n [Country.KG]: `+996 ${masks.KG}`,\n [Country.GE]: `+995 ${masks.KG}`,\n [Country.TJ]: `+992 ${masks.KG}`,\n [Country.TM]: `+993 ${masks.KG}`,\n}\n\nexport const phonePrefix = {\n [Country.RU]: '7',\n [Country.KZ]: '7',\n [Country.AM]: '374',\n [Country.BY]: '375',\n [Country.UZ]: '998',\n [Country.KG]: '996',\n [Country.GE]: '995',\n [Country.TJ]: '992',\n [Country.TM]: '993',\n}\n","import { useEffect, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport InputMask from 'react-input-mask'\n\nimport { countriesAuth } from 'sections/LKSection/modules/UserModule/data'\nimport { UserModuleKeys } from 'sections/LKSection/modules/UserModule/types'\nimport { Margin } from 'components/ui'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { Flex, Input, Text } from 'components/uiKit'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { masks, phonePrefix } from './data'\n\nimport s from './CountryPhoneInput.module.scss'\n\nexport interface CountryPhoneInputProps {\n phonePrefix: string\n phone: string\n country: Country\n disableCountry?: boolean\n setPhone: (value: string) => void\n setSelectedCountry: (value?: CountryItem) => void\n}\n\nexport type CountryItem = {\n label: string\n value: string\n country: Country\n}\n\nexport const getPhoneWithoutPrefix = (country: Country, phone?: string): string => {\n if (!phone) {\n return ''\n }\n const prefix = phonePrefix[country]\n return phone.startsWith(prefix) ? phone.slice(prefix.length) : phone\n}\n\nconst phoneAMlength = 8\n\nexport function CountryPhoneInput({\n phone,\n country,\n setPhone,\n setSelectedCountry,\n disableCountry = false,\n}: CountryPhoneInputProps) {\n const { t } = useTranslation()\n const phoneAM = phone.slice(0, phoneAMlength)\n const getKey = (key: string) => `${UserModuleKeys.countryPhoneInput}.${key}`\n\n // TODO Понять зачем тут обратотка для армении\n useEffect(() => {\n if (country === Country.AM) {\n setPhone(phoneAM)\n }\n }, [country])\n\n const localizedCountries = useMemo(() => {\n return countriesAuth.map((country) => ({\n ...country,\n label: t(getSharedKey(country.value.label)),\n }))\n }, [t])\n\n const localizedCountry = (value: BaseOption) => {\n return {\n ...value,\n label: t(getSharedKey(value.label)),\n }\n }\n\n function getSharedKey(key: string) {\n return `${UserModuleKeys.countries}.${key}`\n }\n\n function handlePaste(event: React.ClipboardEvent) {\n event.preventDefault()\n let pasteData = event.clipboardData.getData('Text').replace(/\\D/g, '')\n\n const countryPrefix = phonePrefix[country]\n\n if (pasteData.length === 11 && pasteData.startsWith('8')) {\n pasteData = countryPrefix + pasteData.slice(1)\n }\n\n if (!pasteData.startsWith(countryPrefix)) {\n pasteData = countryPrefix + pasteData\n }\n const formattedNumber = getPhoneWithoutPrefix(country, pasteData)\n setPhone(formattedNumber)\n }\n\n return (\n \n value.value.country === country) ?? countriesAuth[0])}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onChange={(item) => setSelectedCountry(item.value as CountryItem)}\n isDisabled={disableCountry}\n />\n \n \n \n {t(getKey('Код'))}\n value.value.country === country)?.value.value\n : countriesAuth[0].value.value\n }`}\n />\n \n \n {t(getKey('Телефон'))}\n setPhone(e.target.value)}\n onPaste={handlePaste}\n mask={masks[country]}\n placeholder={masks[country]}\n type=\"tel\"\n />\n \n \n \n \n )\n}\n","import { Citizenship, DocumentType } from '../../../../types'\n\nconst cisPassportData = {\n label: 'Номер паспорта',\n placeholder: 'Паспорт №',\n maxLength: 40,\n}\n\nexport const RequisitesCIS = {\n [Citizenship.AM]: {\n [DocumentType.passport]: {\n label: 'Номер паспорта',\n placeholder: 'Паспорт №',\n maxLength: 40,\n },\n [DocumentType.identification]: {\n label: 'ID №',\n placeholder: '123456789',\n maxLength: 9,\n },\n },\n\n [Citizenship.BY]: {\n [DocumentType.passport]: {\n label: 'ID №',\n placeholder: '12345678АБ9ТР0',\n maxLength: 14,\n },\n [DocumentType.identification]: {\n label: 'ID №',\n placeholder: '12345678АБ9ТР0',\n maxLength: 14,\n },\n },\n\n [Citizenship.KG]: {\n [DocumentType.passport]: {\n label: 'Персональный номер',\n placeholder: '12345678901234',\n maxLength: 14,\n },\n [DocumentType.identification]: {\n label: 'Персональный номер',\n placeholder: '12345678901234',\n maxLength: 14,\n },\n },\n\n [Citizenship.KZ]: {\n [DocumentType.passport]: {\n label: 'ID №',\n placeholder: '123456789012',\n maxLength: 12,\n },\n [DocumentType.identification]: {\n label: 'ID №',\n placeholder: '123456789012',\n maxLength: 12,\n },\n },\n\n [Citizenship.UZ]: {\n [DocumentType.passport]: {\n label: 'Номер паспорта',\n placeholder: 'Паспорт №',\n maxLength: 40,\n },\n [DocumentType.identification]: {\n label: 'ID №',\n placeholder: '123456789012345',\n maxLength: 15,\n },\n },\n\n [Citizenship.GE]: {\n [DocumentType.identification]: {\n label: 'Персональный номер',\n placeholder: '12345678901',\n maxLength: 11,\n },\n },\n\n [Citizenship.TJ]: {\n [DocumentType.identification]: {\n label: 'ID №',\n placeholder: '1234567890123',\n maxLength: 13,\n },\n },\n}\n\nexport const passport = {\n [Citizenship.RU]: {\n label: 'Серия и номер',\n placeholder: '1234567890',\n maxLength: 10,\n },\n\n [Citizenship.AM]: {\n label: 'Номер паспорта',\n placeholder: 'AS0592160',\n maxLength: 9,\n },\n [Citizenship.BY]: {\n label: 'Номер паспорта',\n placeholder: 'BY1234567',\n maxLength: 9,\n },\n [Citizenship.KG]: {\n label: 'Номер документа',\n placeholder: 'PE1234567',\n maxLength: 9,\n },\n [Citizenship.KZ]: {\n label: 'Номер паспорта',\n placeholder: 'N12345678',\n maxLength: 9,\n },\n [Citizenship.UZ]: {\n label: 'Номер документа',\n placeholder: 'AB1234567',\n maxLength: 9,\n },\n [Citizenship.GE]: cisPassportData,\n [Citizenship.TJ]: cisPassportData,\n}\n\nexport const DepartmentCodeFormat = {\n [Citizenship.TJ]: {\n [DocumentType.passport]: undefined,\n [DocumentType.identification]: undefined,\n },\n [Citizenship.KZ]: {\n [DocumentType.passport]: undefined,\n [DocumentType.identification]: undefined,\n },\n [Citizenship.RU]: {\n [DocumentType.passport]: {\n label: 'Код подразделения',\n placeholder: '123-123',\n maxLength: 7,\n },\n [DocumentType.identification]: undefined,\n },\n [Citizenship.AM]: {\n [DocumentType.passport]: {\n label: 'Код подразделения/кем выдан',\n placeholder: '123',\n maxLength: 3,\n },\n [DocumentType.identification]: {\n label: 'Код подразделения/кем выдан',\n placeholder: '123',\n maxLength: 3,\n },\n },\n\n [Citizenship.BY]: {\n [DocumentType.passport]: undefined,\n [DocumentType.identification]: {\n label: 'Код органа, выдавшего документ',\n placeholder: '123',\n maxLength: 3,\n },\n },\n\n [Citizenship.UZ]: {\n [DocumentType.passport]: undefined,\n [DocumentType.identification]: {\n label: 'Код органа, выдавшего документ',\n placeholder: 'IIV 12345',\n maxLength: 9,\n },\n },\n\n [Citizenship.KG]: {\n [DocumentType.passport]: {\n label: 'Орган выдачи',\n placeholder: 'МКК 123456',\n maxLength: 10,\n },\n [DocumentType.identification]: {\n label: 'Орган выдачи документа',\n placeholder: 'МКК 12-345',\n maxLength: 10,\n },\n },\n\n [Citizenship.GE]: {\n [DocumentType.passport]: undefined,\n [DocumentType.identification]: undefined,\n },\n}\n\nexport const documentNumberFormat = {\n [Citizenship.RU]: {\n placeholder: '',\n maxLength: 0,\n },\n [Citizenship.TJ]: {\n placeholder: 'A12345678',\n maxLength: 9,\n },\n [Citizenship.KZ]: {\n placeholder: '123456789',\n maxLength: 9,\n },\n\n [Citizenship.AM]: {\n placeholder: '123456789',\n maxLength: 9,\n },\n\n [Citizenship.BY]: {\n placeholder: 'BY1234567',\n maxLength: 9,\n },\n\n [Citizenship.UZ]: {\n placeholder: 'AD1234567',\n maxLength: 9,\n },\n\n [Citizenship.KG]: {\n placeholder: 'PE1234567',\n maxLength: 9,\n },\n\n [Citizenship.GE]: {\n placeholder: '00AB12345',\n maxLength: 9,\n },\n}\n\nexport const fioPlaceholders = {\n [Citizenship.RU]: { lastName: 'Иванов', firstName: 'Иван', middleName: 'Иванович' },\n [Citizenship.TJ]: { lastName: 'Иванов', firstName: 'Иван', middleName: 'Иванович' },\n [Citizenship.KZ]: { lastName: 'Иванов', firstName: 'Иван', middleName: 'Иванович' },\n [Citizenship.AM]: { lastName: 'Ivanov', firstName: 'Ivan', middleName: 'Ivanovich' },\n [Citizenship.BY]: { lastName: 'Ivanov', firstName: 'Ivan', middleName: 'Ivanovich' },\n [Citizenship.UZ]: { lastName: 'Ivanov', firstName: 'Ivan', middleName: 'Ivanovich' },\n [Citizenship.KG]: { lastName: 'Иванов', firstName: 'Иван', middleName: 'Иванович' },\n [Citizenship.GE]: { lastName: 'Ivanov', firstName: 'Ivan', middleName: 'Ivanovich' },\n}\n\nexport const passportIssuedPlaceholders = {\n [Citizenship.RU]: { [DocumentType.passport]: 'ТП 00 в городе Москва', [DocumentType.identification]: '' },\n [Citizenship.TJ]: { [DocumentType.passport]: 'ШВКД-1 ДАР ШАХРИ ИСФАРА', [DocumentType.identification]: '' },\n [Citizenship.KZ]: {\n [DocumentType.passport]: 'Министерство Юстиций',\n [DocumentType.identification]: 'Республика Казахастан',\n },\n [Citizenship.AM]: { [DocumentType.passport]: '123', [DocumentType.identification]: '123' },\n [Citizenship.BY]: { [DocumentType.passport]: 'Ministry of Internal Affairs', [DocumentType.identification]: 'Ministry of Internal Affairs' },\n [Citizenship.UZ]: { [DocumentType.passport]: 'XIVA TUMANI IIB', [DocumentType.identification]: 'IIV 12345' },\n [Citizenship.KG]: { [DocumentType.passport]: 'MKK 123456', [DocumentType.identification]: 'МКК 123456' },\n [Citizenship.GE]: { [DocumentType.passport]: 'Ministry of Justice', [DocumentType.identification]: '' },\n}\n","import { ValidFormItem } from '../types'\n\nexport const regExpOnlyLatin = (value: string) => !/^[a-zA-Z\\s.,-_]+$/.test(value)\n\nexport const getRequiredError = (value: string): ValidFormItem[] => {\n return [{ invalid: value?.trim?.().length === 0, error: 'Поле не может быть пустым' }]\n}\n\nexport const getOnlyLatinCharError = (value: string): ValidFormItem[] => {\n return [{ invalid: regExpOnlyLatin(value), error: 'Поле должно быть указано на латинице' }]\n}\n","export const validateAnBik = (account: string, bik: string) => {\n if (!account || !bik) {\n return false\n }\n\n const bikRs = bik.toString().slice(-3) + account\n\n let checksum = 0\n const coefficients = [7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1, 3, 7, 1]\n\n coefficients.forEach((item, i) => {\n checksum += coefficients[i] * (parseInt(bikRs[i]) % 10)\n })\n\n return checksum % 10 === 0\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\nimport { action, computed, makeObservable, observable } from 'mobx'\n\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { ALL_EXCEPT_NUMBERS_REGEXP, NOT_LATIN_CYRILLIC } from 'shared/constants/regExp'\nimport { BaseOption, Country } from 'shared/types/types'\nimport { PropType } from 'types/types'\n\nimport { userApi } from '../../api'\nimport {\n DepartmentCodeFormat,\n documentNumberFormat,\n passport as passportRequisites,\n RequisitesCIS,\n} from '../../components/PersonalDataSteps/PassportStep/PassportForm/requisites'\nimport {\n accountDetails,\n citizenshipOptions,\n companyNameWithCompanyType,\n countries,\n countryInnValue,\n DaDataOrderLoadProp,\n taxCheckStatusName,\n} from '../../data'\nimport {\n Citizenship,\n CompanyInfoDTO,\n CompanyType,\n DocumentType,\n GENDER,\n TaxCheckStatusType,\n TaxTypes,\n UrlType,\n UserModuleKeys,\n} from '../../types'\nimport { regExpOnlyLatin } from '../../utils/getRequiredError'\nimport { validateAnBik } from '../../utils/validateAnBik'\n\nconst getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n\nexport class CompanyDetailsViewModel {\n @observable loading = false\n\n // шаг 1. Форма деятельности\n @observable selectedCountry: CountryItem = countries[0].value\n @observable companyType: CompanyType = CompanyType.ip\n @observable taxType: TaxTypes = TaxTypes.usn\n @observable taxFiles: string[] = []\n @observable taxFilesUI: string[] = []\n @observable inn = ''\n @observable innText = ''\n @observable companyName = ''\n @observable bankInn = ''\n @observable corAccount = ''\n @observable bankName = ''\n @observable bik = ''\n @observable payAccount = ''\n\n @observable taxCheckStatus: TaxCheckStatusType = TaxCheckStatusType.review\n @observable taxCheckStatusComment = ''\n\n @observable legalAddress = ''\n @observable gln = ''\n\n @observable loadingCompanyInfo = false\n @observable loadedCompanyInfo = false\n @observable needRemoteValidateBik = true\n\n @observable acceptPersonalInfo: boolean = false\n\n // шаг 2. Персональные данные\n @observable selectedCitizenship: BaseOption = citizenshipOptions[0]\n @observable documentType: DocumentType = DocumentType.passport\n @observable passport = ''\n @observable identificationNumber = ''\n @observable dateOfIssue = ''\n @observable departmentCode = ''\n @observable gender: GENDER = GENDER.MALE // МУЖ. ЖЕН.\n @observable dateOfBirthday = ''\n @observable placeOfBirth = ''\n @observable passportIssued = ''\n @observable nationality = ''\n @observable expirationDate = ''\n @observable documentNumber = ''\n @observable iin = ''\n @observable socialCardNumber = ''\n @observable personalNumber = ''\n @observable registrationAddress = ''\n @observable permanentResidenceAddress = ''\n @observable innCitizen = ''\n\n // шаг 3. Прикрепление файлов удостоверения личности\n @observable passportFileLoading: boolean = false\n\n @observable documentPhotoUI: string[] = []\n @observable withDocumentPhotoUI: string[] = []\n\n @observable documentPhoto: string[] = []\n @observable withDocumentPhoto: string[] = []\n\n @observable dadataMap = {\n [DaDataOrderLoadProp.bik]: false,\n [DaDataOrderLoadProp.companyName]: false,\n }\n\n constructor() {\n makeObservable(this)\n }\n\n @computed\n get isInvalidLegalAddress(): boolean {\n return this.legalAddress.trim().length === 0\n }\n\n @computed\n get isInvalidGln(): boolean {\n return this.gln.trim().length !== accountDetails.BY.gln\n }\n\n @computed\n get isInvalidInnCitizen(): boolean {\n return this.innCitizen.trim().length < 9\n }\n\n @computed\n get isInvalidRegistrationAddress(): boolean {\n return this.registrationAddress.trim().length < 2\n }\n\n @computed\n get isInvalidPermanentResidenceAddress(): boolean {\n return this.permanentResidenceAddress.trim().length < 2\n }\n\n @computed\n get isInvalidIdentificationNumber(): boolean {\n if (this.selectedCitizenship.value !== Citizenship.RU) {\n return (\n this.identificationNumber.trim().length !==\n RequisitesCIS[this.selectedCitizenship.value][DocumentType.identification].maxLength\n )\n }\n\n return this.identificationNumber.trim() === ''\n }\n\n @computed\n get isInvalidDocumentPhoto(): boolean {\n return !this.documentPhoto[0] || !this.documentPhoto[1]\n }\n\n @computed\n get isInvalidWithDocumentPhoto(): boolean {\n return this.documentType === DocumentType.passport\n ? !this.withDocumentPhoto[0]\n : !(this.withDocumentPhoto[0] && this.withDocumentPhoto[1])\n }\n\n @computed\n get isInvalidPersonalNumber(): boolean {\n return this.personalNumber.trim().length < 14\n }\n\n @computed\n get isInvalidSocialCardNumber(): boolean {\n return this.socialCardNumber.trim().length < 10\n }\n\n @computed\n get isInvalidIin(): boolean {\n return this.iin.trim().length !== 12\n }\n\n @computed\n get isInvalidDocumentNumber(): boolean {\n return this.documentNumber.trim().length !== documentNumberFormat[this.selectedCitizenship.value].maxLength\n }\n\n @computed\n get isInvalidNationality(): boolean {\n return this.nationality.trim().length < 2\n }\n\n @computed\n get onlyTaxUsnCountry(): boolean {\n return [Country.BY, Country.KZ, Country.AM, Country.KG, Country.UZ].some(\n (country) => country === this.selectedCountry.country,\n )\n }\n\n @computed\n get hasTaxFiles(): boolean {\n return this.taxFiles.length !== 0\n }\n\n @computed\n get isInvalidPassport(): boolean {\n return this.passport.trim().length !== passportRequisites[this.selectedCitizenship.value].maxLength\n }\n\n @computed\n get isInvalidDateOfIssue(): boolean {\n return this.dateOfIssue === ''\n }\n\n @computed\n get isInvalidDepartmentCode(): boolean {\n const maxLenght = DepartmentCodeFormat[this.selectedCitizenship.value][this.documentType]?.maxLength\n return maxLenght ? this.departmentCode.trim().length !== maxLenght : this.departmentCode.trim() === ''\n }\n\n @computed\n get isInvalidGender(): boolean {\n return !this.gender\n }\n\n @computed\n get isInvalidDateOfBirthday(): boolean {\n return this.dateOfBirthday === ''\n }\n\n @computed\n get isInvalidExpirationDate(): boolean {\n return this.expirationDate === ''\n }\n\n @computed\n get isInvalidPlaceOfBirth(): boolean {\n return this.placeOfBirth.trim().length === 0\n }\n\n @computed\n get isInvalidPassportIssued(): boolean {\n return this.passportIssued.trim().length === 0\n }\n\n @computed\n get companyTypeName() {\n const nameWithType = companyNameWithCompanyType[this.selectedCountry.country]\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const result = nameWithType.find(([_, type]) => type === this.companyType)?.[0] ?? ''\n return result as string\n }\n\n @computed\n get isTaxCheckStatusSuccess(): boolean {\n return this.taxCheckStatus === TaxCheckStatusType.success\n }\n\n @computed\n get taxCheckStatusName(): string {\n return taxCheckStatusName[this.taxCheckStatus]\n }\n\n @computed\n get isValidInn() {\n const result = this.inn && this.inn?.trim()?.length > 0\n\n if (this.selectedCountry.country === Country.GE) {\n return result\n }\n\n return result && this.inn.length === this.innMaxLength\n }\n\n @computed\n get innLable() {\n if (this.selectedCountry.country === Country.UZ) {\n return i18next.t(getDataKey(countryInnValue[Country.UZ][this.companyType]))\n }\n return i18next.t(getDataKey(countryInnValue[this.selectedCountry.country]))\n }\n\n @computed\n get isCorAccountInvalid() {\n return this.corAccount.length !== this.corAccountMaxLength\n }\n\n @computed\n get isOnlyLatinCompanyName() {\n return this.selectedCountry.country === Country.AM && regExpOnlyLatin(this.companyName)\n }\n\n @computed\n get isOnlyLatinBankName() {\n return this.selectedCountry.country === Country.AM && regExpOnlyLatin(this.bankName)\n }\n\n @computed\n get corAccountMaxLength() {\n return accountDetails[Country.RU].corAccount\n }\n\n @computed\n get payAccountMaxLength() {\n const payAccountExtremum = accountDetails[this.selectedCountry.country].payAccount\n\n if (typeof payAccountExtremum === 'number') {\n return payAccountExtremum\n }\n\n return Math.max(...payAccountExtremum)\n }\n\n @computed\n get payAccountMinLength() {\n const payAccountExtremum = accountDetails[this.selectedCountry.country].payAccount\n\n if (typeof payAccountExtremum === 'number') {\n return payAccountExtremum\n }\n\n return Math.min(...payAccountExtremum)\n }\n\n @computed\n get bikMaxLength() {\n const tmpBik = accountDetails[this.selectedCountry.country].bik\n\n if (typeof tmpBik === 'number') {\n return tmpBik\n }\n\n return Math.max(...tmpBik)\n }\n\n @computed\n get bikMinLength() {\n const tmpBik = accountDetails[this.selectedCountry.country].bik\n\n if (typeof tmpBik === 'number') {\n return tmpBik\n }\n\n return Math.min(...tmpBik)\n }\n\n @computed\n get innMaxLength() {\n if (this.selectedCountry.country === Country.RU || this.selectedCountry.country === Country.UZ) {\n return accountDetails[this.selectedCountry.country].inn[this.companyType]\n }\n\n return accountDetails[this.selectedCountry.country].inn\n }\n\n @computed\n get isAnBikInvalid() {\n if (this.isCIS) {\n return false\n }\n return !validateAnBik(this.payAccount, this.bik)\n }\n\n @computed\n get isBankNameInvalid() {\n return this.bankName?.trim().length === 0\n }\n\n /** Название компании или организации */\n @computed\n get isCompanyNameInvalid() {\n if (!this.companyName) {\n return true\n }\n return this.companyName.trim().length === 0\n }\n\n /** БИК для всех стран */\n @computed\n get isBikInvalid() {\n const bik = accountDetails[this.selectedCountry.country].bik\n if (typeof bik === 'number') {\n return this.bik.trim()?.length !== bik\n }\n\n return !bik.some((value) => value === this.bik.trim()?.length)\n }\n\n /** ИНН всех стран */\n @computed\n get isInnInvalid() {\n return !this.isValidInn || this.innText?.length < this.innMaxLength\n }\n\n /** Расчетный счет или Р/С контрагента */\n @computed\n get isPayAccountInvalid() {\n if (this.selectedCountry.country === Country.AM) {\n const payAccountExtremum = accountDetails[Country.AM].payAccount\n return Math.min(...payAccountExtremum) > this.payAccount.trim()?.length\n }\n\n return this.payAccount.trim()?.length < this.payAccountMaxLength\n }\n\n @computed\n get isPayAccountEmpty() {\n return this.payAccount?.trim().length === 0\n }\n\n @computed\n get isTaxOSNInvalid() {\n return this.taxType === TaxTypes.osn && this.taxFiles.length === 0\n }\n\n /** СНГ */\n @computed\n get isCIS() {\n return this.selectedCountry.country !== Country.RU\n }\n\n @action\n setAcceptPersonalInfo = (value?: boolean) => {\n this.acceptPersonalInfo = value ?? !this.acceptPersonalInfo\n }\n\n @action\n setLegalAddress = (value: string) => {\n this.legalAddress = value\n }\n\n @action\n setGln = (value: string) => {\n this.gln = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setInnCitizen = (value: string) => {\n if (this.selectedCitizenship.value === Citizenship.TJ) {\n this.innCitizen = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.innCitizen = value\n }\n }\n\n @action\n setRegistrationAddress = (value: string) => {\n this.registrationAddress = value\n }\n\n @action\n setPermanentResidenceAddress = (value: string) => {\n this.permanentResidenceAddress = value\n }\n\n @action\n setPersonalNumber = (value: string) => {\n if (this.selectedCitizenship.value === Citizenship.UZ || this.selectedCitizenship.value === Citizenship.KG) {\n this.personalNumber = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.personalNumber = value\n }\n }\n\n @action\n setSocialCardNumber = (value: string) => {\n this.socialCardNumber = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setIin = (value: string) => {\n this.iin = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setDocumentNumber = (value: string) => {\n if (this.selectedCitizenship.value === Citizenship.KZ || this.selectedCitizenship.value === Citizenship.AM) {\n this.documentNumber = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.documentNumber = value\n }\n }\n\n @action\n setNationality = (value: string) => {\n this.nationality = value.replace(NOT_LATIN_CYRILLIC, '')\n }\n\n @action\n setGender = (value: GENDER) => {\n this.gender = value\n }\n\n @action\n setPlaceOfBirth = (value: string) => {\n this.placeOfBirth = value\n }\n\n @action\n setPassportIssued = (value: string) => {\n this.passportIssued = value\n }\n\n @action\n setTaxType = (value: TaxTypes) => {\n this.taxType = value\n }\n\n @action\n setCompanyType = (value: CompanyType) => {\n this.companyType = value\n }\n\n @action\n setBankInn = (value: string) => {\n this.bankInn = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setCorAccount = (value: string) => {\n this.corAccount = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setSelectedCountry = (value: CountryItem) => {\n this.selectedCountry = value\n }\n\n @action\n setSelectedCitizenship = (value: any) => {\n this.selectedCitizenship = value\n }\n\n @action\n setDocumentType = (value: DocumentType) => {\n this.documentType = value\n }\n\n @action\n setCompanyName = (value: string) => {\n this.companyName = value\n }\n\n @action\n setInn = (value: string) => {\n this.inn = value\n }\n\n @action\n setInnText = (value: string) => {\n this.innText = value\n }\n\n @action\n setTaxCheckStatus = (value: TaxCheckStatusType) => {\n this.taxCheckStatus = value\n }\n\n @action\n setTaxCheckStatusComment = (value: string) => {\n this.taxCheckStatusComment = value\n }\n\n @action\n setBik = (value: string) => {\n if (\n this.selectedCountry.country === Country.TJ ||\n this.selectedCountry.country === Country.KG ||\n this.selectedCountry.country === Country.UZ ||\n this.selectedCountry.country === Country.RU\n ) {\n this.bik = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.bik = value\n }\n this.needRemoteValidateBik = true\n }\n\n @action\n setNeedRemoteValidateBik = (value: boolean) => {\n this.needRemoteValidateBik = value\n }\n\n setPayAccountPrefix = (value: string) => {\n let payAccount = ''\n value = value || ''\n\n const setPrefix = (countryCode: string) => {\n if ((value.startsWith(countryCode[0]) && value.length < 2) || value.startsWith(countryCode)) {\n payAccount = value\n } else {\n payAccount = `${countryCode + value}`\n }\n }\n\n if (\n this.selectedCountry.country === Country.KZ ||\n this.selectedCountry.country === Country.BY ||\n this.selectedCountry.country === Country.GE\n ) {\n setPrefix(this.selectedCountry.country)\n } else {\n payAccount = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n return payAccount\n }\n\n @action\n setLoadedCompanyInfo = (value: boolean) => {\n this.loadedCompanyInfo = value\n }\n\n @action\n setPayAccount = (value: string) => {\n if (\n this.selectedCountry.country === Country.AM ||\n this.selectedCountry.country === Country.TJ ||\n this.selectedCountry.country === Country.RU ||\n this.selectedCountry.country === Country.KG ||\n this.selectedCountry.country === Country.UZ\n ) {\n this.payAccount = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.payAccount = value\n }\n }\n\n @action\n setBankName = (value: string) => {\n this.bankName = value\n }\n\n @action\n setLoadingCompanyInfo = (value: boolean) => {\n this.loadingCompanyInfo = value\n }\n\n @action\n setPassport = (value: string) => {\n if (this.selectedCitizenship.value === Citizenship.RU) {\n this.passport = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.passport = value\n }\n }\n\n @action\n setIdentificationNumber = (value: string) => {\n if (\n this.selectedCitizenship.value === Citizenship.KZ ||\n this.selectedCitizenship.value === Citizenship.KG ||\n this.selectedCitizenship.value === Citizenship.TJ ||\n this.selectedCitizenship.value === Citizenship.GE\n ) {\n this.identificationNumber = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n this.identificationNumber = value\n }\n }\n\n @action\n setIdentificationNumberOld = (value: string) => {\n this.identificationNumber = value\n }\n\n @action\n setDateOfBirthday = (value: string) => {\n this.dateOfBirthday = value\n }\n\n @action\n setExpirationDate = (value: string) => {\n this.expirationDate = value\n }\n\n @action\n setDateOfIssue = (value: string) => {\n this.dateOfIssue = value\n }\n\n @action\n setDepartmentCode = (value: string) => {\n if (this.selectedCitizenship.value === Citizenship.RU) {\n const digits = value.replace(/\\D/g, '')\n\n if (digits.length === 6) {\n this.departmentCode = digits.slice(0, 3) + '-' + digits.slice(3, 6)\n } else {\n this.departmentCode = digits\n }\n } else if (this.selectedCitizenship.value === Citizenship.KG || this.selectedCitizenship.value === Citizenship.UZ) {\n this.departmentCode = value\n } else {\n this.departmentCode = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n }\n\n @action\n setPassportFileLoading = (value: boolean) => {\n this.passportFileLoading = value\n }\n\n @action\n setTaxFiles = (value: string[]) => {\n this.taxFiles = value\n this.taxFilesUI = value\n }\n\n @action\n setTaxFilesUI = (value: string[]) => {\n this.taxFilesUI = value\n }\n\n @action\n setLoading = (value: boolean) => {\n this.loading = value\n }\n\n @action\n updateFields = (text: string) => {\n this.setLoadedCompanyInfo(false)\n if (text.length === this.innMaxLength) {\n this.loadDData(text)\n this.setInn(text)\n } else {\n this.clearCompanyInfo()\n }\n }\n\n @action\n isValidBankInn = async () => {\n try {\n if (this.loading) {\n return\n }\n this.setLoading(true)\n const innResponse = await userApi.getCompanyInfo(this.bankInn, UrlType.company)\n if (innResponse?.suggestions) {\n for (const { data } of innResponse.suggestions || []) {\n if (data.state.status === 'ACTIVE') {\n return true\n }\n }\n }\n return false\n } catch (error) {\n return false\n } finally {\n this.setLoading(false)\n }\n }\n\n @action\n isValidBik = async () => {\n try {\n if (this.loading) {\n return\n }\n this.setLoading(true)\n const bikResponse = await userApi.getCompanyInfo(this.bik, UrlType.bank)\n\n if (bikResponse?.suggestions) {\n for (const { data } of bikResponse.suggestions || []) {\n if (data.state.status === 'ACTIVE') {\n return true\n }\n }\n }\n return false\n } catch (error) {\n this.setNeedRemoteValidateBik(false)\n return true\n } finally {\n this.setLoading(false)\n }\n }\n\n @action\n loadDData = async (inn: string) => {\n this.setLoadingCompanyInfo(true)\n\n try {\n const innResponse = await userApi.getCompanyInfo(inn, UrlType.company)\n\n if (innResponse?.suggestions) {\n this.handleCompanyInfo(innResponse.suggestions)\n } else {\n this.clearStates()\n this.setLoadedCompanyInfo(false)\n }\n this.setLoadingCompanyInfo(false)\n } catch (error) {\n this.setLoadedCompanyInfo(false)\n this.setLoadingCompanyInfo(false)\n }\n }\n\n convertPayAccountValue = (payAccountWithPrefix: string) => {\n let convertedPayAccount = payAccountWithPrefix\n\n if (\n this.selectedCountry.country === Country.KZ ||\n this.selectedCountry.country === Country.BY ||\n this.selectedCountry.country === Country.GE\n ) {\n const validRegexp = /([A-Za-z0-9]+)/gm\n convertedPayAccount = payAccountWithPrefix\n ?.split(validRegexp)\n .filter((x) => validRegexp.test(x))\n .join('')\n }\n\n return convertedPayAccount\n }\n\n @action\n clearActivityStep = () => {\n this.setCompanyType(CompanyType.ip)\n this.setBankInn('')\n this.setInnText('')\n this.setInn('')\n this.setIin('')\n this.dadataMap = {\n [DaDataOrderLoadProp.bik]: false,\n [DaDataOrderLoadProp.companyName]: false,\n }\n this.setCompanyName('')\n this.setBankName('')\n this.setBik('')\n this.setPayAccount('')\n this.setCorAccount('')\n this.setAcceptPersonalInfo(false)\n this.setTaxFiles([])\n this.setTaxType(TaxTypes.usn)\n this.setLegalAddress('')\n this.setGln('')\n\n this.setTaxCheckStatus(TaxCheckStatusType.review)\n this.setTaxCheckStatusComment('')\n }\n\n @action\n clearPassportStep = () => {\n this.setPassport('')\n this.setDateOfIssue('')\n this.setDepartmentCode('')\n this.setGender(GENDER.MALE)\n this.setDateOfBirthday('')\n this.setExpirationDate('')\n this.setPlaceOfBirth('')\n this.setPassportIssued('')\n this.setNationality('')\n this.setDocumentNumber('')\n this.setIin('')\n this.setSocialCardNumber('')\n this.setPersonalNumber('')\n this.setRegistrationAddress('')\n this.setPermanentResidenceAddress('')\n this.setInnCitizen('')\n this.setIdentificationNumber('')\n }\n\n @action\n clearCompanyInfo = (clearFile: boolean = true) => {\n this.setInnText('')\n this.setInn('')\n this.setBik('')\n this.setPayAccount('')\n this.setCompanyName('')\n this.setCorAccount('')\n this.setBankInn('')\n this.setBankName('')\n if (clearFile) {\n this.setTaxType(TaxTypes.usn)\n this.setTaxFiles([])\n }\n this.dadataMap = {\n [DaDataOrderLoadProp.bik]: false,\n [DaDataOrderLoadProp.companyName]: false,\n }\n this.setPassport('')\n this.setDateOfIssue('')\n this.setDepartmentCode('')\n this.setGender(GENDER.MALE)\n this.setDateOfBirthday('')\n this.setExpirationDate('')\n this.setPlaceOfBirth('')\n this.setPassportIssued('')\n this.setNationality('')\n this.setDocumentNumber('')\n this.setIin('')\n this.setSocialCardNumber('')\n this.setPersonalNumber('')\n this.setRegistrationAddress('')\n this.setPermanentResidenceAddress('')\n this.setInnCitizen('')\n this.setIdentificationNumber('')\n this.setDocumentType(DocumentType.passport)\n this.setSelectedCitizenship(citizenshipOptions[0])\n this.documentPhotoUI = []\n this.withDocumentPhotoUI = []\n this.documentPhoto = []\n this.withDocumentPhoto = []\n\n this.setTaxCheckStatus(TaxCheckStatusType.review)\n this.setTaxCheckStatusComment('')\n\n this.setLegalAddress('')\n this.setGln('')\n }\n\n private clearStates() {\n this.clearCompanyInfo(false)\n notification.error({\n message: 'Ошибка',\n description: 'ИНН не найден',\n })\n }\n\n @action\n private handleCompanyInfo = (suggestions: PropType) => {\n if (!suggestions) {\n return\n }\n\n // find active suggestion\n let activeIndex = -1\n for (const { data } of suggestions) {\n // TODO: почему +1?\n if (data.state.status === 'ACTIVE') {\n activeIndex += 1\n }\n }\n if (activeIndex === -1) {\n this.clearStates()\n this.setLoadedCompanyInfo(false)\n return\n }\n\n const { data, value } = suggestions[activeIndex]\n this.withDadata(this.setCompanyName(value ?? ''), value, DaDataOrderLoadProp.companyName)\n if (data) {\n const { bik } = data\n\n this.withDadata(this.setBik(bik ?? ''), bik, DaDataOrderLoadProp.bik)\n\n this.setLoadedCompanyInfo(true)\n } else {\n this.clearStates()\n this.setLoadedCompanyInfo(false)\n }\n }\n\n @action\n private withDadata = (cb: any, value: string | undefined, mapValue: DaDataOrderLoadProp) => {\n if (value) {\n this.dadataMap[mapValue] = true\n }\n }\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nimport { getPhoneWithoutPrefix } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { ALL_EXCEPT_NUMBERS_REGEXP, NOT_LATIN_CYRILLIC_HYPHEN } from 'shared/constants/regExp'\nimport { Country } from 'shared/types/types'\n\nimport { countries } from '../../data'\nimport { AppCountryPhoneViewModel } from './AppCountryPhoneViewModel'\n\nexport class ProfileViewModel {\n @observable lastName: string = ''\n @observable firstName: string = ''\n @observable middleName: string = ''\n @observable snils: string = ''\n @observable telegramLogin: string = ''\n\n @observable additionalPhone: string = ''\n @observable additionalPhoneCountry: Country = Country.RU\n\n @observable mainPhone: string = ''\n @observable mainPhoneCountry: Country = Country.RU\n\n @observable additionalPhoneModel = new AppCountryPhoneViewModel()\n\n @observable email: string = ''\n\n constructor() {\n makeObservable(this)\n }\n\n @computed\n get isInvalidEmail() {\n return (\n this.email?.length < 5 ||\n this.email?.indexOf('@') < 1 ||\n this.email?.indexOf('.') < 0 ||\n this.email?.indexOf('.') === this.email?.length - 1\n )\n }\n\n @computed\n get isInvalidFirstName() {\n return this.firstName?.trim().length < 2\n }\n\n @computed\n get isInvalidLastName() {\n return this.lastName?.trim().length < 2\n }\n\n @computed\n get isInvalidMiddleName() {\n return this.middleName ? this.middleName.trim().length < 2 : false\n }\n\n @computed\n get isInvalidTelegramLogin() {\n return this.telegramLogin?.trim().length < 2\n }\n\n @action\n setEmail = (value: string) => {\n this.email = value\n }\n\n @action\n setLastName = (value: string) => {\n this.lastName = value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')\n }\n\n @action\n setFirstName = (value: string) => {\n this.firstName = value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')\n }\n\n @action\n setMiddleName = (value: string) => {\n this.middleName = value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')\n }\n\n @action\n setSnils = (value: string) => {\n this.snils = value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n setTelegramLogin = (value: string) => {\n this.telegramLogin = value\n }\n\n @action\n setAdditionPhone = (value: string) => {\n this.additionalPhone = value\n }\n\n @action\n setAdditionPhoneCountry = (value: Country) => {\n this.additionalPhoneCountry = value\n }\n\n @action\n initPhoneData() {\n const countryItemAdditionalPhone = countries.find((x) => x.value.country === this.additionalPhoneCountry)\n\n this.additionalPhoneModel.setSelectedCountry(countryItemAdditionalPhone?.value ?? countries[0].value)\n this.additionalPhoneModel.setPhone(\n getPhoneWithoutPrefix(\n countryItemAdditionalPhone?.value.country ?? countries[0].value.country,\n this.additionalPhone,\n ),\n )\n }\n}\n","import { computed, makeAutoObservable, toJS } from 'mobx'\n\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { Country } from 'shared/types/types'\n\nimport { Citizenship, TaxTypes } from '../types'\nimport { CompanyDetailsViewModel } from './models/CompanyDetailsViewModel'\nimport { ProfileViewModel } from './models/ProfileViewModel'\n\nexport class ValidatePersonalDataStore {\n constructor(\n protected readonly profile: ProfileViewModel,\n protected readonly companyDetails: CompanyDetailsViewModel,\n ) {\n makeAutoObservable(this)\n }\n\n @computed\n get isInvalidOldPassport() {\n let isInvalid = false\n const company = this.companyDetails\n const citizenship = this.companyDetails.selectedCitizenship.value\n\n // Обязательные поля для всех стран\n\n if (\n company.isInvalidPassport ||\n company.isInvalidDateOfIssue ||\n company.isInvalidDateOfBirthday ||\n company.isInvalidPlaceOfBirth ||\n company.documentPhoto.length === 0\n ) {\n isInvalid = true\n }\n\n // Индивидуальная выборка по полям\n\n if (\n citizenship === Citizenship.RU &&\n (company.isInvalidDepartmentCode ||\n company.isInvalidRegistrationAddress ||\n company.isInvalidPermanentResidenceAddress)\n ) {\n isInvalid = true\n }\n\n if (citizenship !== Citizenship.AM && company.isInvalidPassportIssued) {\n isInvalid = true\n }\n\n if (\n (citizenship === Citizenship.BY || citizenship === Citizenship.KZ) &&\n company.identificationNumber.trim().length === 0\n ) {\n isInvalid = true\n }\n\n return isInvalid\n }\n\n @computed\n get isInvalidOldIdentification() {\n let isInvalid = false\n const company = this.companyDetails\n const citizenship = this.companyDetails.selectedCitizenship.value\n\n // Обязательные поля для всех стран\n if (company.isInvalidDateOfBirthday || company.documentPhoto.length === 0) {\n isInvalid = true\n }\n // Индивидуальная выборка по полям\n\n if (citizenship !== Citizenship.AM && citizenship !== Citizenship.KZ && company.isInvalidDateOfIssue) {\n isInvalid = true\n }\n\n if (citizenship === Citizenship.BY && company.isInvalidPlaceOfBirth) {\n isInvalid = true\n }\n\n if (company.identificationNumber.trim().length === 0) {\n isInvalid = true\n }\n\n return isInvalid\n }\n\n @computed\n get isInvalidContactInfo() {\n return (\n this.profile.isInvalidTelegramLogin ||\n this.profile.isInvalidEmail ||\n !this.profile.additionalPhoneModel.isValidPhone ||\n (this.companyDetails.selectedCitizenship.value === Citizenship.RU && this.profile.snils.length !== 11)\n )\n }\n\n @computed\n get isInvalidIdentificationForm() {\n let isInvalid = false\n const citizenship = this.companyDetails.selectedCitizenship.value\n const company = this.companyDetails\n\n // Обязательные поля для всех стран\n if (\n this.profile.isInvalidFirstName ||\n this.profile.isInvalidLastName ||\n company.isInvalidDocumentNumber ||\n company.isInvalidDateOfIssue ||\n company.isInvalidExpirationDate ||\n company.isInvalidDateOfBirthday\n ) {\n isInvalid = true\n }\n\n // Индивидуальная выборка по полям\n\n if (\n (citizenship === Citizenship.RU || citizenship === Citizenship.BY || citizenship === Citizenship.GE) &&\n company.isInvalidIdentificationNumber\n ) {\n isInvalid = true\n }\n\n if (\n citizenship === Citizenship.KZ &&\n (company.isInvalidIin || company.isInvalidNationality || company.isInvalidPassportIssued)\n ) {\n isInvalid = true\n }\n\n if ((citizenship === Citizenship.GE || citizenship === Citizenship.TJ) && company.isInvalidPassportIssued) {\n isInvalid = true\n }\n\n if (\n !(citizenship === Citizenship.KZ || citizenship === Citizenship.TJ || citizenship === Citizenship.GE) &&\n company.isInvalidDepartmentCode\n ) {\n isInvalid = true\n }\n\n if (citizenship !== Citizenship.AM && company.isInvalidPlaceOfBirth) {\n isInvalid = true\n }\n\n if (citizenship === Citizenship.AM && company.isInvalidSocialCardNumber) {\n isInvalid = true\n }\n\n if ((citizenship === Citizenship.UZ || citizenship === Citizenship.KG) && company.isInvalidPersonalNumber) {\n isInvalid = true\n }\n\n if (citizenship === Citizenship.TJ && company.isInvalidInnCitizen) {\n isInvalid = true\n }\n\n return isInvalid\n }\n\n @computed\n get isInvalidRequisitesData() {\n const { selectedCountry } = this.companyDetails\n const company = this.companyDetails\n let isInvalid = false\n // Обязательные поля для всех стран\n if (\n ((company.taxType === TaxTypes.osn ||\n company.taxType === TaxTypes.lowerRate5 ||\n company.taxType === TaxTypes.lowerRate7) &&\n !toJS(company.hasTaxFiles)) ||\n !company.isValidInn ||\n company.isCompanyNameInvalid ||\n company.isBankNameInvalid ||\n company.isBikInvalid ||\n company.isPayAccountInvalid\n ) {\n isInvalid = true\n }\n\n // Индивидуальная выборка по странам\n\n if (selectedCountry.country === Country.BY && company.isInvalidLegalAddress) {\n isInvalid = true\n }\n\n if (selectedCountry.country === Country.BY && company.gln && company.isInvalidGln) {\n isInvalid = true\n }\n\n if (!isGeDomain() && selectedCountry.country !== Country.GE && !company.acceptPersonalInfo) {\n isInvalid = true\n }\n\n if (selectedCountry.country === Country.RU && (company.isCorAccountInvalid || company.isAnBikInvalid)) {\n isInvalid = true\n }\n\n return isInvalid\n }\n\n @computed\n get isInvalidPassportForm() {\n let isInvalid = false\n const citizenship = this.companyDetails.selectedCitizenship.value\n const company = this.companyDetails\n // Обязательные поля для всех стран\n\n if (\n this.profile.isInvalidFirstName ||\n this.profile.isInvalidLastName ||\n company.isInvalidPassport ||\n company.isInvalidDateOfIssue ||\n company.isInvalidGender ||\n company.isInvalidDateOfBirthday\n ) {\n isInvalid = true\n }\n\n // Индивидуальная выборка по полям\n\n if (\n (citizenship === Citizenship.BY ||\n citizenship === Citizenship.KZ ||\n citizenship === Citizenship.KG ||\n citizenship === Citizenship.UZ) &&\n company.isInvalidNationality\n ) {\n isInvalid = true\n }\n\n if (\n (citizenship === Citizenship.BY || citizenship === Citizenship.KG || citizenship === Citizenship.KZ) &&\n company.isInvalidIdentificationNumber\n ) {\n isInvalid = true\n }\n\n if (citizenship !== Citizenship.RU && company.isInvalidExpirationDate) {\n isInvalid = true\n }\n\n if (\n (citizenship === Citizenship.RU || citizenship === Citizenship.AM || citizenship === Citizenship.KG) &&\n company.isInvalidDepartmentCode\n ) {\n isInvalid = true\n }\n\n if (\n citizenship !== Citizenship.AM &&\n citizenship !== Citizenship.KG &&\n (company.isInvalidPassportIssued || company.isInvalidPlaceOfBirth)\n ) {\n isInvalid = true\n }\n\n if (citizenship === Citizenship.AM && company.isInvalidRegistrationAddress) {\n isInvalid = true\n }\n\n return isInvalid\n }\n}\n","import { notification } from 'antd'\nimport dayjs from 'dayjs'\nimport { action, makeAutoObservable } from 'mobx'\n\nimport { DATE_FORMAT_DEFAULT, DATE_FORMAT_EMPTY_TIME } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\n\nimport { userApi } from '../../api'\nimport {\n BaseDocumentDTO,\n Citizenship,\n CompanyType,\n DocTypeParam,\n DocumentType,\n GENDER,\n GenderNumber,\n Passport,\n RequisitesData,\n} from '../../types'\nimport { ProfileUiStore } from './ProfileUiStore'\n\nexport class ProfileApiStore {\n constructor(protected readonly uiStore: ProfileUiStore) {\n makeAutoObservable(this)\n }\n\n updateOldPassport = async () => {\n const { companyDetails } = this.uiStore\n\n const {\n dateOfBirthday,\n dateOfIssue,\n departmentCode,\n documentPhoto,\n gender,\n passportIssued,\n passport,\n placeOfBirth,\n registrationAddress,\n permanentResidenceAddress,\n identificationNumber,\n } = companyDetails\n\n const company = this.uiStore.appStore.company\n\n this.uiStore.setSendingData(true)\n\n try {\n const { data } = await userApi.updateCompany({\n ...company,\n id: company?.id,\n identification_number: identificationNumber,\n taxType: company?.taxType,\n orgType: company?.orgType,\n passport: passport,\n date_of_issue: dateOfIssue ? dayjs(dateOfIssue, DATE_FORMAT_DEFAULT).format(DATE_FORMAT_EMPTY_TIME) : undefined,\n department_code: departmentCode,\n passport_urls: documentPhoto,\n gender: gender,\n dateOfBirthday: dayjs(dateOfBirthday, DATE_FORMAT_DEFAULT).format(DATE_FORMAT_EMPTY_TIME),\n placeOfBirth: placeOfBirth,\n passportIssued: passportIssued,\n registrationAddress: registrationAddress,\n permanentResidenceAddress: permanentResidenceAddress,\n })\n\n if (data) {\n this.uiStore.appStore.getCompany()\n this.uiStore.appStore.setLoadingUserInfo(true)\n\n const { data: userInfo } = await userApi.getUser()\n\n this.uiStore.appStore.setUserInfo(userInfo)\n\n this.uiStore.appStore.setLoadingUserInfo(false)\n notification.success({\n message: 'Данные обновлены',\n })\n return true\n }\n } catch (error) {\n notification.error({\n message: 'Ошибка обновления данных',\n description: (error as Error).message,\n })\n return false\n } finally {\n this.uiStore.setSendingData(false)\n }\n }\n\n updateContact = async () => {\n const { profile, companyDetails } = this.uiStore\n const { legalAddress } = companyDetails\n const ownerId = this.uiStore.appStore.company?.id\n\n this.uiStore.setSendingData(true)\n\n try {\n if (!ownerId) return\n\n const updateFields = ['email', 'phone_number', 'telegram', 'snils']\n\n const result = await userApi.updateOwner({\n id: String(ownerId),\n contact_info: {\n email: profile.email,\n phone_number: `+${profile.additionalPhoneModel.fullPhone.toString()}`,\n telegram: profile.telegramLogin,\n snils: profile.snils,\n legal_address: legalAddress,\n },\n update_fields: updateFields,\n })\n if (!result.data) {\n notification.error({\n message: 'Ошибка обновления данных',\n })\n return\n }\n\n notification.success({\n message: 'Данные обновлены',\n })\n this.uiStore.appStore.getCompany()\n this.uiStore.appStore.setLoadingUserInfo(true)\n\n const { data: userInfo } = await userApi.getUser()\n\n this.uiStore.appStore.setUserInfo(userInfo)\n\n this.uiStore.appStore.setLoadingUserInfo(false)\n } catch (error) {\n notification.error({\n message: 'Ошибка обновления данных',\n description: (error as Error).message,\n })\n\n throw error\n } finally {\n this.uiStore.setSendingData(false)\n }\n }\n\n updateOnlyPassport = async () => {\n const { profile, companyDetails } = this.uiStore\n const {\n dateOfBirthday,\n dateOfIssue,\n departmentCode,\n documentPhoto,\n withDocumentPhoto,\n gender,\n passportIssued,\n passport,\n placeOfBirth,\n documentType,\n expirationDate,\n nationality,\n identificationNumber,\n registrationAddress,\n socialCardNumber,\n documentNumber,\n personalNumber,\n iin,\n innCitizen,\n } = companyDetails\n const { firstName, lastName, middleName } = profile\n const citizenship = companyDetails.selectedCitizenship.value\n const genderNumber = gender === GENDER.MALE ? GenderNumber.MALE : GenderNumber.FEMALE\n const ownerId = this.uiStore.appStore.company?.id\n\n this.uiStore.setSendingData(true)\n\n const getPassportData = () => {\n const passportData: Passport = {}\n\n const basePassport: BaseDocumentDTO = {\n first_name: firstName,\n last_name: lastName,\n document_photo: documentPhoto,\n with_document_photo: withDocumentPhoto,\n issue_date: dayjs(dateOfIssue, DATE_FORMAT_DEFAULT).format(DATE_FORMAT_EMPTY_TIME),\n date_of_birth: dayjs(dateOfBirthday, DATE_FORMAT_DEFAULT).format(DATE_FORMAT_EMPTY_TIME),\n }\n\n const expiration_date = dayjs(expirationDate, DATE_FORMAT_DEFAULT).format(DATE_FORMAT_EMPTY_TIME)\n\n switch (citizenship) {\n case Citizenship.RU:\n passportData.passport_ru = {\n ...basePassport,\n department_code: departmentCode,\n document_photo: documentPhoto,\n last_name: lastName,\n patronymic: middleName,\n gender,\n issued_by: passportIssued,\n passport_number: `${passport.substring(0, 4)} ${passport.substring(4, 10)}`,\n place_of_birth: placeOfBirth,\n with_document_photo: withDocumentPhoto,\n }\n\n break\n case Citizenship.KZ:\n if (documentType === DocumentType.passport) {\n passportData.passport_kz = {\n ...basePassport,\n patronymic: middleName,\n gender,\n identification_number: identificationNumber,\n expiration_date,\n issued_by: passportIssued,\n nationality,\n passport_number: passport,\n place_of_birth: placeOfBirth,\n }\n } else {\n passportData.id_card_kz = {\n ...basePassport,\n patronymic: middleName,\n iin: iin,\n document_number: documentNumber,\n place_of_birth: placeOfBirth,\n nationality,\n expiration_date,\n issued_by: passportIssued,\n gender,\n }\n }\n\n break\n case Citizenship.AM:\n if (documentType === DocumentType.passport) {\n passportData.passport_am = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n passport_number: passport,\n registration_address: registrationAddress,\n }\n } else {\n passportData.id_card_am = {\n ...basePassport,\n document_number: documentNumber,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n social_card_number: socialCardNumber,\n }\n }\n\n break\n case Citizenship.BY:\n if (documentType === DocumentType.passport) {\n passportData.passport_by = {\n ...basePassport,\n gender: genderNumber,\n identification_number: identificationNumber,\n issued_by: passportIssued,\n expiration_date,\n patronymic: middleName,\n nationality,\n passport_number: passport,\n place_of_birth: placeOfBirth,\n }\n } else {\n passportData.id_card_by = {\n ...basePassport,\n citizenship,\n document_number: documentNumber,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n }\n }\n\n break\n case Citizenship.UZ:\n if (documentType === DocumentType.passport) {\n passportData.passport_uz = {\n ...basePassport,\n patronymic: middleName,\n gender,\n place_of_birth: placeOfBirth,\n nationality,\n issued_by: passportIssued,\n passport_number: passport,\n expiration_date,\n }\n } else {\n passportData.id_card_uz = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n citizenship,\n document_number: documentNumber,\n personal_number: personalNumber,\n place_of_birth: placeOfBirth,\n department_code: departmentCode,\n }\n }\n\n break\n case Citizenship.KG:\n if (documentType === DocumentType.passport) {\n passportData.passport_kg = {\n ...basePassport,\n patronymic: middleName,\n gender,\n citizenship,\n nationality,\n department_code: departmentCode,\n personal_number: identificationNumber,\n passport_number: passport,\n expiration_date,\n }\n } else {\n passportData.id_card_kg = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n citizenship,\n document_number: documentNumber,\n expiration_date,\n department_code: departmentCode,\n personal_number: personalNumber,\n place_of_birth: placeOfBirth,\n }\n }\n\n break\n case Citizenship.GE:\n passportData.id_card_ge = {\n ...basePassport,\n document_number: documentNumber,\n expiration_date,\n gender: genderNumber,\n issued_by: passportIssued,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n }\n\n break\n case Citizenship.TJ:\n passportData.id_card_tj = {\n ...basePassport,\n document_number: documentNumber,\n expiration_date,\n patronymic: middleName,\n gender: genderNumber,\n issued_by: passportIssued,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n inn_citizen: innCitizen,\n }\n\n break\n }\n\n return passportData\n }\n\n try {\n if (!ownerId) return\n\n const updateFields = [\n 'date_of_birth',\n 'department_code',\n 'document_photo',\n 'first_name',\n 'last_name',\n 'patronymic',\n 'gender',\n 'issue_date',\n 'issued_by',\n 'passport_number',\n 'place_of_birth',\n 'with_document_photo',\n 'document_number',\n 'expiration_date',\n 'identification_number',\n 'nationality',\n 'personal_number',\n 'inn_citizen',\n 'social_card_number',\n 'registration_address',\n ]\n\n const result = await userApi.updateOwner({\n id: String(ownerId),\n passport: getPassportData(),\n update_fields: updateFields,\n })\n if (!result.data) {\n notification.error({\n message: 'Ошибка обновления данных',\n })\n return\n }\n\n notification.success({\n message: 'Данные обновлены',\n })\n this.uiStore.appStore.getCompany()\n this.uiStore.appStore.setLoadingUserInfo(true)\n\n const { data: userInfo } = await userApi.getUser()\n\n this.uiStore.appStore.setUserInfo(userInfo)\n\n this.uiStore.appStore.setLoadingUserInfo(false)\n } catch (error) {\n notification.error({\n message: 'Ошибка обновления данных',\n description: (error as Error).message,\n })\n\n throw error\n } finally {\n this.uiStore.setSendingData(false)\n }\n }\n\n updateRequisites = async () => {\n const { companyDetails, profile } = this.uiStore\n const { payAccount, bankName, bik, companyName, corAccount, companyType, inn, gln, legalAddress } = companyDetails\n const ownerId = this.uiStore.appStore.company?.id\n\n this.uiStore.setSendingData(true)\n\n const getRequisitesData = () => {\n const requisitesData: RequisitesData = {}\n\n switch (companyDetails.selectedCountry.country) {\n case Country.RU:\n requisitesData.requisites_ru = {\n account_number: payAccount,\n bank_name: bankName,\n bik,\n company_name: companyName,\n correspondent_account: corAccount,\n }\n\n if (companyType === CompanyType.ip) {\n requisitesData.requisites_ru.ip_inn = inn\n } else {\n requisitesData.requisites_ru.ooo_inn = inn\n }\n\n break\n case Country.BY:\n requisitesData.requisites_by = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n unp: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_by.bik_8 = bik\n } else {\n requisitesData.requisites_by.bik_11 = bik\n }\n\n break\n case Country.KZ:\n requisitesData.requisites_kz = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n iin_bin: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_kz.bik_8 = bik\n } else {\n requisitesData.requisites_kz.bik_11 = bik\n }\n\n break\n case Country.AM:\n requisitesData.requisites_am = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_am.bik_8 = bik\n } else {\n requisitesData.requisites_am.bik_11 = bik\n }\n\n break\n case Country.KG:\n requisitesData.requisites_kg = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n bik,\n }\n\n break\n case Country.UZ:\n requisitesData.requisites_uz = {\n bik_mfo: bik,\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n }\n\n if (companyType === CompanyType.ooo) {\n requisitesData.requisites_uz.ooo_inn = inn\n } else {\n requisitesData.requisites_uz.pinfl = inn\n }\n\n break\n case Country.GE:\n requisitesData.requisites_ge = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_ge.bik_8 = bik\n } else {\n requisitesData.requisites_ge.bik_11 = bik\n }\n\n break\n case Country.TJ:\n requisitesData.requisites_tj = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n bik,\n }\n\n break\n }\n\n return requisitesData\n }\n\n try {\n if (!ownerId) return\n\n const updateFields = [\n 'organization_tax',\n 'identity_photos',\n 'department_code',\n 'account_number',\n 'bank_name',\n 'bik',\n 'bik_11',\n 'bik_8',\n 'company_name',\n 'correspondent_account',\n 'bank_code_11',\n 'bank_code_8',\n 'iin',\n ]\n\n if (!this.uiStore.companyDetails.isInvalidGln) {\n updateFields.push('gln')\n }\n if (!this.uiStore.companyDetails.isInvalidLegalAddress) {\n updateFields.push('legal_address')\n }\n\n const result = await userApi.updateOwner({\n id: String(ownerId),\n contact_info: {\n email: profile.email,\n phone_number: `+${profile.additionalPhoneModel.fullPhone.toString()}`,\n telegram: profile.telegramLogin,\n gln,\n legal_address: legalAddress,\n },\n activity_form: {\n country: companyDetails.selectedCountry.country,\n identity_photos: companyDetails.taxFiles,\n organization_form: companyDetails.companyType,\n organization_tax: companyDetails.taxType,\n },\n requisites_data: getRequisitesData(),\n update_fields: updateFields,\n })\n if (!result.data) {\n notification.error({\n message: 'Ошибка обновления данных',\n })\n return\n }\n\n notification.success({\n message: 'Данные обновлены',\n })\n this.uiStore.appStore.getCompany()\n this.uiStore.appStore.setLoadingUserInfo(true)\n\n const { data: userInfo } = await userApi.getUser()\n\n this.uiStore.appStore.setUserInfo(userInfo)\n\n this.uiStore.appStore.setLoadingUserInfo(false)\n } catch (error) {\n notification.error({\n message: 'Ошибка обновления данных',\n description: (error as Error).message,\n })\n\n throw error\n } finally {\n this.uiStore.setSendingData(false)\n }\n }\n\n @action\n getDocument = async () => {\n const company = this.uiStore.companyDetails\n const profile = this.uiStore.profile\n const userId = this.uiStore.appStore.user.info.user_id.toString()\n const docType: DocTypeParam =\n this.uiStore.companyDetails.documentType === DocumentType.passport\n ? DocTypeParam.passport\n : DocTypeParam.identification\n const citizenship = this.uiStore.companyDetails.selectedCitizenship.value\n this.uiStore.setLoadingPassportData(true)\n try {\n const result = await userApi.getDocument({ userId, docType, citizenship })\n\n if (result.DocumentData?.passportData) {\n const passport = result.DocumentData?.passportData\n\n company.dateOfBirthday = dayjs(passport.dateOfBirth).format(DATE_FORMAT_DEFAULT)\n company.departmentCode = passport.departmentCode\n company.expirationDate = dayjs(passport.expirationDate).format(DATE_FORMAT_DEFAULT)\n profile.firstName = passport.firstName\n profile.lastName = passport.lastName\n profile.middleName = passport.patronymic\n company.gender = passport.gender\n // Для KG\n company.identificationNumber = passport.identificationNumber\n ? passport.identificationNumber\n : passport.personalNumber\n company.dateOfIssue = dayjs(passport.issueDate).format(DATE_FORMAT_DEFAULT)\n company.passportIssued = passport.issuedBy\n company.nationality = passport.nationality\n company.passport = passport.passportNumber.replace(' ', '')\n company.personalNumber = passport.personalNumber\n company.placeOfBirth = passport.placeOfBirth\n company.registrationAddress = passport.registrationAddress\n company.documentPhoto = passport.documentPhoto\n company.documentPhotoUI = passport.documentPhoto\n company.withDocumentPhoto = passport.withDocumentPhoto\n company.withDocumentPhotoUI = passport.withDocumentPhoto\n }\n if (result.DocumentData?.idCardData) {\n const idCard = result.DocumentData?.idCardData\n\n profile.firstName = idCard.firstName\n profile.lastName = idCard.lastName\n profile.middleName = idCard.patronymic\n company.gender = idCard.gender\n company.dateOfBirthday = dayjs(idCard.dateOfBirth).format(DATE_FORMAT_DEFAULT)\n company.dateOfIssue = dayjs(idCard.issueDate).format(DATE_FORMAT_DEFAULT)\n company.expirationDate = dayjs(idCard.expirationDate).format(DATE_FORMAT_DEFAULT)\n company.nationality = idCard.nationality\n company.documentNumber = idCard.documentNumber\n company.personalNumber = idCard.personalNumber\n company.iin = idCard.iin\n company.placeOfBirth = idCard.placeOfBirth\n company.departmentCode = idCard.departmentCode\n company.passportIssued = idCard.issuedBy\n company.socialCardNumber = idCard.socialCardNumber\n company.innCitizen = idCard.innCitizen\n company.identificationNumber = idCard.identificationNumber\n company.documentPhoto = idCard.documentPhoto\n company.documentPhotoUI = idCard.documentPhoto\n company.withDocumentPhoto = idCard.withDocumentPhoto\n company.withDocumentPhotoUI = idCard.withDocumentPhoto\n }\n\n return result.DocumentData\n } catch (error) {\n notification.error({ message: 'Ошибка получения паспортных данных', duration: 10 })\n } finally {\n this.uiStore.setLoadingPassportData(false)\n }\n }\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { getPhoneWithoutPrefix } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { Country } from 'shared/types/types'\n\nimport { countries } from '../../data'\nimport { CompanyType, CountryItem, PersonalDataStep, TaxCheckStatusType, TaxTypes } from '../../types'\nimport { CompanyDetailsViewModel } from '../models/CompanyDetailsViewModel'\nimport { ProfileViewModel } from '../models/ProfileViewModel'\nimport { ValidatePersonalDataStore } from '../ValidatePersonalDataStore'\nimport { ProfileApiStore } from './ProfileApiStore'\n\nexport class ProfileUiStore {\n @observable profile = new ProfileViewModel()\n @observable companyDetails = new CompanyDetailsViewModel()\n @observable apiStore = new ProfileApiStore(this)\n @observable loading: boolean = false\n @observable selectedCountry: CountryItem = countries[0].value\n\n @observable phone: string = ''\n @observable phonePrefix: string = '+7'\n @observable country: Country = Country.RU\n\n @observable personalDataStep: PersonalDataStep = PersonalDataStep.step1\n @observable readonly validateStore = new ValidatePersonalDataStore(this.profile, this.companyDetails)\n\n @observable loadingPassportData: boolean = false\n @observable isSendingData: boolean = false\n\n constructor(readonly rootStore: IRootStore) {\n makeObservable(this)\n }\n\n get isUserWasEdit() {\n const { snils, additionalPhoneModel, telegramLogin } = this.profile\n const { fullPhone: additionalPhone } = additionalPhoneModel\n return (\n Number(additionalPhone) !== this.user.additional_phone ||\n telegramLogin !== this.user.telegram_login ||\n snils !== String(this.user.snils === 0 ? '' : this.user.snils)\n )\n }\n\n get user() {\n return this.rootStore.appStore.user.info\n }\n\n get isOwner() {\n return this.appStore.hasEntity\n }\n\n @computed\n get appStore() {\n return this.rootStore.appStore\n }\n\n @computed\n get fullPhone() {\n return `${this.phonePrefix}${this.phone}`\n }\n\n setSendingData = (value: boolean) => {\n this.isSendingData = value\n }\n\n @action\n setLoadingPassportData = (value: boolean) => {\n this.loadingPassportData = value\n }\n\n @action\n setPersonalDataStep = (value: PersonalDataStep) => {\n this.personalDataStep = value\n }\n\n @action\n setSelectedCountry = (value: CountryItem) => {\n this.selectedCountry = value\n this.phonePrefix = value.value\n this.country = value.country\n }\n\n @action\n setPhonePrefix = (value: string) => {\n this.phonePrefix = value\n }\n\n @action\n setCountry = (value: Country) => {\n this.country = value\n }\n\n @action\n setPhone = (value: string) => {\n this.phone = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n\n @action\n createEditData() {\n const company = this.appStore.company\n\n this.companyDetails.setSelectedCountry(\n countries.find((item) => item.value.country === company?.country)?.value ?? countries[0].value,\n )\n this.profile.setLastName(this.user.last_name)\n this.profile.setFirstName(this.user.first_name)\n this.profile.setMiddleName(this.user.middle_name)\n\n this.profile.setSnils(String(this.user.snils !== 0 ? this.user.snils : '')) // С сервера приходит ноль, если пустое значение\n this.profile.setTelegramLogin(this.user.telegram_login)\n\n this.profile.setAdditionPhone(String(this.user.additional_phone))\n this.profile.setAdditionPhoneCountry(this.user.country)\n this.profile.setEmail(company?.email ?? '')\n\n this.companyDetails.setBik(company?.bik ?? '')\n this.companyDetails.setInn(company?.inn ?? '')\n this.companyDetails.setPayAccount(company?.payAccount ?? '')\n this.companyDetails.setTaxType(company?.taxType ?? TaxTypes.usn)\n this.companyDetails.setTaxFiles(company?.taxFiles ?? [])\n this.companyDetails.setTaxFilesUI(company?.taxFiles ?? [])\n this.companyDetails.setCompanyType(company?.orgType ?? CompanyType.ip)\n this.companyDetails.setLegalAddress(company?.legalAddress ?? '')\n this.companyDetails.setGln(company?.gln ?? '')\n\n this.companyDetails.setBankName(company?.bankName ?? '')\n this.companyDetails.setBankInn(company?.bankInn ?? '')\n this.companyDetails.setCorAccount(company?.corAccount ?? '')\n this.companyDetails.setCompanyName(company?.orgName ?? '')\n this.companyDetails.setInnText(company?.inn ?? '')\n\n this.companyDetails.setTaxCheckStatus(company?.taxCheckStatus ?? TaxCheckStatusType.review)\n this.companyDetails.setTaxCheckStatusComment(company?.taxCheckStatusComment ?? '')\n\n this.profile.initPhoneData()\n this.initPhoneData()\n }\n\n @action\n initPhoneData() {\n const countryItem = countries.find((x) => x.value.country === this.user.country) ?? countries[0]\n this.setPhone(getPhoneWithoutPrefix(countryItem.value.country, this.user.phone.toString()))\n this.setSelectedCountry(countryItem.value)\n }\n\n @action\n setLoading = (value: boolean) => {\n this.loading = value\n }\n}\n","import { notification } from 'antd'\nimport dayjs from 'dayjs'\nimport i18next from 'i18next'\nimport { makeAutoObservable } from 'mobx'\n\nimport { DATE_FORMAT_EMPTY_TIME } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\n\nimport { userApi } from '../../api'\nimport {\n BaseDocumentDTO,\n Citizenship,\n CompanyType,\n DocumentType,\n GENDER,\n GenderNumber,\n Passport,\n RequisitesData,\n UserModuleKeys,\n} from '../../types'\nimport { RegistrationUiStore } from './RegistrationUiStore'\n\nconst getApiKey = (key: string) => `${UserModuleKeys.api}.${key}`\n\nexport class RegistartionApiStore {\n constructor(protected readonly uiStore: RegistrationUiStore) {\n makeAutoObservable(this)\n }\n\n tryRegisterOwner = async () => {\n const { profile, companyDetails } = this.uiStore\n const {\n payAccount,\n bankName,\n bik,\n companyName,\n corAccount,\n companyType,\n inn,\n dateOfBirthday,\n dateOfIssue,\n departmentCode,\n documentPhoto,\n withDocumentPhoto,\n gender,\n passportIssued,\n passport,\n placeOfBirth,\n documentType,\n expirationDate,\n nationality,\n identificationNumber,\n registrationAddress,\n socialCardNumber,\n documentNumber,\n personalNumber,\n iin,\n innCitizen,\n legalAddress,\n gln,\n } = companyDetails\n const { firstName, lastName, middleName } = profile\n const citizenship = companyDetails.selectedCitizenship.value\n const genderNumber = gender === GENDER.MALE ? GenderNumber.MALE : GenderNumber.FEMALE\n\n this.uiStore.setRegistrationLoading(true)\n\n const getRequisitesData = () => {\n const requisitesData: RequisitesData = {}\n\n switch (companyDetails.selectedCountry.country) {\n case Country.RU:\n requisitesData.requisites_ru = {\n account_number: payAccount,\n bank_name: bankName,\n bik,\n company_name: companyName,\n correspondent_account: corAccount,\n }\n\n if (companyType === CompanyType.ip) {\n requisitesData.requisites_ru.ip_inn = inn\n } else {\n requisitesData.requisites_ru.ooo_inn = inn\n }\n\n break\n case Country.BY:\n requisitesData.requisites_by = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n unp: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_by.bik_8 = bik\n } else {\n requisitesData.requisites_by.bik_11 = bik\n }\n\n break\n case Country.KZ:\n requisitesData.requisites_kz = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n iin_bin: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_kz.bik_8 = bik\n } else {\n requisitesData.requisites_kz.bik_11 = bik\n }\n\n break\n case Country.AM:\n requisitesData.requisites_am = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_am.bik_8 = bik\n } else {\n requisitesData.requisites_am.bik_11 = bik\n }\n\n break\n case Country.KG:\n requisitesData.requisites_kg = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n bik,\n }\n\n break\n case Country.UZ:\n requisitesData.requisites_uz = {\n bik_mfo: bik,\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n }\n\n if (companyType === CompanyType.ooo) {\n requisitesData.requisites_uz.ooo_inn = inn\n } else {\n requisitesData.requisites_uz.pinfl = inn\n }\n\n break\n case Country.GE:\n requisitesData.requisites_ge = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn,\n }\n\n if (bik.length === 8) {\n requisitesData.requisites_ge.bik_8 = bik\n } else {\n requisitesData.requisites_ge.bik_11 = bik\n }\n\n break\n case Country.TJ:\n requisitesData.requisites_tj = {\n account_number: payAccount,\n bank_name: bankName,\n company_name: companyName,\n inn: inn,\n bik,\n }\n\n break\n }\n\n return requisitesData\n }\n\n const getPassportData = () => {\n const passportData: Passport = {}\n\n const basePassport: BaseDocumentDTO = {\n first_name: firstName,\n last_name: lastName,\n document_photo: documentPhoto,\n with_document_photo: withDocumentPhoto,\n issue_date: dayjs(dateOfIssue, 'DD.MM.YYYY').format(DATE_FORMAT_EMPTY_TIME),\n date_of_birth: dayjs(dateOfBirthday, 'DD.MM.YYYY').format(DATE_FORMAT_EMPTY_TIME),\n }\n\n const expiration_date = dayjs(expirationDate, 'DD.MM.YYYY').format(DATE_FORMAT_EMPTY_TIME)\n\n switch (citizenship) {\n case Citizenship.RU:\n passportData.passport_ru = {\n ...basePassport,\n department_code: departmentCode,\n document_photo: documentPhoto,\n last_name: lastName,\n patronymic: middleName,\n gender,\n issued_by: passportIssued,\n passport_number: `${passport.substring(0, 4)} ${passport.substring(4, 10)}`,\n place_of_birth: placeOfBirth,\n with_document_photo: withDocumentPhoto,\n }\n\n break\n case Citizenship.KZ:\n if (documentType === DocumentType.passport) {\n passportData.passport_kz = {\n ...basePassport,\n patronymic: middleName,\n gender,\n identification_number: identificationNumber,\n expiration_date,\n issued_by: passportIssued,\n nationality,\n passport_number: passport,\n place_of_birth: placeOfBirth,\n }\n } else {\n passportData.id_card_kz = {\n ...basePassport,\n patronymic: middleName,\n iin: iin,\n document_number: documentNumber,\n place_of_birth: placeOfBirth,\n nationality,\n expiration_date,\n issued_by: passportIssued,\n gender,\n }\n }\n\n break\n case Citizenship.AM:\n if (documentType === DocumentType.passport) {\n passportData.passport_am = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n passport_number: passport,\n registration_address: registrationAddress,\n }\n } else {\n passportData.id_card_am = {\n ...basePassport,\n document_number: documentNumber,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n social_card_number: socialCardNumber,\n }\n }\n\n break\n case Citizenship.BY:\n if (documentType === DocumentType.passport) {\n passportData.passport_by = {\n ...basePassport,\n gender: genderNumber,\n identification_number: identificationNumber,\n issued_by: passportIssued,\n expiration_date,\n patronymic: middleName,\n nationality,\n passport_number: passport,\n place_of_birth: placeOfBirth,\n }\n } else {\n passportData.id_card_by = {\n ...basePassport,\n citizenship,\n document_number: documentNumber,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n department_code: departmentCode,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n }\n }\n\n break\n case Citizenship.UZ:\n if (documentType === DocumentType.passport) {\n passportData.passport_uz = {\n ...basePassport,\n patronymic: middleName,\n gender,\n place_of_birth: placeOfBirth,\n nationality,\n issued_by: passportIssued,\n passport_number: passport,\n expiration_date,\n }\n } else {\n passportData.id_card_uz = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n expiration_date,\n citizenship,\n document_number: documentNumber,\n personal_number: personalNumber,\n place_of_birth: placeOfBirth,\n department_code: departmentCode,\n }\n }\n\n break\n case Citizenship.KG:\n if (documentType === DocumentType.passport) {\n passportData.passport_kg = {\n ...basePassport,\n patronymic: middleName,\n gender,\n citizenship,\n nationality,\n department_code: departmentCode,\n personal_number: identificationNumber,\n passport_number: passport,\n expiration_date,\n }\n } else {\n passportData.id_card_kg = {\n ...basePassport,\n patronymic: middleName,\n gender: genderNumber,\n citizenship,\n document_number: documentNumber,\n expiration_date,\n department_code: departmentCode,\n personal_number: personalNumber,\n place_of_birth: placeOfBirth,\n }\n }\n\n break\n case Citizenship.GE:\n passportData.id_card_ge = {\n ...basePassport,\n document_number: documentNumber,\n expiration_date,\n gender: genderNumber,\n issued_by: passportIssued,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n }\n\n break\n case Citizenship.TJ:\n passportData.id_card_tj = {\n ...basePassport,\n document_number: documentNumber,\n expiration_date,\n patronymic: middleName,\n gender: genderNumber,\n issued_by: passportIssued,\n identification_number: identificationNumber,\n place_of_birth: placeOfBirth,\n inn_citizen: innCitizen,\n }\n\n break\n }\n\n return passportData\n }\n\n try {\n await userApi.registerOwner({\n owner_data: {\n contact_info: {\n email: profile.email,\n phone_number: `+${profile.additionalPhoneModel.fullPhone.toString()}`,\n telegram: profile.telegramLogin,\n snils: profile.snils,\n legal_address: legalAddress,\n gln,\n },\n activity_form: {\n country: companyDetails.selectedCountry.country,\n identity_photos: companyDetails.taxFiles,\n organization_form: companyDetails.companyType,\n organization_tax: companyDetails.taxType,\n },\n passport: getPassportData(),\n requisites_data: getRequisitesData(),\n },\n })\n\n notification.success({\n message: i18next.t(getApiKey('Регистрация завершена')),\n description: i18next.t(getApiKey('Необходимо выполнить повторный')),\n })\n\n this.uiStore.rootStore.appStore.logout()\n } catch (error) {\n notification.error({\n message: i18next.t(getApiKey('Ошибка регистрации')),\n description: (error as Error).message,\n })\n throw error\n } finally {\n this.uiStore.setRegistrationLoading(false)\n }\n }\n}\n","import { action, makeObservable, observable } from 'mobx'\n\nimport { IRootStore } from 'store/types'\nimport { USER_PERMISSION } from 'shared/types/types'\n\nimport { PersonalDataStep } from '../../types'\nimport { CompanyDetailsViewModel } from '../models/CompanyDetailsViewModel'\nimport { ProfileViewModel } from '../models/ProfileViewModel'\nimport { ValidatePersonalDataStore } from '../ValidatePersonalDataStore'\nimport { RegistartionApiStore } from './RegistrationApiStore'\n\nexport class RegistrationUiStore {\n @observable readonly profile: ProfileViewModel = new ProfileViewModel()\n @observable readonly companyDetails: CompanyDetailsViewModel = new CompanyDetailsViewModel()\n @observable readonly apiStore = new RegistartionApiStore(this)\n @observable readonly validateStore = new ValidatePersonalDataStore(this.profile, this.companyDetails)\n\n @observable userRole: USER_PERMISSION = USER_PERMISSION.PERM_OWNER\n\n @observable personalDataStep: PersonalDataStep = PersonalDataStep.step1\n\n @observable isRegistrationLoading: boolean = false\n\n constructor(readonly rootStore: IRootStore) {\n makeObservable(this)\n }\n\n @action\n setUserRole = (value: USER_PERMISSION) => {\n this.userRole = value\n }\n\n @action\n setPersonalDataStep = (value: PersonalDataStep) => {\n this.personalDataStep = value\n }\n\n @action\n setRegistrationLoading = (value: boolean) => {\n this.isRegistrationLoading = value\n }\n}\n","export const formateTime = (date: Date | string) => {\n const hours = new Date(date).getHours()\n const minutes = String(new Date(date).getMinutes()).padStart(2, '0')\n\n return hours + ':' + minutes\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\n\nimport { IChatMessageDTO } from './types'\n\nconst searchEngineV2HttpService = new HttpService(appConfig.SEARCH_ENGINE_URL)\n\nexport class searchEngineV2Api {\n static async sendClientMessage(message: string): Promise> {\n const request = await searchEngineV2HttpService.post>('bert-api/v2/send-message-promo', {\n body: {\n request: message,\n },\n })\n return convertKeysToCamelCase(request)\n }\n}\n","export const MIN_MESSAGE_LENGTH = 50\nexport const MAX_MESSAGE_LENGTH = 1000\nexport const INITIAL_MESSAGE =\n 'Я виртуальный помощник. Отвечу на вопросы о пунктах выдачи. Например, расскажу, какие есть требования к помещению или как активировать пункт.\\n\\nЕсли у меня не получится ответить на вопрос или вы хотите пообщаться с человеком, нажмите «Задать вопрос менеджеру»'\n","import { BaseOption } from 'shared/types/types'\n\nexport type DialogBranchBaseOption = BaseOption & { icon: string }\n\nexport enum DialogBranches {\n regularChat = 'regularChat',\n}\n\nexport interface IChatMessageDTO {\n answer: string\n answerTime: string\n needScore: boolean\n}\n\nexport type MessagesType = {\n text: string\n me: boolean\n answerTime: string\n}\n","export default \"__VITE_ASSET__ve8SXqZ8__\"","import { notification } from 'antd'\nimport { action, makeObservable, observable } from 'mobx'\n\nimport api from 'services/api'\nimport { IRootStore } from 'store/types'\nimport { formateTime } from 'utils/formatting/formateTime/formateTime'\nimport { PromoSiteContactRequest } from 'types/types'\n\nimport { searchEngineV2Api } from './api'\nimport { INITIAL_MESSAGE } from './data'\nimport { DialogBranchBaseOption, DialogBranches, MessagesType } from './types'\n\nimport chatIcon from 'assets/img/searchEngine/chat__icon.svg'\n\nconst RegularChatBranch = {\n value: DialogBranches.regularChat,\n label: 'Чат с помощником',\n icon: chatIcon,\n}\n\nexport const branchesType: DialogBranchBaseOption[] = [RegularChatBranch]\n\nexport class SearchEngineUiStore {\n @observable loading: boolean = false\n @observable sending: boolean = false\n @observable problemReportModalOpen: boolean = false\n @observable isOpen: boolean = false\n @observable typeFinished: boolean = false\n @observable message: string = ''\n @observable messages: MessagesType[] = []\n @observable dialogBranch: DialogBranchBaseOption = RegularChatBranch\n @observable isResolveVisible: boolean = false\n @observable isRejectVisible: boolean = false\n\n constructor(private readonly rootStore: IRootStore) {\n makeObservable(this)\n this.messages = [{ text: INITIAL_MESSAGE, me: false, answerTime: this.getCurrentTime() }]\n }\n\n @action\n setDialogBranch = (value: DialogBranchBaseOption) => {\n this.dialogBranch = value\n }\n\n @action setIsResolveVisible = (value: boolean) => {\n this.isResolveVisible = value\n }\n\n @action setIsRejectVisible = (value: boolean) => {\n this.isRejectVisible = value\n }\n\n @action\n setLoading = (value: boolean) => {\n this.loading = value\n }\n\n @action\n setProblemReportModalOpen = (value: boolean) => {\n this.problemReportModalOpen = value\n }\n\n @action\n toggleIsOpen = (value: boolean) => {\n this.isOpen = value\n this.setDialogBranch(RegularChatBranch)\n }\n\n @action\n setMessage = (value: string) => {\n this.message = value\n }\n\n @action\n sendMessage = () => {\n if (this.dialogBranch.value === DialogBranches.regularChat) {\n this.sendTextMessage()\n }\n }\n\n @action\n setSending = (value: boolean) => {\n this.sending = value\n }\n\n @action\n getCurrentTime = () => {\n return formateTime(new Date())\n }\n\n @action\n extractTimeFromServerResponse = (serverTime: string): string => {\n const timeMatch = serverTime.match(/\\d{2}:\\d{2}:\\d{2}/)\n\n if (timeMatch) {\n const [hours, minutes] = timeMatch[0].split(':')\n return `${hours}:${minutes}`\n }\n\n return '00:00'\n }\n\n @action\n sendTextMessage = async () => {\n if (this.message === '') {\n return\n }\n\n this.messages.push({\n text: this.message,\n me: true,\n answerTime: this.getCurrentTime(),\n })\n this.setSending(true)\n try {\n const data = await searchEngineV2Api.sendClientMessage(this.message)\n if (data && data.answerTime) {\n this.messages.push({\n text: data.answer as string,\n me: false,\n answerTime: this.extractTimeFromServerResponse(data.answerTime),\n })\n }\n } catch (error) {\n notification.error({\n message: 'Ошибка при отправке сообщения.',\n description: (error as Error).message,\n })\n } finally {\n this.setMessage('')\n this.setSending(false)\n }\n }\n\n @action\n sendReviewMessage = async (data: PromoSiteContactRequest): Promise => {\n try {\n await api.requests.addReview(data)\n this.setIsResolveVisible(true)\n } catch (error) {\n this.setIsRejectVisible(true)\n notification.error({\n message: 'Ошибка при отправке обращения.',\n description: (error as Error).message,\n })\n }\n }\n}\n","import { notification } from 'antd'\nimport { action, computed, makeObservable, observable } from 'mobx'\n\nimport {\n clearLocalStorageData,\n getLocalStorageData,\n setLocalStorageData,\n STORAGE_KEY,\n} from 'services/localStorage.service'\nimport { userApi } from 'sections/LKSection/modules/UserModule/api'\nimport {\n CompanyDTO,\n OWNER_STATUS,\n PASSPORT_STATUSES,\n User,\n UserInfoDTO,\n} from 'sections/LKSection/modules/UserModule/types'\nimport { uuid4 } from 'utils/helpers/uuid4'\nimport { Country } from 'shared/types/types'\n\nimport { IRootStore } from '../../store/types'\n\nexport class AppStore {\n @observable user: User\n @observable deviceToken: string = ''\n @observable selectedCountry: Country = Country.RU\n @observable company: CompanyDTO | null = null\n @observable isLoadingUserInfo: boolean = false\n @observable isLoadingApp: boolean = true\n\n constructor(private readonly rootStore: IRootStore) {\n makeObservable(this)\n this.user = this.getUserDefault()\n }\n\n @computed\n get hasEntity() {\n return this.user.info.owner === OWNER_STATUS.ROLE_ACCEPTED\n }\n\n @computed\n get needRegistration() {\n const { user_id, owner } = this.user.info || {}\n\n return user_id !== 0 && owner === OWNER_STATUS.ROLE_NONE\n }\n\n @computed\n get companyCountry() {\n return this.company?.country ?? Country.RU\n }\n\n getDeviceUuid(): string {\n let deviceId: string = getLocalStorageData(STORAGE_KEY.DEVICE_UUID)\n\n if (!deviceId) {\n deviceId = uuid4()\n setLocalStorageData(STORAGE_KEY.DEVICE_UUID, deviceId)\n }\n\n return deviceId\n }\n\n @action\n setSelectedCountry = (value: Country) => {\n this.selectedCountry = value\n }\n\n @action\n setCompany = (value: CompanyDTO) => {\n this.company = value\n }\n\n @action\n setLoadingApp = (value: boolean) => {\n this.isLoadingApp = value\n }\n\n @action\n getCompany = async () => {\n try {\n const data = await userApi.getCompanies()\n this.setCompany(data[0])\n } catch (error) {\n notification.error({\n message: 'Ошибка получения списка юрлиц',\n description: (error as Error).message,\n })\n }\n }\n\n @action\n setLoadingUserInfo = (value: boolean) => {\n this.isLoadingUserInfo = value\n }\n\n @action\n resetState(): void {\n this.user = this.getUserDefault()\n }\n\n @action\n setUserInfo = (info: UserInfoDTO) => {\n const { country, additional_phone_country, middle_name, name } = info\n let countryTmp = country\n let additionalPhoneCountryTmp = additional_phone_country\n if (!countryTmp) {\n countryTmp = Country.RU\n }\n\n if (!additionalPhoneCountryTmp) {\n additionalPhoneCountryTmp = Country.RU\n }\n\n this.user.info = {\n ...info,\n country: countryTmp,\n additional_phone_country: additionalPhoneCountryTmp,\n middle_name: middle_name.trim(),\n name: name.trim(),\n }\n }\n\n @action\n setOwnerData = (\n data: Partial<\n Pick<\n UserInfoDTO,\n | 'first_name'\n | 'last_name'\n | 'middle_name'\n | 'email'\n | 'snils'\n | 'additional_phone'\n | 'additional_phone_country'\n | 'telegram_login'\n >\n >,\n ) => {\n Object.assign(this.user.info, data)\n }\n\n @action\n setAuthenticated = (value: boolean) => {\n this.user.authenticated = value\n }\n\n @action\n async bootstrap() {\n const token = getLocalStorageData(STORAGE_KEY.ACCESS_TOKEN)\n\n if (!token) {\n return\n }\n\n const [userInfo] = await Promise.all([\n this.loadUserData(),\n this.getCompany(),\n this.rootStore.offerStore.apiStore.getOfferVersion(),\n ])\n\n setLocalStorageData(STORAGE_KEY.USER_INFO, userInfo)\n }\n\n @action\n loadUserData = async () => {\n try {\n this.setLoadingUserInfo(true)\n\n const { data: userInfo } = await userApi.getUser()\n\n this.setUserInfo(userInfo)\n this.setAuthenticated(true)\n\n return userInfo\n } catch (error) {\n notification.error({\n message: 'Ошибка получения данных пользователя',\n description: (error as Error).message,\n })\n } finally {\n this.setLoadingUserInfo(false)\n }\n }\n\n @action\n async logout() {\n this.setAuthenticated(false)\n\n clearLocalStorageData(STORAGE_KEY.ACCESS_TOKEN)\n clearLocalStorageData(STORAGE_KEY.REFRESH_TOKEN)\n clearLocalStorageData(STORAGE_KEY.USER_INFO)\n clearLocalStorageData(STORAGE_KEY.AUTHENTICATED)\n clearLocalStorageData(STORAGE_KEY.COORDINATES)\n clearLocalStorageData(STORAGE_KEY.PICK_POINT_TYPE)\n clearLocalStorageData(STORAGE_KEY.SUBSIDY_HEX_TYPE)\n\n this.resetState()\n }\n\n private getUserDefault() {\n return {\n authenticated: false,\n token: '',\n cookie: '',\n info: {\n name: '',\n first_name: '',\n last_name: '',\n middle_name: '',\n country: Country.RU,\n email: '',\n owner: OWNER_STATUS.ROLE_NONE,\n phone: 0,\n user_id: 0,\n roles: [],\n last_push_id: 0,\n snils: 0,\n additional_phone: 0,\n additional_phone_country: Country.RU,\n telegram_login: '',\n passport_approve_status: PASSPORT_STATUSES.none,\n },\n } as User\n }\n}\n","import { ELockUiStore } from 'sections/LKSection/modules/ELockModule/stores/ELockUiStore'\nimport { EmployeeStore } from 'sections/LKSection/modules/EmployeeModule/stores/entity/EmployeeStore'\nimport { ViewEmployeeUiStore } from 'sections/LKSection/modules/EmployeeModule/stores/ViewEmployeeUiStore'\nimport { ActivateOrderUiStore } from 'sections/LKSection/modules/OrderModule/stores/ActivateOrder/ActivateOrderUiStore'\nimport { CreateOrderUiStore } from 'sections/LKSection/modules/OrderModule/stores/CreateOrder/CreateOrderUiStore'\nimport { OrderStore } from 'sections/LKSection/modules/OrderModule/stores/entity/OrderStore'\nimport { ViewOrderUiStore } from 'sections/LKSection/modules/OrderModule/stores/ViewOrder/ViewOrderUiStore'\nimport { PvzStore } from 'sections/LKSection/modules/PvzModule/stores/entity/PvzStore'\nimport { ViewPvzUiStore } from 'sections/LKSection/modules/PvzModule/stores/ViewPvz/ViewPvzUiStore'\nimport { CreateTicketUiStore } from 'sections/LKSection/modules/TicketModule/stores/CreateTicketUiStore'\nimport { TicketStore } from 'sections/LKSection/modules/TicketModule/stores/entity/TicketStore'\nimport { ViewTicketUiStore } from 'sections/LKSection/modules/TicketModule/stores/ViewTicket/ViewTicketUiStore'\nimport { LoginUiStore } from 'sections/LKSection/modules/UserModule/stores/LoginUiStore'\nimport { OfferUiStore } from 'sections/LKSection/modules/UserModule/stores/Offer/OfferUiStore'\nimport { ProfileUiStore } from 'sections/LKSection/modules/UserModule/stores/Profile/ProfileUiStore'\nimport { RegistrationUiStore } from 'sections/LKSection/modules/UserModule/stores/Registration/RegistrationUiStore'\nimport { SearchEngineUiStore } from 'sections/PromoSection/modules/SearchEngineModule/SearchEngineStore'\n\nimport { AppStore } from '../shared/stores/AppStore'\nimport { IRootStore } from './types'\n\nexport interface IResettable {\n resetState(): void\n}\n\nclass RootStore implements IRootStore, IResettable {\n constructor() {\n // store's\n this.appStore = new AppStore(this)\n this.orderStore = new OrderStore(this)\n this.pvzStore = new PvzStore(this)\n this.offerStore = new OfferUiStore(this)\n this.ticketStore = new TicketStore(this)\n this.employeeStore = new EmployeeStore(this)\n\n // uiStore's\n this.createOrderUiStore = new CreateOrderUiStore(this)\n this.activateOrderUiStore = new ActivateOrderUiStore(this)\n this.viewOrderUiStore = new ViewOrderUiStore(this)\n this.viewPvzUiStore = new ViewPvzUiStore(this)\n this.loginUiStore = new LoginUiStore(this)\n this.registrationUiStore = new RegistrationUiStore(this)\n this.eLockUiStore = new ELockUiStore(this)\n this.createTicketUiStore = new CreateTicketUiStore(this)\n this.viewTicketUiStore = new ViewTicketUiStore(this)\n this.searchEngineUiStore = new SearchEngineUiStore(this)\n this.profileUiStore = new ProfileUiStore(this)\n this.viewEmployeeUiStore = new ViewEmployeeUiStore(this)\n }\n\n // store's\n readonly appStore: AppStore\n readonly orderStore: OrderStore\n readonly pvzStore: PvzStore\n readonly offerStore: OfferUiStore\n readonly ticketStore: TicketStore\n readonly employeeStore: EmployeeStore\n\n // uiStore's\n readonly createOrderUiStore: CreateOrderUiStore\n readonly activateOrderUiStore: ActivateOrderUiStore\n readonly viewOrderUiStore: ViewOrderUiStore\n readonly viewPvzUiStore: ViewPvzUiStore\n readonly loginUiStore: LoginUiStore\n readonly registrationUiStore: RegistrationUiStore\n readonly eLockUiStore: ELockUiStore\n readonly createTicketUiStore: CreateTicketUiStore\n readonly viewTicketUiStore: ViewTicketUiStore\n readonly searchEngineUiStore: SearchEngineUiStore\n readonly profileUiStore: ProfileUiStore\n readonly viewEmployeeUiStore: ViewEmployeeUiStore\n\n private get resettable(): IResettable[] {\n return []\n }\n\n resetState(): void {\n this.resettable.forEach((r) => r.resetState())\n }\n}\n\nexport const rootStore = new RootStore()\n","import { createContext, useContext } from 'react'\n\nimport { IRootStore } from './types'\n\nconst RootStoreContext = createContext(null)\n\nexport const Provider = RootStoreContext.Provider\n\nexport function useStore() {\n const store = useContext(RootStoreContext)\n\n if (store === null) {\n throw new Error('Store cannot be null, please add a context provider')\n }\n\n return store\n}\n","import { SectionName } from 'types/types'\n\nexport enum ActionType {\n SET_BLOCK_COLLAPSED,\n SET_NEED_TO_SAVE_BLOCK,\n SET_NAVBAR_COLOR,\n}\n\nexport enum NavbarColor {\n transparent = 'transparent',\n corp = '#990099',\n}\n\nexport interface SET_BLOCK_COLLAPSED {\n type: ActionType.SET_BLOCK_COLLAPSED\n payload: {\n block: SectionName\n }\n}\n\nexport interface SET_NEED_TO_SAVE_BLOCK {\n type: ActionType.SET_NEED_TO_SAVE_BLOCK\n payload: {\n needToSaveBlock: SectionName | ''\n }\n}\n\nexport interface SET_NAVBAR_COLOR {\n type: ActionType.SET_NAVBAR_COLOR\n payload: {\n navbarColor: NavbarColor\n }\n}\n\nexport type AdminMenuUiActions = SET_BLOCK_COLLAPSED | SET_NEED_TO_SAVE_BLOCK | SET_NAVBAR_COLOR\n","import { SectionName } from 'types/types'\n\nimport {\n ActionType,\n AdminMenuUiActions,\n NavbarColor,\n SET_BLOCK_COLLAPSED,\n SET_NAVBAR_COLOR,\n SET_NEED_TO_SAVE_BLOCK,\n} from './actions'\nimport { AdminMenuUiState } from './state'\n\nexport function adminMenuUiStateReducer(state: AdminMenuUiState, action: AdminMenuUiActions): AdminMenuUiState {\n switch (action.type) {\n case ActionType.SET_BLOCK_COLLAPSED: {\n const blocks = [...state.collapsedBlocks]\n const blockIndex = blocks.indexOf(action.payload.block)\n if (!~blockIndex) {\n blocks.push(action.payload.block)\n } else {\n blocks.splice(blockIndex, 1)\n }\n return {\n ...state,\n collapsedBlocks: blocks,\n }\n }\n\n case ActionType.SET_NEED_TO_SAVE_BLOCK: {\n return {\n ...state,\n needToSaveBlock: action.payload.needToSaveBlock,\n }\n }\n\n case ActionType.SET_NAVBAR_COLOR: {\n return {\n ...state,\n navbarColor: action.payload.navbarColor,\n }\n }\n\n default:\n return state\n }\n}\n\nexport const setCollapsed = (block: SectionName): SET_BLOCK_COLLAPSED => ({\n type: ActionType.SET_BLOCK_COLLAPSED,\n payload: {\n block: block,\n },\n})\n\nexport const setNeedToSaveBlock = (block: SectionName | ''): SET_NEED_TO_SAVE_BLOCK => ({\n type: ActionType.SET_NEED_TO_SAVE_BLOCK,\n payload: {\n needToSaveBlock: block,\n },\n})\n\nexport const setNavbarColor = (color: NavbarColor): SET_NAVBAR_COLOR => ({\n type: ActionType.SET_NAVBAR_COLOR,\n payload: {\n navbarColor: color,\n },\n})\n","import { SectionName } from 'types/types'\n\nexport type AdminMenuUiState = {\n collapsedBlocks: SectionName[]\n needToSaveBlock: SectionName | ''\n isModalVisible: boolean\n navbarColor: string\n}\n\nexport const initialAdminMenuUiState: AdminMenuUiState = {\n collapsedBlocks: [],\n needToSaveBlock: '',\n isModalVisible: false,\n navbarColor: '',\n}\n","import React from 'react'\nimport { createContext } from 'use-context-selector'\n\nimport { AdminMenuUiActions } from './actions'\nimport { adminMenuUiStateReducer } from './reducer'\nimport { AdminMenuUiState, initialAdminMenuUiState } from './state'\n\nexport const AdminMenuUiStateContext = createContext<{\n state: AdminMenuUiState\n dispatch: React.Dispatch\n}>({\n state: initialAdminMenuUiState,\n dispatch: () => undefined,\n})\n\nexport interface AdminMenuUiStateProviderProps extends React.HTMLAttributes {}\n\nexport const AdminMenuUiStateProvider = ({ children }: AdminMenuUiStateProviderProps) => {\n const [state, dispatch] = React.useReducer(adminMenuUiStateReducer, initialAdminMenuUiState)\n\n return {children}\n}\n","import { SectionDTO } from '../../types/types'\nimport { SectionState } from './state'\n\nexport enum ActionType {\n SET_SECTION_ORDER,\n SAVE_SECTION,\n SET_SECTIONS,\n CREATE_COLLABORATION_ENTITY,\n DELETE_COLLABORATION_ENTITY,\n CREATE_INFO_ENTITY,\n DELETE_INFO_ENTITY,\n CREATE_TARIF_ENTITY,\n DELETE_TARIF_ENTITY,\n CREATE_FAQ_ENTITY,\n DELETE_FAQ_ENTITY,\n CREATE_BENEFITS_ENTITY,\n DELETE_BENEFITS_ENTITY,\n CREATE_COLLABORATION_VIDEO,\n DELETE_COLLABORATION_VIDEO,\n CREATE_INFO_VIDEO,\n DELETE_INFO_VIDEO,\n CREATE_TARIF_VIDEO,\n DELETE_TARIF_VIDEO,\n CREATE_FAQ_VIDEO,\n DELETE_FAQ_VIDEO,\n SET_IS_CHANGES_UPDATING_BLOCKED,\n}\n\nexport interface SET_SECTION_ORDER {\n type: ActionType.SET_SECTION_ORDER\n payload: {\n oldIndex: number\n newIndex: number\n }\n}\n\nexport interface SAVE_SECTION {\n type: ActionType.SAVE_SECTION\n payload: {\n section: SectionState\n }\n}\n\nexport interface SET_SECTIONS {\n type: ActionType.SET_SECTIONS\n payload: {\n sections: SectionDTO[]\n }\n}\n\nexport interface SET_IS_CHANGES_UPDATING_BLOCKED {\n type: ActionType.SET_IS_CHANGES_UPDATING_BLOCKED\n}\n\nexport type PromoPageActions = SET_SECTION_ORDER | SAVE_SECTION | SET_SECTIONS | SET_IS_CHANGES_UPDATING_BLOCKED\n","import { SectionDTO, SectionName } from '../../types/types'\nimport {\n ActionType,\n PromoPageActions,\n SAVE_SECTION,\n SET_IS_CHANGES_UPDATING_BLOCKED,\n SET_SECTION_ORDER,\n SET_SECTIONS,\n} from './actions'\nimport { PromoPageState, SectionState } from './state'\n\nexport function promoPageStateReducer(state: PromoPageState, action: PromoPageActions): PromoPageState {\n switch (action.type) {\n case ActionType.SET_SECTION_ORDER: {\n const array = [...state.sections]\n\n const oldElem = array.find((el) => el.index === action.payload.oldIndex)\n const newElem = array.find((el) => el.index === action.payload.newIndex)\n oldElem!.index = action.payload.newIndex\n newElem!.index = action.payload.oldIndex\n\n array.sort((a, b) => a.index - b.index)\n\n return {\n ...state,\n sections: array,\n }\n }\n\n case ActionType.SAVE_SECTION: {\n const array = state.sections.map((item) => {\n if (item.type === action.payload.section.type) {\n item = action.payload.section\n }\n\n return item\n })\n\n return {\n ...state,\n sections: array,\n }\n }\n\n case ActionType.SET_SECTIONS: {\n const array: SectionState[] = []\n /* console.log('Секции с сервера', action.payload.sections) */\n action.payload.sections.forEach((item) => {\n const currentSection = state.sections.find((stateSection) => stateSection.type === item.type) as SectionState\n\n const parsedSectionFromServer = {\n type: item.type as SectionName,\n content: item.content,\n index: item.index,\n }\n\n /* console.log(`Распарсеная секциия с сервера ${parsedSectionFromServer.type}`, parsedSectionFromServer) */\n\n array.push({\n ...currentSection,\n ...parsedSectionFromServer,\n })\n })\n\n array.sort((a, b) => {\n return a.index - b.index\n })\n\n /* console.log('Распарсеные секции с сервера', array) */\n\n return {\n ...state,\n sections: array,\n }\n }\n\n case ActionType.SET_IS_CHANGES_UPDATING_BLOCKED: {\n return {\n ...state,\n isChangesUpdatingBlocked: true,\n }\n }\n\n default:\n return state\n }\n}\n\nexport const setSectionOrder = (oldIndex: number, newIndex: number): SET_SECTION_ORDER => ({\n type: ActionType.SET_SECTION_ORDER,\n payload: { oldIndex: oldIndex, newIndex: newIndex },\n})\n\nexport const saveSection = (section: SectionState): SAVE_SECTION => ({\n type: ActionType.SAVE_SECTION,\n payload: {\n section: section,\n },\n})\n\nexport const setSections = (sections: SectionDTO[]): SET_SECTIONS => {\n return {\n type: ActionType.SET_SECTIONS,\n payload: {\n sections: sections,\n },\n }\n}\n\nexport const setIsChangesUpdatingBlocked = (): SET_IS_CHANGES_UPDATING_BLOCKED => ({\n type: ActionType.SET_IS_CHANGES_UPDATING_BLOCKED,\n})\n","export default \"__VITE_ASSET__W5upTh19__\"","import { useState } from 'react'\nimport { useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { SectionName } from 'types/types'\n\nimport dots from 'assets/img/admin/dots-menu.svg'\nimport s from './BlockWrap.module.scss'\n\ntype BlockWrapProps = {\n children: JSX.Element\n type: SectionName\n text?: string\n textFontSize?: string | number\n bgColor?: string\n setDraggable?: React.Dispatch>\n}\n\nexport const BlockWrap = ({ children, type, text, textFontSize = 14, bgColor, setDraggable }: BlockWrapProps) => {\n const title = useContextSelector(\n PromoPageStateContext,\n (context) => context.state.sections.find((section) => section.type === type)?.title,\n )\n\n const [isVisible, setVisible] = useState(false)\n\n const clickHandler = () => {\n setVisible(!isVisible)\n setDraggable && setDraggable(isVisible) //когда какой-либо блок открыт - перемещать нельзя\n }\n\n return (\n
\n
\n
\n {text || title}\n
\n\n {setDraggable && (\n
\n \n \"dots\"\n
\n )}\n
\n\n {isVisible &&
{children}
}\n
\n )\n}\n","import { Button } from 'components/uiKit'\n\nimport s from './AdminAddElemButton.module.scss'\n\ntype AdminAddElemButtonProps = {\n text: string\n onClick: () => void\n}\nexport const AdminAddElemButton = ({ text, onClick }: AdminAddElemButtonProps) => {\n return (\n \n )\n}\n","import { ChangeEvent, InputHTMLAttributes } from 'react'\n\nimport s from './AdminInput.module.scss'\n\ninterface AdminInputType extends Omit, 'onChange'> {\n label?: string\n labelWeight?: number\n labelSize?: string\n onChange: (value: any) => void\n}\n\nexport const AdminInput = ({ label, labelWeight, labelSize, onChange, ...props }: AdminInputType) => {\n const changeHandler = (e: ChangeEvent) => {\n props.type === 'file' ? onChange!(e.target.files![0]) : onChange!(e.target.value)\n }\n\n return (\n \n )\n}\n","import * as React from \"react\";\nconst SvgChat = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14 4C17.3084 4 20 6.69159 20 10C20 13.3084 17.3084 16 14 16H12H11.3954L10.8921 16.3349L8.02344 18.2436V16.9352V15.7779L7.01998 15.2012C5.15719 14.1307 4 12.1377 4 10C4 6.69159 6.69159 4 10 4H14ZM14 2H10C5.58173 2 2 5.58172 2 10C2 12.9692 3.6214 15.5548 6.02344 16.9352V21.9766L12 18H14C18.4183 18 22 14.4183 22 10C22 5.58172 18.4183 2 14 2Z\", fill: \"#CB11AB\" }));\nexport default SvgChat;\n","import * as React from \"react\";\nconst SvgLike = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 11V21C4 21.5522 3.55231 22 3 22C2.44769 22 2 21.5522 2 21V11C2 10.4477 2.44769 10 3 10C3.55231 10 4 10.4477 4 11ZM21.834 14.1084L19.4307 20.1152C18.9736 21.2598 17.8809 22 16.6475 22H6C5.44775 22 5 21.5527 5 21V11C5 10.8301 5.04346 10.6626 5.12598 10.5137L8.70118 4.0874C9.0752 2.85107 10.2119 2 11.5151 2C12.4268 2 13.2715 2.41211 13.832 3.13037C14.3935 3.84912 14.5889 4.76855 14.3672 5.65283L13.2812 10H19.0518C20.0469 10 20.9746 10.4922 21.5332 11.3164C22.0908 12.1406 22.2031 13.1846 21.834 14.1084ZM19.8769 12.438C19.6885 12.1597 19.3877 12 19.0518 12H12C11.6919 12 11.4014 11.8579 11.2119 11.6152C11.0225 11.3726 10.9551 11.0562 11.0298 10.7573L12.4272 5.16796C12.498 4.88525 12.4355 4.5913 12.2558 4.36132C12.0767 4.13184 11.8066 4 11.5151 4C11.083 4 10.7075 4.29297 10.603 4.71191C10.5816 4.79736 10.5493 4.87939 10.5068 4.95605L7 11.2593V20H16.6475C17.0576 20 17.4209 19.7539 17.5732 19.374L19.9766 13.3662C20.1016 13.0537 20.0654 12.7158 19.8769 12.438Z\", fill: \"white\" }));\nexport default SvgLike;\n","import * as React from \"react\";\nconst SvgPen = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.8213 1.17969C17.251 -0.390624 14.6982 -0.390624 13.1279 1.17969L1.00586 13.3022C0.852543 13.4556 0.753423 13.6538 0.723153 13.8677L0.0102527 18.8589C-0.0346673 19.1704 0.0703125 19.4849 0.292963 19.7075C0.481933 19.896 0.736823 20.0005 1 20.0005C1.04688 20.0005 1.09424 19.9976 1.1416 19.9907L6.1333 19.2778C6.34717 19.2466 6.5459 19.1479 6.69873 18.9946L18.8213 6.87207C20.3897 5.30225 20.3897 2.74903 18.8213 1.17969ZM17.4072 2.59375C18.1963 3.3833 18.1963 4.66846 17.4072 5.45801L17.4009 5.46436L14.5361 2.59961L14.542 2.59375C15.333 1.80371 16.6162 1.80371 17.4072 2.59375ZM3.8407 13.296L13.1221 4.01373L15.9868 6.87842L6.7049 16.1608L3.8407 13.296ZM2.59845 14.8818L5.11853 17.4025L2.17822 17.8218L2.59845 14.8818Z\", fill: \"#CB11AB\" }));\nexport default SvgPen;\n","import * as React from \"react\";\nconst SvgPhone = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"phone\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M6.0751 21.982C3.87881 21.7232 3.1249 20.7847 2.51944 20.0298L3.29874 19.4029L2.51944 20.0298C1.82803 19.1704 1.82217 18.0464 2.50674 17.357L5.47744 14.3697C6.18642 13.6607 7.44424 13.6812 8.17373 14.4136L9.40225 15.648L9.53897 15.6861C10.4618 15.1714 11.7265 14.4654 13.0482 13.1372C14.3773 11.7998 15.081 10.5245 15.6278 9.53764L14.3173 8.22172C13.5678 7.46635 13.5502 6.25688 14.2782 5.52592L17.2475 2.54154C17.954 1.82767 19.2387 1.86918 19.9218 2.55717C20.0692 2.67094 21.3739 3.73637 21.8544 6.09281C22.4999 9.2642 20.9877 12.3438 16.6337 16.7212C11.7592 21.6187 7.62588 21.9995 6.47549 21.9995C6.22061 21.9995 6.08389 21.9829 6.0751 21.982ZM15.7777 6.85403L17.0995 8.18411C17.7743 8.93069 17.7074 9.91849 17.3461 10.5591C16.7753 11.5943 15.9936 13.0113 14.4662 14.5474C12.9462 16.0757 11.5399 16.8599 10.5146 17.4322C10.3319 17.5357 9.95304 17.7105 9.46768 17.7105C8.87784 17.7105 8.33584 17.4624 7.98428 17.0581L6.81436 15.8609L4.01553 18.6753C4.0292 18.7056 4.04971 18.7407 4.07803 18.7759L4.07998 18.7779C4.58877 19.4136 4.92568 19.8325 6.29189 19.9937C6.31045 19.9956 6.37393 19.9995 6.47549 19.9995C7.43154 19.9995 10.8856 19.6616 15.2157 15.3111C19.0331 11.4727 20.3886 8.91751 19.8944 6.49221C19.5595 4.84963 18.7294 4.16457 18.6757 4.12258L18.5883 4.02932L15.7777 6.85403Z\", fill: \"#DC00AE\" })));\nexport default SvgPhone;\n","import * as React from \"react\";\nconst SvgResend = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { id: \"resend\" }, /* @__PURE__ */ React.createElement(\"path\", { id: \"Vector\", d: \"M2 21C2 21.5527 2.44727 22 3 22C3.55273 22 4 21.5527 4 21C4 13.5889 10.0185 8.00001 18 8.00001C18.2672 8.00001 18.5349 8.01136 18.8019 8.0265L16.0502 10.7782C15.6597 11.1687 15.6597 11.8018 16.0502 12.1924C16.4407 12.5829 17.0739 12.5829 17.4645 12.1924L21.7071 7.94978C22.0977 7.55922 22.0976 6.92604 21.7071 6.53553L17.4645 2.29292C17.0739 1.90236 16.4408 1.90236 16.0502 2.29292C15.6597 2.68342 15.6597 3.3166 16.0502 3.7071L18.3549 6.01173C18.2366 6.0091 18.1182 6.00001 18 6.00001C8.87891 6.00001 2 12.4487 2 21Z\", fill: \"white\" })));\nexport default SvgResend;\n","import * as React from \"react\";\nconst SvgArrow = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21.7064 12.7077L13.707 20.707C13.5117 20.9023 13.2559 21 13 21C12.7441 21 12.4883 20.9023 12.293 20.707C11.9023 20.3164 11.9023 19.6836 12.293 19.293L18.5859 13H3C2.44775 13 2 12.5522 2 12C2 11.4477 2.44775 11 3 11H18.5859L12.293 4.70702C11.9023 4.3164 11.9023 3.68358 12.293 3.29296C12.6836 2.90235 13.3164 2.90235 13.707 3.29296L21.7064 11.2923C21.7989 11.3846 21.8722 11.4954 21.923 11.6181C22.024 11.8624 22.024 12.1376 21.923 12.3819C21.8722 12.5046 21.7989 12.6154 21.7064 12.7077Z\", fill: \"black\" }));\nexport default SvgArrow;\n","import classNames from 'classnames'\n\nimport Chat from 'assets/img/feedback/chat.svg?react'\nimport Like from 'assets/img/feedback/like.svg?react'\nimport Pen from 'assets/img/feedback/pen.svg?react'\nimport Phone from 'assets/img/phone.svg?react'\nimport Resend from 'assets/img/resend.svg?react'\nimport Arrow from 'assets/img/shared/arrow.svg?react'\nimport s from './Button.module.scss'\n\nconst buttonTypes = {\n special: s.special,\n slav: s.slav,\n info: s.info,\n success: s.success,\n prim: s.prim,\n trip: s.trip,\n promo: s.promo,\n}\n\nconst icon = {\n like: ,\n pen: ,\n chat: ,\n back: ,\n phone: ,\n resend: ,\n}\n\ninterface PropsType extends React.ButtonHTMLAttributes {\n buttonType?: keyof typeof buttonTypes\n fullWidth?: boolean\n iconType?: 'like' | 'pen' | 'chat' | 'back' | 'phone' | 'resend'\n iconRotate180?: boolean\n iconColor?: 'white'\n}\n\nexport const Button = ({\n className,\n children,\n iconType,\n buttonType = 'special',\n fullWidth = false,\n disabled = false,\n iconRotate180 = false,\n iconColor,\n ...other\n}: PropsType) => {\n const classes = classNames(className, s.button, {\n [s.special]: buttonType === 'special',\n [s.slav]: buttonType === 'slav',\n [s.info]: buttonType === 'info',\n [s.success]: buttonType === 'success',\n [s.prim]: buttonType === 'prim',\n [s.trip]: buttonType === 'trip',\n })\n\n const iconClasses = classNames(s.icon, {\n [s.iconSlav]: buttonType === 'slav',\n [s.iconRotate180]: iconRotate180,\n [s.iconWhite]: iconColor === 'white',\n })\n\n return (\n \n )\n}\n","import { notification } from 'antd'\n\nimport { Button } from 'components/ui/Button/Button'\n\nimport s from './AdminSaveButton.module.scss'\n\ninterface AdminSaveButtonProps extends React.ButtonHTMLAttributes {\n text?: string\n showSuccess?: boolean\n onClick: () => void\n}\n\nexport const AdminSaveButton = ({\n text = 'Сохранить',\n showSuccess = true,\n onClick,\n ...props\n}: AdminSaveButtonProps) => {\n const clickHandler = () => {\n onClick()\n\n if (showSuccess) {\n notification.success({\n message: 'Изменения сохранены!',\n })\n }\n }\n\n return (\n
\n \n
\n )\n}\n","import { TextareaHTMLAttributes } from 'react'\n\nimport s from './AdminTextArea.module.scss'\n\ninterface AdminTextAreaProps extends Omit, 'onChange'> {\n label?: string\n labelSize?: string\n labelWeight?: number\n onChange: (value: string) => void\n}\n\nexport const AdminTextArea = ({ value, label, labelSize, labelWeight, onChange, ...props }: AdminTextAreaProps) => {\n return (\n \n )\n}\n","export enum ActionType {\n SET_USER_ROLE,\n}\n\nexport interface SET_USER_ROLE {\n type: ActionType.SET_USER_ROLE\n payload: {\n token?: string\n }\n}\n\nexport type UserActions = SET_USER_ROLE\n","import { setLocalStorageData, clearLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\n\nimport { ActionType, SET_USER_ROLE, UserActions } from './actions'\nimport { UserState } from './state'\n\nexport function userStateReducer(state: UserState, action: UserActions): UserState {\n switch (action.type) {\n case ActionType.SET_USER_ROLE: {\n let adminRole = false\n\n if (action.payload.token) {\n setLocalStorageData(STORAGE_KEY.USER_TOKEN, action.payload.token)\n adminRole = true\n } else {\n clearLocalStorageData(STORAGE_KEY.USER_TOKEN)\n }\n\n return {\n ...state,\n adminRole,\n }\n }\n default:\n return state\n }\n}\n\nexport const setUserRole = (token?: string): SET_USER_ROLE => ({\n type: ActionType.SET_USER_ROLE,\n payload: { token },\n})\n","export type UserState = {\n adminRole: boolean\n}\n\nexport const initialUserState: UserState = {\n adminRole: false,\n}\n","import React from 'react'\nimport { createContext } from 'use-context-selector'\n\nimport { UserActions } from './actions'\nimport { userStateReducer } from './reducer'\nimport { initialUserState, UserState } from './state'\n\nexport const UserStateContext = createContext<{\n state: UserState\n dispatch: React.Dispatch\n}>({\n state: initialUserState,\n dispatch: () => undefined,\n})\n\nexport interface UserStateProviderProps extends React.HTMLAttributes {}\n\nexport const UserStateProvider = ({ children }: UserStateProviderProps) => {\n const [state, dispatch] = React.useReducer(userStateReducer, initialUserState)\n\n return {children}\n}\n","export const getWeekNumber = (date: Date) => {\n const msInDay = 86400000\n\n const firstDayOfYear = new Date(date.getFullYear(), 0, 1)\n const pastDaysYear = (date.getTime() - firstDayOfYear.getTime()) / msInDay\n\n return Math.ceil((pastDaysYear - firstDayOfYear.getDay() + 1) / 7)\n}\n","import { getWeekNumber } from './getWeekNumber'\n\ntype CreateDateType = {\n locale?: string\n date?: Date | string\n}\n\nexport const createDate = (params?: CreateDateType) => {\n const locale = params?.locale ?? 'RU'\n const date = new Date(params?.date ?? new Date())\n\n const dayNumber = date.getDate()\n const dayNumberInWeek = date.getDay()\n const day = date.toLocaleDateString(locale, { weekday: 'long' })\n const dayShort = date.toLocaleDateString(locale, { weekday: 'short' })\n\n const year = date.getFullYear()\n const yearShort = date.toLocaleDateString(locale, { year: '2-digit' })\n\n const monthName = date.toLocaleDateString(locale, { month: 'long' })\n const monthShort = date.toLocaleDateString(locale, { month: 'short' })\n const monthNumber = date.getMonth() + 1\n const monthIndex = date.getMonth()\n\n const week = getWeekNumber(date)\n\n const timestamp = date.getTime()\n\n return {\n date,\n dayNumber,\n dayNumberInWeek,\n day,\n dayShort,\n year,\n yearShort,\n monthName,\n monthShort,\n monthNumber,\n monthIndex,\n timestamp,\n week,\n }\n}\n","export const getMonthNumberOfDays = (monthIndex: number, yearNumber: number = new Date().getFullYear()) => {\n return new Date(yearNumber, monthIndex + 1, 0).getDate()\n}\n","import { ConferenceDataType, ConferenceType } from 'sections/PromoSection/pages/ConferencesPage/types'\n\nimport { createDate } from './createDate'\nimport { getMonthNumberOfDays } from './getMonthNumberOfDays'\n\ntype CreateMonthType = {\n locale?: string\n date?: Date\n}\n\nexport const createMonth = (params?: CreateMonthType) => {\n const locale = params?.locale ?? 'default'\n const date = params?.date ?? new Date()\n\n const { monthName, monthNumber, monthIndex, year } = createDate({ date, locale })\n\n const getDay = (dayNumber: number) => {\n return createDate({ date: new Date(year, monthIndex, dayNumber), locale })\n }\n\n const createMonthDays = (conferenceData: ConferenceDataType = {}) => {\n const days = []\n\n for (let i = 0; i < getMonthNumberOfDays(monthIndex, year); i++) {\n const conferences: ConferenceType[] = (conferenceData[year]?.[monthIndex]?.[i + 1] ?? []).map((conference) => {\n return {\n ...conference,\n endDate: new Date(conference.endDate),\n startDate: new Date(conference.startDate),\n }\n })\n\n days.push({ ...getDay(i + 1), conferences })\n }\n\n return days\n }\n\n return {\n monthName,\n monthIndex,\n monthNumber,\n year,\n getDay,\n createMonthDays,\n }\n}\n","import { createDate } from './createDate'\n\nexport const getMonthNames = (locale: string = 'default') => {\n const monthNames: {\n monthName: ReturnType['monthName']\n monthShort: ReturnType['monthShort']\n monthIndex: ReturnType['monthIndex']\n }[] = Array.from({ length: 12 })\n\n const newDate = new Date()\n\n for (let i = 0; i < monthNames.length; i++) {\n const { monthName, monthIndex, monthShort } = createDate({\n locale,\n date: new Date(newDate.getFullYear(), newDate.getMonth() + i, 1),\n })\n\n monthNames[monthIndex] = { monthName, monthShort, monthIndex }\n }\n\n return monthNames\n}\n","import { createDate } from './createDate'\n\nexport const getWeekDaysNames = (locale: string = 'default') => {\n const weekDaysNames: {\n day: ReturnType['day']\n dayShort: ReturnType['dayShort']\n }[] = Array.from({ length: 7 })\n\n const newDate = new Date()\n\n for (let i = 0; i < weekDaysNames.length; i++) {\n const { day, dayNumberInWeek, dayShort } = createDate({\n locale,\n date: new Date(newDate.getFullYear(), newDate.getMonth(), newDate.getDate() + i),\n })\n\n weekDaysNames[dayNumberInWeek] = { day, dayShort }\n }\n\n return [...weekDaysNames.slice(1), ...weekDaysNames.slice(0, 1)]\n}\n","export const scrollToIdWithOffset = (id: string, offsetPx: number) => {\n const element = document.querySelector(id)\n if (element) {\n const bodyRect = document.body.getBoundingClientRect().top\n const elementRect = element.getBoundingClientRect().top\n const elementPosition = elementRect - bodyRect\n const offsetPosition = elementPosition - offsetPx\n\n window.scrollTo({\n top: offsetPosition,\n behavior: 'smooth',\n })\n }\n}\n","import dayjs from 'dayjs'\nimport { useEffect, useMemo, useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { UserStateContext } from 'states/UserState/UserStateProvider'\nimport { ConferenceType } from 'sections/PromoSection/pages/ConferencesPage/types'\nimport { createDate } from 'utils/helpers/date/createDate'\nimport { createMonth } from 'utils/helpers/date/createMonth'\nimport { getMonthNames } from 'utils/helpers/date/getMonthNames'\nimport { getMonthNumberOfDays } from 'utils/helpers/date/getMonthNumberOfDays'\nimport { getWeekDaysNames } from 'utils/helpers/date/getWeekDaysNames'\nimport { scrollToIdWithOffset } from 'utils/helpers/scrollToIdWithOffset'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\nimport { ConferenceData, SectionName } from 'types/types'\n\nimport 'dayjs/locale/ru'\n\ntype DayType = {\n conferences: ConferenceType[]\n date: Date\n day: string\n dayNumber: number | string\n dayNumberInWeek: number\n dayShort: string\n monthIndex: number\n monthName: string\n monthNumber: number\n monthShort: string\n timestamp: number\n week: number\n year: number\n yearShort: string\n}\n\nconst getYearsInterval = (year: number) => {\n const startYear = Math.floor(year / 10) * 10\n return [...Array(10)].map((_, index) => startYear + index)\n}\n\nexport const useCalendar = (date: Date = new Date(), locale: string = 'RU') => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === SectionName.conferences),\n ) as SectionState\n\n const ctx = useContext(UserStateContext)\n\n const [selectedDate, setSelectedDate] = useState(createDate({ date }))\n const [selectedMonth, setSelectedMonth] = useState(\n createMonth({ date: new Date(selectedDate.year, selectedDate.monthIndex), locale }),\n )\n const [selectedYear, setSelectedYear] = useState(selectedDate.year)\n const [selectedYearsInterval, setSelectedYearsInterval] = useState(getYearsInterval(selectedDate.year))\n const [mode, setMode] = useState<'days' | 'months' | 'years'>('days')\n\n const monthNames = useMemo(() => getMonthNames(locale), [])\n const weekDayNames = useMemo(() => getWeekDaysNames(locale), [])\n\n const [selectedWeek, setSelectedWeek] = useState({ start: '', end: '' })\n const [viewMode, setViewMode] = useState(ctx.state.adminRole ? 'month' : 'week')\n\n const updateWeek = (newDate: Date) => {\n const start = dayjs(newDate).weekday(0)\n const end = dayjs(newDate).weekday(6)\n const formattedStart = start.format('DD MMMM')\n const formattedEnd = end.format('DD MMMM')\n setSelectedWeek({ start: formattedStart, end: formattedEnd })\n }\n\n useEffect(() => {\n updateWeek(selectedDate.date)\n }, [selectedDate])\n\n const updateMonthIndexIfNeeded = (date: Date, selectedMonthIndex: number, setMonthIndex: (index: number) => void) => {\n const newMonthIndex = dayjs(date).month()\n if (newMonthIndex !== selectedMonthIndex) {\n setMonthIndex(newMonthIndex)\n }\n }\n\n const goToPreviousWeekOrMonth = () => {\n if (viewMode === 'week') {\n const newStartOfWeek = dayjs(selectedDate.date).subtract(1, 'week').toDate()\n const updatedDate = createDate({ date: newStartOfWeek })\n setSelectedDate(updatedDate)\n updateWeek(newStartOfWeek)\n updateMonthIndexIfNeeded(newStartOfWeek, selectedMonth.monthIndex, setMonthIndex)\n } else {\n const newStartOfMonth = dayjs(selectedDate.date).subtract(1, 'month').startOf('month').toDate()\n const updatedDate = createDate({ date: newStartOfMonth })\n setSelectedDate(updatedDate)\n setMonthIndex(selectedMonth.monthIndex - 1)\n }\n }\n\n const goToNextWeekOrMonth = () => {\n if (viewMode === 'week') {\n const newStartOfWeek = dayjs(selectedDate.date).add(1, 'week').toDate()\n const updatedDate = createDate({ date: newStartOfWeek })\n setSelectedDate(updatedDate)\n updateWeek(newStartOfWeek)\n updateMonthIndexIfNeeded(newStartOfWeek, selectedMonth.monthIndex, setMonthIndex)\n } else {\n const newStartOfMonth = dayjs(selectedDate.date).add(1, 'month').startOf('month').toDate()\n const updatedDate = createDate({ date: newStartOfMonth })\n setSelectedDate(updatedDate)\n setMonthIndex(selectedMonth.monthIndex + 1)\n }\n }\n\n const days = useMemo(\n () => selectedMonth.createMonthDays((state.content as ConferenceData).conferenceData),\n [selectedMonth, selectedYear, state, selectedWeek],\n )\n\n const goToCurrentWeek = () => {\n const updatedDate = createDate({ date: new Date() })\n if (viewMode === 'month') {\n setSelectedDate(updatedDate)\n setSelectedMonth(createMonth(updatedDate))\n setTimeout(() => {\n scrollToIdWithOffset(`#${SCROLL_TO_ID.conferencePageToday}`, 120)\n })\n } else {\n setSelectedDate(updatedDate)\n updateWeek(updatedDate.date)\n updateMonthIndexIfNeeded(updatedDate.date, selectedMonth.monthIndex, setMonthIndex)\n setTimeout(() => {\n scrollToIdWithOffset(`#${SCROLL_TO_ID.conferencePageToday}`, 120)\n })\n }\n }\n\n const getCurrentWeekDays = (selectedDate: Date) => {\n const startOfWeek = dayjs(selectedDate).startOf('isoWeek')\n const endOfWeek = dayjs(selectedDate).endOf('isoWeek')\n\n const currentWeekDays = days.filter((day) => {\n const dayDate = dayjs(day.date)\n return dayDate.isSameOrAfter(startOfWeek) && dayDate.isSameOrBefore(endOfWeek)\n })\n\n const daysFromPreviousMonth = []\n if (startOfWeek.month() !== selectedDate.getMonth()) {\n const previousMonthDays = createMonth({\n date: new Date(selectedDate.getFullYear(), selectedDate.getMonth() - 1),\n locale,\n }).createMonthDays((state.content as ConferenceData).conferenceData)\n\n const additionalPrevDays = previousMonthDays.filter((day) => {\n const dayDate = dayjs(day.date)\n return dayDate.isSameOrAfter(startOfWeek) && dayDate.isBefore(dayjs(selectedDate).startOf('month'))\n })\n\n daysFromPreviousMonth.push(...additionalPrevDays)\n }\n\n const daysFromNextMonth = []\n if (endOfWeek.month() !== selectedDate.getMonth()) {\n const nextMonthDays = createMonth({\n date: new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1),\n locale,\n }).createMonthDays((state.content as ConferenceData).conferenceData)\n\n const additionalNextDays = nextMonthDays.filter((day) => {\n const dayDate = dayjs(day.date)\n return dayDate.isSameOrBefore(endOfWeek) && dayDate.isAfter(dayjs(selectedDate).endOf('month'))\n })\n\n daysFromNextMonth.push(...additionalNextDays)\n }\n\n return [...daysFromPreviousMonth, ...currentWeekDays, ...daysFromNextMonth]\n }\n\n const visibleDays = useMemo(() => {\n if (viewMode === 'week') {\n return getCurrentWeekDays(selectedDate.date)\n } else {\n const monthNumberOfDays = getMonthNumberOfDays(selectedMonth.monthIndex, selectedMonth.year)\n\n // из за того, что воскресенье в js имеет нулевой индекс\n const firstDayNumber = days[0].dayNumberInWeek === 0 ? 7 : days[0].dayNumberInWeek\n const lastDayNumber =\n days[monthNumberOfDays - 1].dayNumberInWeek === 0 ? 7 : days[days.length - 1].dayNumberInWeek\n\n const previousMonthDays = createMonth({\n date: new Date(selectedMonth.year, selectedMonth.monthIndex - 1),\n locale,\n }).createMonthDays()\n const nextMonthDays = createMonth({\n date: new Date(selectedMonth.year, selectedMonth.monthIndex + 1),\n locale,\n }).createMonthDays()\n\n const previousMonthAdditionalDays = previousMonthDays.slice(\n previousMonthDays.length - firstDayNumber + 1,\n previousMonthDays.length,\n )\n const nextMonthAdditionalDays = nextMonthDays.slice(0, lastDayNumber)\n\n return [...previousMonthAdditionalDays, ...days, ...nextMonthAdditionalDays]\n }\n }, [selectedMonth.year, selectedMonth.monthIndex, selectedYear, state, viewMode, selectedDate.date, selectedWeek])\n\n const mergeWeekends = () => {\n let filteredDays: DayType[]\n\n if (viewMode === 'week') {\n filteredDays = getCurrentWeekDays(selectedDate.date)\n } else {\n filteredDays = days\n }\n const mergedDays: DayType[] = []\n let weekendDays: DayType | null = null\n\n filteredDays.forEach((day) => {\n if (day.dayShort === 'сб' || day.dayShort === 'вс') {\n if (!weekendDays) {\n weekendDays = { ...day }\n } else {\n weekendDays.dayNumber = `${weekendDays.dayNumber}-${day.dayNumber}`\n weekendDays.dayShort = 'Сб-Вс'\n }\n } else {\n if (weekendDays) {\n mergedDays.push(weekendDays)\n weekendDays = null\n }\n mergedDays.push(day)\n }\n })\n\n if (weekendDays) {\n mergedDays.push(weekendDays)\n }\n\n return mergedDays\n }\n\n const setMonthIndex = (index: number) => {\n if (index === -1) {\n const year = selectedYear - 1\n\n setSelectedYear(year)\n setSelectedMonth(createMonth({ date: new Date(year, 11), locale }))\n } else if (index === 12) {\n const year = selectedYear + 1\n\n setSelectedYear(year)\n setSelectedMonth(createMonth({ date: new Date(year, 0), locale }))\n } else {\n setSelectedMonth(createMonth({ date: new Date(selectedYear, index), locale }))\n }\n }\n\n const onClickArrow = (direction: 'right' | 'left') => {\n if (mode === 'years' && direction === 'left') {\n return setSelectedYearsInterval(getYearsInterval(selectedYearsInterval[0] - 10))\n }\n\n if (mode === 'years' && direction === 'right') {\n return setSelectedYearsInterval(getYearsInterval(selectedYearsInterval[0] + 10))\n }\n\n if (mode === 'months' && direction === 'left') {\n const year = selectedYear - 1\n\n if (!selectedYearsInterval.includes(year)) {\n setSelectedYearsInterval(getYearsInterval(year))\n }\n\n return setSelectedYear(selectedYear - 1)\n }\n\n if (mode === 'months' && direction === 'right') {\n const year = selectedYear + 1\n\n if (!selectedYearsInterval.includes(year)) {\n setSelectedYearsInterval(getYearsInterval(year))\n }\n\n return setSelectedYear(selectedYear + 1)\n }\n\n if (mode === 'days') {\n const monthIndex = direction === 'left' ? selectedMonth.monthIndex - 1 : selectedMonth.monthIndex + 1\n\n if (monthIndex === -1) {\n const year = selectedYear - 1\n\n setSelectedYear(year)\n\n if (!selectedYearsInterval.includes(year)) {\n setSelectedYearsInterval(getYearsInterval(year))\n }\n\n return setSelectedMonth(createMonth({ date: new Date(selectedYear - 1, 11), locale }))\n }\n\n if (monthIndex === 12) {\n const year = selectedYear + 1\n\n setSelectedYear(year)\n\n if (!selectedYearsInterval.includes(year)) {\n setSelectedYearsInterval(getYearsInterval(year))\n }\n\n return setSelectedMonth(createMonth({ date: new Date(year, 0), locale }))\n }\n\n setSelectedMonth(createMonth({ date: new Date(selectedYear, monthIndex), locale }))\n }\n }\n\n return {\n state: {\n visibleDays,\n monthNames,\n weekDayNames,\n selectedDate,\n selectedMonth,\n selectedYear,\n mode,\n selectedYearsInterval,\n selectedWeek,\n viewMode,\n onClickArrow,\n setMode,\n setSelectedDate,\n setSelectedMonth,\n setMonthIndex,\n setSelectedYear,\n setViewMode,\n goToPreviousWeekOrMonth,\n goToNextWeekOrMonth,\n goToCurrentWeek,\n mergeWeekends,\n },\n }\n}\n","export const formatMonthName = (monthName: string) => {\n const monthNameWithoutLastChar = monthName.slice(0, monthName.length - 1)\n\n if (monthName[monthName.length - 1] === 'ь' || monthName[monthName.length - 1] === 'й') {\n return monthNameWithoutLastChar + 'я'\n } else {\n return monthName + 'а'\n }\n}\n","export const checkDateIsEqual = (firstDate: Date, secondDate: Date) => {\n return (\n firstDate.getFullYear() === secondDate.getFullYear() &&\n firstDate.getMonth() === secondDate.getMonth() &&\n firstDate.getDate() === secondDate.getDate()\n )\n}\n","import * as React from \"react\";\nconst SvgCaretBlack = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.720703 4.88023C0.720703 4.61416 0.822253 4.34809 1.02536 4.14499C1.43157 3.73878 2.08963 3.73878 2.49584 4.14499L8 9.64915L13.5042 4.14499C13.9104 3.73878 14.5684 3.73878 14.9746 4.14499C15.3809 4.5512 15.3809 5.20926 14.9746 5.61547L8.73524 11.8549C8.32903 12.2611 7.67097 12.2611 7.26476 11.8549L1.02536 5.61547C0.822263 5.41237 0.720703 5.1463 0.720703 4.88023Z\" }));\nexport default SvgCaretBlack;\n","import { formatMonthName } from 'utils/formatting/formateMonthName/formateMonthName'\nimport { checkDateIsEqual } from 'utils/helpers/date/checkDateIsEqual'\nimport { useCalendar } from 'utils/hooks/useCalendar'\n\nimport ToggleIcon from 'assets/img/caret--black.svg?react'\nimport s from './AdminCalendar.module.scss'\n\ntype AdminCalendarProps = {\n state: ReturnType['state']\n}\n\nexport const AdminCalendar = ({ state }: AdminCalendarProps) => {\n return (\n
\n
\n Выбрана дата - {state.selectedDate.dayNumber} {formatMonthName(state.selectedDate.monthName)}\n {', '}\n {state.selectedDate.year}\n
\n\n
\n
\n \n\n {state.mode === 'days' && (\n

state.setMode('months')}>\n {state.monthNames[state.selectedMonth.monthIndex].monthName} {state.selectedYear}\n

\n )}\n\n {state.mode === 'months' && (\n

state.setMode('years')}>\n {state.selectedYear}\n

\n )}\n\n {state.mode === 'years' && (\n

\n {state.selectedYearsInterval[0]} - {state.selectedYearsInterval[state.selectedYearsInterval.length - 1]}\n

\n )}\n\n \n
\n\n
\n {state.mode === 'days' && (\n <>\n
\n {state.weekDayNames.map((weekDaysName) => (\n
{weekDaysName.dayShort}
\n ))}\n
\n\n
\n {state.visibleDays.map((day) => {\n const isToday = checkDateIsEqual(day.date, new Date())\n const isSelectedDay = checkDateIsEqual(day.date, state.selectedDate.date)\n const isAdditionalDay = day.monthIndex !== state.selectedMonth.monthIndex\n\n return (\n state.setSelectedDate(day)}\n className={[\n s.day,\n isToday ? s.isToday : '',\n isSelectedDay ? s.isSelectedDay : '',\n isAdditionalDay ? s.isAdditionalDay : '',\n day.conferences.length > 0 ? s.dayWithConference : '',\n ].join(' ')}\n >\n {day.dayNumber}\n
\n )\n })}\n
\n \n )}\n\n {state.mode === 'months' && (\n
\n {state.monthNames.map((monthName) => {\n const isCurrentMonth =\n new Date().getMonth() === monthName.monthIndex && state.selectedYear === new Date().getFullYear()\n const isSelectedMonth = monthName.monthIndex === state.selectedMonth.monthIndex\n\n return (\n {\n state.setMonthIndex(monthName.monthIndex)\n state.setMode('days')\n }}\n className={[\n s.pickItem,\n isSelectedMonth ? s.isSelectedDay : '',\n isCurrentMonth ? s.isToday : '',\n ].join(' ')}\n >\n {monthName.monthShort}\n
\n )\n })}\n
\n )}\n\n {state.mode === 'years' && (\n
\n
{state.selectedYearsInterval[0] - 1}
\n\n {state.selectedYearsInterval.map((year) => {\n const isCurrentYear = new Date().getFullYear() === year\n const isSelectedYear = year === state.selectedYear\n\n return (\n {\n state.setSelectedYear(year)\n state.setMode('months')\n }}\n className={[s.pickItem, isCurrentYear ? s.isToday : '', isSelectedYear ? s.isSelectedDay : ''].join(\n ' ',\n )}\n >\n {year}\n
\n )\n })}\n\n
\n {state.selectedYearsInterval[state.selectedYearsInterval.length - 1] + 1}\n
\n
\n )}\n \n \n \n )\n}\n","export default \"__VITE_ASSET__BLz3K6IG__\"","import deleteImg from '../../../../assets/img/admin/delete.svg'\n\nimport s from './AdminHeaderBlockElem.module.scss'\n\ntype AdminHeaderBlockElemProps = {\n index: number\n text: string\n onClick?: () => void\n}\n\nexport const AdminHeaderBlockElem = ({ index, text, onClick }: AdminHeaderBlockElemProps) => {\n return (\n
\n
\n {text} №{index + 1}:\n
\n\n {onClick && (\n \n )}\n
\n )\n}\n","import { notification } from 'antd'\nimport { useEffect, useState } from 'react'\nimport { useContext } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { ConferenceType } from 'sections/PromoSection/pages/ConferencesPage/types'\nimport { AdminHeaderBlockElem } from 'components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport { AdminTextArea } from 'components/AdminV2/UI/TextArea/AdminTextArea'\nimport { useCalendar } from 'utils/hooks/useCalendar'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { ConferenceData } from 'types/types'\n\nimport s from './ConferenceBlockItem.module.scss'\n\ntype ConferenceBlockItemProps = {\n index: number\n calendarState: ReturnType['state']\n localPromoState: SectionState\n existingConferences: ConferenceType[]\n conference: ConferenceType\n setLocalPromoState: React.Dispatch>\n handleSave: (conferences: ConferenceType) => void\n}\n\nexport const ConferenceBlockItem = ({\n index,\n calendarState,\n localPromoState,\n existingConferences,\n conference,\n setLocalPromoState,\n handleSave,\n}: ConferenceBlockItemProps) => {\n const ctx = useContext(PromoPageStateContext)\n\n const [conferenceLocal, setConferenceLocal] = useState(conference)\n const [isEdit, setIsEdit] = useState(false)\n\n const [startTime, setStartTime] = useState<{ hours: string; minutes: string }>({\n hours: String(new Date(conference.startDate).getHours()),\n minutes: String(new Date(conference.startDate).getMinutes()).padStart(2, '0'),\n })\n const [endTime, setEndTime] = useState<{ hours: string; minutes: string }>({\n hours: String(new Date(conference.endDate).getHours()),\n minutes: String(new Date(conference.endDate).getMinutes()).padStart(2, '0'),\n })\n\n const disabled =\n conferenceLocal.title.trim().length === 0 ||\n conferenceLocal.description.trim().length === 0 ||\n conferenceLocal.link.trim().length === 0\n\n useEffect(() => {\n if (conference.title) {\n setIsEdit(true)\n }\n }, [])\n\n const deleteConferenceHandler = () => {\n const stateCopy = { ...localPromoState }\n const conferences = (stateCopy.content as ConferenceData).conferenceData[calendarState.selectedYear][\n calendarState.selectedMonth.monthIndex\n ][calendarState.selectedDate.dayNumber]\n\n const filteredConferences = conferences.filter((conference) => conference.index !== index)\n\n for (let i = 0; i < filteredConferences.length; i++) {\n filteredConferences[i].index = i\n }\n\n ;(stateCopy.content as ConferenceData).conferenceData[calendarState.selectedYear][\n calendarState.selectedMonth.monthIndex\n ][calendarState.selectedDate.dayNumber] = filteredConferences\n\n setLocalPromoState(stateCopy)\n\n ctx.dispatch(saveSection(stateCopy))\n }\n\n const timeHandler = (value: string, type: 'hours' | 'minutes', startOrEnd: 'start' | 'end') => {\n const numberValue = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n\n if (+numberValue > 59) {\n return\n }\n\n const hours = numberValue\n let minutes = numberValue\n const currentTime = startOrEnd === 'start' ? startTime : endTime\n\n if (numberValue.length === 1 && numberValue !== '0') {\n minutes = currentTime.minutes[0] === '0' || currentTime.minutes.length === 0 ? `0${numberValue}` : numberValue\n } else if (numberValue.length === 3 && numberValue[0] === '0') {\n minutes = `${numberValue[1]}${numberValue[2]}`\n }\n\n if (type === 'hours') {\n startOrEnd === 'start'\n ? setStartTime({ hours, minutes: startTime.minutes })\n : setEndTime({ hours, minutes: endTime.minutes })\n } else {\n startOrEnd === 'start'\n ? setStartTime({ hours: startTime.hours, minutes })\n : setEndTime({ hours: endTime.hours, minutes })\n }\n }\n\n const changeInputHandler = (value: string, key: keyof ConferenceType) => {\n setConferenceLocal({ ...conferenceLocal, [key]: value })\n }\n\n const handleConferenceSave = () => {\n const startDate = new Date(new Date(conferenceLocal.startDate).setHours(+startTime.hours, +startTime.minutes))\n const endDate = new Date(new Date(conferenceLocal.endDate).setHours(+endTime.hours, +endTime.minutes))\n\n const sameTime = existingConferences.some(\n (conference) => new Date(conference.startDate).getTime() === startDate.getTime(),\n )\n\n if (startDate.getTime() > endDate.getTime() || startDate.getTime() === endDate.getTime()) {\n notification.error({\n message: 'Ошибка',\n description: 'Время окончания не может быть раньше или равно времени начала',\n })\n return\n }\n\n if (sameTime && isEdit === false) {\n notification.error({\n message: 'Ошибка',\n description: 'Конференция с таким временем начала уже существует',\n })\n return\n }\n notification.success({\n message: 'Успешно',\n description: 'Изменения сохранены!',\n })\n handleSave({ ...conferenceLocal, startDate, endDate })\n }\n\n return (\n
\n \n\n changeInputHandler(value, 'title')}\n labelSize=\"16px\"\n maxLength={100}\n />\n changeInputHandler(value, 'description')}\n labelSize=\"16px\"\n maxLength={300}\n />\n changeInputHandler(value, 'link')}\n labelSize=\"16px\"\n />\n {isEdit && (\n changeInputHandler(value, 'linkToVideo')}\n labelSize=\"16px\"\n />\n )}\n\n

Время начала

\n
\n timeHandler(value, 'hours', 'start')}\n labelSize=\"16px\"\n maxLength={2}\n />\n timeHandler(value, 'minutes', 'start')}\n labelSize=\"16px\"\n maxLength={3}\n />\n
\n\n

Время окончания

\n
\n timeHandler(value, 'hours', 'end')}\n labelSize=\"16px\"\n maxLength={2}\n />\n timeHandler(value, 'minutes', 'end')}\n labelSize=\"16px\"\n maxLength={3}\n />\n
\n\n \n
\n )\n}\n","import { useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { ConferenceType } from 'sections/PromoSection/pages/ConferencesPage/types'\nimport { BlockWrap } from 'components/AdminV2/BlockWrap/BlockWrap'\nimport { AdminAddElemButton } from 'components/AdminV2/UI/AddElemButton/AdminAddElemButton'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport { AdminTextArea } from 'components/AdminV2/UI/TextArea/AdminTextArea'\nimport { useCalendar } from 'utils/hooks/useCalendar'\nimport { ConferenceData, SectionName } from 'types/types'\n\nimport { AdminCalendar } from './Calendar/AdminCalendar'\nimport { ConferenceBlockItem } from './ConferenceBlockItem/ConferenceBlockItem'\n\nimport s from './ConferencesBlock.module.scss'\n\nexport const ConferencesBlock = () => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === SectionName.conferences),\n ) as SectionState\n\n const ctx = useContext(PromoPageStateContext)\n\n const { state: calendarState } = useCalendar()\n\n const [localPromoState, setLocalPromoState] = useState(state)\n const [title, setTitle] = useState(localPromoState.title)\n const [description, setDescription] = useState((localPromoState.content as ConferenceData).description)\n\n const conferences: ConferenceType[] =\n (localPromoState.content as ConferenceData).conferenceData[calendarState.selectedYear]?.[\n calendarState.selectedMonth.monthIndex\n ]?.[calendarState.selectedDate.dayNumber] ?? []\n\n const addConferenceHandler = () => {\n const state = { ...localPromoState }\n let selectedYear = (state.content as ConferenceData).conferenceData[calendarState.selectedYear]\n\n if (selectedYear === undefined) {\n selectedYear = {}\n }\n\n if (selectedYear[calendarState.selectedMonth.monthIndex] === undefined) {\n selectedYear[calendarState.selectedMonth.monthIndex] = {}\n }\n\n if (selectedYear[calendarState.selectedMonth.monthIndex][calendarState.selectedDate.dayNumber] === undefined) {\n selectedYear[calendarState.selectedMonth.monthIndex][calendarState.selectedDate.dayNumber] = []\n }\n\n selectedYear[calendarState.selectedMonth.monthIndex][calendarState.selectedDate.dayNumber].push({\n index: selectedYear[calendarState.selectedMonth.monthIndex][calendarState.selectedDate.dayNumber].length,\n title: '',\n description: '',\n link: '',\n linkToVideo: '',\n startDate: calendarState.selectedDate.date,\n endDate: calendarState.selectedDate.date,\n })\n ;(state.content as ConferenceData).conferenceData[calendarState.selectedYear] = selectedYear\n\n setLocalPromoState(state)\n }\n\n const handleSave = () => {\n const state = { ...localPromoState }\n\n state.title = title\n ;(state.content as ConferenceData).description = description\n\n setLocalPromoState(state)\n ctx.dispatch(saveSection(state))\n }\n\n const handleConferenceSave = (conference: ConferenceType) => {\n const state = { ...localPromoState }\n\n ;(state.content as ConferenceData).conferenceData[calendarState.selectedYear][\n calendarState.selectedMonth.monthIndex\n ][calendarState.selectedDate.dayNumber][conference.index] = conference\n\n setLocalPromoState(state)\n ctx.dispatch(saveSection(state))\n }\n\n return (\n <>\n \n \n \n\n \n\n {conferences.length > 0 &&

Конференции:

}\n\n {conferences?.map((conference, index) => (\n \n \n \n ))}\n\n \n \n )\n}\n","export default \"__VITE_ASSET__DfhYtxTG__\"","import classNames from 'classnames'\n\nimport arrow from 'assets/img/admin/right-arrows.png'\nimport s from './AdminElemVisibilityToggle..module.scss'\n\ntype AdminElemVisibilityToggleProps = {\n text: string\n fontSize?: number\n className?: string\n isVisible: boolean\n setVisible: React.Dispatch>\n}\nexport const AdminElemVisibilityToggle = ({\n text,\n fontSize = 14,\n className,\n isVisible,\n setVisible,\n}: AdminElemVisibilityToggleProps) => {\n const classes = classNames(s.slidesTitleWrap, className)\n\n return (\n
setVisible(!isVisible)}>\n
{text}
\n \"arrow\"\n
\n )\n}\n","import { notification } from 'antd'\n\nimport { FileEntityType, fileService } from 'services/FileService'\n\nexport interface ConvertedFile {\n content: string\n name: string\n format: string\n fileSize: number\n}\n\nexport const handleFileInput = async (input: React.ChangeEvent): Promise => {\n const localFile: File | null = input.target.files?.length ? input.target.files[0] : null\n\n if (!localFile) {\n return {\n content: '',\n name: '',\n format: '',\n fileSize: 0,\n }\n }\n\n return createFileData(localFile)\n}\n\nexport const handleFilesInput = async (input: React.ChangeEvent): Promise => {\n const localFiles: FileList | null = input.target.files?.length ? input.target.files : null\n\n if (!localFiles) {\n return [\n {\n content: '',\n name: '',\n format: '',\n fileSize: 0,\n },\n ]\n }\n\n const result = []\n\n for (let i = 0; i < localFiles.length; i++) {\n result.push(await createFileData(localFiles[i]))\n }\n\n return result\n}\n\nconst createFileData = async (localFile: File) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n\n reader.onload = (event) => {\n if (typeof event.target?.result === 'string') {\n const dataUrl = event.target.result as string\n const base64String = dataUrl.split(',')[1]\n const fileNameParts = localFile.name.split('.')\n const fileFormat = fileNameParts[fileNameParts.length - 1].toLowerCase()\n\n resolve({\n content: `data:${localFile.type};base64,${base64String}`,\n name: localFile.name,\n format: fileFormat,\n fileSize: dataUrl.length,\n })\n } else {\n reject(new Error('Ошибка чтения файла. FileReader вернул некорректный результат'))\n }\n }\n\n reader.onerror = reject\n reader.readAsDataURL(localFile)\n })\n}\n\nexport const uploadFile = async (localFile: File) => {\n const file = await createFileData(localFile)\n\n try {\n if (file?.content) {\n const resp = await fileService.fileUpload({\n entityId: 27197170,\n totalSize: file.fileSize,\n content: file.content,\n entityType: FileEntityType.user,\n requestFromPromo: true,\n })\n\n if (resp) {\n notification.success({\n message: 'Файл загружен',\n })\n\n return resp.imageUrl\n }\n }\n } catch (error) {\n notification.error({\n message: 'Ошибка',\n description: `Произошла ошибка: ${error}`,\n })\n }\n}\n","import { useState } from 'react'\n\nimport { SectionState } from 'states/PromoPageState/state'\nimport { AdminHeaderBlockElem } from 'components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminTextArea } from 'components/AdminV2/UI/TextArea/AdminTextArea'\nimport { Href } from 'components/ui/Href/Href'\nimport { uploadFile } from 'utils/helpers/files/fileUpload'\nimport { getAltFromSrc } from 'utils/helpers/getAltFromSrc/getAltFromSrc'\nimport { ContractorData, ContractorDataItemType, VideoMonitoringContractorDataItem } from 'types/types'\n\nimport s from './ContractorBlockItem.module.scss'\n\ntype ContractorItemProps = {\n dataType: 'videoConnectionData' | 'signboardData' | 'outsourcingData'\n index: number\n localPromoState: SectionState\n setLocalPromoState: React.Dispatch>\n selectedCountry?: string\n setSelectedCountry?: React.Dispatch>\n}\n\nexport const ContractorBlockItem = ({\n index,\n dataType,\n localPromoState,\n setLocalPromoState,\n selectedCountry,\n}: ContractorItemProps) => {\n const [state, setState] = useState(localPromoState)\n\n const data = state.content as ContractorData\n\n let title = ''\n let websiteLink = ''\n let instructionsLink = ''\n let additionalLink = ''\n let img = ''\n let phone = ''\n let email = ''\n let description = ''\n let link = ''\n\n if (dataType === 'videoConnectionData') {\n const countryData = data.videoConnectionData.find((country) => country.country === selectedCountry)\n if (countryData) {\n const contractor = countryData.contractors[index]\n if (contractor) {\n title = contractor.title\n websiteLink = contractor.websiteLink\n instructionsLink = contractor.instructionsLink\n }\n }\n } else {\n const contractor = data[dataType][index]\n if (contractor) {\n title = contractor.title\n link = contractor.link || ''\n additionalLink = contractor.additionalLink || ''\n img = contractor.img || ''\n phone = contractor.phone || ''\n email = contractor.email || ''\n description = contractor.description || ''\n }\n }\n\n const deleteContractorHandler = () => {\n const stateCopy = { ...state }\n const data = stateCopy.content as ContractorData\n\n if (dataType === 'videoConnectionData') {\n const countryData = data.videoConnectionData.find((country) => country.country === selectedCountry)\n if (countryData) {\n countryData.contractors = countryData.contractors.filter((contractor) => contractor.title !== title)\n countryData.contractors.forEach((contractor, index) => {\n contractor.index = index\n })\n }\n } else {\n let contractorData = data[dataType]\n contractorData = contractorData.filter((contractor) => contractor.title !== title)\n contractorData.forEach((contractor, index) => {\n contractor.index = index\n })\n data[dataType] = contractorData\n }\n\n stateCopy.content = data\n setLocalPromoState(stateCopy)\n }\n\n const changeInputHandler = (\n value: string,\n key: keyof ContractorDataItemType | keyof VideoMonitoringContractorDataItem,\n ) => {\n const stateCopy = { ...state }\n const data = stateCopy.content as ContractorData\n\n if (dataType === 'videoConnectionData') {\n const countryData = data.videoConnectionData.find((country) => country.country === selectedCountry)\n if (countryData) {\n const contractor = countryData.contractors[index]\n if (contractor && key in contractor) {\n ;(contractor as Record)[key] = value\n }\n }\n } else {\n const contractor = data[dataType][index]\n if (contractor && key in contractor) {\n ;(contractor as Record)[key] = value\n }\n }\n\n setState(stateCopy)\n }\n\n const changeFileHandler = (file: File) => {\n const stateCopy = { ...state }\n const data = stateCopy.content as ContractorData\n\n uploadFile(file).then((imgUrl) => {\n if (imgUrl && dataType !== 'videoConnectionData') {\n const contractor = data[dataType][index]\n if (contractor) {\n contractor.img = imgUrl\n }\n\n setLocalPromoState(stateCopy)\n }\n })\n }\n\n return (\n
\n \n\n {dataType !== 'videoConnectionData' ? (\n <>\n changeInputHandler(value, 'title')}\n labelSize=\"16px\"\n />\n changeInputHandler(value, 'description')}\n labelSize=\"16px\"\n />\n\n
\n
\n {img\n
\n \n {img}\n \n
\n
\n\n \n
\n\n changeInputHandler(value, 'phone')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'email')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'link')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'additionalLink')}\n labelSize=\"16px\"\n />\n \n ) : (\n <>\n changeInputHandler(value, 'title')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'websiteLink')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'instructionsLink')}\n labelSize=\"16px\"\n />\n \n )}\n
\n )\n}\n","import { DragEvent, useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { countries } from 'sections/LKSection/modules/UserModule/data'\nimport { BlockWrap } from 'components/AdminV2/BlockWrap/BlockWrap'\nimport { AdminAddElemButton } from 'components/AdminV2/UI/AddElemButton/AdminAddElemButton'\nimport { AdminElemVisibilityToggle } from 'components/AdminV2/UI/ElemVisibilityToggle/AdminElemVisibilityToggle'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport {\n ContractorData,\n ContractorDataItemType,\n SectionName,\n VideoMonitoringContractorDataItem,\n VideoMonitoringCountryData,\n} from 'types/types'\n\nimport { ContractorBlockItem } from './ContractorBlockItem/ContractorBlockItem'\n\nimport s from './ContractorsBlock.module.scss'\n\nenum Contractor {\n video = 'videoConnectionData',\n signboard = 'signboardData',\n outsourcing = 'outsourcingData',\n}\n\nexport const ContractorsBlock = () => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === SectionName.contractors),\n ) as SectionState\n\n const ctx = useContext(PromoPageStateContext)\n\n const [localPromoState, setLocalPromoState] = useState(state)\n const [isVideoConnectionVisible, setIsVideoConnectionVisible] = useState(false)\n const [countryVisibility, setCountryVisibility] = useState>({})\n const [draggable, setDraggable] = useState(true)\n const [currentBlockIndex, setCurrentBlockIndex] = useState(0)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [selectedCountry, setSelectedCountry] = useState('')\n\n const data = state.content as ContractorData\n\n const changeTitleHandler = (value: string) => {\n const state = { ...localPromoState }\n state.title = value\n setLocalPromoState(state)\n }\n\n const addContractorHandler = (contractorType: Contractor, selectedCountry?: string) => {\n const state = { ...localPromoState }\n const data = state.content as ContractorData\n\n if (contractorType === Contractor.video) {\n if (!selectedCountry) {\n return\n }\n\n const countryData =\n data.videoConnectionData.find((country) => country.country === selectedCountry) ||\n (() => {\n const newCountryData: VideoMonitoringCountryData = {\n country: selectedCountry,\n index: data.videoConnectionData.length,\n contractors: [],\n }\n data.videoConnectionData.push(newCountryData)\n return newCountryData\n })()\n\n const newVideoContractor: VideoMonitoringContractorDataItem = {\n index: countryData.contractors.length,\n title: '',\n websiteLink: '',\n instructionsLink: '',\n }\n\n countryData.contractors.push(newVideoContractor)\n } else {\n const newGeneralContractor: ContractorDataItemType = {\n title: '',\n description: '',\n img: '',\n link: '',\n additionalLink: '',\n phone: '',\n downloadLink: '',\n email: '',\n index: data[contractorType].length,\n }\n\n data[contractorType].push(newGeneralContractor)\n }\n\n setLocalPromoState(state)\n }\n\n const dragStartHandler = (e: DragEvent, oldIndex: number) => {\n setCurrentBlockIndex(oldIndex)\n }\n\n const dragLeaveHandler = (e: DragEvent) => {\n ;(e.target as HTMLDivElement).style.border = 'none'\n }\n\n const dragOverHandler = (e: DragEvent) => {\n e.preventDefault()\n ;(e.target as HTMLDivElement).style.border = '2px solid #6449FF'\n }\n\n const dragDropHandler = (\n e: DragEvent,\n newIndex: number,\n contractorType: Contractor,\n countryCode: string,\n ) => {\n e.preventDefault()\n ;(e.target as HTMLDivElement).style.border = 'none'\n\n const stateCopy = { ...localPromoState }\n const videoConnectionData = (stateCopy.content as ContractorData).videoConnectionData\n\n const countryData = videoConnectionData.find((data) => data.country === countryCode)\n if (!countryData) {\n return\n }\n\n const { contractors } = countryData\n const draggedContractor = contractors[currentBlockIndex]\n const targetContractor = contractors[newIndex]\n\n if (draggedContractor && targetContractor) {\n draggedContractor.index = newIndex\n targetContractor.index = currentBlockIndex\n\n contractors.sort((a, b) => a.index - b.index)\n setLocalPromoState(stateCopy)\n }\n }\n\n const handleSave = () => {\n ctx.dispatch(saveSection(localPromoState))\n }\n\n const toggleCountryVisibility = (countryCode: string) => {\n setCountryVisibility((prev) => ({\n ...prev,\n [countryCode]: !prev[countryCode],\n }))\n }\n\n return (\n <>\n \n\n \n\n {isVideoConnectionVisible && (\n <>\n {countries.map((country) => {\n const countryData =\n data.videoConnectionData.find((c) => c.country === country.value.country) ||\n (() => {\n const newCountryData: VideoMonitoringCountryData = {\n country: country.value.country,\n index: data.videoConnectionData.length,\n contractors: [],\n }\n data.videoConnectionData.push(newCountryData)\n return newCountryData\n })()\n\n return (\n
\n toggleCountryVisibility(country.value.country)}\n />\n {countryVisibility[country.value.country] && (\n <>\n {countryData.contractors.map((contractor, index) => (\n
\n ) => dragStartHandler(e, index)}\n onDragLeave={(e: DragEvent) => dragLeaveHandler(e)}\n onDragOver={(e: DragEvent) => dragOverHandler(e)}\n onDrop={(e: DragEvent) =>\n dragDropHandler(e, index, Contractor.video, country.value.country)\n }\n >\n \n \n \n
\n
\n ))}\n\n addContractorHandler(Contractor.video, country.value.country)}\n />\n \n )}\n \n )\n })}\n \n )}\n\n \n \n )\n}\n","import { useState } from 'react'\n\nimport { eLockInfo, Links } from 'sections/PromoSection/modules/ELockModule/components/Description/types'\nimport { BlockWrap } from 'components/AdminV2/BlockWrap/BlockWrap'\nimport { AdminElemVisibilityToggle } from 'components/AdminV2/UI/ElemVisibilityToggle/AdminElemVisibilityToggle'\nimport { AdminHeaderBlockElem } from 'components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { SectionName } from 'types/types'\n\ntype ElockBlockIItemProps = {\n lock: eLockInfo\n onChange: (index: number, key: Exclude, value: string) => void\n onLinkChange: (index: number, key: keyof Links, value: string) => void\n onDelete: (index: number) => void\n}\n\nexport const ElockBlockItem = ({ lock, onChange, onLinkChange, onDelete }: ElockBlockIItemProps) => {\n const [isExpanded, setExpanded] = useState(false)\n\n return (\n \n <>\n onDelete(lock.index)} />\n\n setExpanded((prev) => !prev)}\n />\n\n {isExpanded && (\n <>\n onChange(lock.index, 'model', value)}\n />\n onChange(lock.index, 'type', value)} />\n onChange(lock.index, 'lockType', value)}\n />\n onChange(lock.index, 'forDoors', value)}\n />\n onChange(lock.index, 'voltage', value)}\n />\n onChange(lock.index, 'current', value)} />\n onChange(lock.index, 'keyOpen', value)}\n />\n onChange(lock.index, 'alwaysOpen', value)}\n />\n onLinkChange(lock.index, 'instruction', value)}\n />\n onLinkChange(lock.index, 'webSite', value)}\n />\n onLinkChange(lock.index, 'manual', value)}\n />\n onLinkChange(lock.index, 'elockPassport', value)}\n />\n onLinkChange(lock.index, 'installationScheme', value)}\n />\n \n )}\n \n \n )\n}\n","import { useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { eLockInfo, Links } from 'sections/PromoSection/modules/ELockModule/components/Description/types'\nimport { AdminAddElemButton } from 'components/AdminV2/UI/AddElemButton/AdminAddElemButton'\nimport { AdminElemVisibilityToggle } from 'components/AdminV2/UI/ElemVisibilityToggle/AdminElemVisibilityToggle'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport { ElockData, ElockHowToInstallData } from 'types/types'\n\nimport { ElockBlockItem } from './ElockBlockItem/ElockBlockItem'\n\nimport s from './ElockBlock.module.scss'\n\nexport const ElockBlock = () => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === 'ELock'),\n ) as SectionState\n\n const ctx = useContext(PromoPageStateContext)\n\n const [localPromoState, setLocalPromoState] = useState(state)\n const [isVisible, setVisible] = useState(false)\n const [isInstallDataVisible, setInstallDataVisible] = useState(false)\n\n const data = (state.content as ElockData) || { elockTableData: {}, elockHowToInstallData: [] }\n\n const handleSave = () => {\n const stateCopy = { ...localPromoState }\n stateCopy.content = {\n ...stateCopy.content,\n elockTableData: Object.values((stateCopy.content as ElockData).elockTableData),\n }\n ctx.dispatch(saveSection(stateCopy))\n }\n\n const addLockModelHandler = () => {\n const stateCopy = { ...localPromoState }\n const lockData = (stateCopy.content as ElockData).elockTableData\n const newIndex = lockData.length\n\n lockData.push({\n index: newIndex,\n model: '',\n type: '',\n lockType: '',\n forDoors: '',\n voltage: '',\n current: '',\n keyOpen: '',\n alwaysOpen: '',\n links: {},\n details: '',\n })\n setLocalPromoState(stateCopy)\n }\n\n const handleChange = (index: number, key: Exclude, value: string) => {\n const stateCopy = { ...localPromoState }\n const lock = (stateCopy.content as ElockData).elockTableData.find((item) => item.index === index)\n\n if (lock) {\n ;(lock[key] as string) = value\n }\n\n setLocalPromoState(stateCopy)\n }\n\n const handleInstallDataChange = (index: number, key: keyof ElockHowToInstallData, value: string) => {\n const stateCopy = { ...localPromoState }\n const installData = (stateCopy.content as ElockData).elockHowToInstallData[index]\n\n if (installData) {\n ;(installData[key] as string) = value\n }\n\n setLocalPromoState(stateCopy)\n }\n\n const handleLinksChange = (index: number, linkKey: keyof Links, value: string) => {\n const stateCopy = { ...localPromoState }\n const lock = (stateCopy.content as ElockData).elockTableData.find((item) => item.index === index)\n\n if (lock) {\n ;(lock.links as Links)[linkKey] = value\n }\n\n setLocalPromoState(stateCopy)\n }\n\n const deleteLockModelHandler = (index: number) => {\n setLocalPromoState((prevState) => {\n const stateCopy = { ...prevState }\n const updatedLocks = [...(stateCopy.content as ElockData).elockTableData].filter((lock) => lock.index !== index)\n\n updatedLocks.forEach((lock, i) => (lock.index = i))\n\n return {\n ...stateCopy,\n content: {\n ...stateCopy.content,\n elockTableData: updatedLocks,\n },\n }\n })\n }\n\n return (\n
\n \n\n {isVisible && (\n
\n {(localPromoState.content as ElockData).elockTableData.map((lock) => (\n , value: string) => void}\n onLinkChange={handleLinksChange}\n onDelete={deleteLockModelHandler}\n />\n ))}\n \n
\n )}\n\n \n\n {isInstallDataVisible && (\n <>\n {(data.elockHowToInstallData || []).map((item, index) => (\n <>\n handleInstallDataChange(index, 'installationInstructions', value)}\n />\n handleInstallDataChange(index, 'controllerDescription', value)}\n />\n \n ))}\n \n )}\n\n \n
\n )\n}\n","import { useState } from 'react'\n\nimport { SectionState } from 'states/PromoPageState/state'\nimport { AdminHeaderBlockElem } from 'components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminTextArea } from 'components/AdminV2/UI/TextArea/AdminTextArea'\nimport { FaqData } from 'types/types'\n\nimport s from './FaqEl.module.scss'\n\ntype FaqElProps = {\n index: number\n localPromoState: SectionState\n setLocalPromoState: React.Dispatch>\n setDraggable?: React.Dispatch>\n}\n\nexport const FaqEl = ({ index, localPromoState, setLocalPromoState }: FaqElProps) => {\n const [state, setState] = useState(localPromoState)\n\n const faqData = state.content as FaqData[]\n\n const question = faqData[index]?.question\n const answer = faqData[index]?.answer\n const hrefText = faqData[index]?.hrefText\n const href = faqData[index]?.href\n\n const changeInputHandler = (value: string, key: keyof FaqData) => {\n const stateCopy = { ...state }\n const faqData = stateCopy.content as FaqData[]\n ;(faqData[index][key] as string) = value\n setState(stateCopy)\n }\n\n const deleteFaqHandler = () => {\n const stateCopy = { ...state }\n let faqData = stateCopy.content as FaqData[]\n\n faqData = faqData.filter((faq) => faq.index !== index)\n\n for (let i = 0; i < faqData.length; i++) {\n faqData[i].index = i\n }\n\n stateCopy.content = faqData\n\n setLocalPromoState(stateCopy)\n }\n\n return (\n
\n \n\n
\n changeInputHandler(value, 'question')}\n labelSize=\"16px\"\n />\n changeInputHandler(value, 'answer')}\n labelSize=\"16px\"\n />\n\n changeInputHandler(value, 'hrefText')}\n labelSize=\"16px\"\n />\n changeInputHandler(value, 'href')}\n labelSize=\"16px\"\n />\n
\n
\n )\n}\n","import { DragEvent, useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { BlockWrap } from 'components/AdminV2/BlockWrap/BlockWrap'\nimport { AdminAddElemButton } from 'components/AdminV2/UI/AddElemButton/AdminAddElemButton'\nimport { AdminElemVisibilityToggle } from 'components/AdminV2/UI/ElemVisibilityToggle/AdminElemVisibilityToggle'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport { FaqData, SectionName } from 'types/types'\n\nimport { FaqEl } from './FaqEl/FaqEl'\n\nimport s from './FaqBlock.module.scss'\n\nexport const FaqBlock = () => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === 'Faq'),\n ) as SectionState\n\n const ctx = useContext(PromoPageStateContext)\n\n const [localPromoState, setLocalPromoState] = useState(state)\n const [isVisible, setVisible] = useState(false)\n const [draggable, setDraggable] = useState(true)\n const [currentBlockIndex, setCurrentBlockIndex] = useState(0)\n\n const dragStartHandler = (e: DragEvent, oldIndex: number) => {\n setCurrentBlockIndex(oldIndex)\n }\n\n const dragLeaveHandler = (e: DragEvent) => {\n ;(e.target as HTMLDivElement).style.border = 'none'\n }\n\n const dragOverHandler = (e: DragEvent) => {\n e.preventDefault()\n ;(e.target as HTMLDivElement).style.border = '2px solid #6449FF'\n }\n\n const dragDropHandler = (e: DragEvent, newIndex: number) => {\n e.preventDefault()\n ;(e.target as HTMLDivElement).style.border = 'none'\n\n const stateCopy = { ...localPromoState }\n const faqData = stateCopy.content as FaqData[]\n const oldElem = faqData.find((faq) => faq.index === currentBlockIndex)\n const newElem = faqData.find((faq) => faq.index === newIndex)\n\n oldElem!.index = newIndex\n newElem!.index = currentBlockIndex\n faqData.sort((a, b) => a.index - b.index)\n\n setLocalPromoState(stateCopy)\n }\n\n const faqElements = (localPromoState.content as FaqData[]).map((faq, index) => (\n ) => dragStartHandler(e, index)}\n onDragLeave={(e: DragEvent) => dragLeaveHandler(e)}\n onDragOver={(e: DragEvent) => dragOverHandler(e)}\n onDrop={(e: DragEvent) => dragDropHandler(e, index)}\n >\n \n \n \n \n ))\n\n const handleSave = () => {\n ctx.dispatch(saveSection(localPromoState))\n }\n\n const changeTitleHandler = (value: string) => {\n const state = { ...localPromoState }\n state.title = value\n setLocalPromoState(state)\n }\n\n const addFaqHandler = () => {\n const state = { ...localPromoState }\n ;(state.content as FaqData[]).push({\n question: '',\n answer: '',\n index: (state.content as FaqData[]).length,\n hrefText: '',\n href: '',\n target: '_blank',\n })\n setLocalPromoState(state)\n }\n\n return (\n
\n \n\n \n\n {isVisible && (\n <>\n
{faqElements}
\n \n \n )}\n\n \n
\n )\n}\n","import { notification } from 'antd'\nimport { useState } from 'react'\nimport { useContext } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { SortingCenterType } from 'sections/PromoSection/pages/ListPages/ListSignBoardsSortingCentersPage/types'\nimport { AdminHeaderBlockElem } from 'components/AdminV2/UI/HeaderBlockElem/AdminHeaderBlockElem'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { AdminSaveButton } from 'components/AdminV2/UI/SaveButton/AdminSaveButton'\nimport { AdminTextArea } from 'components/AdminV2/UI/TextArea/AdminTextArea'\nimport { SortingCentersData } from 'types/types'\n\nimport s from './SortingCenterBlockItem.module.scss'\n\ntype SortingCenterBlockItemProps = {\n index: number\n localPromoState: SectionState\n sortingCenter: SortingCenterType\n setLocalPromoState: React.Dispatch>\n handleSave: (sortingCenter: SortingCenterType) => void\n}\n\nexport const SortingCenterBlockItem = ({\n sortingCenter,\n localPromoState,\n index,\n setLocalPromoState,\n handleSave,\n}: SortingCenterBlockItemProps) => {\n const ctx = useContext(PromoPageStateContext)\n\n const [sortingCenterLocal, setSortingCenterLocal] = useState(sortingCenter)\n\n const disabled =\n sortingCenterLocal.city.trim().length === 0 ||\n sortingCenterLocal.address.trim().length === 0 ||\n sortingCenterLocal.workTime.trim().length === 0\n\n const deleteConferenceHandler = () => {\n const stateCopy = { ...localPromoState }\n const data = stateCopy.content as SortingCentersData\n\n const filteredSortingCenters = data.sortingCentersData.filter((sortingCenter) => sortingCenter.index !== index)\n\n for (let i = 0; i < filteredSortingCenters.length; i++) {\n filteredSortingCenters[i].index = i\n }\n\n data.sortingCentersData = filteredSortingCenters\n setLocalPromoState(stateCopy)\n\n ctx.dispatch(saveSection(stateCopy))\n }\n\n const handleConferenceSave = () => {\n notification.success({\n message: 'Изменения сохранены!',\n })\n handleSave({ ...sortingCenterLocal })\n }\n\n const changeInputHandler = (value: string, key: keyof SortingCenterType) => {\n setSortingCenterLocal({ ...sortingCenterLocal, [key]: value })\n }\n\n return (\n
\n \n\n changeInputHandler(value, 'city')}\n labelSize=\"16px\"\n maxLength={200}\n />\n\n changeInputHandler(value, 'address')}\n labelSize=\"16px\"\n maxLength={300}\n />\n\n changeInputHandler(value, 'workTime')}\n labelSize=\"16px\"\n maxLength={200}\n />\n\n \n
\n )\n}\n","import { useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { saveSection } from 'states/PromoPageState/reducer'\nimport { SectionState } from 'states/PromoPageState/state'\nimport { SortingCenterType } from 'sections/PromoSection/pages/ListPages/ListSignBoardsSortingCentersPage/types'\nimport { BlockWrap } from 'components/AdminV2/BlockWrap/BlockWrap'\nimport { AdminAddElemButton } from 'components/AdminV2/UI/AddElemButton/AdminAddElemButton'\nimport { AdminInput } from 'components/AdminV2/UI/Input/AdminInput'\nimport { SectionName, SortingCentersData } from 'types/types'\n\nimport { SortingCenterBlockItem } from './SortingCenterBlockItem/SortingCenterBlockItem'\n\nexport const SortingCentersBlock = () => {\n const state = useContextSelector(PromoPageStateContext, (context) =>\n context.state.sections.find((section) => section.type === SectionName.sortingCenters),\n ) as SectionState\n\n const ctx = useContext(PromoPageStateContext)\n\n const [localPromoState, setLocalPromoState] = useState(state)\n const [title, setTitle] = useState(localPromoState.title)\n\n const sortingCenters: SortingCenterType[] = (localPromoState.content as SortingCentersData).sortingCentersData\n\n const addSortingCenterHandler = () => {\n const state = { ...localPromoState }\n const data = (state.content as SortingCentersData).sortingCentersData\n\n data.push({\n index: data.length,\n address: '',\n city: '',\n workTime: '',\n })\n\n setLocalPromoState(state)\n }\n\n const handleConferenceSave = (sortingCenter: SortingCenterType) => {\n const state = { ...localPromoState }\n const sortingCenters = (state.content as SortingCentersData).sortingCentersData\n\n sortingCenters[sortingCenter.index] = sortingCenter\n sortingCenters.sort((a, b) => a.city.localeCompare(b.city))\n\n for (let i = 0; i < sortingCenters.length; i++) {\n sortingCenters[i].index = i\n }\n\n setLocalPromoState(state)\n ctx.dispatch(saveSection(state))\n }\n\n return (\n <>\n \n\n {sortingCenters?.map((sortingCenter, index) => (\n \n \n \n ))}\n\n \n \n )\n}\n","import { ConferencesBlock } from 'components/AdminV2/Blocks/ConferencesBlock/ConferencesBlock'\nimport { ContractorsBlock } from 'components/AdminV2/Blocks/ContractorsBlock/ContractorsBlock'\nimport { ElockBlock } from 'components/AdminV2/Blocks/ElockBlock/ElockBlock'\nimport { FaqBlock } from 'components/AdminV2/Blocks/FaqBlock/FaqBlock'\nimport { SortingCentersBlock } from 'components/AdminV2/Blocks/SortingCentersBlock/SortingCentersBlock'\n\nimport {\n ConferenceData,\n ContractorData,\n ElockData,\n FaqData,\n SectionData,\n SectionName,\n SortingCentersData,\n} from '../../types/types'\n\nexport type SectionState = {\n title: string\n type: SectionName\n content: SectionData\n index: number\n landingComponent?: () => JSX.Element\n menuComponent?: () => JSX.Element\n}\n\nexport type PromoPageState = {\n sections: SectionState[]\n isChangesUpdatingBlocked?: boolean\n}\n\nexport const initialPromoPageState: PromoPageState = {\n isChangesUpdatingBlocked: false,\n sections: [\n {\n index: 0,\n title: 'Частые вопросы',\n type: SectionName.faq,\n content: [\n {\n index: 0,\n question: 'Как открыть пункт выдачи222?',\n answer:\n '
    \\n
  1. Откройте ИП или ООО.
  2. \\n
  3. Изучите тепловую карту и найдите помещение: нежилое, на 1 этаже и с отдельным входом.
  4. \\n
  5. Подайте заявку через сайт или приложение WB point.
  6. \\n
  7. Оплатите заявку с любой карты.
  8. \\n
  9. Когда заявку одобрят, сделайте ремонт.
  10. \\n
  11. Подайте заявку на активацию.
  12. \\n
\\n

Рассказываем обо всём подробнее в пошаговой видеоинструкции.

\\n',\n },\n {\n index: 1,\n question: 'Какие у вас требования к ремонту?',\n answer:\n '

Рассказываем о требованиях в брендбуке. Там же найдёте полезные советы и рекомендации. А ещё у нас есть пошаговая видеоинструкция о том, как открыть ПВЗ — посмотрите её, чтобы больше узнать о ремонте.

',\n },\n {\n index: 2,\n question: 'Где найти информацию о тарифах?',\n answer:\n '

На тепловой карте. Выберите место, где хотите открыть пункт выдачи — появится всплывающее окно с информацией об условиях и примерном доходе. Чтобы узнать больше, нажмите кнопку «Подробнее в калькуляторе» или стрелочку в левом верхнем углу.

\\n

Если хотите рассчитать примерную прибыль, укажите товарооборот, стоимость аренды и другие расходы, а также площадь помещения — от неё будет зависеть тариф.

\\n',\n },\n {\n index: 3,\n question: 'Когда подавать заявку на активацию и как быстро её рассмотрят?',\n answer:\n '

У вас есть 30 дней на ремонт и оформление пункта. Подготовьтесь заранее и подавайте заявку на активацию не позднее, чем через 25 дней, чтобы осталось время на доработки. 

\\n

Заявки рассматриваем в порядке очереди — обычно в течение 2 дней. Если открываете ПВЗ далеко от центра России, может понадобиться больше времени.

\\n

Если не успеваете доделать ремонт, напишите в поддержку. Для этого нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

\\n ',\n },\n {\n index: 4,\n question: 'Что означают цвета на тепловой карте?',\n answer:\n '

Мы обозначили самые выгодные зоны фиолетовым цветом.

\\n
    \\n
  • серый — рядом уже есть пункт выдачи
  • \\n
  • белый — базовый тариф
  • \\n
  • светло-фиолетовая зона — повышенный тариф
  • \\n
  • тёмно-фиолетовая зона — повышенный тариф и дополнительная помощь: субсидия или гарантированный доход
  • \\n
\\n

В странах СНГ субсидию даём во всех зонах.

\\n ',\n },\n {\n index: 5,\n question: 'Когда вокруг моего пункта появится серая зона?',\n answer: '

Карта обновится в течение 15 минут после того, как вы оплатите заявку. 

',\n },\n {\n index: 6,\n question: 'От чего зависит размер серой зоны?',\n answer:\n '

От пешей доступности ПВЗ, количества заказов и площади: чем больше пункт выдачи, тем больше серая зона вокруг него.

Если ваш пункт выдачи перегружен, мы изменим цвет зоны на фиолетовый. 

',\n },\n {\n index: 7,\n question: 'Не могу зарегистрироваться из-за ошибки «ИНН\\u00A0не\\u00A0найден»',\n answer:\n '

Обычно эта ошибка отображается, если вы совсем недавно оформили ИНН. В этом случае нужно немного подождать, чтобы информация обновилась в системе. 

\\n

Если вы оформили ИНН давно, проверьте, нет ли ошибки в номере.

\\n',\n },\n {\n index: 8,\n question: 'Не могу зарегистрироваться из-за ошибки «Собственник с таким ИНН уже зарегистрирован»',\n answer:\n '

Значит вы уже регистрировались под этим ИНН. Попробуйте войти в свой профиль по\\u00A0номеру телефона.

',\n },\n {\n index: 9,\n question: 'Сколько денег нужно, чтобы открыть пункт выдачи?',\n answer:\n '

Траты будут зависеть от того, в каком состоянии ваше помещение. В среднем на ремонт и подготовку 1 пункта выдачи нужно от 300 000 ₽.

',\n },\n {\n index: 10,\n question: 'Какие есть требования к площади?',\n answer:\n '

Если открываете ПВЗ в России

\\n

В городе-миллионнике: 

\\n
    \\n
  • в фиолетовой зоне — от 30 м²
  • \\n
  • в белой зоне — от 50 м²
  • \\n
\\n

В небольшом городе — от 30 м²

\\n

Если открываете ПВЗ в странах СНГ

\\n
    \\n
  • в Астане и Алматы — от 40 м²
  • \\n
  • в других городах Казахстана — от 50 м²
  • \\n
  • в других странах СНГ — от 50 м²
  • \\n
\\n ',\n },\n {\n index: 11,\n question: 'Можно открыть пункт выдачи в подвале или на 2 этаже?',\n answer:\n '

Нет. Для пункта выдачи подходят помещения только на 1 этаже с отдельным входом. Это удобно для маломобильных посетителей, родителей с маленькими детьми и курьеров, которые привозят товары в пункт выдачи.

\\n

Если в вашем районе нет подходящих вариантов, сможем рассмотреть помещение на цокольном этаже, но только с лестницей не больше 7 ступеней. 

\\n ',\n },\n {\n index: 12,\n question: 'Я собираюсь оформить ИП для пункта выдачи. Какой ОКВЭД выбрать?',\n answer:\n '

Вам нужен код 47.9: «Торговля розничная по почте или по информационно-коммуникационной сети Интернет».

\\n

Дополнительные виды ОКВЭД можете выбрать из этого списка: 

\\n
    \\n
  • 53.20: «Деятельность почтовой связи прочая и курьерская деятельность»
  • \\n
  • 52.29: «Деятельность вспомогательная прочая, связанная с перевозками»
  • \\n
  • 53.10: «Деятельность почтовой связи общего пользования»
  • \\n
  • 52.10.9: «Хранение и складирование прочих грузов»
  • \\n
  • 96.09: «Предоставление прочих персональных услуг, не включенных в другие группировки»
  • \\n
\\n',\n },\n {\n index: 13,\n question: 'У вас есть гарантийный взнос? Как его оплатить?',\n answer:\n '

Да, 10 000 ₽ или 50 000 ₽ в зависимости от условий, на которых вы открываете пункт выдачи. Эта сумма вернётся на ваш счёт после того, как ПВЗ активируют. Вы можете оплатить взнос любой банковской картой. 

\\n

Если помещение не одобрят, деньги вернутся на вашу карту в течение 30 дней. Но если решите не открываться по уже одобренной заявке, гарантийный взнос не вернётся.

\\n ',\n },\n {\n index: 14,\n question: 'Что дают в подарок новым пунктам?',\n answer:\n '

Дарим контроллер для электронного замка, вывеску и кронштейн. Установите их до того, как подавать заявку на активацию пункта выдачи. 

\\n

Для вывесок используйте только эти артикулы — другие не подойдут:

\\n
    \\n
  • кронштейн: 209248151  
  • \\n
  • вывеска WB фиолетовая: 221540807  
  • \\n
  • вывеска WB белая: 221540808
  • \\n
\\n

Если открываете пункт выдачи в Ереване, закажите вывеску у местных производителей, и мы компенсируем 180 000 ֏. 

\\n

Не забудьте установить электронный замок — это обязательное условие для всех регионов, за исключением северных. Вам нужно купить замок самостоятельно, а контроллер получите в подарок. 

\\n

Посмотрите инструкцию, как заказать оборудование в подарок

\\n ',\n },\n {\n index: 15,\n question: 'Мне нужно передать ключи курьеру, если в пункте выдачи есть электронный замок?',\n answer: '

Нет. Курьер, как и менеджер пункта выдачи, будет открывать дверь через приложение.

\\n\\n',\n },\n {\n index: 16,\n question: 'Когда я смогу приступить к ремонту помещения?',\n answer:\n '

Дождитесь, пока вашу заявку одобрят. Потом приступайте к ремонту. 

\\n

Используйте брендбук — собрали в этом документе все требования к пункту выдачи.

\\n',\n },\n {\n index: 17,\n question: 'Что нужно, чтобы пункт активировали?',\n answer:\n '

После ремонта снимите видеообзор.

\\n

Что должно быть на записи:

\\n
    \\n
  1. Адресная табличка на вашем доме. Если её нет, покажите в кадре табличку на ближайшем.
  2. \\n
  3. Обзор окрестностей пункта выдачи.
  4. \\n
  5. Фасад с вывеской и табличкой с режимом работы.
  6. \\n
  7. Электронный замок в торце двери, провод к контроллеру и сам контроллер — покажите его вблизи, чтобы было видно, что устройство работает.
  8. \\n
  9. Обзор клиентской зоны: бренд-стена, стол менеджера, примерочные и общий вид помещения. Важно зафиксировать на видео все брендированные элементы.
  10. \\n
  11. Обзор складской зоны.
  12. \\n
\\n

Требования к видео: 

\\n
    \\n
  • не больше 200 Мб
  • \\n
  • не длиннее 30 секунд — можно немного ускорить, чтобы уложиться 
  • \\n
  • без монтажа и нарезки
  • \\n
\\n ',\n },\n {\n index: 18,\n question: 'Я могу выдавать товары других маркетплейсов в пункте выдачи Wildberries?',\n answer:\n '

Да, можете. Главное, чтобы пункт соответствовал всем требованиям брендбука.

\\n

Что нельзя делать: 

\\n
    \\n
  • рекламировать в ПВЗ Wildberries другие маркетплейсы
  • \\n
  • выдавать товары с Wildberries в ПВЗ других маркетплейсов
  • \\n
\\n ',\n },\n {\n index: 19,\n question: 'В пункте выдачи можно установить вендинговый аппарат или постамат?',\n answer: '

Да, если в помещении достаточно места.

\\n ',\n },\n {\n index: 20,\n question: 'Почему мою заявку удалили?',\n answer:\n '

Скорее всего у вашей заявки истёк срок действия. Оплаченная заявка активна в течение 30 дней с момента оформления, а неоплаченная — 24 часа. Если срок действия истёк, вы можете подать новую заявку, но гарантийный взнос в таком случае не вернётся.

\\n

Ещё специалисты могут запросить у вас дополнительную информацию и отправить заявку на доработку — у вас будет 5 дней с момента подачи заявки, чтобы ответить. 

\\n

Если не успеваете или у вас есть вопросы, напишите в поддержку. Для этого нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

\\n ',\n },\n {\n index: 21,\n question: 'Что такое субсидия?',\n answer:\n '

Это разовая выплата. Её получит владелец, когда пункт достигнет оборота в 3 млн ₽. Если ПВЗ в другой стране, пересчитаем сумму по актуальному курсу ЦБ в местной валюте.

\\n

Размер субсидии зависит от региона — посмотреть сумму можно в калькуляторе.

\\n ',\n },\n {\n index: 22,\n question: 'Что такое гарантированный доход?',\n answer:\n '

Это форма финансовой помощи для новичков в некоторых регионах. В Москве и Санкт-Петербурге гарантированный доход — 200 000 ₽, а в Московской, Ленинградской и Калининградской областях — 150 000 ₽.

Если в течение первых 3 месяцев собственник не заработает установленную сумму, мы доплатим разницу. Например, гарантированный доход пункта — 200 000 ₽. Если в 1-й месяц пункт заработает 150 000 ₽, собственнику доплатят 50 000 ₽.

\\n

Если закроете ПВЗ раньше, чем через 11 месяцев после открытия, придётся возместить Wildberries доплату, которую вы уже успели получить.

\\n ',\n },\n {\n index: 23,\n question: 'Я могу открыть ПВЗ Wildberries где-то кроме России?',\n answer: '

Да, можете: в Армении, Беларуси, Казахстане, Кыргызстане и Узбекистане.

\\n',\n },\n {\n index: 24,\n question: 'Как связаться с поддержкой?',\n answer:\n '

Нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

\\n ',\n },\n {\n index: 25,\n question: 'Где купить форму для сотрудников ПВЗ?',\n answer:\n '

Закажите брендированную одежду на Wildberries. Подойдут эти артикулы:

\\n
    \\n
  • худи: 76011281
  • \\n
  • свитшот: 76015068
  • \\n
  • футболка: 76012699
  • \\n
  • жилет: 76017942
  • \\n
\\n

Можете купить бланковые вещи фирменного фиолетового цвета и самостоятельно нанести на них логотип Wildberries.

\\n ',\n },\n {\n index: 26,\n question: 'Где купить пакеты?',\n answer:\n '

На Wildberries. Используйте эти артикулы — другие не подойдут: 

\\n
    \\n
  • маленький пакет: 109108940
  • \\n
  • средний пакет: 209785740, 16020241
  • \\n
  • большой пакет: 107004643
  • \\n
\\n

Пакеты бесплатные для клиентов. Мы будем возмещать деньги, которые вы потратите на покупку пакетов для пункта выдачи.

\\n',\n },\n ] as FaqData[],\n //landingComponent: FaqSection,\n menuComponent: FaqBlock,\n },\n {\n index: 1,\n title: 'Онлайн конференции',\n type: SectionName.conferences,\n content: {\n conferenceData: {},\n } as ConferenceData,\n //landingComponent: FaqSection,\n menuComponent: ConferencesBlock,\n },\n {\n index: 2,\n title: 'Сортировочные центры',\n type: SectionName.sortingCenters,\n content: {\n sortingCentersData: [\n {\n city: 'Архангельск',\n address: 'Ленина 29',\n workTime: 'Понедельник – Воскресенье, 8:00-20:00. Ворот нет, заезд через шлагбаум.',\n index: 0,\n },\n {\n city: 'Астрахань',\n address: 'Астрахань улица Рождественского 17',\n workTime:\n 'Понедельник – Пятница, 11:00-18:00. Ориентир - начало пандуса, если смотреть на склад - с левой стороны будет.',\n index: 1,\n },\n {\n city: 'Барнаул',\n address: 'Барнаул проспект Ленина 154',\n workTime: 'Понедельник – Пятница, 9:00-18:00',\n index: 2,\n },\n {\n city: 'Белгород',\n address: 'улица Константина Заслонова, 94А',\n workTime: 'Понедельник – Воскресенье, 9:00-18:00',\n index: 3,\n },\n {\n city: 'Брянск',\n address: 'Брянская область, Брянск, Сталелитейная улица, 1',\n workTime: 'Понедельник – Воскресенье, 10:00-18:00. 12 ворота',\n index: 4,\n },\n {\n city: 'Владикавказ',\n address: 'Республика Северная Осетия — Алания, Пригородный район, село Михайловское, Бесланское шоссе, 17',\n workTime: 'Понедельник – Воскресенье, 10:00-20:00',\n index: 5,\n },\n {\n city: 'Волгоград',\n address: 'Авторемонтная улица, 11В',\n workTime: 'Понедельник – Пятница, 9:00 – 18:00',\n index: 6,\n },\n {\n city: 'Вологда',\n address: 'Окружное шоссе, 13, Вологда',\n workTime: 'Понедельник – Пятница, 10:00-17:00',\n index: 7,\n },\n {\n city: 'Воронеж',\n address: '1-я Промышленная зона 9 (10 ворота)',\n workTime: '24/7',\n index: 8,\n },\n {\n city: 'Гомель',\n address: 'Улица Могилевская 1/А',\n workTime: 'Понедельник – Пятница, 9:00 – 18:00',\n index: 9,\n },\n {\n city: 'Екатеринбург',\n address: 'улица Перспективная, 12/2',\n workTime: '24/7. По приезду уточнить номер ворот по телефону +79935028133',\n index: 10,\n },\n {\n city: 'Иркутск',\n address: 'Трактовая улица 18/38',\n workTime: 'Понедельник – Воскресенье, 9:00 – 19:00',\n index: 11,\n },\n {\n city: 'Казань',\n address: 'Зеленодольский район, г. Зеленодольск, промышленная площадка \"Новая Тура\", строение 9',\n workTime: 'На охране нужно объяснить, что за вывеской, охрана берет номер телефона и делают пропуск, 24/7',\n index: 12,\n },\n {\n city: 'Кемерово',\n address: 'Кемеровская область, Кемерово, улица Тухачевского, 58',\n workTime: 'Понедельник – Пятница, 12:00-16:00. 1 ворота, 1 пандус',\n index: 13,\n },\n {\n city: 'Краснодар',\n address: 'Тихорецкая улица, 40с1 (100 - 101 ворота для выдачи)',\n workTime: 'Понедельник – Воскресенье, 12:00 – 17:00',\n index: 14,\n },\n {\n city: 'Красноярск',\n address: 'Полигонная улица, 8Д',\n workTime: '24/7',\n index: 15,\n },\n {\n city: 'Минск',\n address: 'Минская кольцевая автомобильная дорога, 21',\n workTime: 'с 10:00 до 21:00',\n index: 16,\n },\n {\n city: 'Мурманск',\n address: 'Мурманская область, Мурманск, Промышленная улица, 19',\n workTime: 'Понедельник – Воскресенье, 10:00-18:00. Ворота 1, 2',\n index: 17,\n },\n {\n city: 'Набережные Челны',\n address: 'г. Набережные Челны, ул. Моторная 16',\n workTime: 'Понедельник – Пятница, 10:00-18:00. Ворота 1',\n index: 18,\n },\n {\n city: 'Новокузнецк',\n address: 'г. Новокузнецк, просп. Курако, д. 51а, корпус 23',\n workTime: 'Понедельник – Воскресенье, 10:00-18:00',\n index: 19,\n },\n {\n city: 'Новосибирск',\n address: 'улица Петухова, 71',\n workTime: 'Первое крыльцо, отдел отгрузок, Понедельник – Воскресенье, 10:00 – 18:00',\n index: 20,\n },\n {\n city: 'Пермь',\n address: 'Промышленная улица, 123А (ворота 2)',\n workTime: 'Понедельник – Пятница, 10:00 – 18:00',\n index: 21,\n },\n {\n city: 'Пятигорск',\n address:\n 'Ставропольский край, Предгорный муниципальный округ, автодорога Пятигорск - Георгиевск, 4-й километр, 1',\n workTime: 'Понедельник – Пятница, 10:00-18:00. Ворота 3-4',\n index: 22,\n },\n {\n city: 'Ростов-на-Дону',\n address: 'улица Гайдара, 8к1, хутор Нижнетемерницкий, Щепкинское сельское поселение',\n workTime: '24/7',\n index: 23,\n },\n {\n city: 'Санкт-Петербург',\n address: 'промзона Уткина Заводь, 4к4, Свердловское городское поселение, Всеволожский район',\n workTime: '24/7',\n index: 24,\n },\n {\n city: 'Серов',\n address: 'Серов Новоуральская улица 2А',\n workTime: 'Понедельник – Пятница, 10:00-18:00',\n index: 25,\n },\n {\n city: 'Симферополь',\n address: 'Московское шоссе, 12-й километр',\n workTime: '24/7',\n index: 26,\n },\n {\n city: 'Смоленск',\n address: 'ул. Лавочкина 107',\n workTime: 'Понедельник – Пятница, 10:00 – 17:00. Со стороны ворот, где баннер Wildberries',\n index: 27,\n },\n {\n city: 'Тамбов',\n address: 'Тамбов Тамбовская область, городской округ Тамбов Волжская улица 71Б',\n workTime: 'Понедельник – Пятница, 12:00-16:00',\n index: 28,\n },\n {\n city: 'Тюмень',\n address: 'Харьковская улица, 77/1, микрорайон Сельскохозяйственный Институт',\n workTime: 'Понедельник – Пятница, 10:00 – 18:00',\n index: 29,\n },\n {\n city: 'Ульяновск',\n address: 'г. Ульяновск, 14 инженерный проспект, 9А',\n workTime: 'Понедельник – Воскресенье, 9:00-18:00',\n index: 30,\n },\n {\n city: 'Хабаровск',\n address: 'Хабаровский край, г.Хабаровск, ул. Зеленая д. 3А',\n workTime:\n 'Понедельник – Пятница, 10:00-18:00. Для получения пройти в дверь к посту охраны и попросить провести к администрации',\n index: 31,\n },\n {\n city: 'Чебоксары',\n address: 'Чувашская Республика, г. Чебоксары, проезд Лапсарский, д. 55, строение 1',\n workTime: 'Вторник, Среда 12:00-16:00',\n index: 32,\n },\n {\n city: 'Челябинск',\n address: 'Координаты: 55,14918° С, 61,44944° В',\n workTime:\n 'Заезд на территорию склада осуществляется с улицы Копейское шоссе, после ТЦ \"Алмаз\" съезд направо, далее еще один съезд правее, далее прямо и после знака главной дороги следующий съезд направо, далее прямо и напротив Автоцентра \"Планета Авто\" поворот направо на территорию склада',\n index: 33,\n },\n {\n city: 'Чита',\n address: 'Казачья улица, 29',\n workTime:\n 'Понедельник – Пятница, 14:00 – 18:00. Первые ворота, звонок снизу, уточнить, что приехали за вывеской ВБ',\n index: 34,\n },\n {\n city: 'Ярославль',\n address: 'Промышленная улица, 22',\n workTime: '24/7',\n index: 35,\n },\n ],\n } as SortingCentersData,\n //landingComponent: FaqSection,\n menuComponent: SortingCentersBlock,\n },\n {\n index: 3,\n title: 'Рекомендуемые поставщики',\n type: SectionName.contractors,\n content: {\n videoConnectionData: [],\n signboardData: [],\n outsourcingData: [],\n description: '',\n } as ContractorData,\n //landingComponent: FaqSection,\n menuComponent: ContractorsBlock,\n },\n {\n index: 4,\n title: 'Электронный замок',\n type: SectionName.elock,\n content: {\n elockTableData: [],\n elockHowToInstallData: [],\n } as ElockData,\n menuComponent: ElockBlock,\n },\n ],\n}\n","import React from 'react'\nimport { createContext } from 'use-context-selector'\n\nimport { PromoPageActions } from './actions'\nimport { promoPageStateReducer } from './reducer'\nimport { initialPromoPageState, PromoPageState } from './state'\n\nexport const PromoPageStateContext = createContext<{\n state: PromoPageState\n dispatch: React.Dispatch\n}>({\n state: initialPromoPageState,\n dispatch: () => undefined,\n})\n\nexport interface PromoPageStateProviderProps extends React.HTMLAttributes {}\n\nexport const PromoPageStateProvider = ({ children }: PromoPageStateProviderProps) => {\n const [state, dispatch] = React.useReducer(promoPageStateReducer, initialPromoPageState)\n\n return {children}\n}\n","import i18n from 'i18next'\nimport Backend from 'i18next-http-backend'\nimport { initReactI18next } from 'react-i18next'\n\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\n\nimport enTranslations from 'assets/i18n/en/translation.json'\nimport kaTranslations from 'assets/i18n/ka/translation.json'\nimport ruTranslations from 'assets/i18n/ru/translation.json'\n\nconst savedLanguage = sessionStorage.getItem('i18nextLng') || (isGeDomain() ? 'ka' : 'ru')\n\ni18n\n .use(Backend)\n .use(initReactI18next)\n .init({\n fallbackLng: 'ru',\n lng: savedLanguage,\n debug: import.meta.env.VITE_NODE_ENV !== 'prod',\n supportedLngs: ['ru', 'ka'],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false,\n },\n returnEmptyString: false,\n resources: {\n en: {\n translation: enTranslations,\n },\n ru: {\n translation: ruTranslations,\n },\n ka: {\n translation: kaTranslations,\n },\n },\n })\n\nexport default i18n\n","import { PromoRoutesEnum } from 'shared/constants/routes'\n\nexport type MenuItemLinkType = 'path' | 'anchor' | 'link'\n\nexport type MenuItemType = { id: number; type: MenuItemLinkType; label: string; path: PromoRoutesEnum | string }\n\nexport const enum SectionIds {\n marketPlaceStat = 'marketPlaceStat',\n openingSteps = 'openingSteps',\n kindsOfPickPoints = 'kindsOfPickPoints',\n videoSection = 'videoSection',\n faq = 'faq',\n authForm = 'authForm'\n}\n\nexport const enum PromoPageKeys {\n promoModule = 'promoModule',\n shared = 'promoModule.shared',\n countries = 'shared.countries',\n header = 'promoModule.header',\n hero = 'promoModule.hero',\n openPickPointForm = 'promoModule.openPickPointForm',\n map = 'promoModule.map',\n promoLandingPageGe = 'promoModule.promoLandingPageGe',\n openingSteps = 'promoModule.openingSteps',\n loginPage = 'promoModule.promoLandingPageGe.loginPage',\n appsPage = 'promoModule.appsPage',\n cookiePolicy = 'promoModule.cookiePolicy'\n}\n","import s from './Spinner.module.scss'\n\ntype PropsType = {\n color?: string\n size?: number\n}\n\nexport const Spinner = ({ color = 'var(--corp)', size = 32 }: PropsType) => {\n return (\n \n )\n}\n","import * as React from \"react\";\nconst SvgMainLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 371 175\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { filter: \"url(#filter0_b_55_303)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 81.9435C0 53.2606 0 38.9191 5.58206 27.9637C10.4922 18.327 18.327 10.4922 27.9637 5.58206C38.9191 0 53.2606 0 81.9435 0H92.6045C121.287 0 135.629 0 146.584 5.58206C156.221 10.4922 164.056 18.327 168.966 27.9637C174.548 38.9191 174.548 53.2606 174.548 81.9435V92.6045C174.548 121.287 174.548 135.629 168.966 146.584C164.056 156.221 156.221 164.056 146.584 168.966C135.629 174.548 121.287 174.548 92.6045 174.548H81.9435C53.2606 174.548 38.9191 174.548 27.9637 168.966C18.327 164.056 10.4922 156.221 5.58206 146.584C0 135.629 0 121.287 0 92.6045V81.9435Z\", fill: \"url(#paint0_linear_55_303)\" })), /* @__PURE__ */ React.createElement(\"path\", { d: \"M132.828 61.5896C126.576 61.5896 120.931 63.4804 116.111 66.7159V37.1835H102.776V91.648C102.776 108.218 116.257 121.553 132.754 121.553C149.252 121.553 162.886 108.298 162.886 91.4949C162.886 74.6915 149.551 61.5896 132.828 61.5896ZM72.3115 95.496L60.1085 63.7067H50.7681L38.4918 95.496L26.2154 63.7067H11.6689L33.1392 119.603H42.4796L55.3617 86.3087L68.3171 119.603H77.6575L99.0545 63.7067H84.5879L72.3115 95.496ZM132.761 108.225C123.72 108.225 116.111 100.995 116.111 91.5747C116.111 82.1545 123.268 75.0044 132.834 75.0044C142.401 75.0044 149.558 82.4607 149.558 91.5747C149.558 100.689 141.948 108.225 132.761 108.225Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M345.967 121.273C333.112 121.273 323.415 115.86 318.341 109.771L326.798 100.299C330.18 104.471 337.397 108.982 345.629 108.982C351.831 108.982 356.679 106.727 356.679 102.442C356.679 98.2696 353.522 96.1272 347.546 96.1272H331.308V85.4148H345.629C351.718 85.4148 354.762 83.2724 354.762 79.213C354.762 74.7025 350.59 73.1239 346.08 73.1239C338.412 73.1239 332.548 76.394 328.151 80.3406L320.37 70.3049C324.542 66.2455 334.578 60.7202 346.531 60.7202C359.611 60.7202 369.196 66.5837 369.196 76.1684C369.196 82.4831 365.926 86.9935 360.175 89.587C367.279 91.7295 371 96.4654 371 103.908C371 113.492 360.513 121.273 345.967 121.273Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M266.46 119.243V62.8626H296.003C305.926 62.8626 315.06 67.2603 315.06 76.7322C315.06 82.9341 311.677 87.1062 306.49 89.3615C312.805 91.6167 316.977 96.1271 316.977 102.893C316.977 114.394 307.054 119.243 295.665 119.243H266.46ZM279.879 108.193H295.214C299.612 108.193 302.205 105.486 302.205 101.991C302.205 98.3824 299.273 95.6761 294.876 95.6761H279.879V108.193ZM279.879 85.3021H293.974C297.695 85.3021 300.852 83.0469 300.852 79.213C300.852 75.8301 298.033 73.4622 293.974 73.4622H279.879V85.3021Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M205.234 119.243V62.8626H259.247V119.243H245.828V75.8301H218.653V119.243H205.234Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"filter\", { id: \"filter0_b_55_303\", x: -3, y: -3, width: 180.548, height: 180.548, filterUnits: \"userSpaceOnUse\", colorInterpolationFilters: \"sRGB\" }, /* @__PURE__ */ React.createElement(\"feFlood\", { floodOpacity: 0, result: \"BackgroundImageFix\" }), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", { in: \"BackgroundImageFix\", stdDeviation: 1.5 }), /* @__PURE__ */ React.createElement(\"feComposite\", { in2: \"SourceAlpha\", operator: \"in\", result: \"effect1_backgroundBlur_55_303\" }), /* @__PURE__ */ React.createElement(\"feBlend\", { mode: \"normal\", in: \"SourceGraphic\", in2: \"effect1_backgroundBlur_55_303\", result: \"shape\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_55_303\", x1: 58.7116, y1: 189.623, x2: 165.821, y2: 11.1076, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#6F01FB\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF49D7\" }))));\nexport default SvgMainLogo;\n","import * as React from \"react\";\nconst SvgMainLogoGe = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 722 288\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { filter: \"url(#filter0_b_113_7674)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 134.953C0 87.7148 0 64.0959 9.1931 46.0534C17.2796 30.1828 30.1828 17.2796 46.0534 9.1931C64.0959 0 87.7148 0 134.953 0H152.51C199.748 0 223.367 0 241.41 9.1931C257.28 17.2796 270.183 30.1828 278.27 46.0534C287.463 64.0959 287.463 87.7148 287.463 134.953V152.51C287.463 199.748 287.463 223.367 278.27 241.41C270.183 257.28 257.28 270.183 241.41 278.27C223.367 287.463 199.748 287.463 152.51 287.463H134.953C87.7148 287.463 64.0959 287.463 46.0534 278.27C30.1828 270.183 17.2796 257.28 9.1931 241.41C0 223.367 0 199.748 0 152.51V134.953Z\", fill: \"url(#paint0_linear_113_7674)\" })), /* @__PURE__ */ React.createElement(\"path\", { d: \"M218.754 101.432C208.459 101.432 199.161 104.546 191.223 109.874V61.2374H169.262V150.935C169.262 178.225 191.464 200.186 218.633 200.186C245.802 200.186 268.257 178.356 268.257 150.683C268.257 123.009 246.296 101.432 218.754 101.432ZM119.09 157.272L98.9927 104.919H83.61L63.3921 157.272L43.1743 104.919H19.2176L54.577 196.973H69.9597L91.1753 142.142L112.511 196.973H127.894L163.133 104.919H139.308L119.09 157.272ZM218.644 178.236C203.755 178.236 191.223 166.329 191.223 150.814C191.223 135.3 203.009 123.525 218.765 123.525C234.52 123.525 246.307 135.805 246.307 150.814C246.307 165.824 233.775 178.236 218.644 178.236Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M424.326 81.1825C419.539 56.9979 388.657 52.0859 378.583 73.5303C362.267 45.0022 329.588 64.8207 331.226 92.5869C331.192 92.5869 350.839 92.5869 352.897 92.5869C357.093 80.6595 370.624 83.9682 370.988 96.7825C371.454 96.7825 374.387 96.7825 377.764 96.7825C382.426 96.521 386.508 97.3283 386.269 96.4528C386.667 84.3776 397.947 81.8761 402.87 89.5169C405.531 93.724 404.803 103.548 404.894 108.699C352.409 82.3878 311.646 136.215 340.777 177.102C368.543 210.758 427.589 192.259 426.077 148.415C425.724 136.908 427.316 89.4032 424.326 81.1825ZM396.412 166.755C368.554 190.326 339.89 152.724 360.982 129.358C388.941 105.776 417.356 143.378 396.412 166.755Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M520.7 164.436C517.903 157.409 513.037 150.928 506.522 145.993C516.937 142.218 523.077 132.44 521.474 120.365C516.107 85.2076 439.676 90.5175 444.951 128.699C444.906 128.699 465.384 128.699 465.486 128.699C466.066 110.541 504.384 113.156 499.347 127.187C488.909 140.456 449.158 130.893 435.571 158.319C397.048 248.019 547.432 253.988 520.7 164.436ZM494.299 201.56C466.441 225.13 437.777 187.529 458.869 164.152C486.84 140.57 515.254 178.171 494.299 201.56Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M633.062 169.45C632.379 219.991 536.187 217.831 530.308 173.964C532.469 174.203 556.881 170.621 558.097 171.861C586.421 208.985 638.485 154.009 577.04 152.69C571.162 152.724 568.274 152.747 568.274 152.747C568.274 152.747 568.205 132.463 568.205 132.315C575.46 132.338 584.363 131.678 588.797 130.518C605.352 127.278 605.261 112.076 596.29 106.254C587.455 100.774 579.485 104.833 567.307 97.6695C552.594 88.7097 552.276 69.1756 553.083 63.5359C555.016 63.5359 573.242 63.5359 573.356 63.5359C568.535 87.5386 591.105 74.8721 612.459 85.9012C638.496 99.3637 635.597 135.396 605.705 141.013C623.772 143.867 633.141 154.612 633.062 169.45Z\", fill: \"black\" }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"filter\", { id: \"filter0_b_113_7674\", x: -3, y: -3, width: 293.463, height: 293.463, filterUnits: \"userSpaceOnUse\", colorInterpolationFilters: \"sRGB\" }, /* @__PURE__ */ React.createElement(\"feFlood\", { floodOpacity: 0, result: \"BackgroundImageFix\" }), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", { in: \"BackgroundImageFix\", stdDeviation: 1.5 }), /* @__PURE__ */ React.createElement(\"feComposite\", { in2: \"SourceAlpha\", operator: \"in\", result: \"effect1_backgroundBlur_113_7674\" }), /* @__PURE__ */ React.createElement(\"feBlend\", { mode: \"normal\", in: \"SourceGraphic\", in2: \"effect1_backgroundBlur_113_7674\", result: \"shape\" })), /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"paint0_linear_113_7674\", x1: 96.6921, y1: 312.289, x2: 273.09, y2: 18.2931, gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { stopColor: \"#6F01FB\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: 1, stopColor: \"#FF49D7\" }))));\nexport default SvgMainLogoGe;\n","import { Spinner } from 'components/ui/Spinner/Spinner'\nimport { Flex } from 'components/uiKit'\nimport { isLanguage } from 'utils/helpers/i18n/getCurrentLanguage'\nimport { SupportedLanguages } from 'shared/types/types'\n\nimport Logo from 'assets/icons/logo/main-logo.svg?react'\nimport LogoGe from 'assets/icons/logo/main-logo-ge.svg?react'\nimport s from './MainLogo.module.scss'\n\nexport const MainLogo = () => {\n return (\n \n
{isLanguage(SupportedLanguages.GE) ? : }
\n \n
\n )\n}\n","export const checkIfPWAInstalled = () => {\n // Проверяем для iOS\n if ('standalone' in navigator && navigator.standalone) {\n return true\n }\n\n // Проверяем для других платформ (Android, Chrome)\n if (window.matchMedia('(display-mode: standalone)').matches) {\n return true\n }\n\n return false\n}\n","import { DependencyList, useEffect } from 'react'\n\nexport function useAsyncEffect(action: () => Promise | undefined, args: DependencyList) {\n useEffect(() => {\n action()\n }, args)\n}\n","import { useEffect, useState } from 'react'\n\nimport { widths } from 'shared/constants/values'\n\nexport const useResize = () => {\n const [width, setWidth] = useState(window.innerWidth)\n\n useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth)\n }\n\n window.addEventListener('resize', handleResize)\n\n return () => {\n window.removeEventListener('resize', handleResize)\n }\n }, [])\n\n return {\n width,\n isMobile: width <= widths.mobile,\n isSTablet: width <= 640,\n isTablet: width <= widths.tablet,\n isSDesktop: width <= 1280,\n isDesktop: width > 1440,\n }\n}\n","export const URLS = {\n pick_point_map: 'https://map.wb.ru',\n pick_point_map_ge: 'https://map.wildberries.ge',\n auction: 'https://map.wb.ru?auction',\n offer: 'https://point-quality.wb.ru/offer/RU/1.html',\n offerGE: 'https://point-quality.wb.ru/offer/GE/1.html',\n wb_rent: 'https://rent.wildberries.ru/promo/',\n tariffs: 'https://point-quality.wb.ru/offer/RU/3.html',\n ofertaGe: 'https://point-quality.wb.ru/offer/GE/1.html',\n wb_main: 'https://www.wildberries.ru/',\n app_android: 'https://play.google.com/store/apps/details?id=com.wbextdelivery',\n app_ios: 'https://apps.apple.com/us/app/id1528507238',\n wb_point: 'https://point.wb.ru',\n yandex_calendar: 'https://calendar.yandex.ru',\n order_lock_for_new_pwz: 'https://www.wildberries.ru/catalog/211414522/detail.aspx?targetUrl=GP',\n order_lock_for_old_pwz: 'https://www.wildberries.ru/catalog/206479509/detail.aspx?targetUrl=SP',\n wbMarketPrivatePolicy: 'https://www.wildberries.ru/services/politika-obrabotki-personalnyh-dannyh',\n wbMarketPrivatePolicyGe: 'https://www.wildberries.ge/services/privacy-policy',\n signboardArticleWhite: 'https://www.wildberries.ru/catalog/221540808/detail.aspx?targetUrl=EX',\n signboardArticlePurple: 'https://www.wildberries.ru/catalog/221540807/detail.aspx?targetUrl=EX',\n bracketArticle: 'https://www.wildberries.ru/catalog/209248151/detail.aspx?targetUrl=SP',\n wbCourier: 'https://wbk.wb.ru/',\n rutube: 'https://rutube.ru/channel/39669508',\n youtube: 'https://youtube.com/@wb-pvz?si=sdtWbVqfMeyx3YGk',\n learningPortal: 'https://pvz-learning.wb.ru/',\n offerAppendixLink: 'https://point-quality.wb.ru/offer/RU/4.html',\n\n /** Правила оказания услуг в ПВЗ */\n application: 'https://point-quality.wb.ru/offer/RU/2.html',\n applicationGe: 'https://point-quality.wb.ru/offer/GE/2.html',\n privacyPolicy: 'https://pvz-promo.wb.ru/privacy-policy',\n activePvzController: 'https://www.wildberries.ru/catalog/268735799/detail.aspx?targetUrl=GP',\n newPvzController: 'https://www.wildberries.ru/catalog/268690974/detail.aspx?targetUrl=GP',\n}\n","import { Modal } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useCallback, useEffect, useState } from 'react'\n\nimport { useStore } from 'store/useStore'\nimport { Button } from 'components/uiKit'\n\nconst TIME_CHECK_OFFER = 60 * 15 * 1000 // 15 минут\n\nexport const OfferModal = observer(() => {\n const { offerStore: uiStore, appStore } = useStore()\n const [stage, setStage] = useState(0)\n const [sending, setSending] = useState(false)\n const [isOfertaPageLoading, setOfertaPageLoading] = useState(true)\n\n useEffect(() => {\n const versionOfferIntervalId = setInterval(uiStore.checkOfferVersion, TIME_CHECK_OFFER)\n\n if (!appStore.user.authenticated) {\n clearInterval(versionOfferIntervalId)\n }\n setTimeout(async () => {\n uiStore.checkOfferVersion()\n }, 0)\n return () => {\n clearInterval(versionOfferIntervalId)\n }\n }, [appStore.user.authenticated])\n\n const onFinishPress = async () => {\n setSending(true)\n try {\n await Promise.all(\n uiStore.offersForSign.map((offer) => {\n return uiStore.apiStore.signOfferVersion({\n version: offer.lastVersion,\n countryCode: offer.countryCode,\n })\n }),\n )\n\n uiStore.setModalVisible(false)\n } finally {\n setSending(false)\n }\n }\n\n const handleAcceptPress = useCallback(async () => {\n let nextStage = stage\n\n if (stage < uiStore.linksForOfferModal.length - 1) {\n setOfertaPageLoading(true)\n nextStage = nextStage + 1\n } else {\n await onFinishPress()\n nextStage = 0\n }\n\n setStage(nextStage)\n }, [stage, setStage, uiStore.linksForOfferModal])\n\n return (\n \n {stage === uiStore.linksForOfferModal.length - 1 ? 'Принять' : 'Далее'}\n ,\n ]}\n >\n setOfertaPageLoading(false)}\n src={uiStore.linksForOfferModal[stage]}\n />\n \n )\n})\n","export const LKGeneralLayoutKeys = {\n LKGeneralLayout: 'LKGeneralLayout',\n}\n","import i18next from 'i18next'\nimport { BankOutlined, DownloadOutlined, ShoppingOutlined, WarningOutlined } from '@ant-design/icons'\n\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { LKGeneralLayoutKeys } from './types'\n\nconst getKey = (key: string) => `${LKGeneralLayoutKeys.LKGeneralLayout}.${key}`\n\nexport const enum MenuKeys {\n orders = LKRoutesEnum.orders,\n pvz = LKRoutesEnum.pvz,\n tickets = LKRoutesEnum.tickets,\n pwa = 'pwa',\n}\n\nexport const menuItems = [\n { key: MenuKeys.orders, label: i18next.t(getKey('Заявки')), icon: },\n { key: MenuKeys.pvz, label: i18next.t(getKey('ПВЗ')), icon: },\n {\n key: MenuKeys.tickets,\n label: i18next.t(getKey('Тикеты')),\n icon: ,\n },\n {\n key: MenuKeys.pwa,\n label: i18next.t(getKey('Установить')),\n icon: ,\n },\n]\n","import * as React from \"react\";\nconst SvgCaret = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 16 16\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 13C7.74414 13 7.48828 12.9023 7.29297 12.707L1.29296 6.70703C0.902345 6.31641 0.902345 5.68359 1.29296 5.29297C1.68358 4.90235 2.31641 4.90235 2.70703 5.29297L8 10.5859L13.293 5.29297C13.6836 4.90235 14.3164 4.90235 14.707 5.29297C15.0976 5.68359 15.0976 6.31641 14.707 6.70703L8.70703 12.707C8.51172 12.9023 8.25586 13 8 13Z\", fill: \"white\" })));\nexport default SvgCaret;\n","import * as React from \"react\";\nconst SvgLogoNewWhite = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 122 59\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { clipPath: \"url(#clip0_1_9)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.0601 20.9896C42.0335 20.9896 40.2033 21.6032 38.6408 22.6533V13.0684H34.3179V30.7453C34.3179 36.1233 38.6883 40.4512 44.0363 40.4512C49.3844 40.4512 53.8044 36.1492 53.8044 30.6956C53.8044 25.2419 49.4815 20.9896 44.0601 20.9896ZM24.4419 31.9942L20.4859 21.6767H17.4579L13.4782 31.9942L9.49841 21.6767H4.78271L11.743 39.8181H14.7709L18.9471 29.0124L23.147 39.8181H26.1749L33.1114 21.6767H28.4216L24.4419 31.9942ZM44.0385 36.1255C41.1076 36.1255 38.6408 33.7789 38.6408 30.7215C38.6408 27.6641 40.9609 25.3434 44.0622 25.3434C47.1636 25.3434 49.4837 27.7635 49.4837 30.7215C49.4837 33.6795 47.0168 36.1255 44.0385 36.1255Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.156 40.3603C108.989 40.3603 105.845 38.6036 104.2 36.6273L106.941 33.5531C108.038 34.9072 110.378 36.3711 113.046 36.3711C115.057 36.3711 116.629 35.6392 116.629 34.2485C116.629 32.8944 115.605 32.199 113.668 32.199H108.404V28.7222H113.046C115.02 28.7222 116.007 28.0269 116.007 26.7094C116.007 25.2455 114.655 24.7331 113.192 24.7331C110.707 24.7331 108.806 25.7944 107.38 27.0754L104.858 23.8182C106.21 22.5007 109.464 20.7074 113.339 20.7074C117.579 20.7074 120.686 22.6105 120.686 25.7212C120.686 27.7707 119.626 29.2346 117.762 30.0763C120.065 30.7717 121.271 32.3088 121.271 34.7242C121.271 37.835 117.871 40.3603 113.156 40.3603Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M87.3811 39.7015V21.4027H96.9585C100.175 21.4027 103.136 22.83 103.136 25.9042C103.136 27.9171 102.04 29.2712 100.358 30.0032C102.405 30.7351 103.758 32.199 103.758 34.3949C103.758 38.1278 100.541 39.7015 96.8488 39.7015H87.3811ZM91.7311 36.1149H96.7026C98.1283 36.1149 98.969 35.2366 98.969 34.1021C98.969 32.931 98.0186 32.0526 96.593 32.0526H91.7311V36.1149ZM91.7311 28.6856H96.3005C97.5068 28.6856 98.5304 27.9537 98.5304 26.7094C98.5304 25.6115 97.6165 24.8429 96.3005 24.8429H91.7311V28.6856Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M67.5329 39.7015V21.4027H85.0427V39.7015H80.6927V25.6115H71.8829V39.7015H67.5329Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M2.36399 9.84905C1.41736 11.7091 0.956576 13.8347 0.727857 16.6374C0.499999 19.4294 0.499999 22.9371 0.5 27.5718V27.5954V31.0555V31.0791C0.499999 35.7138 0.499999 39.2215 0.727857 42.0136C0.956576 44.8162 1.41736 46.9418 2.36399 48.8019C4.00361 52.0235 6.61994 54.643 9.83809 56.2846C11.6961 57.2324 13.8195 57.6938 16.619 57.9228C19.408 58.1509 22.9116 58.1509 27.5409 58.1509H27.5645H31.0206H31.0442C35.6735 58.1509 39.1771 58.1509 41.9661 57.9228C44.7656 57.6938 46.889 57.2324 48.747 56.2846C51.9652 54.643 54.5815 52.0235 56.2211 48.8019C57.1678 46.9418 57.6285 44.8162 57.8573 42.0136C58.0851 39.2214 58.0851 35.7137 58.0851 31.079V31.0555V27.5954V27.5719C58.0851 22.9372 58.0851 19.4295 57.8573 16.6374C57.6285 13.8347 57.1678 11.7091 56.2211 9.84905C54.5815 6.62736 51.9652 4.00794 48.747 2.36631C46.889 1.41848 44.7656 0.957123 41.9661 0.728127C39.1772 0.499999 35.6735 0.499999 31.0443 0.5H31.0206H27.5645H27.5408C22.9116 0.499999 19.408 0.499999 16.619 0.728127C13.8195 0.957123 11.6961 1.41848 9.83809 2.36631C6.61994 4.00794 4.00361 6.62736 2.36399 9.84905Z\", stroke: \"white\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"clipPath\", { id: \"clip0_1_9\" }, /* @__PURE__ */ React.createElement(\"rect\", { width: 122, height: 59, fill: \"white\" }))));\nexport default SvgLogoNewWhite;\n","import * as React from \"react\";\nconst SvgLogoNewWhiteGe = (props) => /* @__PURE__ */ React.createElement(\"svg\", { id: \"\\\\u0421\\\\u043B\\\\u043E\\\\u0439_1\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", x: \"0px\", y: \"0px\", viewBox: \"0 0 6657.7 3519.7\", style: {\n enableBackground: \"new 0 0 6657.7 3519.7\"\n}, xmlSpace: \"preserve\", width: \"1em\", height: \"1em\", ...props }, /* @__PURE__ */ React.createElement(\"style\", { type: \"text/css\" }, \"\\n\t.st0{fill:none;stroke:#0E0F0F;stroke-width:69.8708;}\\n\t.st1{fill:#0E0F0F;}\\n\"), /* @__PURE__ */ React.createElement(\"g\", null, /* @__PURE__ */ React.createElement(\"g\", null, /* @__PURE__ */ React.createElement(\"path\", { className: \"st0\", d: \"M374.5,891.2c-43.1,84.5-63.7,180.6-73.9,305.6c-10.2,124.3-10.2,280.1-10.2,485v1.6v153.3v1.6 c0,204.9,0,360.8,10.2,485c10.2,125,30.9,221.1,73.9,305.6c74,145.2,192,263.2,337.2,337.2c84.5,43.1,180.6,63.7,305.6,73.9 c124.3,10.2,280.1,10.2,485,10.2h1.7h153.3h1.7c204.9,0,360.8,0,485-10.2c125-10.2,221.1-30.9,305.6-73.9 c145.2-74,263.2-192,337.2-337.2c43.1-84.5,63.7-180.6,73.9-305.6c10.2-124.3,10.2-280.1,10.2-485v-1.7v-153.3v-1.7 c0-204.9,0-360.8-10.2-485c-10.2-125-30.9-221.1-73.9-305.6c-74-145.2-192-263.2-337.2-337.2c-84.5-43.1-180.6-63.7-305.6-73.9 c-124.3-10.2-280.2-10.2-485.1-10.2h-1.6H1504h-1.6c-204.9,0-360.8,0-485,10.2c-125,10.2-221.1,30.9-305.6,73.9 C566.5,628,448.5,746,374.5,891.2z\" })), /* @__PURE__ */ React.createElement(\"path\", { className: \"st1\", d: \"M2235.9,1390.8c-89.9,0-171.1,27.2-240.4,73.7v-424.8h-191.8v783.4c0,238.4,193.9,430.1,431.2,430.1 c237.3,0,433.4-190.6,433.4-432.3C2668.3,1579.2,2476.5,1390.8,2235.9,1390.8z M1365.5,1878.5l-175.5-457.2h-134.3L879,1878.5 l-176.6-457.2H493.2l308.8,804h134.4l185.3-478.9l186.3,478.9h134.3l307.8-804H1542L1365.5,1878.5z M2234.9,2061.6 c-130,0-239.5-104-239.5-239.5s102.9-238.3,240.5-238.3c137.6,0,240.5,107.3,240.5,238.3 C2476.5,1953.2,2367.1,2061.6,2234.9,2061.6z\" })), /* @__PURE__ */ React.createElement(\"g\", null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4039.7,1206.5c-42.1-212.7-313.7-255.9-402.3-67.3c-143.5-250.9-430.9-76.6-416.5,167.6c-0.3,0,172.5,0,190.6,0 c36.9-104.9,155.9-75.8,159.1,36.9c4.1,0,29.9,0,59.6,0c41-2.3,76.9,4.8,74.8-2.9c3.5-106.2,102.7-128.2,146-61 c23.4,37,17,123.4,17.8,168.7c-461.6-231.4-820.1,242-563.9,601.6c244.2,296,763.5,133.3,750.2-252.3 C4052,1696.6,4066,1278.8,4039.7,1206.5z M3794.2,1959.1c-245,207.3-497.1-123.4-311.6-328.9 C3728.5,1422.8,3978.4,1753.5,3794.2,1959.1z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4887.3,1938.7c-24.6-61.8-67.4-118.8-124.7-162.2c91.6-33.2,145.6-119.2,131.5-225.4c-47.2-309.2-719.4-262.5-673,73.3 c-0.4,0,179.7,0,180.6,0c5.1-159.7,342.1-136.7,297.8-13.3c-91.8,116.7-441.4,32.6-560.9,273.8 C3799.8,2673.8,5122.4,2726.3,4887.3,1938.7z M4655.1,2265.2c-245,207.3-497.1-123.4-311.6-329 C4589.5,1728.8,4839.4,2059.5,4655.1,2265.2z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5875.5,1982.8c-6,444.5-852,425.5-903.7,39.7c19,2.1,233.7-29.4,244.4-18.5c249.1,326.5,707-157,166.6-168.6 c-51.7,0.3-77.1,0.5-77.1,0.5s-0.6-178.4-0.6-179.7c63.8,0.2,142.1-5.6,181.1-15.8c145.6-28.5,144.8-162.2,65.9-213.4 c-77.7-48.2-147.8-12.5-254.9-75.5c-129.4-78.8-132.2-250.6-125.1-300.2c17,0,177.3,0,178.3,0c-42.4,211.1,156.1,99.7,343.9,196.7 c229,118.4,203.5,435.3-59.4,484.7C5793.8,1757.8,5876.2,1852.3,5875.5,1982.8z\" })));\nexport default SvgLogoNewWhiteGe;\n","import type { MenuProps } from 'antd'\nimport classNames from 'classnames'\nimport { observer } from 'mobx-react-lite'\nimport { MenuInfo } from 'rc-menu/lib/interface'\nimport { startTransition, Suspense, useCallback, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Outlet, useNavigate, useSearchParams } from 'react-router-dom'\nimport {\n CloseOutlined,\n LogoutOutlined,\n MenuFoldOutlined,\n MenuUnfoldOutlined,\n UserOutlined,\n} from '@ant-design/icons'\n\nimport { setLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { useStore } from 'store/useStore'\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { MainLogo } from 'components/MainLogo/MainLogo'\nimport { LangSwitcher, Margin } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Button, Drawer, Dropdown, Flex, Header, Menu, Text } from 'components/uiKit'\nimport { checkIfPWAInstalled } from 'utils/helpers/checkIfPWAInstalled'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { isLanguage } from 'utils/helpers/i18n/getCurrentLanguage'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { useResize } from 'utils/hooks/useResize'\nimport { AuthRoutesEnum, LKRoutesEnum, PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { colors, SEARCH_PARAMS } from 'shared/constants/values'\nimport { SupportedLanguages } from 'shared/types/types'\n\nimport { OfferModal } from '../modules/UserModule/components/OfferModal/OfferModal'\nimport { OWNER_STATUS } from '../modules/UserModule/types'\nimport { menuItems, MenuKeys } from './data'\nimport { LKGeneralLayoutKeys } from './types'\n\nimport CaretIcon from 'assets/icons/caret.svg?react'\nimport LogoIcon from 'assets/icons/logo/logo-new-white.svg?react'\nimport LogoIconGe from 'assets/icons/logo/logo-new-white-ge.svg?react'\nimport s from './LKGeneralLayout.module.scss'\n\nexport const LKGeneralLayout = observer(() => {\n const { appStore, viewOrderUiStore, loginUiStore } = useStore()\n\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false)\n const [isDrawerOpen, setDrawerOpen] = useState(false)\n const [personalMenuCollapsed, setPersonalMenuCollapsed] = useState(false)\n const [pageKey, setPageKey] = useState(location.pathname)\n const { t } = useTranslation()\n\n const navigate = useNavigate()\n const [searchParams, setSearchParams] = useSearchParams()\n const { width, isMobile } = useResize()\n\n const pickPointType = searchParams.get(SEARCH_PARAMS.pickPointType)\n const latitude = searchParams.get(SEARCH_PARAMS.latitude)\n const longitude = searchParams.get(SEARCH_PARAMS.longitude)\n const subsidyHexType = searchParams.get(SEARCH_PARAMS.subsidyHexType)\n const mobileToken = searchParams.get(SEARCH_PARAMS.mobileToken)\n\n const getKey = (key: string) => `${LKGeneralLayoutKeys.LKGeneralLayout}.${key}`\n const getPromoKey = (key: string) => `${PromoPageKeys.shared}.${key}`\n\n const isPWAInstalled = checkIfPWAInstalled()\n const menuItemsFiltered = menuItems.filter(\n (item) =>\n ((item.key !== MenuKeys.pwa && isPWAInstalled) || !isPWAInstalled) &&\n !(isGeDomain() && item.key === MenuKeys.pvz),\n )\n\n const handleProfile = async () => {\n setPersonalMenuCollapsed(false)\n setPageKey(LKRoutesEnum.profile)\n navigate(LKRoutesEnum.profile)\n }\n\n const exitButtonHandler = async () => {\n await appStore.logout()\n navigate(AuthRoutesEnum.login, { replace: true })\n location.reload()\n }\n\n const dropdownItems: MenuProps['items'] = [\n {\n key: LKRoutesEnum.profile,\n label: (\n \n {t(getKey('Профиль'))}\n \n ),\n icon: ,\n },\n {\n key: 'logout',\n label: (\n \n {t(getKey('Выйти'))}\n \n ),\n icon: ,\n },\n ]\n\n useTranslation()\n\n useAsyncEffect(async () => {\n appStore.setLoadingApp(true)\n\n if (mobileToken) {\n const success = await loginUiStore.getAuthHash(mobileToken)\n\n if (success) {\n searchParams.delete(SEARCH_PARAMS.mobileToken)\n setSearchParams(searchParams)\n await loginUiStore.useAuthHash()\n }\n }\n\n await appStore.bootstrap()\n\n if (latitude && longitude) {\n setLocalStorageData(STORAGE_KEY.COORDINATES, {\n latitude,\n longitude,\n })\n }\n\n if (pickPointType) {\n setLocalStorageData(STORAGE_KEY.PICK_POINT_TYPE, pickPointType)\n }\n\n if (subsidyHexType) {\n setLocalStorageData(STORAGE_KEY.SUBSIDY_HEX_TYPE, subsidyHexType)\n }\n\n if (!appStore.isLoadingUserInfo && !appStore.user.authenticated) {\n navigate(AuthRoutesEnum.login, { replace: true })\n }\n\n if (appStore.needRegistration) {\n navigate(AuthRoutesEnum.registration, { replace: true })\n }\n\n setTimeout(() => {\n appStore.setLoadingApp(false)\n }, 500)\n }, [])\n\n useEffect(() => {\n if (!appStore.isLoadingApp) {\n if (!appStore.isLoadingUserInfo && !appStore.user.authenticated) {\n navigate(AuthRoutesEnum.login, { replace: true })\n }\n if (appStore.user.info.owner === OWNER_STATUS.ROLE_NONE) {\n navigate(AuthRoutesEnum.registration, { replace: true })\n }\n }\n }, [appStore.isLoadingUserInfo, appStore.user.authenticated, appStore.isLoadingApp, appStore.user.info.owner])\n\n useEffect(() => {\n if (width < 1100) {\n setSidebarCollapsed(true)\n }\n }, [width])\n\n useEffect(() => {\n const routeList = [MenuKeys.orders, MenuKeys.pvz, MenuKeys.tickets]\n const matchedKey = routeList.find((route) => location.pathname.includes(route))\n\n if (matchedKey) {\n setPageKey(matchedKey)\n }\n }, [location.pathname])\n\n const handleLeftMenuItem = useCallback((info: MenuInfo) => {\n handleMenuItemClick(info.key as MenuKeys)\n }, [])\n\n const handleDrawerItem = useCallback((key: MenuKeys) => {\n setDrawerOpen(false)\n handleMenuItemClick(key)\n }, [])\n\n const handleMenuItemClick = useCallback(\n (key: MenuKeys) => {\n startTransition(() => {\n if (key === MenuKeys.pwa) {\n viewOrderUiStore.pwaEvent?.prompt()\n } else {\n setPageKey(key)\n navigate(key)\n }\n })\n },\n [viewOrderUiStore],\n )\n\n const handleBurgerButton = useCallback(() => {\n setSidebarCollapsed(!sidebarCollapsed)\n setDrawerOpen(!isDrawerOpen)\n }, [sidebarCollapsed, isDrawerOpen])\n\n const privatePolicyLink = () => {\n return (\n \n \n \n {t(getPromoKey('Политика конфиденциальности'))}\n \n \n \n )\n }\n\n return appStore.isLoadingApp ? (\n \n \n \n ) : (\n
\n {!isMobile && (\n \n )}\n
\n \n \n {isLanguage(SupportedLanguages.GE) ? (\n \n ) : isMobile ? (\n \n ) : (\n \n )}\n \n \n\n \n {isGeDomain() && }\n\n setPersonalMenuCollapsed(isOpen)}>\n \n \n {isMobile ? (\n \n ) : (\n <>\n \n {appStore.user.info.first_name} {appStore.user.info.last_name}\n \n \n \n )}\n \n \n \n\n {isMobile && (\n \n )}\n \n
\n\n \n {!isMobile && (\n \n \n\n {!sidebarCollapsed && privatePolicyLink()}\n \n )}\n {isMobile && (\n setDrawerOpen(false)}\n placement=\"right\"\n style={{ backgroundColor: colors.darkAnt }}\n footer={privatePolicyLink()}\n width={'70%'}\n closeIcon={}\n >\n \n {menuItemsFiltered.map((menuItem) => (\n handleDrawerItem(menuItem.key)}\n >\n \n {menuItem.icon}\n \n {menuItem.label}\n \n ))}\n \n \n )}\n\n \n }>\n \n \n \n \n \n
\n )\n})\n","import s from './ContainerLK.module.scss'\n\ntype PropsType = {\n children: React.ReactNode\n disableMaxWidth?: boolean\n}\n\nexport const ContainerLK = ({ children, disableMaxWidth = false }: PropsType) => {\n return (\n
\n
{children}
\n
\n )\n}\n","export const getRouteWithPagination = (baseRoute: string, page?: number, pageSize?: number): string => {\n const queryParams: string[] = []\n if (page) queryParams.push(`page=${page}`)\n if (pageSize) queryParams.push(`pageSize=${pageSize}`)\n return queryParams.length ? `${baseRoute}?${queryParams.join('&')}` : baseRoute\n}\n","import { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { getRouteWithPagination } from './getRouteWithPagination'\n\nexport const getOrderItemRoute = (orderId: number) => `${LKRoutesEnum.orders}/${orderId}`\nexport const getActivateOrderRoute = (orderId: number) => `${LKRoutesEnum.orders}/${orderId}/activate`\nexport const getActivateELockRoute = (orderId: number) => `${LKRoutesEnum.orders}/${orderId}/activate-elock`\nexport const getOrderPaymentRoute = (orderId: number) => `${LKRoutesEnum.orderPayment}/${orderId}`\nexport const getCreateMovingOrderRoute = (pvzId: number) => `${LKRoutesEnum.orderCreate}?pvzId=${pvzId}`\n\nexport const getPvzItemRoute = (pvzId: number, page?: number, pageSize?: number) => {\n const baseRoute = `${LKRoutesEnum.pvz}/${pvzId}`\n return getRouteWithPagination(baseRoute, page, pageSize)\n}\nexport const getPvzEditAreaRoute = (pvzId: number) => `${LKRoutesEnum.pvz}/${pvzId}/edit-area`\nexport const getPvzEditTimetableRoute = (pvzId: number) => `${LKRoutesEnum.pvz}/${pvzId}/edit-timetable`\nexport const getMovingPvzPageRoute = (pvzId: number, page?: number, pageSize?: number) => {\n const baseRoute = `${LKRoutesEnum.pvz}/${pvzId}/moving`\n return getRouteWithPagination(baseRoute, page, pageSize)\n}\nexport const getPvzSignboardRoute = (pvzId: number, page?: number, pageSize?: number) => {\n const baseRoute = `${LKRoutesEnum.pvz}/${pvzId}/signboard`\n return getRouteWithPagination(baseRoute, page, pageSize)\n}\n\nexport const getTicketItemRoute = (ticketId: number) => `${LKRoutesEnum.tickets}/${ticketId}`\n\nexport const getEmployeePageRoute = (pvzId: number, page?: number, pageSize?: number) => {\n const baseRoute = `${LKRoutesEnum.employees}/${pvzId}`\n return getRouteWithPagination(baseRoute, page, pageSize)\n}\n\nexport const getAddEmployeePageRoute = (pvzId: number) => `${LKRoutesEnum.addEmployee}/${pvzId}`\n","import { notification } from 'antd'\nimport i18next from 'i18next'\n\nimport { getSharedKey } from '../i18n/getKeys'\n\nconst BYTE_IN_MEGABYTE = 1024 * 1024\n\nexport const filesValidate = (\n files: FileList,\n fileValidationOptions?: {\n maxFileSizeMb?: number\n allowedFileFormats?: string[]\n },\n): boolean => {\n if (!fileValidationOptions) {\n return true\n }\n\n let flag = true\n\n if (files.length > 0) {\n for (const file of files) {\n const fileNameParts = file.name.split('.')\n const fileFormat = fileNameParts[fileNameParts.length - 1].toLowerCase()\n const fileSizeInMb = file.size / BYTE_IN_MEGABYTE\n\n if (fileValidationOptions.maxFileSizeMb && fileSizeInMb >= fileValidationOptions.maxFileSizeMb) {\n notification.error({\n message: i18next.t(getSharedKey('error')),\n description: i18next.t(getSharedKey('maxFileSizeErrorMessage'), {\n fileName: file.name,\n count: fileValidationOptions?.maxFileSizeMb,\n }),\n })\n\n flag = false\n }\n\n if (\n fileValidationOptions.allowedFileFormats &&\n !fileValidationOptions.allowedFileFormats.map((format) => format.toLowerCase()).includes(fileFormat)\n ) {\n notification.error({\n message: i18next.t(getSharedKey('error')),\n description: `${i18next.t(getSharedKey('allowedFileFormatsError'), {\n fileName: file.name,\n fileFormat: fileFormat,\n })} \\n${i18next.t(getSharedKey('allowedFileFormats'), {\n allowedFileFormats: fileValidationOptions.allowedFileFormats,\n })}`,\n })\n\n flag = false\n }\n }\n\n return flag\n }\n\n return true\n}\n","import { useRef, useState } from 'react'\nimport { DeleteOutlined, PlusCircleOutlined } from '@ant-design/icons'\n\nimport { Button, Flex, Paragraph, Text } from 'components/uiKit'\nimport { filesValidate } from 'utils/helpers/files/filesValidate'\nimport { ConvertedFile, handleFileInput } from 'utils/helpers/files/fileUpload'\n\nimport { Margin } from '../Margin/Margin'\nimport { Spinner } from '../Spinner/Spinner'\n\nimport s from './UploadFile.module.scss'\n\ntype UploadFileProps = {\n contentUrl: string\n onChange?: (file: ConvertedFile) => void\n onDelete?: () => void\n isFileUploading?: boolean\n label?: string\n description?: string[] | string\n hidePreview?: boolean\n isPublishVisible?: boolean\n disabled?: boolean\n fileValidationOptions?: {\n maxFileSizeMb?: number\n allowedFileFormats?: string[]\n }\n dataTestId?: string\n}\n\nexport const UploadFile = ({\n contentUrl,\n label,\n description,\n disabled = false,\n fileValidationOptions = { maxFileSizeMb: 200 },\n hidePreview = false,\n dataTestId,\n isFileUploading,\n onChange,\n onDelete,\n}: UploadFileProps) => {\n const [loading, setLoading] = useState(false)\n\n const fileInputRef = useRef(null)\n const isDisabled = disabled || isFileUploading || loading\n\n const changeFileHandler = async (event: React.ChangeEvent) => {\n if (!event.target.files?.length) {\n return\n }\n\n if (fileValidationOptions) {\n if (filesValidate(event.target.files, { maxFileSizeMb: 200, ...fileValidationOptions })) {\n loadFile(event)\n } else {\n if (fileInputRef.current) {\n fileInputRef.current.value = ''\n }\n }\n } else {\n loadFile(event)\n }\n }\n\n const loadFile = async (event: React.ChangeEvent) => {\n setLoading(true)\n const file = await handleFileInput(event)\n setLoading(false)\n\n onChange?.(file)\n }\n\n const deleteButtonHandler = () => {\n if (fileInputRef.current) {\n fileInputRef.current.value = ''\n }\n\n onDelete?.()\n }\n\n return (\n \n
\n {contentUrl && !isDisabled && (\n
\n\n changeFileHandler(event)}\n style={{ display: 'none' }}\n ref={fileInputRef}\n disabled={isDisabled}\n data-testid={dataTestId}\n />\n \n \n\n {(label || description) && (\n \n \n {label}\n \n\n {Array.isArray(description) ? (\n description.map((item) => {item})\n ) : (\n {description}\n )}\n \n )}\n
\n )\n}\n","import { ELockPhoto } from './types'\n\nexport const eLockPhotoTypeToTitle = {\n [ELockPhoto.doorFromInside]: 'Дверь изнутри',\n [ELockPhoto.doorFromTheEnd]: 'Дверь с торца',\n [ELockPhoto.controller]: 'Контроллер',\n}\n","import { notification } from 'antd/lib'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { OrderStatusAcceptedLocationState } from 'sections/LKSection/modules/OrderModule/pages/OrderItemPage/OrderItemStatusView/Statuses/Accepted/OrderStatusAccepted'\nimport { Href } from 'components/ui/Href/Href'\nimport { Button, Flex, Modal, Text } from 'components/uiKit'\nimport { getActivateOrderRoute, getOrderItemRoute } from 'utils/helpers/getRoutes'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { useResize } from 'utils/hooks/useResize'\n\ntype OpenELockModalProps = {\n orderId: number\n isModalVisible: boolean\n setIsModalVisible: React.Dispatch>\n}\n\nexport const OpenELockModal = observer(({ orderId, isModalVisible, setIsModalVisible }: OpenELockModalProps) => {\n const { eLockUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n const { isTablet } = useResize()\n\n const [isConfirmModalVisible, setIsConfirmModalVisible] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const isActive = uiStore.isActive\n\n const openButtonHandler = () => {\n setIsConfirmModalVisible(true)\n setIsModalVisible(false)\n }\n\n const okButtonHandler = async () => {\n if (uiStore.isOnline) {\n let result = false\n\n if (!isActive) {\n setLoading(true)\n result = await uiStore.activateELock()\n setLoading(false)\n }\n\n if (result || isActive) {\n navigate(getActivateOrderRoute(orderId))\n }\n } else {\n notification.warning({ message: t(getKey('Необходимо подключиться')) })\n }\n }\n\n const cancelButtonHandler = async () => {\n if (uiStore.isOnline) {\n navigate(getOrderItemRoute(orderId), {\n state: {\n fromActivateELockPage: true,\n } as OrderStatusAcceptedLocationState,\n })\n } else {\n notification.warning({ message: t(getKey('Необходимо подключиться')) })\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.eLockModule}.${key}`\n\n return (\n <>\n setIsModalVisible(false)}\n maskClosable={false}\n footer={null}\n >\n \n \n {t(getSharedKey('Внимание'))}!\n {t(getKey('На данном шаге необходимо'))}\n \n\n {t(getKey('После подключения к Wifi'))}\n\n {t(getKey('После успешного открытия'))}\n\n \n \n {t(getKey('Название точки доступа'))}{' '}\n {uiStore.eLockConnectInfo?.ssid}\n \n\n \n {t(getKey('Пароль к точке доступа'))}{' '}\n {uiStore.eLockConnectInfo?.psk}\n \n \n\n \n {uiStore.eLockConnectInfo && (\n \n \n \n )}\n \n \n \n\n setIsConfirmModalVisible(false)}\n footer={\n \n \n \n \n }\n >\n \n \n {t(getKey('Если щелчок произошел'))}{' '}\n {isActive ? `\"${t(getKey('Да, активировать ПВЗ'))}\"` : `\"${t(getKey('Да, активировать замок'))}\"`}\n \n {t(getKey('Если вы не услышали'))}\n \n \n \n )\n})\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Alert, Button, Divider, Flex, Input, Title } from 'components/uiKit'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { getActivateOrderRoute } from 'utils/helpers/getRoutes'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { PHOTO_VALIDATE } from 'shared/constants/values'\n\nimport { eLockPhotoTypeToTitle } from '../../data'\nimport { ElockInfoStatus, ELockPhoto } from '../../types'\nimport { OpenELockModal } from '../OpenELockModal/OpenELockModal'\n\ntype ActivateELockFormProps = {\n fromOrder?: boolean\n}\n\nexport const ActivateELockForm = observer(({ fromOrder = false }: ActivateELockFormProps) => {\n const { eLockUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const [form] = Form.useForm()\n const { t } = useTranslation()\n\n const [loading, setLoading] = useState(false)\n const [isModalVisible, setIsModalVisible] = useState(false)\n\n const isActive = uiStore.isActive\n const isRemark = uiStore.eLockReason.status === ElockInfoStatus.remark\n const isDisable = (uiStore.eLockName.trim().length === 0 || uiStore.invalidPhotos) && !isActive\n const isFormDisabled = (!isRemark && isActive) || fromOrder\n\n useEffect(() => {\n form.setFieldValue('lockName', uiStore.eLockName)\n }, [uiStore.eLockName])\n\n const changeFileHandler = (file: ConvertedFile, fileType: ELockPhoto) => {\n uiStore.setPhotoData(fileType)({ url: file.content, size: file.fileSize })\n }\n\n const deleteButtonHandler = (fileType: ELockPhoto) => {\n uiStore.setPhotoData(fileType)({ url: '', size: 0 })\n }\n\n const getELockConnectInfo = async () => {\n setLoading(true)\n\n const result = await uiStore.getELockConnectInfo()\n\n if (result) {\n setIsModalVisible(true)\n }\n\n setLoading(false)\n }\n\n const updateELock = async () => {\n setLoading(true)\n const result = await uiStore.updateELock()\n setLoading(false)\n\n if (result && uiStore.orderId) {\n navigate(getActivateOrderRoute(uiStore.orderId))\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.eLockModule}.${key}`\n\n return (\n \n {fromOrder && {t(getKey('Активация электронного замка'))}}\n\n {!fromOrder && isActive && }\n\n
\n \n label={t(getKey('Код контроллера'))}\n name={'lockName'}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n tooltip={t(getKey('Можно найти на корпусе'))}\n >\n {\n form.setFieldValue('lockName', e.target.value.toUpperCase().trim())\n uiStore.setELockName(e.target.value.toUpperCase().trim())\n }}\n maxLength={500}\n disabled={isActive}\n />\n \n\n \n changeFileHandler(file, ELockPhoto.doorFromInside)}\n onDelete={() => deleteButtonHandler(ELockPhoto.doorFromInside)}\n disabled={isFormDisabled}\n />\n \n\n \n\n \n changeFileHandler(file, ELockPhoto.doorFromTheEnd)}\n onDelete={() => deleteButtonHandler(ELockPhoto.doorFromTheEnd)}\n disabled={isFormDisabled}\n />\n \n\n \n\n \n changeFileHandler(file, ELockPhoto.controller)}\n onDelete={() => deleteButtonHandler(ELockPhoto.controller)}\n disabled={isFormDisabled}\n />\n \n\n \n\n {!fromOrder &&\n (isRemark ? (\n \n ) : (\n \n ))}\n \n\n {uiStore.orderId && (\n \n )}\n
\n )\n})\n","import { message } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { lazy, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Padding } from 'components/ui'\nimport { Button, Flex, Skeleton, Text, Title } from 'components/uiKit'\nimport { getOrderItemRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\n\nimport { OrderKeys } from '../OrderModule/data'\nimport { ActivateELockForm } from './components/ActivateELockForm/ActivateELockForm'\n\nconst ActivateELockPage = observer(() => {\n const { eLockUiStore: uiStore, viewOrderUiStore } = useStore()\n\n const { orderId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [messageApi, contextHolder] = message.useMessage()\n const [loading, setLoading] = useState(true)\n\n let timeout: NodeJS.Timeout\n\n useAsyncEffect(async () => {\n void checkNetwork()\n\n if (!viewOrderUiStore.selectedOrder && orderId) {\n await viewOrderUiStore.getOrderList()\n viewOrderUiStore.setSelectedOrder(viewOrderUiStore.getOrder(+orderId))\n }\n\n if (uiStore.order?.eLockInfo) {\n uiStore.initialize(uiStore.order.eLockInfo)\n }\n\n setLoading(false)\n }, [orderId])\n\n useEffect(() => {\n return () => {\n uiStore.reset()\n clearInterval(timeout)\n }\n }, [])\n\n const checkNetwork = () => {\n timeout = setInterval(async () => {\n const isOnline = await uiStore.checkNetwork()\n\n if (isOnline !== uiStore.isOnline) {\n isOnline === true\n ? messageApi.success({\n content: t(getKey('Приложение работает в онлайн')),\n duration: 6,\n })\n : messageApi.warning({\n content: t(getKey('Приложение работает в офлайн')),\n duration: 6,\n })\n\n uiStore.setIsOnline(isOnline)\n }\n }, 3000)\n }\n\n const getKey = (key: string) => `${OrderKeys.eLockModule}.${key}`\n\n return (\n \n \n \n \n }\n onClick={() => orderId && navigate(getOrderItemRoute(+orderId))}\n />\n\n {t(getKey('Активация электронного замка'))}\n \n\n \n {!uiStore.isActive && (\n \n {t(getKey('Чтобы активировать замок'))}\n\n {t(getKey('Подключите контроллер'))}\n {t(getKey('Введите имя замка'))}\n {t(getKey('Название и пароль Wifi'))}\n \n )}\n\n \n \n \n \n\n {contextHolder}\n \n )\n})\n\nexport default ActivateELockPage\n\nexport const ActivateELockPageAsync = lazy(() => import('./ActivateELockPage'))\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { HttpService } from 'services/HttpService'\nimport convertKeysToCamelCase from 'utils/helpers/convertKeysToCamelCase'\n\nimport { PersonalUserDataDTO } from './types/types'\n\nconst discoveryService = new HttpService(appConfig.DISCOVERY_URL)\n\nexport const personalDataApi = {\n async getUserData(user_id: number): Promise {\n const result = await discoveryService.get(`api/v2/pickpoint_user/${user_id}/info`)\n return convertKeysToCamelCase(result)\n },\n}\n","import classNames from 'classnames'\n\nimport { Flex } from 'components/uiKit'\n\nimport s from './ItemBox.module.scss'\n\ntype ItemBoxProps = {\n children: React.ReactNode\n onClick: () => void\n hasNotice?: boolean\n}\n\nexport const ItemBox = ({ children, onClick, hasNotice = false }: ItemBoxProps) => {\n const classes = classNames(s.ItemBox, {\n [s.hasNotice]: hasNotice,\n })\n\n return (\n \n {children}\n \n )\n}\n","import { notification } from 'antd'\nimport { useState } from 'react'\n\nimport { Spinner } from 'components/ui/Spinner/Spinner'\nimport { Flex, Text } from 'components/uiKit'\nimport { colors } from 'shared/constants/values'\n\ntype PropsType = {\n id: number\n children: React.ReactNode\n label?: string\n showErrorMessage?: boolean\n setPersonalData: React.Dispatch>\n getPersonalData: (id: number, secondId?: string) => Promise\n}\n\nexport const PersonalData = ({\n id,\n label = 'Показать данные',\n children,\n showErrorMessage = true,\n setPersonalData,\n getPersonalData,\n}: PropsType) => {\n const [isVisiblePersonalData, setVisiblePersonalData] = useState(false)\n const [isVisibleButton, setVisibleButton] = useState(true)\n const [loading, setLoading] = useState(false)\n\n const personalDataButtonHandler = async (\n setVisiblePersonalData: (value: boolean) => void,\n setVisibleButton: (value: boolean) => void,\n ) => {\n try {\n setLoading(true)\n\n const personalData = await getPersonalData(id)\n\n if (personalData) {\n setPersonalData(personalData)\n setVisiblePersonalData(true)\n setVisibleButton(false)\n\n setTimeout(\n () => {\n setVisiblePersonalData(false)\n setVisibleButton(true)\n },\n //данные скроются через 15 минут\n 1000 * 60 * 15,\n )\n }\n\n return personalData\n } catch (error) {\n if (showErrorMessage) {\n notification.error({\n message: 'Ошибка получения данных',\n description: (error as Error).message,\n })\n }\n } finally {\n setLoading(false)\n }\n }\n\n return (\n personalDataButtonHandler(setVisiblePersonalData, setVisibleButton)}>\n {isVisibleButton && (\n \n {loading ? : {label}}\n \n )}\n\n {isVisiblePersonalData && children}\n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nimport { Text } from 'components/uiKit'\n\nimport { PvzKeys, ratingRanges } from '../../../modules/PvzModule/data'\n\ntype RatingBadgeProps = {\n rate: number\n}\n\nconst getKey = (key: string) => `${PvzKeys.pvzPage}.${key}`\n\nexport const RatingBadge = ({ rate }: RatingBadgeProps) => {\n const { t } = useTranslation()\n\n const ratingColor = (rating: number): string => {\n const range = ratingRanges.find(({ min, max }) => rating >= min && rating <= max)\n return range ? range.color : '#000'\n }\n\n return (\n <>\n {Boolean(rate) && (\n \n {t(getKey('Рейтинг'))}: {rate}\n \n )}\n \n )\n}\n","import { Country } from 'shared/types/types'\n\nconst regexpMap = {\n [Country.RU]: /^(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})$/,\n [Country.KZ]: /^(\\d{1})(\\d{3})(\\d{3})(\\d{2})(\\d{2})$/,\n [Country.BY]: /^(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})$/,\n [Country.UZ]: /^(\\d{3})(\\d{2})(\\d{3})(\\d{4})$/,\n [Country.GE]: /^(\\d{3})(\\d{2})(\\d{3})(\\d{4})$/,\n [Country.TJ]: /^(\\d{3})(\\d{2})(\\d{3})(\\d{4})$/,\n [Country.AM]: /^(\\d{3})(\\d{2})(\\d{2})(\\d{4})$/,\n [Country.KG]: /^(\\d{3})(\\d{3})(\\d{6})$/,\n [Country.TM]: /^(\\d{3})(\\d{2})(\\d{2})(\\d{2})(\\d{2})$/,\n}\n\nexport function phonePipe(str: number | string, country: Country = Country.RU, maskPhone = false) {\n const match = str.toString().match(regexpMap[country])\n\n if (!match) {\n return `${str}`\n }\n\n const pipe = maskPhone ? (value: string) => value?.replace(/[\\d+]/g, '*') : (value: string) => value\n\n const masksMap = {\n [Country.RU]: `+${match[1]} (${pipe(match[2])}) ${pipe(match[3])}-${match[4]}-${match[5]}`,\n [Country.KZ]: `+${match[1]} (${pipe(match[2])}) ${pipe(match[3])}-${match[4]}-${match[5]}`,\n [Country.BY]: `+${match[1]} (${pipe(match[2])}) ${pipe(match[3])}-${match[4]}-${match[5]}`,\n [Country.UZ]: `+${match[1]} ${pipe(match[2])} ${pipe(match[3])} ${match[4]}`,\n [Country.GE]: `+${match[1]} ${pipe(match[2])} ${pipe(match[3])} ${match[4]}`,\n [Country.TJ]: `+${match[1]} ${pipe(match[2])} ${pipe(match[3])} ${match[4]}`,\n [Country.AM]: `+${match[1]} ${pipe(match[2])} ${pipe(match[3])} ${match[4]}`,\n [Country.KG]: `+${match[1]} ${pipe(match[2])} ${match[3]}`,\n [Country.TM]: `+${match[1]} (${pipe(match[2])})${pipe(match[3])} ${match[4]} ${pipe(match[5])}`,\n }\n\n return masksMap[country]\n}\n\nexport function snilsPipe(str: number | string) {\n const match = str.toString().match(/^(\\d{3})(\\d{3})(\\d{3})(\\d{2})$/)\n\n if (!match) {\n return `${str}`\n }\n\n return `${match[1]}-${match[2]}-${match[3]} ${match[4]}`\n}\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\n\nimport { personalDataApi } from 'sections/LKSection/shared/api'\nimport { ItemBox } from 'sections/LKSection/shared/components/ItemBox/ItemBox'\nimport { PersonalData } from 'sections/LKSection/shared/components/PersonalData/PersonalData'\nimport { RatingBadge } from 'sections/LKSection/shared/components/RatingBadge/RatingBadge'\nimport { Status, StatusUIType } from 'sections/LKSection/shared/components/Status/Status'\nimport { PersonalUserDataDTO } from 'sections/LKSection/shared/types/types'\nimport { Flex, Text } from 'components/uiKit'\nimport { useResize } from 'utils/hooks/useResize'\nimport { phonePipe } from 'utils/pipes'\n\nimport { Employee } from '../../stores/entity/Employee'\n\ntype EmployeeItemHeaderProps = {\n employee: Employee\n}\n\nexport const EmployeeItemHeader = observer(({ employee }: EmployeeItemHeaderProps) => {\n const { isTablet } = useResize()\n const [personalData, setPersonalData] = useState(null)\n\n return (\n {}}>\n \n \n \n \n \n\n \n \n id={employee.id ?? 0}\n getPersonalData={personalDataApi.getUserData}\n setPersonalData={setPersonalData}\n >\n \n \n {`${personalData?.firstName} ${personalData?.lastName}`}\n \n\n {phonePipe(String(personalData?.phone), employee.country)}\n \n \n\n {!personalData && {phonePipe(String(employee.phone), employee.country, true)}}\n \n \n\n \n \n ID: {employee.id}\n \n\n \n \n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy, useState } from 'react'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { UserOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Padding } from 'components/ui'\nimport { Button, Flex, Select, Skeleton, Title } from 'components/uiKit'\nimport { getAddEmployeePageRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { useResize } from 'utils/hooks/useResize'\nimport { SEARCH_PARAMS } from 'shared/constants/values'\n\nimport { EmployeeItemHeader } from './components/EmployeeItemHeader/EmployeeItemHeader'\nimport { activeEmployeeOptions, EmployeeActiveStatus } from './data'\n\nimport s from './EmployeePage.module.scss'\n\nconst EmployeePage = observer(() => {\n const { viewEmployeeUiStore: uiStore, viewPvzUiStore } = useStore()\n\n const { pvzId } = useParams()\n const { isMobile, isTablet } = useResize()\n const navigate = useNavigate()\n const location = useLocation()\n\n const [loading, setLoading] = useState(false)\n\n const totalCount = uiStore.employeeList.length\n const showAdditional = totalCount > 20\n const generalLoading = loading || uiStore.employeeStore.loading\n const searchParams = new URLSearchParams(location.search)\n const pageFromUrl = Number(searchParams.get(SEARCH_PARAMS.page)) || 1\n const pageSizeFromUrl = Number(searchParams.get(SEARCH_PARAMS.pageSize)) || 20\n\n useAsyncEffect(async () => {\n setLoading(true)\n viewPvzUiStore.setPage(pageFromUrl)\n viewPvzUiStore.setPageSize(pageSizeFromUrl)\n\n if (viewPvzUiStore.pvzList.length === 0) {\n await viewPvzUiStore.getPvzList()\n }\n\n if (pvzId) {\n await viewPvzUiStore.switchPvz(+pvzId)\n }\n\n await uiStore.getEmployeeList()\n\n setLoading(false)\n }, [])\n\n const addEmployeeHandler = () => {\n uiStore.setSelectedStep(1)\n\n if (pvzId) {\n navigate(getAddEmployeePageRoute(+pvzId))\n }\n }\n\n return (\n \n \n \n \n {'Сотрудники'}\n\n {!showAdditional && }\n \n\n {showAdditional && !loading && (\n \n \n uiStore.setActiveStatus(value)}\n options={activeEmployeeOptions}\n style={{ width: '100%' }}\n />\n \n\n \n \n )}\n\n \n {uiStore.employeeList.length > 0 ? (\n \n {uiStore.employeeFilteredList.map((employee) => (\n \n ))}\n \n ) : (\n /* mytodo: Заменить на компонент */\n \n \n\n \n На данном ПВЗ нет сотрудников\n \n \n )}\n \n \n \n \n )\n})\n\nexport default EmployeePage\n\nexport const EmployeePageAsync = lazy(() => import('./EmployeePage'))\n","import s from './Container.module.scss'\n\ntype PropsType = {\n children: React.ReactNode\n disableMaxWidth?: boolean\n}\n\nexport const Container = ({ children, disableMaxWidth = false }: PropsType) => {\n return (\n
\n {children}\n
\n )\n}\n","export const SNILS_LENGTH = 11\n\nexport const getSnilsError = (snils: string) => {\n if (!snils.length) {\n return 'Не заполнено поле СНИЛС'\n } else if (/[^0-9]/.test(snils)) {\n return 'СНИЛС может состоять только из цифр'\n } else if (snils.trim().length !== 11) {\n return `СНИЛС может состоять только из ${SNILS_LENGTH} цифр`\n } else if (snils.split('').every((item) => Number(item) === 0)) {\n return 'Неверное значение СНИЛС. Убедитесь, что указанное значение совпадает со значением в документе'\n }\n\n let sum = 0\n\n for (let i = 0; i < 9; i++) {\n sum += parseInt(snils[i]) * (9 - i)\n }\n let checkDigit = 0\n if (sum < 100) {\n checkDigit = sum\n } else if (sum > 101) {\n checkDigit = parseInt(String(sum % 101))\n if (checkDigit === 100) {\n checkDigit = 0\n }\n }\n if (checkDigit !== parseInt(snils.slice(-2))) {\n return 'Неверное значение СНИЛС. Убедитесь, что указанное значение совпадает со значением в документе'\n }\n}\n","import { notification } from 'antd'\nimport i18next from 'i18next'\n\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nexport class ValidateFormService {\n // TODO: убрать со всех валидаций второй параметр text\n hasNotErrors(errors: string[], text?: string) {\n if (errors.length > 0) {\n const singleError = errors.length === 1\n const msgs = errors.map((error, index) =>

{(singleError ? '' : `${index + 1}. `) + `${error}`}

)\n\n notification.error({ message: i18next.t(getSharedKey('validationErrors')), description: msgs, duration: 10 })\n\n return false\n }\n\n return true\n }\n}\n","import { ValidateFormService } from 'services/ValidateFormService'\nimport { MIN_NAME_LENGTH } from 'sections/LKSection/modules/EmployeeModule/data'\nimport { ViewEmployeeUiStore } from 'sections/LKSection/modules/EmployeeModule/stores/ViewEmployeeUiStore'\nimport { getSnilsError } from 'sections/LKSection/modules/UserModule/utils/getSnilsError'\n\nexport class ValidateAddEmployee extends ValidateFormService {\n validate = (uiStore: ViewEmployeeUiStore) => {\n const errors: string[] = []\n const snilsError = getSnilsError(uiStore.snils)\n\n if (!uiStore.lastName) {\n errors.push('Поле \"Фамилия\" обязательно')\n } else {\n if (uiStore.lastName.trim().length < MIN_NAME_LENGTH) {\n errors.push(`Поле \"Фамилия\" должно содержать не менее ${MIN_NAME_LENGTH} символов`)\n }\n }\n\n if (!uiStore.firstName) {\n errors.push('Поле \"Имя\" обязательно')\n } else {\n if (uiStore.firstName.trim().length < MIN_NAME_LENGTH) {\n errors.push(`Поле \"Имя\" должно содержать не менее ${MIN_NAME_LENGTH} символов`)\n }\n }\n\n if (uiStore.snils && snilsError) {\n errors.push(snilsError)\n }\n\n if (!uiStore.phoneModel.fullPhone) {\n errors.push('Поле \"Телефон\" обязательно')\n } else {\n if (!uiStore.phoneModel.isValidPhone) {\n errors.push('Некорректный номер телефона')\n }\n }\n\n return this.hasNotErrors(errors)\n }\n}\n\nexport const validateAddEmployee = new ValidateAddEmployee()\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { MIN_NAME_LENGTH } from 'sections/LKSection/modules/EmployeeModule/data'\nimport { countries } from 'sections/LKSection/modules/UserModule/data'\nimport { SNILS_LENGTH } from 'sections/LKSection/modules/UserModule/utils/getSnilsError'\nimport { CountryPhoneInput } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { Button, Flex, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { REPLACE_NOT_NUMBERS_REGEXP } from 'shared/constants/regExp'\n\nimport { validateAddEmployee } from './validate'\n\ntype AddEmployeeFormType = {\n lastName: string\n firstName: string\n snils: string\n}\n\nexport const PersonalEmployeeDataStep = observer(() => {\n const { viewEmployeeUiStore: uiStore } = useStore()\n\n const [form] = Form.useForm()\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n form.setFieldsValue({\n lastName: uiStore.lastName,\n firstName: uiStore.firstName,\n snils: uiStore.snils,\n })\n }, [])\n\n const addEmployeeHandler = async () => {\n if (validateAddEmployee.validate(uiStore)) {\n setLoading(true)\n const result = await uiStore.addEmployee()\n\n if (result) {\n uiStore.setSelectedStep(uiStore.selectedStep + 1)\n }\n\n setLoading(false)\n }\n }\n\n return (\n \n
\n \n label={'Фамилия'}\n name=\"lastName\"\n rules={[\n { min: MIN_NAME_LENGTH, message: t(getSharedKey('minLength'), { count: MIN_NAME_LENGTH }) },\n { required: true, message: t(getSharedKey('required')) },\n ]}\n >\n uiStore.setLastName(e.target.value)}\n maxLength={100}\n placeholder={'Введите фамилию'}\n />\n \n\n \n label={'Имя'}\n name=\"firstName\"\n rules={[\n { min: MIN_NAME_LENGTH, message: t(getSharedKey('minLength'), { count: MIN_NAME_LENGTH }) },\n { required: true, message: t(getSharedKey('required')) },\n ]}\n >\n uiStore.setFirstName(e.target.value)}\n maxLength={100}\n placeholder={'Введите имя'}\n />\n \n\n label={'СНИЛС (не обязательно)'} name={'snils'}>\n {\n const onlyNumbers = e.target.value.replace(REPLACE_NOT_NUMBERS_REGEXP, '')\n\n uiStore.setSnils(onlyNumbers)\n form.setFieldValue('snils', onlyNumbers)\n }}\n maxLength={SNILS_LENGTH}\n placeholder={'Введите СНИЛС'}\n />\n \n\n \n uiStore.phoneModel.setSelectedCountry(value ?? countries[0].value)}\n />\n \n \n\n \n \n \n
\n )\n})\n","import { useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { Margin } from 'components/ui/Margin/Margin'\nimport { Flex, InputOtp, Text } from 'components/uiKit'\n\nimport { UserModuleKeys } from '../../../modules/UserModule/types'\n\ntype CodeInputProps = {\n onChange: ((value: string) => void) | undefined\n length: number\n value: string\n disabled?: boolean\n}\n\nexport const CodeInput = ({ onChange, length, value, disabled }: CodeInputProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.codeInput}.${key}`\n\n useEffect(() => {\n const elements = document.querySelectorAll('input')\n elements?.forEach((elem) => elem.setAttribute('inputmode', 'tel'))\n }, [])\n return (\n \n {t(getKey('Код подтверждения'))}\n \n \n \n \n )\n}\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { CodeInput } from 'sections/LKSection/shared/components/CodeInput/CodeInput'\nimport { Button, Flex, Text, Title } from 'components/uiKit'\nimport { getEmployeePageRoute } from 'utils/helpers/getRoutes'\n\nexport const VerificationEmployeeStep = observer(() => {\n const { viewEmployeeUiStore: uiStore } = useStore()\n\n const { pvzId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n uiStore.setCode('')\n }, [])\n\n const handleSetCode = async (code: string) => {\n uiStore.setCode(code)\n\n if (code.length !== 4) {\n return\n }\n\n setLoading(true)\n const result = await uiStore.verifyEmployee()\n setLoading(false)\n\n if (result) {\n uiStore.reset()\n\n if (pvzId) {\n navigate(getEmployeePageRoute(+pvzId))\n }\n\n await uiStore.getEmployeeList()\n }\n }\n\n return (\n \n \n
\n \n handleSetCode(value)} />\n \n
\n\n \n \n Куда придет код\n \n\n В приложение WB или WB Point на устройство \n \n {uiStore.lastName} {uiStore.firstName}\n \n \n Чтобы код пришел должны быть включены\n PUSH-уведомления\n \n \n
\n\n \n \n \n
\n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy, useEffect } from 'react'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Container } from 'components/ui/Container/Container'\nimport { Button, Flex, Steps, Title } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\n\nimport { PersonalEmployeeDataStep } from './Steps/PersonalEmployeeDataStep/PersonalEmployeeDataStep'\nimport { VerificationEmployeeStep } from './Steps/VerificationEmployeeStep/VerificationEmployeeStep'\n\nconst stepTitles = [\n {\n title: 'Данные сотрудника',\n },\n {\n title: 'Верификация',\n },\n]\n\nconst steps: Map = new Map([\n [1, ],\n [2, ],\n])\n\nconst AddEmployeePage = observer(() => {\n const { viewEmployeeUiStore: uiStore, viewPvzUiStore } = useStore()\n\n const { pvzId } = useParams()\n const navigate = useNavigate()\n\n const items = stepTitles.map((item) => ({ key: item.title, title: item.title }))\n\n useAsyncEffect(async () => {\n if (viewPvzUiStore.pvzList.length === 0) {\n await viewPvzUiStore.getPvzList()\n }\n\n if (pvzId) {\n await viewPvzUiStore.switchPvz(+pvzId)\n }\n }, [])\n\n useEffect(() => {\n document.getElementById('routeScrollId')?.scrollTo(0, 0)\n }, [uiStore.selectedStep])\n\n return (\n \n \n \n \n }\n \n\n \n {showAdditional && (\n \n \n \n \n\n \n \n )}\n \n\n \n {uiStore.orderList.length > 0 ? (\n \n {showAdditional && (\n \n \n \n )}\n\n {uiStore.orderList.map((order) => (\n \n ))}\n \n ) : (\n \n \n\n \n {t(getKey('Нет заявок'))}\n \n \n )}\n \n \n \n )\n})\n\nexport default OrderPage\n\nexport const OrderPageAsync = lazy(() => import('./OrderPage'))\n","import classNames from 'classnames'\n\nimport { colors } from 'shared/constants/values'\n\nimport s from './Info.module.scss'\n\nconst colorTypes = {\n corp: colors.corp,\n success: colors.green,\n info: colors.info,\n warn: colors.orange,\n error: colors.red,\n}\n\ntype InfoProps = {\n children: React.ReactNode\n showBorder?: boolean\n type?: 'info' | 'warn' | 'corp' | 'error' | 'success'\n disableMargin?: boolean\n}\n\nexport const Info = ({ children, showBorder = false, type = 'info', disableMargin = false }: InfoProps) => {\n const classes = classNames(s.info, {\n [s.border]: showBorder,\n })\n\n return (\n
\n
\n
{children}
\n
\n )\n}\n","import { appConfig } from 'config/environment/appConfig'\n\nimport { PickPointFileType } from 'sections/LKSection/shared/PickPointSharedModule/types'\n\nexport const urlForSecretImages = `${appConfig.API_URL}api/v2/manage/orders/images`\n\ntype PickPointFileItem = {\n fileType: PickPointFileType\n label: string\n description: string\n dataTestId: string\n}\n\nexport const createOrderPhotoItems: PickPointFileItem[] = [\n {\n fileType: PickPointFileType.generalPhoto,\n label: 'Фасад здания днем',\n description: 'Дневное фото фасада здания',\n dataTestId: 'generalPhoto',\n },\n {\n fileType: PickPointFileType.nightlyGeneralPhoto,\n label: 'Фасад здания ночью',\n description: 'Ночное фото фасада здания',\n dataTestId: 'nightlyGeneralPhoto',\n },\n {\n fileType: PickPointFileType.clientAreaPhoto,\n label: 'Помещение внутри',\n description: 'Фото помещения ПВЗ',\n dataTestId: 'clientAreaPhoto',\n },\n {\n fileType: PickPointFileType.fittingRoomsPhoto,\n label: 'Входная группа',\n description: 'Фото входа в сам ПВЗ',\n dataTestId: 'fittingRoomsPhoto',\n },\n]\n\nexport const signboardPhotoItems: PickPointFileItem[] = [\n {\n fileType: PickPointFileType.generalPhoto,\n label: 'Фото фасада с вывеской днём',\n description: 'Дневное фото фасада с вывеской',\n dataTestId: 'generalPhoto',\n },\n {\n fileType: PickPointFileType.nightlyGeneralPhoto,\n label: 'Фото фасада с вывеской ночью',\n description: 'Ночное фото фасада с вывеской',\n dataTestId: 'nightlyGeneralPhoto',\n },\n {\n fileType: PickPointFileType.bracketPhoto,\n label: 'Фото панель-кронштейна',\n description: 'Фото фасада здания кронштейн',\n dataTestId: 'bracketPhoto',\n },\n]\n\nexport const pickPointPhotoItems: PickPointFileItem[] = [\n {\n fileType: PickPointFileType.generalPhoto,\n label: 'Фото фасада с вывеской днём',\n description: 'Дневное фото фасада с вывеской',\n dataTestId: 'generalPhoto',\n },\n {\n fileType: PickPointFileType.nightlyGeneralPhoto,\n label: 'Фото фасада с вывеской ночью',\n description: 'Ночное фото фасада с вывеской',\n dataTestId: 'nightlyGeneralPhoto',\n },\n {\n fileType: PickPointFileType.bracketPhoto,\n label: 'Фото панель-кронштейна',\n description: 'Фото фасада здания кронштейн',\n dataTestId: 'bracketPhoto',\n },\n {\n fileType: PickPointFileType.clientAreaPhoto,\n label: 'Клиентская зона',\n description: 'Фото помещения ПВЗ',\n dataTestId: 'clientAreaPhoto',\n },\n {\n fileType: PickPointFileType.fittingRoomsPhoto,\n label: 'Примерочные',\n description: 'Фото входа в сам ПВЗ',\n dataTestId: 'fittingRoomsPhoto',\n },\n {\n fileType: PickPointFileType.warehouseAreaPhoto,\n label: 'Складская зона',\n description: 'Фото помещения складской зоны',\n dataTestId: 'warehouseAreaPhoto',\n },\n {\n fileType: PickPointFileType.surveillancePhoto,\n label: 'Видеонаблюдение',\n description: 'Фото установленной камеры',\n dataTestId: 'surveillancePhoto',\n },\n]\n\nexport const pickPointVideoItem = {\n label: 'Видеопрогулка',\n description: 'Видео от первого лица',\n dataTestId: 'orderVideo',\n}\n\nexport const baseLeaseDocumentData = {\n label: 'Договор аренды',\n description: 'Договор аренды или документ',\n dataTestId: 'leaseDocument',\n}\n\nexport const baseBtiDocumentData = {\n label: 'План БТИ',\n description: 'План БТИ должен быть с отметками',\n dataTestId: 'btiDocument',\n}\n\nexport const pickPointDocumentForEditAreaItems = [\n {\n fileType: PickPointFileType.leaseDocumentEditArea,\n ...baseLeaseDocumentData,\n },\n {\n fileType: PickPointFileType.btiDocumentEditArea,\n ...baseBtiDocumentData,\n },\n]\n","import { notification } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { FileEntityType } from 'services/FileService'\nimport { ordersApi } from 'sections/LKSection/modules/OrderModule/api'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { Pvz } from 'sections/LKSection/modules/PvzModule/stores/entity/Pvz'\nimport { PickPointFileItemType, PickPointFileType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { Info } from 'components/ui/Info/Info'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Checkbox, Divider, Flex, Paragraph, Text } from 'components/uiKit'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { PHOTO_VALIDATE, VIDEO_VALIDATE } from 'shared/constants/values'\n\nimport { PickPointFilesViewModel } from '../../../models/PickPointFilesViewModel'\nimport { urlForSecretImages } from '../data'\n\ntype PickPointFileItemProps = {\n uiStore: PickPointFilesViewModel\n fileType: PickPointFileType\n label: string\n description: string[] | string\n entity?: Order | Pvz | null\n isCreation?: boolean\n disabled?: boolean\n dataTestId?: string\n initialized?: boolean\n}\n\nexport const PickPointFileItem = observer(\n ({\n uiStore,\n fileType,\n label,\n description,\n entity,\n dataTestId,\n isCreation = false,\n disabled = false,\n initialized = false,\n }: PickPointFileItemProps) => {\n const { t } = useTranslation()\n\n const [loading, setLoading] = useState(false)\n const [localContentData, setLocalContentData] = useState(uiStore[fileType]?.url)\n const [documentUrl, setDocumentUrl] = useState('')\n\n const isDocument =\n fileType === PickPointFileType.leaseDocument ||\n fileType === PickPointFileType.btiDocument ||\n fileType === PickPointFileType.leaseDocumentEditArea ||\n fileType === PickPointFileType.btiDocumentEditArea\n const isPhoto = fileType !== PickPointFileType.video && !isDocument\n const isVideo = fileType === PickPointFileType.video\n\n const content = isDocument && !isCreation ? documentUrl : localContentData\n const isOrder = entity instanceof Order\n const entityType = isOrder ? FileEntityType.pickPointOrder : FileEntityType.pickPoint\n\n useEffect(() => {\n const getDocumentsPhoto = async (url: string) => {\n try {\n const file = await ordersApi.getSecretImages(url)\n setDocumentUrl(file)\n } catch (error) {\n notification.error({ message: `${t(getKey('Ошибка отображения документов'))}. ${(error as Error).message}` })\n }\n }\n\n if (initialized && !documentUrl && uiStore[fileType].url.startsWith(urlForSecretImages)) {\n void getDocumentsPhoto(uiStore[fileType].url)\n }\n }, [initialized])\n\n const changeFileHandler = async (file: ConvertedFile) => {\n try {\n setLoading(true)\n\n setLocalContentData(file.content)\n\n if (isVideo) {\n const videoItem = { name: file.name, url: file.content, size: file.fileSize }\n\n if (entity?.id) {\n const res = await uiStore.uploadVideo(entity.id, [videoItem], entityType)\n uiStore.setVideoFile(res[0])\n } else {\n uiStore.setVideoFile(videoItem)\n }\n } else {\n const photoItem: PickPointFileItemType = {\n url: file.content,\n size: file.fileSize,\n type: fileType,\n isPublic: uiStore[fileType].isPublic,\n }\n\n if (entity?.id) {\n const res = await uiStore.uploadPhotos(entity.id, [photoItem], entityType, isDocument)\n uiStore.setPhotoData(fileType)(res[0])\n } else {\n uiStore.setPhotoData(fileType)({ url: file.content, size: file.fileSize })\n }\n\n if (isDocument) {\n setDocumentUrl(file.content)\n }\n }\n } finally {\n setLoading(false)\n }\n }\n\n const deleteButtonHandler = () => {\n setLocalContentData('')\n\n if (fileType === PickPointFileType.video) {\n uiStore.setVideoFile({ name: '', url: '', size: 0 })\n } else {\n uiStore.setPhotoData(fileType)({ url: '', size: 0 })\n\n if (isDocument) {\n setDocumentUrl('')\n }\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.filesStep}.${key}`\n\n return (\n \n \n \n\n \n \n {t(getKey(label))}\n \n\n {Array.isArray(description) ? (\n description.map((item) => {t(getKey(item))})\n ) : (\n {t(getKey(description))}\n )}\n\n {isPhoto && (\n uiStore.setPhotoIsPublic(fileType)(e.target.checked)}\n disabled={disabled}\n data-testid={`${dataTestId}Checkbox`}\n >\n {t(getKey('Опубликовать'))}\n \n )}\n \n \n\n {isVideo && uiStore[fileType].url && {t(getKey('Видео загружено'))}}\n\n {fileType !== PickPointFileType.video && }\n \n )\n },\n)\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { Pvz } from 'sections/LKSection/modules/PvzModule/stores/entity/Pvz'\nimport { PickPointFileType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Info } from 'components/ui/Info/Info'\nimport { Divider, Flex, FormItem, Input, Paragraph, Text, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport { PickPointFilesViewModel } from '../../models/PickPointFilesViewModel'\nimport { PickPointFileItem } from './PickPointFileItem/PickPointFileItem'\nimport {\n baseBtiDocumentData,\n baseLeaseDocumentData,\n createOrderPhotoItems,\n pickPointPhotoItems,\n pickPointVideoItem,\n} from './data'\n\ntype PickPointFilesFormProps = {\n uiStore: PickPointFilesViewModel\n entity?: Order | Pvz | null\n initialized?: boolean\n isCreation?: boolean\n isActivation?: boolean\n disabled?: boolean\n}\n\nexport const PickPointFilesForm = observer(\n ({\n uiStore,\n entity,\n initialized = false,\n isCreation = false,\n isActivation = false,\n disabled = false,\n }: PickPointFilesFormProps) => {\n const { t } = useTranslation()\n const [form] = Form.useForm()\n\n const photoItems = isActivation ? pickPointPhotoItems : createOrderPhotoItems\n\n useEffect(() => {\n form.setFieldValue('url', uiStore.videoURL)\n }, [uiStore.videoURL])\n\n const getKey = (key: string) => `${OrderKeys.filesStep}.${key}`\n\n return (\n
\n {(isCreation || isActivation) && !disabled && (\n <>\n \n {t(getKey('В процессе заполнения'))}\n {t(getKey('Обратите внимание'))}\n \n\n {t(getKey('Фотографии нужны'))}\n {t(getKey('Подойдите к этому этапу'))}\n \n )}\n\n \n {t(getKey('Фотографии ПВЗ'))}\n \n\n {photoItems.map((photoItem) => (\n \n \n \n ))}\n\n \n {t(getKey('Видеопрогулка'))}\n \n\n {isCreation && (\n <>\n {t(getKey('Видеообзор должен начинаться'))}\n {t(getKey('На видео должна быть'))}\n {t(getKey('На видеообзоре должно быть'))}\n {t(getKey('Видеообзор должен быть'))}\n {t(getKey('Напоминаем необходимо'))}\n {t(getKey('Если возникли проблемы с созданием'))}\n \n )}\n\n {isActivation && (\n <>\n {t(getKey('Для подтверждения брендирования'))}\n \n \n {t(getKey('адресную табличку'))}\n {t(getKey('панорамный вид'))}\n {t(getKey('фасад с вывеской'))}\n {t(getKey('клиентскую и складскую зоны'))}\n \n \n {t(getKey('Начните с улицы'))}\n {t(getKey('Продолжительность видео'))}\n {t(getKey('Если возникли проблемы с созданием'))}\n \n )}\n\n {!disabled ? (\n <>\n \n \n \n\n \n name=\"url\"\n label={t(getKey('videoURLLabel'))}\n tooltip={t(getKey('videoURLTooltip'))}\n rules={[{ pattern: WEB_LINK_REGEXP, message: t(getSharedKey('URLIncorrectMessage')) }]}\n >\n uiStore.setVideoURL(e.target.value)}\n placeholder=\"https://\"\n data-testid=\"orderVideoURL\"\n />\n \n \n ) : (\n \n {t(getKey('Ссылка на видеопрогулку'))}\n \n )}\n\n \n\n \n {t(getKey('Фото или сканы документов'))}\n \n\n {(isCreation || isActivation) && (\n <>\n {t(getKey('Приложите фото или отсканированные'))}\n {t(getKey('Поддерживаемые форматы'))}\n \n )}\n\n {isActivation && (\n \n \n \n )}\n\n \n \n \n \n )\n },\n)\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { QuestionCircleOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { Margin } from 'components/ui'\nimport { Flex, Input, Paragraph, Popover, Text, Title } from 'components/uiKit'\nimport { useResize } from 'utils/hooks/useResize'\nimport { widths } from 'shared/constants/values'\n\ntype FormType = {\n ownerGln: string\n glnPvz: string\n molName: string\n}\n\nexport const OrderBYCompanyForm = observer(() => {\n const { activateOrderUiStore: uiStore } = useStore()\n const [form] = Form.useForm()\n const { isMobile } = useResize()\n\n const email = 'info@edn.by'\n\n useEffect(() => {\n if (uiStore.initialized) {\n form.setFieldsValue({\n molName: uiStore.molName,\n glnPvz: uiStore.glnPvz,\n ownerGln: uiStore.ownerGln,\n })\n }\n }, [uiStore.initialized])\n\n return (\n
\n \n \n Формирование электронной ТТН\n\n \n \n В связи с обновлением законодательства всем ПВЗ в Республике Беларусь необходимо подключиться к\n системе ЭДиН — системе электронного документооборота\n \n \n Для подключения к ЭДиН нужно получить GLN — единый международный идентификационный номер\n \n \n Чтобы получить GLN, консультацию и индивидуальный тариф, отправьте письмо на почту{' '}\n \n {email}\n \n \n В нём укажите следующие данные:\n \n
    \n
  • \n тема письма: «Партнёр WB ПВЗ, ФИО, УНП»\n
  • \n
  • \n текст письма: «Прошу предоставить консультацию по подключению к ЭДиН»\n
  • \n
\n
\n Также обязательно укажите номер телефона для связи\n
\n }\n >\n \n \n \n
\n\n \n label={'GLN юридического лица'}\n name={'ownerGln'}\n rules={[{ required: true, message: 'Поле обязательно' }]}\n >\n uiStore.setOwnerGln(e.target.value)}\n placeholder=\"Введите GLN вашего юридического лица\"\n />\n \n\n label={'GLN ПВЗ'} name={'glnPvz'} rules={[{ required: true, message: 'Поле обязательно' }]}>\n uiStore.setGlnPvz(e.target.value)}\n placeholder=\"Введите GLN вашего будущего ПВЗ\"\n />\n \n\n label={'МОЛ'} name={'molName'} rules={[{ required: true, message: 'Поле обязательно' }]}>\n uiStore.setMolName(e.target.value)}\n placeholder=\"Введите ФИО материально ответственного лица\"\n />\n \n \n )\n})\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\n\nimport { MIN_PUBLIC_PHOTO } from '../../data'\nimport { PickPointFilesViewModel } from '../../models/PickPointFilesViewModel'\n\nexport class ValidatePickPointFiles extends ValidateFormService {\n validate = (\n filesModel: PickPointFilesViewModel,\n returnType: 'boolean' | 'array' = 'boolean',\n action: 'create' | 'activate' = 'create',\n ) => {\n const errors: string[] = []\n\n const getKey = (key: string) => `${OrderKeys.filesStep}.validate.${key}`\n\n if (filesModel.invalidPhotos(action)) {\n errors.push(i18next.t(getKey('invalidPhotos')))\n }\n if (filesModel.invalidPublicPhotos) {\n errors.push(i18next.t(getKey('invalidPublicPhotos'), { count: MIN_PUBLIC_PHOTO }))\n }\n if (action === 'create' && filesModel.btiDocument.url === '') {\n errors.push(i18next.t(getKey('invalidBti')))\n }\n if (action === 'activate' && filesModel.invalidDocuments) {\n errors.push(i18next.t(getKey('invalidDocuments')))\n }\n if (filesModel.invalidVideo) {\n errors.push(i18next.t(getKey('invalidVideo')))\n }\n if (filesModel.invalidVideoCount) {\n errors.push(i18next.t(getKey('invalidVideoCount')))\n }\n if (filesModel.invalidVideoUrl) {\n errors.push(i18next.t(getKey('invalidVideoUrl')))\n }\n\n return returnType === 'boolean' ? this.hasNotErrors(errors) : errors\n }\n}\n\nexport const validatePickPointFiles = new ValidatePickPointFiles()\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { validatePickPointFiles } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/validate'\nimport { Country } from 'shared/types/types'\n\nimport { OrderKeys } from '../../../data'\nimport { ActivateOrderUiStore } from '../../../stores/ActivateOrder/ActivateOrderUiStore'\n\nexport class ValidateOrderActivate extends ValidateFormService {\n validate = (uiStore: ActivateOrderUiStore, companyCountry: Country) => {\n const errors: string[] = []\n\n const getKey = (key: string) => `${OrderKeys.activateOrderPage}.validate.${key}`\n\n if (companyCountry === Country.BY) {\n if (uiStore.ownerGln.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidOwnerGln')))\n }\n if (uiStore.glnPvz.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidGlnPvz')))\n }\n if (uiStore.molName.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidMolName')))\n }\n }\n\n if (uiStore.signboardSizeItem === null) {\n errors.push(i18next.t(getKey('invalidSignboardSize')))\n }\n if (uiStore.signboardFormatItem === null) {\n errors.push(i18next.t(getKey('invalidSignboardFormat')))\n }\n\n errors.push(...(validatePickPointFiles.validate(uiStore.fileList, 'array', 'activate') as string[]))\n\n return this.hasNotErrors(errors, i18next.t(getKey('pvzActivationError')))\n }\n}\n\nexport const validateOrderActivate = new ValidateOrderActivate()\n","import { Form, Modal, notification } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { ElockInfoStatus } from 'sections/LKSection/modules/ELockModule/types'\nimport { PickPointFilesForm } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFilesForm'\nimport { signboardFormatOptions, signboardSizeOptions } from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { Margin } from 'components/ui'\nimport { Info } from 'components/ui/Info/Info'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { Button, Divider, Flex, FormItem, Text, TextArea, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { OrderKeys } from '../../../data'\nimport { OrderStatus, SignboardFormat, SignboardSize } from '../../../types'\nimport { getCreateOrderPageKey } from '../../../utils'\nimport { OrderBYCompanyForm } from './OrderBYCompanyForm/OrderBYCompanyForm'\nimport { validateOrderActivate } from './validate'\n\nexport const ActivateOrderForm = observer(() => {\n const { activateOrderUiStore: uiStore, viewOrderUiStore, orderStore, appStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const order = viewOrderUiStore.selectedOrder\n const eLockStatus = order?.eLockInfo?.status\n const country = appStore.companyCountry\n\n const validateForm = () => {\n if (validateOrderActivate.validate(uiStore, appStore.companyCountry)) {\n setIsModalOpen(true)\n }\n }\n\n const activateOrderHandler = async () => {\n setLoading(true)\n\n const orderId = uiStore.orderId\n\n if (!orderId) {\n return\n }\n\n try {\n await uiStore.updateOrder(orderId, true)\n\n if (order?.status === OrderStatus.accepted) {\n await uiStore.makeOrderReadyActivate(orderId)\n }\n\n orderStore.clear()\n navigate(LKRoutesEnum.orders)\n viewOrderUiStore.setSelectedOrder(null)\n } catch (error) {\n notification.error({ message: (error as Error).message })\n }\n\n setIsModalOpen(false)\n }\n\n const getKey = (key: string) => `${OrderKeys.activateOrderPage}.${key}`\n\n return (\n \n
\n {country === Country.BY && (\n <>\n \n \n \n )}\n\n \n {t(getKey('Вывеска'))}\n \n\n \n uiStore.setSignboardSizeItem(item as BaseOption)}\n options={signboardSizeOptions}\n placeholder={t(getKey('Выберите размер вывески'))}\n />\n \n\n \n uiStore.setSignboardFormatItem(item as BaseOption)}\n options={signboardFormatOptions.map((item) => ({ value: item.value, label: t(getKey(item.label)) }))}\n placeholder={t(getKey('Выберите формат вывески'))}\n />\n \n\n \n \n\n \n\n
\n \n uiStore.setComment(e.target.value)}\n maxLength={500}\n placeholder={t(getKey('При необходимости опишите'))}\n />\n \n
\n\n \n\n {t(getKey('Активация вашего ПВЗ'))}\n\n \n \n {t(getSharedKey('Обратите внимание'))}!\n {t(getKey('Активация подразумевает'))}\n \n \n\n \n \n \n\n \n {t(getKey('Активировать ПВЗ'))}\n \n \n \n\n setIsModalOpen(false)}\n cancelText={t(getSharedKey('cancel'))}\n centered\n >\n {t(getKey(country === Country.GE ? 'Ложная активация GE' : 'Ложная активация'))}{' '}\n {t(getKey('Подтверждение готовности принять товар'))}\n \n
\n )\n})\n","import { Table, TableProps } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { CSSProperties } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Cameras } from 'sections/LKSection/modules/OrderModule/types'\nimport { Flex, Modal, Text } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { useResize } from 'utils/hooks/useResize'\n\ntype DataType = {\n key: string\n name: string\n limitDays: number\n status: number\n archAvailability: boolean\n}\n\ntype CCTVModalProps = {\n cameras: Cameras[]\n isModalOpen: boolean\n setIsModalOpen: (value: boolean) => void\n}\n\nconst getKey = (key: string) => `${OrderKeys.activateOrderPage}.${key}`\n\nexport const CCTVModal = observer(({ cameras, isModalOpen, setIsModalOpen }: CCTVModalProps) => {\n const { isMobile } = useResize()\n const { t } = useTranslation()\n\n const style: CSSProperties = { wordWrap: 'break-word', wordBreak: 'keep-all', fontSize: isMobile ? 11 : 16 }\n\n const columns: TableProps['columns'] = [\n {\n title: {t(getKey('Название камеры'))},\n dataIndex: 'name',\n key: 'name',\n render: (value) => {value},\n },\n {\n title: {t(getKey('Глубина архива'))},\n dataIndex: 'limitDays',\n key: 'limitDays',\n render: (value) => {value},\n },\n {\n title: {t(getSharedKey('status'))},\n dataIndex: 'status',\n key: 'status',\n render: (value) => {value ? t(getSharedKey('online')) : t(getSharedKey('offline'))},\n },\n {\n title: {t(getKey('Доступность архива'))},\n dataIndex: 'archAvailability',\n key: 'archAvailability',\n render: (value) => {value ? t(getSharedKey('yes')) : t(getSharedKey('no'))},\n },\n ]\n\n return (\n setIsModalOpen(false)}\n onCancel={() => setIsModalOpen(false)}\n cancelButtonProps={{ style: { display: 'none' } }}\n centered\n width={700}\n >\n \n {t(getKey('Проверьте состояние камер'))}\n\n \n columns={columns}\n dataSource={cameras.map((camera) => ({ ...camera, key: camera.idCamera }))}\n pagination={false}\n size=\"large\"\n />\n \n \n )\n})\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { OrderCCTVModel } from 'sections/LKSection/modules/OrderModule/stores/models/OrderCCTVModel/OrderCCTVModel'\n\nexport class ValidateOrderCCTV extends ValidateFormService {\n validate = (model: OrderCCTVModel, returnType: 'boolean' | 'array' = 'boolean') => {\n const errors: string[] = []\n\n const getKey = (key: string) => `${OrderKeys.activateOrderPage}.validate.${key}`\n\n if (model.vendorValue === null) {\n errors.push(i18next.t(getKey('invalidVendorValue')))\n }\n if (model.url.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidVideoServiceUrl')))\n }\n if (model.invalidUrl) {\n errors.push(i18next.t(getKey('invalidVideoServiceUrlFormat')))\n }\n if (model.login.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidLogin')))\n }\n if (model.password.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidPassword')))\n }\n if (model.hasToken && model.token.trim().length === 0) {\n errors.push(i18next.t(getKey('invalidToken')))\n }\n\n return returnType === 'boolean' ? this.hasNotErrors(errors, i18next.t(getKey('invalidValidateCCTVForm'))) : errors\n }\n}\n\nexport const validateOrderCCTV = new ValidateOrderCCTV()\n","import { Form, notification } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Margin } from 'components/ui'\nimport { Button, Input, Select, Text, TextArea, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport { CCTVModal } from './CCTVModal/CCTVModal'\nimport { validateOrderCCTV } from './validate'\n\ntype FormType = {\n url: string\n login: string\n password: string\n token: string\n description: string\n}\n\nconst maxLength = 500\n\nconst getKey = (key: string) => `${OrderKeys.activateOrderPage}.${key}`\n\nexport const OrderCCTVForm = observer(() => {\n const { activateOrderUiStore: uiStore } = useStore()\n\n const [form] = Form.useForm()\n const { t } = useTranslation()\n\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n uiStore.cctv.getVendorList()\n\n if (uiStore.cctv.initializedCCTVInfo) {\n form.setFieldsValue({\n url: uiStore.cctv.url,\n login: uiStore.cctv.login,\n description: uiStore.cctv.description,\n password: uiStore.cctv.password,\n token: uiStore.cctv.token,\n })\n }\n }, [uiStore.cctv.initializedCCTVInfo, form, uiStore.cctv])\n\n const nextStepHandler = async () => {\n if (validateOrderCCTV.validate(uiStore.cctv)) {\n const pvzId = uiStore.pvzId\n const orderId = uiStore.orderId\n\n if (pvzId && orderId) {\n try {\n setLoading(true)\n\n await uiStore.cctv.addCCTVInfo(orderId)\n const success = await uiStore.cctv.validateCCTVInfo(pvzId)\n\n if (success) {\n uiStore.setSelectedStep(uiStore.selectedStep + 1)\n } else {\n uiStore.cctv.setShowCCTVModal(true)\n }\n } catch (error) {\n notification.error({ message: (error as Error).message })\n } finally {\n setLoading(false)\n }\n } else {\n notification.error({ message: t(getKey('validate.invalidID')) })\n }\n }\n }\n\n return (\n <>\n
\n \n {t(getSharedKey('Видеонаблюдение'))}\n \n\n \n {t(getKey('Внесите данные для подключения'))}\n \n\n \n ({ value: vendor.id, label: vendor.name }))}\n placeholder={t(getKey('Выберите поставщика сервиса'))}\n />\n \n\n \n label={t(getKey('Ссылка на сервис'))}\n name={'url'}\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n { pattern: WEB_LINK_REGEXP, message: t(getSharedKey('URLIncorrectMessage')) },\n ]}\n tooltip={t(getKey('Ссылка на web-сервис'))}\n >\n uiStore.cctv.setUrl(e.target.value)}\n maxLength={500}\n />\n \n\n \n label={t(getSharedKey('login'))}\n name={'login'}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n >\n uiStore.cctv.setLogin(e.target.value)}\n placeholder={t(getKey('Логин для входа'))}\n maxLength={maxLength}\n />\n \n\n \n label={t(getSharedKey('password'))}\n name={'password'}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n >\n uiStore.cctv.setPassword(e.target.value)}\n />\n \n\n {uiStore.cctv.hasToken && (\n \n label={t(getKey('Токен'))}\n name={'token'}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n >\n uiStore.cctv.setToken(e.target.value)}\n maxLength={maxLength * 2}\n placeholder=\"ksajdhLKJjbUyhnKJh087uubnht5687ylk8098LKJkljlkmk8\"\n />\n \n )}\n\n label={t(getSharedKey('description'))} name={'description'}>\n uiStore.cctv.setDescription(e.target.value)}\n maxLength={maxLength}\n placeholder={t(getKey('Дополнительная информация для входа'))}\n />\n \n\n \n \n \n \n\n {uiStore.cctv.validateCCTVResult && (\n \n )}\n \n )\n})\n","import { Steps } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { lazy, useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { getOrderItemRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\n\nimport { OrderKeys } from '../../data'\nimport { OrderStatus } from '../../types'\nimport { ActivateOrderForm } from './ActivateOrderForm/ActivateOrderForm'\nimport { OrderCCTVForm } from './ActivateOrderForm/OrderCCTVForm/OrderCCTVForm'\n\nimport s from './ActivateOrderPage.module.scss'\n\nconst stepTitles = [\n {\n title: 'Проверка видеонаблюдения',\n },\n {\n title: 'Заявка на активацию',\n },\n]\n\nconst steps: Map = new Map([\n [1, ],\n [2, ],\n])\n\nconst getKey = (key: string) => `${OrderKeys.activateOrderPage}.${key}`\n\nconst ActivateOrderPage = observer(() => {\n const { activateOrderUiStore: uiStore, viewOrderUiStore } = useStore()\n\n const { orderId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const items = stepTitles.map((item) => ({ key: item.title, title: t(getKey(item.title)) }))\n\n useAsyncEffect(async () => {\n if (orderId) {\n if (viewOrderUiStore.orderList.length === 0) {\n await viewOrderUiStore.getOrderList()\n }\n\n const order = viewOrderUiStore.getOrder(+orderId)\n\n if (order?.id) {\n void uiStore.cctv.getCCTVInfo(order.id)\n\n viewOrderUiStore.setSelectedOrder(order)\n\n if (order.status !== OrderStatus.remarkFromActivate && order.status !== OrderStatus.accepted) {\n navigate(getOrderItemRoute(+orderId))\n }\n\n if (order.status === OrderStatus.remarkFromActivate) {\n void uiStore.init()\n }\n }\n }\n }, [orderId])\n\n useEffect(() => {\n return () => {\n uiStore.reset()\n }\n }, [])\n\n return (\n \n \n \n \n }\n onClick={() => orderId && navigate(getOrderItemRoute(+orderId))}\n />\n\n {t(getKey('Активация ПВЗ'))}\n \n\n \n \n \n\n \n {steps.get(uiStore.selectedStep)}\n \n \n \n \n )\n})\n\nexport default ActivateOrderPage\n\nexport const ActivateOrderPageAsync = lazy(() => import('./ActivateOrderPage'))\n","export function thousandsWhiteSpacing(input: number | string | undefined | null): string {\n if (input === null || input === undefined) {\n return ''\n }\n\n const value = input.toString()\n\n if (input === 0) {\n return value\n }\n\n let result = ''\n let counter = 0\n\n for (let i = value.length - 1; i >= 0; i--) {\n if (counter === 3) {\n result += ' '\n counter = 0\n }\n result += value[i]\n counter++\n }\n\n return result.split('').reverse().join('')\n}\n","import { Skeleton } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\n\nimport { useStore } from 'store/useStore'\nimport { Text } from 'components/uiKit'\nimport { thousandsWhiteSpacing } from 'utils/formatting/thousandsWhiteSpacing/thousandsWhiteSpacing'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { Country, CurrencyFromCountry } from 'shared/types/types'\n\nimport { OrderLocationViewModel } from '../../stores/models/OrderLocationViewModel'\n\ntype SubsidyProps = {\n tariff: number\n location: OrderLocationViewModel\n country: Country\n}\n\nexport const Subsidy = observer(({ tariff, location, country }: SubsidyProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const [loading, setLoading] = useState(false)\n\n const subsidyItem = location.subsidyInfo.find((subsidy) => location.subsidyHexTypeItem?.value === subsidy.subsidyType)\n\n useAsyncEffect(async () => {\n if (tariff) {\n setLoading(true)\n\n await location.getSubsidy(tariff)\n\n // Меняю subsidyTypeItem в initialState, так как субсидия приходит с бека после первичной инициализации\n if (uiStore.initialState) {\n const initialState = uiStore.initialState\n initialState.subsidyTypeItem = location.subsidyHexTypeItem\n uiStore.setInitialState(initialState)\n }\n\n setLoading(false)\n }\n }, [tariff])\n\n return (\n <>\n {loading ? (\n \n ) : (\n subsidyItem && (\n \n {location.getSubsidyItem(country)?.label}, {thousandsWhiteSpacing(subsidyItem.subsidy)}{' '}\n {CurrencyFromCountry[country]}\n \n )\n )}\n \n )\n})\n","import { Skeleton } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { QuestionCircleOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Button, Flex, Text } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { URLS } from 'shared/constants/urls'\nimport { Country } from 'shared/types/types'\n\nimport { OrderStatus } from '../../types'\n\nimport s from './Tariff.module.scss'\n\ntype TariffProps = {\n latitude: number\n longitude: number\n area: number\n typePoint: PickPointType\n status?: OrderStatus\n tariffDescription?: string[]\n}\n\nexport const Tariff = observer(\n ({ latitude, longitude, area, typePoint, status = OrderStatus.draft, tariffDescription = [''] }: TariffProps) => {\n const { createOrderUiStore: uiStore, appStore } = useStore()\n\n const [tariffs, setTariffs] = useState('')\n const [tariffsLoading, setTariffsLoading] = useState(false)\n\n const tariffFromRequest = status === OrderStatus.draft\n const tariffDescriptionString = tariffDescription?.[0] ?? ''\n const country = appStore.companyCountry\n\n useAsyncEffect(async () => {\n if (tariffFromRequest && latitude && longitude) {\n setTariffsLoading(true)\n\n const data = {\n lat: parseFloat(latitude.toString()),\n lon: parseFloat(longitude.toString()),\n area: parseFloat(area.toString()),\n typePoint,\n }\n\n const res = await uiStore.getTariffs(data)\n\n setTariffs(res ?? '')\n setTariffsLoading(false)\n } else {\n setTariffs(tariffDescriptionString)\n const tariffString = tariffDescriptionString.split(' ')\n\n for (const word of tariffString) {\n if (word.includes('%')) {\n uiStore.setTariff(+word.slice(0, word.length - 1))\n }\n }\n }\n }, [])\n\n return (\n \n {tariffsLoading ? (\n \n ) : (\n tariffs?.length > 0 && (\n \n \n {tariffs}\n \n\n {country !== Country.GE && (\n }\n type=\"link\"\n href={URLS.tariffs}\n target=\"_blank\"\n />\n )}\n \n )\n )}\n \n )\n },\n)\n","import { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { Subsidy } from 'sections/LKSection/modules/OrderModule/components/Subsidy/Subsidy'\nimport { Tariff } from 'sections/LKSection/modules/OrderModule/components/Tariff/Tariff'\nimport { countriesWithSubsidy, OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { PickPointFilesForm } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFilesForm'\nimport { validatePickPointFiles } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/validate'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { Button, Divider, Flex, Link, Text, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\nimport { EventType } from 'types/types'\n\nimport s from './FilesUploadingStep.module.scss'\n\nexport const FilesUploadingStep = observer(() => {\n const { createOrderUiStore: uiStore, appStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n const country = appStore.companyCountry\n\n useEffect(() => {\n uiStore.location.setSubsidyInfo([])\n }, [])\n\n const createOrderHandler = async () => {\n if (validatePickPointFiles.validate(uiStore.fileList)) {\n setLoading(true)\n\n const orderId = await uiStore.createOrder()\n\n setLoading(false)\n\n if (orderId) {\n sendEvent(EventType.orderStep, { step: 4, success: 1, application_id: orderId })\n navigate(LKRoutesEnum.orders)\n }\n } else {\n sendEvent(EventType.orderStep, { step: 4, success: 0, reason: 'Не пройдена валидация' })\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.filesStep}.${key}`\n\n return (\n \n {t(getSharedKey('Загрузка файлов'))}\n\n \n\n {country !== Country.GE && (\n \n {t(getKey('Если возникли проблемы'))}\n {t(getKey('Обращаем внимание'))}\n\n \n {t(getKey('Форма для вопросов'))}\n \n \n )}\n\n \n\n \n \n \n\n {countriesWithSubsidy.includes(uiStore.companyCountry) && (\n \n )}\n \n \n\n \n uiStore.setSelectedStep(uiStore.selectedStep - 1)}\n type=\"default\"\n data-testid=\"previousStepInFilesUploading\"\n >\n {t(getCreateOrderPageKey('Предыдущий шаг'))}\n \n\n \n \n \n )\n})\n","import classNames from 'classnames'\n\nimport s from './Text.module.scss'\n\ntype TextProps = {\n children: string\n error?: boolean\n className?: string\n}\n\nexport const ErrorText = ({ children, error, className }: TextProps) => {\n const cls = classNames(s.Text, className, {\n [s.error]: error,\n })\n\n return (\n
\n

{children}

\n
\n )\n}\n","export default \"__VITE_ASSET__D2gLB0Ql__\"","import { appConfig } from 'config/environment/appConfig'\nimport { AddLayerObject, MapLibreEvent } from 'maplibre-gl'\nimport { useTranslation } from 'react-i18next'\nimport Map from 'react-map-gl/maplibre'\nimport { VectorSourceSpecification } from '@maplibre/maplibre-gl-style-spec'\n\nimport { Flex } from 'components/uiKit'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\n\nimport rawLayers from './layers.json'\n\nimport pin from 'assets/img/map/pin-map-select.svg'\nimport 'maplibre-gl/dist/maplibre-gl.css'\nimport s from './OrdersMap.module.scss'\n\n// координаты центра Москвы\nconst redSquare = {\n lon: '37.618423',\n lat: '55.751244',\n}\n\n// координаты центра Тбилиси\nconst tbilisi = {\n lon: '44.796448',\n lat: '41.719861',\n}\n\ntype OrdersMapProps = {\n height?: number\n centerLongitude?: string\n centerLatitude?: string\n}\n\nexport function OrdersMap({\n height,\n centerLongitude = isGeDomain() ? tbilisi.lon : redSquare.lon,\n centerLatitude = isGeDomain() ? tbilisi.lat : redSquare.lat,\n}: OrdersMapProps) {\n const viewState = {\n longitude: parseFloat(centerLongitude),\n latitude: parseFloat(centerLatitude),\n zoom: 15,\n }\n\n const { i18n } = useTranslation()\n\n const onLoadHandler = (e: MapLibreEvent) => {\n const map = e.target\n\n Object.entries(rawLayers.sources).map(([key, value]) => {\n map.addSource(key, {\n type: value.type,\n tiles: [`${appConfig.TILE_SERVER_URL}/${value.layers}/{z}/{x}/{y}`],\n } as VectorSourceSpecification)\n })\n\n rawLayers.layers.map(async (layer) => {\n if (layer.layout !== undefined && layer.layout['icon-image']) {\n const response = await map.loadImage(`/img/map/${layer.layout['icon-image']}.png`)\n map.addImage(layer.layout['icon-image'], response.data)\n }\n\n map.addLayer(layer as AddLayerObject)\n })\n }\n\n return (\n \n
\n \"📍\"\n
\n\n \n
\n )\n}\n","import axios from 'axios'\nimport { isEqual, uniqWith } from 'lodash'\n\nimport { Country } from 'shared/types/types'\n\nimport { CityDTO, StreetDTO, YapiGeocoderResponse, YApiGeoObject, YApiKinds } from './types'\n\nexport class YApi {\n /* apiKey = '7238887c-e512-458a-a272-3e6b1c8fa157' */\n /* apiKey = 'e0976540-23ba-45d8-8beb-3691dc76e76c' */\n apiKey = '0b1bf77e-56d1-4ff1-8df4-47b4af1f64b7'\n\n apiKit = axios.create({\n baseURL: 'https://geocode-maps.yandex.ru/',\n timeout: 10000,\n })\n\n getCitiesByCityName = async (cityName: string, countryCode: Country, lang: 'ru' | 'en'): Promise<{ data: CityDTO[] }> => {\n const geocoderResponseLocalities = await yApi.callYapi({\n geocode: cityName,\n results: 100,\n lang: lang,\n })\n\n const toponyms = uniqWith(geocoderResponseLocalities.response.GeoObjectCollection.featureMember, isEqual)\n\n // При поиске имени нельзя указать kind поэтому в ответе могут быть и реки и озёра и города и т.п.,\n // Поэтому нужно отфильтровать.\n const localities = yApi.filterYApiGeoObjectsByKinds(toponyms, 'locality')\n\n const localitiesFilteredByCountry = yApi.filterYApiGeoObjectsByCountry(localities, countryCode)\n\n // Если в ответе есть населённые пункты (kind === 'locality'), то они возвращаются,\n // если населённых пунктов нет, то пытается найти населённые пункты около первого топонима который был в ответе.\n // (так например если искать \"Москва\", то не возвращается населённый пункт, а только один топоним \"Московская Область\")\n if (localitiesFilteredByCountry.length) {\n return {\n data: localitiesFilteredByCountry.map((item, index) => yApi.convertYApiGeoObjectToCityOption(item, index + 1)),\n }\n } else if (toponyms[0]) {\n return this.getCitiesByCoords(toponyms[0].GeoObject.Point.pos, countryCode, lang)\n }\n\n return { data: [] }\n }\n\n async getCitiesByCoords(coordinates: string, countryCode: Country, lang: 'ru' | 'en'): Promise<{ data: CityDTO[] }> {\n const resp = await yApi.getLocalitiesByCoords(coordinates, lang)\n\n const filteredByCountry = this.filterYApiGeoObjectsByCountry(\n resp.response.GeoObjectCollection.featureMember,\n countryCode,\n )\n\n return {\n data: this.getCitiesFromFeatureMember(filteredByCountry),\n }\n }\n\n /**\n * Убирает дубликаты. Преобразует к массиву CityDTO.\n */\n getCitiesFromFeatureMember(featureMember: YApiGeoObject[]): CityDTO[] {\n const uniqLocalities = uniqWith(featureMember, yApi.isEqualYApiGeoObjects).map((item, index) =>\n yApi.convertYApiGeoObjectToCityOption(item, index + 1),\n )\n\n return uniqLocalities\n }\n\n /**\n * Сперва сравнивает по имени, типу и адресу (для оптимизации), а потом приступает к глубокому сравнению\n */\n isEqualYApiGeoObjects(yApiGeoObjectsA: YApiGeoObject, yApiGeoObjectsB: YApiGeoObject): boolean {\n return (\n yApiGeoObjectsA.GeoObject.name === yApiGeoObjectsB.GeoObject.name &&\n yApiGeoObjectsA.GeoObject.metaDataProperty.GeocoderMetaData.AddressDetails.Country.AddressLine ===\n yApiGeoObjectsB.GeoObject.metaDataProperty.GeocoderMetaData.AddressDetails.Country.AddressLine &&\n yApiGeoObjectsA.GeoObject.metaDataProperty.GeocoderMetaData.kind ===\n yApiGeoObjectsB.GeoObject.metaDataProperty.GeocoderMetaData.kind &&\n isEqual(yApiGeoObjectsA, yApiGeoObjectsB)\n )\n }\n\n convertYApiGeoObjectToCityOption(yApiGeoObjects: YApiGeoObject, id: number): CityDTO {\n return {\n id,\n prefix: yApiGeoObjects.GeoObject.name,\n name: yApiGeoObjects.GeoObject.description,\n formattedAddress: yApiGeoObjects?.GeoObject.metaDataProperty?.GeocoderMetaData?.Address?.formatted ?? '',\n }\n }\n\n /**\n * Возвращает новый массив с YApiGeoObject, у которых типы (kind) совпадают с переданными во втором параметре.\n */\n filterYApiGeoObjectsByKinds(yApiGeoObjects: YApiGeoObject[], kinds: YApiKinds[] | YApiKinds): YApiGeoObject[] {\n const filteredKinds = Array.isArray(kinds) ? kinds : [kinds]\n\n return yApiGeoObjects.filter((item) => {\n const kind = item.GeoObject.metaDataProperty.GeocoderMetaData.kind\n\n return filteredKinds.includes(kind)\n })\n }\n\n filterYApiGeoObjectsByCountry(yApiGeoObjects: YApiGeoObject[], countryCode: Country): YApiGeoObject[] {\n return yApiGeoObjects.filter((item) => {\n return item.GeoObject.metaDataProperty.GeocoderMetaData.AddressDetails.Country.CountryNameCode === countryCode\n })\n }\n\n getLocalitiesByCoords(coordinates: string, lang: 'ru' | 'en'): Promise {\n const eleven = coordinates.split(' ').join(',')\n return new Promise((resolve) => {\n this.callYapi({ geocode: eleven, kind: 'locality', lang: lang, }).then((res) => {\n resolve(res)\n })\n })\n }\n\n getStreet = (description: string, lang: 'ru' | 'en') => {\n return new Promise((resolve) => {\n const geocode = description\n\n this.callYapi({ geocode, kind: 'street', lang: lang, })\n .then((res) => {\n let response: StreetDTO[] = []\n const obj = res.response.GeoObjectCollection.featureMember[0]\n\n response = this.getAddressFromFeatured(res)\n this.getHousesByCoordinates(obj.GeoObject.Point.pos, lang, response).then((res) => resolve(res))\n })\n .catch((error) => new Error(error))\n })\n }\n\n getHousesByCoordinates(coordinates: string, lang: 'ru' | 'en', anyStreets?: StreetDTO[]): Promise {\n return new Promise((resolve) => {\n this.getHousesByCoords(coordinates, lang).then((res) => {\n const response = anyStreets\n ? anyStreets?.concat(this.getAddressFromFeatured(res))\n : this.getAddressFromFeatured(res)\n\n resolve(\n response.filter(\n (v, i, a) =>\n a.findIndex((t) => `${t.name}${t.house}${t.description}` === `${v.name}${v.house}${v.description}`) === i,\n ),\n )\n })\n })\n }\n\n getAddressFromFeatured(response: YapiGeocoderResponse): StreetDTO[] {\n if (!response.response) return []\n const objects = response.response.GeoObjectCollection.featureMember\n return objects.map((geo) => {\n const obj = geo.GeoObject\n const pos = obj.Point.pos.split(' ')\n const house = obj.metaDataProperty.GeocoderMetaData.Address.Components.find((cmp) => cmp.kind === 'house')\n const street = obj.metaDataProperty.GeocoderMetaData.Address.Components.find((cmp) => cmp.kind === 'street')\n const locality = obj.metaDataProperty.GeocoderMetaData.Address.Components.find((cmp) => cmp.kind === 'locality')\n\n return {\n name: obj.name,\n street: street ? street.name : locality ? locality.name : '',\n description: obj.description,\n house: house ? house.name : '',\n postCode: 1,\n kind: obj.metaDataProperty.GeocoderMetaData.kind,\n precision: obj.metaDataProperty.GeocoderMetaData.precision,\n lat: pos[1],\n lng: pos[0],\n }\n })\n }\n\n getHousesByCoords(coordinates: string, lang: 'ru' | 'en'): Promise {\n const eleven = coordinates.split(' ').join(',')\n return new Promise((resolve) => {\n this.callYapi({ geocode: eleven, kind: 'house', lang: lang, }).then((res) => {\n resolve(res)\n })\n })\n }\n\n get(url: string, fields?: any): Promise {\n const searchParamsStr = fields ? new URLSearchParams(fields) : undefined\n\n return new Promise((resolve, reject) => {\n const requestUrl = url + (searchParamsStr ? `?${searchParamsStr}` : '')\n this.apiKit\n .get(requestUrl, {})\n .then((data) => resolve(data.data))\n .catch((e) => {\n reject(e)\n })\n })\n }\n\n callYapi(params: any): Promise {\n params.apikey = this.apiKey\n params.format = 'json'\n return this.get('1.x/', params)\n }\n}\n\nexport const yApi = new YApi()\n","export const debounce = (func: (...args: T) => void, delay: number) => {\n let timeoutId: NodeJS.Timeout\n\n return (...args: T) => {\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n\n timeoutId = setTimeout(() => {\n func(...args)\n }, delay)\n }\n}\n","import { notification } from 'antd'\nimport { useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { CityDTO, StreetDTO } from 'services/yandexApi/types'\nimport { yApi } from 'services/yandexApi/yApi'\nimport { OrderLocationViewModel } from 'sections/LKSection/modules/OrderModule/stores/models/OrderLocationViewModel'\nimport { debounce } from 'utils/helpers/debounce'\nimport { Country } from 'shared/types/types'\n\nexport const usePickPointLocation = (location: OrderLocationViewModel) => {\n const [isCityLoading, setIsCityLoading] = useState(false)\n const [isStreetLoading, setIsStreetLoading] = useState(false)\n const [longitude, setLongitude] = useState('')\n const [latitude, setLatitude] = useState('')\n\n const timerRef = useRef(null)\n\n const { i18n } = useTranslation()\n const geocoderLanguage = i18n.language === 'ru' ? 'ru' : 'en'\n\n /**\n * @param value \"${longitude} ${latitude}\" если type === \"both\"\n */\n const getAddressFromCoordinates = async (\n value: string,\n type: 'longitude' | 'latitude' | 'both',\n country: Country,\n ) => {\n setIsCityLoading(true)\n setIsStreetLoading(true)\n\n let coordinates = ''\n if (type === 'both') {\n coordinates = value\n } else {\n coordinates = `${type === 'longitude' ? value : longitude} ${type === 'latitude' ? value : latitude}`\n }\n\n const { data: cities } = await yApi.getCitiesByCoords(coordinates, country, geocoderLanguage)\n const streets = cities.length ? await yApi.getHousesByCoordinates(coordinates, geocoderLanguage) : []\n\n cityChangeHandler(cities[0])\n streetChangeHandler(streets[0], false)\n\n setIsCityLoading(false)\n setIsStreetLoading(false)\n }\n\n const handleCoordinates = (value: string, type: 'latitude' | 'longitude', country: Country) => {\n const normalizedValue = value.replace(/[^\\d.]*/g, '')\n\n if (type === 'latitude') {\n setLatitude(normalizedValue)\n } else {\n setLongitude(normalizedValue)\n }\n\n if (timerRef.current) {\n clearTimeout(timerRef.current)\n }\n\n timerRef.current = setTimeout(() => {\n getAddressFromCoordinates(normalizedValue, type, country)\n }, 800)\n }\n\n const searchCity = debounce(async (query: string, callback: (options: CityDTO[]) => void, country: Country) => {\n if (query.trim().length > 2) {\n setIsCityLoading(true)\n const addresses = await yApi.getCitiesByCityName(query, country, geocoderLanguage)\n callback(addresses.data.map((item, index) => ({ ...item, className: `cityItemDropDownItem${index}` })))\n setIsCityLoading(false)\n }\n }, 800)\n\n const searchStreet = debounce(async (query: string, callback: (options: StreetDTO[]) => void) => {\n if (!location.cityItem) {\n return\n }\n\n if (query.trim().length > 2) {\n setIsStreetLoading(true)\n const { name, prefix } = location.cityItem\n\n try {\n const resp = await yApi.getStreet(`${name}, ${prefix}, ${query}`, geocoderLanguage)\n callback(resp.map((item, index) => ({ ...item, className: `streetItemInput${index}` })))\n location.setStreetOptions(resp)\n } catch (error) {\n notification.error({\n message: 'Ошибка загрузки улиц.',\n description: (error as Error).message,\n })\n } finally {\n setIsStreetLoading(false)\n }\n }\n }, 800)\n\n const cityChangeHandler = (item: CityDTO) => {\n location.setCityItem(item)\n }\n\n const streetChangeHandler = (value: StreetDTO | null, changeCoordinates: boolean = true) => {\n location.setStreetItem(value, changeCoordinates)\n\n if (changeCoordinates && value) {\n setLongitude(value.lng)\n setLatitude(value.lat)\n }\n }\n\n return {\n longitude,\n latitude,\n isCityLoading,\n isStreetLoading,\n searchCity,\n searchStreet,\n handleCoordinates,\n cityChangeHandler,\n streetChangeHandler,\n getAddressFromCoordinates,\n }\n}\n","import { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { Controller, useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useParams } from 'react-router-dom'\nimport { components } from 'react-select'\n\nimport { getLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { CityDTO, StreetDTO } from 'services/yandexApi/types'\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { OrderLocationViewModel } from 'sections/LKSection/modules/OrderModule/stores/models/OrderLocationViewModel'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { ReactSelect } from 'components/ui'\nimport { FormItem, Tooltip } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { usePickPointLocation } from 'utils/hooks/usePickPointLocation'\nimport { Country } from 'shared/types/types'\n\ntype LocationFormType = {\n cityItem: CityDTO | null\n streetItem: StreetDTO | null\n}\n\ntype OrderAddressProps = {\n uiStore: OrderLocationViewModel\n country: Country\n isCreation: boolean\n disabled?: boolean\n}\n\nexport const OrderAddress = observer(\n ({ uiStore, country, isCreation = false, disabled = false }: OrderAddressProps) => {\n const { appStore, viewOrderUiStore } = useStore()\n const { t } = useTranslation()\n\n const { control, setValue, watch } = useForm({\n mode: 'onChange',\n defaultValues: {\n cityItem: uiStore.cityItem,\n streetItem: uiStore.streetItem,\n },\n })\n\n const {\n isCityLoading,\n isStreetLoading,\n searchCity,\n searchStreet,\n cityChangeHandler,\n streetChangeHandler,\n getAddressFromCoordinates,\n } = usePickPointLocation(uiStore)\n\n const { latitude, longitude } = useParams()\n\n const cityItem = watch('cityItem')\n\n useEffect(() => {\n if (!isCreation && viewOrderUiStore.initialized) {\n setValue('cityItem', uiStore.cityItem)\n setValue('streetItem', uiStore.streetItem)\n }\n }, [viewOrderUiStore.initialized])\n\n useAsyncEffect(async () => {\n if (isCreation) {\n const coordinatesFromLS = getLocalStorageData(STORAGE_KEY.COORDINATES)\n const lat = latitude || coordinatesFromLS?.latitude\n const lon = longitude || coordinatesFromLS?.longitude\n\n if (lat && lon && !uiStore.cityItem && !uiStore.streetItem) {\n uiStore.setCoordinates({ latitude: lat, longitude: lon })\n\n await getAddressFromCoordinates(`${lon} ${lat}`, 'both', country)\n setValue('cityItem', uiStore.cityItem)\n setValue('streetItem', uiStore.streetItem)\n }\n }\n }, [])\n\n const handleCityChange = (item: CityDTO) => {\n uiStore.resetAddress()\n uiStore.resetSubsidy()\n setValue('streetItem', null)\n cityChangeHandler(item as CityDTO)\n }\n\n const handleStreetChange = async (item: StreetDTO) => {\n uiStore.resetSubsidy()\n streetChangeHandler(item as StreetDTO)\n\n if (item) {\n await uiStore.getSubsidy(5)\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\n return (\n <>\n \n \n \n name={'cityItem'}\n control={control}\n render={({ field }) => (\n `${(item as CityDTO)?.formattedAddress}`}\n loadOptions={(query, callback) => searchCity(query, callback, appStore.companyCountry)}\n onChange={(item) => {\n handleCityChange(item as CityDTO)\n field.onChange(item as CityDTO)\n }}\n className=\"cityItem\"\n components={{ Input: CustomInputForCity, Option: CustomOptionForCity }}\n />\n )}\n />\n \n \n\n \n \n \n name={'streetItem'}\n control={control}\n render={({ field }) => (\n `${(item as StreetDTO)?.name || uiStore.streetHouse}`}\n loadOptions={(query, callback) => searchStreet(query, callback)}\n onChange={(item) => {\n handleStreetChange(item as StreetDTO)\n field.onChange(item as StreetDTO)\n }}\n className=\"streetItem\"\n components={{\n Input: CustomInputForStreet,\n Option: (props) => CustomOptionForStreet(props, uiStore.streetHouse),\n }}\n />\n )}\n />\n \n \n \n )\n },\n)\n\n/* Данные для автотестов */\n\nconst CustomOptionForCity = (props: any) => {\n return (\n \n {props.data.formattedAddress}\n \n )\n}\n\nconst CustomOptionForStreet = (props: any, streetHouse: string) => {\n return (\n \n {props.data.name || streetHouse}\n \n )\n}\n\nconst CustomInputForCity = (props: any) => {\n return \n}\n\nconst CustomInputForStreet = (props: any) => {\n return \n}\n","import { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Flex, Text } from 'components/uiKit'\n\nexport const PickPointTypeTooltip = () => {\n const { t } = useTranslation()\n\n const textStyle = {\n color: 'white',\n }\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\n return (\n \n \n {t(getKey('Условия открытия Упрощенный'))}\n {t(getKey('Возможность открыться'))}\n {t(getKey('Тариф зависит от зоны'))}\n \n \n {t(getKey('Условия открытия Стандартный'))}\n {t(getKey('Тариф индивидуален'))}\n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\nimport { DownOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys, subsidySumKey } from 'sections/LKSection/modules/OrderModule/data'\nimport { SubsidyHexType } from 'sections/LKSection/modules/OrderModule/types'\nimport { getOrderModuleKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Info } from 'components/ui/Info/Info'\nimport { Collapse, Dropdown, Flex, Link, Space, Text } from 'components/uiKit'\n\ntype SubsidyTypeInfoProps = {\n type?: 'dropdown' | 'collapse'\n}\nexport const SubsidyTypeInfo = ({ type = 'collapse' }: SubsidyTypeInfoProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\n return (\n <>\n {type === 'dropdown' ? (\n ,\n },\n ],\n }}\n placement=\"bottomLeft\"\n >\n \n \n {t(getKey('Описание типов субсидий'))} \n \n \n \n ) : (\n ,\n },\n ]}\n />\n )}\n \n )\n}\n\nconst SubsidyInfo = ({ maxWidth }: { maxWidth?: number | string }) => {\n const { appStore } = useStore()\n const { t } = useTranslation()\n\n const country = appStore.companyCountry\n const sumKey = subsidySumKey[country]\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\n return (\n \n \n \n {t(`${OrderKeys.orderModule}.${SubsidyHexType.guaranteedIncome}`)}\n {t(getKey('Доплатим разницу'))}\n \n \n {t(getKey('Единоразовая субсидия за оборот'))}\n \n {t(getKey('Это разовая выплата'))} {t(getOrderModuleKey(sumKey))}\n \n \n \n \n )\n}\n","import { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { Controller, useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation } from 'react-router-dom'\n\nimport { getLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { useStore } from 'store/useStore'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { ErrorText } from 'components/ui/Text/Text'\nimport { Checkbox, Flex, Form, FormItem, Text, TextArea, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { useResize } from 'utils/hooks/useResize'\nimport { colors } from 'shared/constants/values'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { countriesWithSubsidy, couriersAccessItems, OrderKeys, pickPointTypeOptions } from '../../../data'\nimport { OrderLocationViewModel } from '../../../stores/models/OrderLocationViewModel'\nimport { CouriersAccess, OrderStatus, PickPointLocation, SubsidyHexType } from '../../../types'\nimport { OrdersMap } from '../../OrdersMap/OrdersMap'\nimport { OrderAddress } from './Address/OrderAddress'\nimport { PickPointTypeTooltip } from './PickPointTypeTooltip/PickPointTypeTooltip'\nimport { SubsidyTypeInfo } from './SubsidyTypeInfo/SubsidyTypeInfo'\n\ntype LocationFormType = {\n description: string\n courierWay: string\n pickPointType: BaseOption | null\n couriersAccess: CouriersAccess\n}\n\ntype OrderLocationFormProps = {\n uiStore: OrderLocationViewModel\n country: Country\n isMoving: boolean\n isCreation?: boolean\n disabled?: boolean\n}\n\nconst getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\nexport const OrderLocationForm = observer(\n ({ uiStore, country, isMoving, isCreation = false, disabled = false }: OrderLocationFormProps) => {\n const { viewOrderUiStore, viewPvzUiStore } = useStore()\n\n const pickPointTypeItem = pickPointTypeOptions.find((item) => item.value === uiStore.pickPointType)\n\n const { control, setValue } = useForm({\n mode: 'onChange',\n defaultValues: {\n description: uiStore.description,\n courierWay: uiStore.courierWay,\n pickPointType: pickPointTypeItem,\n couriersAccess: uiStore.couriersAccess,\n },\n })\n\n const { isTablet } = useResize()\n const { t } = useTranslation()\n\n const location = useLocation()\n\n const queryParams = new URLSearchParams(location.search)\n const exPvzId = queryParams.get('pvzId')\n\n const status = viewOrderUiStore.selectedOrder?.status\n const isShoppingMall = uiStore.floorLevel === PickPointLocation.shoppingMall\n\n const isSubsidyTypeDisabled =\n disabled ||\n (!isCreation && status !== OrderStatus.draft) ||\n uiStore.subsidyInfo.length === 0 ||\n (uiStore.pickPointType !== PickPointType.partner && country !== Country.GE) ||\n uiStore.streetItem === null\n\n const isCouriersAccessVisible =\n (country === Country.RU || country === Country.BY) &&\n !isCreation &&\n uiStore.floorLevel === PickPointLocation.shoppingMall\n\n useAsyncEffect(async () => {\n if (isCreation && uiStore.coordinates.latitude && uiStore.coordinates.longitude) {\n const pickPointType = getLocalStorageData(STORAGE_KEY.PICK_POINT_TYPE) as PickPointType\n const pickPointTypeItem = pickPointTypeOptions.find((item) => item.value === pickPointType)\n const subsidyHexType = getLocalStorageData(STORAGE_KEY.SUBSIDY_HEX_TYPE) as SubsidyHexType\n\n if (pickPointType) {\n setValue('pickPointType', pickPointTypeItem!)\n uiStore.setPickPointType(pickPointType)\n }\n\n if (subsidyHexType && !uiStore.subsidyHexTypeItem && pickPointType !== PickPointType.folk) {\n await uiStore.getSubsidy(5)\n\n const subsidyItem = uiStore.subsidyInfo.find((subsidy) => subsidy.subsidyType === subsidyHexType)\n\n if (subsidyItem) {\n uiStore.setSubsidyHexTypeItem({\n value: subsidyItem.subsidyType,\n label: t(`${OrderKeys.orderModule}.${subsidyItem.subsidyType}`),\n })\n }\n }\n }\n }, [uiStore.coordinates.latitude, uiStore.coordinates.longitude])\n\n useEffect(() => {\n if (!isCreation && viewOrderUiStore.initialized) {\n setValue('description', uiStore.description)\n setValue('courierWay', uiStore.courierWay)\n setValue('pickPointType', pickPointTypeItem!)\n setValue('couriersAccess', uiStore.couriersAccess)\n }\n }, [viewOrderUiStore.initialized])\n\n useEffect(() => {\n if (uiStore.pickPointType === PickPointType.folk) {\n uiStore.setSubsidyHexTypeItem(null)\n }\n }, [uiStore.pickPointType, uiStore])\n\n useEffect(() => {\n if (isMoving && exPvzId) {\n const pvzItem = viewPvzUiStore.getPvz(+exPvzId)\n\n if (pvzItem?.typePoint) {\n uiStore.setPickPointType(pvzItem?.typePoint)\n }\n }\n }, [])\n\n return (\n \n {t(getKey('Расположение ПВЗ'))}\n\n {isCreation && (\n \n {t(getKey('Открытие ПВЗ'))}\n \n )}\n\n {/* mytodo: заменить react-hook-form на форму из анта */}\n\n
\n {country === Country.RU && !isMoving && (\n }>\n \n name={'pickPointType'}\n control={control}\n render={({ field }) => (\n ({ value: item.value, label: t(getKey(item.label)) }))}\n placeholder={t(getKey('Выберите тип ПВЗ'))}\n isDisabled={disabled || (!isCreation && status !== OrderStatus.draft)}\n onChange={(item) => {\n uiStore.setPickPointType((item as BaseOption).value)\n field.onChange(item as BaseOption)\n }}\n className=\"pickPointTypeItem\"\n />\n )}\n />\n \n )}\n\n \n\n {isTablet && isCreation && (\n \n \n \n )}\n\n {countriesWithSubsidy.includes(country) && !isMoving && (\n \n {!isSubsidyTypeDisabled && (\n \n \n \n )}\n\n uiStore.setSubsidyHexTypeItem(item as BaseOption)}\n options={uiStore.getSubsidyTypeOptions(country)}\n isDisabled={isSubsidyTypeDisabled}\n isLoading={uiStore.isSubsidyLoading}\n placeholder={t(getKey('Выберите тип субсидии'))}\n className=\"subsidyHexTypeItem\"\n />\n \n )}\n\n \n \n name={'description'}\n control={control}\n rules={{\n required: t(getSharedKey('required')),\n minLength: { value: 30, message: t(getSharedKey('minLength'), { count: 30 }) },\n maxLength: { value: 200, message: t(getSharedKey('maxLength'), { count: 200 }) },\n validate: {\n noWhiteSpace: (value) =>\n (value as string).trim().length > 29 || t(getSharedKey('minLength'), { count: 30 }),\n },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setDescription(e.target.value)\n }}\n maxLength={500}\n placeholder={t(getKey('Нюансы расположения ПВЗ'))}\n disabled={disabled}\n name={'description'}\n data-testid=\"description\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n\n \n \n name={'courierWay'}\n control={control}\n rules={{\n required: isShoppingMall,\n maxLength: { value: 256, message: t(getSharedKey('maxLength'), { count: 256 }) },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setCourierWay(e.target.value)\n }}\n maxLength={500}\n placeholder={t(getKey('Информация для курьера'))}\n name={'courierWay'}\n disabled={disabled}\n data-testid=\"courierWay\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n\n {isCouriersAccessVisible && (\n \n {t(getKey('Только ночной доступ'))}\n {t(getKey('Круглосуточный доступ'))}\n {t(getKey('Только дневной доступ'))}\n \n }\n >\n \n {couriersAccessItems.map((item) => (\n \n key={item}\n name={'couriersAccess'}\n control={control}\n render={({ field }) => (\n {\n field.onChange(item)\n uiStore.setCouriersAccess(item)\n }}\n data-testid=\"couriersAccess\"\n disabled={disabled}\n >\n {t(getKey(item))}\n \n )}\n />\n ))}\n \n \n )}\n \n
\n )\n },\n)\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderLocationViewModel } from 'sections/LKSection/modules/OrderModule/stores/models/OrderLocationViewModel'\nimport {\n COURIER_WAY_MAX,\n PICKPOINT_DESCRIPTION_MAX,\n PICKPOINT_DESCRIPTION_MIN,\n} from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Country } from 'shared/types/types'\n\nimport { OrderKeys } from '../../../data'\nimport { PickPointLocation } from '../../../types'\n\nexport class ValidateOrderLocation extends ValidateFormService {\n validate = (\n locationModel: OrderLocationViewModel,\n returnType: 'boolean' | 'array' = 'boolean',\n country: Country,\n isMoving: boolean = false,\n ) => {\n const errors: string[] = []\n const isCIS = country !== Country.RU\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.validate.${key}`\n\n if (!isCIS && locationModel.pickPointType === null) {\n errors.push(i18next.t(getKey('Необходимо выбрать тип ПВЗ')))\n }\n\n if (locationModel.cityItem === null) {\n errors.push(i18next.t(getKey('Необходимо выбрать город')))\n }\n if (locationModel.streetItem === null || !locationModel.houseWasSelected) {\n errors.push(i18next.t(getKey('Необходимо выбрать улицу')))\n }\n\n if (\n ((locationModel.pickPointType === PickPointType.partner && !isCIS) || country === Country.GE) &&\n locationModel.subsidyInfo.length > 0 &&\n locationModel.subsidyHexTypeItem === null &&\n !isMoving\n ) {\n errors.push(i18next.t(getKey('Необходимо выбрать тип субсидии')))\n }\n\n if (locationModel.description.trim().length === 0) {\n errors.push(i18next.t(getKey('Поле Как найти ПВЗ')))\n } else {\n if (locationModel.description.trim().length < 30) {\n errors.push(i18next.t(getKey('descriptionMinLength'), { count: PICKPOINT_DESCRIPTION_MIN }))\n }\n if (locationModel.description.length > 200) {\n errors.push(i18next.t(getKey('descriptionMaxLength'), { count: PICKPOINT_DESCRIPTION_MAX }))\n }\n }\n\n if (locationModel.floorLevel === PickPointLocation.shoppingMall && locationModel.courierWay.trim().length === 0) {\n errors.push(i18next.t(getKey('Поле Информация для курьеров')))\n }\n\n if (locationModel.courierWay.length > 256) {\n errors.push(i18next.t(getKey('courierWayMaxLength'), { count: COURIER_WAY_MAX }))\n }\n\n return returnType === 'boolean' ? this.hasNotErrors(errors) : errors\n }\n}\n\nexport const validateOrderLocation = new ValidateOrderLocation()\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { OrderLocationForm } from 'sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/OrderLocationForm'\nimport { validateOrderLocation } from 'sections/LKSection/modules/OrderModule/components/Forms/OrderLocationForm/validate'\nimport { OrdersMap } from 'sections/LKSection/modules/OrderModule/components/OrdersMap/OrdersMap'\nimport {\n couriersAccessItems,\n entranceItems,\n floorItems,\n OrderKeys,\n pickPointLocationLabels,\n} from 'sections/LKSection/modules/OrderModule/data'\nimport { CouriersAccess, PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Padding } from 'components/ui'\nimport { Info } from 'components/ui/Info/Info'\nimport { Button, Checkbox, Flex, Form, FormItem, Text } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { colors } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\nimport { EventType } from 'types/types'\n\nimport s from './LocationStep.module.scss'\n\nexport type LocationStepType = {\n entrance: PickPointLocation\n floorLevel: PickPointLocation\n couriersAccess: CouriersAccess\n}\n\nexport const LocationStep = observer(() => {\n const { createOrderUiStore: uiStore, appStore, viewOrderUiStore } = useStore()\n\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n const location = uiStore.location\n\n const { register, handleSubmit, setValue, watch } = useForm({\n mode: 'onChange',\n defaultValues: {\n entrance: location.entrance,\n floorLevel: location.floorLevel,\n couriersAccess: location.couriersAccess,\n },\n })\n\n const { isTablet } = useResize()\n\n const entrance = watch('entrance')\n const floorLevel = watch('floorLevel')\n const couriersAccess = watch('couriersAccess')\n\n const isCountryWithShoppingMall = uiStore.companyCountry === Country.RU || uiStore.companyCountry === Country.BY\n const isCouriersAccessVisible = isCountryWithShoppingMall && location.floorLevel === PickPointLocation.shoppingMall\n const isMoving = Boolean(viewOrderUiStore.selectedOrder?.exPickPointId || uiStore.exPickPointId)\n\n const getKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n\n const nextStepHandler = async () => {\n if (validateOrderLocation.validate(location, 'boolean', appStore.companyCountry, isMoving)) {\n setLoading(true)\n const res = await uiStore.checkOrderAddress()\n setLoading(false)\n\n if (res) {\n sendEvent(EventType.orderStep, { step: 2, success: 1 })\n uiStore.setSelectedStep(uiStore.selectedStep + 1)\n }\n } else {\n sendEvent(EventType.orderStep, { step: 2, success: 0, reason: 'Не пройдена валидация' })\n }\n }\n\n return (\n \n
\n \n\n \n \n \n {(isCountryWithShoppingMall ? [...floorItems, PickPointLocation.shoppingMall] : floorItems).map(\n (item) => (\n {\n setValue('floorLevel', item)\n location.setFloorLevel(item)\n }}\n data-testid=\"floorLevel\"\n >\n {t(getKey(pickPointLocationLabels[item]))}\n \n ),\n )}\n \n \n\n {isCouriersAccessVisible && (\n \n {t(getKey('Только ночной доступ'))}\n {t(getKey('Круглосуточный доступ'))}\n {t(getKey('Только дневной доступ'))}\n \n }\n >\n \n {couriersAccessItems.map((item) => (\n {\n setValue('couriersAccess', item)\n location.setCouriersAccess(item)\n }}\n data-testid=\"couriersAccess\"\n >\n {t(getKey(item))}\n \n ))}\n \n \n )}\n\n \n {t(getKey('Первая линия это'))}\n \n\n \n \n {entranceItems.map((item) => (\n {\n setValue('entrance', item)\n location.setEntrance(item)\n }}\n data-testid=\"entrance\"\n >\n {t(getKey(pickPointLocationLabels[item]))}\n \n ))}\n \n \n \n\n \n \n uiStore.setSelectedStep(uiStore.selectedStep - 1)}\n type=\"default\"\n data-testid=\"previousStepInLocation\"\n >\n {t(getCreateOrderPageKey('Предыдущий шаг'))}\n \n\n \n {t(getSharedKey('next'))}\n \n \n \n \n\n {!isTablet && (\n \n )}\n
\n )\n})\n","import classNames from 'classnames'\n\nimport s from './ListItem.module.scss'\n\ntype ListItemProps = {\n children: React.ReactNode\n decimal?: boolean\n}\n\nexport const ListItem = ({ children, decimal }: ListItemProps) => {\n const styles = classNames(s.ELockListItem, {\n [s.decimal]: decimal,\n })\n\n return (\n
  • \n
    \n {children}\n
  • \n )\n}\n","export const docs = {\n brandbook: '/docs/brandbook.pdf',\n brandbookGeRu: '/docs/brandbook-geRu.pdf',\n brandbookGeGe: '/docs/brandbook-geGe.pdf',\n brandbookSimplified: '/docs/brandbookSimplified.pdf',\n instruction: '/docs/Инструкция открытия.pdf',\n ecobox: 'https://point.wb.ru/assets/files/ecoplatform_offer.pdf',\n elock_DJ05FY: '/docs/DJ05FY-User-Manual.pdf',\n privacyPolicy: 'https://point.wb.ru/docs/terms/index.html',\n requirementsVideoServiceIntegration: '/docs/Требования_к_интеграции_видеосервисов.docx',\n checklist: '/docs/checklist.pdf',\n}\n\nexport const staticDocs = {\n fastDelivery: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Bystraya_dostavka_A1.pdf',\n wildberries1:\n 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Vajldberriz_delaet_zhizn_proshche_1200_2700.pdf',\n wildberries2:\n 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Vajldberriz_put_v_mir_mody_1200_2700.pdf',\n wildberries3:\n 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Vajldberriz_stil_vashej_zhizni_1200_2700.pdf',\n video: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Vedyom_videonablyudenie.pdf',\n door1: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Dver_na_sebya.pdf',\n foor2: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Dver_ot_sebya.pdf',\n pickUp: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Zdes_mozhno_poluchit_zakazy_A4.pdf',\n instagramQR: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Otmechaj_nas_v_Instagram_QR.pdf',\n vibes1: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Podelis_momentami_1_A1.pdf',\n vibes2: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Podelis_momentami_2_A1.pdf',\n disounts: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Skidki_i_akcii_kazhdyj_den.pdf',\n opening1: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Skoro_otkrytie_1189x841.pdf',\n opening2: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Skoro_otkrytie_594h420.pdf',\n benefits1: 'https://static-basket-05.wbbasket.ru/vol115/extdelivery/promo/Udobnyj_samovyvoz_A1.pdf',\n benefits2: 'https://photos.wbstatic.net/point/promo/Флаер_рядом_с_вами_партнёрский_пункт_самовывоза.ai',\n benefits3: 'https://photos.wbstatic.net/point/promo/Широкий_асортимент_А1.pdf',\n}\n","import i18n from 'i18next'\n\nimport { docs } from 'shared/constants/docs'\n\nexport const getBrandbookPath = (): string => {\n return i18n.language === 'ka' ? docs.brandbookGeGe : docs.brandbookGeRu\n}\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Margin } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { ListItem } from 'components/ui/ListItem/ListItem'\nimport { Button, Checkbox, Divider, Flex, Paragraph, Text, Title } from 'components/uiKit'\nimport { getBrandbookPath } from 'utils/helpers/getBrandbookPath'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { docs } from 'shared/constants/docs'\nimport { URLS } from 'shared/constants/urls'\nimport { colors } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\nimport { EventType } from 'types/types'\n\nimport s from './RequirementsStep.module.scss'\n\nexport const RequirementsStep = observer(() => {\n const { createOrderUiStore: uiStore, appStore } = useStore()\n\n const { t } = useTranslation()\n\n const country = appStore.companyCountry\n\n const getKey = (key: string) => `${OrderKeys.requirementsStep}.${key}`\n\n const nextStepHandler = () => {\n sendEvent(EventType.orderStep, { step: 1, success: 1 })\n uiStore.setSelectedStep(uiStore.selectedStep + 1)\n }\n\n return (\n
    \n {t(getKey('Знакомство с требованиями'))}\n\n \n \n {t(getKey('Внимательно изучите изложенные'))}\n {t(getKey('Если ваше помещение соответствует'))}\n \n \n\n \n\n {t(getKey('Общие требования к партнёрскому'))}\n\n
      \n
    • \n 1.\n {t(getKey('Помещение должно быть нежилым'))}\n
    • \n
    • \n 2.\n
      \n {country !== Country.GE ? (\n <>\n {t(getKey('Общая площадь помещения'))}\n {t(getKey('Для РФ в городах'))}\n {t(getKey('Для РФ в малонаселенных'))}\n {t(getKey('Для стран СНГ'))}\n {t(getKey('В Армении, Казахстане и Беларуси'))}\n {t(getKey('В Киргизии и Узбекистане'))}\n \n ) : (\n {t(getKey('Общая площадь помещения ПВЗ'))}\n )}\n
      \n
    • \n
    • \n 3.\n {t(getKey('У ПВЗ должна быть'))}\n
    • \n
    • \n 4.\n {t(getKey('Не допускается активация'))}\n
    • \n
    • \n 5.\n {t(getKey('Необходимо наличие ночного'))}\n
    • \n
    • \n 6.\n
      \n {country !== Country.GE ? (\n {t(getKey('Должен быть выполнен качественный'))}\n ) : (\n {t(getKey('Качественный ремонт'))}\n )}{' '}\n \n {t(getKey('брендбуку'))}\n \n {country !== Country.GE && (\n

      \n {t(getKey('Помощь с планировкой'))}\n

      \n )}\n
      \n
    • \n {country !== Country.GE && (\n <>\n
    • \n 7.\n
      \n {t(getKey('Минимальный набор оборудования'))}\n \n
        \n \n {t(getKey('Световой режимник'))}\n \n \n {t(getKey('Вывеска и кронштейн'))}\n \n \n {t(getKey('Стеллажи на складе'))}\n \n \n {t(getKey('2 примерочные'))}\n \n \n {t(getKey('Ресепшен и стол'))}\n \n \n \n {t(getKey('Камеры видеонаблюдения'))}{' '}\n *\n \n \n \n {t(getKey('Электронный замок'))}\n \n
      \n
      \n
      \n
    • \n
    • \n 7.1.\n
      \n {t(getKey('Оборудование ПВЗ'))}\n \n
        \n \n {t(getKey('Открытие бизнеса'))}\n \n \n {t(getKey('Площадь ПВЗ'))}\n \n \n {t(getKey('Стол для заказов'))}\n \n \n {t(getKey('Примерочные необязательны'))}\n \n \n \n {t(getKey('Одна камера'))} *\n \n \n \n {t(getKey('Смартфон или ноутбук'))}\n \n \n {t(getKey('Мини вывеска'))}\n \n \n {t(getKey('Передача ключа'))}\n \n
      \n \n \n *{' '}\n {t(getKey('Необходимо установить 2'))}\n \n \n
      \n
      \n
    • \n \n )}\n
    \n\n \n\n {country !== Country.GE && (\n \n \n * {t(getKey('Согласно п. 6.1 и 6.6'))}\n \n \n )}\n\n \n {t(getKey('Рекомендуем также ознакомиться'))}\n \n\n
      \n \n \n {t(getKey('Оферта об оказании'))}\n \n \n \n \n {t(getKey('Правила оказания'))}\n \n \n
    \n\n \n uiStore.setAgreedWithRequirements(e.target.checked)}\n data-testid=\"agreedWithRequirements\"\n >\n {t(getKey('Я ознакомлен(а) и согласен(на)'))}\n \n \n\n \n {t(getSharedKey('next'))}\n \n
    \n )\n})\n\nconst stylesForMarker = {\n color: colors.corp,\n fontWeight: 600,\n display: 'block',\n minWidth: 25,\n}\n","import dayjs from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys, timetableGeneralOptions } from 'sections/LKSection/modules/OrderModule/data'\nimport { PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport { TimetableModel } from 'sections/LKSection/shared/PickPointSharedModule/models/TimetableModel/TimetableModel'\nimport { PickPointType, WeekDays } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Info } from 'components/ui/Info/Info'\nimport { Checkbox, Flex, FormItem, Select, Text, TimeRangePicker } from 'components/uiKit'\nimport { TIME_FORMAT } from 'shared/constants/values'\n\ntype TimetableFormProps = {\n uiStore: TimetableModel\n pickPointType: PickPointType\n floorLevel: PickPointLocation\n disabled?: boolean\n hideInfo?: boolean\n}\n\nexport const TimetableForm = observer(\n ({ uiStore, pickPointType, floorLevel, disabled = false, hideInfo }: TimetableFormProps) => {\n const { t } = useTranslation()\n\n const isFlexibleTimetable = pickPointType === PickPointType.folk || floorLevel === PickPointLocation.shoppingMall\n const style = { width: '100%' }\n const rangePickerStatus = uiStore.invalidOpeningHours ? 'error' : ''\n\n const dayOffChangeHandler = useCallback(\n (day: WeekDays, value: boolean) => {\n uiStore.setWeekDays(\n uiStore.weekDays.map((item) => ({\n ...item,\n isDayOff: item.label === day.label ? value : item.isDayOff,\n })),\n )\n },\n [uiStore.weekDays, uiStore.setWeekDays],\n )\n\n const openingHoursChangeHandler = useCallback(\n (open: string, close: string) => {\n uiStore.setTimetableStart(open)\n uiStore.setTimetableEnd(close)\n },\n [uiStore.setTimetableStart, uiStore.setTimetableEnd],\n )\n\n const getKey = (key: string) => `${OrderKeys.workConditionsStep}.${key}`\n\n return (\n <>\n {!hideInfo && (\n \n {isFlexibleTimetable ? (\n \n {t(getKey('Внимание! График работы'))}\n {t(getKey('Напоминаем, что оптимальное'))}\n \n ) : (\n {t(getKey('Условия открытия'))}\n )}\n \n )}\n\n {isFlexibleTimetable ? (\n <>\n \n {uiStore.weekDays.map((day) => (\n \n dayOffChangeHandler(day, !e.target.checked)}\n disabled={disabled}\n >\n {t(getKey(`weekDays.${day.label}`))}\n \n \n ))}\n \n\n \n {\n if (e?.[0] && e?.[1]) {\n openingHoursChangeHandler(e[0].format(TIME_FORMAT), e[1].format(TIME_FORMAT))\n }\n }}\n />\n \n \n ) : (\n \n uiStore.setTimetableGeneral(value)}\n options={timetableGeneralOptions}\n disabled={disabled}\n placeholder={t(getKey('Выберите время работы'))}\n />\n \n )}\n \n )\n },\n)\n","import { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { Controller, useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { TimetableForm } from 'sections/LKSection/shared/PickPointSharedModule/components/TimetableForm/TimetableForm'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { ErrorText } from 'components/ui/Text/Text'\nimport { Form, FormItem, Input, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nimport { OrderKeys } from '../../../data'\nimport { OrderWorkConditionsViewModel } from '../../../stores/models/OrderWorkConditionsViewModel'\nimport { PickPointLocation } from '../../../types'\n\ntype OrderWorkConditionsFormProps = {\n uiStore: OrderWorkConditionsViewModel\n pickPointType: PickPointType\n floorLevel: PickPointLocation\n isCreation?: boolean\n disabled?: boolean\n}\n\ntype WorkConditionsStepType = {\n area: number\n warehouseArea: number\n cellingHeight: number\n dressingRoomsCount: number\n}\n\nexport const OrderWorkConditionsForm = observer(\n ({ uiStore, pickPointType, floorLevel, isCreation = false, disabled = false }: OrderWorkConditionsFormProps) => {\n const { viewOrderUiStore } = useStore()\n\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.workConditionsStep}.${key}`\n\n const { control, setValue } = useForm({\n mode: 'onChange',\n defaultValues: {\n area: +(uiStore.area || 0),\n warehouseArea: +(uiStore.warehouseArea || 0),\n dressingRoomsCount: +(uiStore.dressingRoomsCount || 0),\n cellingHeight: +(uiStore.cellingHeight || 0),\n },\n })\n\n useEffect(() => {\n if (!isCreation && viewOrderUiStore.initialized) {\n setValue('area', +(uiStore.area || 0))\n setValue('warehouseArea', +(uiStore.warehouseArea || 0))\n setValue('cellingHeight', +(uiStore.cellingHeight || 0))\n setValue('dressingRoomsCount', +(uiStore.dressingRoomsCount || 0))\n }\n }, [viewOrderUiStore.initialized])\n\n return (\n
    \n {t(getKey('График работы ПВЗ'))}\n\n \n\n \n {t(getKey('Помещение и оборудование'))}\n \n\n {/* mytodo: заменить react-hook-form на форму из анта */}\n\n \n \n name={'area'}\n control={control}\n rules={{\n required: t(getSharedKey('required')),\n min: {\n value: 1,\n message: t(getSharedKey('min'), { count: 1 }),\n },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setArea(e.target.value)\n }}\n placeholder=\"50\"\n type=\"number\"\n min={0}\n disabled={disabled}\n data-testid=\"area\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n\n \n \n name={'warehouseArea'}\n control={control}\n rules={{\n required: t(getSharedKey('required')),\n min: {\n value: 1,\n message: t(getSharedKey('min'), { count: 1 }),\n },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setWarehouseArea(e.target.value)\n }}\n placeholder=\"30\"\n type=\"number\"\n min={0}\n disabled={disabled}\n data-testid=\"warehouseArea\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n\n \n \n name={'cellingHeight'}\n control={control}\n rules={{\n required: t(getSharedKey('required')),\n max: {\n value: 10,\n message: t(getSharedKey('max'), { count: 10 }),\n },\n min: {\n value: 2,\n message: t(getSharedKey('min'), { count: 2 }),\n },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setCellingHeight(e.target.value)\n }}\n placeholder=\"2.5\"\n type=\"number\"\n disabled={disabled}\n data-testid=\"cellingHeight\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n\n \n \n name={'dressingRoomsCount'}\n control={control}\n rules={{\n required: t(getSharedKey('required')),\n min: { value: 0, message: t(getSharedKey('min'), { count: 0 }) },\n }}\n render={({ field, fieldState }) => (\n <>\n {\n field.onChange(e.target.value)\n uiStore.setDressRoomsCount(e.target.value)\n }}\n placeholder=\"2\"\n type=\"number\"\n min={0}\n disabled={disabled}\n data-testid=\"dressingRoomsCount\"\n />\n {fieldState.error?.message && {fieldState.error.message}}\n \n )}\n />\n \n \n )\n },\n)\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { MIN_UPDATE_REASON_LENGTH, PvzKeys } from 'sections/LKSection/modules/PvzModule/data'\n\nimport { MIN_OPENING_HOURS, MIN_WORKING_DAYS } from '../../data'\nimport { TimetableModel } from '../../models/TimetableModel/TimetableModel'\n\nexport class ValidateTimetable extends ValidateFormService {\n validate = (uiStore: TimetableModel, returnType: 'boolean' | 'array' = 'boolean', isOrder: boolean = true) => {\n const errors: string[] = []\n let numberOfWorkingDays = 0\n\n const getKey = (key: string) => `${OrderKeys.workConditionsStep}.validate.${key}`\n\n uiStore.weekDays.forEach((day) => {\n if (!day.isDayOff) {\n numberOfWorkingDays++\n }\n })\n\n if (numberOfWorkingDays < MIN_WORKING_DAYS) {\n errors.push(i18next.t(getKey('numberOfWorkingDays'), { count: MIN_WORKING_DAYS }))\n }\n\n if (uiStore.invalidOpeningHours) {\n errors.push(i18next.t(getKey('invalidOpeningHours'), { count: MIN_OPENING_HOURS }))\n }\n\n if (!isOrder && uiStore.timetableUpdateReason.trim().length < MIN_UPDATE_REASON_LENGTH) {\n errors.push(\n i18next.t(`${PvzKeys.editTimetablePage}.validate.timetableUpdateReasonMinLength`, {\n count: MIN_UPDATE_REASON_LENGTH,\n }),\n )\n }\n\n return returnType === 'boolean' ? this.hasNotErrors(errors) : errors\n }\n}\n\nexport const validateTimetable = new ValidateTimetable()\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderWorkConditionsViewModel } from 'sections/LKSection/modules/OrderModule/stores/models/OrderWorkConditionsViewModel'\nimport { validateTimetable } from 'sections/LKSection/shared/PickPointSharedModule/components/TimetableForm/validate'\n\nimport { OrderKeys } from '../../../data'\nimport { getCreateOrderPageKey } from '../../../utils'\n\nexport class ValidateWorkConditions extends ValidateFormService {\n validate = (workConditionsModel: OrderWorkConditionsViewModel, returnType: 'boolean' | 'array' = 'boolean') => {\n const errors: string[] = []\n\n const getKey = (key: string) => `${OrderKeys.workConditionsStep}.validate.${key}`\n\n errors.push(...(validateTimetable.validate(workConditionsModel.timetable, 'array') as string[]))\n\n if (!workConditionsModel.area) {\n errors.push(i18next.t(getKey('areaRequired')))\n } else {\n if (+workConditionsModel.area < 1) {\n errors.push(i18next.t(getKey('areaMin'), { count: 1 }))\n }\n }\n\n if (!workConditionsModel.warehouseArea) {\n errors.push(i18next.t(getKey('warehouseAreaRequired')))\n } else {\n if (+workConditionsModel.warehouseArea < 1) {\n errors.push(i18next.t(getKey('warehouseAreaMin'), { count: 1 }))\n }\n }\n\n if (!workConditionsModel.cellingHeight) {\n errors.push(i18next.t(getKey('cellingHeightRequired')))\n } else {\n if (+workConditionsModel.cellingHeight < 2) {\n errors.push(i18next.t(getKey('cellingHeightMin'), { count: 2 }))\n }\n if (+workConditionsModel.cellingHeight > 10) {\n errors.push(i18next.t(getKey('cellingHeightMax'), { count: 10 }))\n }\n }\n\n if (!workConditionsModel.dressingRoomsCount) {\n errors.push(i18next.t(getKey('dressingRoomsCountRequired')))\n } else {\n if (+workConditionsModel.dressingRoomsCount < 0) {\n errors.push(i18next.t(getKey('dressingRoomsCountMin'), { count: 0 }))\n }\n }\n\n return returnType === 'boolean'\n ? this.hasNotErrors(errors, i18next.t(getCreateOrderPageKey('создания заявки')))\n : errors\n }\n}\n\nexport const validateWorkConditions = new ValidateWorkConditions()\n","import { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { OrderWorkConditionsForm } from 'sections/LKSection/modules/OrderModule/components/Forms/OrderWorkConditionsForm/OrderWorkConditionsForm'\nimport { validateWorkConditions } from 'sections/LKSection/modules/OrderModule/components/Forms/OrderWorkConditionsForm/validate'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { DEFAULT_END_TIME, DEFAULT_START_TIME } from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { PickPointType } from 'sections/LKSection/shared/PickPointSharedModule/types'\nimport { Margin } from 'components/ui'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { EventType } from 'types/types'\n\nimport s from './WorkConditionsStep.module.scss'\n\nexport type WorkConditionsStepType = {\n area: number\n warehouseArea: number\n cellingHeight: number\n dressingRoomsCount: number\n}\n\nexport const WorkConditionsStep = observer(() => {\n const { createOrderUiStore: uiStore } = useStore()\n\n const { t } = useTranslation()\n\n const location = uiStore.location\n\n useEffect(() => {\n if (location.pickPointType !== PickPointType.folk) {\n uiStore.workConditions.timetable.setTimetableStart(DEFAULT_START_TIME)\n uiStore.workConditions.timetable.setTimetableEnd(DEFAULT_END_TIME)\n }\n }, [location.pickPointType])\n\n const nextStepHandler = () => {\n if (validateWorkConditions.validate(uiStore.workConditions)) {\n sendEvent(EventType.orderStep, { step: 3, success: 1 })\n uiStore.setSelectedStep(uiStore.selectedStep + 1)\n } else {\n sendEvent(EventType.orderStep, { step: 3, success: 0, reason: 'Не пройдена валидация' })\n }\n }\n\n return (\n \n {t(getCreateOrderPageKey('Условия работы'))}\n\n \n \n\n \n \n uiStore.setSelectedStep(uiStore.selectedStep - 1)}\n type=\"default\"\n data-testid=\"previousStepInWorkConditions\"\n >\n {t(getCreateOrderPageKey('Предыдущий шаг'))}\n \n\n \n \n \n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy, useEffect } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Container } from 'components/ui/Container/Container'\nimport { Href } from 'components/ui/Href/Href'\nimport { Button, Flex, Steps, Title } from 'components/uiKit'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { OrderKeys } from '../../data'\nimport { FilesUploadingStep } from './Steps/FilesUploadingStep/FilesUploadingStep'\nimport { LocationStep } from './Steps/LocationStep/LocationStep'\nimport { RequirementsStep } from './Steps/RequirementsStep/RequirementsStep'\nimport { WorkConditionsStep } from './Steps/WorkConditionsStep/WorkConditionsStep'\n\nconst stepTitles = [\n {\n title: 'Требования',\n },\n {\n title: 'Расположение',\n },\n {\n title: 'Условия работы',\n },\n {\n title: 'Загрузка файлов',\n },\n]\n\nconst steps: Map = new Map([\n [1, ],\n [2, ],\n [3, ],\n [4, ],\n])\n\nconst getKey = (key: string) => `${OrderKeys.createOrderPage}.${key}`\n\nconst CreateOrderPage = observer(() => {\n const { createOrderUiStore: uiStore, viewPvzUiStore } = useStore()\n\n const location = useLocation()\n const { t } = useTranslation()\n\n const queryParams = new URLSearchParams(location.search)\n const exPvzId = queryParams.get('pvzId')\n\n const items = stepTitles.map((item) => ({ key: item.title, title: t(getKey(item.title)) }))\n\n useEffect(() => {\n if (exPvzId) {\n const pvzItem = viewPvzUiStore.getPvz(+exPvzId)\n\n if (pvzItem?.externalId) {\n uiStore.setExPickPointId(pvzItem.externalId)\n }\n }\n }, [uiStore, exPvzId, viewPvzUiStore])\n\n useEffect(() => {\n document.getElementById('routeScrollId')?.scrollTo(0, 0)\n }, [uiStore.selectedStep])\n\n useEffect(() => {\n return () => {\n uiStore.setExPickPointId(null)\n }\n }, [])\n\n return (\n \n \n \n \n \n \n \n )}\n \n )\n})\n","export default \"__VITE_ASSET__B1kGk1Fd__\"","export default \"__VITE_ASSET__DErFdDOj__\"","export default \"__VITE_ASSET__XIIcFOEF__\"","export default \"__VITE_ASSET__xKN6$zI2__\"","export default \"__VITE_ASSET__F34F$MhT__\"","import { observer } from 'mobx-react-lite'\n\nimport { Margin } from 'components/ui'\nimport { Flex, Text } from 'components/uiKit'\nimport { colors } from 'shared/constants/values'\n\nimport backIcon from 'assets/img/lk-section/Order/order-statuses/back.png'\nimport exclaimIcon from 'assets/img/lk-section/Order/order-statuses/exclaim.png'\nimport failureIcon from 'assets/img/lk-section/Order/order-statuses/failure.png'\nimport successIcon from 'assets/img/lk-section/Order/order-statuses/success.png'\nimport waitIcon from 'assets/img/lk-section/Order/order-statuses/wait.png'\nimport s from './OrderItemStatusHeader.module.scss'\n\nexport type OrderStatusType = 'success' | 'wait' | 'back' | 'exclaim' | 'failure'\n\nconst typeToIng: { [key in OrderStatusType]: string } = {\n success: successIcon,\n wait: waitIcon,\n back: backIcon,\n failure: failureIcon,\n exclaim: exclaimIcon,\n}\n\ntype OrderItemStatusHeaderProps = {\n type: 'success' | 'wait' | 'back' | 'exclaim' | 'failure'\n title: string\n isActive?: boolean\n subTitle?: string\n}\n\nexport const OrderItemStatusHeader = observer(\n ({ title, type, isActive = false, subTitle }: OrderItemStatusHeaderProps) => {\n return (\n \n \n \n \n\n \n \n \n {title}\n \n \n {subTitle}\n \n \n \n \n )\n },\n)\n","import { OrderKeys } from '../OrderModule/data'\n\nexport const getELockModuleKey = (key: string) => `${OrderKeys.eLockModule}.${key}`\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\nimport { MIN_DESCRIPTION_LENGTH, TicketKeys } from '../../data'\nimport { CreateTicketUiStore } from '../../stores/CreateTicketUiStore'\nimport { TicketType } from '../../types'\n\nconst getKey = (key: string) => `${TicketKeys.createTicket}.validate.${key}`\n\nexport class ValidateTicketForm extends ValidateFormService {\n validate = (uiStore: CreateTicketUiStore) => {\n const errors: string[] = []\n\n if (uiStore.ticketTypeValue === TicketType.openingOrder) {\n if (uiStore.description.trim().length < MIN_DESCRIPTION_LENGTH) {\n errors.push(i18next.t(getKey('ticketDescriptionError'), { count: MIN_DESCRIPTION_LENGTH }))\n }\n }\n\n if (uiStore.ticketTypeValue === TicketType.roomLayout) {\n if (uiStore.invalidPhotos) {\n errors.push(i18next.t(getSharedKey('invalidPhotos')))\n }\n }\n\n if (uiStore.invalidVideoUrl) {\n errors.push(i18next.t(getKey('ticketInvalidUrl')))\n }\n\n return this.hasNotErrors(errors)\n }\n}\n\nexport const validateTicketForm = new ValidateTicketForm()\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { getELockModuleKey } from 'sections/LKSection/modules/ELockModule/utils'\nimport { getOrderFilesStepKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Flex, Input, Modal, Select, TextArea } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { WEB_LINK_REGEXP } from 'shared/constants/regExp'\n\nimport {\n initialTicketFileValue,\n MIN_DESCRIPTION_LENGTH,\n ticketFileValidate,\n TicketKeys,\n ticketPhotoValidate,\n ticketReasonOptions,\n ticketTypeOptions,\n} from '../../data'\nimport { TicketPhotoType, TicketReason, TicketType } from '../../types'\nimport { validateTicketForm } from './validate'\n\ntype CreateTicketModalProps = {\n open: boolean\n setIsDeleteModalOpen: React.Dispatch>\n}\n\ntype TicketFormType = {\n description: string\n link: string\n}\n\ntype DeleteTicketFileType = { index?: number; fileType?: TicketPhotoType }\n\nconst getKey = (key: string) => `${TicketKeys.createTicket}.${key}`\n\nexport const CreateTicketModal = observer(({ open, setIsDeleteModalOpen }: CreateTicketModalProps) => {\n const { createTicketUiStore: uiStore, viewOrderUiStore, viewTicketUiStore } = useStore()\n\n const [form] = Form.useForm()\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n if (viewOrderUiStore.selectedOrder?.id) {\n uiStore.setSelectedOrderId(viewOrderUiStore.selectedOrder.id)\n }\n }, [viewOrderUiStore.selectedOrder])\n\n useEffect(() => {\n uiStore.reset()\n form.resetFields()\n }, [uiStore.ticketTypeValue])\n\n const createTicketHandler = async () => {\n if (validateTicketForm.validate(uiStore)) {\n setLoading(true)\n\n const ticketCreated = await uiStore.createTicket()\n\n if (ticketCreated) {\n setIsDeleteModalOpen(false)\n uiStore.reset()\n form.resetFields()\n void viewTicketUiStore.getTicketList()\n }\n\n setLoading(false)\n }\n }\n\n const deleteFileHandler = ({ index = 0, fileType = TicketPhotoType.generalPhoto }: DeleteTicketFileType) => {\n if (uiStore.ticketTypeValue === TicketType.openingOrder) {\n const newFiles = [...uiStore.files]\n newFiles.splice(index, 1)\n uiStore.setFiles(newFiles)\n } else {\n uiStore.setFileData(fileType)(initialTicketFileValue)\n }\n }\n\n return (\n setIsDeleteModalOpen(false)}\n >\n
    \n \n uiStore.setTicketTypeValue(value)}\n options={ticketTypeOptions}\n placeholder={t(getKey('Выберите тему тикета'))}\n />\n \n\n \n uiStore.setSelectedOrderId(value)}\n options={uiStore.ordersOptions}\n placeholder={t(getKey('Выберите заявку'))}\n showSearch\n />\n \n\n {uiStore.ticketTypeValue === TicketType.openingOrder && (\n \n uiStore.setTicketReasonValue(value)}\n options={ticketReasonOptions}\n placeholder={t(getKey('Выберите причину обращения'))}\n />\n \n )}\n\n {uiStore.ticketTypeValue === TicketType.openingOrder && (\n \n label={t(getELockModuleKey('Описание проблемы'))}\n name=\"description\"\n rules={[\n { min: MIN_DESCRIPTION_LENGTH, message: t(getSharedKey('minLength'), { count: MIN_DESCRIPTION_LENGTH }) },\n { required: true, message: t(getSharedKey('required')) },\n ]}\n >\n uiStore.setDescription(e.target.value)}\n maxLength={500}\n style={{ resize: 'none' }}\n placeholder={`${t(getKey('Опишите проблему'))}...`}\n />\n \n )}\n\n \n label={`${t(getSharedKey('attachLink'))} (${t(getSharedKey('notRequired'))})`}\n name=\"link\"\n rules={[{ pattern: WEB_LINK_REGEXP, message: t(getKey('URLIncorrectMessage')) }]}\n tooltip={t(getKey('Если проблема с загрузкой в тикетах'))}\n >\n uiStore.setLink(e.target.value)}\n maxLength={500}\n placeholder={t(getKey('Прикрепите ссылку на облачное хранилище'))}\n />\n \n\n {uiStore.ticketTypeValue === TicketType.openingOrder && (\n \n \n {Array.from({ length: Math.min(3, uiStore.files.length + 1) }).map((_, index) => (\n uiStore.setFiles([...uiStore.files, file])}\n onDelete={() => deleteFileHandler({ index })}\n fileValidationOptions={ticketFileValidate}\n />\n ))}\n \n \n )}\n\n {uiStore.ticketTypeValue === TicketType.roomLayout && (\n \n \n uiStore.setFileData(TicketPhotoType.generalPhoto)(file)}\n onDelete={() => deleteFileHandler({ fileType: TicketPhotoType.generalPhoto })}\n fileValidationOptions={ticketPhotoValidate}\n />\n \n\n \n uiStore.setFileData(TicketPhotoType.btiDocument)(file)}\n onDelete={() => deleteFileHandler({ fileType: TicketPhotoType.btiDocument })}\n fileValidationOptions={ticketPhotoValidate}\n />\n \n \n )}\n \n \n )\n})\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { ElockReasonModel } from 'sections/LKSection/modules/ELockModule/stores/Reason/ElockReasonModel'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\n\nimport { MIN_DESCRIPTION_LENGTH } from './OrderELockForm'\n\nexport class ValidateElockForm extends ValidateFormService {\n validate = (uiStore: ElockReasonModel) => {\n const errors: string[] = []\n\n const getKey = (key: string) => `${OrderKeys.eLockModule}.validate.${key}`\n\n if (!uiStore.eLockReasonValue) {\n errors.push(i18next.t(getKey('invalidReason')))\n }\n\n if (!uiStore.description.trim().length) {\n errors.push(i18next.t(getKey('invalidDescription')))\n } else if (uiStore.description.trim().length < MIN_DESCRIPTION_LENGTH) {\n errors.push(i18next.t(getKey('invalidDescriptionLength'), { count: MIN_DESCRIPTION_LENGTH }))\n }\n\n return this.hasNotErrors(errors, i18next.t(getKey('заполнения формы')))\n }\n}\n\nexport const validateElockForm = new ValidateElockForm()\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { OrderELockForm } from 'sections/LKSection/modules/ELockModule/components/OrderELockForm/OrderELockForm'\nimport { validateElockForm } from 'sections/LKSection/modules/ELockModule/components/OrderELockForm/validate'\nimport { ElockInfoStatus } from 'sections/LKSection/modules/ELockModule/types'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Margin } from 'components/ui'\nimport { Modal, Text } from 'components/uiKit'\nimport { getActivateOrderRoute } from 'utils/helpers/getRoutes'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n\ntype ActivateWithoutELockModalProps = {\n orderId: number\n open: boolean\n setIsOpen: React.Dispatch>\n}\n\nexport const ActivateWithoutELockModal = observer(({ orderId, open, setIsOpen }: ActivateWithoutELockModalProps) => {\n const { viewOrderUiStore, eLockUiStore } = useStore()\n const { eLockReason: uiStore } = eLockUiStore\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [loading, setLoading] = useState(false)\n\n const eLockInfoStatus = viewOrderUiStore.selectedOrder?.eLockInfo?.status\n const formDisabled = eLockInfoStatus === ElockInfoStatus.pending || eLockInfoStatus === ElockInfoStatus.approved\n\n const okButtonHandler = async () => {\n if (validateElockForm.validate(uiStore) && viewOrderUiStore.selectedOrder?.id) {\n setLoading(true)\n\n const res =\n eLockInfoStatus === ElockInfoStatus.remark\n ? await uiStore.updateELockReason(viewOrderUiStore.selectedOrder.id)\n : await uiStore.setELockReason(viewOrderUiStore.selectedOrder.id)\n\n setLoading(false)\n\n if (res) {\n navigate(getActivateOrderRoute(orderId))\n uiStore.reset()\n\n await viewOrderUiStore.getOrderList()\n viewOrderUiStore.setSelectedOrder(viewOrderUiStore.getOrder(+orderId))\n }\n }\n }\n\n const cancelButtonHandler = () => {\n setIsOpen(false)\n uiStore.reset()\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n \n {t(getKey('Если нет возможности установить замок'))}\n \n\n \n \n )\n})\n","import { Modal } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { ConfirmedToOpen } from 'sections/LKSection/modules/OrderModule/types'\nimport { Checkbox, Flex, Text } from 'components/uiKit'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\ntype ConfirmOrderModalProps = {\n order: Order\n open: boolean\n isMove: boolean\n setIsOpen: React.Dispatch>\n setIsConfirmed: React.Dispatch>\n}\n\nexport const ConfirmOrderModal = observer(\n ({ order, open, isMove, setIsOpen, setIsConfirmed }: ConfirmOrderModalProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const [agree, setAgree] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const okButtonHandler = async () => {\n setLoading(true)\n\n if (order.id) {\n if ((await uiStore.confirmOrder(order.id, true)) && order) {\n order.confirmedToOpen = ConfirmedToOpen.true\n setIsConfirmed(true)\n\n /* Для синхронизации данных с бека */\n await uiStore.getOrderList()\n uiStore.setSelectedOrder(uiStore.getOrder(order.id))\n }\n }\n\n setLoading(false)\n setIsOpen(false)\n }\n\n const cancelButtonHandler = async () => {\n setLoading(true)\n\n if (order.id) {\n await uiStore.confirmOrder(order.id, false)\n\n if (await uiStore.deleteOrder(order.id)) {\n navigate(LKRoutesEnum.orders)\n }\n }\n\n setLoading(false)\n setIsOpen(false)\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n \n {isMove ? (\n {t(getKey('Если вы готовы открыть ПВЗ'))}\n ) : (\n <>\n {t(getKey('Подтвердите свою готовность'))}\n {t(getKey('При удалении заявки в первые'))}\n \n )}\n\n {t(getKey('Подтверждаете открытие ПВЗ?'))}\n\n setAgree(e.target.checked)}>\n {t(getKey('Да, я буду открывать ПВЗ'))}\n \n \n \n )\n },\n)\n","import { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex, Text } from 'components/uiKit'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\n\nexport const ELockOrderText = () => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n <>\n \n {t(getKey('На данном этапе вам необходимо'))}\n \n\n \n {t(getKey('Если вы установили замок'))}\n \n\n \n {t(getKey('В исключительных случаях'))}\n \n\n \n \n {t(getKey('Если у вас есть вопросы'))} WB Point.\n \n \n \n \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { FurnitureOrderType } from 'sections/LKSection/modules/OrderModule/types'\nimport { Flex, Text } from 'components/uiKit'\n\ntype FurnitureOrderTextProps = {\n furnitureOrderType: FurnitureOrderType\n isMove: boolean\n}\n\nexport const FurnitureOrderText = ({ furnitureOrderType, isMove }: FurnitureOrderTextProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n {isMove && (\n <>\n {t(getKey('Осталось подготовить пункт выдачи'))}\n {t(getKey('Поскольку это переезд'))}\n {t(getKey('После этого перейдите'))}\n \n )}\n\n {!isMove &&\n (furnitureOrderType === FurnitureOrderType.auto ? (\n <>\n \n \n {t(getKey('Осталось подготовить пункт выдачи'))} {t(getKey('Отправили вам в подарок оборудование'))}\n \n {t(getKey('Оборудование доставят в пункт выдачи'))}\n \n\n {t(getKey('На данном этапе ваша задача'))}\n \n ) : (\n <>\n \n {t(getKey('Ваша заявка была одобрена'))}\n {t(getKey('Для этого'))}:\n - {t(getKey('Закажите и установите контроллер'))}\n - {t(getKey('Фирменную вывеску и панель кронштейн'))}\n \n\n \n {t(getKey('Фирменная вывеска мини'))}\n {t(getKey('выплата компенсации за вывеску'))}\n {t(getKey('Оформить доставку вывески мини'))}\n \n\n \n {t(getKey('Артикулы'))}:\n \n {t(getKey('Контроллер'))} — 211414522\n \n \n {t(getKey('Световой кронштейн'))} — 209248151\n \n \n {t(getKey('Световая белая мини-вывеска'))} — 221540808\n \n \n {t(getKey('Световая фиолетовая мини-вывеска'))} — 221540807\n \n \n\n \n {t(getKey('На каждую позицию необходимо'))}\n {t(getKey('Формат вывески мини'))}\n \n\n \n {t(getKey('Чтобы получить оборудование'))}:\n 1. {t(getKey('Скопировать артикул позиции'))};\n 2. {t(getKey('Перейти в веб-версию Wildberries'))};\n 3. {t(getKey('Зайти в профиль под номером'))};\n 4. {t(getKey('Вставить артикул в поиск'))};\n 5. {t(getKey('Добавить в корзину позицию'))};\n 6. {t(getKey('Изменить способ оплаты'))};\n 7. {t(getKey('Выбрать удобный адрес'))};\n 8. {t(getKey('Заказать товар в подарок'))}\n {t(getKey('В случае оформления заказа'))}\n \n\n \n {t(getKey('После чего переходите к активации'))}\n {t(getKey('При активации ПВЗ не забудьте'))}\n \n \n ))}\n \n )\n}\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { ElockInfoStatus } from 'sections/LKSection/modules/ELockModule/types'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { ConfirmedToOpen, FurnitureOrderType } from 'sections/LKSection/modules/OrderModule/types'\nimport { getOrderItemPageKey, getOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { CreateTicketModal } from 'sections/LKSection/modules/TicketModule/components/CreateTicketModal/CreateTicketModal'\nimport { Margin } from 'components/ui'\nimport { Button, Flex, Skeleton, Title } from 'components/uiKit'\nimport { getActivateELockRoute, getActivateOrderRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { Country } from 'shared/types/types'\n\nimport { ActivateWithoutELockModal } from '../../ActivateWithoutELockModal/ActivateWithoutELockModal'\nimport { OrderItemStatusHeader } from '../../OrderItemStatusHeader/OrderItemStatusHeader'\nimport { ConfirmOrderModal } from './ConfirmOrderModal/ConfirmOrderModal'\nimport { ELockOrderText } from './ELockOrderText/ELockOrderText'\nimport { FurnitureOrderText } from './FurnitureOrderText/FurnitureOrderText'\n\nexport type OrderStatusAcceptedLocationState = {\n fromActivateELockPage: boolean\n}\n\ntype OrderStatusAcceptedProps = {\n order: Order\n}\n\nexport const OrderStatusAccepted = observer(({ order }: OrderStatusAcceptedProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const location = useLocation()\n const { t } = useTranslation()\n\n const fromActivateELockPage = (location.state as OrderStatusAcceptedLocationState)?.fromActivateELockPage\n\n const [isCreateTicketModalOpen, setIsCreateTicketModalOpen] = useState(false)\n const [isConfirmModalOpen, setIsConfirmModalOpen] = useState(false)\n const [isActivateWithoutELockModalOpen, setIsActivateWithoutELockModalOpen] = useState(Boolean(fromActivateELockPage))\n const [isELockSectionOpened, setIsELockSectionOpened] = useState(Boolean(fromActivateELockPage))\n const [isConfirmed, setIsConfirmed] = useState(false)\n const [loadingFurnitureOrderType, setLoadingFurnitureOrderType] = useState(false)\n const [furnitureOrderType, setFurnitureOrderType] = useState(FurnitureOrderType.none)\n\n const isDeleted = Boolean(order.deleted)\n const isMove = Boolean(order.exPickPointId) && (order.country === Country.RU || order.country === Country.BY)\n\n useAsyncEffect(async () => {\n if (order.confirmedToOpen === ConfirmedToOpen.none) {\n setIsConfirmModalOpen(true)\n }\n\n if (order.confirmedToOpen === ConfirmedToOpen.true) {\n setIsConfirmed(true)\n }\n\n if (order.id) {\n setLoadingFurnitureOrderType(true)\n const res = await uiStore.getFurnitureOrderType(order.id)\n setFurnitureOrderType(res ?? FurnitureOrderType.none)\n setLoadingFurnitureOrderType(false)\n }\n }, [order])\n\n const activateELockStepHandler = () => {\n if (order.id) {\n navigate(getActivateELockRoute(order.id))\n }\n }\n\n const activateOrderStep = () => {\n if (order.eLockInfo?.status === ElockInfoStatus.pending || order.country !== Country.RU) {\n if (order.id) {\n navigate(getActivateOrderRoute(order.id))\n }\n } else {\n setIsELockSectionOpened(true)\n }\n }\n\n const createTicketHandler = () => {\n setIsCreateTicketModalOpen(true)\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n {order.country === Country.RU && !order.exPickPointId ? (\n <>\n \n \n \n \n ) : (\n <>\n \n \n \n )}\n\n {isConfirmed && (\n \n \n \n {isELockSectionOpened && t(getKey('Установите и активируйте замок'))}\n\n {!isELockSectionOpened && t(getKey(isMove ? 'Ваша заявка на переезд одобрена' : 'Ваша заявка одобрена'))}\n \n\n \n {isELockSectionOpened ? (\n <>\n \n\n \n setIsActivateWithoutELockModalOpen(true)}\n type=\"default\"\n disabled={isDeleted}\n >\n {t(getKey('Активация без замка'))}\n \n \n \n \n ) : (\n <>\n \n\n \n \n \n \n \n )}\n \n \n \n )}\n\n \n\n {order.id && (\n \n )}\n\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\n\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\nexport const OrderStatusActivated = observer(() => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { getOrderItemPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Margin } from 'components/ui'\nimport { Text } from 'components/uiKit'\nimport { Country } from 'shared/types/types'\n\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\ntype OrderStatusCreatedProps = {\n order: Order\n}\n\nexport const OrderStatusCreated = observer(({ order }: OrderStatusCreatedProps) => {\n const { t } = useTranslation()\n\n const isMove = Boolean(order.exPickPointId)\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n {order.country === Country.RU && !order.exPickPointId ? (\n <>\n \n \n \n ) : (\n <>\n \n \n )}\n\n \n \n {order.country === Country.RU && !isMove ? t(getKey('Заявка оплачена и подана')) : t(getKey('Заявка создана и подана'))}\n \n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { getOrderItemPageKey, getOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\n\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\nexport const OrderStatusDeclined = observer(() => {\n const { t } = useTranslation()\n\n return (\n <>\n \n \n )\n})\n","import { Modal } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys, regionsWithReferralCode } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { OrderStatus } from 'sections/LKSection/modules/OrderModule/types'\nimport { validatePickPointFiles } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/validate'\nimport { Margin } from 'components/ui'\nimport { Info } from 'components/ui/Info/Info'\nimport { Button, Flex, Input, Paragraph, Text, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\ntype OrderStatusDraftProps = {\n order: Order\n}\n\nexport const OrderStatusDraft = observer(({ order }: OrderStatusDraftProps) => {\n const { viewOrderUiStore: uiStore, createOrderUiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const [loadingPublish, setLoadingPublish] = useState(false)\n const [loadingDelete, setLoadingDelete] = useState(false)\n const [isPublishModalOpen, setIsPublishModalOpen] = useState(false)\n const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false)\n const [referralCode, setReferralCode] = useState('')\n\n const isDeleted = Boolean(order.deleted)\n const id = order.id ? +order.id : undefined\n const isRegionWithReferralCode = regionsWithReferralCode.some(\n (region) => order?.district.includes(region) || order.region.includes(region) || order.cityName.includes(region),\n )\n\n const publishOrderHandler = async () => {\n if (!id) {\n return\n }\n\n setLoadingPublish(true)\n\n let assignReferralCodeResult = true\n\n if (referralCode.trim().length) {\n assignReferralCodeResult = await uiStore.assignReferralCode(id, referralCode)\n }\n\n if (!assignReferralCodeResult) {\n setLoadingPublish(false)\n return\n }\n\n if (validatePickPointFiles.validate(uiStore.fileList)) {\n const publishOrderResult = await createOrderUiStore.publishOrder(id)\n\n if (publishOrderResult?.status === OrderStatus.waitingPayment) {\n navigate(`${LKRoutesEnum.orderPayment}/${id}`)\n } else {\n navigate(`${LKRoutesEnum.orders}`)\n }\n\n setIsPublishModalOpen(false)\n }\n\n setLoadingPublish(false)\n }\n\n const deleteOrderHandler = async () => {\n setLoadingDelete(true)\n\n const res = id ? await uiStore.deleteOrder(id) : false\n\n if (res) {\n navigate(LKRoutesEnum.orders)\n }\n\n setLoadingDelete(false)\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n \n {t(getKey('Черновик создан'))}\n \n\n {t(getKey('Заявка на добавление ПВЗ создана'))}\n\n \n {t(getKey('Перед отправкой заявки ещё раз убедитесь'))}:\n \n \n - {t(getKey('вход на первой линии'))};\n - {t(getKey('на 1 этаже'))};\n - {t(getKey('зона для клиентов'))};\n - {t(getKey('зона для склада'))};\n - {t(getKey('круглосуточный доступ в помещение'))};\n \n \n \n\n \n {t(getKey('Что дальше?'))}\n \n\n {t(getKey('Подтвердите отправку заявки'))}\n\n \n \n\n \n \n\n setIsPublishModalOpen(false)}\n okText={t(getKey('Отправить заявку'))}\n cancelText={t(getSharedKey('cancel'))}\n centered\n >\n \n {t(getKey('Заявка удаляется автоматически'))}\n {isRegionWithReferralCode && (\n <>\n {t(getKey('Для участия в реферальной программе'))}\n setReferralCode(e.target.value)}\n maxLength={100}\n placeholder={t(getKey('Реферальный код'))}\n />\n \n )}\n \n \n\n setIsDeleteModalOpen(false)}\n okText={t(getSharedKey('delete'))}\n cancelText={t(getSharedKey('cancel'))}\n centered\n >\n {t(getKey('Подтверждение удаления'))}\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { getOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Margin } from 'components/ui'\nimport { Flex, Text } from 'components/uiKit'\nimport { Country } from 'shared/types/types'\n\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\ntype OrderStatusReadyToActivateProps = {\n order: Order\n}\n\nexport const OrderStatusReadyToActivate = observer(({ order }: OrderStatusReadyToActivateProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n {order.country === Country.RU && !order.exPickPointId ? (\n <>\n \n \n \n \n ) : (\n <>\n \n \n \n )}\n\n \n \n {t(getKey('Дождитесь активации вашего ПВЗ'))}:\n {order.fullAddress}\n \n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { ElockInfoStatus } from 'sections/LKSection/modules/ELockModule/types'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { OrderStatus } from 'sections/LKSection/modules/OrderModule/types'\nimport { Margin } from 'components/ui'\nimport { Info } from 'components/ui/Info/Info'\nimport { Button, Flex, Paragraph, Text, Title } from 'components/uiKit'\nimport { getActivateELockRoute, getActivateOrderRoute } from 'utils/helpers/getRoutes'\n\nimport { ActivateWithoutELockModal } from '../ActivateWithoutELockModal/ActivateWithoutELockModal'\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\ntype OrderStatusRemarkProps = {\n order: Order\n}\n\nexport const OrderStatusRemark = observer(({ order }: OrderStatusRemarkProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n const isRemarkFromActivate = uiStore.selectedOrder?.status === OrderStatus.remarkFromActivate\n const isRemarkELockStatus = order.eLockInfo?.status === ElockInfoStatus.remark\n const isDeleted = Boolean(order.deleted)\n\n const activateStepHandler = () => {\n if (order.id) {\n navigate(getActivateOrderRoute(order.id))\n }\n }\n\n const activateELockStepHandler = () => {\n if (order.id) {\n navigate(getActivateELockRoute(order.id))\n }\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n <>\n \n\n \n \n {t(getKey('Необходимо доработать вашу заявку'))}\n \n {t(getKey('Модератор Wildberries'))}\n \n\n {uiStore.lastComment?.comment.length && (\n \n \n {t(getKey('Комментарий модератора'))}:\n {uiStore.lastComment.comment}\n \n \n )}\n\n \n {t(getKey('Что дальше?'))}\n \n\n {t(getKey('Внесите необходимые правки'))}\n\n {isRemarkFromActivate &&\n (isRemarkELockStatus ? (\n \n {order.eLockInfo?.elockName && order.eLockInfo.enabled ? (\n \n ) : (\n \n )}\n \n ) : (\n \n ))}\n \n \n\n {order.id && }\n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { Timer } from 'sections/LKSection/modules/OrderModule/components/Timer/Timer'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { Order } from 'sections/LKSection/modules/OrderModule/stores/entity/Order'\nimport { OrderPaymentStatus } from 'sections/LKSection/modules/OrderModule/types'\nimport { Info } from 'components/ui/Info/Info'\nimport { Button, Flex, Text } from 'components/uiKit'\nimport { getOrderPaymentRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\n\nimport { OrderItemStatusHeader } from '../OrderItemStatusHeader/OrderItemStatusHeader'\n\nconst text = {\n [OrderPaymentStatus.none]: 'Не оплачена',\n [OrderPaymentStatus.pending]: 'Оплата в обработке',\n [OrderPaymentStatus.error]: 'Ошибка оплаты',\n [OrderPaymentStatus.paid]: 'Оплачена',\n}\n\ntype OrderStatusWaitingPaymentProps = {\n paymentStatus: OrderPaymentStatus | null\n hasErrorWithPayment?: boolean\n order: Order\n}\n\nexport const OrderStatusWaitingPayment = observer(\n ({ paymentStatus, hasErrorWithPayment, order }: OrderStatusWaitingPaymentProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const [timeLeft, setTimeLeft] = useState(0)\n const [loading, setLoading] = useState(false)\n\n const hasError = paymentStatus === OrderPaymentStatus.error || hasErrorWithPayment\n\n useAsyncEffect(async () => {\n if (order.id) {\n setLoading(true)\n const seconds = await uiStore.getPaymentDeadline(order.id)\n setLoading(false)\n seconds && setTimeLeft(seconds)\n }\n }, [])\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n \n\n {Boolean(timeLeft) && (\n <>\n {hasError ? (\n {t(getKey('Ваша оплата не прошла'))}\n ) : (\n {t(getKey('Заявка ожидает оплаты'))}\n )}\n\n {t(getKey('Оплатите заявку'))}\n \n )}\n\n {!timeLeft && {t(getKey('Время на оплату вышло'))}}\n\n {Boolean(timeLeft) && }\n\n {(uiStore.orderPaymentStatus === OrderPaymentStatus.none ||\n uiStore.orderPaymentStatus === OrderPaymentStatus.error) && (\n \n uiStore.selectedOrder?.id && navigate(getOrderPaymentRoute(uiStore.selectedOrder?.id))}\n disabled={!timeLeft}\n >\n {t(getKey('Внести гарантийный взнос'))}\n \n \n )}\n \n )\n },\n)\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { Margin } from 'components/ui'\n\nimport { Order } from '../../../stores/entity/Order'\nimport { OrderPaymentStatus, OrderStatus } from '../../../types'\nimport { getOrderItemPageKey } from '../../../utils'\nimport { OrderItemStatusHeader } from './OrderItemStatusHeader/OrderItemStatusHeader'\nimport { OrderStatusAccepted } from './Statuses/Accepted/OrderStatusAccepted'\nimport { OrderStatusActivated } from './Statuses/OrderStatusActivated'\nimport { OrderStatusCreated } from './Statuses/OrderStatusCreated'\nimport { OrderStatusDeclined } from './Statuses/OrderStatusDeclined'\nimport { OrderStatusDraft } from './Statuses/OrderStatusDraft'\nimport { OrderStatusReadyToActivate } from './Statuses/OrderStatusReadyToActivate'\nimport { OrderStatusRemark } from './Statuses/OrderStatusRemark'\nimport { OrderStatusWaitingPayment } from './Statuses/OrderStatusWaitingPayment'\n\ntype OrderItemStatusViewProps = {\n order: Order\n paymentStatus: OrderPaymentStatus | null\n hasErrorWithPayment?: boolean\n}\n\nexport const OrderItemStatusView = observer(\n ({ order, paymentStatus, hasErrorWithPayment }: OrderItemStatusViewProps) => {\n const { t } = useTranslation()\n\n const orderStatusItem: Map = new Map([\n [OrderStatus.draft, ],\n\n [\n OrderStatus.waitingPayment,\n ,\n ],\n\n [OrderStatus.created, ],\n\n [OrderStatus.remarkFromActivate, ],\n [OrderStatus.remarkFromCreated, ],\n\n [OrderStatus.declined, ],\n\n [OrderStatus.accepted, ],\n\n [OrderStatus.readyActivate, ],\n\n [OrderStatus.pickPointCreated, ],\n ])\n\n return (\n \n \n\n {orderStatusItem.get(order.status)}\n \n )\n },\n)\n","import { observer } from 'mobx-react-lite'\nimport { useEffect } from 'react'\nimport { lazy } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Skeleton, Title } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { OrderKeys } from '../../data'\nimport { OrderStatus } from '../../types'\nimport { OrderItemForm } from './OrderItemForm/OrderItemForm'\nimport { OrderItemStatusView } from './OrderItemStatusView/OrderItemStatusView'\n\nimport s from './OrderItemPage.module.scss'\n\ntype OrderItemPageProps = {\n hasErrorWithPayment?: boolean\n}\n\nconst OrderItemPage = observer(({ hasErrorWithPayment }: OrderItemPageProps) => {\n const { viewOrderUiStore: uiStore } = useStore()\n\n const { orderId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const order = uiStore.selectedOrder\n\n useAsyncEffect(async () => {\n if (orderId) {\n if (uiStore.orderList.length === 0) {\n await uiStore.getOrderList()\n }\n\n uiStore.setSelectedOrder(uiStore.getOrder(+orderId))\n\n if (uiStore.selectedOrder?.id && uiStore.selectedOrder.status === OrderStatus.waitingPayment) {\n uiStore.checkOrderPayment(+uiStore.selectedOrder.id)\n }\n }\n }, [orderId])\n\n useEffect(() => {\n return () => {\n uiStore.reset()\n }\n }, [])\n\n const backButtonHandler = () => {\n navigate(LKRoutesEnum.orders)\n }\n\n const getKey = (key: string) => `${OrderKeys.orderItemPage}.${key}`\n\n return (\n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n )\n})\n\nexport default OrderPaymentPage\n\nexport const OrderPaymentPageAsync = lazy(() => import('./OrderPaymentPage'))\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\n\nimport { PvzKeys } from '../../../data'\nimport { PvzAreaViewModel } from '../../../stores/models/PvzAreaModel'\n\nconst getKey = (key: string) => `${PvzKeys.editAreaPage}.validate.${key}`\nconst getOrderKey = (key: string) => `${OrderKeys.workConditionsStep}.validate.${key}`\n\nexport class ValidatePvzEditArea extends ValidateFormService {\n validate = (model: PvzAreaViewModel) => {\n const errors: string[] = []\n\n if (!model.area) {\n errors.push(i18next.t(getOrderKey('areaRequired')))\n } else {\n if (+model.area < 1) {\n errors.push(i18next.t(getOrderKey('areaMin'), { count: 1 }))\n }\n }\n\n if (!model.warehouseArea) {\n errors.push(i18next.t(getOrderKey('warehouseAreaRequired')))\n } else {\n if (+model.warehouseArea < 1) {\n errors.push(i18next.t(getOrderKey('warehouseAreaMin'), { count: 1 }))\n }\n }\n\n if (model.invalidEditAreaDocuments) {\n errors.push(i18next.t(getKey('invalidEditAreaDocuments')))\n }\n\n return this.hasNotErrors(errors)\n }\n}\n\nexport const validatePvzEditArea = new ValidatePvzEditArea()\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { getCreateOrderPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { pickPointDocumentForEditAreaItems } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/data'\nimport { PickPointFileItem } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFileItem/PickPointFileItem'\nimport { Info } from 'components/ui/Info/Info'\nimport { Button, Divider, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { PvzKeys } from '../../../data'\nimport { EditAreaStatus } from '../../../types/types'\nimport { validatePvzEditArea } from './validate'\n\ntype PvzEditAreaType = {\n area: number\n warehouseArea: number\n}\n\nconst getKey = (key: string) => `${PvzKeys.editAreaPage}.${key}`\n\nexport const PvzEditAreaForm = observer(() => {\n const { viewPvzUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const [form] = Form.useForm()\n const { t } = useTranslation()\n const [loadingUpdate, setLoadingUpdate] = useState(false)\n\n const pvz = uiStore.selectedPvz\n const areaModel = uiStore.areaModel\n\n const isOwner = uiStore.selectedPvz?.id ? uiStore.isOwner(uiStore.selectedPvz.id) : false\n const disabled = !isOwner || Boolean(pvz?.blockTime)\n const isEditAreaStatusInProgress = pvz?.editAreaStatus === EditAreaStatus.inProgress\n\n useEffect(() => {\n if (areaModel.initialized && pvz) {\n form.setFieldValue('area', pvz.area)\n form.setFieldValue('warehouseArea', pvz.warehouseArea)\n }\n }, [areaModel.initialized, pvz, form])\n\n const updateButtonHandler = async () => {\n if (validatePvzEditArea.validate(areaModel) && pvz?.id) {\n setLoadingUpdate(true)\n\n if (await uiStore.updatePvz(pvz.id)) {\n navigate(LKRoutesEnum.pvz)\n }\n\n setLoadingUpdate(false)\n }\n }\n\n return (\n
    \n \n {isEditAreaStatusInProgress\n ? t(getKey('Вы уже подали заявку на смену площади ПВЗ'))\n : t(getKey('При изменении площади ПВЗ'))}\n \n\n \n label={t(getKey('Площадь ПВЗ'))}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n name={'area'}\n >\n areaModel.setArea(e.target.value)}\n disabled={disabled || isEditAreaStatusInProgress}\n placeholder=\"50\"\n type=\"number\"\n />\n \n\n \n label={t(getCreateOrderPageKey('workConditionsStep.Площадь склада'))}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n name={'warehouseArea'}\n >\n areaModel.setWarehouseArea(e.target.value)}\n disabled={disabled}\n placeholder=\"30\"\n type=\"number\"\n />\n \n\n \n\n {pickPointDocumentForEditAreaItems.map((documentItem) => (\n \n \n \n ))}\n\n \n {t(getKey('Обновить ПВЗ'))}\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { getPvzItemRoute } from 'utils/helpers/getRoutes'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\n\nimport { PvzKeys } from '../../data'\nimport { PvzEditAreaForm } from './PvzEditAreaForm/PvzEditAreaForm'\n\nconst getKey = (key: string) => `${PvzKeys.editAreaPage}.${key}`\n\nconst PvzEditAreaPage = observer(() => {\n const { viewPvzUiStore: uiStore } = useStore()\n\n const { pvzId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const pvz = uiStore.selectedPvz\n\n useAsyncEffect(async () => {\n if (pvzId) {\n void uiStore.switchPvz(+pvzId)\n\n if (uiStore.pvzList.length === 0) {\n await uiStore.getPvzList()\n }\n\n uiStore.setSelectedPvz(pvz ?? uiStore.getPvz(+pvzId))\n }\n }, [pvzId])\n\n const backButtonHandler = () => {\n if (pvzId) {\n navigate(getPvzItemRoute(+pvzId))\n }\n }\n\n return (\n \n \n \n \n \n \n )}\n \n \n \n )\n})\n\nexport default PvzEditTimetablePage\n\nexport const PvzEditTimetablePageAsync = lazy(() => import('./PvzEditTimetablePage'))\n","import { PvzKeys } from './data'\n\nexport const getPvzItemPageKey = (key: string) => `${PvzKeys.pvzItemPage}.${key}`\nexport const getPvzEditAreaPageKey = (key: string) => `${PvzKeys.editAreaPage}.${key}`\n","import i18next from 'i18next'\n\nimport { ValidateFormService } from 'services/ValidateFormService'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport { validatePickPointFiles } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/validate'\nimport {\n COURIER_WAY_MAX,\n PICKPOINT_DESCRIPTION_MAX,\n PICKPOINT_DESCRIPTION_MIN,\n} from 'sections/LKSection/shared/PickPointSharedModule/data'\n\nimport { ViewPvzUiStore } from '../../../stores/ViewPvz/ViewPvzUiStore'\n\nexport class ValidatePvz extends ValidateFormService {\n validate = (uiStore: ViewPvzUiStore) => {\n const errors: string[] = []\n\n const getLocationKey = (key: string) => `${OrderKeys.locationStep}.validate.${key}`\n const getWorkConditionsKey = (key: string) => `${OrderKeys.workConditionsStep}.validate.${key}`\n\n if (uiStore.description.trim().length === 0) {\n errors.push(i18next.t(getLocationKey('Поле Как найти ПВЗ')))\n } else {\n if (uiStore.description.trim().length < 30) {\n errors.push(i18next.t(getLocationKey('descriptionMinLength'), { count: PICKPOINT_DESCRIPTION_MIN }))\n }\n if (uiStore.description.length > 200) {\n errors.push(i18next.t(getLocationKey('descriptionMaxLength'), { count: PICKPOINT_DESCRIPTION_MAX }))\n }\n }\n\n if (uiStore.selectedPvz?.floorLevel === PickPointLocation.shoppingMall && uiStore.courierWay.trim().length === 0) {\n errors.push(i18next.t(getLocationKey('Поле Информация для курьеров')))\n }\n\n if (uiStore.courierWay.length > 256) {\n errors.push(i18next.t(getLocationKey('courierWayMaxLength'), { count: COURIER_WAY_MAX }))\n }\n\n if (!uiStore.dressingRoomsCount) {\n errors.push(i18next.t(getWorkConditionsKey('dressingRoomsCountRequired')))\n } else {\n if (+uiStore.dressingRoomsCount < 0) {\n errors.push(i18next.t(getWorkConditionsKey('dressingRoomsCountMin'), { count: 0 }))\n }\n }\n\n errors.push(...(validatePickPointFiles.validate(uiStore.fileList, 'array', 'activate') as string[]))\n\n return this.hasNotErrors(errors)\n }\n}\n\nexport const validatePvz = new ValidatePvz()\n","import { Divider, Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { OrderKeys } from 'sections/LKSection/modules/OrderModule/data'\nimport { PickPointLocation } from 'sections/LKSection/modules/OrderModule/types'\nimport { getOrderWorkConditionsStepKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { PickPointFilesForm } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFilesForm'\nimport { TimetableForm } from 'sections/LKSection/shared/PickPointSharedModule/components/TimetableForm/TimetableForm'\nimport { Margin } from 'components/ui'\nimport { Button, Flex, Input, Text, TextArea, Title } from 'components/uiKit'\nimport { getPvzEditAreaRoute, getPvzEditTimetableRoute } from 'utils/helpers/getRoutes'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { PvzKeys } from '../../../data'\nimport { Pvz } from '../../../stores/entity/Pvz'\nimport { getPvzEditAreaPageKey, getPvzItemPageKey } from '../../../utils'\nimport { validatePvz } from './validate'\n\ntype PvzItemFormType = {\n description: string\n courierWay: string\n alarmSystem: string\n dressingRoomsCount: number\n racksCount: string\n cellsCount: string\n maxCellsCount: string\n}\n\ntype PvzItemFormProps = {\n pvz: Pvz\n}\n\nconst getKey = (key: string) => `${PvzKeys.editAreaPage}.${key}`\n\nexport const PvzItemForm = observer(({ pvz }: PvzItemFormProps) => {\n const { viewPvzUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [form] = Form.useForm()\n const [loadingUpdate, setLoadingUpdate] = useState(false)\n\n const isOwner = uiStore.selectedPvz?.id ? uiStore.isOwner(uiStore.selectedPvz.id) : false\n const disabled = !isOwner || Boolean(pvz.blockTime)\n const isShoppingMall = pvz.floorLevel === PickPointLocation.shoppingMall\n\n useEffect(() => {\n if (uiStore.initialized) {\n form.setFieldValue('racksCount', pvz.racksCount)\n form.setFieldValue('cellsCount', pvz.cellsCount)\n form.setFieldValue('maxCellsCount', pvz.maxCellsCount)\n form.setFieldValue('description', pvz.description)\n form.setFieldValue('courierWay', pvz.courierWay)\n form.setFieldValue('alarmSystem', pvz.alarmSystem)\n form.setFieldValue('dressingRoomsCount', +(uiStore.dressingRoomsCount || 0))\n }\n }, [uiStore.initialized])\n\n const navigateTo = (page: 'editArea' | 'editTimetable') => {\n if (pvz.id) {\n navigate(page === 'editArea' ? getPvzEditAreaRoute(pvz.id) : getPvzEditTimetableRoute(pvz.id))\n }\n }\n\n const updateButtonHandler = async () => {\n if (validatePvz.validate(uiStore) && pvz.id) {\n setLoadingUpdate(true)\n\n if (await uiStore.updatePvz(pvz.id)) {\n navigate(LKRoutesEnum.pvz)\n }\n\n setLoadingUpdate(false)\n }\n }\n\n const getLocationKey = (key: string) => `${OrderKeys.locationStep}.${key}`\n const getWorkConditionsKey = (key: string) => `${OrderKeys.workConditionsStep}.${key}`\n\n return (\n
    \n \n label={t(getLocationKey('Как найти ПВЗ'))}\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n { min: 30, message: t(getSharedKey('minLength'), { count: 30 }) },\n { max: 200, message: t(getSharedKey('maxLength'), { count: 200 }) },\n ]}\n name={'description'}\n >\n uiStore.setDescription(e.target.value)}\n placeholder={t(getLocationKey('Нюансы расположения ПВЗ'))}\n disabled={disabled}\n maxLength={500}\n autoSize\n />\n \n\n \n label={`${t(getLocationKey('Информация для курьеров'))}${\n isShoppingMall ? '' : ` (${t(getSharedKey('notRequired'))})`\n }`}\n tooltip={t(getLocationKey('courierWayTooltip'))}\n rules={[\n { required: isShoppingMall, message: t(getSharedKey('required')) },\n { max: 256, message: t(getSharedKey('maxLength'), { count: 256 }) },\n ]}\n name={'courierWay'}\n >\n uiStore.setCourierWay(e.target.value)}\n placeholder={t(getLocationKey('Информация для курьера'))}\n disabled={disabled}\n maxLength={500}\n autoSize\n />\n \n\n \n label={t(getLocationKey('Инструкция по работе'))}\n tooltip={t(getLocationKey('alarmSystemTooltip'))}\n rules={[{ max: 200, message: t(getSharedKey('maxLength'), { count: 200 }) }]}\n name={'alarmSystem'}\n >\n uiStore.setAlarmSystem(e.target.value)}\n placeholder={t(getLocationKey('Инструкция'))}\n disabled={disabled}\n maxLength={200}\n autoSize\n />\n \n\n \n label={t(getWorkConditionsKey('Количество примерочных'))}\n rules={[{ required: true, message: t(getSharedKey('required')) }]}\n name={'dressingRoomsCount'}\n >\n uiStore.setDressingRoomsCount(e.target.value)}\n disabled={disabled}\n placeholder=\"2\"\n type=\"number\"\n min={0}\n />\n \n\n \n\n \n \n \n {t(getKey('Площадь ПВЗ'))}:\n {pvz.area}\n \n\n \n {t(getOrderWorkConditionsStepKey('Площадь склада'))}:\n {pvz.warehouseArea}\n \n \n\n {!disabled && (\n \n )}\n \n\n \n\n \n label={t(getLocationKey('Количество стеллажей'))}\n name={'racksCount'}\n normalize={(value) => {\n return value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }}\n >\n uiStore.setRacksCount(e.target.value)}\n disabled={disabled}\n placeholder=\"2\"\n min={0}\n />\n \n \n label={t(getLocationKey('Количество ячеек'))}\n name={'cellsCount'}\n normalize={(value) => {\n return value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }}\n >\n uiStore.setCellsCount(e.target.value)}\n disabled={disabled}\n placeholder=\"2\"\n min={0}\n />\n \n \n label={t(getLocationKey('Максимальное количество ячеек'))}\n name={'maxCellsCount'}\n normalize={(value) => {\n return value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }}\n >\n uiStore.setMaxCellsCount(e.target.value)}\n disabled={disabled}\n placeholder=\"2\"\n min={0}\n />\n \n\n \n\n \n {t(getWorkConditionsKey('График работы ПВЗ'))}\n\n \n\n {!disabled && (\n \n )}\n \n\n \n\n \n \n \n\n {isOwner && (\n \n {t(getPvzEditAreaPageKey('Обновить ПВЗ'))}\n \n )}\n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Skeleton, Title } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { SEARCH_PARAMS } from 'shared/constants/values'\n\nimport { PvzKeys } from '../../data'\nimport { PvzItemForm } from './PvzItemForm/PvzItemForm'\n\nconst getKey = (key: string) => `${PvzKeys.pvzItemPage}.${key}`\n\nconst PvzItemPage = observer(() => {\n const { viewPvzUiStore: uiStore } = useStore()\n\n const { pvzId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n const location = useLocation()\n\n const pvz = uiStore.selectedPvz\n const searchParams = new URLSearchParams(location.search)\n const pageFromUrl = Number(searchParams.get(SEARCH_PARAMS.page)) || 1\n const pageSizeFromUrl = Number(searchParams.get(SEARCH_PARAMS.pageSize)) || 20\n\n useAsyncEffect(async () => {\n uiStore.setPage(pageFromUrl)\n uiStore.setPageSize(pageSizeFromUrl)\n if (pvzId) {\n void uiStore.switchPvz(+pvzId)\n\n if (uiStore.pvzList.length === 0) {\n await uiStore.getPvzList()\n }\n\n uiStore.setSelectedPvz(pvz ?? uiStore.getPvz(+pvzId))\n }\n }, [pvzId])\n\n const backButtonHandler = () => {\n navigate(LKRoutesEnum.pvz)\n }\n\n return (\n \n \n \n \n \n \n )}\n \n\n \n {showAdditional && (\n \n \n \n \n\n \n \n )}\n
    \n\n \n {uiStore.pvzList.length > 0 ? (\n \n {showAdditional && (\n \n \n \n )}\n\n {uiStore.pvzList.map((pvz) => (\n \n ))}\n \n ) : (\n \n \n\n \n {t(getKey('Нет активированных пвз'))}\n \n \n )}\n \n
    \n
    \n )\n})\n\nexport default PvzPage\n\nexport const PvzPageAsync = lazy(() => import('./PvzPage'))\n","import { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { getPromoModuleKey } from 'sections/PromoSection/shared/utils'\nimport { Button, Flex, Modal, Rate, Text, TextArea } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { ticketGradeTranslator, TicketKeys } from '../../../data'\nimport { TicketStatus } from '../../../types'\n\ntype TicketActionsProps = {\n canRate: boolean\n status: TicketStatus\n}\n\nconst getKey = (key: string) => `${TicketKeys.ticketItemPage}.${key}`\n\nexport const TicketActions = observer(({ canRate, status }: TicketActionsProps) => {\n const { viewTicketUiStore: uiStore } = useStore()\n\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const [isCloseTicketModalOpen, setIsCloseTicketModalOpen] = useState(false)\n const [isGradeTicketModalOpen, setIsGradeTicketModalOpen] = useState(false)\n const [loading, setLoading] = useState(false)\n\n const [grade, setGrade] = useState(5)\n const [gradeComment, setGradeComment] = useState('')\n\n const closeTicketButtonHandler = async () => {\n setLoading(true)\n\n const result = await uiStore.closeTicket()\n\n if (result) {\n if (uiStore.selectedTicket?.canRate) {\n setIsGradeTicketModalOpen(true)\n }\n\n setIsCloseTicketModalOpen(false)\n }\n\n setLoading(false)\n }\n\n const gradeTicketButtonHandler = async () => {\n setLoading(true)\n\n const result = await uiStore.rateTicket(grade, gradeComment.trim())\n\n if (result) {\n navigate(LKRoutesEnum.tickets)\n }\n\n setLoading(false)\n }\n\n const cancelGradeButtonHandler = () => {\n setIsGradeTicketModalOpen(false)\n setIsCloseTicketModalOpen(false)\n }\n\n return (\n \n {status !== TicketStatus.closed && (\n \n )}\n\n {canRate && }\n\n setIsCloseTicketModalOpen(false)}\n okText={t(getSharedKey('yes'))}\n cancelText={t(getSharedKey('no'))}\n okButtonProps={{ loading }}\n >\n {t(getKey('Если ваш вопрос решен'))}\n \n\n \n \n {t(getKey('Оцените работу поддержки'))}\n\n \n\n setGradeComment(e.target.value)}\n maxLength={500}\n placeholder={t(getKey('Можете оставить комментарий'))}\n autoSize\n />\n \n \n \n )\n})\n","import * as React from \"react\";\nconst SvgSendMessageIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 20 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.9316 19.3618L19.9316 1.36181C20.0761 0.992159 19.9873 0.572789 19.707 0.292519C19.4258 0.0117289 19.0058 -0.0737212 18.6377 0.0673588L0.637683 7.06739C0.242613 7.2212 -0.0122369 7.60648 0.000453148 8.02978C0.0131431 8.45316 0.291473 8.8223 0.694313 8.95169L8.53364 11.4663L11.0478 19.3052C11.1767 19.7085 11.5468 19.9858 11.9697 19.9995C11.9794 19.9995 11.9902 19.9995 11.9999 19.9995C12.4111 19.9995 12.7822 19.7476 12.9316 19.3618ZM10.4673 10.9468L13.1365 8.27768C13.527 7.88718 13.527 7.25396 13.1365 6.86347C12.746 6.47297 12.1128 6.47297 11.7223 6.86347L9.0533 9.53243L3.99165 7.90919L17.2441 2.75539L12.0908 16.0073L10.4673 10.9468Z\", fill: \"#fff\" }));\nexport default SvgSendMessageIcon;\n","import { Form } from 'antd'\nimport dayjs from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { getActivateOrderPageKey, getOrderItemPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Chat } from 'components/ui'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Button, Flex, TextArea, Title } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { DATE_FORMAT_WITH_TIME } from 'shared/constants/values'\n\nimport { ticketFileValidate, TicketKeys } from '../../../data'\nimport { TicketStatus, TicketSupportLogsDTO } from '../../../types'\n\nimport SendMessageIcon from 'assets/img/searchEngine/send-message__icon.svg?react'\n\ntype TicketChatProps = {\n supportLogs: TicketSupportLogsDTO[]\n status: TicketStatus\n}\n\nconst getKey = (key: string) => `${TicketKeys.ticketItemPage}.${key}`\n\nexport const TicketChat = observer(({ supportLogs, status }: TicketChatProps) => {\n const { viewTicketUiStore: uiStore } = useStore()\n\n const [loading, setLoading] = useState(false)\n const { t } = useTranslation()\n\n const sendMessageButton = async () => {\n setLoading(true)\n const result = await uiStore.createSupportLog()\n setLoading(false)\n\n if (result) {\n uiStore.reset()\n }\n }\n\n const deleteFileHandler = (index: number) => {\n const newFiles = [...uiStore.files]\n newFiles.splice(index, 1)\n uiStore.setFiles(newFiles)\n }\n\n return (\n \n {supportLogs.length > 0 && (\n <>\n {t(getOrderItemPageKey('Переписка с техподдержкой'))}\n\n ({\n text: log.message,\n photos: [...(log.imageUrls ?? []), ...(log.documentUrls ?? [])],\n videos: log.videoUrls ?? [],\n me: !log.isManager,\n name: log.fio,\n time: dayjs(log.createDate).format(DATE_FORMAT_WITH_TIME),\n date: new Date(log.createDate),\n }))}\n />\n \n )}\n\n {status !== TicketStatus.closed && (\n
    \n \n \n {Array.from({ length: Math.min(3, uiStore.files.length + 1) }).map((_, index) => (\n uiStore.setFiles([...uiStore.files, file])}\n onDelete={() => deleteFileHandler(index)}\n fileValidationOptions={ticketFileValidate}\n />\n ))}\n \n \n\n \n label={t(getActivateOrderPageKey('Сообщение оператору'))}\n name={'message'}\n rules={[{ min: 30, message: t(getSharedKey('minLength'), { count: 30 }) }]}\n >\n \n uiStore.setMessage(e.target.value)}\n maxLength={500}\n placeholder={`${t(getSharedKey('enterMessage'))}...`}\n />\n\n }\n style={{ padding: 26 }}\n />\n \n \n \n )}\n
    \n )\n})\n","import { TicketKeys } from './data'\n\nexport const getTicketPage = (key: string) => `${TicketKeys.ticketPage}.${key}`\n","import { Alert } from 'antd'\nimport dayjs from 'dayjs'\nimport { useTranslation } from 'react-i18next'\nimport { CheckCircleTwoTone } from '@ant-design/icons'\n\nimport { getOrderItemPageKey } from 'sections/LKSection/modules/OrderModule/utils'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex, Image, Rate, Text, Title } from 'components/uiKit'\nimport { getAltFromSrc } from 'utils/helpers/getAltFromSrc/getAltFromSrc'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { DATE_FORMAT_WITH_TIME } from 'shared/constants/values'\n\nimport { TicketKeys, ticketStatusTranslator } from '../../../data'\nimport { Ticket } from '../../../stores/entity/Ticket'\nimport { TicketStatus } from '../../../types'\nimport { getTicketPage } from '../../../utils'\n\nimport s from './TicketInfo.module.scss'\n\ntype TicketInfoProps = {\n ticket: Ticket\n}\n\nconst getKey = (key: string) => `${TicketKeys.ticketItemPage}.${key}`\n\nexport const TicketInfo = ({ ticket }: TicketInfoProps) => {\n const { t } = useTranslation()\n\n const description = ticket.description.split('\\n').filter(Boolean).join('\\n')\n const photos = [...ticket.imageUrls, ...ticket.documentUrls]\n\n return (\n \n {ticket.status === TicketStatus.closed && (\n \n \n {t(getKey('Решено'))} {ticket.finishDate ? dayjs(ticket.finishDate).format(DATE_FORMAT_WITH_TIME) : ''}\n \n }\n type=\"success\"\n />\n )}\n\n \n {t(getOrderItemPageKey('Общая информация'))}\n\n {ticket.status !== TicketStatus.closed && (\n \n {t(getSharedKey('status'))}:\n {t(getTicketPage(ticketStatusTranslator[ticket.status].title))}\n \n )}\n\n {ticket.orderId && (\n \n {t(getKey('Заявка'))}:\n {ticket.orderId}\n \n )}\n\n \n {t(getKey('Создан'))}:\n {dayjs(ticket.createDate).format(DATE_FORMAT_WITH_TIME)}\n \n\n \n {t(getSharedKey('description'))}:\n {description}\n \n\n {ticket.ticketGrade !== 0 && (\n \n {t(getKey('Ваша оценка'))}:\n \n {ticket.gradeComment}\n \n )}\n \n\n {(photos.length > 0 || ticket.videoUrls.length > 0) && (\n <>\n {t(getSharedKey('attachedFiles'))}\n\n \n {photos.map((file) => (\n {getAltFromSrc(file)}\n ))}\n \n\n \n {ticket.videoUrls.map((file) => (\n \n {t(getSharedKey('videoURL'))}\n \n ))}\n \n \n )}\n \n )\n}\n","import { observer } from 'mobx-react-lite'\nimport { lazy } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Skeleton, Title } from 'components/uiKit'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { LKRoutesEnum } from 'shared/constants/routes'\n\nimport { TicketKeys } from '../../data'\nimport { TicketActions } from './Actions/TicketActions'\nimport { TicketChat } from './Chat/TicketChat'\nimport { TicketInfo } from './Info/TicketInfo'\n\nconst getKey = (key: string) => `${TicketKeys.ticketItemPage}.${key}`\n\nconst TicketItemPage = observer(() => {\n const { viewTicketUiStore: uiStore } = useStore()\n\n const { ticketId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const ticket = uiStore.selectedTicket\n\n useAsyncEffect(async () => {\n if (!ticket && ticketId) {\n await uiStore.getTicketList()\n uiStore.setSelectedTicket(uiStore.getTicket(+ticketId))\n }\n }, [ticketId])\n\n const backButtonHandler = () => {\n navigate(LKRoutesEnum.tickets)\n }\n\n return (\n \n \n \n \n \n \n \n \n )}\n\n {!isVisibleAskForm && (\n <>\n \n \n \n \n \n Обновить\n \n \n \n \n )}\n \n \n \n )\n})\n\nexport default EditContactPage\n\nexport const EditContactPageAsync = lazy(() => import('./EditContactPage'))\n","import { notification } from 'antd'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { FileUploadDTO } from 'shared/types/types'\n\nexport const useSendPassportFile = () => {\n const trySendPassportFile = async (fileUpload: ConvertedFile): Promise => {\n try {\n const file = await fileService.fileUpload({\n entityId: 1,\n totalSize: fileUpload.fileSize,\n content: fileUpload.content,\n entityType: FileEntityType.passport,\n })\n\n if (!file) {\n throw new Error('Не удалось загрузить фото документа подтверждающего личность')\n }\n\n if (!file.imageUrl) {\n throw new Error('Не удалось загрузить фото документа подтверждающего личность')\n }\n\n notification.success({\n message: 'Документ подтверждающий личность загружен!',\n })\n\n return file\n } catch (error) {\n notification.error({\n message: 'Ошибка',\n description: (error as Error).message,\n })\n return false\n }\n }\n\n return trySendPassportFile\n}\n","import { observer } from 'mobx-react-lite'\n\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { useSendPassportFile } from 'sections/LKSection/modules/UserModule/utils/useSendPassportFile'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Divider, Flex, FormItem, Paragraph } from 'components/uiKit'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\n\nimport { DocumentType } from '../../../types'\n\nexport type PassportPhotoProps = {\n companyDetails: CompanyDetailsViewModel\n}\n\nexport const OldPassportPhoto = observer(({ companyDetails }: PassportPhotoProps) => {\n const trySendPassportFile = useSendPassportFile()\n\n const isPassport = companyDetails.documentType === DocumentType.passport\n\n const handleFile = async (file: ConvertedFile) => {\n if (companyDetails.loading) return\n\n companyDetails.setLoading(true)\n\n const result = await trySendPassportFile(file)\n\n if (result) {\n companyDetails.documentPhoto[0] = result.imageUrl\n companyDetails.documentPhotoUI[0] = file.content\n }\n\n companyDetails.setLoading(false)\n }\n\n const handleDeleteFile = () => {\n companyDetails.documentPhoto[0] = ''\n companyDetails.documentPhotoUI[0] = ''\n }\n\n return (\n \n \n \n {isPassport\n ? 'Сделайте фото с паспортом, держа его рядом с вашим лицом. Паспорт должен быть открыт на странице с фотографией. Указанные в паспорте данные должны быть различимы на фото и читаемы.'\n : 'Сделайте фото с удостоверением, держа его рядом с вашим лицом. Удостоверение должно быть открыто на странице с фотографией. Указанные в удостоверении данные должны быть различимы на фото и читаемы.'}\n \n\n \n handleFile(value)}\n contentUrl={companyDetails.documentPhotoUI[0]}\n onDelete={() => handleDeleteFile()}\n />\n \n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { useSendPassportFile } from 'sections/LKSection/modules/UserModule/utils/useSendPassportFile'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Divider, Flex, FormItem, Paragraph } from 'components/uiKit'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\n\nimport { PassportPhotos } from '../../../data'\nimport { DocumentType, UserModuleKeys } from '../../../types'\n\nexport type PassportPhotoProps = {\n companyDetails: CompanyDetailsViewModel\n isEdit: boolean\n}\n\nexport const PassportPhoto = observer(({ companyDetails, isEdit = false }: PassportPhotoProps) => {\n const trySendPassportFile = useSendPassportFile()\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.passportPhotoStep}.${key}`\n\n const isPassport = companyDetails.documentType === DocumentType.passport\n\n const handleFile = async (file: ConvertedFile, photoType: PassportPhotos) => {\n if (companyDetails.loading) return\n\n companyDetails.setLoading(true)\n\n const result = await trySendPassportFile(file)\n\n if (result) {\n switch (photoType) {\n case PassportPhotos.firtsPageWithPassportPhoto:\n companyDetails.withDocumentPhoto[0] = result.imageUrl\n companyDetails.withDocumentPhotoUI[0] = file.content\n break\n case PassportPhotos.secondPageWithPassportPhoto:\n companyDetails.withDocumentPhoto[1] = result.imageUrl\n companyDetails.withDocumentPhotoUI[1] = file.content\n break\n case PassportPhotos.firstPagePassportPhoto:\n companyDetails.documentPhoto[0] = result.imageUrl\n companyDetails.documentPhotoUI[0] = file.content\n break\n case PassportPhotos.secondPagePassportPhoto:\n companyDetails.documentPhoto[1] = result.imageUrl\n companyDetails.documentPhotoUI[1] = file.content\n break\n }\n }\n\n companyDetails.setLoading(false)\n }\n\n const handleDeleteFile = (photoType: PassportPhotos) => {\n switch (photoType) {\n case PassportPhotos.firtsPageWithPassportPhoto:\n companyDetails.withDocumentPhoto[0] = ''\n companyDetails.withDocumentPhotoUI[0] = ''\n break\n case PassportPhotos.secondPageWithPassportPhoto:\n companyDetails.withDocumentPhoto[1] = ''\n companyDetails.withDocumentPhotoUI[1] = ''\n break\n case PassportPhotos.firstPagePassportPhoto:\n companyDetails.documentPhoto[0] = ''\n companyDetails.documentPhotoUI[0] = ''\n break\n case PassportPhotos.secondPagePassportPhoto:\n companyDetails.documentPhoto[1] = ''\n companyDetails.documentPhotoUI[1] = ''\n break\n }\n }\n\n return (\n \n \n {isPassport\n ? `${t(getKey('Сделайте фото с паспортом'))}.`\n : `${t(getKey('Сделайте 2 фото с идентификационной'))}.`}\n \n\n \n handleFile(value, PassportPhotos.firtsPageWithPassportPhoto)}\n contentUrl={companyDetails.withDocumentPhotoUI[0]}\n onDelete={() => handleDeleteFile(PassportPhotos.firtsPageWithPassportPhoto)}\n hidePreview={isEdit}\n />\n \n\n {!isPassport && (\n \n handleFile(value, PassportPhotos.secondPageWithPassportPhoto)}\n contentUrl={companyDetails.withDocumentPhotoUI[1]}\n onDelete={() => handleDeleteFile(PassportPhotos.secondPageWithPassportPhoto)}\n hidePreview={isEdit}\n />\n \n )}\n\n \n\n \n {isPassport ? `${t(getKey('Сделайте фото паспорта'))}.` : `${t(getKey('Сделайте 2 фото идентификационной'))}.`}\n \n\n \n handleFile(value, PassportPhotos.firstPagePassportPhoto)}\n hidePreview={isEdit}\n contentUrl={companyDetails.documentPhotoUI[0]}\n onDelete={() => handleDeleteFile(PassportPhotos.firstPagePassportPhoto)}\n />\n \n\n \n handleFile(value, PassportPhotos.secondPagePassportPhoto)}\n hidePreview={isEdit}\n contentUrl={companyDetails.documentPhotoUI[1]}\n onDelete={() => handleDeleteFile(PassportPhotos.secondPagePassportPhoto)}\n />\n \n\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\n\nimport { Form } from 'components/uiKit'\n\nimport { CompanyDetailsViewModel } from '../../../stores/models/CompanyDetailsViewModel'\nimport { PassportPhoto } from './PassportPhoto'\n\ntype PassportPhotoStepProps = {\n companyDetails: CompanyDetailsViewModel\n isEdit?: boolean\n}\n\nexport const PassportPhotoStep = observer(({ companyDetails, isEdit = false }: PassportPhotoStepProps) => {\n return (\n
    \n \n \n )\n})\n","import { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { Citizenship, DocumentType, UserModuleKeys } from 'sections/LKSection/modules/UserModule/types'\nimport { FormItem, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { DATE_FORMAT_DEFAULT } from 'shared/constants/values'\n\nimport { passportIssuedPlaceholders, RequisitesCIS } from './requisites'\n\ntype OldIdentificationFormProps = { uiStore: CompanyDetailsViewModel }\n\nexport const OldIdentificationForm = observer(({ uiStore }: OldIdentificationFormProps) => {\n const { t } = useTranslation()\n const getRequisitesKey = (key: string) => `${UserModuleKeys.requisites}.${key}`\n const citizenship = uiStore.selectedCitizenship.value\n const stylePicker: React.CSSProperties = { width: 200 }\n\n const handleSetDateOfIssue = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfIssue(dateString)\n }\n }\n\n const handleSetDateOfBirthday = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfBirthday(dateString)\n }\n }\n return (\n <>\n {citizenship !== Citizenship.RU && (\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.KZ ||\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.TJ ||\n uiStore.selectedCitizenship.value === Citizenship.GE\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setIdentificationNumber(e.target.value)}\n />\n \n )}\n\n \n \n \n {citizenship !== Citizenship.AM && citizenship !== Citizenship.KZ && (\n \n \n \n )}\n\n {citizenship === Citizenship.BY && (\n <>\n \n uiStore.setPassportIssued(e.target.value)}\n />\n \n\n \n uiStore.setPlaceOfBirth(e.target.value)}\n />\n \n \n )}\n \n )\n})\n","import { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { genderOptions } from 'sections/LKSection/modules/UserModule/data'\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { Citizenship, DocumentType, GENDER, UserModuleKeys } from 'sections/LKSection/modules/UserModule/types'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { FormItem, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { DATE_FORMAT_DEFAULT } from 'shared/constants/values'\nimport { BaseOption } from 'shared/types/types'\n\nimport { DepartmentCodeFormat, passport, passportIssuedPlaceholders, RequisitesCIS } from './requisites'\n\ntype OldPassportFormProps = {\n uiStore: CompanyDetailsViewModel\n}\n\nexport const OldPassportForm = observer(({ uiStore }: OldPassportFormProps) => {\n const { t } = useTranslation()\n const citizenship = uiStore.selectedCitizenship.value\n const stylePicker: React.CSSProperties = { width: 200 }\n const getKey = (key: string) => `${UserModuleKeys.passportStep}.${key}`\n const getRequisitesKey = (key: string) => `${UserModuleKeys.requisites}.${key}`\n\n const handleSetDateOfIssue = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfIssue(dateString)\n }\n }\n\n const handleSetDateOfBirthday = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfBirthday(dateString)\n }\n }\n\n return (\n <>\n {\n if (uiStore.selectedCitizenship.value === Citizenship.RU) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setPassport(e.target.value)}\n />\n \n {(citizenship === Citizenship.BY || citizenship === Citizenship.KZ) && (\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.KZ ||\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.TJ ||\n uiStore.selectedCitizenship.value === Citizenship.GE\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setIdentificationNumber(e.target.value)}\n />\n \n )}\n \n \n \n {citizenship === Citizenship.RU && (\n {\n if (uiStore.selectedCitizenship.value === Citizenship.RU) {\n const digits = value.replace(/\\D/g, '')\n\n if (digits.length === 6) {\n return digits.slice(0, 3) + '-' + digits.slice(3, 6)\n } else {\n return digits\n }\n } else if (\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.UZ\n ) {\n return value\n } else {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n }}\n >\n uiStore.setDepartmentCode(e.target.value)}\n maxLength={DepartmentCodeFormat[citizenship][DocumentType.passport].maxLength}\n />\n \n )}\n {citizenship === Citizenship.RU && (\n \n option.value === uiStore.gender)}\n onChange={(item) => {\n const newItem = item as BaseOption\n uiStore.setGender(newItem?.value ?? genderOptions[0].value)\n }}\n />\n \n )}\n \n \n \n\n \n uiStore.setPlaceOfBirth(e.target.value)}\n />\n \n\n {citizenship !== Citizenship.AM && (\n \n uiStore.setPassportIssued(e.target.value)}\n />\n \n )}\n\n {citizenship === Citizenship.RU && (\n <>\n \n uiStore.setRegistrationAddress(e.target.value)}\n />\n \n \n uiStore.setPermanentResidenceAddress(e.target.value)}\n />\n \n \n )}\n \n )\n})\n","import { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { genderOptions } from 'sections/LKSection/modules/UserModule/data'\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { Citizenship, DocumentType, GENDER, UserModuleKeys } from 'sections/LKSection/modules/UserModule/types'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { FormItem, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { ALL_EXCEPT_NUMBERS_REGEXP, NOT_LATIN_CYRILLIC_HYPHEN } from 'shared/constants/regExp'\nimport { BaseOption } from 'shared/types/types'\n\nimport { DepartmentCodeFormat, documentNumberFormat, RequisitesCIS } from './requisites'\n\nconst FORMAT_DATE = 'DD.MM.YYYY'\nexport type IdentificationFormProps = {\n uiStore: CompanyDetailsViewModel\n}\n\nexport const IdentificationForm = observer(({ uiStore }: IdentificationFormProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.passportStep}.${key}`\n const getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n const getRequisitesKey = (key: string) => `${UserModuleKeys.requisites}.${key}`\n const localizedGenderOptions = genderOptions.map((gender) => {\n return { ...gender, label: t(getDataKey(gender.label)) }\n })\n\n const citizenship = uiStore.selectedCitizenship.value\n\n const isIdentificationNumberVisible = !(\n citizenship === Citizenship.RU ||\n citizenship === Citizenship.KZ ||\n citizenship === Citizenship.AM ||\n citizenship === Citizenship.KG ||\n citizenship === Citizenship.UZ\n )\n\n const isPersonalNumberVisible = citizenship === Citizenship.UZ || citizenship === Citizenship.KG\n\n const isPassportIssuedVisible =\n citizenship === Citizenship.KZ || citizenship === Citizenship.GE || citizenship === Citizenship.TJ\n\n const isDepartmentCodeVisible =\n citizenship !== Citizenship.KZ && citizenship !== Citizenship.TJ && citizenship !== Citizenship.GE\n\n const stylePicker: React.CSSProperties = { width: 200 }\n\n const handleSetDateOfIssue = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfIssue(dateString)\n }\n }\n\n const handleSetDateOfBirthday = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfBirthday(dateString)\n }\n }\n\n const handleSetExpirationDate = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setExpirationDate(dateString)\n }\n }\n\n return (\n <>\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.KZ ||\n uiStore.selectedCitizenship.value === Citizenship.AM\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setDocumentNumber(e.target.value)}\n />\n \n\n {isIdentificationNumberVisible && (\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.KZ ||\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.TJ ||\n uiStore.selectedCitizenship.value === Citizenship.GE\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setIdentificationNumber(e.target.value)}\n />\n \n )}\n\n {citizenship === Citizenship.KZ && (\n <>\n value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')}\n >\n uiStore.setIin(e.target.value)}\n />\n \n value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')}\n >\n uiStore.setNationality(e.target.value)}\n />\n \n \n )}\n\n {isPassportIssuedVisible && (\n \n uiStore.setPassportIssued(e.target.value)}\n />\n \n )}\n\n \n \n \n\n \n \n \n\n \n \n \n\n {citizenship !== Citizenship.AM && (\n \n uiStore.setPlaceOfBirth(e.target.value)}\n />\n \n )}\n\n \n option.value === uiStore.gender)}\n onChange={(item) => {\n const newItem = item as BaseOption\n uiStore.setGender(newItem?.value ?? genderOptions[0].value)\n }}\n />\n \n\n {isDepartmentCodeVisible && (\n {\n if (uiStore.selectedCitizenship.value === Citizenship.RU) {\n return value?.replace(/[^0-9+-]/g, '')\n } else if (\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.UZ\n ) {\n return value\n } else {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n }}\n >\n uiStore.setDepartmentCode(e.target.value)}\n maxLength={DepartmentCodeFormat[citizenship][DocumentType.identification]?.maxLength}\n />\n \n )}\n\n {citizenship === Citizenship.AM && (\n value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')}\n >\n uiStore.setSocialCardNumber(e.target.value)}\n maxLength={10}\n />\n \n )}\n\n {isPersonalNumberVisible && (\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.UZ ||\n uiStore.selectedCitizenship.value === Citizenship.KG\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setPersonalNumber(e.target.value)}\n maxLength={14}\n />\n \n )}\n\n {citizenship === Citizenship.TJ && (\n {\n if (uiStore.selectedCitizenship.value === Citizenship.TJ) {\n return value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setInnCitizen(e.target.value)}\n maxLength={9}\n />\n \n )}\n \n )\n})\n","import { DatePicker } from 'antd'\nimport dayjs, { Dayjs } from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\n\nimport { genderOptions } from 'sections/LKSection/modules/UserModule/data'\nimport { CompanyDetailsViewModel } from 'sections/LKSection/modules/UserModule/stores/models/CompanyDetailsViewModel'\nimport { Citizenship, DocumentType, GENDER, UserModuleKeys } from 'sections/LKSection/modules/UserModule/types'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { FormItem, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { ALL_EXCEPT_NUMBERS_REGEXP, NOT_LATIN_CYRILLIC } from 'shared/constants/regExp'\nimport { DATE_FORMAT_DEFAULT } from 'shared/constants/values'\nimport { BaseOption } from 'shared/types/types'\n\nimport { DepartmentCodeFormat, passport, passportIssuedPlaceholders, RequisitesCIS } from './requisites'\n\nexport type CompanyDetailsFormProps = {\n uiStore: CompanyDetailsViewModel\n}\n\nexport const PassportForm = observer(({ uiStore }: CompanyDetailsFormProps) => {\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.passportStep}.${key}`\n const getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n const getRequisitesKey = (key: string) => `${UserModuleKeys.requisites}.${key}`\n const citizenship = uiStore.selectedCitizenship.value\n const localizedGenderOptions = genderOptions.map((gender) => {\n return { ...gender, label: t(getDataKey(gender.label)) }\n })\n\n const isNationalityVisible =\n citizenship === Citizenship.BY ||\n citizenship === Citizenship.KZ ||\n citizenship === Citizenship.KG ||\n citizenship === Citizenship.UZ\n\n const isIdentificationNumberVisible =\n citizenship === Citizenship.BY || citizenship === Citizenship.KZ || citizenship === Citizenship.KG\n\n const isDepartmentCodeVisible =\n citizenship === Citizenship.RU || citizenship === Citizenship.AM || citizenship === Citizenship.KG\n\n const isPassportIssuedVisible = !(citizenship === Citizenship.AM || citizenship === Citizenship.KG)\n\n const isPlaceOfBirthVisible = !(citizenship === Citizenship.AM || citizenship === Citizenship.KG)\n\n const stylePicker: React.CSSProperties = { width: 200 }\n\n const handleSetDateOfIssue = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfIssue(dateString)\n }\n }\n\n const handleSetExpirationDate = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setExpirationDate(dateString)\n }\n }\n\n const handleSetDateOfBirthday = (date: Dayjs, dateString: string | string[]) => {\n if (typeof dateString === 'string') {\n uiStore.setDateOfBirthday(dateString)\n }\n }\n\n return (\n <>\n {\n if (uiStore.selectedCitizenship.value === Citizenship.RU) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setPassport(e.target.value)}\n />\n \n\n {isNationalityVisible && (\n value.replace(NOT_LATIN_CYRILLIC, '')}\n >\n uiStore.setNationality(e.target.value)}\n />\n \n )}\n\n {isIdentificationNumberVisible && (\n {\n if (\n uiStore.selectedCitizenship.value === Citizenship.KZ ||\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.TJ ||\n uiStore.selectedCitizenship.value === Citizenship.GE\n ) {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n } else {\n return value\n }\n }}\n >\n uiStore.setIdentificationNumber(e.target.value)}\n />\n \n )}\n\n \n \n \n\n {citizenship !== Citizenship.RU && (\n \n \n \n )}\n\n {isDepartmentCodeVisible && (\n {\n if (uiStore.selectedCitizenship.value === Citizenship.RU) {\n const digits = value.replace(/\\D/g, '')\n\n if (digits.length === 6) {\n return digits.slice(0, 3) + '-' + digits.slice(3, 6)\n } else {\n return digits\n }\n } else if (\n uiStore.selectedCitizenship.value === Citizenship.KG ||\n uiStore.selectedCitizenship.value === Citizenship.UZ\n ) {\n return value\n } else {\n return value?.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n }\n }}\n >\n uiStore.setDepartmentCode(e.target.value)}\n maxLength={DepartmentCodeFormat[citizenship][DocumentType.passport].maxLength}\n />\n \n )}\n\n {isPassportIssuedVisible && (\n \n uiStore.setPassportIssued(e.target.value)}\n />\n \n )}\n\n {citizenship === Citizenship.AM && (\n \n uiStore.setRegistrationAddress(e.target.value)}\n />\n \n )}\n\n \n option.value === uiStore.gender)}\n onChange={(item) => {\n const newItem = item as BaseOption\n uiStore.setGender(newItem?.value ?? genderOptions[0].value)\n }}\n />\n \n\n \n \n \n\n {isPlaceOfBirthVisible && (\n \n uiStore.setPlaceOfBirth(e.target.value)}\n />\n \n )}\n \n )\n})\n","import { Form } from 'antd'\nimport dayjs from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { Divider, FormItem, Input } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { NOT_LATIN_CYRILLIC_HYPHEN } from 'shared/constants/regExp'\nimport { DATE_FORMAT_DEFAULT } from 'shared/constants/values'\nimport { BaseOption } from 'shared/types/types'\n\nimport {\n citizenshipOptions,\n countriesWithMultipleDocuments,\n documentsTypeOptions,\n identificationCardLabels,\n} from '../../../data'\nimport { CompanyDetailsViewModel } from '../../../stores/models/CompanyDetailsViewModel'\nimport { ProfileViewModel } from '../../../stores/models/ProfileViewModel'\nimport { Citizenship, DocumentType, UserModuleKeys } from '../../../types'\nimport { IdentificationForm } from './PassportForm/IdentificationForm'\nimport { PassportForm } from './PassportForm/PassportForm'\nimport { fioPlaceholders } from './PassportForm/requisites'\n\ntype PassportStepProps = {\n companyDetails: CompanyDetailsViewModel\n profile: ProfileViewModel\n isEdit?: boolean\n}\n\nexport const PassportStep = observer(({ companyDetails, profile, isEdit = false }: PassportStepProps) => {\n const [form] = Form.useForm()\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.passportStep}.${key}`\n const getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n const isCountryWithMultipleDocuments = countriesWithMultipleDocuments.some(\n (country) => country === companyDetails.selectedCitizenship.value,\n )\n\n const isMiddleNameVisible = !(\n companyDetails.documentType === DocumentType.identification &&\n companyDetails.selectedCitizenship.value === Citizenship.GE\n )\n\n const isPassport = companyDetails.documentType === DocumentType.passport\n const isIdentification = companyDetails.documentType === DocumentType.identification\n\n const handleChangeCitizenship = (item: BaseOption) => {\n companyDetails.setSelectedCitizenship(item)\n companyDetails.clearPassportStep()\n form.resetFields()\n form.setFieldValue('lastName', profile.lastName)\n form.setFieldValue('firstName', profile.firstName)\n form.setFieldValue('middleName', profile.middleName)\n\n if (item.value === Citizenship.TJ || item.value === Citizenship.GE) {\n companyDetails.setDocumentType(DocumentType.identification)\n return\n }\n\n companyDetails.setDocumentType(DocumentType.passport)\n }\n\n const setDocumentType = (option: BaseOption) => {\n companyDetails.clearPassportStep()\n companyDetails.setDocumentType(option.value)\n form.resetFields()\n form.setFieldValue('lastName', profile.lastName)\n form.setFieldValue('firstName', profile.firstName)\n form.setFieldValue('middleName', profile.middleName)\n }\n\n const getDocumentTypeOptions = () => {\n const selectedCitizenship = companyDetails.selectedCitizenship\n return documentsTypeOptions.map((option) => {\n if (option.value === DocumentType.identification) {\n return {\n label: t(getDataKey(identificationCardLabels[selectedCitizenship.value])),\n value: option.value,\n }\n }\n return option\n })\n }\n\n const localizedSitizenship = useMemo(() => {\n return citizenshipOptions.map((citizenship) => ({\n ...citizenship,\n label: t(getSharedCountriesKey(citizenship.label)),\n }))\n }, [t])\n\n const localizedCountry = (value: BaseOption) => {\n return {\n ...value,\n label: t(getSharedCountriesKey(value.label)),\n }\n }\n\n function getSharedCountriesKey(key: string) {\n return `${UserModuleKeys.countries}.${key}`\n }\n\n useEffect(() => {\n form.setFieldValue('lastName', profile.lastName)\n form.setFieldValue('firstName', profile.firstName)\n form.setFieldValue('middleName', profile.middleName)\n form.setFieldValue('passport', companyDetails.passport)\n form.setFieldValue('nationality', companyDetails.nationality)\n form.setFieldValue('identificationNumber', companyDetails.identificationNumber)\n form.setFieldValue('passportIssued', companyDetails.passportIssued)\n form.setFieldValue('registrationAddress', companyDetails.registrationAddress)\n form.setFieldValue('departmentCode', companyDetails.departmentCode)\n form.setFieldValue('placeOfBirth', companyDetails.placeOfBirth)\n form.setFieldValue('documentNumber', companyDetails.documentNumber)\n form.setFieldValue('iin', companyDetails.iin)\n form.setFieldValue('socialCardNumber', companyDetails.socialCardNumber)\n form.setFieldValue('personalNumber', companyDetails.personalNumber)\n form.setFieldValue('innCitizen', companyDetails.innCitizen)\n form.setFieldValue(\n 'dateOfIssue',\n companyDetails.dateOfIssue ? dayjs(companyDetails.dateOfIssue, DATE_FORMAT_DEFAULT) : null,\n )\n form.setFieldValue(\n 'expirationDate',\n companyDetails.expirationDate ? dayjs(companyDetails.expirationDate, DATE_FORMAT_DEFAULT) : null,\n )\n form.setFieldValue(\n 'dateOfBirthday',\n companyDetails.dateOfBirthday ? dayjs(companyDetails.dateOfBirthday, DATE_FORMAT_DEFAULT) : null,\n )\n }, [\n profile.lastName,\n profile.firstName,\n profile.middleName,\n companyDetails.passport,\n companyDetails.nationality,\n companyDetails.identificationNumber,\n companyDetails.dateOfIssue,\n companyDetails.expirationDate,\n companyDetails.dateOfBirthday,\n companyDetails.passportIssued,\n companyDetails.registrationAddress,\n companyDetails.departmentCode,\n companyDetails.placeOfBirth,\n companyDetails.documentNumber,\n companyDetails.iin,\n companyDetails.socialCardNumber,\n companyDetails.personalNumber,\n companyDetails.innCitizen,\n ])\n\n return (\n
    \n \n option.value === companyDetails.selectedCitizenship.value) ??\n citizenshipOptions[0],\n )}\n onChange={(citizenship) => handleChangeCitizenship(citizenship as BaseOption)}\n />\n \n\n {isCountryWithMultipleDocuments && (\n \n option.value === companyDetails.documentType)}\n options={getDocumentTypeOptions()}\n onChange={(option) => setDocumentType(option as BaseOption)}\n />\n \n )}\n\n value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')}\n >\n profile.setLastName(e.target.value)}\n placeholder={fioPlaceholders[companyDetails.selectedCitizenship.value].lastName}\n />\n \n value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')}\n >\n profile.setFirstName(e.target.value)}\n placeholder={fioPlaceholders[companyDetails.selectedCitizenship.value].firstName}\n />\n \n\n {isMiddleNameVisible && (\n value.replace(NOT_LATIN_CYRILLIC_HYPHEN, '')}\n >\n profile.setMiddleName(e.target.value)}\n placeholder={fioPlaceholders[companyDetails.selectedCitizenship.value].middleName}\n />\n \n )}\n\n {isPassport && }\n\n {isIdentification && }\n\n \n \n )\n})\n","import { Form } from 'antd'\nimport dayjs from 'dayjs'\nimport { observer } from 'mobx-react-lite'\nimport { lazy, useEffect, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { Button, Flex, FormItem, Paragraph, Title } from 'components/uiKit'\nimport { useResize } from 'utils/hooks/useResize'\nimport { DATE_FORMAT_DEFAULT } from 'shared/constants/values'\nimport { BaseOption } from 'shared/types/types'\n\nimport { OldPassportPhoto } from '../../components/PersonalDataSteps/PassportPhotoStep/OldPassportPhoto'\nimport { PassportPhotoStep } from '../../components/PersonalDataSteps/PassportPhotoStep/PassportPhotoStep'\nimport { OldIdentificationForm } from '../../components/PersonalDataSteps/PassportStep/PassportForm/OldIdentificationForm'\nimport { OldPassportForm } from '../../components/PersonalDataSteps/PassportStep/PassportForm/OldPassportForm'\nimport { PassportStep } from '../../components/PersonalDataSteps/PassportStep/PassportStep'\nimport {\n citizenshipOptions,\n countriesWithMultipleDocuments,\n documentsTypeOptions,\n identificationCardLabels,\n} from '../../data'\nimport { Citizenship, DocumentType } from '../../types'\n\nconst EditPassportPage = observer(() => {\n const { profileUiStore: uiStore } = useStore()\n const { companyDetails } = uiStore\n const [isVisibleAskForm, setVisibleAskForm] = useState(true)\n const [isVisibleOldForm, setVisibleOldForm] = useState(false)\n const { isMobile } = useResize()\n const navigate = useNavigate()\n const [form] = Form.useForm()\n\n const isPassport = uiStore.companyDetails.documentType === DocumentType.passport\n const isCountryWithMultipleDocuments = countriesWithMultipleDocuments.some(\n (country) => country === companyDetails.selectedCitizenship.value,\n )\n\n const isDisabledButtonUpdateOldForm = isPassport\n ? uiStore.validateStore.isInvalidOldPassport\n : uiStore.validateStore.isInvalidOldIdentification\n const isDisabledButtonUpdateNewForm =\n (isPassport ? uiStore.validateStore.isInvalidPassportForm : uiStore.validateStore.isInvalidIdentificationForm) ||\n uiStore.companyDetails.isInvalidDocumentPhoto ||\n uiStore.companyDetails.isInvalidWithDocumentPhoto\n\n const isDisabledButtonUpdate = isVisibleOldForm ? isDisabledButtonUpdateOldForm : isDisabledButtonUpdateNewForm\n\n useEffect(() => {\n return () => {\n setVisibleAskForm(true)\n setVisibleOldForm(false)\n companyDetails.clearCompanyInfo()\n form.resetFields()\n }\n }, [])\n\n useEffect(() => {\n if (isVisibleAskForm) {\n uiStore.createEditData()\n }\n }, [isVisibleAskForm])\n\n const backButtonHandler = () => {\n navigate(-1)\n }\n\n const setDocumentType = (option: BaseOption) => {\n companyDetails.setDocumentType(option.value)\n }\n\n const handleChangeCitizenship = (item: BaseOption) => {\n companyDetails.setSelectedCitizenship(item)\n\n if (item.value === Citizenship.TJ || item.value === Citizenship.GE) {\n companyDetails.setDocumentType(DocumentType.identification)\n return\n }\n\n companyDetails.setDocumentType(DocumentType.passport)\n }\n\n const getPassportData = async () => {\n const result = await uiStore.apiStore.getDocument()\n if (result === null) {\n setVisibleOldForm(true)\n }\n setVisibleAskForm(false)\n }\n\n const updateOldPassport = async () => {\n const result = await uiStore.apiStore.updateOldPassport()\n if (result) {\n uiStore.companyDetails.clearCompanyInfo()\n navigate(-1)\n form.resetFields()\n }\n }\n\n const updateNewForm = () => {\n uiStore.apiStore.updateOnlyPassport().then(() => {\n navigate(-1)\n })\n }\n\n const handleUpdatePassport = async () => {\n if (isVisibleOldForm) {\n updateOldPassport()\n } else {\n updateNewForm()\n }\n }\n\n const handleCloseForm = () => {\n setVisibleAskForm(true)\n setVisibleOldForm(false)\n form.resetFields()\n uiStore.companyDetails.clearCompanyInfo()\n }\n\n const getDocumentTypeOptions = () => {\n const selectedCitizenship = companyDetails.selectedCitizenship\n return documentsTypeOptions.map((option) => {\n if (option.value === DocumentType.identification) {\n return {\n label: identificationCardLabels[selectedCitizenship.value],\n value: option.value,\n }\n }\n return option\n })\n }\n\n useEffect(() => {\n form.setFieldValue('passport', companyDetails.passport)\n form.setFieldValue('nationality', companyDetails.nationality)\n form.setFieldValue('identificationNumber', companyDetails.identificationNumber)\n form.setFieldValue('passportIssued', companyDetails.passportIssued)\n form.setFieldValue('registrationAddress', companyDetails.registrationAddress)\n form.setFieldValue('departmentCode', companyDetails.departmentCode)\n form.setFieldValue('placeOfBirth', companyDetails.placeOfBirth)\n form.setFieldValue('documentNumber', companyDetails.documentNumber)\n form.setFieldValue('iin', companyDetails.iin)\n form.setFieldValue('socialCardNumber', companyDetails.socialCardNumber)\n form.setFieldValue('personalNumber', companyDetails.personalNumber)\n form.setFieldValue('innCitizen', companyDetails.innCitizen)\n form.setFieldValue('permanentResidenceAddress', companyDetails.permanentResidenceAddress)\n form.setFieldValue(\n 'dateOfIssue',\n companyDetails.dateOfIssue ? dayjs(companyDetails.dateOfIssue, DATE_FORMAT_DEFAULT) : null,\n )\n form.setFieldValue(\n 'expirationDate',\n companyDetails.expirationDate ? dayjs(companyDetails.expirationDate, DATE_FORMAT_DEFAULT) : null,\n )\n form.setFieldValue(\n 'dateOfBirthday',\n companyDetails.dateOfBirthday ? dayjs(companyDetails.dateOfBirthday, DATE_FORMAT_DEFAULT) : null,\n )\n }, [\n companyDetails.passport,\n companyDetails.nationality,\n companyDetails.identificationNumber,\n companyDetails.dateOfIssue,\n companyDetails.expirationDate,\n companyDetails.dateOfBirthday,\n companyDetails.passportIssued,\n companyDetails.registrationAddress,\n companyDetails.departmentCode,\n companyDetails.placeOfBirth,\n companyDetails.documentNumber,\n companyDetails.iin,\n companyDetails.socialCardNumber,\n companyDetails.personalNumber,\n companyDetails.innCitizen,\n companyDetails.permanentResidenceAddress,\n ])\n\n return (\n \n \n \n \n \n \n )}\n\n {!isVisibleAskForm && (\n <>\n {isVisibleOldForm ? (\n <>\n \n {isPassport ? 'Паспортные данные' : 'Удостоверение личности'}\n
    \n {isPassport ? (\n \n ) : (\n \n )}\n \n \n
    \n \n ) : (\n <>\n \n \n \n )}\n\n \n \n \n \n \n )}\n
    \n
    \n )\n})\n\nexport default EditPassportPage\n\nexport const EditPassportPageAsync = lazy(() => import('./EditPassportPage'))\n","import { notification } from 'antd'\n\nimport { FileEntityType, fileService } from 'services/FileService'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { FileUploadDTO } from 'shared/types/types'\n\nexport const useSendTaxFile = () => {\n const trySendTaxFile = async (fileUpload: ConvertedFile, userId: number): Promise => {\n try {\n const file = await fileService.fileUpload({\n entityId: userId,\n totalSize: fileUpload.fileSize,\n content: fileUpload.content,\n entityType: FileEntityType.user,\n })\n\n if (!file) {\n throw new Error('Не удалось загрузить документ подтверждающий НДС')\n }\n\n if (!file?.imageUrl) {\n throw new Error('Не удалось загрузить документ подтверждающий НДС')\n }\n\n notification.success({\n message: 'Документ подтверждающий НДС загружен!',\n })\n\n return file\n } catch (error) {\n notification.error({\n message: 'Ошибка',\n description: (error as Error).message,\n })\n return\n }\n }\n\n return trySendTaxFile\n}\n","import { Country } from 'shared/types/types'\n\nimport { CompanyType } from '../../../types'\n\nexport const accountPlacehorders = {\n [Country.RU]: {\n bik: '123456789',\n payAccount: '12345678901234567890',\n corAccount: '12345678901234567890',\n inn: {\n [CompanyType.ip]: '123456789012',\n [CompanyType.ooo]: '1234567890',\n },\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.AM]: {\n inn: '12345678',\n payAccount: '1234567890123456',\n bik: 'ARMIAM12345',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.KZ]: {\n inn: '123456789012',\n bik: 'AB123456789',\n payAccount: 'KZ12345A678901234567',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.BY]: {\n inn: '123456789',\n bik: 'ALFABY2X',\n payAccount: 'BY12AKBB01234567890123456789',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n legalAddress: 'Введите юридический адрес',\n gln: '1234567891234',\n },\n\n [Country.UZ]: {\n inn: {\n [CompanyType.ip]: '12345678901234',\n [CompanyType.ooo]: '123456789',\n },\n bik: '12345',\n payAccount: '12345678901234567890',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.KG]: {\n inn: '12345678901234',\n payAccount: '1234567890123456',\n bik: '123456',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.GE]: {\n inn: '12345678901234',\n bik: 'TBCBGE01',\n payAccount: 'GE12TB1234567890123456',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.TJ]: {\n inn: '123456789',\n payAccount: '12345678901234567890',\n bik: '123456789',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n\n [Country.TM]: {\n inn: 'Введите инн',\n payAccount: 'Введите номер счета',\n bik: 'Введите бик',\n companyName: 'Введите название компании',\n bankName: 'Введите наименование банка',\n },\n}\n","import { Form } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { Margin } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { ReactSelect } from 'components/ui/Select/ReactSelect'\nimport { Spinner } from 'components/ui/Spinner/Spinner'\nimport { ErrorText } from 'components/ui/Text/Text'\nimport { UploadFile } from 'components/ui/UploadFile/UploadFile'\nimport { Checkbox, Divider, FormItem, Input, Paragraph, Text } from 'components/uiKit'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { ConvertedFile } from 'utils/helpers/files/fileUpload'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\n// import { PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { colors } from 'shared/constants/values'\nimport { BaseOption, Country } from 'shared/types/types'\n\nimport { accountDetails, companyNameWithCompanyType, countries } from '../../../data'\nimport { CompanyDetailsViewModel } from '../../../stores/models/CompanyDetailsViewModel'\nimport { CompanyType, TaxCheckStatusType, TaxTypes, UserModuleKeys } from '../../../types'\nimport { useSendTaxFile } from '../../../utils/useSendTaxFile'\nimport { accountPlacehorders } from './data'\n\ntype ActivityStepProps = {\n companyDetails: CompanyDetailsViewModel\n isEdit?: boolean\n}\n\nconst MIN_PAY_ACCOUNT_FOR_ALL_COUNTRY = 19\nconst MIN_BIK_FOR_ALL_COUNTRY = 8\n\nexport const ActivityStep = observer(({ companyDetails, isEdit = false }: ActivityStepProps) => {\n const { appStore } = useStore()\n const trySendTaxFile = useSendTaxFile()\n const { t } = useTranslation()\n const [form] = Form.useForm()\n const [isFilesEmpty, setFilesEmpty] = useState(false)\n\n const getKey = (key: string) => `${UserModuleKeys.activityStep}.${key}`\n const getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n const selectedCountry = companyDetails.selectedCountry.country\n const taxType = companyDetails.taxType\n const isTaxCheckStatusVisible =\n (companyDetails.hasTaxFiles ||\n (!companyDetails.hasTaxFiles && companyDetails.taxCheckStatus !== TaxCheckStatusType.review)) &&\n isEdit\n const innLabel = companyDetails.innLable\n const isBikOrPayAccountInvalid =\n companyDetails.payAccount.length > MIN_PAY_ACCOUNT_FOR_ALL_COUNTRY &&\n companyDetails.bik.length > MIN_BIK_FOR_ALL_COUNTRY &&\n companyDetails.isAnBikInvalid\n\n const taxTooltip =\n isEdit && selectedCountry === Country.RU ? (\n \n Обратите внимание, что система налогообложения будет изменена после проверки подтверждающего документа. Проверка\n занимает 1-2 дня.\n \n ) : (\n ''\n )\n\n useEffect(() => {\n if (taxType === TaxTypes.osn) {\n setFilesEmpty(true)\n } else {\n setFilesEmpty(false)\n }\n }, [taxType])\n\n const handleInnChange = (textDirty: string) => {\n const text = textDirty.replace(/[^\\d]/g, '')\n if (companyDetails.selectedCountry.country === Country.RU) {\n if (text.length === companyDetails.innMaxLength) {\n companyDetails.updateFields(text)\n }\n } else {\n companyDetails.setInn(text)\n }\n\n companyDetails.setInnText(text)\n }\n\n const handlePressText = (newCompanyType: CompanyType) => () => {\n if (companyDetails.companyType && newCompanyType !== companyDetails.companyType) {\n companyDetails.clearCompanyInfo()\n form.resetFields()\n }\n\n companyDetails.setCompanyType(newCompanyType)\n }\n\n const handleTaxType = (type: TaxTypes) => {\n companyDetails.setTaxType(type)\n handleDeleteFile()\n }\n\n const handleFile = async (file: ConvertedFile) => {\n if (companyDetails.loading) return\n\n const result = await trySendTaxFile(file, appStore.user.info.user_id)\n\n if (result) {\n companyDetails.setTaxFiles([result.imageUrl])\n companyDetails.setTaxFilesUI([file.content])\n setFilesEmpty(false)\n } else {\n handleDeleteFile()\n setFilesEmpty(true)\n }\n\n companyDetails.setLoading(false)\n }\n\n const handleDeleteFile = () => {\n companyDetails.setTaxFiles([])\n companyDetails.setTaxFilesUI([])\n if (taxType === TaxTypes.osn) {\n setFilesEmpty(true)\n } else {\n setFilesEmpty(false)\n }\n }\n\n const handleSelectedCountry = (item: BaseOption) => {\n companyDetails.setSelectedCountry(item.value ?? countries[0].value)\n companyDetails.clearActivityStep()\n form.resetFields()\n }\n\n const localizedCountries = useMemo(() => {\n return countries.map((country) => ({\n ...country,\n label: t(getSharedCountryKey(country.value.label)),\n }))\n }, [t])\n\n const localizedCountry = (value: BaseOption) => {\n return {\n ...value,\n label: t(getSharedCountryKey(value.label)),\n }\n }\n\n function getSharedCountryKey(key: string) {\n return `${UserModuleKeys.countries}.${key}`\n }\n\n const getStatusColor = (status: TaxCheckStatusType) => {\n switch (status) {\n case TaxCheckStatusType.review:\n return colors.secondary\n case TaxCheckStatusType.remark:\n return colors.orange\n case TaxCheckStatusType.canceled:\n return colors.red\n case TaxCheckStatusType.success:\n return colors.green\n }\n }\n\n useEffect(() => {\n form.setFieldValue('innText', companyDetails.innText)\n form.setFieldValue('companyName', companyDetails.companyName)\n form.setFieldValue('bankName', companyDetails.bankName)\n form.setFieldValue('bik', companyDetails.bik)\n form.setFieldValue('payAccount', companyDetails.payAccount)\n form.setFieldValue('legalAddress', companyDetails.legalAddress)\n form.setFieldValue('corAccount', companyDetails.corAccount)\n form.setFieldValue('gln', companyDetails.gln)\n }, [\n companyDetails.innText,\n companyDetails.companyName,\n companyDetails.bankName,\n companyDetails.bik,\n companyDetails.payAccount,\n companyDetails.legalAddress,\n companyDetails.corAccount,\n companyDetails.gln,\n ])\n\n const getInnPlaceholder = () => {\n const innPlaceholder = accountPlacehorders[selectedCountry].inn\n\n if (typeof innPlaceholder === 'object') {\n return innPlaceholder[companyDetails.companyType]\n }\n\n return innPlaceholder\n }\n\n const bikNormalize = (value: string) => {\n if (\n selectedCountry === Country.AM ||\n selectedCountry === Country.KZ ||\n selectedCountry === Country.BY ||\n selectedCountry === Country.GE\n ) {\n return value\n }\n return value.replace(/[^\\d]/g, '')\n }\n\n const normalizePayAccount = (value: string) => {\n if (selectedCountry === Country.GE || selectedCountry === Country.BY || selectedCountry === Country.KZ) {\n return value\n }\n return value.replace(/[^\\d]/g, '')\n }\n\n return (\n
    \n {!isEdit && {t(getKey('Необходимо выбрать страну'))}.}\n\n \n value.value.country === selectedCountry) ?? countries[0])}\n onChange={(item) => handleSelectedCountry(item as BaseOption)}\n />\n \n\n \n {companyNameWithCompanyType[selectedCountry].map(([label, type]) => (\n \n {t(getDataKey(label))}\n \n ))}\n \n\n \n handleTaxType(TaxTypes.usn)}>\n {t(getKey('Без НДС'))}\n \n handleTaxType(TaxTypes.osn)}\n disabled={companyDetails.onlyTaxUsnCountry}\n >\n {t(getKey('НДС'), { count: 20 })}%\n \n\n handleTaxType(TaxTypes.lowerRate5)}\n disabled={companyDetails.onlyTaxUsnCountry || selectedCountry !== Country.RU}\n >\n {t(getKey('НДС'), { count: 5 })}%\n \n handleTaxType(TaxTypes.lowerRate7)}\n disabled={companyDetails.onlyTaxUsnCountry || selectedCountry !== Country.RU}\n >\n {t(getKey('НДС'), { count: 7 })}%\n \n \n\n \n \n {isFilesEmpty && {t(getKey('Прикрепите документ'))}}\n \n\n \n {t(getKey('Прикрепите файл в формате'))}\n \n\n {isTaxCheckStatusVisible && (\n \n \n - {t(getKey('Статус проверки НДС'))}:{' '}\n \n {companyDetails.taxCheckStatusName}\n \n \n {companyDetails.taxCheckStatus === TaxCheckStatusType.remark && (\n \n {' '}\n - {t(getKey('Комментарий от менеджера'))}: {companyDetails.taxCheckStatusComment}\n \n )}\n {companyDetails.taxCheckStatus === TaxCheckStatusType.review && (\n - {t(getKey('Проверка подтверждающих документов'))}.\n )}\n \n )}\n\n \n\n value.replace(/[^\\d]/g, '')}\n extra={\n selectedCountry === Country.GE ? t(getSharedKey('maxLength'), { count: companyDetails.innMaxLength }) : ''\n }\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n {\n min: selectedCountry === Country.GE ? 1 : companyDetails.innMaxLength,\n message: t(getSharedKey('minLength'), { count: companyDetails.innMaxLength }),\n },\n ]}\n >\n handleInnChange(e.target.value)}\n maxLength={companyDetails.innMaxLength}\n placeholder={getInnPlaceholder()}\n />\n \n\n {companyDetails.loadingCompanyInfo && }\n\n {companyDetails.isValidInn && !companyDetails.loadingCompanyInfo && (\n <>\n \n companyDetails.setCompanyName(e.target.value)}\n placeholder={accountPlacehorders[selectedCountry].companyName}\n />\n \n\n \n companyDetails.setBankName(e.target.value)}\n placeholder={accountPlacehorders[selectedCountry].bankName}\n />\n \n\n {companyDetails.selectedCountry.country === Country.BY && (\n <>\n \n companyDetails.setLegalAddress(e.target.value)}\n placeholder={selectedCountry === Country.BY ? accountPlacehorders[selectedCountry].legalAddress : ''}\n />\n \n {isEdit && (\n value.replace(/[^\\d]/g, '')}\n rules={[\n {\n min: accountDetails.BY.gln,\n message: t(getSharedKey('minLength'), { count: accountDetails.BY.gln }),\n },\n ]}\n >\n companyDetails.setGln(e.target.value)}\n maxLength={accountDetails.BY.gln}\n placeholder={selectedCountry === Country.BY ? accountPlacehorders[selectedCountry].gln : ''}\n />\n \n )}\n \n )}\n\n {isBikOrPayAccountInvalid && (\n <>\n \n {t(getKey('Проверьте БИК и Р/с'))}.\n \n \n )}\n\n bikNormalize(value)}\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n {\n min: companyDetails.bikMinLength,\n message: t(getSharedKey('minLength'), { count: companyDetails.bikMinLength }),\n },\n {\n validator: (_, value) => {\n if (value.length > companyDetails.bikMinLength && companyDetails.isBikInvalid) {\n return Promise.reject(\n new Error(\n t(getKey('Поле должно состоять'), {\n min: companyDetails.bikMinLength,\n max: companyDetails.bikMaxLength,\n }),\n ),\n )\n }\n return Promise.resolve()\n },\n },\n ]}\n >\n companyDetails.setBik(e.target.value)}\n maxLength={companyDetails.bikMaxLength}\n placeholder={accountPlacehorders[selectedCountry].bik}\n />\n \n\n normalizePayAccount(value)}\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n {\n min: companyDetails.payAccountMinLength,\n message: t(getSharedKey('minLength'), { count: companyDetails.payAccountMinLength }),\n },\n ]}\n >\n companyDetails.setPayAccount(e.target.value)}\n maxLength={companyDetails.payAccountMaxLength}\n placeholder={accountPlacehorders[selectedCountry].payAccount}\n />\n \n\n {companyDetails.selectedCountry.country === Country.RU && (\n value.replace(/[^\\d]/g, '')}\n rules={[\n { required: true, message: t(getSharedKey('required')) },\n {\n min: companyDetails.corAccountMaxLength,\n message: t(getSharedKey('minLength'), { count: companyDetails.corAccountMaxLength }),\n },\n ]}\n >\n companyDetails.setCorAccount(e.target.value)}\n maxLength={companyDetails.corAccountMaxLength}\n placeholder={selectedCountry === Country.RU ? accountPlacehorders[selectedCountry].corAccount : ''}\n />\n \n )}\n \n )}\n\n \n\n {/* \n t(getKey('Если вы ещё не успели')){' '}\n \n t(getKey('предложения наших банков-партнеров'))\n \n */}\n\n \n {!isGeDomain() && selectedCountry !== Country.GE && (\n // {selectedCountry !== Country.GE && (\n \n companyDetails.setAcceptPersonalInfo()}\n checked={companyDetails.acceptPersonalInfo}\n >\n {t(getKey('Согласен с'))}\n \n {` ${t(getKey('Политикой Вайлдберриз'))} `}\n \n {t(getKey('в отношении организации обработки'))}\n \n \n )}\n \n \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport { lazy, useEffect } from 'react'\nimport { useNavigate } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { ActivityStep } from '../../components/PersonalDataSteps/ActivityStep/ActivityStep'\n\nconst EditRequisitesPage = observer(() => {\n const { profileUiStore: uiStore } = useStore()\n const { companyDetails } = uiStore\n const { isMobile } = useResize()\n const navigate = useNavigate()\n\n useEffect(() => {\n uiStore.createEditData()\n return () => {\n companyDetails.clearCompanyInfo()\n }\n }, [])\n\n const backButtonHandler = () => {\n navigate(-1)\n uiStore.companyDetails.clearCompanyInfo()\n }\n\n const updateRequisites = () => {\n uiStore.apiStore.updateRequisites().then(() => {\n navigate(-1)\n })\n }\n\n return (\n \n \n \n \n \n \n \n )\n})\n\nexport default EditRequisitesPage\n\nexport const EditRequisitesPageAsync = lazy(() => import('./EditRequisitesPage'))\n","import { Col, Flex, Text } from 'components/uiKit'\n\nimport s from './ProfileItem.module.scss'\n\ntype ProfileItemProps = {\n label: string\n children: string\n isVisible?: boolean\n}\n\nexport const ProfileItem = ({ label, children, isVisible = true }: ProfileItemProps) => {\n if (!isVisible) return null\n return (\n \n \n \n {label}\n \n \n {children ? children : '-'}\n \n \n \n )\n}\n","import { observer } from 'mobx-react-lite'\nimport { lazy } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { phonePipe, snilsPipe } from 'utils/pipes'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { Country } from 'shared/types/types'\n\nimport { ProfileItem } from '../../components/ProfileItem/ProfileItem'\nimport { PASSPORT_STATUSES } from '../../types'\nimport { UserModuleKeys } from '../../types'\n\nconst ProfilePage = observer(() => {\n const { profileUiStore: uiStore, appStore } = useStore()\n const { user } = uiStore\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.profilePage}.${key}`\n\n return (\n \n \n {t(getKey('Пользователь'))}\n \n \n {user.last_name}\n {user.first_name}\n \n {user.middle_name}\n \n \n {appStore.company?.email ?? ''}\n \n \n {snilsPipe(user.snils)}\n \n \n {phonePipe(user.phone, user.country)}\n \n \n {phonePipe(user.additional_phone, user.additional_phone_country)}\n \n \n {user.telegram_login}\n \n \n \n \n \n {uiStore.appStore.user.info.passport_approve_status !== PASSPORT_STATUSES.approved && (\n \n )}\n \n \n \n \n \n \n )\n})\n\nexport default ProfilePage\n\nexport const ProfilePageAsync = lazy(() => import('./ProfilePage'))\n","import { Form, notification } from 'antd'\nimport i18next from 'i18next'\nimport { observer } from 'mobx-react-lite'\nimport { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport { useStore } from 'store/useStore'\nimport { SignboardFormat, SignboardSize } from 'sections/LKSection/modules/OrderModule/types'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { signboardPhotoItems } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/data'\nimport { PickPointFileItem } from 'sections/LKSection/shared/PickPointSharedModule/components/PickPointFilesForm/PickPointFileItem/PickPointFileItem'\nimport { signboardFormatOptions, signboardSizeOptions } from 'sections/LKSection/shared/PickPointSharedModule/data'\nimport { Margin, Padding } from 'components/ui'\nimport { Select, Skeleton, Title } from 'components/uiKit'\nimport { Button } from 'components/uiKit/Button/Button'\nimport { Flex } from 'components/uiKit/Flex/Flex'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { SEARCH_PARAMS } from 'shared/constants/values'\n\nimport { PvzKeys } from '../../data'\nimport { UpdateSignboardData } from '../../types/typesDTO'\n\nconst getKey = (key: string) => `${PvzKeys.signboardPage}.${key}`\nconst getApiKey = (key: string) => `${PvzKeys.pvzModule}.api.${key}`\n\nexport const PvzSignboardPage = observer(() => {\n const { viewPvzUiStore: uiStore } = useStore()\n const { pvzId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n const [form] = Form.useForm()\n const [isLoading, setIsLoading] = useState(true)\n const [isFormChanged, setIsFormChanged] = useState(false)\n const location = useLocation()\n\n const searchParams = new URLSearchParams(location.search)\n const pageFromUrl = Number(searchParams.get(SEARCH_PARAMS.page)) || 1\n const pageSizeFromUrl = Number(searchParams.get(SEARCH_PARAMS.pageSize)) || 20\n\n const pvz = uiStore.selectedPvz\n\n const backButtonHandler = () => {\n navigate(LKRoutesEnum.pvz)\n }\n\n const handleValuesChange = () => {\n const touched = form.isFieldsTouched()\n setIsFormChanged(touched)\n }\n\n useAsyncEffect(async () => {\n setIsLoading(true)\n uiStore.setPage(pageFromUrl)\n uiStore.setPageSize(pageSizeFromUrl)\n\n if (uiStore.pvzList.length === 0) {\n await uiStore.getPvzList()\n }\n\n if (pvzId) {\n await uiStore.switchPvz(+pvzId)\n }\n\n await uiStore.getPvzSignboardList(Number(uiStore.selectedPvz?.externalId))\n const signboardData = uiStore.signboardData\n form.setFieldsValue({\n signboardFormat: signboardData.signboardFormat,\n signboardSize: signboardData.signboardSize,\n })\n\n setIsLoading(false)\n }, [pvzId, form, uiStore])\n\n const updateSignboardData = async (values: { signboardFormat: SignboardFormat; signboardSize: SignboardSize }) => {\n const patch: UpdateSignboardData = {\n pickpointId: Number(uiStore.selectedPvz?.externalId),\n signboardFormat: values.signboardFormat,\n signboardSize: values.signboardSize,\n }\n await uiStore.updatePvzSignboard(patch)\n await uiStore.getPvzSignboardList(Number(uiStore.selectedPvz?.externalId))\n notification.success({\n message: i18next.t(getApiKey('updatePvzSignboardSuccess')),\n })\n }\n\n const handleUpdateSignboard = async (values: { signboardFormat: SignboardFormat; signboardSize: SignboardSize }) => {\n if (!pvzId) return\n\n if (values.signboardFormat === SignboardFormat.none || values.signboardSize === SignboardSize.none) {\n notification.error({\n message: t(getKey('Пожалуйста, заполните поля')),\n })\n return\n }\n\n const hasSignboardChanges = isFormChanged\n const hasPhotoChanges = !uiStore.isNoChanges\n\n if (hasSignboardChanges && !hasPhotoChanges) {\n await updateSignboardData(values)\n } else if (!hasSignboardChanges && hasPhotoChanges) {\n await uiStore.updatePvz(Number(pvzId))\n } else if (hasSignboardChanges && hasPhotoChanges) {\n await updateSignboardData(values)\n await uiStore.updatePvz(Number(pvzId))\n }\n\n const signboardData = uiStore.signboardData\n form.setFieldsValue({\n signboardFormat: signboardData.signboardFormat || SignboardFormat.none,\n signboardSize: signboardData.signboardSize || SignboardSize.none,\n })\n\n navigate(LKRoutesEnum.pvz)\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n )\n})\n","export const promoColors = {\n pink: '#F90479',\n pink2: '#FFEAF2',\n lightPurple: '#EEEAFF',\n purple1: '#BC86FF',\n purple2: '#9F57FC',\n purple3: '#7F30E3',\n purple4: '#52268A',\n newBgPrimary: '#7635db',\n}\n","import { observer } from 'mobx-react-lite'\nimport { useEffect, useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { CodeInput } from 'sections/LKSection/shared/components/CodeInput/CodeInput'\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { promoColors } from 'sections/PromoSection/shared/constants'\nimport { CountryPhoneInput } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { Margin, TextPromo } from 'components/ui'\nimport { Container } from 'components/ui/Container/Container'\nimport { Button, Flex, Form, FormItem, Paragraph, Title } from 'components/uiKit'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { AuthRoutesEnum, LKRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\n\nimport { countries } from '../../data'\nimport { LoginStatus } from '../../stores/LoginUiStore'\nimport { UserModuleKeys } from '../../types'\n\nimport s from './LoginPage.module.scss'\n\nexport const LoginPage = observer(() => {\n const { loginUiStore: uiStore, appStore } = useStore()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.loginPage}.${key}`\n const getKeyPromo = (key: string) => `${PromoPageKeys.openPickPointForm}.${key}`\n\n const localizedCountries = useMemo(() => {\n countries.sort((a, b) => a.label.localeCompare(b.label))\n return countries.map((country) => ({\n ...country,\n label: t(getSharedKey(country.value.label)),\n }))\n }, [t])\n\n useEffect(() => {\n if (!localizedCountries.length) return\n\n const computedDefaultOption = isGeDomain()\n ? localizedCountries.find((country) => country.value.country === 'GE') || localizedCountries[5]\n : localizedCountries[5]\n\n uiStore.setSelectedCountry(computedDefaultOption.value)\n }, [localizedCountries, uiStore])\n\n const handleSetCode = async (code: string) => {\n uiStore.setCode(code)\n\n if (code.length !== uiStore.codeLength) {\n return\n }\n\n const result = await uiStore.validateCode()\n\n if (result) {\n await bootstrap()\n uiStore.setDefaultState()\n }\n }\n\n const handlePressBtn = async () => {\n const result = await uiStore.tryLogin(false)\n if (result === LoginStatus.validateCode) {\n bootstrap()\n } else if (result === LoginStatus.loggedIn) {\n uiStore.setValidateVisible(true)\n }\n }\n\n const bootstrap = async () => {\n await appStore.bootstrap()\n const screen = appStore.needRegistration ? AuthRoutesEnum.registration : LKRoutesEnum.orders\n appStore.setLoadingApp(false)\n navigate(screen, { replace: true })\n }\n\n const { timeIsNotOver, timeExpired } = uiStore.timeWaiter\n\n return (\n \n \n {!uiStore.isValidateVisible && (\n \n {t(getKey('Авторизация'))} \n
    \n {t(getKey('Выберите страну и введите ваш номер'))}.\n \n \n \n\n \n \n\n \n \n {t(getKeyPromo('Нажимая «Далее»'), { nbsp: '\\u00A0' })}{' '}\n \n {t(getKeyPromo('офертой'))}\n {' '}\n {t(getKeyPromo('и'))}{' '}\n \n {t(getKeyPromo('политикой конфиденциальности'))}\n \n \n \n \n
    \n
    \n )}\n {uiStore.isValidateVisible && (\n \n {t(getKey('Подтверждение и вход'))}\n
    \n \n {t(getKey('Мы отправили вам PUSH-уведомление'))}.\n {t(getKey('Вы указали'))}:\n {uiStore.fullPhone}\n {t(getKey('Уведомление придет в'))}:\n - {t(getKey('клиентское приложение Wildberries'))}\n {t(getKey('или'))}\n - {t(getKey('приложение WB ПВЗ'))}\n {t(getKey('Обращаем Ваше внимание'))},\n \n {t(getKey('что PUSH-уведомления'))}\n {` ${t(getKey('должны быть включены'))} `}\n {t(getKey('на устройстве и в приложениях'))}.\n \n \n \n handleSetCode(value)} />\n \n \n uiStore.tryLogin(true)}\n disabled={timeIsNotOver || uiStore.loading}\n loading={uiStore.loading}\n >\n {timeIsNotOver\n ? `${t(getKey('Отправить заново через'))} 00:${timeExpired}`\n : t(getKey('Отправить код подтверждения'))}\n \n \n \n \n \n
    \n
    \n )}\n
    \n
    \n )\n})\n","import { Modal, notification, Steps } from 'antd'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useSearchParams } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { promoColors } from 'sections/PromoSection/shared/constants'\nimport { Margin, TextPromo } from 'components/ui'\nimport { Container } from 'components/ui/Container/Container'\nimport { Button, Flex, Title } from 'components/uiKit'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { useResize } from 'utils/hooks/useResize'\nimport { AuthRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { SEARCH_PARAMS } from 'shared/constants/values'\nimport { Country } from 'shared/types/types'\nimport { EventType } from 'types/types'\n\nimport { ActivityStep } from '../../components/PersonalDataSteps/ActivityStep/ActivityStep'\nimport { ContactInfoStep } from '../../components/PersonalDataSteps/ContactInfoStep/ContactInfoStep'\nimport { PassportPhotoStep } from '../../components/PersonalDataSteps/PassportPhotoStep/PassportPhotoStep'\nimport { PassportStep } from '../../components/PersonalDataSteps/PassportStep/PassportStep'\nimport { STEPS_TITLES } from '../../data'\nimport { Citizenship, DocumentType, PersonalDataStep, UserModuleKeys } from '../../types'\n\nimport s from './RegistrationPage.module.scss'\n\nexport const RegistrationPage = observer(() => {\n const { registrationUiStore: uiStore, appStore, offerStore, loginUiStore } = useStore()\n const { isMobile } = useResize()\n const [isOfertaVisible, setOfertaVisible] = useState(false)\n const [isOfertaPageLoading, setOfertaPageLoading] = useState(true)\n const [stage, setStage] = useState(0)\n const navigate = useNavigate()\n\n const [searchParams, setSearchParams] = useSearchParams()\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${UserModuleKeys.regisgtrationPage}.${key}`\n const getDataKey = (key: string) => `${UserModuleKeys.data}.${key}`\n const getKeyPromo = (key: string) => `${PromoPageKeys.openPickPointForm}.${key}`\n\n const mobileToken = searchParams.get(SEARCH_PARAMS.mobileToken)\n const isPassport = uiStore.companyDetails.documentType === DocumentType.passport\n const stepsTitles = STEPS_TITLES.map((value) => {\n const title = t(getDataKey(value.title as string))\n return { title }\n })\n\n useAsyncEffect(async () => {\n if (appStore.user?.info.user_id === 0) {\n if (mobileToken) {\n const success = await loginUiStore.getAuthHash(mobileToken)\n\n if (success) {\n searchParams.delete(SEARCH_PARAMS.mobileToken)\n setSearchParams(searchParams)\n await loginUiStore.useAuthHash()\n }\n }\n\n await appStore.bootstrap()\n\n if (!appStore.isLoadingUserInfo && !appStore.user.authenticated) {\n navigate(AuthRoutesEnum.login, { replace: true })\n return\n }\n }\n\n notification.info({ message: t(getKey('Для доступа к личному')) })\n }, [])\n\n // Для грузинского домена устанавливаем по умолчанию Грузию\n useEffect(() => {\n if (isGeDomain()) {\n uiStore.companyDetails.setSelectedCountry({ label: 'Грузия', value: '995', country: Country.GE })\n uiStore.companyDetails.setSelectedCitizenship({ label: 'Грузия', value: Citizenship.GE })\n uiStore.companyDetails.setDocumentType(DocumentType.identification)\n uiStore.profile.additionalPhoneModel.setSelectedCountry({ label: 'Грузия', value: '995', country: Country.GE })\n }\n }, [])\n\n useEffect(() => {\n if (uiStore.personalDataStep === PersonalDataStep.step4) {\n offerStore.apiStore.getOfferVersion(uiStore.companyDetails.selectedCountry.country)\n }\n }, [uiStore.personalDataStep])\n\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [uiStore.personalDataStep])\n\n const handleNextStep = () => {\n switch (uiStore.personalDataStep) {\n case PersonalDataStep.step1:\n sendEvent(EventType.registration, { step: 1, success: 1 })\n uiStore.setPersonalDataStep(PersonalDataStep.step2)\n break\n case PersonalDataStep.step2:\n sendEvent(EventType.registration, { step: 2, success: 1 })\n uiStore.setPersonalDataStep(PersonalDataStep.step3)\n break\n case PersonalDataStep.step3:\n sendEvent(EventType.registration, { step: 3, success: 1 })\n uiStore.setPersonalDataStep(PersonalDataStep.step4)\n break\n case PersonalDataStep.step4:\n setOfertaVisible(true)\n break\n }\n }\n\n const handlePrevStep = () => {\n switch (uiStore.personalDataStep) {\n case PersonalDataStep.step1:\n appStore.logout()\n localStorage.clear()\n navigate(AuthRoutesEnum.login, { replace: true })\n break\n case PersonalDataStep.step2:\n uiStore.setPersonalDataStep(PersonalDataStep.step1)\n break\n case PersonalDataStep.step3:\n uiStore.setPersonalDataStep(PersonalDataStep.step2)\n break\n case PersonalDataStep.step4:\n uiStore.setPersonalDataStep(PersonalDataStep.step3)\n break\n }\n }\n\n const handleAcceptPress = async () => {\n let nextStage = stage\n\n if (stage < offerStore.linksForRegistration.length - 1) {\n setOfertaPageLoading(true)\n nextStage = nextStage + 1\n } else {\n await offerStore.apiStore\n .signOfferVersion({\n version: offerStore.offers[0].lastVersion as number,\n countryCode: offerStore.offers[0].countryCode,\n })\n .catch((error) => {\n sendEvent(EventType.registration, { step: 4, success: 0, reason: 'Ошибка подписания оферты' })\n throw error\n })\n\n await uiStore.apiStore.tryRegisterOwner().catch((error) => {\n sendEvent(EventType.registration, { step: 4, success: 0, reason: (error as Error).message })\n throw error\n })\n\n window.ReactNativeWebView.postMessage(\n JSON.stringify({\n isRegistrationSuccess: true,\n }),\n )\n sendEvent(EventType.registration, { step: 4, success: 1 })\n navigate(AuthRoutesEnum.login, { replace: true })\n uiStore.setPersonalDataStep(PersonalDataStep.step1)\n uiStore.companyDetails.clearCompanyInfo()\n setOfertaVisible(false)\n nextStage = 0\n }\n\n setStage(nextStage)\n }\n\n const cancelOffer = () => {\n setOfertaVisible(false)\n setStage(0)\n }\n\n const isDisabledNextStep = (): boolean => {\n switch (uiStore.personalDataStep) {\n case PersonalDataStep.step1:\n return uiStore.validateStore.isInvalidRequisitesData\n case PersonalDataStep.step2:\n return isPassport\n ? uiStore.validateStore.isInvalidPassportForm\n : uiStore.validateStore.isInvalidIdentificationForm\n case PersonalDataStep.step3:\n return uiStore.companyDetails.isInvalidDocumentPhoto || uiStore.companyDetails.isInvalidWithDocumentPhoto\n case PersonalDataStep.step4:\n return uiStore.validateStore.isInvalidContactInfo\n }\n }\n\n return (\n \n \n \n {t(getKey('Регистрация'))} \n \n\n \n\n \n {uiStore.personalDataStep === PersonalDataStep.step1 && (\n \n )}\n {uiStore.personalDataStep === PersonalDataStep.step2 && (\n \n )}\n {uiStore.personalDataStep === PersonalDataStep.step3 && (\n \n )}\n {uiStore.personalDataStep === PersonalDataStep.step4 && (\n \n )}\n\n {isGeDomain() && (\n \n \n {t(getKey('Нажимая «Далее», я подтверждаю ознакомление с'), {\n buttonTitle:\n uiStore.personalDataStep === PersonalDataStep.step4\n ? t(getKey('К оферте'))\n : t(getSharedKey('next')),\n })}{' '}\n \n {t(getKeyPromo('политикой конфиденциальности'))}\n \n \n \n )}\n\n \n \n \n {uiStore.personalDataStep === PersonalDataStep.step4 ? t(getKey('К оферте')) : t(getSharedKey('next'))}\n \n \n \n \n \n \n \n \n \n setOfertaPageLoading(false)}\n src={offerStore.linksForRegistration[stage]}\n />\n \n \n )\n})\n","import { lazy } from 'react'\n\nexport const ELockPageAsync = lazy(() => import('./ELockPage'))\n","import { lazy } from 'react'\n\nexport const ELockContractorsPageAsync = lazy(() => import('./ELockContractorsPage'))\n","import { lazy } from 'react'\n\nexport const AppsPageAsync = lazy(() => import('./AppsPage'))\n","export default \"__VITE_ASSET__C$dFxgCy__\"","export default \"__VITE_ASSET__CIC3tx4F__\"","export default \"__VITE_ASSET__Dca1X2Y8__\"","import sber from 'assets/img/banking-services/sber.svg'\nimport tBank from 'assets/img/banking-services/t-bank.svg'\nimport tochka from 'assets/img/banking-services/tochka.svg'\n\nexport const bankingServicesItemData = [\n {\n id: 1,\n title: 'Сбер',\n link: 'https://partners.dasreda.ru/landing/products?partnerID=d314e55e7d232744f2e8',\n imgUrl: sber,\n },\n {\n id: 2,\n title: 'T-банк',\n link: 'https://www.tbank.ru/business/account/?dco_ic=39f249f7-991a-4e88-86a1-4bde4398421b&utm_medium=ptr.act&utm_campaign=sme.partners&partnerId=5-3I1BF2E8B&agentId=5-2FJ2L8VKD&agentSsoId=77b77f80-2a41-4e91-91fa-b5e3ae12f6f0&utm_source=partner_rko_sme',\n imgUrl: tBank,\n },\n {\n id: 3,\n title: 'Точка',\n link: 'https://partner.tochka.com/all-register-free?referer1=WBrega',\n imgUrl: tochka,\n },\n]\n","import classNames from 'classnames'\n\nimport s from './Title.module.scss'\n\ntype PropsType = {\n children: string\n fontWeight?: number\n color?: string\n prefix?: string\n maxWidth?: number\n className?: string\n textAlign?: 'left' | 'center' | 'right'\n}\n\nexport const Title = ({\n children,\n color = 'black',\n fontWeight = 400,\n textAlign = 'left',\n prefix,\n maxWidth,\n className,\n}: PropsType) => {\n const classes = classNames(className, s.title, {})\n\n return (\n

    \n {prefix && {prefix}} {children}\n

    \n )\n}\n","import { Href } from 'components/ui/Href/Href'\nimport { Title } from 'components/ui/Title/Title'\n\nimport s from './BankingServicesItem.module.scss'\n\ntype BankingServicesItemProps = {\n id: number\n title: string\n imgUrl: string\n link: string\n}\n\nconst BankingServicesItem = ({ title, imgUrl, id, link }: BankingServicesItemProps) => {\n return (\n
  • \n \n {title}\n {title}\n \n
  • \n )\n}\n\nexport default BankingServicesItem\n","import { lazy } from 'react'\n\nimport { bankingServicesItemData } from 'sections/PromoSection/pages/BankingServicesPage/components/BankingServicesItem/data/BankingServicesItemData'\nimport { Margin, TextPromo } from 'components/ui'\nimport { Container } from 'components/ui/Container/Container'\nimport { Title } from 'components/ui/Title/Title'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport BankingServicesItem from './components/BankingServicesItem/BankingServicesItem'\n\nimport s from './BankingServicesPage.module.scss'\n\nconst BankingServicesPage = () => {\n const { isMobile } = useResize()\n\n const fontSize = isMobile ? 's20' : 's24'\n return (\n
    \n \n
    \n Банковские услуги\n \n Посмотрите условия, которые предлагают наши банки-партнёры\n \n
    \n
      \n {bankingServicesItemData.map((item) => (\n \n ))}\n
    \n \n \n Чтобы зарегистрировать юридическое лицо или ИП, воспользуйтесь услугами партнёров ООО «РВБ» или обратитесь в\n регистрирующий орган с необходимыми документами и квитанцией об оплате государственной пошлины\n \n
    \n
    \n )\n}\n\nexport default BankingServicesPage\n\nexport const BankingServicesPageAsync = lazy(() => import('./BankingServicesPage'))\n","import { lazy } from 'react'\n\nexport const ConferencesPageAsync = lazy(() => import('./ConferencesPage'))\n","import { lazy } from 'react'\n\nexport const DownloadsPageAsync = lazy(() => import('./DownloadsPage'))\n","import { lazy } from 'react'\n\nexport const ListSignBoardsContractorsPageAsync = lazy(() => import('./ListSignBoardsContractorsPage'))\n","import { lazy } from 'react'\n\nexport const ListSignBoardsSortingCentersPageAsync = lazy(() => import('./ListSignBoardsSortingCentersPage'))\n","export const scrollToId = (item: string) => {\n document && document.querySelector(item)?.scrollIntoView()\n}\n","export default \"__VITE_ASSET__DUaU81c1__\"","export default \"__VITE_ASSET__BnRW8bK2__\"","export default \"__VITE_ASSET__M6oH1VvA__\"","export default \"__VITE_ASSET__hT3lsSC9__\"","export default \"__VITE_ASSET__BPEWrUOl__\"","export default \"__VITE_ASSET__6aMXxmk4__\"","export default \"__VITE_ASSET__KDF_hUYr__\"","export default \"__VITE_ASSET__BI4bkmfX__\"","export default \"__VITE_ASSET__D4wgeP03__\"","export default \"__VITE_ASSET__ciXSwwHV__\"","export default \"__VITE_ASSET__B3wSxEdR__\"","export default \"__VITE_ASSET__BtHJy$Mt__\"","export default \"__VITE_ASSET__4sqGLaHp__\"","export default \"__VITE_ASSET__$YOq17HX__\"","export default \"__VITE_ASSET__3c53_PEc__\"","import { isGeDomain } from 'utils/helpers/domains/getDomain'\n\nimport step1 from 'assets/img/promo-page/opening-steps/1.webp'\nimport step1Mobile from 'assets/img/promo-page/opening-steps/1-mobile.webp'\nimport step1Tablet from 'assets/img/promo-page/opening-steps/1-tablet.webp'\nimport step2 from 'assets/img/promo-page/opening-steps/2.webp'\nimport step2Mobile from 'assets/img/promo-page/opening-steps/2-mobile.webp'\nimport step2Tablet from 'assets/img/promo-page/opening-steps/2-tablet.webp'\nimport step3 from 'assets/img/promo-page/opening-steps/3.webp'\nimport step3Mobile from 'assets/img/promo-page/opening-steps/3-mobile.webp'\nimport step3Tablet from 'assets/img/promo-page/opening-steps/3-tablet.webp'\nimport step4 from 'assets/img/promo-page/opening-steps/4.webp'\nimport step4Mobile from 'assets/img/promo-page/opening-steps/4-mobile.webp'\nimport step4Tablet from 'assets/img/promo-page/opening-steps/4-tablet.webp'\nimport step5 from 'assets/img/promo-page/opening-steps/5.webp'\nimport step5Mobile from 'assets/img/promo-page/opening-steps/5-mobile.webp'\nimport step5Tablet from 'assets/img/promo-page/opening-steps/5-tablet.webp'\n\nexport const stepsData = [\n {\n desktopImage: step1,\n mobileImage: step1Mobile,\n tabletImage: step1Tablet,\n title: isGeDomain() ? 'Откройте юридическое лицо' : 'Откройте ИП или ООО',\n caption: isGeDomain() ? null : 'Через банк',\n },\n {\n desktopImage: step2,\n mobileImage: step2Mobile,\n tabletImage: step2Tablet,\n title: 'Найдите помещение',\n caption: 'На тепловой карте',\n },\n {\n desktopImage: step3,\n mobileImage: step3Mobile,\n tabletImage: step3Tablet,\n title: 'Подайте заявку на сайте',\n caption: 'Рассмотрим за 2 дня',\n },\n {\n desktopImage: step4,\n mobileImage: step4Mobile,\n tabletImage: step4Tablet,\n title: 'Сделайте ремонт',\n caption: 'Требования есть в гайде',\n },\n {\n desktopImage: step5,\n mobileImage: step5Mobile,\n tabletImage: step5Tablet,\n title: 'Активируйте пункт выдачи',\n caption: 'Через заявку на сайте',\n },\n]\n","import classNames from 'classnames'\nimport { FC } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { TextPromo } from 'components/ui'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport s from './Step.module.scss'\n\ninterface StepProps {\n desktopImage: string\n mobileImage: string\n tabletImage: string\n title: string\n caption: string\n customClass?: string\n}\n\nexport const Step: FC = ({ desktopImage, mobileImage, tabletImage, title, caption, customClass }) => {\n const { isDesktop, isMobile } = useResize()\n const { t } = useTranslation()\n\n const imageSrc = isDesktop ? desktopImage : isMobile ? mobileImage : tabletImage\n\n const getKey = (key: string) => `${PromoPageKeys.openingSteps}.${key}`\n\n return (\n
    \n \n {t(getKey(title))}\n \n {caption && (\n \n {t(getKey(caption), { br: isDesktop ? '\\n' : '' })}\n \n )}\n
    \n )\n}\n","import { Step } from './components/Step/Step'\n\nimport s from './OpeningSteps.module.scss'\n\ninterface StepData {\n desktopImage: string\n mobileImage: string\n tabletImage: string\n title: string\n caption?: string | null\n}\n\ninterface OpeningStepsProps {\n stepsData: StepData[]\n customStepClasses?: string\n}\n\nexport const OpeningSteps = ({ stepsData, customStepClasses }: OpeningStepsProps) => {\n return (\n
    \n
    \n {stepsData.map((step, index) => (\n \n ))}\n
    \n
    \n )\n}\n","import { useTranslation } from 'react-i18next'\n\nimport { OpeningSteps } from 'sections/PromoSection/components/OpeningSteps/OpeningSteps'\nimport { Title } from 'components/ui/Title/Title'\n\nimport { PromoPageKeys } from '../../../types'\n\nimport s from './OpeningStepsSection.module.scss'\n\ninterface StepData {\n desktopImage: string\n mobileImage: string\n tabletImage: string\n title: string\n caption?: string | null\n}\n\ninterface OpeningStepsProps {\n stepsData: StepData[]\n}\n\nexport const OpeningStepsSection = ({ stepsData }: OpeningStepsProps) => {\n const { t } = useTranslation()\n const getKey = (key: string) => `${PromoPageKeys.openingSteps}.${key}`\n\n return (\n
    \n \n {t(getKey('Свой бизнес с нуля'), { nbsp: '\\u00A0' })}\n \n \n
    \n )\n}\n","export function formatPhoneNumberForText(phoneNumber: string) {\n const formatted = phoneNumber.replace(/^(\\d{3})(\\d{3})(\\d{2})(\\d{2})$/, '$1 $2-$3-$4')\n return formatted\n}\n","import * as React from \"react\";\nconst SvgArrow3 = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19 8L11 16L6 11\", stroke: \"#7635DB\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrow3;\n","import React from 'react'\nimport { GroupBase, OptionProps } from 'react-select'\n\nimport { promoColors } from 'sections/PromoSection/shared/constants'\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { TextPromo } from 'components/ui'\nimport { BaseOption } from 'shared/types/types'\n\nimport ArrowIcon from 'assets/img/shared/arrow3.svg?react'\n\nexport const CustomOption: React.FC<\n OptionProps, false, GroupBase>>\n> = ({ data, innerRef, innerProps, isSelected }) => (\n {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = '#FAF2FF'\n e.currentTarget.style.color = promoColors.newBgPrimary\n }\n }}\n onMouseLeave={(e) => {\n if (!isSelected) {\n e.currentTarget.style.backgroundColor = 'transparent'\n e.currentTarget.style.color = 'inherit'\n }\n }}\n onMouseDown={(e) => {\n e.currentTarget.style.backgroundColor = '#EFDDFF'\n e.currentTarget.style.color = '#651CAD'\n }}\n >\n \n \n {data.value.label} +{data.value.value}\n \n {isSelected && }\n
    \n)\n","import React from 'react'\nimport { GroupBase, SingleValueProps } from 'react-select'\n\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { BaseOption } from 'shared/types/types'\n\nexport const CustomSingleValue: React.FC<\n SingleValueProps, false, GroupBase>>\n> = ({ data }) => (\n
    \n \n +{data.value.value}\n
    \n)\n","import React, { forwardRef } from 'react'\nimport ReactSelect, { OptionProps, Props, SelectInstance, SingleValueProps } from 'react-select'\n\nimport { CustomOption } from '../customOptions/CustomOption'\nimport { CustomSingleValue } from '../customOptions/CustomSingleValue'\n\nexport const CountrySelectWithFlags = forwardRef<\n SelectInstance,\n Props\n>((props, ref) => {\n return (\n >,\n Option: CustomOption as React.ComponentType>,\n IndicatorSeparator: () => null,\n }}\n />\n )\n})\n\nCountrySelectWithFlags.displayName = 'CountrySelectWithFlags'\n","import { CSSObjectWithLabel, StylesConfig } from 'react-select'\n\ntype PositionType = 'absolute' | 'relative' | 'fixed' | 'static' | 'sticky'\n\nexport interface CustomStyles {\n control?: CSSObjectWithLabel\n valueContainer?: CSSObjectWithLabel\n indicatorsContainer?: CSSObjectWithLabel\n input?: CSSObjectWithLabel\n menu?: Partial\n menuList?: CSSObjectWithLabel\n}\n\nexport const countrySelectCustomStyles = (\n customStyles?: CustomStyles,\n menuPlacement?: 'top' | 'bottom',\n): StylesConfig => ({\n control: (base) => ({\n ...base,\n display: 'flex',\n flex: 'none',\n boxShadow: 'none',\n width: 'auto',\n minWidth: 'fit-content',\n cursor: 'pointer',\n flexWrap: 'nowrap',\n ...customStyles?.control,\n }),\n\n valueContainer: (base) => ({\n ...base,\n display: 'flex',\n alignItems: 'center',\n width: 'auto',\n minWidth: 'fit-content',\n flexShrink: '0',\n padding: '0',\n ...customStyles?.valueContainer,\n }),\n\n indicatorsContainer: (base) => ({\n ...base,\n padding: '0',\n ...customStyles?.indicatorsContainer,\n }),\n\n input: (base) => ({\n ...base,\n display: 'none',\n ...customStyles?.input,\n }),\n\n menu: (base) => ({\n ...base,\n borderRadius: '32px',\n padding: 0,\n margin: 0,\n width: '230px',\n height: '280px',\n boxShadow: '0 0 10px rgba(0,0,0,0.05)',\n position: 'absolute',\n left: menuPlacement === 'top' ? '0' : '0',\n bottom: menuPlacement === 'top' ? '0' : '-100%',\n transform: menuPlacement === 'top' ? 'translateY(-360px)' : 'translateY(0)',\n zIndex: 8,\n ...customStyles?.menu,\n backgroundColor: 'transparent',\n overflow: 'hidden',\n }),\n\n menuList: (base) => ({\n ...base,\n padding: 0,\n margin: 0,\n maxHeight: '280px',\n overflowY: 'auto',\n overflowX: 'hidden',\n zIndex: 8,\n backgroundColor: 'white',\n borderRadius: 'inherit',\n boxShadow: '0 0 10px rgba(0,0,0,0.05)',\n ...customStyles?.menuList,\n }),\n})\n","import { observer } from 'mobx-react-lite'\nimport { FC, useEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport InputMask from 'react-input-mask'\nimport { useNavigate } from 'react-router-dom'\nimport { SelectInstance } from 'react-select'\n\nimport { useStore } from 'store/useStore'\nimport { countries } from 'sections/LKSection/modules/UserModule/data'\nimport { LoginStatus } from 'sections/LKSection/modules/UserModule/stores/LoginUiStore'\nimport { promoColors } from 'sections/PromoSection/shared/constants'\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { masks } from 'components/CountryPhoneInput/data'\nimport { ButtonPromo, InputPromo, TextPromo } from 'components/ui'\nimport { Space } from 'components/ui'\nimport { Flex } from 'components/uiKit'\nimport { formatPhoneNumberForText } from 'utils/formatting/formatPhoneNumber/formatPhomeNumberForText/formatPhoneNumberForText'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { ALL_EXCEPT_NUMBERS_REGEXP } from 'shared/constants/regExp'\nimport { AuthRoutesEnum, LKRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { BaseOption } from 'shared/types/types'\nimport { EventType } from 'types/types'\n\nimport { PromoPageKeys } from '../../types'\nimport { CountrySelectWithFlags } from './components/customSelect/CountrySelectWithFlags'\nimport { countrySelectCustomStyles } from './countrySelectCustomStyles'\n\nimport s from './OpenPickPointForm.module.scss'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\n\nconst CODE_LENGTH = 6\n\nexport const OpenPickPointForm: FC = observer(() => {\n const { isSTablet, isTablet, isMobile, isSDesktop } = useResize()\n const { t } = useTranslation()\n\n const { loginUiStore: uiStore, appStore } = useStore()\n const [sixDigitsCode, setSixDigitsCode] = useState(['', '', '', '', '', ''])\n const inputRefs = useRef([])\n const selectRef = useRef | null>(null)\n const [selectedCountry, setSelectedCountry] = useState | null>(null)\n const [menuPlacement, setMenuPlacement] = useState<'top' | 'bottom'>('bottom')\n\n const { timeIsNotOver, timeExpired } = uiStore.timeWaiter\n const countryKey = selectedCountry?.value?.country as keyof typeof masks\n\n const navigate = useNavigate()\n\n const localizedCountries = useMemo(() => {\n countries.sort((a, b) => a.label.localeCompare(b.label))\n return countries.map((country) => ({\n ...country,\n label: t(getSharedKey(country.value.label)),\n }))\n }, [t])\n\n useEffect(() => {\n if (!localizedCountries.length) return\n\n const computedDefaultOption = isGeDomain()\n ? localizedCountries.find((country) => country.value.country === 'GE') || localizedCountries[5]\n : localizedCountries[5]\n\n setSelectedCountry(computedDefaultOption)\n\n uiStore.setSelectedCountry(computedDefaultOption.value)\n }, [localizedCountries, uiStore])\n\n useEffect(() => {\n const handleScroll = () => {\n const windowHeight = window.innerHeight\n const rect = selectRef.current?.controlRef?.getBoundingClientRect()\n\n if (rect) {\n const spaceBelow = windowHeight - rect.bottom\n const spaceAbove = rect.top\n\n if (spaceBelow < 300 && spaceAbove > 300) {\n setMenuPlacement('top')\n } else {\n setMenuPlacement('bottom')\n }\n }\n }\n\n handleScroll()\n window.addEventListener('scroll', handleScroll)\n return () => {\n window.removeEventListener('scroll', handleScroll)\n }\n }, [menuPlacement])\n\n const getKey = (key: string) => `${PromoPageKeys.openPickPointForm}.${key}`\n function getSharedKey(key: string) {\n return `${PromoPageKeys.countries}.${key}`\n }\n\n const handleInputChange = (index: number, value: string) => {\n const digit = value.replace(ALL_EXCEPT_NUMBERS_REGEXP, '')\n const newCode = [...sixDigitsCode]\n newCode[index] = digit\n setSixDigitsCode(newCode)\n\n if (value.length === 1) {\n const nextInput = inputRefs.current[index + 1]\n if (nextInput) {\n nextInput.focus()\n }\n }\n }\n\n const handleKeyDown = (index: number, event: React.KeyboardEvent) => {\n if (event.key === 'Backspace') {\n const newCode = [...sixDigitsCode]\n\n if (!newCode[index] && index > 0) {\n const previousInput = inputRefs.current[index - 1]\n if (previousInput) {\n previousInput.focus()\n }\n }\n }\n }\n\n const handleSetCode = async () => {\n uiStore.setCode(sixDigitsCode.join(''))\n\n if (sixDigitsCode.length !== CODE_LENGTH) {\n return\n }\n\n const result = await uiStore.validateCode()\n\n if (result) {\n uiStore.clearTimer()\n uiStore.setCode('')\n uiStore.setDefaultState()\n bootstrap()\n sendEvent(EventType.MainFormPUPSend)\n }\n }\n\n const handlePressBtn = async () => {\n const result = await uiStore.tryLogin(false)\n if (result === LoginStatus.validateCode) {\n bootstrap()\n } else if (result === LoginStatus.loggedIn) {\n uiStore.setValidateVisible(true)\n }\n sendEvent(EventType.MainFormPUPT, { type: 'Заявка' })\n }\n\n const bootstrap = async () => {\n await appStore.bootstrap()\n const screen = appStore.needRegistration ? AuthRoutesEnum.registration : LKRoutesEnum.orders\n appStore.setLoadingApp(false)\n navigate(screen, { replace: true })\n }\n\n const handleCountryChange = (item: BaseOption) => {\n setSelectedCountry(item)\n uiStore.setPhone('')\n uiStore.setSelectedCountry(item.value)\n\n sendEvent(EventType.MainFormPUPT, {\n type: 'Страна',\n type_detail: item.value.label,\n })\n }\n\n const handleSetDefaultState = () => {\n uiStore.setDefaultState()\n uiStore.setSelectedCountry(selectedCountry?.value)\n }\n\n return (\n
    \n \n {!uiStore.isValidateVisible ? t(getKey('Зарегистрируйтесь чтобы подать заявку')) : t(getKey('Введите код'))}\n \n {uiStore.isValidateVisible && (\n \n <>\n {t(getKey('Отправили код в профиль Wildberries'), { count: Number(uiStore.phonePrefix) })}{' '}\n {formatPhoneNumberForText(uiStore.phone)}\n \n {' '}\n {t(getKey('Изменить номер'))}\n \n \n \n )}\n {!uiStore.isValidateVisible ? (\n <>\n
    \n \n handleCountryChange(item as BaseOption)}\n menuPosition=\"absolute\"\n styles={countrySelectCustomStyles({}, menuPlacement)}\n className={s.customSelect}\n value={selectedCountry}\n options={localizedCountries}\n isDisabled={isGeDomain()}\n isSearchable={false}\n components={{}}\n ref={selectRef}\n />\n uiStore.setPhone(value)}\n type=\"tel\"\n inputMode=\"numeric\"\n mask={masks[countryKey] || '+9 999 999-99-99'}\n maskPlaceholder=\"\"\n className={s.input}\n />\n \n \n {isMobile && (\n \n {t(getKey('Зарегистрироваться'))}\n \n )}\n \n
    \n \n \n {t(getKey('Указывая номер телефона'), { nbsp: '\\u00A0' })}\n {'\\u00A0'}\n sendEvent(EventType.MainFormPUPT, { type: 'Оферта' })}\n className={s.link}\n >\n {t(getKey('офертой'))}\n {' '}\n {t(getKey('и'))}{' '}\n sendEvent(EventType.MainFormPUPT, { type: 'Политика' })}\n className={s.link}\n >\n {t(getKey('политикой конфиденциальности'))}\n \n \n \n ) : (\n <>\n \n \n {sixDigitsCode.map((digit, index) => (\n handleInputChange(index, e.target.value)}\n onKeyDown={(event) => handleKeyDown(index, event)}\n onFocus={() => {\n const parentElement = inputRefs.current[index]?.closest(`.${s.customInput}`)\n if (parentElement) {\n parentElement.setAttribute('data-active', 'true')\n }\n }}\n onBlur={(e) => {\n const parentElement = e.target.closest(`.${s.customInput}`)\n if (parentElement) {\n parentElement.removeAttribute('data-active')\n }\n\n if (e.target.value.length === 1) {\n const nextInput = inputRefs.current[index + 1]\n if (nextInput) {\n nextInput.focus()\n }\n }\n }}\n inputRef={(ref) => {\n inputRefs.current[index] = ref as HTMLInputElement\n }}\n />\n ))}\n \n \n \n \n {t(getKey('Подтвердить'))}\n \n \n \n uiStore.tryLogin(true) : undefined}\n style={{ textAlign: 'center' }}\n fontFamily=\"ASLHauss\"\n size=\"s16\"\n pointer\n weight=\"w700\"\n >\n {timeIsNotOver\n ? t(getKey('Отправить заново через'), { count: Number(timeExpired) })\n : t(getKey('Отправить код подтверждения'))}\n \n \n )}\n
    \n )\n})\n","export default \"__VITE_ASSET__D6ArNDYo__\"","export default \"__VITE_ASSET__CZJWGytW__\"","import { FC } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { TextPromo } from 'components/ui'\nimport { Flex } from 'components/uiKit/Flex/Flex'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\n\nimport { OpenPickPointForm } from '../../shared/OpenPickPointForm/OpenPickPointForm'\n\nimport pickpointImg from 'assets/img/promo-page/pickpoint.webp'\nimport houseImg from 'assets/img/promo-page/simplified-conditions/houseImg.webp'\nimport s from './Authorization.module.scss'\n\nexport const Authorization: FC = () => {\n const { isMobile, isTablet } = useResize()\n const location = useLocation()\n const { appStore } = useStore()\n\n const isUserAuth = appStore?.user.authenticated\n\n const isSimplified = location.pathname === PromoRoutesEnum.simplifiedConditions\n\n return (\n !isUserAuth && (\n
    \n
    \n
    \n \n Хотите открыть пункт выдачи?\n \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n )\n )\n}\n","export const runAdriverTracking = () => {\n !(function (e, n) {\n function o(e, n, o) {\n n = n || '&'\n o = o || '='\n const d = []\n for (const r in e) {\n if (Object.prototype.hasOwnProperty.call(e, r)) {\n d.push(r + o + encodeURIComponent(e[r]))\n }\n }\n return d.join(n)\n }\n function d(e, n) {\n const o = e.cookie.match('(^|;) ?' + n + '=([^;]*)(;|$)')\n return o ? decodeURIComponent(o[2]) : null\n }\n const r = e\n const t = n\n const i = document.domain\n const c = { tail256: document.referrer || 'unknown' }\n let u\n u = (function (e) {\n const n = {}\n if (e) {\n const o = e.split('&')\n for (const d in o) {\n if (Object.prototype.hasOwnProperty.call(o, d)) {\n const r = o[d].split('=')\n if (r[0] !== undefined && r[1] !== undefined) {\n n[r[0]] = decodeURIComponent(r[1])\n }\n }\n }\n }\n return n\n })(window.location.search.substring(1))\n if (u.adrclid !== undefined) {\n r.fsid = u.adrclid\n }\n if (d(document, 'adrcid') !== null) {\n r.cid = d(document, 'adrcid')\n }\n if (t && t.id && d(document, t.id) !== null) {\n r.suid = i + '_' + encodeURIComponent(d(document, t.id))\n }\n if (t && t.gid1) {\n r.gid1 = t.gid1\n } else if (d(document, '_ga') !== null) {\n r.gid1 = encodeURIComponent(d(document, '_ga'))\n }\n if (t && t.yid1) {\n r.yid1 = t.yid1\n } else if (d(document, '_ym_uid') !== null) {\n r.yid1 = encodeURIComponent(d(document, '_ym_uid'))\n }\n r.loc = encodeURIComponent(window.location.href)\n if (r.custom) {\n r.custom = o(r.custom, ';')\n }\n !(function (e, n) {\n !(function (e) {\n e = e.split('![rnd]').join(~~(1e6 * Math.random()))\n if (document.createElement && document.body) {\n const n = document.createElement('img')\n n.style.position = 'absolute'\n n.style.display = 'none'\n n.style.width = '0px'\n n.style.height = '0px'\n n.setAttribute('referrerpolicy', 'no-referrer-when-downgrade')\n n.src = e\n document.body.appendChild(n)\n } else {\n const o = new Image()\n o.setAttribute('referrerpolicy', 'no-referrer-when-downgrade')\n o.src = e\n }\n })('https://ad.adriver.ru/cgi-bin/rle.cgi?' + e + '&rnd=![rnd]' + (n ? '&' + n : ''))\n })(o(r), o(c))\n })({ sid: 229634, bt: 62 }, { id: '', gid1: '', yid1: '' })\n}\n","import { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { useStore } from 'store/useStore'\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { runAdriverTracking } from 'utils/adriver/runAdriverTracking'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { URLS } from 'shared/constants/urls'\n\nimport { ILayoutModel } from './layoutModel'\n\nimport s from './CookiePolicy.module.scss'\n\nexport const COOKIE_POLICY_NAME = '_cp_v3'\nconst CHANNEL_NAME = '_cookiePolicy'\nconst MILLISECONDS_IN_A_DAY = 86400000\n\nexport const CookiePolicy = observer(({ layoutModel }: { layoutModel: ILayoutModel }) => {\n const { appStore } = useStore()\n const [isVisible, setIsVisible] = useState(false)\n\n const { t } = useTranslation()\n\n const getKey = (key: string) => `${PromoPageKeys.cookiePolicy}.${key}`\n let channel: BroadcastChannel | null = null\n const privatePolicyUrl = isGeDomain() ? URLS.wbMarketPrivatePolicyGe : URLS.wbMarketPrivatePolicy\n\n useEffect(() => {\n const checkCookiePolicy = () => {\n const cookieExists = getCookie(COOKIE_POLICY_NAME) === '1'\n if (cookieExists) {\n loadAnalyticsScript()\n runAdriverTracking()\n hideBanner()\n } else {\n showBanner()\n }\n }\n checkCookiePolicy()\n }, [])\n\n const showBanner = () => {\n setIsVisible(true)\n layoutModel.analytic.sendEvent('Alert_S', { name: 'cookies_alert' })\n\n if (window.BroadcastChannel) {\n channel = new BroadcastChannel(CHANNEL_NAME)\n channel.addEventListener('message', hideBanner)\n }\n }\n\n const hideBanner = () => {\n setIsVisible(false)\n if (channel) {\n channel.close()\n channel = null\n }\n layoutModel.eventBus.dispatchEvent(new CustomEvent('CookiePolicyHide'))\n }\n\n const loadAnalyticsScript = (): void => {\n ;(function (w: Window & { [key: string]: any }, d: Document, s: string, c: string, t: string) {\n w[t] =\n w[t] ||\n function (...args: any[]) {\n ;(w[t].q = w[t].q || []).push(args)\n }\n w[t].l = Date.now()\n const a: HTMLScriptElement = d.createElement(s) as HTMLScriptElement\n const m: HTMLElement | null = d.getElementsByTagName(s)[0] as HTMLElement\n a.async = true\n a.src = c\n if (m?.parentNode) {\n m.parentNode.insertBefore(a, m)\n }\n })(window, document, 'script', 'https://a.wb.ru/sdk/sdk.js', 'wba')\n\n if (window.wba) {\n window.wba('init', { counterId: 58, clientId: appStore.user?.info.user_id || '' })\n }\n }\n\n const handleOkClick = () => {\n if (getCookie(COOKIE_POLICY_NAME) !== '1') {\n setCookie(COOKIE_POLICY_NAME, '1', 90)\n layoutModel.analytic.sendEvent('Alert_T', { name: 'cookies_alert', type: 'ok' })\n }\n if (channel) {\n channel.postMessage('hide')\n }\n loadAnalyticsScript()\n runAdriverTracking()\n hideBanner()\n }\n\n const getCookie = (name: string): string | null => {\n const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'))\n if (match) return match[2]\n return null\n }\n\n const setCookie = (name: string, value: string, days: number): void => {\n const expires = new Date(Date.now() + days * MILLISECONDS_IN_A_DAY).toUTCString()\n document.cookie = name + '=' + value + '; expires=' + expires + '; path=/'\n }\n\n return (\n isVisible && (\n
    \n
    \n \n {t(getKey('Мы используем'))}{' '}\n \n {t(getKey('cookies'))}\n \n , {t(getKey('чтобы собирать статистику'))}\n \n \n {t(getKey('Хорошо'))}\n \n
    \n
    \n )\n )\n})\n","import { COOKIE_POLICY_NAME } from 'components/CookiePolicy/CookiePolicy'\n\nexport function sendAdriverEvent(sz, customParams = {}) {\n const cookieExists = getCookie(COOKIE_POLICY_NAME) === '1'\n if (!cookieExists) return\n\n const eventParams = {\n sid: 229634,\n bt: 62,\n sz: sz,\n loc: encodeURIComponent(window.location.href),\n tail256: document.referrer || 'unknown',\n }\n\n Object.assign(eventParams, customParams)\n\n function serializeParams(params, separator = '&', assigner = '=') {\n const result = []\n for (const key in params) {\n // eslint-disable-next-line no-prototype-builtins\n if (params.hasOwnProperty(key)) {\n result.push(`${key}${assigner}${encodeURIComponent(params[key])}`)\n }\n }\n return result.join(separator)\n }\n\n function getCookie(name) {\n const match = document.cookie.match(`(^|;) ?${name}=([^;]*)(;|$)`)\n return match ? decodeURIComponent(match[2]) : null\n }\n\n const cookies = {\n adrcid: getCookie('adrcid'),\n _ga: getCookie('_ga'),\n _ym_uid: getCookie('_ym_uid'),\n }\n\n if (cookies.adrcid) eventParams.cid = cookies.adrcid\n if (cookies._ga) eventParams.gid1 = encodeURIComponent(cookies._ga)\n if (cookies._ym_uid) eventParams.yid1 = encodeURIComponent(cookies._ym_uid)\n\n const random = Math.floor(1e6 * Math.random())\n\n const url = `https://ad.adriver.ru/cgi-bin/rle.cgi?${serializeParams(eventParams)}&rnd=${random}`\n\n const img = new Image()\n img.style.position = 'absolute'\n img.style.display = 'none'\n img.style.width = img.style.height = '0px'\n img.setAttribute('referrerpolicy', 'no-referrer-when-downgrade')\n img.src = url\n\n document.body.appendChild(img)\n}\n","import * as React from \"react\";\nconst SvgArrow2 = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 14 8\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13 1L7 7L1 1\", stroke: \"currentColor\", strokeWidth: 2, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgArrow2;\n","import { FC, HTMLAttributes, useState } from 'react'\n\nimport { TextPromo } from 'components/ui'\nimport { Space } from 'components/ui/Space/Space'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { QAItem } from '../types'\n\nimport ArrowIcon from 'assets/img/shared/arrow2.svg?react'\nimport s from './FaqItem.module.scss'\n\ninterface IFaqItem extends HTMLAttributes {\n question: QAItem\n}\n\nexport const FaqItem: FC = ({ question, ...other }) => {\n const [isOpen, setIsOpen] = useState(false)\n const [isHovered, setIsHovered] = useState(false)\n\n const { isMobile } = useResize()\n\n const handleToggle = () => {\n setIsOpen(!isOpen)\n }\n\n return (\n
    \n setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={handleToggle}\n className={s.question}\n >\n \n {question.q}\n \n \n {isOpen ? (\n \n ) : (\n \n )}\n \n
    \n {isOpen && (\n <>\n \n \n \n )}\n \n )\n}\n","export const questionAnswers = [\n {\n q: 'Как открыть пункт выдачи?',\n a: '

    Вот основные шаги, которые нужно выполнить:

    1. Зарегистрируйте ИП или ООО.
    2. Зарегистрируйтесь на сайте WB ПВЗ
    3. Изучите карту и найдите помещение.
    4. \\n
    5. Подайте заявку на открытие ПВЗ и оплатите её.
    6. \\n
    7. Когда заявку одобрят, сделайте ремонт и установите оборудование.
    8. \\n
    9. Наймите менеджера, который будет выдавать заказы.
    10. \\n
    11. Подайте заявку на активацию.
    12. \\n
    ',\n },\n {\n q: 'Какие требования к площади?',\n a: '

    Если открываете ПВЗ в России

    В городе-миллионнике:

    • в фиолетовой зоне — от 30 м²
    • в белой зоне — от 50 м²

    В небольшом городе:

    • на стандартных условиях — от 30 м²
    • на упрощённых условиях — от 10 м²

    Если открываете ПВЗ в странах СНГ

    • в Астане и Алматы — от 40 м²
    • в других городах Казахстана — от 50 м²
    • в других странах СНГ — от 50 м²
    ',\n },\n {\n q: 'Мне нужно делать ремонт?',\n a: '

    Да, косметический. Рассказываем о требованиях в брендбуке. Там же вы найдёте полезные советы и рекомендации

    Дождитесь, пока вашу заявку на открытие одобрят. После этого можно приступать к ремонту

    ',\n },\n {\n q: 'Где найти информацию о тарифах?',\n a: '

    На карте. Нажмите на место, где хотите открыть пункт выдачи — появится всплывающее окно с информацией об условиях и примерном доходе. Чтобы узнать больше, нажмите кнопку «Подробнее в калькуляторе» или стрелочку в левом верхнем углу.

    \\n

    Если хотите рассчитать примерную прибыль, укажите товарооборот, стоимость аренды и другие расходы, а также площадь помещения.

    \\n',\n },\n {\n q: 'Что означают цвета на тепловой карте?',\n a: '
      \\n
    • Описание зон можно прочитать в легенде карты. Открыть её вы можете в правом верхнем углу, нажав на иконку с настройками.
    • \\n
    • Светло-фиолетовый цвет – зоны повышенного тарифа, в большинстве случаев отражают достаточное количество населения для обеспечения загрузки нового ПВЗ.
    • \\n
    • Сиреневый цвет – зона с повышенным тарифом и доп. выплатами в виде субсидии, характеризуют зоны высокой фактической или прогнозируемой нагрузки на ПВЗ.
    • \\n
    • Тёмно-фиолетовый цвет – зоны гарантированного дохода с повышенным тарифом, характеризуют зоны высокой фактической или прогнозируемой нагрузки на ПВЗ.
    • \\n
    • Ярко фиолетовый цвет – зоны с повышенным тарифом с конструктором выплаты.В таких зонах вы можете самостоятельно выбрать выплату – гарантированный доход или разовая субсидия.
    • \\n
    • Серый цвет — охранные зоны вокруг других пунктов выдачи. В этих местах открыть новый ПВЗ нельзя.
    • \\n
    • Зоны, не выделенные цветом — места, где можно открыть пункт выдачи по стандартным условиям без повышенного тарифа.
    • \\n
    \\n

    На 18.10.2024 зоны разделены на 2 сущности – загрузка (загрузка и прогноз загрузки) и кол-во населения в выделенной зоне.

    \\n ',\n },\n {\n q: 'Когда вокруг моего пункта появится серая зона?',\n a: '

    В течение 15 минут после того, как вы оплатите заявку на открытие.

    ',\n },\n {\n q: 'От чего зависит размер серой зоны?',\n a: '

    От пешей доступности ПВЗ, количества заказов и площади: чем больше пункт выдачи, тем больше серая зона вокруг него.

    Но если ваш пункт выдачи перегружен, мы изменим цвет зоны на фиолетовый, чтобы рядом могли открыться другие пункты

    ',\n },\n {\n q: 'Когда подавать заявку на активацию и как быстро её рассмотрят?',\n a: '

    После того как заявку на открытие одобрят, у вас будет 30 дней на ремонт и оформление пункта. Подготовьтесь заранее и подавайте заявку на активацию не позднее, чем через 25 дней, чтобы осталось время на доработки.

    \\n

    Заявки рассматриваем в порядке очереди — обычно в течение 2 дней. Если открываете ПВЗ далеко от центра России, может понадобиться больше времени.

    Если не успеваете доделать ремонт, напишите в поддержку. Для этого нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

    \\n ',\n },\n {\n q: 'Я собираюсь оформить ИП для пункта выдачи. Какой ОКВЭД выбрать?',\n a: '

    Вам нужен код 47.19: «Торговля розничная прочая в неспециализированных магазинах».

    Дополнительные виды ОКВЭД можете выбрать из этого списка: 

    \\n
      \\n
    • 53.20: «Деятельность почтовой связи прочая и курьерская деятельность»
    • \\n
    • 52.29: «Деятельность вспомогательная прочая, связанная с перевозками»
    • \\n
    • 53.10: «Деятельность почтовой связи общего пользования»
    • \\n
    • 52.10.9: «Хранение и складирование прочих грузов»
    • \\n
    • 96.09: «Предоставление прочих персональных услуг, не включенных в другие группировки»
    • \\n
    \\n',\n },\n {\n q: 'Не могу зарегистрироваться из-за ошибки «ИНН\\u00A0не\\u00A0найден»',\n a: '

    Обычно эта ошибка отображается, если вы недавно оформили ИНН. В этом случае нужно немного подождать, чтобы информация обновилась в системе.

    Если вы оформили ИНН давно, проверьте, нет ли ошибки в номере.

    \\n',\n },\n {\n q: 'Не могу зарегистрироваться из-за ошибки «Собственник с таким ИНН уже зарегистрирован»',\n a: '

    Значит вы уже регистрировались под этим ИНН. Попробуйте войти в свой профиль по\\u00A0номеру телефона.

    ',\n },\n {\n q: 'Можно открыть пункт выдачи в подвале или на 2 этаже?',\n a: '

    Да, но только если открываете пункт выдачи в ТЦ на территории России.

    В остальных случаях выбирайте помещения на 1-м этаже с отдельным входом. Это удобнее для маломобильных посетителей, родителей с маленькими детьми и курьеров, которые привозят товары в пункт выдачи.

    Если в вашем районе нет подходящих вариантов, сможем рассмотреть помещение на цокольном этаже, но только с лестницей не больше 7 ступеней.

    ',\n },\n {\n q: 'ПВЗ может быть в торговом центре?',\n a: '

    Да, но только в России и Республике Беларусь.

    Открыть ПВЗ можно на 1-м, 2-м или цокольном этажах. Для помещений на 2-м этаже нужен лифт, чтобы перевозчик мог доставлять грузы.

    Отдельный вход не обязателен, но помещение не должно быть проходным. Важно, чтобы путь к другим организациям не проходил через пункт выдачи.

    Если у вас общий тамбур с другим арендатором, установите электронный замок на главный вход, чтобы перевозчики могли доставлять грузы ночью. Если вход отдельный, электронный замок не нужен — передайте обычный ключ курьеру.

    Заранее обговорите с администрацией ТЦ график доставки товаров. Если правила запрещают доставлять товары ночью, будем делать это только днём.

    Режимник повесьте на стене или двери вашего помещения, а световую вывеску — на здании ТЦ.

    В заявке на открытие выберите стандартный график работы с 10:00 до 22:00. В поле «Как найти ПВЗ» укажите реальный график работы, добавьте фото с графиком работы ТЦ и напишите, что планируете открыть пункт в торговом центре.

    ',\n },\n {\n q: 'А в супермаркете или гипермаркете?',\n a: '

    Да, но только в фиолетовой зоне на территории России. Отдельный вход не обязателен, но помещение не должно быть проходным. Важно, чтобы путь к другим магазинам не проходил через пункт выдачи.

    ',\n },\n {\n q: 'Что такое обеспечительный платёж?',\n a: '

    Это гарантийный взнос 10 000 ₽ или 50 000 ₽, которым вы подтверждаете, что будете открывать пункт выдачи. Сумма зависит от условий открытия и останется на счёте ПВЗ после того, как его активируют.

    Если помещение не одобрят, деньги вернутся на вашу карту в течение 30 дней. Но если решите не открываться по уже одобренной заявке, гарантийный взнос не вернётся

    ',\n },\n {\n q: 'Что дают в подарок новым пунктам?',\n a: '

    Дарим контроллер для электронного замка, вывеску и кронштейн. Установите их до того, как подавать заявку на активацию пункта выдачи. 

    \\n

    Для вывесок используйте только эти артикулы — другие не подойдут:

    \\n
      \\n
    • кронштейн: 209248151  
    • \\n
    • вывеска WB фиолетовая: 221540807  
    • \\n
    • вывеска WB белая: 221540808
    • \\n
    \\n

    Если открываете пункт выдачи в Ереване, закажите вывеску у местных производителей, и мы компенсируем 180 000 ֏. 

    \\n

    Не забудьте установить электронный замок — это обязательное условие для всех регионов, за исключением северных. Вам нужно купить замок самостоятельно, а контроллер получите в подарок. 

    \\n

    Посмотрите инструкцию, как заказать оборудование в подарок

    \\n ',\n },\n {\n q: 'Мне нужно передать ключи курьеру, если в пункте выдачи есть электронный замок?',\n a: '

    Нет. Курьер, как и менеджер пункта выдачи, будет открывать дверь через приложение.

    \\n\\n',\n },\n {\n q: 'Что сделать, чтобы пункт активировали?',\n a: '

    После ремонта снимите видеообзор.

    \\n

    Что должно быть на записи:

    \\n
      \\n
    1. Адресная табличка на вашем доме. Если её нет, покажите в кадре табличку на ближайшем.
    2. \\n
    3. Обзор окрестностей пункта выдачи.
    4. \\n
    5. Фасад с вывеской и табличкой с режимом работы.
    6. \\n
    7. Электронный замок в торце двери, провод к контроллеру и сам контроллер — покажите его вблизи, чтобы было видно, что устройство работает.
    8. \\n
    9. Обзор клиентской зоны: бренд-стена, стол менеджера, примерочные и общий вид помещения. Важно зафиксировать на видео все брендированные элементы.
    10. \\n
    11. Обзор складской зоны.
    12. \\n
    \\n

    Требования к видео: 

    \\n
      \\n
    • не больше 200 Мб
    • \\n
    • не длиннее 30 секунд — можно немного ускорить, чтобы уложиться 
    • \\n
    • без монтажа и нарезки
    • \\n
    \\n ',\n },\n {\n q: 'Я могу выдавать товары других маркетплейсов в пункте выдачи Wildberries?',\n a: '

    Да, можете. Главное, чтобы пункт соответствовал всем требованиям брендбука.

    \\n

    Как нельзя делать:

    \\n
      \\n
    • размещать логотипы других маркетплейсов в ПВЗ Wildberries
    • \\n
    • выдавать заказы с Wildberries в ПВЗ других маркетплейсов
    • \\n
    \\n ',\n },\n {\n q: 'В пункте выдачи можно установить вендинговый аппарат или постамат?',\n a: '

    Да, если в помещении достаточно места.

    \\n ',\n },\n {\n q: 'Почему мою заявку удалили?',\n a: '

    Возможно, у вашей заявки истёк срок действия. Оплаченная заявка активна в течение 30 дней с момента оформления, а неоплаченная — 24 часа. Если срок действия истёк, вы можете подать новую заявку, но обеспечительный платёж в таком случае не вернётся.

    \\n

    Ещё специалисты могут запросить у вас дополнительную информацию и отправить заявку на доработку — у вас будет 5 дней с момента подачи заявки, чтобы ответить.

    \\n

    Если не успеваете или у вас есть вопросы, напишите в поддержку. Для этого нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

    \\n ',\n },\n {\n q: 'Что такое субсидия?',\n a: '

    Это разовая выплата. Её получит владелец, когда пункт достигнет оборота в 3 млн ₽. Если ПВЗ в другой стране, пересчитаем сумму по актуальному курсу ЦБ в местной валюте.

    \\n

    Размер субсидии зависит от региона — посмотреть сумму можно в калькуляторе.

    \\n ',\n },\n {\n q: 'Что такое гарантированный доход?',\n a: '

    Это финансовая поддержка от Wildberries для новых пунктов выдачи.

    Если в течение первых 3 месяцев партнёр будет получать доход меньше суммы, которая указана на тепловой карте, мы доплатим разницу.

    Например, гарантированный доход пункта — 200 000 ₽. Если в 1-й месяц пункт заработает 150 000 ₽, партнёру доплатят 50 000 ₽.

    Точную сумму гарантированного дохода показываем на тепловой карте. Нажмите на зону, где хотите открыть ПВЗ. Сумма отобразится в окне слева, во вкладке «Поддержка открытия». Подробнее об условиях рассказали в пункте 3.6.2. оферты.

    Сейчас гарантированный доход действует в Москве и Московской области, Санкт-Петербурге и Ленинградской области, Калининградской области, Уфе, Казани, Перми, Екатеринбурге, Ростове-на-Дону, Новосибирске, Тюмени, Самаре, Тольятти, Воронеже, Челябинске, Волгограде, Саратове, Ульяновске, Ижевске, Томске и Ярославле

    ',\n },\n {\n q: 'Я могу открыть ПВЗ Wildberries не в России?',\n a: '

    Да, можете. В Грузии, Армении, Беларуси, Казахстане, Кыргызстане и Узбекистане

    \\n',\n },\n {\n q: 'Как связаться с поддержкой?',\n a: '

    Нажмите круглую кнопку в правом нижнем углу, а затем — «Задать вопрос менеджеру» вверху чата. Заполните форму, и специалист Wildberries свяжется с вами.

    \\n ',\n },\n {\n q: 'Где купить форму для сотрудников ПВЗ?',\n a: '

    Закажите брендированную одежду на Wildberries. Подойдут эти артикулы:

    \\n
      \\n
    • худи: 76011281
    • \\n
    • свитшот: 76015068
    • \\n
    • футболка: 76012699
    • \\n
    • жилет: 76017942
    • \\n
    \\n

    Можете купить бланковые вещи фирменного фиолетового цвета и самостоятельно нанести на них логотип Wildberries.

    \\n ',\n },\n {\n q: 'Где купить пакеты?',\n a: '

    На Wildberries. Используйте эти артикулы — другие не подойдут: 

    \\n
      \\n
    • маленький пакет: 109108940
    • \\n
    • средний пакет: 209785740, 16020241
    • \\n
    • большой пакет: 107004643
    • \\n
    \\n

    Пакеты бесплатные для клиентов. Мы будем возмещать деньги, которые вы потратите на покупку пакетов для пункта выдачи.

    \\n',\n },\n]\n\nexport const simplifiedQuestionAnswers = [\n {\n q: 'По какому графику должен работать ПВЗ?',\n a: 'График может быть любым, но важно, чтобы пункт выдачи работал не меньше 9 часов в день и 5 дней в неделю.',\n },\n {\n q: 'Хочу открыть ПВЗ на базе бизнеса, но своего у меня нет. Можно открыться в помещении другого предпринимателя?',\n a: 'Да. Бизнес может принадлежать вам или другому человеку. Для упрощённых условий подойдут продуктовые магазины, салоны красоты, ателье и другие популярные места. А вот в гаражах, рядом с шиномонтажом и в алкомаркетах открываться не стоит. Открыть ПВЗ Wildberries в одном помещении с другим маркетплейсом тоже не получится.',\n },\n {\n q: 'У меня уже есть ПВЗ другого маркетплейса. Я могу открыть рядом Wildberries?',\n a: 'Да, но только в отдельном помещении. Тамбур или коридор могут быть общими.',\n },\n {\n q: 'А жилой дом подойдёт для пункта выдачи?',\n a: 'К сожалению, нет. Сейчас открыть ПВЗ на упрощённых условиях можно только в нежилом помещении. Например, продуктовый магазин или салон красоты.',\n },\n {\n q: 'Нужно ли делать ремонт?',\n a: 'Только если захотите сами. Для упрощённых условий нет требований к ремонту. Из мебели понадобится только примерочная и стол. А из техники — камеры видеонаблюдения, сканер и любое устройство: компьютер, планшет или смартфон.',\n },\n {\n q: 'Я могу не покупать отдельный стол и выдавать заказы прямо на кассе своего магазина?',\n a: 'Да, можете. Главное, чтобы касса была в зоне видимости камер. Если стол отдельный, сотруднику не обязательно всё время стоять за ним. Он может заниматься другими делами и подходить к столу, когда кто-то придёт за заказом.',\n },\n {\n q: 'Обязательно устанавливать электронный замок?',\n a: 'Нет, можно использовать обычный замок. В этом случае нужно будет передать дубликат ключа перевозчику, чтобы он мог доставлять заказы даже ночью.',\n },\n {\n q: 'Почему заказы доставляют ночью?',\n a: 'Ночью перевозчики могут доставлять грузы быстрее — так получается охватить больше пунктов выдачи. Ночную доставку не нужно принимать лично — перевозчик оставит коробки, и вы сможете спокойно разобрать их утром.',\n },\n {\n q: 'Какой нужен интернет для камер?',\n a: 'Подойдёт только проводной, потому что он стабильнее. Это важно для безопасности. Если будут проблемы с Wi-Fi, запись видеонаблюдения может прерваться.',\n },\n {\n q: 'Можно подключить камеру к жёсткому диску или регистратору?',\n a: 'Такие способы не подойдут. Пожалуйста, используйте только облачное хранение, чтобы у наших специалистов всегда был доступ к трансляции. Подробнее рассказываем в разделе «Видеонаблюдение».',\n },\n {\n q: 'Вы даёте гарантированный доход или субсидию?',\n a: 'Только если открываете ПВЗ на стандартных условиях. Для упрощённых условий требований меньше. Например, не нужно делать ремонт и устанавливать электронный замок.',\n },\n {\n q: 'Я смогу потом перейти на стандартный тариф?',\n a: '

    Да, если ваш адрес попадает в фиолетовую зону на карте WB ПВЗ.

    Чтобы сменить тариф, сначала подайте заявку на закрытие ПВЗ, а потом — на открытие пункта выдачи уже на стандартном тарифе.

    ',\n },\n]\n","import { FC, useState } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Space } from 'components/ui/Space/Space'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\n\nimport { FaqItem } from './components/FaqItem'\nimport { questionAnswers, simplifiedQuestionAnswers } from './data'\nimport { QAItem } from './types'\n\nimport s from './Faq.module.scss'\nimport { AdriverEventType } from 'types/types'\n\nconst Faq: FC = () => {\n const [showAll, setShowAll] = useState(false)\n const [selectedQuestion, setSelectedQuestion] = useState()\n const location = useLocation()\n\n const { isMobile, isDesktop, isTablet } = useResize()\n\n const isSimplified = location.pathname === PromoRoutesEnum.simplifiedConditions\n const questionsData = isSimplified ? simplifiedQuestionAnswers : questionAnswers\n const questionsPart = (questionsData as QAItem[])?.slice(0, 5)\n const questionsAll = questionsData as QAItem[]\n\n const questions = showAll ? questionsAll : questionsPart\n\n const handleSelect = (question: string) => {\n if (question === selectedQuestion) {\n setSelectedQuestion(undefined)\n } else {\n setSelectedQuestion(question)\n }\n }\n\n const toggleShowAll = () => {\n setShowAll((prev) => !prev)\n sendAdriverEvent(AdriverEventType.allQuestions)\n }\n\n return (\n
    \n
    \n \n
    \n \n Вопросы и ответы\n \n
    \n\n \n\n
    \n {questions.map((q, index) => (\n handleSelect(q.q)} question={q} />\n ))}\n\n \n\n \n \n {showAll ? 'Скрыть список' : 'Все вопросы и ответы'}\n \n \n
    \n
    \n
    \n )\n}\n\nexport default Faq\n","export default \"__VITE_ASSET__KkXzsDwW__\"","export default \"__VITE_ASSET__DrffWaS$__\"","export default \"__VITE_ASSET__Cb3vSbjb__\"","export default \"__VITE_ASSET__BucjQzkL__\"","export default \"__VITE_ASSET__CuHh0qab__\"","export default \"__VITE_ASSET__BP7H98Fe__\"","import { PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\n\nimport { BannerItem } from './types'\n\nimport simplifiedConditionsM from 'assets/img/promo-page/banners//simplifiedConditionsM.png'\nimport courierL from 'assets/img/promo-page/banners/courier-l.png'\nimport courierM from 'assets/img/promo-page/banners/courier-m.png'\nimport courierS from 'assets/img/promo-page/banners/courier-s.png'\nimport simplifiedConditionsL from 'assets/img/promo-page/banners/simplifiedConditionsL.png'\nimport simplifiedConditionsS from 'assets/img/promo-page/banners/simplifiedConditionsS.png'\n\nexport const banners: BannerItem[] = [\n {\n id: 1,\n linkType: 'path',\n link: PromoRoutesEnum.simplifiedConditions,\n imgDesktop: simplifiedConditionsL,\n imgTablet: simplifiedConditionsM,\n imgMobile: simplifiedConditionsS,\n },\n {\n id: 2,\n link: URLS.wbCourier,\n linkType: 'link',\n imgDesktop: courierL,\n imgTablet: courierM,\n imgMobile: courierS,\n },\n]\n","import { useEffect, useState } from 'react'\nimport { Autoplay } from 'swiper/modules'\nimport { Swiper, SwiperSlide } from 'swiper/react'\n\nimport { Href } from 'components/ui/Href/Href'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { AdriverEventType } from 'types/types'\n\nimport 'swiper/css'\nimport 'swiper/css/pagination'\nimport 'swiper/css/autoplay'\nimport { banners } from './data'\n\nimport ArrowIcon from 'assets/img/shared/arrow2.svg?react'\nimport s from './Banner.module.scss'\n\nexport const Banner = () => {\n const { isTablet, isMobile } = useResize()\n\n const [currentIndex, setCurrentIndex] = useState(0)\n\n useEffect(() => {\n if (!isTablet && !isMobile) {\n const interval = setInterval(() => {\n setCurrentIndex((prevIndex) => (prevIndex + 1) % banners.length)\n }, 10000)\n\n return () => clearInterval(interval)\n }\n }, [isTablet, isMobile])\n\n const handleSlideChange = (swiper: any) => {\n setCurrentIndex(swiper.realIndex)\n }\n\n const handleClick = () => {\n sendAdriverEvent(AdriverEventType.findOutMore)\n }\n\n const currentBanner = banners[currentIndex]\n const bannerImg = isMobile ? currentBanner.imgMobile : isTablet ? currentBanner.imgTablet : currentBanner.imgDesktop\n\n return (\n
    \n {isTablet || isMobile ? (\n <>\n \n {banners.map((banner) => (\n \n
    \n \n \n \n
    \n
    \n ))}\n \n
    \n
    \n {banners.map((_, index) => (\n \n ))}\n
    \n
    \n \n ) : (\n
    \n \n \n \n setCurrentIndex((prev) => (prev - 1 + banners.length) % banners.length)}\n className={`${s.sliderButton} ${s.sliderButtonPrev}`}\n >\n \n \n setCurrentIndex((prev) => (prev + 1) % banners.length)}\n className={`${s.sliderButton} ${s.sliderButtonNext}`}\n >\n \n \n
    \n )}\n
    \n )\n}\n","import i18next from 'i18next'\n\nimport { getBrandbookPath } from 'utils/helpers/getBrandbookPath'\nimport { docs } from 'shared/constants/docs'\nimport { LKRoutesEnum, PromoGeRoutesEnum, PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\n\nimport { MenuItemType, PromoPageKeys } from './types'\n\nconst getSharedKey = (key: string) => `${PromoPageKeys.shared}.${key}`\n\nexport const menuItems: MenuItemType[] = [\n { id: 1, type: 'link', label: 'Карта', path: URLS.pick_point_map },\n { id: 2, type: 'anchor', label: 'Как открыть ПВЗ', path: `#${SCROLL_TO_ID.openingSection}` },\n { id: 3, type: 'anchor', label: 'Виды ПВЗ', path: `#${SCROLL_TO_ID.pickPointKinds}` },\n { id: 4, type: 'link', label: 'Оферта', path: URLS.offer },\n { id: 5, type: 'link', label: 'Ремонт и оформление', path: docs.brandbook },\n]\n\nexport const home: MenuItemType = { id: 6, type: 'anchor', label: 'wb point', path: '#home' }\n\nexport const partnerLinks: MenuItemType[] = [\n { id: 11, type: 'path', label: 'Печатные материалы', path: PromoRoutesEnum.banners },\n { id: 9, type: 'link', label: 'Экобокс', path: docs.ecobox },\n { id: 19, type: 'path', label: 'Приложения', path: PromoRoutesEnum.apps },\n { id: 20, type: 'link', label: 'Арендодателю', path: URLS.wb_rent },\n]\n\nexport const companyLinks: MenuItemType[] = [\n { id: 12, type: 'link', label: 'Брендбук для стандартных условий', path: docs.brandbook },\n { id: 23, type: 'link', label: 'Брендбук для упрощенных условий', path: docs.brandbookSimplified },\n { id: 8, type: 'path', label: 'Видеонаблюдение', path: PromoRoutesEnum.videoConnection },\n { id: 18, type: 'path', label: 'Электронные замки', path: PromoRoutesEnum.eLock },\n { id: 10, type: 'path', label: 'Вывеска', path: PromoRoutesEnum.signboard },\n]\n\nexport const simplifiedConditionsLink: MenuItemType = {\n id: 25,\n type: 'path',\n label: 'Упрощённые условия',\n path: PromoRoutesEnum.simplifiedConditions,\n}\n\nexport const otherLinks: MenuItemType[] = [\n { id: 13, type: 'path', label: 'Календарь конференций', path: PromoRoutesEnum.conferences },\n]\n\nexport const policyLinks: MenuItemType[] = [\n { id: 14, type: 'link', label: 'Оферта', path: URLS.offer },\n { id: 15, type: 'link', label: 'Политика конфиденциальности', path: PromoRoutesEnum.privacyPolicy },\n]\n\nexport const openPickPointLink: MenuItemType = {\n id: 16,\n type: 'anchor',\n label: 'Открыть ПВЗ',\n path: `#${SCROLL_TO_ID.authForm}`,\n}\n\nexport const loginLink: MenuItemType = {\n id: 17,\n type: 'path',\n label: 'Личный кабинет',\n path: LKRoutesEnum.orders,\n}\n\nexport const getHeaderGeItems = (): MenuItemType[] => {\n return [\n { id: 18, type: 'link', label: 'Карта', path: URLS.pick_point_map_ge },\n {\n id: 20,\n type: 'link',\n label: 'Брендбук',\n path: getBrandbookPath(),\n },\n { id: 21, type: 'link', label: 'Оферта', path: URLS.ofertaGe },\n ]\n}\n\nexport const headerItems: MenuItemType[] = [\n { id: 18, type: 'link', label: 'Карта', path: URLS.pick_point_map },\n { id: 21, type: 'link', label: 'Оферта', path: URLS.offer },\n { id: 24, type: 'path', label: 'Упрощённые условия', path: PromoRoutesEnum.simplifiedConditions },\n]\n\nexport const loginGePageLink: MenuItemType = {\n id: 22,\n type: 'path',\n label: i18next.t(getSharedKey('Открыть ПВЗ')),\n path: PromoGeRoutesEnum.login,\n}\n\nexport const auctionData = [\n {\n title: 'Или купите готовый ПВЗ',\n description: 'Если не хотите искать помещение и заниматься ремонтом',\n linkText: 'Посмотреть варианты',\n linkHref: URLS.auction,\n },\n]\n","import { FC } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { OpenPickPointForm } from 'sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/OpenPickPointForm'\nimport { TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Space } from 'components/ui/Space/Space'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { URLS } from 'shared/constants/urls'\nimport { EventType } from 'types/types'\n\nimport { PromoPageKeys } from '../../../types'\n\nimport cls from './MapGe.module.scss'\n\nexport const MapGe: FC = () => {\n const { isTablet, isMobile } = useResize()\n const { t } = useTranslation()\n\n const mapLink = isGeDomain() ? URLS.pick_point_map_ge : URLS.pick_point_map\n\n const getKey = (key: string) => `${PromoPageKeys.map}.${key}`\n\n return (\n
    \n \n
    \n
    \n \n
    \n
    \n \n {t(getKey('Выберите лучшее место на карте'))}\n \n \n \n {t(getKey('Мы отметили фиолетовым цветом самые прибыльные зоны'))}\n \n \n sendEvent(EventType.MainCartPUPT)}\n >\n
    \n
    \n
    \n )\n}\n","import { MarkerItem } from './types'\n\nexport const markerItems: MarkerItem[] = [\n {\n id: '0',\n color: '#C871FE',\n text: 'Повышенный тариф и поддержка на выбор',\n caption: 'Субсидия или гарантия дохода',\n coordinates: { xPercent: 60, yPercent: 50 },\n mobileCoordinates: { xPercent: 55, yPercent: 45 },\n },\n {\n id: '1',\n color: '#F983E4',\n text: 'Повышенный тариф и субсидия',\n caption: 'Разовая выплата, когда оборот пункта достигнет 3 млн ₽',\n coordinates: { xPercent: 60, yPercent: 15 },\n mobileCoordinates: { xPercent: 55, yPercent: 8 },\n },\n {\n id: '2',\n color: '#BD54B9',\n text: 'Повышенный тариф и гарантия дохода',\n caption: 'Доплатим, если доход будет меньше суммы на карте',\n coordinates: { xPercent: 33, yPercent: 60 },\n mobileCoordinates: { xPercent: 35, yPercent: 50 },\n },\n {\n id: '3',\n color: '#DDCCFF',\n text: 'Повышенный тариф',\n caption: 'Процент от оборота выше обычного',\n coordinates: { xPercent: 35, yPercent: 25 },\n mobileCoordinates: { xPercent: 35, yPercent: 20 },\n },\n]\n","import * as React from \"react\";\nconst SvgMapMarker = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 90 105\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M90 45C90 20.1472 69.8528 0 45 0C20.1472 0 0 20.1472 0 45C0 51.1524 1.23466 57.0163 3.46971 62.3577C12.74 87.6685 45.2365 105 45.2365 105C45.2365 105 85.1547 83.7103 89.1274 53.8632C89.6998 50.9976 90 48.0339 90 45ZM84.6389 52.8533L84.5958 53.0695L84.5668 53.2882C82.8106 66.5134 72.8585 78.6302 62.1191 87.9324C56.8861 92.4652 51.7546 96.0817 47.9262 98.5653C46.8139 99.2868 45.8164 99.9096 44.9639 100.429C44.3974 100.084 43.7668 99.693 43.0809 99.2578C39.8772 97.225 35.5052 94.2466 30.8532 90.481C21.3724 82.8067 11.5047 72.4811 7.24855 60.8336L7.19578 60.6891L7.13654 60.5472C5.11829 55.7129 4 50.4001 4 44.8083C4 22.2705 22.2284 4 44.7143 4C67.2002 4 85.4286 22.2705 85.4286 44.8083C85.4286 47.5684 85.1562 50.2578 84.6389 52.8533Z\", fill: \"white\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M62.1412 45.0003C62.1412 35.5325 54.4661 27.8574 44.9983 27.8574C35.5306 27.8574 27.8555 35.5325 27.8555 45.0003C27.8555 54.468 35.5306 62.1431 44.9983 62.1431C54.4661 62.1431 62.1412 54.468 62.1412 45.0003Z\", fill: \"white\" }));\nexport default SvgMapMarker;\n","import { FC, useEffect, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Space } from 'components/ui/Space/Space'\nimport { Flex } from 'components/uiKit/Flex/Flex'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { URLS } from 'shared/constants/urls'\nimport { AdriverEventType, EventType } from 'types/types'\n\nimport { PromoPageKeys } from '../../types'\nimport { markerItems } from './data'\n\nimport Marker from 'assets/img/promo-page/mapMarker.svg?react'\nimport ArrowIcon from 'assets/img/shared/arrow2.svg?react'\nimport s from './Map.module.scss'\n\nexport const Map: FC = () => {\n const { isTablet, isSTablet } = useResize()\n const [activeMarker, setActiveMarker] = useState('0')\n const mapRef = useRef(null)\n const [mapDimensions, setMapDimensions] = useState<{ width: number; height: number }>({ width: 0, height: 0 })\n const { t } = useTranslation()\n\n const fontSize = isTablet ? (isSTablet ? 's16' : 's20') : 's24'\n\n const mapLink = isGeDomain() ? URLS.pick_point_map_ge : URLS.pick_point_map\n\n const getKey = (key: string) => `${PromoPageKeys.map}.${key}`\n\n useEffect(() => {\n if (mapRef.current) {\n const { offsetWidth, offsetHeight } = mapRef.current\n setMapDimensions({ width: offsetWidth, height: offsetHeight })\n }\n }, [isSTablet])\n\n const handleItemClick = (id: string) => {\n setActiveMarker(id)\n }\n\n return (\n
    \n \n
    \n
    \n \n \n {t(getKey('Выберите лучшее место на карте'))}\n
      \n {markerItems.map((item) => (\n handleItemClick(item.id)}\n >\n
      \n
      \n
      \n \n {t(getKey(item.text))}\n \n  \n \n
      \n\n {activeMarker === item.id && (\n \n {item.caption}\n \n )}\n
      \n
      \n ))}\n
    \n
    \n \n {\n sendEvent(EventType.MainCartPUPT)\n sendAdriverEvent(AdriverEventType.openMap)\n }}\n >\n Открыть карту\n \n \n
    \n
    \n sendEvent(EventType.MainCartPUPT)}\n >\n {markerItems.map((item) => {\n const coordinates = isSTablet ? item.mobileCoordinates : item.coordinates\n return (\n activeMarker === item.id && (\n \n )\n )\n })}\n \n
    \n
    \n
    \n
    \n )\n}\n","import { TextPromo } from 'components/ui'\nimport { Flex } from 'components/uiKit/Flex/Flex'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport s from './LimitedOffer.module.scss'\n\nexport const LimitedOffer = ({ children }: { children: React.ReactNode }) => {\n const { isTablet, isMobile } = useResize()\n\n return (\n \n \n \n \n Откройте пункт выдачи и получайте доход\n \n \n \n \n Начните свой бизнес вместе с Wildberries.\n \n \n Мы поддержим на всех этапах: от выбора помещения до обучения сотрудников\n \n \n \n {children}\n \n )\n}\n","export default \"__VITE_ASSET__D92LV83C__\"","export default \"__VITE_ASSET__BWUTV$Es__\"","export default \"__VITE_ASSET__DC5YorXR__\"","export default \"__VITE_ASSET__8z_HwOix__\"","import { FC } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Space } from 'components/ui/Space/Space'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { useResize } from 'utils/hooks/useResize'\nimport { LKRoutesEnum, PromoGeRoutesEnum } from 'shared/constants/routes'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\nimport { AdriverEventType } from 'types/types'\n\nimport { openPickPointLink } from '../../data'\nimport { MapGe } from '../../PromoPageGe/Sections/Map/MapGe'\nimport { PromoPageKeys } from '../../types'\nimport { Map } from '../Map/Map'\nimport { LimitedOffer } from './LimitedOffer/LimitedOffer'\n\nimport heroImgM from 'assets/img/promo-page/heroBgM.webp'\nimport heroImg from 'assets/img/promo-page/heroBgNew.webp'\nimport heroImgSD from 'assets/img/promo-page/heroBgNew-sd.webp'\nimport heroImgT from 'assets/img/promo-page/heroBgNew-t.webp'\nimport s from './Hero.module.scss'\n\nexport const Hero: FC = () => {\n const { appStore } = useStore()\n const navigate = useNavigate()\n const { t } = useTranslation()\n const { isTablet, isMobile, isSTablet, isSDesktop } = useResize()\n\n const getKey = (key: string) => `${PromoPageKeys.hero}.${key}`\n const getSharedKey = (key: string) => `${PromoPageKeys.shared}.${key}`\n\n const getImgSrc = () => {\n if (isMobile) {\n return heroImgM\n } else if (isTablet) {\n return heroImgT\n } else if (isSDesktop) {\n return heroImgSD\n }\n return heroImg\n }\n\n const buttonHero = () => (\n {\n sendAdriverEvent(AdriverEventType.openPVZ)\n if (!isGeDomain() && !appStore?.user.authenticated) {\n navigate(openPickPointLink.path)\n } else {\n navigate(isGeDomain() ? PromoGeRoutesEnum.login : LKRoutesEnum.orderCreate)\n }\n }}\n >\n {t(getSharedKey('Открыть ПВЗ'))}\n \n )\n\n return (\n
    \n
    \n
    \n {isGeDomain() ? (\n \n ) : (\n \n )}\n {isGeDomain() ? (\n <>\n
    \n \n {t(getKey('Вашему городу'))}\n \n \n {t(getKey('нужен новый'))}\n \n \n {t(getKey('пункт выдачи'))}\n \n
    \n \n
    \n \n {t(getKey('Начните свой бизнес'))}\n {isTablet ? ' ' : ''}\n \n \n {t(getKey('на всех этапах'))}\n \n
    \n \n ) : (\n
    \n \"heroImg\"\n
    \n )}\n {isGeDomain() ? buttonHero() : {buttonHero()}}\n {isGeDomain() ? : }\n
    \n
    \n )\n}\n","export default \"__VITE_ASSET__CnJnAqw1__\"","export default \"__VITE_ASSET__mKN0Ve4m__\"","import { openPickPointLink } from 'sections/PromoSection/pages/PromoPage/data'\nimport { scrollToId } from 'utils/helpers/scrollToId'\nimport { docs } from 'shared/constants/docs'\n\nimport { IComparePPData, LabelKeys } from './types'\n\nimport brandPreview from 'assets/img/promo-page/brand-pp-preview.png'\nimport villagePreview from 'assets/img/promo-page/village-pp-preview.png'\n\nexport const labels: Record = {\n location: 'Где действуют',\n placement: 'Расположение пункта',\n area: 'Помещение',\n renovation: 'Ремонт',\n branding: 'Брендирование',\n deposit: 'Обеспечительный платёж',\n}\n\nexport const brandPPData: IComparePPData = {\n type: 'standard',\n action: {\n fn: () => scrollToId(openPickPointLink.path),\n title: 'Гайд для стандартных условий',\n },\n conditions: [\n { labelKey: 'location', text: ['В любых городах, деревнях и\\u00A0сёлах'], id: 0 },\n {\n labelKey: 'placement',\n text: ['В районах, где живёт много людей: рядом с домами, магазинами, школами'],\n id: 1,\n },\n {\n labelKey: 'area',\n text: ['От 30 м² в зависимости от зоны'],\n id: 2,\n },\n { labelKey: 'renovation', text: ['Нужен — требования есть ', [docs.brandbook, 'в гайде']], id: 3 },\n {\n labelKey: 'branding',\n text: ['Бренд-стена, постер и тейбл-тент внутри. Вывеска или панель-кронштейн снаружи — пришлём бесплатно'],\n id: 4,\n },\n { labelKey: 'deposit', text: ['50 000 ₽\\nВернутся на баланс, если откроете ПВЗ за 30 дней'], id: 5 },\n ],\n preview: brandPreview,\n}\n\nexport const villagePPData: IComparePPData = {\n type: 'simplified',\n action: { fn: () => scrollToId(openPickPointLink.path), title: 'Гайд для упрощенных условий' },\n conditions: [\n { labelKey: 'location', text: ['В населённых пунктах, где живёт до 5 000 человек'], id: 6 },\n {\n labelKey: 'placement',\n text: ['Любое, кроме частных домов. Подойдёт даже продуктовый магазин'],\n id: 7,\n },\n {\n labelKey: 'area',\n text: ['Выделите под ПВЗ не меньше 10 м², чтобы было место для стола выдачи и хранения товаров'],\n id: 8,\n },\n {\n labelKey: 'renovation',\n text: ['Не нужен'],\n id: 9,\n },\n {\n labelKey: 'branding',\n text: ['Постер и тейбл-тент внутри. Панель-кронштейн снаружи — пришлём бесплатно'],\n id: 10,\n },\n { labelKey: 'deposit', text: ['10 000 ₽\\nВернутся на баланс, если откроете ПВЗ за 30 дней'], id: 11 },\n ],\n preview: villagePreview,\n}\n","export interface IComparePPData {\n type: 'standard' | 'simplified'\n preview: string\n conditions: { action?: VoidFunction; text: ConditionDesc[]; labelKey: LabelKeys; id: number }[]\n action: { fn: VoidFunction; title: string }\n}\n\nexport type ConditionDesc = string | [string, string]\n\nexport type LabelKeys = 'location' | 'placement' | 'area' | 'renovation' | 'branding' | 'deposit'\n\nexport const enum pickpointType {\n standard = 'standard',\n simplified = 'simplified',\n}\n","import { FC, Fragment } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex } from 'components/uiKit'\nimport { useResize } from 'utils/hooks/useResize'\nimport { docs } from 'shared/constants/docs'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\n\nimport { labels } from '../../data'\nimport { ConditionDesc, IComparePPData, pickpointType } from '../../types'\n\nimport s from './PickPointBox.module.scss'\n\ninterface IPickPointBoxProps {\n data: IComparePPData\n title: string\n typeOfPickpoint: pickpointType.standard | pickpointType.simplified\n}\n\nexport const PickPointBox: FC = ({ data, title, typeOfPickpoint }) => {\n const { isMobile, isTablet } = useResize()\n const location = useLocation()\n\n const fontSize = isMobile ? 's16' : 's20'\n const buttonFontSize = isTablet ? 's16' : 's20'\n const isSimplifiedPage = location.pathname === PromoRoutesEnum.simplifiedConditions\n const isMainPage = location.pathname === PromoRoutesEnum.root\n\n const getButtonConfig = (): {\n text: string\n link: string\n variant: 'purple' | 'pink' | 'white' | 'arrow' | 'darkGray'\n linkType: 'search' | 'pathname'\n target: '_blank' | '_self'\n } => {\n if (isSimplifiedPage) {\n return {\n text: typeOfPickpoint === pickpointType.standard ? 'Подробнее' : 'Скачать брендбук',\n link: typeOfPickpoint === pickpointType.standard ? PromoRoutesEnum.root : docs.brandbookSimplified,\n variant: typeOfPickpoint === pickpointType.standard ? 'darkGray' : 'purple',\n linkType: typeOfPickpoint === pickpointType.standard ? 'pathname' : 'search',\n target: typeOfPickpoint === pickpointType.standard ? '_self' : '_blank',\n }\n }\n return {\n text: typeOfPickpoint === pickpointType.standard ? 'Скачать брендбук' : 'Подробнее',\n link: typeOfPickpoint === pickpointType.standard ? docs.brandbook : PromoRoutesEnum.simplifiedConditions,\n variant: typeOfPickpoint === pickpointType.standard ? 'purple' : 'darkGray',\n linkType: typeOfPickpoint === pickpointType.standard ? 'search' : 'pathname',\n target: typeOfPickpoint === pickpointType.standard ? '_blank' : '_self',\n }\n }\n\n const { text, link, variant, linkType, target } = getButtonConfig()\n\n return (\n \n \n {title}\n \n \n {data.conditions.map((item, index) => (\n \n {index === 0 && \"pp-preview\"}\n \n \n {labels[item.labelKey]}\n \n \n {item.text.map((descriptionPart: ConditionDesc, idx) => {\n let content\n if (typeof descriptionPart === 'object') {\n content = (\n \n {descriptionPart[1]}\n \n )\n } else {\n content = (\n \n \n {descriptionPart}\n \n \n )\n }\n return content\n })}\n \n \n \n ))}\n \n \n \n {text}\n \n \n \n \n \n )\n}\n","import { FC } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { TextPromo } from 'components/ui'\nimport { Space } from 'components/ui/Space/Space'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\n\nimport { PickPointBox } from './components/PickPointBox/PickPointBox'\nimport { brandPPData, villagePPData } from './data'\nimport { pickpointType } from './types'\n\nimport s from './KindsOfPickPoints.module.scss'\n\nexport const KindsOfPickPoints: FC = () => {\n const { isDesktop, isTablet, isMobile } = useResize()\n const location = useLocation()\n\n const pickPoints = [\n {\n data: brandPPData,\n title: 'Стандартные',\n key: 'brand',\n type: pickpointType.standard,\n order: location.pathname === PromoRoutesEnum.simplifiedConditions ? 2 : 1,\n },\n {\n data: villagePPData,\n title: 'Упрощённые',\n key: 'village',\n type: pickpointType.simplified,\n order: location.pathname === PromoRoutesEnum.simplifiedConditions ? 1 : 2,\n },\n ].sort((a, b) => a.order - b.order)\n\n return (\n
    \n
    \n
    \n
    \n \n \n Условия открытия\n \n
    \n \n
    \n {pickPoints.map(({ data, title, key, type }) => (\n \n ))}\n
    \n
    \n
    \n )\n}\n","export default \"__VITE_ASSET__D74BO5m8__\"","export default \"__VITE_ASSET__Bj$_O0Y$__\"","import { StatisticItem } from './types'\n\nimport MarkerIcon from 'assets/img/promo-page/markerIcon.webp'\nimport ZipIcon from 'assets/img/promo-page/zipIcon.webp'\n\nexport const statisticsData: StatisticItem[] = [\n {\n id: 1,\n value: '69 000',\n description: 'пунктов выдачи заказов',\n IconLink: MarkerIcon,\n },\n {\n id: 2,\n value: '4 трлн ₽',\n description: 'годовой оборот компании',\n },\n {\n id: 3,\n value: '4,5 млрд',\n description: 'заказов в год',\n },\n {\n id: 4,\n value: '2–6 месяцев',\n description: 'средний срок, за который окупается ПВЗ',\n IconLink: ZipIcon,\n },\n]\n","import { FC } from 'react'\n\nimport { TextPromo } from 'components/ui/TextPromo/TextPromo'\nimport { Title } from 'components/ui/Title/Title'\nimport { getAltFromSrc } from 'utils/helpers/getAltFromSrc/getAltFromSrc'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { statisticsData } from './data'\n\nimport s from './MarketPlaceStat.module.scss'\n\nexport const MarketPlaceStat: FC = () => {\n const { isSDesktop, isSTablet } = useResize()\n\n return (\n
    \n
    \n \n Станьте партнёром Wildberries — крупнейшего маркетплейса России и СНГ\n \n
    \n {statisticsData.map((item) => (\n
    \n \n {item.value}\n \n \n {item.description}\n \n
    \n {item.IconLink ? {getAltFromSrc(item.IconLink)} : null}\n
    \n
    \n ))}\n
    \n
    \n
    \n )\n}\n\nexport default MarketPlaceStat\n","export default \"__VITE_ASSET__B4KGf$P9__\"","export default \"__VITE_ASSET__B9w5MrAZ__\"","export default \"__VITE_ASSET__BgyQy5oL__\"","import { TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { SupportCardType } from '../../types'\n\nimport bookImg from 'assets/img/promo-page/support-card/bookImg.webp'\nimport giftImg from 'assets/img/promo-page/support-card/giftImg.webp'\nimport walletImg from 'assets/img/promo-page/support-card/walletImg.webp'\nimport ArrowIcon from 'assets/img/shared/arrow2.svg?react'\nimport s from './SupportCard.module.scss'\n\nconst illustrations = [walletImg, giftImg, bookImg]\n\ninterface ISupportCard {\n card: SupportCardType\n}\n\nexport const SupportCard = ({ card }: ISupportCard) => {\n const { isSTablet, isSDesktop } = useResize()\n\n return (\n \n
    \n
    \n
    \n \n {card.title}\n \n \n \n )\n}\n","import { PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\n\nimport { SupportCardType } from './types'\n\nexport const breakSymbol = '/b/'\n\nexport const supportCardsText: SupportCardType[] = [\n {\n id: 1,\n title: 'Выплатим субсидию или\\u00A0гарантированный доход',\n link: '#faq',\n },\n {\n id: 2,\n title: 'Подарим вывеску, панель-кронштейн и\\u00A0контроллер',\n link: PromoRoutesEnum.signboard,\n },\n {\n id: 3,\n title: 'Научим, как управлять пунктом выдачи и работать с\\u00A0товарами',\n link: URLS.learningPortal,\n linkType: 'search',\n },\n]\n","import { FC } from 'react'\n\nimport { TextPromo } from 'components/ui'\nimport { Space } from 'components/ui/Space/Space'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { SupportCard } from './components/SupportCard/SupportCard'\nimport { supportCardsText } from './data'\n\nimport s from './OpeningSteps.module.scss'\n\nexport const OpeningSteps: FC = () => {\n const { isMobile, isTablet } = useResize()\n\n return (\n
    \n
    \n
    \n \n \n Поддержим\n \n \n не словом, а делом\n \n
    \n\n \n\n
    \n {supportCardsText.map((card) => (\n \n ))}\n
    \n
    \n
    \n )\n}\n\nexport default OpeningSteps\n","import * as React from \"react\";\nconst SvgDownloadArrow = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 45 44\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.9609 11V27.5M22.9609 27.5L30.9609 19.7424M22.9609 27.5L14.9609 19.7424\", stroke: \"black\", strokeWidth: 2.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.9609 33.5H14.9609\", stroke: \"black\", strokeWidth: 2.5, strokeLinecap: \"round\" }));\nexport default SvgDownloadArrow;\n","import { FC } from 'react'\n\nimport { TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex } from 'components/uiKit'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { URLS } from 'shared/constants/urls'\n\nimport Arrow from 'assets/img/shared/arrow.svg?react'\nimport DownloadArrow from 'assets/img/shared/downloadArrow.svg?react'\nimport s from './PromoLink.module.scss'\nimport { AdriverEventType } from 'types/types'\n\ninterface AuctionItem {\n title: string\n description: string\n linkText: string\n linkHref: string\n}\n\ninterface AuctionProps {\n data: AuctionItem[]\n isDownloadLink: boolean\n}\n\nconst handleClickLink = (link: string) => {\n if (link === URLS.auction) {\n sendAdriverEvent(AdriverEventType.showVariants)\n } else return\n}\n\nexport const PromoLink: FC = ({ data, isDownloadLink }) => {\n const { isTablet, isSTablet } = useResize()\n\n return (\n
    \n {data.map((item, index) => (\n \n \n \n {item.title}\n \n \n {item.description}\n \n \n handleClickLink(item.linkHref)}\n >\n \n {item.linkText}\n \n
    \n {isDownloadLink ? : }\n
    \n \n
    \n ))}\n
    \n )\n}\n","import * as React from \"react\";\nconst SvgPlay = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { opacity: 0.5, d: \"M10.336 7.252L24.3467 15.4253C24.4471 15.4841 24.5303 15.5681 24.5882 15.6691C24.6461 15.77 24.6765 15.8843 24.6765 16.0007C24.6765 16.117 24.6461 16.2313 24.5882 16.3323C24.5303 16.4332 24.4471 16.5172 24.3467 16.576L10.336 24.7493C10.2345 24.8086 10.1191 24.8399 10.0016 24.8402C9.88405 24.8405 9.76854 24.8097 9.66674 24.7509C9.56495 24.6922 9.4805 24.6076 9.42194 24.5057C9.36339 24.4038 9.33281 24.2882 9.33332 24.1707V7.828C9.33328 7.71069 9.3642 7.59546 9.42295 7.49393C9.48169 7.39239 9.56619 7.30816 9.6679 7.24973C9.76962 7.1913 9.88495 7.16074 10.0022 7.16114C10.1196 7.16153 10.2347 7.19288 10.336 7.252Z\", fill: \"#7635DB\" }));\nexport default SvgPlay;\n","import React, { useEffect, useRef, useState } from 'react'\n\nimport PlayIcon from 'assets/icons/play.svg?react'\nimport s from './LazyLoadVideo.module.scss'\n\ninterface LazyLoadVideoProps {\n src: string\n poster?: string\n className?: string\n useIframe?: boolean\n}\n\nexport const LazyLoadVideo = ({ src, poster, className, useIframe = false, ...props }: LazyLoadVideoProps) => {\n const videoRef = useRef(null)\n const [isVisible, setIsVisible] = useState(false)\n const [isPlaying, setIsPlaying] = useState(false)\n\n const handlePlayPause = () => {\n if (videoRef.current) {\n if (isPlaying) {\n videoRef.current.pause()\n } else {\n videoRef.current.play()\n }\n setIsPlaying(!isPlaying)\n }\n }\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true)\n observer.unobserve(entry.target)\n }\n },\n { threshold: 0.1 },\n )\n\n if (videoRef.current && !useIframe) {\n observer.observe(videoRef.current)\n }\n\n return () => {\n if (videoRef.current && !useIframe) {\n observer.unobserve(videoRef.current)\n }\n }\n }, [useIframe])\n\n if (useIframe) {\n return (\n
    \n \n
    \n )\n }\n\n return (\n
    \n setIsPlaying(true)}\n onPause={() => setIsPlaying(false)}\n className={`${isVisible ? s.visible : s.hidden}`}\n {...props}\n >\n {isVisible && }\n \n {!isPlaying && (\n \n )}\n
    \n )\n}\n","import { FC } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Space } from 'components/ui/Space/Space'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { docs } from 'shared/constants/docs'\nimport { PromoGeRoutesEnum } from 'shared/constants/routes'\nimport { SCROLL_TO_ID } from 'shared/constants/values'\n\nimport { LazyLoadVideo } from './components/LazyLoadVideo'\n\nimport s from './VideoSection.module.scss'\nimport { AdriverEventType } from 'types/types'\n\ninterface VideoSectionProps {\n title: string\n description: string\n videoSrc: string\n poster: string\n useIframe: boolean\n}\n\nexport const VideoSection: FC = ({ title, description, videoSrc, poster, useIframe }) => {\n const { isTablet, isMobile } = useResize()\n const location = useLocation()\n\n const isHomePage = location.pathname === PromoGeRoutesEnum.root\n\n return (\n
    \n
    \n
    \n \n \n {title}\n \n\n \n \n {description}\n \n
    \n\n \n \n {isHomePage && (\n <>\n \n sendAdriverEvent(AdriverEventType.downloadChecklist)}\n >\n Скачать чек-лист по открытию ПВЗ\n \n \n \n )}\n
    \n
    \n )\n}\n\nexport default VideoSection\n","export default \"__VITE_ASSET__BgrX7wM$__\"","import { FC, useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\n// const VideoSection = lazy(() => import('./Sections/VideoSection/VideoSection'))\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { scrollToId } from 'utils/helpers/scrollToId'\n\nimport { stepsData } from './PromoPageGe/data'\nimport { OpeningStepsSection } from './PromoPageGe/Sections/OpeningSteps/OpeningStepsSection'\nimport { Authorization } from './Sections/Authorization/Authorization'\nimport Faq from './Sections/Faq/Faq'\nimport { Banner } from './Sections/Hero/Banner/Banner'\nimport { Hero } from './Sections/Hero/Hero'\nimport { KindsOfPickPoints } from './Sections/KindsOfPickPoints/KindsOfPickPoints'\nimport { MarketPlaceStat } from './Sections/MarketPlaceStat/MarketPlaceStat'\nimport { OpeningSteps } from './Sections/OpeningSteps/OpeningSteps'\nimport { PromoLink } from './Sections/PromoLink/PromoLink'\nimport VideoSection from './Sections/VideoSection/VideoSection'\nimport { auctionData } from './data'\n\nimport videoImg from 'assets/img/video-section/intro-video-preview.webp'\nimport './PromoPage.css'\n\nexport const PromoPage: FC = () => {\n const location = useLocation()\n\n useEffect(() => {\n if (location.hash) {\n setTimeout(() => {\n scrollToId(location.hash)\n }, 100)\n }\n }, [location])\n\n return (\n
    \n \n \n \n \n \n {!isGeDomain() && }\n \n \n \n \n
    \n )\n}\n","import { lazy } from 'react'\n\nexport const RatingPageAsync = lazy(() => import('./RatingPage'))\n","import { lazy } from 'react'\n\nexport const SignBoardPageAsync = lazy(() => import('./SignBoardPage'))\n","import { lazy } from 'react'\n\nexport const SimplifiedConditionsPageAsync = lazy(() => import('./SimplifiedConditionsPage'))\n","import { lazy } from 'react'\n\nexport const VideoConnectionPageAsync = lazy(() => import('./VideoConnectionPage'))\n","export function updatePageHeight() {\n const footer = document.querySelector('footer')\n const pageHeight = document.body.scrollHeight\n const footerHeight = footer ? footer.offsetHeight : 0\n const calculatedHeight = pageHeight - footerHeight\n document.documentElement.style.setProperty('--page-height', `${calculatedHeight}px`)\n}\n","import * as React from \"react\";\nconst SvgMinus = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 40 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M31.6663 21.6673H21.6663H18.333H8.33301V18.334H18.333H21.6663H31.6663V21.6673Z\", fill: \"#090909\" }));\nexport default SvgMinus;\n","import * as React from \"react\";\nconst SvgPlus = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 40 40\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M31.6663 21.6673H21.6663V31.6673H18.333V21.6673H8.33301V18.334H18.333V8.33398H21.6663V18.334H31.6663V21.6673Z\", fill: \"#090909\" }));\nexport default SvgPlus;\n","import { observer } from 'mobx-react-lite'\nimport { FC, useState } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { MenuItemType } from 'sections/PromoSection/pages/PromoPage/types'\nimport { TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { scrollToId } from 'utils/helpers/scrollToId'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport MinusIcon from 'assets/icons/minus.svg?react'\nimport PlusIcon from 'assets/icons/plus.svg?react'\nimport s from './FooterLinksWrapper.module.scss'\n\ninterface IFooterLinksWrapperProps {\n title: string\n links: MenuItemType[]\n wide?: boolean\n}\n\nexport const FooterLinksWrapper: FC = observer(({ title, links, wide }) => {\n const [collapsed, setCollapsed] = useState(false)\n const navigate = useNavigate()\n\n const { isSDesktop } = useResize()\n\n const toggle = () => {\n setCollapsed((prev) => !prev)\n }\n\n const handleSelectMenuItem = (e: React.MouseEvent, link: MenuItemType) => {\n e.preventDefault()\n\n if (link.type === 'anchor') {\n scrollToId(link.path)\n } else if (link.type === 'link') {\n window.open(link.path, '_blank')\n } else {\n navigate(link.path, { replace: false })\n }\n }\n\n const showToggler = (!isSDesktop && !collapsed) || collapsed\n\n return (\n
    \n
    \n \n {title}\n \n {isSDesktop && (\n \n {!showToggler ? : }\n \n )}\n
    \n\n {showToggler &&\n links.map((link) => (\n handleSelectMenuItem(e, link)}>\n {link.label}\n \n ))}\n
    \n )\n})\n","import * as React from \"react\";\nconst SvgMobileQr = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 164 164\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0 0H6.56V6.56H0V0ZM6.56 0H13.12V6.56H6.56V0ZM13.12 0H19.68V6.56H13.12V0ZM19.68 0H26.24V6.56H19.68V0ZM26.24 0H32.8V6.56H26.24V0ZM32.8 0H39.36V6.56H32.8V0ZM39.36 0H45.92V6.56H39.36V0ZM52.48 0H59.04V6.56H52.48V0ZM65.6 0H72.16V6.56H65.6V0ZM78.72 0H85.28V6.56H78.72V0ZM85.28 0H91.84V6.56H85.28V0ZM104.96 0H111.52V6.56H104.96V0ZM118.08 0H124.64V6.56H118.08V0ZM124.64 0H131.2V6.56H124.64V0ZM131.2 0H137.76V6.56H131.2V0ZM137.76 0H144.32V6.56H137.76V0ZM144.32 0H150.88V6.56H144.32V0ZM150.88 0H157.44V6.56H150.88V0ZM157.44 0H164V6.56H157.44V0ZM0 6.56H6.56V13.12H0V6.56ZM39.36 6.56H45.92V13.12H39.36V6.56ZM59.04 6.56H65.6V13.12H59.04V6.56ZM65.6 6.56H72.16V13.12H65.6V6.56ZM72.16 6.56H78.72V13.12H72.16V6.56ZM78.72 6.56H85.28V13.12H78.72V6.56ZM85.28 6.56H91.84V13.12H85.28V6.56ZM118.08 6.56H124.64V13.12H118.08V6.56ZM157.44 6.56H164V13.12H157.44V6.56ZM0 13.12H6.56V19.68H0V13.12ZM13.12 13.12H19.68V19.68H13.12V13.12ZM19.68 13.12H26.24V19.68H19.68V13.12ZM26.24 13.12H32.8V19.68H26.24V13.12ZM39.36 13.12H45.92V19.68H39.36V13.12ZM52.48 13.12H59.04V19.68H52.48V13.12ZM59.04 13.12H65.6V19.68H59.04V13.12ZM65.6 13.12H72.16V19.68H65.6V13.12ZM85.28 13.12H91.84V19.68H85.28V13.12ZM91.84 13.12H98.4V19.68H91.84V13.12ZM118.08 13.12H124.64V19.68H118.08V13.12ZM131.2 13.12H137.76V19.68H131.2V13.12ZM137.76 13.12H144.32V19.68H137.76V13.12ZM144.32 13.12H150.88V19.68H144.32V13.12ZM157.44 13.12H164V19.68H157.44V13.12ZM0 19.68H6.56V26.24H0V19.68ZM13.12 19.68H19.68V26.24H13.12V19.68ZM19.68 19.68H26.24V26.24H19.68V19.68ZM26.24 19.68H32.8V26.24H26.24V19.68ZM39.36 19.68H45.92V26.24H39.36V19.68ZM52.48 19.68H59.04V26.24H52.48V19.68ZM59.04 19.68H65.6V26.24H59.04V19.68ZM65.6 19.68H72.16V26.24H65.6V19.68ZM78.72 19.68H85.28V26.24H78.72V19.68ZM85.28 19.68H91.84V26.24H85.28V19.68ZM98.4 19.68H104.96V26.24H98.4V19.68ZM104.96 19.68H111.52V26.24H104.96V19.68ZM118.08 19.68H124.64V26.24H118.08V19.68ZM131.2 19.68H137.76V26.24H131.2V19.68ZM137.76 19.68H144.32V26.24H137.76V19.68ZM144.32 19.68H150.88V26.24H144.32V19.68ZM157.44 19.68H164V26.24H157.44V19.68ZM0 26.24H6.56V32.8H0V26.24ZM13.12 26.24H19.68V32.8H13.12V26.24ZM19.68 26.24H26.24V32.8H19.68V26.24ZM26.24 26.24H32.8V32.8H26.24V26.24ZM39.36 26.24H45.92V32.8H39.36V26.24ZM52.48 26.24H59.04V32.8H52.48V26.24ZM72.16 26.24H78.72V32.8H72.16V26.24ZM78.72 26.24H85.28V32.8H78.72V26.24ZM85.28 26.24H91.84V32.8H85.28V26.24ZM91.84 26.24H98.4V32.8H91.84V26.24ZM98.4 26.24H104.96V32.8H98.4V26.24ZM104.96 26.24H111.52V32.8H104.96V26.24ZM118.08 26.24H124.64V32.8H118.08V26.24ZM131.2 26.24H137.76V32.8H131.2V26.24ZM137.76 26.24H144.32V32.8H137.76V26.24ZM144.32 26.24H150.88V32.8H144.32V26.24ZM157.44 26.24H164V32.8H157.44V26.24ZM0 32.8H6.56V39.36H0V32.8ZM39.36 32.8H45.92V39.36H39.36V32.8ZM65.6 32.8H72.16V39.36H65.6V32.8ZM72.16 32.8H78.72V39.36H72.16V32.8ZM91.84 32.8H98.4V39.36H91.84V32.8ZM104.96 32.8H111.52V39.36H104.96V32.8ZM118.08 32.8H124.64V39.36H118.08V32.8ZM157.44 32.8H164V39.36H157.44V32.8ZM0 39.36H6.56V45.92H0V39.36ZM6.56 39.36H13.12V45.92H6.56V39.36ZM13.12 39.36H19.68V45.92H13.12V39.36ZM19.68 39.36H26.24V45.92H19.68V39.36ZM26.24 39.36H32.8V45.92H26.24V39.36ZM32.8 39.36H39.36V45.92H32.8V39.36ZM39.36 39.36H45.92V45.92H39.36V39.36ZM52.48 39.36H59.04V45.92H52.48V39.36ZM65.6 39.36H72.16V45.92H65.6V39.36ZM78.72 39.36H85.28V45.92H78.72V39.36ZM91.84 39.36H98.4V45.92H91.84V39.36ZM104.96 39.36H111.52V45.92H104.96V39.36ZM118.08 39.36H124.64V45.92H118.08V39.36ZM124.64 39.36H131.2V45.92H124.64V39.36ZM131.2 39.36H137.76V45.92H131.2V39.36ZM137.76 39.36H144.32V45.92H137.76V39.36ZM144.32 39.36H150.88V45.92H144.32V39.36ZM150.88 39.36H157.44V45.92H150.88V39.36ZM157.44 39.36H164V45.92H157.44V39.36ZM65.6 45.92H72.16V52.48H65.6V45.92ZM78.72 45.92H85.28V52.48H78.72V45.92ZM98.4 45.92H104.96V52.48H98.4V45.92ZM104.96 45.92H111.52V52.48H104.96V45.92ZM0 52.48H6.56V59.04H0V52.48ZM6.56 52.48H13.12V59.04H6.56V52.48ZM13.12 52.48H19.68V59.04H13.12V52.48ZM19.68 52.48H26.24V59.04H19.68V52.48ZM39.36 52.48H45.92V59.04H39.36V52.48ZM52.48 52.48H59.04V59.04H52.48V52.48ZM65.6 52.48H72.16V59.04H65.6V52.48ZM72.16 52.48H78.72V59.04H72.16V52.48ZM78.72 52.48H85.28V59.04H78.72V52.48ZM98.4 52.48H104.96V59.04H98.4V52.48ZM104.96 52.48H111.52V59.04H104.96V52.48ZM111.52 52.48H118.08V59.04H111.52V52.48ZM131.2 52.48H137.76V59.04H131.2V52.48ZM137.76 52.48H144.32V59.04H137.76V52.48ZM144.32 52.48H150.88V59.04H144.32V52.48ZM157.44 52.48H164V59.04H157.44V52.48ZM0 59.04H6.56V65.6H0V59.04ZM6.56 59.04H13.12V65.6H6.56V59.04ZM19.68 59.04H26.24V65.6H19.68V59.04ZM26.24 59.04H32.8V65.6H26.24V59.04ZM45.92 59.04H52.48V65.6H45.92V59.04ZM65.6 59.04H72.16V65.6H65.6V59.04ZM78.72 59.04H85.28V65.6H78.72V59.04ZM91.84 59.04H98.4V65.6H91.84V59.04ZM124.64 59.04H131.2V65.6H124.64V59.04ZM150.88 59.04H157.44V65.6H150.88V59.04ZM0 65.6H6.56V72.16H0V65.6ZM6.56 65.6H13.12V72.16H6.56V65.6ZM13.12 65.6H19.68V72.16H13.12V65.6ZM19.68 65.6H26.24V72.16H19.68V65.6ZM39.36 65.6H45.92V72.16H39.36V65.6ZM45.92 65.6H52.48V72.16H45.92V65.6ZM59.04 65.6H65.6V72.16H59.04V65.6ZM65.6 65.6H72.16V72.16H65.6V65.6ZM72.16 65.6H78.72V72.16H72.16V65.6ZM78.72 65.6H85.28V72.16H78.72V65.6ZM85.28 65.6H91.84V72.16H85.28V65.6ZM91.84 65.6H98.4V72.16H91.84V65.6ZM104.96 65.6H111.52V72.16H104.96V65.6ZM118.08 65.6H124.64V72.16H118.08V65.6ZM124.64 65.6H131.2V72.16H124.64V65.6ZM26.24 72.16H32.8V78.72H26.24V72.16ZM52.48 72.16H59.04V78.72H52.48V72.16ZM59.04 72.16H65.6V78.72H59.04V72.16ZM65.6 72.16H72.16V78.72H65.6V72.16ZM85.28 72.16H91.84V78.72H85.28V72.16ZM91.84 72.16H98.4V78.72H91.84V72.16ZM98.4 72.16H104.96V78.72H98.4V72.16ZM104.96 72.16H111.52V78.72H104.96V72.16ZM118.08 72.16H124.64V78.72H118.08V72.16ZM131.2 72.16H137.76V78.72H131.2V72.16ZM137.76 72.16H144.32V78.72H137.76V72.16ZM144.32 72.16H150.88V78.72H144.32V72.16ZM0 78.72H6.56V85.28H0V78.72ZM19.68 78.72H26.24V85.28H19.68V78.72ZM32.8 78.72H39.36V85.28H32.8V78.72ZM39.36 78.72H45.92V85.28H39.36V78.72ZM52.48 78.72H59.04V85.28H52.48V78.72ZM59.04 78.72H65.6V85.28H59.04V78.72ZM65.6 78.72H72.16V85.28H65.6V78.72ZM78.72 78.72H85.28V85.28H78.72V78.72ZM85.28 78.72H91.84V85.28H85.28V78.72ZM111.52 78.72H118.08V85.28H111.52V78.72ZM118.08 78.72H124.64V85.28H118.08V78.72ZM131.2 78.72H137.76V85.28H131.2V78.72ZM144.32 78.72H150.88V85.28H144.32V78.72ZM150.88 78.72H157.44V85.28H150.88V78.72ZM157.44 78.72H164V85.28H157.44V78.72ZM6.56 85.28H13.12V91.84H6.56V85.28ZM13.12 85.28H19.68V91.84H13.12V85.28ZM19.68 85.28H26.24V91.84H19.68V85.28ZM45.92 85.28H52.48V91.84H45.92V85.28ZM59.04 85.28H65.6V91.84H59.04V85.28ZM72.16 85.28H78.72V91.84H72.16V85.28ZM78.72 85.28H85.28V91.84H78.72V85.28ZM98.4 85.28H104.96V91.84H98.4V85.28ZM104.96 85.28H111.52V91.84H104.96V85.28ZM111.52 85.28H118.08V91.84H111.52V85.28ZM118.08 85.28H124.64V91.84H118.08V85.28ZM124.64 85.28H131.2V91.84H124.64V85.28ZM131.2 85.28H137.76V91.84H131.2V85.28ZM157.44 85.28H164V91.84H157.44V85.28ZM6.56 91.84H13.12V98.4H6.56V91.84ZM13.12 91.84H19.68V98.4H13.12V91.84ZM19.68 91.84H26.24V98.4H19.68V91.84ZM26.24 91.84H32.8V98.4H26.24V91.84ZM39.36 91.84H45.92V98.4H39.36V91.84ZM52.48 91.84H59.04V98.4H52.48V91.84ZM59.04 91.84H65.6V98.4H59.04V91.84ZM65.6 91.84H72.16V98.4H65.6V91.84ZM72.16 91.84H78.72V98.4H72.16V91.84ZM104.96 91.84H111.52V98.4H104.96V91.84ZM111.52 91.84H118.08V98.4H111.52V91.84ZM131.2 91.84H137.76V98.4H131.2V91.84ZM144.32 91.84H150.88V98.4H144.32V91.84ZM150.88 91.84H157.44V98.4H150.88V91.84ZM0 98.4H6.56V104.96H0V98.4ZM26.24 98.4H32.8V104.96H26.24V98.4ZM45.92 98.4H52.48V104.96H45.92V98.4ZM52.48 98.4H59.04V104.96H52.48V98.4ZM59.04 98.4H65.6V104.96H59.04V98.4ZM65.6 98.4H72.16V104.96H65.6V98.4ZM72.16 98.4H78.72V104.96H72.16V98.4ZM104.96 98.4H111.52V104.96H104.96V98.4ZM111.52 98.4H118.08V104.96H111.52V98.4ZM118.08 98.4H124.64V104.96H118.08V98.4ZM124.64 98.4H131.2V104.96H124.64V98.4ZM131.2 98.4H137.76V104.96H131.2V98.4ZM157.44 98.4H164V104.96H157.44V98.4ZM32.8 104.96H39.36V111.52H32.8V104.96ZM39.36 104.96H45.92V111.52H39.36V104.96ZM45.92 104.96H52.48V111.52H45.92V104.96ZM59.04 104.96H65.6V111.52H59.04V104.96ZM65.6 104.96H72.16V111.52H65.6V104.96ZM85.28 104.96H91.84V111.52H85.28V104.96ZM98.4 104.96H104.96V111.52H98.4V104.96ZM104.96 104.96H111.52V111.52H104.96V104.96ZM111.52 104.96H118.08V111.52H111.52V104.96ZM118.08 104.96H124.64V111.52H118.08V104.96ZM124.64 104.96H131.2V111.52H124.64V104.96ZM131.2 104.96H137.76V111.52H131.2V104.96ZM137.76 104.96H144.32V111.52H137.76V104.96ZM144.32 104.96H150.88V111.52H144.32V104.96ZM150.88 104.96H157.44V111.52H150.88V104.96ZM157.44 104.96H164V111.52H157.44V104.96ZM52.48 111.52H59.04V118.08H52.48V111.52ZM59.04 111.52H65.6V118.08H59.04V111.52ZM104.96 111.52H111.52V118.08H104.96V111.52ZM131.2 111.52H137.76V118.08H131.2V111.52ZM144.32 111.52H150.88V118.08H144.32V111.52ZM157.44 111.52H164V118.08H157.44V111.52ZM0 118.08H6.56V124.64H0V118.08ZM6.56 118.08H13.12V124.64H6.56V118.08ZM13.12 118.08H19.68V124.64H13.12V118.08ZM19.68 118.08H26.24V124.64H19.68V118.08ZM26.24 118.08H32.8V124.64H26.24V118.08ZM32.8 118.08H39.36V124.64H32.8V118.08ZM39.36 118.08H45.92V124.64H39.36V118.08ZM59.04 118.08H65.6V124.64H59.04V118.08ZM65.6 118.08H72.16V124.64H65.6V118.08ZM78.72 118.08H85.28V124.64H78.72V118.08ZM85.28 118.08H91.84V124.64H85.28V118.08ZM104.96 118.08H111.52V124.64H104.96V118.08ZM118.08 118.08H124.64V124.64H118.08V118.08ZM131.2 118.08H137.76V124.64H131.2V118.08ZM144.32 118.08H150.88V124.64H144.32V118.08ZM150.88 118.08H157.44V124.64H150.88V118.08ZM157.44 118.08H164V124.64H157.44V118.08ZM0 124.64H6.56V131.2H0V124.64ZM39.36 124.64H45.92V131.2H39.36V124.64ZM59.04 124.64H65.6V131.2H59.04V124.64ZM65.6 124.64H72.16V131.2H65.6V124.64ZM78.72 124.64H85.28V131.2H78.72V124.64ZM91.84 124.64H98.4V131.2H91.84V124.64ZM98.4 124.64H104.96V131.2H98.4V124.64ZM104.96 124.64H111.52V131.2H104.96V124.64ZM131.2 124.64H137.76V131.2H131.2V124.64ZM0 131.2H6.56V137.76H0V131.2ZM13.12 131.2H19.68V137.76H13.12V131.2ZM19.68 131.2H26.24V137.76H19.68V131.2ZM26.24 131.2H32.8V137.76H26.24V131.2ZM39.36 131.2H45.92V137.76H39.36V131.2ZM78.72 131.2H85.28V137.76H78.72V131.2ZM104.96 131.2H111.52V137.76H104.96V131.2ZM111.52 131.2H118.08V137.76H111.52V131.2ZM118.08 131.2H124.64V137.76H118.08V131.2ZM124.64 131.2H131.2V137.76H124.64V131.2ZM131.2 131.2H137.76V137.76H131.2V131.2ZM137.76 131.2H144.32V137.76H137.76V131.2ZM157.44 131.2H164V137.76H157.44V131.2ZM0 137.76H6.56V144.32H0V137.76ZM13.12 137.76H19.68V144.32H13.12V137.76ZM19.68 137.76H26.24V144.32H19.68V137.76ZM26.24 137.76H32.8V144.32H26.24V137.76ZM39.36 137.76H45.92V144.32H39.36V137.76ZM52.48 137.76H59.04V144.32H52.48V137.76ZM72.16 137.76H78.72V144.32H72.16V137.76ZM78.72 137.76H85.28V144.32H78.72V137.76ZM91.84 137.76H98.4V144.32H91.84V137.76ZM111.52 137.76H118.08V144.32H111.52V137.76ZM118.08 137.76H124.64V144.32H118.08V137.76ZM131.2 137.76H137.76V144.32H131.2V137.76ZM137.76 137.76H144.32V144.32H137.76V137.76ZM144.32 137.76H150.88V144.32H144.32V137.76ZM150.88 137.76H157.44V144.32H150.88V137.76ZM157.44 137.76H164V144.32H157.44V137.76ZM0 144.32H6.56V150.88H0V144.32ZM13.12 144.32H19.68V150.88H13.12V144.32ZM19.68 144.32H26.24V150.88H19.68V144.32ZM26.24 144.32H32.8V150.88H26.24V144.32ZM39.36 144.32H45.92V150.88H39.36V144.32ZM52.48 144.32H59.04V150.88H52.48V144.32ZM59.04 144.32H65.6V150.88H59.04V144.32ZM72.16 144.32H78.72V150.88H72.16V144.32ZM104.96 144.32H111.52V150.88H104.96V144.32ZM111.52 144.32H118.08V150.88H111.52V144.32ZM118.08 144.32H124.64V150.88H118.08V144.32ZM131.2 144.32H137.76V150.88H131.2V144.32ZM144.32 144.32H150.88V150.88H144.32V144.32ZM150.88 144.32H157.44V150.88H150.88V144.32ZM0 150.88H6.56V157.44H0V150.88ZM39.36 150.88H45.92V157.44H39.36V150.88ZM52.48 150.88H59.04V157.44H52.48V150.88ZM59.04 150.88H65.6V157.44H59.04V150.88ZM65.6 150.88H72.16V157.44H65.6V150.88ZM85.28 150.88H91.84V157.44H85.28V150.88ZM91.84 150.88H98.4V157.44H91.84V150.88ZM111.52 150.88H118.08V157.44H111.52V150.88ZM118.08 150.88H124.64V157.44H118.08V150.88ZM131.2 150.88H137.76V157.44H131.2V150.88ZM144.32 150.88H150.88V157.44H144.32V150.88ZM0 157.44H6.56V164H0V157.44ZM6.56 157.44H13.12V164H6.56V157.44ZM13.12 157.44H19.68V164H13.12V157.44ZM19.68 157.44H26.24V164H19.68V157.44ZM26.24 157.44H32.8V164H26.24V157.44ZM32.8 157.44H39.36V164H32.8V157.44ZM39.36 157.44H45.92V164H39.36V157.44ZM52.48 157.44H59.04V164H52.48V157.44ZM59.04 157.44H65.6V164H59.04V157.44ZM65.6 157.44H72.16V164H65.6V157.44ZM72.16 157.44H78.72V164H72.16V157.44ZM78.72 157.44H85.28V164H78.72V157.44ZM85.28 157.44H91.84V164H85.28V157.44ZM91.84 157.44H98.4V164H91.84V157.44ZM118.08 157.44H124.64V164H118.08V157.44ZM124.64 157.44H131.2V164H124.64V157.44ZM131.2 157.44H137.76V164H131.2V157.44ZM137.76 157.44H144.32V164H137.76V157.44ZM144.32 157.44H150.88V164H144.32V157.44ZM150.88 157.44H157.44V164H150.88V157.44ZM157.44 157.44H164V164H157.44V157.44Z\", fill: \"white\" }));\nexport default SvgMobileQr;\n","export default \"__VITE_ASSET__zzTFMrHM__\"","export default \"__VITE_ASSET__B2i5pfT2__\"","export default \"__VITE_ASSET__DWUrayuV__\"","import { FC } from 'react'\n\nimport {\n companyLinks,\n otherLinks,\n partnerLinks,\n policyLinks,\n simplifiedConditionsLink,\n} from 'sections/PromoSection/pages/PromoPage/data'\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Space } from 'components/ui/Space/Space'\nimport { Flex } from 'components/uiKit'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\nimport { AdriverEventType } from 'types/types'\n\nimport { FooterLinksWrapper } from './components/FooterLinksWrapper'\n\nimport MobileLinkQr from 'assets/img/promo-page/mobileQr.svg?react'\nimport rutubeLogo from 'assets/img/promo-page/rutubeLogo.svg'\nimport logo from 'assets/img/promo-page/wb-logo.webp'\nimport youtubeLogo from 'assets/img/promo-page/youtubeLogo.svg'\nimport s from './Footer.module.scss'\n\nexport const Footer: FC = () => {\n const { isMobile, isSTablet, isSDesktop } = useResize()\n\n const handleSocialLinkClick = () => {\n sendAdriverEvent(AdriverEventType.socialIcons)\n }\n\n const appStoresList = !isSTablet && (\n \n \n Мобильное приложение\n \n \n \n )\n\n const footNote = (\n \n © Wildberries 2004-2025. Все права защищены. Применяются рекомендательные технологии\n \n )\n\n const socialIcons = (\n \n \n \"youtube\"\n \n \n \"rutube\"\n \n \n )\n\n const appDownloadButton = (\n \n Скачать приложение\n \n )\n\n return (\n
    \n \n
    \n \n
    \n \"logo\"\n {isSDesktop && socialIcons}\n
    \n\n {isSDesktop && appStoresList}\n
    \n\n
    \n \n {!isSDesktop && appStoresList}\n \n \n \n \n {!isSDesktop && socialIcons}\n
    \n {isSTablet && appDownloadButton}\n
      \n {policyLinks.map((link) => (\n
    • \n \n {link.label}\n \n
    • \n ))}\n
    \n {footNote}\n
    \n
    \n )\n}\n","import { FC } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex } from 'components/uiKit'\nimport { PromoGeRoutesEnum } from 'shared/constants/routes'\nimport { URLS } from 'shared/constants/urls'\n\nimport logo from 'assets/img/promo-page/wb-logo.webp'\nimport s from './FooterNew.module.scss'\n\nexport const FooterNew: FC = () => {\n const { t } = useTranslation()\n const getKey = (key: string) => `${PromoPageKeys.shared}.${key}`\n\n return (\n
    \n \"logo\"\n \n \n {t(getKey('Политика конфиденциальности'))}\n \n \n \n {t(getKey('Приложения'))}\n \n
    \n )\n}\n","import classNames from 'classnames'\nimport { ReactNode } from 'react'\n\nimport s from './SideMenu.module.scss'\n\ntype ISideMenuProps = {\n children: ReactNode\n isOpen?: boolean\n}\n\nexport const SideMenu = ({ children, isOpen }: ISideMenuProps) => {\n return (\n
    \n
      {children}
    \n
    \n )\n}\n","import * as React from \"react\";\nconst SvgBurgerNew = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 44 44\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M37 14H7\", stroke: \"white\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M37 22H7\", stroke: \"white\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M37 30H7\", stroke: \"white\", strokeWidth: 1.5 }));\nexport default SvgBurgerNew;\n","import * as React from \"react\";\nconst SvgCross = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M23.0016 1.00032L1.00195 23\", stroke: \"white\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.9997 23.0002L1 1.00049\", stroke: \"white\", strokeWidth: 1.5 }));\nexport default SvgCross;\n","import * as React from \"react\";\nconst SvgUserAuthIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 15, cy: 9, r: 4, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"ellipse\", { cx: 15, cy: 20, rx: 7, ry: 4, fill: \"currentColor\" }));\nexport default SvgUserAuthIcon;\n","import * as React from \"react\";\nconst SvgUserIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 30 30\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 15, cy: 9, r: 4, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"ellipse\", { cx: 15, cy: 20, rx: 7, ry: 4, fill: \"currentColor\" }));\nexport default SvgUserIcon;\n","import classNames from 'classnames'\nimport { observer } from 'mobx-react-lite'\nimport { FC, useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport {\n companyLinks,\n getHeaderGeItems,\n headerItems,\n home,\n loginGePageLink,\n loginLink,\n openPickPointLink,\n partnerLinks,\n} from 'sections/PromoSection/pages/PromoPage/data'\nimport { MenuItemType, PromoPageKeys } from 'sections/PromoSection/pages/PromoPage/types'\nimport { LangSwitcher, TextPromo } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { Flex } from 'components/uiKit/Flex/Flex'\nimport { sendAdriverEvent } from 'utils/adriver/sendAdriverEvent'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { isLanguage } from 'utils/helpers/i18n/getCurrentLanguage'\nimport { scrollToId } from 'utils/helpers/scrollToId'\nimport { sendEvent } from 'utils/helpers/sendEvent'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { SupportedLanguages } from 'shared/types/types'\nimport { AdriverEventType, EventType } from 'types/types'\n\nimport { SideMenu } from './SideMenu/SideMenu'\n\nimport BurgerIcon from 'assets/icons/burgerNew.svg?react'\nimport CrossIcon from 'assets/icons/cross.svg?react'\nimport LogoIcon from 'assets/icons/logo/logo-new-white.svg?react'\nimport LogoIconGe from 'assets/icons/logo/logo-new-white-ge.svg?react'\nimport UserAuthIcon from 'assets/icons/userAuthIcon.svg?react'\nimport UserIcon from 'assets/icons/userIcon.svg?react'\nimport Arrow from 'assets/img/shared/arrow2.svg?react'\nimport s from './Header.module.scss'\n\nconst HEADER_HEIGHT = 106\n\nexport const Header: FC = observer(() => {\n const { isTablet, isMobile, isSDesktop } = useResize()\n const location = useLocation()\n const navigate = useNavigate()\n const [sideMenuOpened, setSideMenuOpened] = useState(false)\n const [repairMenuOpened, setRepairMenuOpened] = useState(false)\n const [bodyTopPoint, setBodyTopPoint] = useState(0)\n const { t } = useTranslation()\n\n const { appStore } = useStore()\n\n const isSimplifiedPage = location.pathname === PromoRoutesEnum.simplifiedConditions\n\n const getHeaderKey = (key: string) => `${PromoPageKeys.header}.${key}`\n const getSharedKey = (key: string) => `${PromoPageKeys.shared}.${key}`\n\n const isOpenPvzLinkVisible = bodyTopPoint < -HEADER_HEIGHT * 10\n\n const additionalActions = (\n \n {isGeDomain() && !isSDesktop && }\n
  • \n \n isGeDomain() ? handleSelectMenuItem(e, loginGePageLink) : handleSelectMenuItem(e, loginLink)\n }\n >\n {appStore?.user.authenticated ? : }\n \n
  • \n
    \n )\n\n const logoIcon = isLanguage(SupportedLanguages.GE) ? (\n handleSelectMenuItem(e, home)} />\n ) : (\n handleSelectMenuItem(e, home)} />\n )\n\n const headerGeItems = getHeaderGeItems()\n\n const renderRepairMenu = () => (\n
      \n {partnerLinks.map((link) => (\n
    • \n handleSelectMenuItem(e, link)}\n >\n {link.label}\n \n
    • \n ))}\n {companyLinks.map((link) => (\n
    • \n handleSelectMenuItem(e, link)}\n >\n {link.label}\n \n
    • \n ))}\n
    \n )\n\n const openPvzLinkItem = (\n
  • \n {\n appStore?.user.authenticated ? handleSelectMenuItem(e, loginLink) : handleSelectMenuItem(e, openPickPointLink)\n sendAdriverEvent(AdriverEventType.openPVZHeader)\n }}\n >\n {openPickPointLink.label}\n \n
  • \n )\n\n const appsLink = partnerLinks[2]\n\n useEffect(() => {\n if (sideMenuOpened) {\n document.addEventListener('mousedown', handleClickOutside)\n } else {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [sideMenuOpened])\n\n const toggleSideMenu = () => setSideMenuOpened((prev) => !prev)\n const toggleRepairMenu = () => setRepairMenuOpened((prev) => !prev)\n\n const handleSelectMenuItem = (e: React.MouseEvent, link: MenuItemType) => {\n e.preventDefault()\n\n if (link.type === 'anchor') {\n if (isSimplifiedPage && link === openPickPointLink) {\n scrollToId(link.path)\n } else {\n navigate(`/${link.path}`, { replace: false })\n }\n } else if (link.type === 'link') {\n window.open(link.path, '_blank')\n } else {\n navigate(link.path, { replace: false })\n }\n sendEvent(EventType.HeaderT, { name: link.label })\n }\n\n const handleClickOutside = () => {\n if (sideMenuOpened) {\n setSideMenuOpened(false)\n }\n }\n\n const handleScroll = () => {\n const bodyTopPointValue = window.document.body.getBoundingClientRect().top\n setBodyTopPoint(bodyTopPointValue)\n setSideMenuOpened(false)\n setRepairMenuOpened(false)\n }\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll)\n handleScroll()\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n }\n }, [])\n\n const renderLinks = () => {\n return (\n <>\n {isGeDomain() ? (\n headerGeItems.map((link) => (\n
  • \n handleSelectMenuItem(e, link)}>\n {t(getHeaderKey(link.label))}\n \n
  • \n ))\n ) : (\n <>\n {headerItems.map((link) => (\n
  • \n handleSelectMenuItem(e, link)}\n >\n {link.label}\n \n
  • \n ))}\n {!isMobile && !isTablet && !isSDesktop && (\n \n \n Ремонт и оформление \n \n {repairMenuOpened && renderRepairMenu()}\n \n )}\n {isOpenPvzLinkVisible && !sideMenuOpened && openPvzLinkItem}\n \n )}\n {isGeDomain() && (isMobile || isTablet) && (\n
  • \n handleSelectMenuItem(e, appsLink)}\n >\n {t(getSharedKey(appsLink.label))}\n \n
  • \n )}\n \n )\n }\n\n return (\n
    \n {isSDesktop ? (\n \n ) : (\n <>\n {logoIcon}\n \n \n )}\n
    \n )\n})\n","export default \"__VITE_ASSET__DDRBc6x5__\"","export default \"__VITE_ASSET__B0QsP$1$__\"","export default \"__VITE_ASSET__CfuuhauR__\"","export default \"__VITE_ASSET__D3ekf5tY__\"","export default \"__VITE_ASSET__C3LWAI1p__\"","import classNames from 'classnames'\nimport { observer } from 'mobx-react-lite'\nimport { Suspense, useEffect } from 'react'\nimport { Outlet, useLocation } from 'react-router-dom'\n\nimport { useStore } from 'store/useStore'\nimport { updatePageHeight } from 'sections/PromoSection/pages/PromoPage/helpers/updatePageHeight'\nimport { Footer } from 'components/Footer/Footer'\nimport { FooterNew } from 'components/FooterNew/FooterNew'\nimport { Header } from 'components/Header/Header'\nimport { MainLogo } from 'components/MainLogo/MainLogo'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { useResize } from 'utils/hooks/useResize'\nimport { PromoGeRoutesEnum, PromoRoutesEnum } from 'shared/constants/routes'\n\nimport desktopBackground from 'assets/img/promo-page/desktopOverlay.webp'\nimport desktopBackgroundGe from 'assets/img/promo-page/hero-bg-ny-d.webp'\nimport mobileBackgroundGe from 'assets/img/promo-page/hero-bg-ny-m.webp'\nimport tabletBackgroundGe from 'assets/img/promo-page/hero-bg-ny-t.webp'\nimport loginPageBackground from 'assets/img/promo-page/login-page-background-ge.webp'\nimport s from './PromoGeneralLayout.module.scss'\n\nexport const PromoGeneralLayout = observer(() => {\n const { appStore } = useStore()\n\n const { isTablet, isMobile } = useResize()\n const location = useLocation()\n const isHomePage = location.pathname === PromoRoutesEnum.root\n const isGeLoginPage = location.pathname === PromoGeRoutesEnum.login\n\n const backgroundUrl = getBackgroundUrl()\n\n const layoutClassName = classNames({\n [s.PromoGeneralLayout]: isHomePage,\n [s.PromoGeneralLayoutLoginPage]: !isHomePage && isGeLoginPage,\n [s.PromoSidePageLayout]: !isHomePage && !isGeLoginPage,\n })\n\n const layoutStyles =\n isHomePage || isGeLoginPage\n ? {\n backgroundImage: `url(${backgroundUrl})`,\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'top center',\n }\n : undefined\n\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [])\n\n useEffect(() => {\n updatePageHeight()\n\n window.addEventListener('resize', updatePageHeight)\n\n return () => {\n window.removeEventListener('resize', updatePageHeight)\n }\n }, [])\n\n useEffect(() => {\n updatePageHeight()\n }, [location.pathname])\n\n useAsyncEffect(async () => {\n appStore.setLoadingApp(true)\n\n await appStore.bootstrap()\n\n setTimeout(() => {\n appStore.setLoadingApp(false)\n }, 500)\n }, [])\n\n function getBackgroundUrl() {\n if (isGeLoginPage) {\n return loginPageBackground\n }\n if (isGeDomain()) {\n if (isMobile) {\n return mobileBackgroundGe\n }\n if (isTablet) {\n return tabletBackgroundGe\n }\n return desktopBackgroundGe\n }\n }\n\n return (\n
    \n {!isGeDomain() &&
    }\n
    \n }>\n \n \n {isGeDomain() ? isTablet || isMobile ? null : :
    }\n
    \n )\n})\n","import { FC } from 'react'\nimport { useTranslation } from 'react-i18next'\n\nimport { OpenPickPointForm } from 'sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/OpenPickPointForm'\nimport { TextPromo } from 'components/ui'\nimport { Title } from 'components/ui/Title/Title'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { PromoPageKeys } from '../../../types'\n\nimport s from './LoginPageGe.module.scss'\n\nexport const LoginPageGe: FC = () => {\n const { isDesktop, isMobile } = useResize()\n const { t } = useTranslation()\n \n const getKey = (key: string) => `${PromoPageKeys.loginPage}.${key}`\n\n return (\n
    \n
    \n \n {t(getKey('Добро пожаловать'))}\n \n \n {t(getKey('Зарегистрируйтесь, чтобы подать заявку'), { nbsp: '\\u00A0' })}\n \n
    \n
    \n \n
    \n
    \n )\n}\n","import { FC, useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { scrollToId } from 'utils/helpers/scrollToId'\n\nimport { Hero } from '../Sections/Hero/Hero'\nimport { OpeningStepsSection } from './Sections/OpeningSteps/OpeningStepsSection'\nimport { stepsData } from './data'\n\nimport s from './PromoPageGe.module.scss'\n\nexport const PromoPageGe: FC = () => {\n const location = useLocation()\n\n useEffect(() => {\n if (location.hash) {\n setTimeout(() => {\n scrollToId(location.hash)\n }, 100)\n }\n }, [location])\n\n return (\n
    \n \n
    \n \n
    \n \n
    \n )\n}\n","import { CSSObjectWithLabel, StylesConfig } from 'react-select'\n\ntype PositionType = 'absolute' | 'relative' | 'fixed' | 'static' | 'sticky'\n\nexport interface CustomStyles {\n control?: CSSObjectWithLabel\n menu?: Partial\n option?: CSSObjectWithLabel\n}\n\nexport const inputCustomStyles = (customStyles?: CustomStyles): StylesConfig => ({\n control: () => ({\n backgroundColor: 'white',\n padding: 0,\n display: 'flex',\n position: 'relative',\n cursor: 'pointer',\n ...customStyles?.control,\n }),\n menu: (style) => ({\n ...style,\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: 16,\n padding: 16,\n overflow: 'hidden',\n /* RomanTikhonov_1 убрать important*/\n border: '1px solid black !important',\n zIndex: '1',\n top: 78,\n left: -1,\n width: 'calc(100% + 2px)',\n height: 350,\n overflowY: 'scroll',\n pointerEvents: 'auto',\n '#react-select-2-listbox': {\n overflow: 'visible',\n },\n ...customStyles?.menu,\n }),\n option: (style, { isSelected, isFocused }) => {\n return {\n ...style,\n backgroundColor: isFocused ? '#F0F0F3' : 'white',\n color: '#000',\n borderRadius: 8,\n padding: 16,\n height: '100%',\n zINdex: 11111,\n cursor: 'pointer',\n position: 'relative',\n '&::before': isSelected\n ? {\n content: '\"\"',\n position: 'absolute',\n right: 18,\n top: 16,\n width: 24,\n height: 14,\n border: '3px solid green',\n transform: 'rotate(317deg)',\n borderRight: 'none',\n borderTop: 'none',\n }\n : {},\n '&:active': {\n backgroundColor: '#C0C5CF',\n },\n ...customStyles?.option,\n }\n },\n})\n","export const privacyPolicy = {\n title: 'Политика в отношении обработки персональных данных работников и контрагентов ООО «РВБ»',\n sections: [\n {\n title: '1. Общие положения',\n content: [\n {\n section: '1.1',\n text: 'Настоящая Политика в отношении обработки персональных данных (далее — Политика) разработана в соответствии с Федеральным законом Российской Федерации № 152 — ФЗ от 27 июля 2006 года «О персональных данных», Трудовым Кодексом Российской Федерации, Гражданским Кодексом Российской Федерации и иными положениями российского законодательства.',\n },\n {\n section: '1.2',\n text: 'Цель разработки Политики — определение подходов ООО «РВБ» (142181, Московская область, г.о. Подольск, д. Коледино, тер. Индустриальный Парк Коледино, д.6, строение 1, ИНН: 9714053621) (далее — Общество) в отношении обработки персональных данных Субъектов персональных данных, указанных в пп. 4.1.1–4.1.4. Политики.',\n },\n {\n section: '1.3',\n text: 'Действие Политики распространяется на все персональные данные Субъектов персональных данных, указанных в п. пп. 4.1.1–4.1.4. Политики, обрабатываемые в Обществе с применением средств автоматизации и без применения таких средств.',\n },\n {\n section: '1.4',\n text: 'Локальными нормативными актами Общества могут быть установлены особенности обработки персональных данных Работников, в том числе уточняющие и детализирующие особенности обработки персональных данных в рамках трудовых отношений, цели, состав и объём обработки, а также права и обязанности Субъектов в целях соблюдения норм трудового законодательства.',\n },\n {\n section: '1.5',\n text: 'Политика является общедоступным для Субъектов персональных данных документом, ознакомление с которым возможно в бумажном или электронном виде, в том числе посредством корпоративных информационных ресурсов. В случае противоречия общедоступная версия Политики имеет приоритет.',\n },\n {\n section: '1.6',\n text: 'Обработка персональных данных Субъекта персональных данных осуществляется с согласия Субъекта персональных данных на обработку его персональных данных, а также без получения согласия в случаях, предусмотренных законодательством Российской Федерации.',\n },\n {\n section: '1.7',\n text: 'Настоящая Политика вступает в силу с момента её утверждения и действует бессрочно, до замены её новой Политикой.',\n },\n {\n section: '1.8',\n text: 'Настоящая Политика распространяется на персональные данные, полученные как до, так и после ввода в действие настоящей Политики.',\n },\n {\n section: '1.9',\n text: 'Внутренний контроль за исполнением требований Политики осуществляется лицом, ответственным за организацию обработки персональных данных в Обществе.',\n },\n {\n section: '1.10',\n text: 'В Политике применяются следующие термины:',\n subSections: [\n {\n section: '1.10.1',\n text: 'Автоматизированная обработка персональных данных — обработка персональных данных с помощью средств вычислительной техники.',\n },\n {\n section: '1.10.2',\n text: 'Блокирование — временное прекращение обработки персональных данных (за исключением случаев, если обработка необходима для уточнения персональных данных).',\n },\n {\n section: '1.10.3',\n text: 'Безопасность персональных данных — состояние защищённости персональных данных, характеризуемое способностью пользователей информационных систем персональных данных, оператора персональных данных, технических средств и информационных технологий обеспечить конфиденциальность, целостность и доступность персональных данных при их обработке в информационных системах персональных данных.',\n },\n {\n section: '1.10.4',\n text: 'Биометрические персональные данные — данные, которые характеризуют физиологические и биологические особенности человека, на основании которых можно установить его личность.',\n },\n {\n section: '1.10.5',\n text: 'Закон — федеральный закон Российской Федерации № 152-ФЗ от 27 июля 2006 года «О персональных данных».',\n },\n {\n section: '1.10.6',\n text: 'Обработка персональных данных — любое действие (операция) или совокупность действий (операций), совершаемых с использованием средств автоматизации или без использования таких средств с персональными данными, а также путём смешанной обработки, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (распространение, предоставление, доступ), обезличивание, блокирование, удаление, уничтожение персональных данных.',\n },\n {\n section: '1.10.7',\n text: 'Общество — ООО «РВБ».',\n },\n {\n section: '1.10.8',\n text: 'Оператор — лицо, самостоятельно или совместно с иными лицами организующее и (или) осуществляющее обработку персональных данных, а также определяющие цели обработки персональных данных, состав персональных данных, подлежащих обработке, действия (операции), совершаемые с персональными данными. Для целей настоящей Политики Общество, обрабатывая персональные данные, является оператором, если иное прямо не указано в Политике.',\n },\n {\n section: '1.10.9',\n text: 'Персональные данные — любая информация, относящаяся к прямо или косвенно определённому или определяемому физическому лицу (субъекту персональных данных).',\n },\n {\n section: '1.10.10',\n text: 'Предоставление — действия, направленные на раскрытие персональных данных определённому лицу или определённому кругу лиц.',\n },\n {\n section: '1.10.11',\n text: 'Работник — физическое лицо, вступившее с Обществом в трудовые отношения.',\n },\n {\n section: '1.10.12',\n text: 'Контрагент — юридическое или физическое лицо, с которым Общество потенциально заключит или заключило договор, в том числе исполнитель по гражданско-правовому договору с Обществом (физическое лицо).',\n },\n {\n section: '1.10.13',\n text: 'Специальные категории персональных данных — сведения касающиеся расовой, национальной принадлежности, политических взглядов, религиозных или философских убеждений, состояния здоровья, интимной жизни, судимости.',\n },\n {\n section: '1.10.14',\n text: 'Субъекты персональных данных — физические лица, указанные в пп. 4.1.1–4.1.4. Политики, прямо или косвенно определённые, или определяемые на основании относящихся к ним персональных данных.',\n },\n {\n section: '1.10.15',\n text: 'Уничтожение персональных данных — действия, в результате которых становится невозможным восстановить содержание персональных данных в информационной системе персональных данных и (или) в результате которых уничтожаются материальные носители персональных данных.',\n },\n {\n section: '1.10.16',\n text: 'Сайт — информационный ресурс Общества в сети «Интернет», доступ к которому осуществляется по доменному имени «*.wb.ru», «*.wildberries.ru», либо с использованием мобильного приложения Общества.',\n },\n ],\n },\n {\n section: '1.11',\n text: 'Иные термины, не упомянутые выше, используются в значении, установленном нормативными правовыми актами Российской Федерации.',\n },\n ],\n },\n {\n title: '2. Цели обработки персональных данных',\n content: [\n {\n section: '2.1',\n text: 'Обработка персональных данных Обществом осуществляется в следующих целях:',\n subSections: [\n {\n section: '2.1.1',\n text: 'Оформление и регулирование трудовых отношений Общества с Субъектами персональных данных и иных непосредственно связанных с ними отношений, в том числе для исполнения обязательств и реализации прав сторон в рамках трудовых договоров между ними, для расчёта и выплаты заработной платы, добровольного медицинского страхования, получения Субъектами персональных данных предусмотренных гарантий, льгот.',\n },\n {\n section: '2.1.2',\n text: 'Преддоговорное взаимодействие, заключение и исполнение договоров гражданско-правового характера; взаимодействие с Субъектами персональных данных — Контрагентом и / или представителями Контрагента по гражданско-правовым договорам в соответствии с законодательством РФ, уставом Общества, внутренними документами и локальными нормативными актами Общества.',\n },\n {\n section: '2.1.3',\n text: 'Исполнение Обществом требований законодательства Российской Федерации, включая осуществление хозяйственной деятельности как юридического лица, направление соответствующих сведений в государственные органы, исполнение требований и предписаний государственных органов, исполнение судебных актов, рассмотрение претензий и обращений субъектов персональных данных, направленных посредством электронной почты, или письменного запроса по адресам Общества, указанным в п. п. 6.18., 6.19. Политики, а также реализация Обществом прав и полномочий, предусмотренных законодательством.',\n },\n {\n section: '2.1.4',\n text: 'Обеспечение безопасности Субъектов персональных данных на территории Общества, обеспечения сохранности имущества Субъектов персональных данных, Общества и третьих лиц; обеспечение пропускного режима на территорию Общества.',\n },\n {\n section: '2.1.5',\n text: 'Подбор персонала с целью замещения вакантных должностей в Обществе.',\n },\n {\n section: '2.1.6',\n text: 'Включение в кадровый резерв, в том числе с последующим направлением информации об открытых вакансиях и карьерных мероприятиях.',\n },\n {\n section: '2.1.7',\n text: 'Организационно-техническое обеспечение трудовых отношений и хозяйственной деятельности Общества.',\n },\n ],\n },\n ],\n },\n {\n title: '3. Правовые основания обработки персональных данных',\n content: [\n {\n section: '3.1',\n text: 'Обработка персональных данных осуществляется Обществом в следующих случаях:',\n subSections: [\n {\n section: '3.1.1',\n text: 'Обработка персональных данных осуществляется с согласия¹ Субъекта персональных данных на обработку его персональных данных, в том числе в случаях, когда обязанность по получению такого согласия возложена на третье лицо.',\n },\n {\n section: '3.1.2',\n text: 'Обработка персональных данных необходима для достижения целей, предусмотренных международным договором Российской Федерации или законом, для осуществления и выполнения возложенных законодательством Российской Федерации на оператора функций, полномочий и обязанностей.',\n },\n {\n section: '3.1.3',\n text: 'Обработка персональных данных осуществляется в связи с участием лица в конституционном, гражданском, административном, уголовном судопроизводстве, судопроизводстве в арбитражных судах.',\n },\n {\n section: '3.1.4',\n text: 'Обработка персональных данных необходима для исполнения судебного акта, акта другого органа или должностного лица, подлежащих исполнению в соответствии с законодательством Российской Федерации об исполнительном производстве.',\n },\n {\n section: '3.1.5',\n text: 'Обработка персональных данных необходима для исполнения договора, стороной которого либо выгодоприобретателем или поручителем по которому является Субъект персональных данных, а также для заключения договора по инициативе Субъекта персональных данных или договора, по которому Субъект персональных данных будет являться выгодоприобретателем или поручителем. Заключаемый с Субъектом персональных данных договор не может содержать положения, ограничивающие права и свободы Субъекта персональных данных.',\n },\n {\n section: '3.1.6',\n text: 'Обработка персональных данных необходима для защиты жизни, здоровья или иных жизненно важных интересов Субъекта персональных данных, если получение согласия Субъекта персональных данных невозможно.',\n },\n {\n section: '3.1.7',\n text: 'Обработка персональных данных необходима для осуществления прав и законных интересов оператора или третьих лиц при условии, что при этом не нарушаются права и свободы Субъекта персональных данных.',\n },\n {\n section: '3.1.8',\n text: 'В иных случаях, предусмотренных законодательством в области персональных данных.',\n },\n ],\n },\n ],\n },\n {\n title: '4. Категории обрабатываемых персональных данных, категории субъектов персональных данных',\n content: [\n {\n section: '4.1',\n text: 'Общество осуществляет обработку персональных данных следующих категорий Субъектов персональных данных:',\n subSections: [\n {\n section: '4.1.1',\n text: 'Физические лица, состоящие (состоявшие) в трудовых отношениях с Обществом, их близкие родственники, – в соответствии с целями обработки, указанными в п. п. 2.1.1, 2.1.3, 2.1.4, 2.1.6, 2.1.7.',\n },\n {\n section: '4.1.2',\n text: 'Представители (контактные лица, подписанты) Контрагентов по гражданско-правовым договорам с Обществом — в соответствии с целями обработки, указанными в п. п. 2.1.2., 2.1.3, 2.1.4.',\n },\n {\n section: '4.1.3',\n text: 'Контрагенты и их представители — в соответствии с целями обработки, указанными в п. п. 2.1.2., 2.1.3, 2.1.4, 2.1.7.',\n },\n {\n section: '4.1.4',\n text: 'Соискатели на замещение вакантных должностей в Обществе — в соответствии с целями обработки, указанными в п. п. 2.1.3., 2.1.4, 2.1.5, 2.1.6.',\n },\n ],\n },\n {\n section: '4.2',\n text: 'Общество обрабатывает персональные данные в следующем объёме:',\n subSections: [\n {\n section: '4.2.1',\n text: 'В рамках достижения целей, указанных в п. 2.1.1 Политики — гражданство; Ф.И.О.; пол; дата рождения; данные документов, удостоверяющих личность; адрес места жительства, адрес регистрации; номер телефона; адрес электронной почты; сведения (данные документов) об образовании, должности, квалификации, профессиональной подготовке; адрес страницы в социальной сети; сведения о повышении квалификации и иные аналогичные данные; семейное положение; сведения о воинском учёте и сведения, содержащиеся в документах воинского учёта; сведения, содержащиеся в трудовой книжке, сведения о трудовом стаже, предыдущих местах работы; СНИЛС; ИНН; банковские реквизиты; информация о приёме, переводе, увольнении и иных событиях, относящихся к трудовой деятельности Работника у Общества; доходы; идентификатор пользователя сайта; свидетельство о перемене имени; свидетельство о перемене фамилии; свидетельство о перемене отчества; свидетельство о расторжении брака; свидетельство о заключении брака; данные водительского удостоверения; реквизиты полиса добровольного медицинского страхования; данные документов, подтверждающих право на получение льготы; сведения о временной нетрудоспособности, иные данные, обработка которых осуществляется при реализации трудовых отношений.',\n },\n {\n section: '4.2.2',\n text: 'В рамках достижения цели, указанной в п. 2.1.2 в отношении Субъектов персональных данных, указанных в п. 4.1.2. Политики — Ф.И.О.; должность; номер телефона; адрес электронной почты, данные, содержащиеся в доверенности (когда требуется её предъявление).',\n },\n {\n section: '4.2.3',\n text: 'В рамках достижения цели, указанной в п. 2.1.2 Политики в отношении субъектов персональных данных, указанных в п. 4.1.3. Политики — гражданство; Ф.И.О.; пол; дата рождения; данные документов, удостоверяющих личность; должность; адрес места жительства, адрес регистрации; номер телефона; адрес электронной почты; ИНН; СНИЛС; идентификатор пользователя сайта; размер вознаграждения по договору; банковские реквизиты; данные водительского удостоверения; информация о местоположении.',\n },\n {\n section: '4.2.4',\n text: 'В рамках достижения целей, указанных в п. 2.1.3 Политики — гражданство; Ф.И.О.; доходы; СНИЛС; ИНН; пол; дата рождения; данные документов, удостоверяющих личность; должность; профессия; сведения об образовании, квалификации, профессиональной подготовке, сведения о повышении квалификации; адрес места жительства; адрес регистрации; контактная информация (номер телефона, адрес электронной почты); банковские реквизиты; идентификатор пользователя сайта; семейное положение; сведения о воинском учёте и сведения, содержащиеся в документах воинского учёта; сведения о трудовой деятельности; записи телефонных разговоров; в отношении близких родственников Работников — степень родства, ФИО, год рождения.',\n },\n {\n section: '4.2.5',\n text: 'В рамках достижения цели, указанной в п. 2.1.4 Политики — Ф.И.О.: данные документа, удостоверяющих личность, фото — и / или видеоизображения (опционально, без цели проведения идентификации).',\n },\n {\n section: '4.2.6',\n text: 'В рамках достижения цели, указанной в п. 2.1.5 Политики — Ф.И.О.; дата рождения; номер телефона; адрес электронной почты; сведения об образовании, квалификации, о повышении квалификации, профессиональной подготовке; сведения, содержащиеся в трудовой книжке; адрес страницы в социальной сети.',\n },\n {\n section: '4.2.7',\n text: 'В рамках достижения цели, указанной в п. 2.1.6 Политики — Ф.И.О.; дата рождения; номер телефона; адрес электронной почты; сведения об образовании, квалификации, о повышении квалификации, профессиональной подготовке; сведения, содержащиеся в трудовой книжке; адрес страницы в социальной сети; сведения о доходах в Обществе (при наличии), сведения о приёме, переводе, увольнении и иных событиях, относящихся к трудовой деятельности в Обществе (при наличии).',\n },\n {\n section: '4.2.8',\n text: 'В рамках достижения цели, указанной в п. 2.1.7 Политики — Ф.И.О., дата рождения, номер телефона, адрес электронной почты, фото (опционально), идентификатор в корпоративном справочнике, адреса страниц в социальных сетях (опционально), данные документа, удостоверяющего личность.',\n },\n ],\n },\n {\n section: '4.3',\n text: 'Общество не осуществляет обработку специальных категорий персональных данных и биометрических персональных данных за исключением случаев, когда обработка персональных данных обусловлена текущими задачами бизнеса, при обязательном согласии Субъекта персональных данных на обработку персональных данных, или является необходимой в соответствии с требованиями законодательства Российской Федерации.',\n },\n ],\n },\n {\n title: '5. Порядок и условия обработки персональных данных',\n content: [\n {\n section: '5.1',\n text: 'Общество осуществляет обработку персональных данных с использованием средств автоматизации и без использования средств автоматизации, а также смешанную обработку, включая сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передачу (предоставление, доступ), блокирование, удаление, уничтожение персональных данных в сроки, необходимые для достижения целей обработки персональных данных.',\n },\n {\n section: '5.2',\n text: 'Общество осуществляет обработку персональных данных в минимально необходимом объёме, только в случаях, когда такая обработка обусловлена достижением конкретных целей, и в полном соответствии с требованиями российского законодательства в области персональных данных.',\n },\n {\n section: '5.3',\n text: 'Общество вправе поручить обработку персональных данных третьим лицам — обработчикам — на основании заключаемых с этими лицами договоров или соглашений, и с согласия Субъекта персональных данных, если иное не предусмотрено законом. В случае если Общество поручает обработку персональных данных другому лицу, ответственность перед Субъектом персональных данных за действия указанного лица несёт Общество. Лицо, осуществляющее обработку персональных данных по поручению Общества, несёт ответственность за безопасность персональных данных и выполнение требований Закона перед Обществом. Обработчик не обязан получать Согласие Субъекта персональных данных на обработку его персональных данных.',\n },\n {\n section: '5.4',\n text: 'Лица, осуществляющие обработку персональных данных на основании заключаемого с Обществом договора (поручения оператора), обязуются соблюдать принципы, правила обработки и защиты персональных данных, предусмотренные законодательством.',\n },\n {\n section: '5.5',\n text: 'Общество вправе поручить обработку персональных данных, либо осуществить передачу персональных данных, указанных в пп. 4.2.1. — 4.2.8. Политики, третьим лицам исключительно при наличии надлежащих оснований обработки, а также при условии, что данные будут передаваться в объёме, минимально необходимом для достижения указанных целей, и третьи лица примут меры, направленные на соблюдение требований по обеспечению безопасности персональных данных для достижения следующих целей:',\n subSections: [\n {\n section: '5.5.1',\n text: 'Соблюдение Обществом установленных законодательством обязательств.',\n },\n {\n section: '5.5.2',\n text: 'Обработка и подготовка ответов на обращения Субъектов персональных данных.',\n },\n {\n section: '5.5.3',\n text: 'Участие в судопроизводстве.',\n },\n {\n section: '5.5.4',\n text: 'Обеспечение законных интересов Оператора в случае, если такая обработка не оказывает существенного влияния на интересы Субъекта персональных данных, его права и свободы.',\n },\n {\n section: '5.5.5',\n text: 'Оформление полисов добровольного медицинского страхования.',\n },\n {\n section: '5.5.6',\n text: 'Обеспечение защиты личной безопасности Работников и Контрагентов и информационных ресурсов Общества.',\n },\n ],\n },\n {\n section: '5.6',\n text: 'В соответствии с п. 5.5. Политики, поручение обработки и передача персональных данных осуществляются на основании договоров, заключаемых Обществом со следующими третьими лицами: юридические лица, предоставляющие услуги Обществу, в том числе по обеспечению безопасности, юридические лица (арендодатели), медицинские организации, осуществляющие медицинское обслуживание, страховые компании. Поручение обработки и передача персональных данных осуществляются, в частности, в случаях, предусмотренных договорами, по которым Субъект персональных данных является стороной, выгодоприобретателем или поручителем.',\n },\n {\n section: '5.7',\n text: 'Общество обязуется и обязывает иных лиц, получивших доступ к персональным данным, не раскрывать третьим лицам и не распространять персональные данные без согласия Субъекта персональных данных, если иное не предусмотрено законодательством Российской Федерации.',\n },\n {\n section: '5.8',\n text: 'Представители уполномоченных органов власти (в том числе, контролирующих, надзорных, правоохранительных, дознания и следствия) получают доступ к персональным данным, обрабатываемым в Обществе, в объёме и порядке, установленном законодательством Российской Федерации.',\n },\n {\n section: '5.9',\n text: 'В помещениях, на законном основании принадлежащих Обществу может осуществляться видеофиксация. Видеофиксация осуществляется с целью обеспечения сохранности товарно-материальных ценностей, обеспечения безопасности персонала на рабочих местах, контроля за соблюдением техники безопасности в помещении и документальной фиксации возможных противоправных действий.',\n },\n {\n section: '5.10',\n text: 'Согласие на обработку персональных данных Субъекта персональных данных действует в течение срока, указанного в согласии, исходя из целей обработки, осуществляемой на основании согласия, если оно не будет отозвано ранее путём направления письменного заявления, а также если цель обработки не будет достигнута ранее или утратит актуальность.',\n },\n {\n section: '5.11',\n text: 'Общество принимает необходимые правовые, организационные и технические меры для защиты персональных данных от неправомерного или случайного доступа к ним, уничтожения, изменения, блокирования, копирования, предоставления, распространения персональных данных, а также от иных неправомерных действий в отношении персональных данных в соответствии с требованиями законодательства Российской Федерации и внутренними документами. Обеспечение безопасности персональных данных и выполнение Обществом обязанностей, в соответствии с Законом достигается, в том числе:',\n },\n {\n section: '5.12',\n text: 'Определением угроз безопасности персональных данных при их обработке в информационных системах персональных данных.',\n },\n {\n section: '5.13',\n text: 'Применением организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных, необходимых для выполнения требований по защите персональных данных, исполнение которых обеспечивает установленные Правительством Российской Федерации уровни защищённости персональных данных.',\n },\n {\n section: '5.14',\n text: 'Оценкой эффективности принимаемых мер по обеспечению безопасности персональных данных до ввода в эксплуатацию информационной системы персональных данных.',\n },\n {\n section: '5.15',\n text: 'Назначением лица, ответственного за организацию обработки персональных данных.',\n },\n {\n section: '5.16',\n text: 'Изданием Обществом документов, определяющих политику Общества в отношении обработки персональных данных, локальных актов по вопросам обработки персональных данных, определяющих для каждой цели обработки персональных данных категории и перечень обрабатываемых персональных данных, категории Субъектов, персональные данные которых обрабатываются, способы, сроки их обработки и хранения, порядок уничтожения персональных данных при достижении целей их обработки или при наступлении иных законных оснований, а также локальных актов, устанавливающих процедуры, направленные на предотвращение и выявление нарушений законодательства Российской Федерации, устранение последствий таких нарушений. Такие документы и локальные акты не могут содержать положения, ограничивающие права Субъектов персональных данных, а также возлагающие на Общество не предусмотренные законодательством Российской Федерации полномочия и обязанности.',\n },\n {\n section: '5.17',\n text: 'Осуществлением внутреннего контроля и (или) аудита соответствия обработки персональных данных Закону и принятым в соответствии с ним нормативным правовым актам, требованиям к защите персональных данных, политику Общества в отношении обработки персональных данных, внутренним документам Общества.',\n },\n {\n section: '5.18',\n text: 'Ознакомлением Работников Общества, непосредственно осуществляющих обработку персональных данных, с положениями законодательства Российской Федерации о персональных данных, в том числе требованиями к защите персональных данных, документами, определяющими политику Общества в отношении обработки персональных данных, локальными актами по вопросам обработки персональных данных, и (или) обучение указанных Работников.',\n },\n {\n section: '5.19',\n text: 'Оценка вреда в соответствии с требованиями, установленными уполномоченным органом по защите прав Субъектов персональных данных, который может быть причинен Субъектам персональных данных в случае нарушения настоящего Федерального закона, соотношение указанного вреда и принимаемых оператором мер, направленных на обеспечение выполнения обязанностей, предусмотренных настоящим Федеральным законом.',\n },\n {\n section: '5.20',\n text: 'Обнаружением фактов несанкционированного доступа к персональным данным и принятием мер, в том числе мер по обнаружению, предупреждению и ликвидации последствий компьютерных атак на информационные системы персональных данных и по реагированию на компьютерные инциденты в них.',\n },\n {\n section: '5.21',\n text: 'Контролем за принимаемыми мерами по обеспечению безопасности персональных данных и уровня защищённости информационных систем персональных данных.',\n },\n {\n section: '5.22',\n text: 'Общество прекращает обработку персональных данных и уничтожает их в случаях:',\n subSections: [\n {\n section: '5.22.1',\n text: 'ликвидации Общества;',\n },\n {\n section: '5.22.2',\n text: 'реорганизации Общества, влекущей прекращение его деятельности;',\n },\n {\n section: '5.22.3',\n text: 'прекращения правовых оснований обработки персональных данных и/или достижения целей обработки персональных данных;',\n },\n {\n section: '5.22.4',\n text: 'отзыва согласия Субъекта персональных данных на обработку персональных данных.',\n },\n ],\n },\n {\n section: '5.23',\n text: 'Хранение персональных данных осуществляется Обществом в форме, позволяющей определить Субъекта персональных данных не дольше, чем этого требуют цели обработки персональных данных. Хранение персональных данных лиц, не являющихся Работниками Общества осуществляется в течении трёх лет с момента прекращения договорных отношений, если иное не установлено договором или согласием на обработку персональных данных. После прекращения трудовых отношений обработка персональных данных осуществляется в целях хранения первичных учётных документов, документов кадрового и бухгалтерского учёта, а также в целях соблюдения Обществом законодательства, определяющего обязанность хранения и предоставления сведений и документов в отношении физических лиц, трудовые отношения с которыми прекращены.',\n },\n {\n section: '5.24',\n text: 'Сроки хранения документов в Обществе и, соответственно, сроки обработки персональных данных, содержащихся в таких документах, определяются сроками хранения документов в соответствии с законодательством Российской Федерации.',\n },\n {\n section: '5.25',\n text: 'При сборе персональных данных оператор обеспечивает запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение персональных данных граждан Российской Федерации с использованием баз данных, находящихся на территории Российской Федерации, в соответствии с ч. 5 ст. 18 Закона.',\n },\n {\n section: '5.26',\n text: 'Трансграничная передача персональных данных осуществляется для достижения цели, указанной в п. 2.1.7, в том числе при создании и использовании корпоративных справочников (порталов), в рамках ведения преддоговорного взаимодействия и для заключения, исполнения и прекращения договорных правоотношений, а также при организации командировок. Такая передача осуществляется Обществом при условии уведомления Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзора) в соответствии со ст. 22 Закона и при наличии правового основания обработки персональных данных.',\n },\n {\n section: '5.27',\n text: 'Порядок уничтожения персональных данных на носителях, содержащих персональные данные, в том числе внешних/съёмных электронных носителях, бумажных носителях и в информационных системах персональных данных, разрабатывается в соответствии с Приказом Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций от 28 октября 2022 г. № 179 «Об утверждении Требований к подтверждению уничтожения персональных данных» и закрепляется в Правилах по уничтожению и обезличиванию персональных данных Общества.',\n },\n ],\n },\n {\n title: '6. Ответы на запросы субъектов на доступ к персональным данным',\n content: [\n {\n section: '6.1',\n text: 'При сборе персональных данных Общество обязано предоставить Субъекту персональных данных по его просьбе информацию, предусмотренную частью 7 статьи 14 Закона.',\n },\n {\n section: '6.2',\n text: 'Субъект персональных данных вправе требовать от Общества уточнения его персональных данных, их блокирования или уничтожения в случае, если персональные данные являются неполными, устаревшими, неточными, незаконно полученными или не являются необходимыми для заявленной цели обработки, а также принимать предусмотренные Законом меры по защите своих прав.',\n },\n {\n section: '6.3',\n text: 'Субъект персональных данных имеет право обратиться в Общество с требованием прекратить передачу (распространение, предоставление, доступ) своих персональных данных, ранее разрешённых Субъектом персональных данных для распространения, в случае несоблюдения положений статьи 10.1 Закона или обратиться с таким требованием в суд. Общество обязано прекратить передачу (распространение, предоставление, доступ) персональных данных в течение трёх рабочих дней с момента получения требования Субъекта персональных данных или в срок, указанный во вступившем в законную силу решении суда, а если такой срок в решении суда не указан, то в течение трёх рабочих дней с момента вступления решения суда в законную силу.',\n },\n {\n section: '6.4',\n text: 'Субъект персональных данных вправе обжаловать действия или бездействие Общества в Роскомнадзор или в судебном порядке в случае, если Субъект персональных данных считает, что Общество осуществляет обработку его персональных данных с нарушением требований Закона или иным образом нарушает его права и свободы.',\n },\n {\n section: '6.5',\n text: 'Если в соответствии с федеральным законом предоставление персональных данных и (или) получение Обществом согласия на обработку персональных данных являются обязательными, Общество обязано разъяснить Субъекту персональных данных юридические последствия отказа предоставить его персональные данные и (или) дать согласие на их обработку.',\n },\n {\n section: '6.6',\n text: 'В случае выявления неправомерной обработки персональных данных при обращении Субъекта персональных данных или его представителя либо по запросу Субъекта персональных данных или его представителя либо уполномоченного органа по защите прав Субъектов персональных данных оператор обязан осуществить блокирование неправомерно обрабатываемых персональных данных, относящихся к этому Субъекту персональных данных, или обеспечить их блокирование (если обработка персональных данных осуществляется другим лицом, действующим по поручению оператора) с момента такого обращения или получения указанного запроса на период проверки.',\n },\n {\n section: '6.7',\n text: 'В случае выявления неточных персональных данных при обращении Субъекта персональных данных или его представителя либо по их запросу или по запросу уполномоченного органа по защите прав Субъектов персональных данных оператор обязан осуществить блокирование персональных данных, относящихся к этому Субъекту персональных данных, или обеспечить их блокирование (если обработка персональных данных осуществляется другим лицом, действующим по поручению оператора) с момента такого обращения или получения указанного запроса на период проверки, если блокирование персональных данных не нарушает права и законные интересы Субъекта персональных данных или третьих лиц.',\n },\n {\n section: '6.8',\n text: 'В случае подтверждения факта неточности персональных данных Общество на основании сведений, представленных Субъектом персональных данных или его представителем либо уполномоченным органом по защите прав Субъектов персональных данных, или иных необходимых документов обязано уточнить персональные данные либо обеспечить их уточнение (если обработка персональных данных осуществляется другим лицом, действующим по поручению оператора) в течение семи рабочих дней со дня представления таких сведений и снять блокирование персональных данных.',\n },\n {\n section: '6.9',\n text: 'В случае достижения цели обработки персональных данных Общество обязано прекратить обработку персональных данных или обеспечить её прекращение (если обработка персональных данных осуществляется другим лицом, действующим по поручению оператора) и уничтожить персональные данные или обеспечить их уничтожение (если обработка персональных данных осуществляется другим лицом, действующим по поручению Общества) в срок, не превышающий тридцати дней с даты достижения цели обработки персональных данных, если иное не предусмотрено договором, стороной которого, выгодоприобретателем или поручителем по которому является Субъект персональных данных, иным соглашением между Обществом и Субъектом персональных данных либо если Общество не вправе осуществлять обработку персональных данных без согласия Субъекта персональных данных на основаниях, предусмотренных Законом или другими федеральными законами.',\n },\n {\n section: '6.10',\n text: 'В случае отзыва Субъектом персональных данных согласия на обработку его персональных данных Общество обязано прекратить их обработку или обеспечить прекращение такой обработки (если обработка персональных данных осуществляется другим лицом, действующим по поручению Общества) и в случае, если сохранение персональных данных более не требуется для целей обработки персональных данных, уничтожить персональные данные или обеспечить их уничтожение (если обработка персональных данных осуществляется другим лицом, действующим по поручению Общества) в срок, не превышающий тридцати дней с даты поступления указанного отзыва, если иное не предусмотрено договором, стороной которого, выгодоприобретателем или поручителем по которому является Субъект персональных данных, иным соглашением между Обществом и Субъектом персональных данных либо если Общество не вправе осуществлять обработку персональных данных без согласия Субъекта персональных данных на основаниях, предусмотренных Законом или другими федеральными законами.',\n },\n {\n section: '6.11',\n text: 'В случае обращения Субъекта персональных данных к Обществу с требованием о прекращении обработки персональных данных Общество обязано в срок, не превышающий десяти рабочих дней с даты получения Обществом соответствующего требования, прекратить их обработку или обеспечить прекращение такой обработки (если такая обработка осуществляется лицом, осуществляющим обработку персональных данных), за исключением случаев, предусмотренных пунктами 2–11 части 1 статьи 6, частью 2 статьи 10 и частью 2 статьи 11 Закона. Указанный срок может быть продлён, но не более чем на пять рабочих дней в случае направления оператором в адрес Субъекта персональных данных мотивированного уведомления с указанием причин продления срока предоставления запрашиваемой информации.',\n },\n {\n section: '6.12',\n text: 'В случае отсутствия возможности уничтожения персональных данных в течение срока, установленного Законом, Общество осуществляет блокирование таких персональных данных или обеспечивает их блокирование (если обработка персональных данных осуществляется другим лицом, действующим по поручению оператора) и обеспечивает уничтожение персональных данных в срок не более чем шесть месяцев, если иной срок не установлен федеральными законами.',\n },\n {\n section: '6.13',\n text: 'Если персональные данные получены не от Субъекта персональных данных, за исключением случаев, предусмотренных пунктом 6.16. настоящей Политики, до начала обработки таких персональных данных Общество обязано уведомить Субъекта персональных данных и предоставить ему следующую информацию:',\n subSections: [\n {\n section: '6.13.1',\n text: 'Наименование и адрес Оператора и его представителя (при наличии).',\n },\n {\n section: '6.13.2',\n text: 'Цель обработки персональных данных и её правовое основание.',\n },\n {\n section: '6.13.3',\n text: 'Перечень персональных данных.',\n },\n {\n section: '6.13.4',\n text: 'Предполагаемые пользователи персональных данных.',\n },\n {\n section: '6.13.5',\n text: 'Установленные Законом права Субъекта персональных данных.',\n },\n {\n section: '6.13.6',\n text: 'Источник получения персональных данных.',\n },\n ],\n },\n {\n section: '6.14',\n text: 'Общество освобождается от обязанности предоставить Субъекту персональных данных сведения, предусмотренные пунктом 6.15. настоящей Политики, в случаях, если:',\n subSections: [\n {\n section: '6.14.1',\n text: 'Субъект персональных данных уведомлен об осуществлении обработки его персональных данных Обществом.',\n },\n {\n section: '6.14.2',\n text: 'Обработка персональных данных, разрешённых Субъектом персональных данных для распространения, осуществляется с соблюдением запретов и условий, предусмотренных статьёй 10.1 Закона.',\n },\n {\n section: '6.14.3',\n text: 'Общество осуществляет обработку персональных данных для статистических или иных исследовательских целей, если при этом не нарушаются права и законные интересы Субъекта персональных данных.',\n },\n {\n section: '6.14.4',\n text: 'Предоставление Субъекту персональных данных сведений, предусмотренных соответствующими пунктами настоящей Политики, нарушает права и законные интересы третьих лиц.',\n },\n ],\n },\n {\n section: '6.15',\n text: 'При сборе персональных данных Общество обеспечивает запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение персональных данных граждан Российской Федерации с использованием баз данных, находящихся на территории Российской Федерации, за исключением случаев, предусмотренных Законом.',\n },\n {\n section: '6.16',\n text: 'Общество рассматривает любые обращения и жалобы со стороны Субъектов персональных данных, расследует факты нарушений и принимает все необходимые меры для их немедленного устранения и урегулирования спорных ситуаций в досудебном порядке.',\n },\n {\n section: '6.17',\n text: 'Письменный запрос Субъекта персональных данных о реализации своих прав, в том числе: отзыва согласия на обработку персональных данных; защиты законных интересов; предоставлении информации, касающейся обработки его персональных данных для целей надлежащего определения отправителя такого запроса как субъекта, чьи персональные данные обрабатываются Обществом, должен содержать номер телефона или реквизиты гражданско-правового договора, в рамках которого Обществом обрабатываются персональные данные Субъекта персональных данных. Письменное обращение (запрос) направляется по адресу: 142181, Московская область, г. Подольск, деревня Коледино, Территория Индустриальный парк Коледино, д. 6, стр. 1.',\n },\n {\n section: '6.18',\n text: 'Запрос также может быть направлен Субъектом персональных данных в форме электронного документа и подписан электронной подписью в соответствии с законодательством Российской Федерации. Для получения сведений о своих персональных данных, ознакомления с ними, для их уточнения, блокирования или уничтожения, отзыва согласия на их обработку запросы могут быть направлены по адресу электронной почты: sales@wildberries.ru.',\n },\n {\n section: '6.19',\n text: 'Взаимодействие по иным вопросам, связанным с обработкой персональных данных Обществом, также осуществляется с использованием следующих контактных данных: почтовый адрес (142181, Московская область, г. Подольск, деревня Коледино, Территория Индустриальный парк Коледино, д. 6, стр. 1) и / или адрес электронной почты (sales@wildberries.ru).',\n },\n ],\n },\n ],\n}\n","import { FC } from 'react'\nimport ReactSelect from 'react-select'\n\nimport {\n CustomStyles,\n inputCustomStyles,\n} from 'sections/PromoSection/pages/PromoPage/Sections/PrivacyPolicy/inputCustomStyles'\nimport { TextPromo } from 'components/ui'\nimport { useResize } from 'utils/hooks/useResize'\n\nimport { privacyPolicy } from './data'\n\nimport s from './PrivacyPolicy.module.scss'\n\nexport const PrivacyPolicy: FC = () => {\n const { isTablet } = useResize()\n\n const options = privacyPolicy.sections.map((section, index) => ({\n label: section.title,\n value: `#section-${index}`,\n }))\n\n const customStyles: CustomStyles = {\n menu: {\n height: '400px',\n position: 'relative',\n top: 0,\n left: 0,\n border: 'none',\n width: '100%',\n },\n }\n\n const handleSelectChange = (selectedOption: any) => {\n if (selectedOption) {\n document.querySelector(selectedOption.value)?.scrollIntoView({ behavior: 'smooth' })\n }\n }\n\n return (\n
    \n

    {privacyPolicy.title}

    \n {isTablet && (\n null }}\n defaultValue={options[0]}\n />\n )}\n
    \n
      \n {privacyPolicy.sections.map((section, index) => (\n
    • \n

      {section.title}

      \n
        \n {section.content.map((content, idx) => (\n
      • \n \n {content.section} {content.text}\n \n {content.subSections && content.subSections.length > 0 && (\n
          \n {content.subSections.map((subSection, subIdx) => (\n
        • \n \n {subSection.section} {subSection.text}\n \n
        • \n ))}\n
        \n )}\n
      • \n ))}\n
      \n
    • \n ))}\n \n ¹ Требования к форме согласия определяются, исходя из требований Закона, включая ст. 5, ст. 9 Закона, и\n по общему правилу утверждаются локальным нормативным актом. При этом согласие может быть получено как на\n материальном (бумажном) носителе, так и в форме электронного документа, подписанного электронной подписью,\n или иным способом, позволяющим подтвердить факт его получения и не противоречащим Закону. Предпочтительным\n способом получения является получение согласия в виде электронного документа\n \n
    \n {!isTablet && (\n \n )}\n
    \n
    \n )\n}\n","import { observer } from 'mobx-react-lite'\nimport { useTranslation } from 'react-i18next'\nimport { useNavigate, useParams } from 'react-router-dom'\nimport { ArrowLeftOutlined } from '@ant-design/icons'\n\nimport {\n getActivateOrderPageKey,\n getOrderPageKey,\n getOrderRequirementsStepKey,\n} from 'sections/LKSection/modules/OrderModule/utils'\nimport { ContainerLK } from 'sections/LKSection/shared/components/ContainerLK/ContainerLK'\nimport { Margin, Padding } from 'components/ui'\nimport { Href } from 'components/ui/Href/Href'\nimport { ListItem } from 'components/ui/ListItem/ListItem'\nimport { Button, Flex, Text, Title } from 'components/uiKit'\nimport { getCreateMovingOrderRoute } from 'utils/helpers/getRoutes'\nimport { docs } from 'shared/constants/docs'\nimport { LKRoutesEnum } from 'shared/constants/routes'\nimport { colors } from 'shared/constants/values'\n\nimport { PvzKeys } from '../../data'\n\nconst getKey = (key: string) => `${PvzKeys.movingPage}.${key}`\n\nexport const MovingPvzPage = observer(() => {\n const { pvzId } = useParams()\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n const backButtonHandler = () => {\n navigate(LKRoutesEnum.pvz)\n }\n\n const createOrderHandler = () => {\n if (pvzId) {\n navigate(getCreateMovingOrderRoute(+pvzId))\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n )\n})\n","import { useEffect } from 'react'\nimport { Navigate, Outlet, RouteObject, useLocation, useRoutes } from 'react-router-dom'\nimport { useContext } from 'use-context-selector'\n\nimport {\n ActivateELockPage,\n ActivateOrderPage,\n AddEmployeePage,\n CreateOrderPage,\n EditContactPage,\n EditPassportPage,\n EditRequisitesPage,\n EmployeePage,\n OrderItemPage,\n OrderPage,\n OrderPaymentPage,\n ProfilePage,\n PvzEditAreaPage,\n PvzEditTimetablePage,\n PvzItemPage,\n PvzPage,\n TicketItemPage,\n TicketPage,\n} from 'sections/LKSection'\nimport { LKGeneralLayout } from 'sections/LKSection/LKGeneralLayout/LKGeneralLayout'\nimport { PvzSignboardPage } from 'sections/LKSection/modules/PvzModule/pages/PvzSignboardPage/PvzSignboardPage'\nimport { LoginPage } from 'sections/LKSection/modules/UserModule/pages/LoginPage/LoginPage'\nimport { RegistrationPage } from 'sections/LKSection/modules/UserModule/pages/RegistrationPage/RegistrationPage'\nimport {\n AppsPage,\n BankingServicesPage,\n ConferencesPage,\n DownloadsPage,\n ELockContractorsPage,\n ELockPage,\n ListSignBoardsContractorsPage,\n ListSignBoardsSortingCentersPage,\n PromoPage,\n RatingPage,\n SignBoardPage,\n SimplifiedConditionsPage,\n VideoConnectionPage,\n} from 'sections/PromoSection'\nimport { LoginPageGe } from 'sections/PromoSection/pages/PromoPage/PromoPageGe/pages/LoginPage/LoginPageGe'\nimport { PromoPageGe } from 'sections/PromoSection/pages/PromoPage/PromoPageGe/PromoPageGe'\nimport { PrivacyPolicy } from 'sections/PromoSection/pages/PromoPage/Sections/PrivacyPolicy/PrivacyPolicy'\nimport { PromoGeneralLayout } from 'sections/PromoSection/PromoGeneralLayout/PromoGeneralLayout'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { AuthRoutesEnum, LKRoutesEnum, PromoGeRoutesEnum, PromoRoutesEnum } from 'shared/constants/routes'\n\nimport { MovingPvzPage } from './sections/LKSection/modules/PvzModule/pages/MovingPvzPage/MovingPvzPage'\nimport { setUserRole } from './states/UserState/reducer'\nimport { UserStateContext } from './states/UserState/UserStateProvider'\n\nexport const RouteList = () => {\n const ctx = useContext(UserStateContext)\n const location = useLocation()\n\n useEffect(() => {\n try {\n const pathname = decodeURIComponent(location.pathname)\n const token = JSON.parse(pathname?.slice(2))?.token\n\n if (token) {\n ctx.dispatch(setUserRole(token))\n }\n } catch (error) {\n // обработчик не нужен, но try необходим\n }\n }, [])\n\n const lkRoutes: RouteObject = {\n path: '/lk',\n element: ,\n children: [\n {\n path: LKRoutesEnum.orders,\n element: ,\n children: [\n { path: LKRoutesEnum.orders, element: },\n { path: ':orderId', element: },\n { path: ':orderId/activate', element: },\n { path: ':orderId/activate-elock', element: },\n { path: `${LKRoutesEnum.orders}/:orderId/error`, element: },\n { path: LKRoutesEnum.orderCreate, element: },\n { path: `${LKRoutesEnum.orderPayment}/:orderId`, element: },\n ],\n },\n {\n path: LKRoutesEnum.pvz,\n element: ,\n children: [\n { path: LKRoutesEnum.pvz, element: },\n { path: ':pvzId', element: },\n { path: ':pvzId/edit-area', element: },\n { path: ':pvzId/edit-timetable', element: },\n { path: ':pvzId/moving', element: },\n { path: ':pvzId/signboard', element: },\n ],\n },\n {\n path: LKRoutesEnum.tickets,\n element: ,\n children: [\n { path: LKRoutesEnum.tickets, element: },\n { path: ':ticketId', element: },\n ],\n },\n {\n path: LKRoutesEnum.employees,\n element: ,\n children: [\n { path: LKRoutesEnum.employees, element: },\n { path: `${LKRoutesEnum.employees}/:pvzId`, element: },\n { path: `${LKRoutesEnum.addEmployee}/:pvzId`, element: },\n ],\n },\n { path: LKRoutesEnum.profile, element: },\n { path: LKRoutesEnum.editRequisites, element: },\n { path: LKRoutesEnum.editPassport, element: },\n { path: LKRoutesEnum.editContact, element: },\n ],\n }\n\n const filteredRoutes = isGeDomain()\n ? lkRoutes.children?.filter((route) => route.path !== LKRoutesEnum.pvz) || []\n : lkRoutes.children\n\n lkRoutes.children = filteredRoutes\n\n const routesConfig = isGeDomain()\n ? [\n {\n path: PromoGeRoutesEnum.root,\n element: ,\n children: [\n { path: PromoGeRoutesEnum.root, element: },\n { path: PromoGeRoutesEnum.apps, element: },\n { path: AuthRoutesEnum.login, element: },\n { path: AuthRoutesEnum.registration, element: },\n ],\n },\n {\n path: PromoGeRoutesEnum.root,\n element: ,\n children: [{ path: PromoGeRoutesEnum.login, element: }],\n },\n lkRoutes,\n { path: '/lk/*', element: },\n { path: '/*', element: },\n ]\n : [\n {\n path: PromoRoutesEnum.root,\n element: ,\n children: [\n { path: PromoRoutesEnum.root, element: },\n { path: PromoRoutesEnum.banners, element: },\n { path: PromoRoutesEnum.signboard, element: },\n { path: PromoRoutesEnum.listSignBoardsContractors, element: },\n { path: PromoRoutesEnum.listSignBoardsSortingCenters, element: },\n { path: PromoRoutesEnum.listELockContractors, element: },\n { path: PromoRoutesEnum.eLock, element: },\n { path: PromoRoutesEnum.videoConnection, element: },\n { path: PromoRoutesEnum.conferences, element: },\n { path: PromoRoutesEnum.rating, element: },\n { path: PromoRoutesEnum.apps, element: },\n { path: AuthRoutesEnum.login, element: },\n { path: AuthRoutesEnum.registration, element: },\n { path: PromoRoutesEnum.bankingServices, element: },\n { path: PromoRoutesEnum.simplifiedConditions, element: },\n ],\n },\n {\n path: PromoRoutesEnum.root,\n element: ,\n children: [{ path: PromoRoutesEnum.privacyPolicy, element: }],\n },\n lkRoutes,\n { path: '/*', element: },\n { path: '/lk/*', element: },\n ]\n\n const Routes = useRoutes(routesConfig)\n\n return Routes\n}\n","export const errorMessages = {\n phoneRequired: 'Ошибка! Чтобы отправить вопрос менеджеру введите номер телефона',\n phoneInvalid: 'Неверный формат телефона',\n emailInvalid: 'Неверный формат email',\n telegramInvalid: 'Telegram должен начинаться с \"@\" и содержать больше 2 символов',\n messageRequired: 'Ошибка! Необходимо ввести вопрос менеджеру',\n messageTooShort: 'Сообщение должно содержать минимум 10 символов',\n messageWithOnlySpaces: 'Сообщение не должно состоять только из пробелов',\n checkboxRequired: 'Вы должны подтвердить согласие',\n emailRequired: 'Ошибка! Чтобы отправить вопрос менеджеру введите email',\n telegramRequired: 'Ошибка! Чтобы отправить вопрос менеджеру введите Telegram',\n}\n\nexport const phoneValidationRules = {\n RU: { minLength: 10, maxLength: 10 },\n KZ: { minLength: 10, maxLength: 10 },\n AM: { minLength: 8, maxLength: 8 },\n BY: { minLength: 9, maxLength: 9 },\n UZ: { minLength: 9, maxLength: 9 },\n KG: { minLength: 9, maxLength: 9 },\n GE: { minLength: 9, maxLength: 9 },\n TJ: { minLength: 9, maxLength: 9 },\n}\n","import * as React from \"react\";\nconst SvgFeedbackFormError = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 100 100\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M50 100C22.3857 100 0 77.614 0 50C0 22.3857 22.3857 0 50 0C77.614 0 100 22.3857 100 50C100 77.614 77.614 100 50 100ZM50 42.929L35.8578 28.7868L28.7868 35.8578L42.929 50L28.7868 64.142L35.8578 71.213L50 57.071L64.142 71.213L71.213 64.142L57.071 50L71.213 35.8578L64.142 28.7868L50 42.929Z\", fill: \"#C0C5CF\" }));\nexport default SvgFeedbackFormError;\n","import * as React from \"react\";\nconst SvgFeedbackFormSuccess = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 100 100\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M50 100C22.3857 100 0 77.6142 0 50.0002C0 22.386 22.3857 0.000244141 50 0.000244141C77.614 0.000244141 100 22.386 100 50.0002C100 77.6142 77.614 100 50 100ZM45.013 70.0002L80.3685 34.6449L73.2975 27.5738L45.013 55.8582L30.871 41.7157L23.7999 48.7872L45.013 70.0002Z\", fill: \"#7635DB\" }));\nexport default SvgFeedbackFormSuccess;\n","import { useWatch } from 'antd/es/form/Form'\nimport useForm from 'antd/es/form/hooks/useForm'\nimport { observer } from 'mobx-react-lite'\nimport { ChangeEvent, Dispatch, SetStateAction, useEffect, useMemo, useRef, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Link } from 'react-router-dom'\nimport { SelectInstance } from 'react-select'\n\nimport { useStore } from 'store/useStore'\nimport { countries } from 'sections/LKSection/modules/UserModule/data'\nimport { CountrySelectWithFlags } from 'sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/components/customSelect/CountrySelectWithFlags'\nimport { countrySelectCustomStyles } from 'sections/PromoSection/pages/PromoPage/shared/OpenPickPointForm/countrySelectCustomStyles'\nimport { CountryItem } from 'components/CountryPhoneInput/CountryPhoneInput'\nimport { ButtonPromo, TextPromo } from 'components/ui'\nimport { Spinner } from 'components/ui/Spinner/Spinner'\nimport { Checkbox, Form, FormItem, Input, TextArea } from 'components/uiKit'\nimport { getSharedKey } from 'utils/helpers/i18n/getKeys'\nimport { NOT_NUMBERS_REGEXP, TELEGRAM_REGEXP } from 'shared/constants/regExp'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { BaseOption } from 'shared/types/types'\nimport { PromoSiteContactRequest } from 'types/types'\n\nimport { errorMessages, phoneValidationRules } from './data'\nimport { FeedbackFormValues } from './types'\n\nimport ErrorIcon from 'assets/img/feedback/feedbackForm-error.svg?react'\nimport SuccessIcon from 'assets/img/feedback/feedbackForm-success.svg?react'\nimport s from './FeedbackForm.module.scss'\n\ntype PropsType = {\n shouldReset: boolean\n isFormVisible: boolean\n isResolveVisible: boolean\n isRejectVisible: boolean\n isPending: boolean\n setIsFormVisible?: Dispatch>\n addReview: (value: PromoSiteContactRequest) => void\n}\n\nexport const FeedbackForm = observer(\n ({ isResolveVisible, isRejectVisible, isPending, setIsFormVisible, addReview }: PropsType) => {\n const { searchEngineUiStore: uiStore } = useStore()\n const [form] = useForm()\n const { t } = useTranslation()\n\n const [fieldStates, setFieldStates] = useState({\n phone: true,\n email: true,\n telegram: true,\n message: true,\n })\n const [submittable, setSubmittable] = useState(false)\n const values = useWatch([], form)\n const selectRef = useRef | null>(null)\n const [selectedCountry, setSelectedCountry] = useState | null>(null)\n const [phoneError, setPhoneError] = useState(false)\n\n const localizedCountries = useMemo(() => {\n countries.sort((a, b) => a.label.localeCompare(b.label))\n return countries.map((country) => ({\n ...country,\n label: t(getSharedKey(country.value.label)),\n }))\n }, [t])\n\n useEffect(() => {\n form\n .validateFields({ validateOnly: true })\n .then(() => setSubmittable(true))\n .catch(() => setSubmittable(false))\n }, [form, values])\n\n useEffect(() => {\n if (!localizedCountries.length) return\n\n const computedDefaultOption = localizedCountries[5]\n\n setSelectedCountry(computedDefaultOption)\n }, [localizedCountries])\n\n const handleFinish = (values: FeedbackFormValues) => {\n let phoneNumber = values.phone.trim()\n\n if (selectedCountry && selectedCountry.value && selectedCountry.value.value) {\n phoneNumber = `+${selectedCountry.value.value}${phoneNumber}`\n }\n\n const requestData: PromoSiteContactRequest = {\n phoneNumber: phoneNumber,\n email: values.email.trim(),\n telegram: values.telegram.trim(),\n message: values.message.trim(),\n }\n\n addReview(requestData)\n form.resetFields()\n }\n\n const handleInputChange = (fieldName: string, e: ChangeEvent) => {\n const value = e.target.value\n\n setFieldStates((prevState) => ({\n ...prevState,\n [fieldName]: value === '',\n }))\n\n form\n .validateFields(['phone'])\n .then(() => {\n setPhoneError(false)\n })\n .catch(() => {\n const hasError = form.getFieldError('phone').length > 0\n setPhoneError(hasError)\n })\n }\n\n const handleCloseTicketButton = () => {\n setIsFormVisible?.(false)\n uiStore.setIsRejectVisible(false)\n uiStore.setIsResolveVisible(false)\n form.resetFields()\n setFieldStates({\n phone: true,\n email: true,\n telegram: true,\n message: true,\n })\n }\n\n const handleCountryChange = (item: BaseOption) => {\n setSelectedCountry(item)\n }\n\n const closeFormButton = () => {\n return (\n handleCloseTicketButton()}\n fullWidth={true}\n variant=\"purple\"\n className={s.closeButton}\n >\n Закрыть\n \n )\n }\n\n return (\n <>\n {!(isResolveVisible || isRejectVisible) && (\n <>\n

    \n Заполните форму ниже — менеджер свяжется с вами и ответит на вопросы о том, как открыть пункт выдачи\n заказов Wildberries\n

    \n \n {\n const countryCode = selectedCountry?.value?.country\n\n if (!countryCode) {\n return Promise.reject(new Error(errorMessages.phoneInvalid))\n }\n\n const validationRule = phoneValidationRules[countryCode as keyof typeof phoneValidationRules]\n\n if (!validationRule) {\n return Promise.reject(new Error(errorMessages.phoneInvalid))\n }\n\n const { minLength, maxLength } = validationRule\n\n const isNumeric = !NOT_NUMBERS_REGEXP.test(value)\n\n if (value && isNumeric && value.length >= minLength && value.length <= maxLength) {\n return Promise.resolve()\n }\n\n return Promise.reject(new Error(errorMessages.phoneInvalid))\n },\n },\n ]}\n >\n
    \n {fieldStates.phone && (\n
    \n Номер телефона\n *\n
    \n )}\n
    \n \n handleInputChange('phone', e)}\n style={{ border: 'none', outline: 'none', boxShadow: 'none' }}\n />\n
    \n
    \n \n \n
    \n {fieldStates.email && (\n
    \n Почта\n *\n
    \n )}\n handleInputChange('email', e)} required />\n
    \n \n \n
    \n {fieldStates.telegram && (\n
    \n Ник в Telegram\n *\n
    \n )}\n handleInputChange('telegram', e)} />\n
    \n \n {\n if (!value || value.trim().length === 0) {\n return Promise.reject(new Error(errorMessages.messageWithOnlySpaces))\n }\n return Promise.resolve()\n },\n },\n ]}\n >\n
    \n {fieldStates.message && (\n
    \n Какой у вас вопрос?\n *\n
    \n )}\n handleInputChange('message', e)}\n />\n
    \n \n \n value ? Promise.resolve() : Promise.reject('Вы должны подтвердить согласие'),\n },\n ]}\n >\n
    \n \n \n Я ознакомился с{' '}\n \n Политикой в отношении обработки персональных данных работников и контрагентов\n {' '}\n и даю свое согласие на обработку данных, указанных в этой форме ООО «РВБ» (ИНН 9714053621) и его\n аффилированным компаниям для цели взаимодействия со мной по поводу рассмотрения обращения, на срок\n рассмотрения, если оно не будет отозвано раньше путем направления письменного заявления.\n \n \n
    \n \n \n \n {isPending ? : 'Отправить'}\n \n \n \n \n )}\n\n {isResolveVisible && (\n
    \n
    \n \n

    Получили ваш запрос

    \n

    \n Спасибо! Менеджер свяжется с вами по телефону, в Telegram или по почте в ближайшее время\n

    \n
    \n {closeFormButton()}\n
    \n )}\n\n {isRejectVisible && (\n
    \n
    \n \n

    Не получилось отправить

    \n

    Попробуйте обновить страницу или заполнить форму ещё раз позже

    \n
    \n {closeFormButton()}\n
    \n )}\n \n )\n },\n)\n","export default \"__VITE_ASSET__RN6NxSuz__\"","import { useEffect, useRef } from 'react'\n\nimport { formateDate } from 'utils/formatting/formateDate/formateDate'\n\nimport { MessagesType } from '../../types'\n\nimport Icon from 'assets/img/searchEngine/avatar_bot.svg'\nimport s from './Chat.module.scss'\n\ntype ChatProps = {\n messages: MessagesType[]\n}\n\nexport const Chat = ({ messages }: ChatProps) => {\n const ref = useRef(null)\n\n const getCurrentDate = () => {\n return formateDate(new Date(), 'DD MMMM')\n }\n\n useEffect(() => {\n if (ref.current && messages.length) {\n ref.current.scrollTop = ref.current.scrollHeight\n }\n }, [messages])\n\n return (\n
    \n
    \n
    {getCurrentDate()}
    \n {messages.map((message, index) => (\n
    \n

    \n {message.text} {message.answerTime}\n

    \n {!message.me && (\n
    \n \"icon\"\n
    \n )}\n
    \n ))}\n
    \n
    \n )\n}\n","import { Spin, SpinProps } from 'antd'\nimport React from 'react'\nimport { JSX } from 'react/jsx-runtime'\n\nimport s from './ThreeDotLoader.module.scss'\n\nconst ThreeDotLoader: React.FC = () => {\n return (\n
    \n \n \n \n
    \n )\n}\n\nconst CustomSpin = (props: JSX.IntrinsicAttributes & SpinProps) => } {...props} />\n\nexport default CustomSpin\n","import * as React from \"react\";\nconst SvgSendMessageIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 16, cy: 16, r: 16, transform: \"rotate(-180 16 16)\", fill: \"#090909\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.0005 15.0237L11.8756 19.1484L10.6971 17.9699L16.0005 12.6666L21.3037 17.9699L20.1252 19.1484L16.0005 15.0237Z\", fill: \"white\" }));\nexport default SvgSendMessageIcon;\n","import { observer } from 'mobx-react-lite'\nimport { useRef, useState } from 'react'\n\nimport { useStore } from 'store/useStore'\nimport CustomSpin from 'components/ui/ThreeDotLoader/ThreeDotLoader'\nimport { TextArea } from 'components/uiKit'\n\nimport { MAX_MESSAGE_LENGTH } from '../../../data'\nimport { DialogBranches } from '../../../types'\n\nimport SendMessageIcon from 'assets/img/searchEngine/sendMessageIcon.svg?react'\nimport s from './ChatModalFooter.module.scss'\n\ntype InputModeType = 'numeric' | 'text'\n\nexport const ChatFooter = observer(() => {\n const [isButtonActive, setIsButtonActive] = useState(false)\n const { searchEngineUiStore: uiStore } = useStore()\n const buttonRef = useRef(null)\n const disableSendBtn = uiStore.message === '' || uiStore.sending\n const inputMode: InputModeType = uiStore.dialogBranch.value === DialogBranches.regularChat ? 'text' : 'numeric'\n\n const handleFocus = () => {\n setIsButtonActive(true)\n }\n\n const handleSend = (e: React.KeyboardEvent | React.MouseEvent) => {\n e.preventDefault()\n if (disableSendBtn) {\n return\n }\n uiStore.sendMessage()\n setIsButtonActive(false)\n }\n\n const handleSetMessage = (event: React.ChangeEvent): void => {\n const enteredValue = event.target.value\n if (inputMode === 'numeric') {\n const numericMatch = enteredValue.match(/\\d+/g)\n const numericValue = numericMatch ? numericMatch.join('') : ''\n uiStore.setMessage(numericValue)\n } else {\n uiStore.setMessage(enteredValue)\n }\n }\n\n return (\n
    \n
    {uiStore.sending && }
    \n handleSend(e)}\n value={uiStore.message}\n disabled={uiStore.sending}\n autoFocus\n maxLength={MAX_MESSAGE_LENGTH}\n autoSize={{ minRows: 1, maxRows: 4 }}\n />\n handleSend(e)}\n className={`${s.sendMessageButton} ${isButtonActive ? s.active : ''}`}\n >\n \n \n
    \n )\n})\n","import { observer } from 'mobx-react-lite'\nimport React from 'react'\n\nimport s from './ChatModalHeader.module.scss'\n\ninterface ChatHeaderProps {\n title: string\n caption?: string\n}\n\nexport const ChatHeader: React.FC = observer(({ title, caption }) => {\n return (\n
    \n
    \n

    {title}

    \n {caption}\n
    \n
    \n )\n})\n","import * as React from \"react\";\nconst SvgCloseIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 32 32\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"circle\", { cx: 16, cy: 16, r: 16, fill: \"#4E4F54\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.9995 16.9763L20.1244 12.8516L21.3029 14.0301L15.9995 19.3334L10.6963 14.0301L11.8748 12.8516L15.9995 16.9763Z\", fill: \"white\" }));\nexport default SvgCloseIcon;\n","import { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\n\nimport { useStore } from 'store/useStore'\nimport { FeedbackForm } from 'sections/PromoSection/modules/SearchEngineModule/components/FeedbackForm/FeedbackForm'\nimport { Button, Modal } from 'components/uiKit'\nimport { PromoSiteContactRequest } from 'types/types'\n\nimport { MessagesType } from '../../types'\nimport { Chat } from '../Chat/Chat'\nimport { ChatFooter } from './ChatModalFooter/ChatModalFooter'\nimport { ChatHeader } from './ChatModalHeader/ChatModalHeader'\n\nimport CloseIcon from 'assets/img/searchEngine/close-icon.svg?react'\nimport './ChatModal.scss'\n\nexport const ChatModal = observer(() => {\n const { searchEngineUiStore: uiStore } = useStore()\n\n const { isOpen, toggleIsOpen, messages, setProblemReportModalOpen, problemReportModalOpen } = uiStore\n const [isPending, setIsPending] = useState(false)\n const [scrollPosition, setScrollPosition] = useState(0)\n\n const [shouldReset, setShouldReset] = useState(false)\n\n useEffect(() => {\n if (isOpen || problemReportModalOpen) {\n setScrollPosition(window.scrollY)\n document.body.style.overflow = 'hidden'\n document.body.style.position = 'fixed'\n document.body.style.top = `-${window.scrollY}px`\n document.body.style.width = '100%'\n } else {\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n window.scrollTo(0, scrollPosition)\n }\n\n return () => {\n document.body.style.overflow = ''\n document.body.style.position = ''\n document.body.style.top = ''\n document.body.style.width = ''\n window.scrollTo(0, scrollPosition)\n }\n }, [isOpen, problemReportModalOpen])\n\n const addReview = async (data: PromoSiteContactRequest) => {\n setIsPending(true)\n try {\n await uiStore.sendReviewMessage(data)\n } finally {\n setIsPending(false)\n }\n }\n\n const handleReportModalOpen = (value: boolean) => {\n if (value) {\n setShouldReset(true)\n setProblemReportModalOpen(true)\n } else {\n setProblemReportModalOpen(false)\n }\n }\n\n const handleAfterOpen = () => {\n setShouldReset(false)\n }\n\n const dataAdapter = (messages: MessagesType[]) => {\n return messages.map((message) => {\n return {\n ...message,\n }\n })\n }\n\n return (\n
    \n toggleIsOpen(false)}\n footer={null}\n className=\"searchEngineModal\"\n width={'520px'}\n closeIcon={}\n centered={false}\n >\n \n
    \n
    \n \n \n \n
    \n
    \n \n handleReportModalOpen(false)}\n afterOpenChange={handleAfterOpen}\n footer={null}\n width={'520px'}\n className=\"searchEngineModal\"\n closeIcon={}\n styles={{ body: { maxHeight: '95vh', overflowY: 'auto' } }}\n centered={false}\n >\n \n
    \n handleReportModalOpen(false)}\n isPending={isPending}\n isRejectVisible={uiStore.isRejectVisible}\n isResolveVisible={uiStore.isResolveVisible}\n addReview={addReview}\n />\n
    \n \n
    \n )\n})\n","import * as React from \"react\";\nconst SvgSearchEngineIcon = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"1em\", viewBox: \"0 0 44 36\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"g\", { filter: \"url(#filter0_b_3195_332)\" }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.0346 0.572754C8.00683 0.572754 0.740601 8.8456 0.740601 18.026C0.740601 20.9582 1.58631 23.9776 3.07062 26.7352C3.34678 27.189 3.38129 27.7649 3.19144 28.306L2.03506 32.2155C1.77617 33.158 2.5701 33.8561 3.45033 33.5769L6.93674 32.5297C7.88601 32.2155 8.62816 32.617 9.51012 33.158C12.03 34.659 15.1695 35.4269 18 35.4269C26.5607 35.4269 35.2595 28.7423 35.2595 17.9737C35.2595 8.68852 27.8379 0.572754 18.0346 0.572754Z\", fill: \"#FF66E6\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.0346 0.572754C8.00683 0.572754 0.740601 8.8456 0.740601 18.026C0.740601 20.9582 1.58631 23.9776 3.07062 26.7352C3.34678 27.189 3.38129 27.7649 3.19144 28.306L2.03506 32.2155C1.77617 33.158 2.5701 33.8561 3.45033 33.5769L6.93674 32.5297C7.88601 32.2155 8.62816 32.617 9.51012 33.158C12.03 34.659 15.1695 35.4269 18 35.4269C26.5607 35.4269 35.2595 28.7423 35.2595 17.9737C35.2595 8.68852 27.8379 0.572754 18.0346 0.572754Z\", fill: \"#BA90FF\" })), /* @__PURE__ */ React.createElement(\"g\", { filter: \"url(#filter1_bd_3195_332)\" }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M17.9662 20.2773C16.7408 20.2599 15.757 19.2651 15.757 18.0259C15.757 16.8041 16.7581 15.7919 17.9662 15.8093C19.1917 15.8093 20.1754 16.8041 20.1754 18.0433C20.1754 19.2651 19.1917 20.2773 17.9662 20.2773ZM10.009 20.2775C8.80085 20.2775 7.7998 19.2652 7.7998 18.0434C7.7998 16.8043 8.78359 15.8094 10.009 15.8094C11.2344 15.8094 12.2182 16.8043 12.2182 18.0434C12.2182 19.2652 11.2344 20.26 10.009 20.2775ZM23.7134 18.0433C23.7134 19.2651 24.6972 20.2773 25.9226 20.2773C27.148 20.2773 28.1318 19.2651 28.1318 18.0433C28.1318 16.8041 27.148 15.8093 25.9226 15.8093C24.6972 15.8093 23.7134 16.8041 23.7134 18.0433Z\", fill: \"white\" })), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"filter\", { id: \"filter0_b_3195_332\", x: -23.2594, y: -23.4272, width: 82.5189, height: 82.854, filterUnits: \"userSpaceOnUse\", colorInterpolationFilters: \"sRGB\" }, /* @__PURE__ */ React.createElement(\"feFlood\", { floodOpacity: 0, result: \"BackgroundImageFix\" }), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", { in: \"BackgroundImageFix\", stdDeviation: 12 }), /* @__PURE__ */ React.createElement(\"feComposite\", { in2: \"SourceAlpha\", operator: \"in\", result: \"effect1_backgroundBlur_3195_332\" }), /* @__PURE__ */ React.createElement(\"feBlend\", { mode: \"normal\", in: \"SourceGraphic\", in2: \"effect1_backgroundBlur_3195_332\", result: \"shape\" })), /* @__PURE__ */ React.createElement(\"filter\", { id: \"filter1_bd_3195_332\", x: -7.2002, y: 0.809082, width: 50.332, height: 34.4683, filterUnits: \"userSpaceOnUse\", colorInterpolationFilters: \"sRGB\" }, /* @__PURE__ */ React.createElement(\"feFlood\", { floodOpacity: 0, result: \"BackgroundImageFix\" }), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", { in: \"BackgroundImageFix\", stdDeviation: 7.5 }), /* @__PURE__ */ React.createElement(\"feComposite\", { in2: \"SourceAlpha\", operator: \"in\", result: \"effect1_backgroundBlur_3195_332\" }), /* @__PURE__ */ React.createElement(\"feColorMatrix\", { in: \"SourceAlpha\", type: \"matrix\", values: \"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\", result: \"hardAlpha\" }), /* @__PURE__ */ React.createElement(\"feOffset\", { dx: 5, dy: 5 }), /* @__PURE__ */ React.createElement(\"feGaussianBlur\", { stdDeviation: 5 }), /* @__PURE__ */ React.createElement(\"feColorMatrix\", { type: \"matrix\", values: \"0 0 0 0 0.577356 0 0 0 0 0.359375 0 0 0 0 0.9375 0 0 0 0.5 0\" }), /* @__PURE__ */ React.createElement(\"feBlend\", { mode: \"normal\", in2: \"effect1_backgroundBlur_3195_332\", result: \"effect2_dropShadow_3195_332\" }), /* @__PURE__ */ React.createElement(\"feBlend\", { mode: \"normal\", in: \"SourceGraphic\", in2: \"effect2_dropShadow_3195_332\", result: \"shape\" }))));\nexport default SvgSearchEngineIcon;\n","import { observer } from 'mobx-react-lite'\n\nimport { useStore } from 'store/useStore'\nimport { TextPromo } from 'components/ui'\n\nimport { ChatModal } from './components/ChatModal/ChatModal'\n\nimport Logo from 'assets/img/searchEngine/searchEngineIcon.svg?react'\nimport s from './SearchEngine.module.scss'\n\nexport const SearchEngine = observer(() => {\n const { searchEngineUiStore: uiStore } = useStore()\n const handleOpenModal = (value: boolean) => {\n uiStore.toggleIsOpen(value)\n }\n\n return (\n <>\n \n \n \n )\n})\n","import { notification } from 'antd'\n\nexport const clipboard = (text: string) => {\n if (navigator.clipboard) {\n navigator.clipboard.writeText(text)\n\n notification.success({\n message: `Текст \"${text}\" скопирован в буфер обмена`,\n })\n } else {\n notification.error({\n message: 'Ошибка',\n description: 'Буфер обмена не поддерживается на Вашем устройстве',\n })\n }\n}\n","import { SectionState } from '../../../states/PromoPageState/state'\nimport { SectionDTO } from '../../../types/types'\n\nexport const getSectionReq = (sections: SectionState[]) => {\n const sectionsReq: SectionDTO[] = []\n\n sections.forEach((item, index) => {\n sectionsReq.push({\n type: item.type,\n title: item.title,\n index: index,\n content: item.content,\n })\n })\n\n return sectionsReq\n}\n","export default \"__VITE_ASSET__CqYL1GdP__\"","import { notification } from 'antd'\nimport { createElement, FunctionComponent, useState } from 'react'\nimport { useContext, useContextSelector } from 'use-context-selector'\n\nimport api from 'services/api'\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { Button } from 'components/ui/Button/Button'\nimport { Href } from 'components/ui/Href/Href'\nimport { Spinner } from 'components/ui/Spinner/Spinner'\nimport { clipboard } from 'utils/helpers/clipboard'\nimport { uploadFile } from 'utils/helpers/files/fileUpload'\nimport { PromoRoutesEnum } from 'shared/constants/routes'\nimport { SectionName } from 'types/types'\n\nimport { BlockWrap } from './BlockWrap/BlockWrap'\nimport { AdminInput } from './UI/Input/AdminInput'\nimport { getSectionReq } from './utils/getSectionReq'\n\nimport close from 'assets/img/gallery--close.svg'\nimport 'react-toastify/dist/ReactToastify.css'\nimport s from './Admin.module.scss'\n\nexport type BlockType = {\n id: number\n index: number\n type: SectionName\n children: JSX.Element\n}\n\nexport const Admin = () => {\n const state = useContextSelector(PromoPageStateContext, (context) => context.state.sections)\n\n const ctx = useContext(PromoPageStateContext)\n\n const [isVisible, setVisible] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [fileLoading, setFileLoading] = useState(false)\n const [publishLoading, setPublishLoading] = useState(false)\n\n const blockMapData = state.map((blockEl) => {\n if (blockEl.type === SectionName.faq) {\n return null\n } else {\n return (\n
    \n \n {createElement(blockEl.menuComponent as unknown as FunctionComponent)}\n \n
    \n )\n }\n })\n\n const handlePublishChanges = async () => {\n if (ctx.state.isChangesUpdatingBlocked) {\n notification.error({\n message: 'Ошибка',\n description: 'Начальные данные не были получены с сервера, поэтому нельзя опубликовать изменения.',\n })\n return\n }\n\n const sectionsReq = getSectionReq(ctx.state.sections)\n\n try {\n setPublishLoading(true)\n\n await api.requests.updateSections({ sections: sectionsReq })\n notification.success({\n message: 'Успешно',\n description: 'Изменения опубликованы',\n })\n } catch (error) {\n notification.error({\n message: 'Ошибка',\n description: `Произошла ошибка: ${error}`,\n })\n } finally {\n setPublishLoading(false)\n }\n }\n\n const changeFileHandler = async (file: File) => {\n setFileLoading(true)\n\n const url = await uploadFile(file)\n\n if (url) {\n setInputValue(url)\n clipboard(url)\n }\n\n setFileLoading(false)\n }\n\n return (\n <>\n \n\n {isVisible && (\n
    \n
    \n
    \n \n\n
    {blockMapData}
    \n\n
    \n
    Перейти к:
    \n\n
    \n \n {state.find((section) => section.type === SectionName.conferences)?.title}\n \n \n {state.find((section) => section.type === SectionName.sortingCenters)?.title}\n \n \n {state.find((section) => section.type === SectionName.contractors)?.title}\n \n \n {state.find((section) => section.type === SectionName.elock)?.title}\n \n
    \n
    \n
    \n\n
    \n \n\n {fileLoading ? (\n \n ) : (\n {}} label=\"Ссылка\" disabled labelSize=\"16px\" />\n )}\n
    \n
    \n\n
    \n \n
    \n
    \n )}\n \n )\n}\n","export interface ILayoutModel {\n analytic: {\n sendEvent: (eventName: string, data: Record) => void\n }\n eventBus: {\n dispatchEvent: (event: Event) => void\n }\n}\n\nexport const layoutModel: ILayoutModel = {\n analytic: {\n sendEvent: (eventName, params, immediatelySent = false) => {\n const eventQueue = []\n eventQueue.push({ EventName: eventName, EventParams: params })\n\n if (immediatelySent) {\n eventQueue.length = 0\n }\n },\n },\n\n eventBus: {\n dispatchEvent: (event) => {\n document.dispatchEvent(event)\n },\n },\n}\n","import { useEffect } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nexport const ScrollToTop = () => {\n const { pathname } = useLocation()\n\n useEffect(() => {\n window.scrollTo(0, 0)\n }, [pathname])\n\n return null\n}\n","import { ConfigProvider, notification } from 'antd'\nimport en_US from 'antd/locale/en_US'\nimport ka_GE from 'antd/locale/ka_GE'\nimport ru_RU from 'antd/locale/ru_RU'\nimport { observer } from 'mobx-react-lite'\nimport { useEffect, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useLocation, useNavigate } from 'react-router-dom'\nimport { RouteList } from 'RouteList'\nimport { useContext } from 'use-context-selector'\nimport { withProfiler } from '@sentry/react'\n\nimport api from 'services/api'\nimport { getLocalStorageData, STORAGE_KEY } from 'services/localStorage.service'\nimport { useStore } from 'store/useStore'\nimport { PromoPageStateContext } from 'states/PromoPageState/PromoPageStateProvider'\nimport { setIsChangesUpdatingBlocked, setSections } from 'states/PromoPageState/reducer'\nimport { setUserRole } from 'states/UserState/reducer'\nimport { UserStateContext } from 'states/UserState/UserStateProvider'\nimport { SearchEngine } from 'sections/PromoSection/modules/SearchEngineModule/SearchEngine'\nimport { Admin } from 'components/AdminV2/Admin'\nimport { CookiePolicy } from 'components/CookiePolicy/CookiePolicy'\nimport { layoutModel } from 'components/CookiePolicy/layoutModel'\nimport { isGeDomain } from 'utils/helpers/domains/getDomain'\nimport { ScrollToTop } from 'utils/helpers/ScrollToTop'\nimport { useAsyncEffect } from 'utils/hooks/useAsyncEffect'\nimport { colors } from 'shared/constants/values'\n\nimport 'assets/css/index.scss'\n\nconst App = observer(() => {\n const { viewOrderUiStore, appStore } = useStore()\n\n const ctx = useContext(UserStateContext)\n const promoCtx = useContext(PromoPageStateContext)\n\n const { i18n } = useTranslation()\n\n const [locale, setLocale] = useState(ru_RU)\n\n const location = useLocation()\n const navigate = useNavigate()\n\n useEffect(() => {\n //Чтобы была возможность запустить стейдж для грузии\n const params = new URLSearchParams(location.search)\n if (!params.get('isStage')) {\n const isStage = localStorage.getItem('isStage')\n if (isStage) {\n params.set('isStage', 'true')\n navigate(`${location.pathname}?${params.toString()}`, { replace: true })\n }\n }\n }, [location, navigate])\n\n useEffect(() => {\n //Чтобы была возможность получить доступ к админке и загрузке на сервер без захода через админку\n // Токен из админки необходимо добавить в ручную\n // const token = getLocalStorageData(STORAGE_KEY.USER_TOKEN)\n // token && ctx.dispatch(setUserRole(token))\n\n void fetchData()\n\n // тип BeforeInstallPromptEvent не встроен в TypeScript по умолчанию, поэтому TypeScript может не распознавать его напрямую\n const handler = (event: any) => {\n viewOrderUiStore.setPwaEvent(event)\n }\n\n window.addEventListener('beforeinstallprompt', handler)\n\n return () => window.removeEventListener('beforeinstallprompt', handler)\n }, [])\n\n useEffect(() => {\n if (appStore.user?.info.user_id) {\n window.wba('user_id', { clientId: appStore.user?.info.user_id })\n }\n }, [])\n\n useEffect(() => {\n if (window.wba && appStore.user?.info.user_id) {\n window.wba('user_id', { clientId: appStore.user?.info.user_id })\n }\n }, [appStore.user?.info.user_id])\n\n useEffect(() => {\n if (window.wba) {\n window.wba('pageview')\n }\n }, [location.pathname])\n\n useAsyncEffect(async () => {\n switch (i18n.language) {\n case 'ru':\n setLocale(ru_RU)\n break\n case 'ka':\n setLocale(ka_GE)\n break\n case 'en':\n setLocale(en_US)\n break\n\n default:\n setLocale(ru_RU)\n break\n }\n }, [i18n.language])\n\n const fetchData = async () => {\n try {\n const result = await api.requests.getSections()\n const section = result.sections[2]\n const parsedData = JSON.parse(section.data)\n\n promoCtx.dispatch(setSections(parsedData.sections))\n } catch (error) {\n promoCtx.dispatch(setIsChangesUpdatingBlocked())\n notification.error({ message: `Не удалось загрузить данные с сервера. ${(error as Error).message}` })\n }\n }\n\n return (\n \n \n\n
    \n \n \n {!isGeDomain() && }\n
    \n\n {ctx.state.adminRole && }\n \n )\n})\n\nexport default withProfiler(App)\n","import { notification } from 'antd'\nimport { getEnvironment } from 'config/environment/appConfig'\nimport dayjs from 'dayjs'\nimport advancedFormat from 'dayjs/plugin/advancedFormat'\nimport customParseFormat from 'dayjs/plugin/customParseFormat'\nimport isoWeek from 'dayjs/plugin/isoWeek'\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter'\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore'\nimport localeData from 'dayjs/plugin/localeData'\nimport weekday from 'dayjs/plugin/weekday'\nimport weekOfYear from 'dayjs/plugin/weekOfYear'\nimport weekYear from 'dayjs/plugin/weekYear'\nimport { createRoot } from 'react-dom/client'\nimport { BrowserRouter } from 'react-router-dom'\nimport * as Sentry from '@sentry/react'\n\nimport { rootStore } from 'store/root'\nimport { Provider } from 'store/useStore'\nimport { AdminMenuUiStateProvider } from 'states/AdminMenuUiState/AdminMenuUiStateProvider'\nimport { PromoPageStateProvider } from 'states/PromoPageState/PromoPageStateProvider'\nimport { UserStateProvider } from 'states/UserState/UserStateProvider'\n\nimport 'config/i18n/i18n'\nimport App from './App'\n\nimport './assets/fonts/fonts.scss'\n\ndayjs.extend(customParseFormat)\ndayjs.extend(advancedFormat)\ndayjs.extend(weekday)\ndayjs.extend(localeData)\ndayjs.extend(weekOfYear)\ndayjs.extend(weekYear)\ndayjs.extend(isSameOrAfter)\ndayjs.extend(isSameOrBefore)\ndayjs.extend(isoWeek)\ndayjs.locale('ru')\n\nnotification.config({\n placement: 'bottomRight',\n duration: 5,\n})\n\nconst env = getEnvironment()\n\nif (env !== 'stage' && env !== 'dev') {\n Sentry.init({\n dsn: 'https://59f8702791915cd70a78e011a3a5854a@sentry.wb.ru/969',\n environment: env,\n integrations: [],\n tracesSampleRate: 1.0,\n replaysSessionSampleRate: 0.1,\n replaysOnErrorSampleRate: 1.0,\n })\n\n import('@sentry/react').then((lazyLoadedSentry) => {\n Sentry.addIntegration(lazyLoadedSentry.replayIntegration())\n Sentry.addIntegration(lazyLoadedSentry.browserTracingIntegration())\n })\n}\n\nconst container = document.getElementById('root') as HTMLElement\nconst root = createRoot(container)\n\nroot.render(\n \n \n \n \n \n \n \n \n \n \n ,\n)\n"],"file":"assets/index-CoMW1NYG.js"}