{"version":3,"file":"index-BHBtK01E.js","sources":["../../src/config/AppConfig.ts","../../src/config/SentryConfig.ts","../../src/auth/core/interface/AuthRepository.ts","../../src/auth/core/interface/AuthState.ts","../../src/auth/core/interface/TokensStorage.ts","../../src/common/core/Analytics.ts","../../src/auth/core/usecase/LoadOwnerUsecase.ts","../../src/manager/profile/core/interface/ProfileManagerRepository.ts","../../src/manager/profile/core/interface/ProfileManagerState.ts","../../src/manager/profile/core/usecase/LoadProfilesUsecase.ts","../../src/auth/core/usecase/LoginUsecase.ts","../../src/auth/core/usecase/LogoutUsecase.ts","../../src/auth/core/usecase/RefreshUsecase.ts","../../src/auth/core/usecase/RegisterUsecase.ts","../../src/auth/core/usecase/ValidateAuthUsecase.ts","../../src/common/core/JwtParser.ts","../../src/auth/core/usecase/ValidateRecoveryTokenUsecase.ts","../../src/auth/core/AuthFacade.ts","../../src/auth/core/interface/AuthPort.ts","../../src/auth/core/model/TokensModel.ts","../../src/auth/data/AuthDataMapper.ts","../../src/common/core/OperationResult.ts","../../src/common/data/ErrorExtractor.ts","../../src/auth/data/RestAuthRepository.ts","../../src/routing/RouterSubscribers.ts","../../src/routing/RouterService.ts","../../src/auth/data/AuthInterceptorManager.ts","../../src/auth/data/LocalTokensStorage.ts","../../src/auth/data/SignalsAuthState.ts","../../src/common/ui/ViewModel.ts","../../src/notification/AppNotificationService.ts","../../src/auth/ui/forgot-password/ForgotPasswordViewModel.ts","../../src/common/ui/SplashService.ts","../../src/auth/ui/guard/GuardViewModel.ts","../../src/profile/core/interface/ProfilePort.ts","../../src/auth/ui/login/LoginViewModel.ts","../../src/auth/ui/register/RegisterViewModel.ts","../../src/auth/ui/restore-password/RestorePasswordViewModel.ts","../../src/common/BaseModule.ts","../../src/auth/AuthModule.ts","../../src/common/data/HttpClientFactory.ts","../../src/common/data/SentryAnalytics.ts","../../src/common/ui/DateFormatter.ts","../../src/common/ui/TimeAgoFormatter.ts","../../src/common/CommonModule.ts","../../src/honor/core/interface/HonorSubmitRepository.ts","../../src/honor/core/usecase/SubmitHonorRecordUsecase.ts","../../src/honor/core/HonorSubmitFacade.ts","../../src/honor/core/interface/HonorSubmitPort.ts","../../src/profile/data/ProfileDataMapper.ts","../../src/honor/data/RestHonorSubmitRepository.ts","../../src/honor/ui/HonorSubmitViewModel.ts","../../src/honor/HonorModule.ts","../../src/manager/avatar/core/interfaces/AvatarManagerRepository.ts","../../src/manager/avatar/core/usecase/RemoveAvatarUsecase.ts","../../src/manager/avatar/core/usecase/UploadAvatarUsecase.ts","../../src/manager/avatar/core/AvatarManagerFacade.ts","../../src/manager/avatar/core/interfaces/AvatarManagerPort.ts","../../src/manager/avatar/data/AvatarManagerDataMapper.ts","../../src/manager/avatar/data/RestAvatarManagerRepository.ts","../../src/manager/profile/core/interface/ProfileManagerPort.ts","../../src/manager/avatar/ui/AvatarManagerViewModel.tsx","../../src/manager/avatar/AvatarManagerModule.ts","../../src/manager/biography/core/interface/BiographyManagerRepository.ts","../../src/manager/biography/core/usecase/UpdateBiographyUsecase.ts","../../src/manager/biography/core/BiographyManagerFacade.ts","../../src/manager/biography/core/interface/BiographyManagerPort.ts","../../src/manager/biography/data/BiographyManagerDataMapper.ts","../../src/manager/biography/data/RestBiographyManagerRepository.ts","../../src/manager/biography/core/dto/RefineBiographyDto.ts","../../src/manager/biography/core/dto/UpdateBiographyDto.ts","../../src/manager/biography/ui/BiographyManagerViewModel.ts","../../src/manager/biography/BiographyManagerModule.ts","../../src/manager/events/core/interface/EventsManagerState.ts","../../src/manager/events/core/interface/EventsManagerRepository.ts","../../src/manager/events/core/usecase/LoadEventsUsecase.ts","../../src/manager/events/core/usecase/SubmitEventsUsecase.ts","../../src/manager/events/core/EventsManagerFacade.ts","../../src/manager/events/core/interface/EventsManagerPort.ts","../../src/manager/events/data/EventsManagerDataMapper.ts","../../src/manager/events/core/dto/SubmitEventsResultDto.ts","../../src/manager/events/data/RestEventsManagerRepository.ts","../../src/manager/events/data/SignalsEventsManagerState.ts","../../src/manager/events/ui/EventsManagerDiffer.ts","../../src/manager/events/core/dto/SumbitEventsDto.ts","../../src/manager/events/ui/EventsManagerViewModel.ts","../../src/manager/events/EventsManagerModule.ts","../../src/manager/gallery/core/interface/GalleryManagerRepository.ts","../../src/manager/gallery/core/usecase/RemoveMediaUsecase.ts","../../src/manager/gallery/core/usecase/UploadMediaUsecase.ts","../../src/manager/gallery/core/GalleryManagerFacade.ts","../../src/manager/gallery/core/interface/GalleryManagerPort.ts","../../src/manager/gallery/core/dto/UploadMediaType.ts","../../src/manager/gallery/data/upload/context/UploadContext.ts","../../src/manager/gallery/data/GalleryManagerDataMapper.ts","../../src/manager/gallery/data/upload/state/UploadState.ts","../../src/manager/gallery/data/upload/state/BasicUploadingState.ts","../../src/manager/gallery/data/upload/state/ChunkingState.ts","../../src/manager/gallery/data/upload/state/CompletedState.ts","../../src/manager/gallery/data/upload/state/FailedState.ts","../../src/manager/gallery/data/upload/state/FinalizingState.ts","../../src/manager/gallery/data/upload/state/InitializationState.ts","../../src/manager/gallery/data/upload/context/FileChunk.ts","../../src/manager/gallery/data/upload/context/FileUpload.ts","../../src/manager/gallery/data/upload/state/InitialState.ts","../../src/manager/gallery/data/upload/state/UploadingState.ts","../../src/manager/gallery/data/upload/UploadStateMachine.ts","../../src/manager/gallery/data/RestGalleryManagerRepository.ts","../../src/manager/gallery/ui/GalleryManagerSection.ts","../../src/manager/gallery/ui/GalleryManagerMapper.ts","../../src/profile/ui/gallery/MediaItemsMapper.ts","../../src/manager/gallery/ui/GalleryManagerViewModel.ts","../../src/manager/gallery/core/dto/RemoveMediaDto.ts","../../src/manager/gallery/ui/preview/GalleryManagerPreviewViewModel.ts","../../src/manager/gallery/core/dto/UploadMediaDto.ts","../../src/manager/gallery/ui/upload/GalleryManagerUploadViewModel.ts","../../src/manager/gallery/GalleryManagerModule.ts","../../src/manager/honor/core/interface/HonorManagerState.ts","../../src/manager/honor/core/interface/HonorManagerRepository.ts","../../src/manager/honor/core/usecase/ApproveHonorRecordUsecase.ts","../../src/manager/honor/core/usecase/EditHonorRecordUsecase.ts","../../src/manager/honor/core/usecase/HandleSubmissionResultUsecase.ts","../../src/manager/honor/core/usecase/LoadHonorRecordsUsecase.ts","../../src/manager/honor/core/usecase/RemoveHonorRecordUsecase.ts","../../src/manager/honor/core/HonorManagerFacade.ts","../../src/manager/honor/core/interface/HonorManagerPort.ts","../../src/manager/honor/data/RestHonorManagerRepository.ts","../../src/manager/honor/data/SignalsHonorManagerState.ts","../../src/manager/honor/ui/HonorManagerSection.ts","../../src/manager/honor/ui/HonorManagerNavigator.ts","../../src/manager/honor/ui/HonorManagerNotificationService.ts","../../src/manager/honor/ui/HonorManagerViewModel.ts","../../src/manager/honor/HonorManagerModule.ts","../../src/manager/gateway/ManagerGatewayViewModel.ts","../../src/manager/profile/core/ProfileManagerFacade.ts","../../src/manager/profile/data/RestProfileManagerRepository.ts","../../src/manager/profile/data/SignalsProfileManagerState.ts","../../src/assets/icons/Calendar.svg?react","../../src/assets/icons/ColorPalette.svg?react","../../src/assets/icons/Image.svg?react","../../src/assets/icons/PenFountain.svg?react","../../src/assets/icons/TextAnnotationToggle.svg?react","../../src/assets/icons/View.svg?react","../../src/menu/core/interface/AppMenuService.ts","../../src/manager/profile/ui/settings/ProfileSettingsViewModel.ts","../../src/manager/profile/ProfileManagerModule.ts","../../src/manager/theming/core/interface/ThemingManagerPort.ts","../../src/manager/theming/core/interface/ThemingManagerRepository.ts","../../src/manager/theming/core/usecase/UpdateProfileThemeUsecase.ts","../../src/manager/theming/core/ThemingManagerFacade.ts","../../src/manager/theming/data/dto/UpdateThemeDto.ts","../../src/manager/theming/data/RestThemingManagerRepository.ts","../../src/manager/theming/ui/ThemeManagerViewModel.ts","../../src/manager/theming/ThemingManagerModule.ts","../../src/manager/ManagerModule.ts","../../src/menu/core/interface/AppMenuState.ts","../../src/menu/core/AppMenuFacade.ts","../../src/menu/data/SignalsAppMenuState.ts","../../src/assets/icons/Headset.svg?react","../../src/assets/icons/Login.svg?react","../../src/menu/ui/AppMenuItemModel.ts","../../src/menu/ui/handler/AuthHandler.ts","../../src/menu/ui/handler/SupportHandler.ts","../../src/menu/ui/handler/HandlerRegistry.ts","../../src/menu/ui/AppMenuViewModel.ts","../../src/menu/ui/profiles/AppMenuProfilesViewModel.ts","../../src/menu/AppMenuModule.ts","../../src/notification/AppNotificationModule.ts","../../src/profile/core/interface/ProfileRepository.ts","../../src/profile/core/interface/ProfileState.ts","../../src/profile/core/usecase/ActivateProfileUsecase.ts","../../src/profile/core/usecase/LoadProfileUsecase.ts","../../src/slideshow/core/interface/SlideshowMediaLoader.ts","../../src/slideshow/core/interface/SlideshowState.ts","../../src/slideshow/core/usecase/ScheduleSlideshowUsecase.ts","../../src/profile/core/ProfileFacade.ts","../../src/profile/data/RestProfileRepository.ts","../../src/profile/data/SignalsProfileState.ts","../../src/profile/ui/activation/ProfileActivationViewModel.ts","../../src/profile/ui/gallery/ProfileGalleryViewModel.ts","../../src/profile/ui/gateway/ProfileGatewayViewModel.ts","../../src/assets/icons/InformationFilled.svg?react","../../src/profile/ui/header/ProfilePageHeaderViewModel.ts","../../src/profile/ui/honor/ProfileHonorViewModel.ts","../../src/profile/ui/ProfileViewModel.ts","../../src/profile/ProfileModule.ts","../../src/routing/RoutingModule.ts","../../src/slideshow/core/engine/state/EngineState.ts","../../src/slideshow/core/engine/state/FinishedState.ts","../../src/slideshow/core/engine/state/InitialState.ts","../../src/slideshow/core/engine/state/PausedState.ts","../../src/slideshow/core/engine/state/PlayingState.ts","../../src/slideshow/core/engine/SlideshowEngine.ts","../../src/slideshow/core/engine/SlideshowEngineFactory.ts","../../src/slideshow/core/interface/SlideshowEngineFactoryPort.ts","../../src/slideshow/data/SignalsSlideshowState.ts","../../src/slideshow/data/SlideshowMediaCacheLoader.ts","../../src/slideshow/ui/SlideshowAudioController.ts","../../src/slideshow/ui/SlideshowEngineController.ts","../../src/slideshow/ui/SlideshowViewModel.ts","../../src/slideshow/SlideshowModule.ts","../../src/common/ui/hook/useViewModel.ts","../../src/assets/icons/Close.svg?react","../../src/assets/icons/Logo.svg?react","../../src/common/ui/component/VpHiddenFileInput.tsx","../../src/common/ui/component/VpIcon.tsx","../../src/common/ui/util/resolveSx.ts","../../src/common/ui/component/VpIconButton.tsx","../../src/assets/icons/ChevronRight.svg?react","../../src/menu/ui/AppMenuListItem.tsx","../../src/assets/icons/UserMultiple.svg?react","../../src/assets/icons/SettingsAdjust.svg?react","../../src/common/ui/component/VpImage.tsx","../../src/menu/ui/profiles/AppMenuProfileItem.tsx","../../src/assets/icons/UserMultipleGradient.svg?react","../../src/menu/ui/profiles/NoProfiles.tsx","../../src/menu/ui/profiles/AppMenuProfiles.tsx","../../src/menu/ui/AppMenuList.tsx","../../src/assets/icons/Email.svg?react","../../src/menu/ui/AppMenuUser.tsx","../../src/menu/ui/AppMenu.tsx","../../src/assets/icons/CheckmarkFilled.svg?react","../../src/assets/icons/CloseFilled.svg?react","../../src/assets/icons/Star.svg?react","../../src/assets/icons/WarningAltFilled.svg?react","../../src/notification/AppNotification.tsx","../../src/notification/AppNotificationOutlet.tsx","../../src/theme/scrollbarStyles.ts","../../src/common/ui/component/VpFade.tsx","../../src/auth/ui/AuthPageContainer.tsx","../../src/auth/ui/AuthPageDescription.tsx","../../src/auth/ui/validation/EmailValidationOptions.ts","../../src/common/ui/component/form/VpMultilineTextInput.tsx","../../src/common/ui/component/form/VpTextInput.tsx","../../src/common/ui/component/form/VpTextField.tsx","../../src/common/ui/component/spinner/SpinnerResolver.ts","../../src/common/ui/component/spinner/VpSpinner.tsx","../../src/common/ui/hook/useFalsyStateDelay.ts","../../src/common/ui/component/VpFancyButton.tsx","../../src/auth/ui/forgot-password/ForgotPasswordForm.tsx","../../src/auth/ui/forgot-password/ForgotPasswordPage.tsx","../../src/assets/icons/ViewOff.svg?react","../../src/auth/ui/register/ViewPasswordIcon.tsx","../../src/auth/ui/login/LoginForm.tsx","../../src/auth/ui/login/LoginPage.tsx","../../src/auth/ui/register/RegisterLoginNavigation.tsx","../../src/auth/ui/validation/PasswordValidationOptions.ts","../../src/assets/icons/Checkmark.svg?react","../../src/common/ui/component/VpCheckbox.tsx","../../src/auth/ui/register/RegisterForm.tsx","../../src/auth/ui/register/RegisterPage.tsx","../../src/auth/ui/restore-password/RestorePasswordForm.tsx","../../src/auth/ui/restore-password/RestorePasswordPage.tsx","../../src/auth/AuthRouter.tsx","../../src/assets/icons/WarningAltGradient.svg?react","../../src/common/ui/component/VpFallback.tsx","../../src/landing/LandingDescription.tsx","../../src/common/ui/component/VpLink.tsx","../../src/landing/LandingNavigation.tsx","../../src/landing/LandingSlogan.tsx","../../src/landing/LandingPage.tsx","../../src/landing/LandingRouter.tsx","../../src/auth/ui/guard/AuthGuard.tsx","../../src/common/ui/component/VpButton.tsx","../../src/common/ui/component/VpModal.tsx","../../src/common/ui/component/VpDialog.tsx","../../src/assets/icons/Add.svg?react","../../src/manager/avatar/ui/AvatarImagePlaceholder.tsx","../../src/assets/icons/ChevronLeft.svg?react","../../src/common/ui/component/VpHeader.tsx","../../src/manager/avatar/ui/AvatarManagerHeader.tsx","../../src/common/ui/component/VpMediaGradientOverlay.tsx","../../src/manager/avatar/ui/AvatarManagerImage.tsx","../../src/manager/avatar/ui/AvatarManagerPage.tsx","../../src/common/ui/component/VpToggle.tsx","../../src/manager/biography/ui/BiographyManagerToggle.tsx","../../src/manager/biography/ui/BiographyManagerAIControls.tsx","../../src/manager/biography/ui/form/BiographyManagerFormDate.tsx","../../src/manager/biography/ui/form/BiographyManagerFormDescription.tsx","../../src/manager/biography/ui/form/BiographyManagerFormName.tsx","../../src/manager/biography/ui/form/BiographyManagerFormSubmitButton.tsx","../../src/manager/biography/ui/form/BiographyManagerFormText.tsx","../../src/manager/biography/ui/BiographyManagerBody.tsx","../../src/manager/biography/ui/BiographyManagerHeader.tsx","../../src/manager/biography/ui/edit/BiographyManagerEditHeader.tsx","../../src/manager/biography/ui/edit/BiographyManagerEditContent.tsx","../../src/manager/biography/ui/edit/BiographyManagerEditModal.tsx","../../src/manager/biography/ui/BiographyManagerPage.tsx","../../src/common/ui/component/VpLoadingWrapper.tsx","../../src/manager/events/ui/EventsManagerHeader.tsx","../../src/manager/events/ui/form/EventsManagerFormDate.tsx","../../src/manager/events/ui/form/EventsManagerFormDescription.tsx","../../src/assets/icons/TrashCan.svg?react","../../src/manager/events/ui/form/EventsManagerFormRemoveButton.tsx","../../src/manager/events/ui/form/image/EventsManagerFormImageContent.tsx","../../src/manager/events/ui/form/image/EventsManagerImageControlButton.tsx","../../src/manager/events/ui/form/image/EventsManagerFormImage.tsx","../../src/manager/events/ui/form/EventsManagerFormItem.tsx","../../src/manager/events/ui/form/EventsManagerFormList.tsx","../../src/manager/events/ui/EventsManagerPage.tsx","../../src/common/ui/hook/useSearchSectionCheck.ts","../../src/common/ui/hook/useSearchSection.ts","../../src/manager/gallery/ui/GalleryManagerControls.tsx","../../src/assets/icons/Play.svg?react","../../src/common/ui/component/VpMediaGrid.tsx","../../src/assets/icons/ImageGradient.svg?react","../../src/manager/gallery/ui/GalleryManagerNoMedia.tsx","../../src/manager/gallery/ui/GalleryManagerMediaGrid.tsx","../../src/common/ui/hook/useLinearGradient.ts","../../src/common/ui/hook/useRectOnResize.ts","../../src/common/ui/component/VpTabs.tsx","../../src/manager/gallery/ui/GalleryManagerMediaTabs.tsx","../../src/manager/gallery/ui/GalleryManagerPageHeader.tsx","../../src/common/ui/component/VpOverlayPage.tsx","../../src/common/ui/hook/useControlsVisible.ts","../../src/common/ui/player/hook/useProgressAnimation.ts","../../src/assets/icons/PauseFilled.svg?react","../../src/assets/icons/PlayFilled.svg?react","../../src/common/ui/player/VpPlayerPausePlayControl.tsx","../../src/common/ui/player/VpTimeSliderControl.tsx","../../src/common/ui/player/VpPlayerControls.tsx","../../src/common/ui/player/VpPlayer.tsx","../../src/manager/gallery/ui/preview/GalleryManagerPreview.tsx","../../src/manager/gallery/ui/preview/GalleryManagerPreviewModal.tsx","../../src/common/ui/component/VpLimitInfo.tsx","../../src/manager/gallery/ui/upload/GalleryManagerUploadGrid.tsx","../../src/manager/gallery/ui/upload/GalleryManagerUploadHeader.tsx","../../src/common/ui/component/VpProgressBar.tsx","../../src/manager/gallery/ui/upload/GalleryManagerUploadProgress.tsx","../../src/manager/gallery/ui/upload/GalleryManagerUpload.tsx","../../src/manager/gallery/ui/upload/GalleryManagerUploadModal.tsx","../../src/manager/gallery/ui/GalleryManagerPage.tsx","../../src/profile/ui/ProfileDesktopImage.tsx","../../src/manager/gateway/ManagerGateway.tsx","../../src/manager/honor/ui/component/header/HonorManagerTabs.tsx","../../src/manager/honor/ui/component/header/HonorManagerTopBar.tsx","../../src/manager/honor/ui/component/header/HonorManagerHeader.tsx","../../src/honor/ui/components/SubmitRecordForm.tsx","../../src/honor/ui/components/SubmitRecordBody.tsx","../../src/manager/honor/ui/component/edit/HonorManagerEditForm.tsx","../../src/manager/honor/ui/component/edit/HonorManagerEditHeader.tsx","../../src/manager/honor/ui/component/edit/HonorManagerEditContent.tsx","../../src/manager/honor/ui/component/edit/HonorManagerEditModal.tsx","../../src/profile/ui/honor/ProfileHonorRecord.tsx","../../src/manager/honor/ui/component/list/HonorManagerListItem.tsx","../../src/assets/icons/Chat.svg?react","../../src/manager/honor/ui/component/NoRecordsMessage.tsx","../../src/manager/honor/ui/component/list/HonorManagerList.tsx","../../src/manager/honor/ui/hook/useRecordEdit.ts","../../src/manager/honor/ui/hook/useRecordRemoval.ts","../../src/manager/honor/ui/component/HonorManagerBody.tsx","../../src/manager/honor/ui/component/HonorManagerPage.tsx","../../src/manager/profile/ui/settings/menu/ProfileSettingsMenuItem.tsx","../../src/manager/profile/ui/settings/menu/ProfileSettingsMenu.tsx","../../src/assets/icons/QrCode.svg?react","../../src/manager/profile/ui/settings/NoProfiles.tsx","../../src/profile/ui/hook/useImageSizes.ts","../../src/manager/profile/ui/settings/ProfileSettingsImage.tsx","../../src/manager/profile/ui/settings/ProfileSettingsInfo.tsx","../../src/assets/icons/Edit.svg?react","../../src/assets/icons/Menu.svg?react","../../src/manager/profile/ui/settings/ProfileSettingsPageHeader.tsx","../../src/manager/profile/ui/settings/ProfileSettingsPage.tsx","../../src/common/ui/component/VpPaper.tsx","../../src/manager/theming/ui/example/ProfileExampleBio.tsx","../../src/assets/demo/DemoEvent.jpg","../../src/profile/ui/events/ProfileEventDescription.tsx","../../src/profile/ui/events/ProfileEventImage.tsx","../../src/manager/theming/ui/example/ProfileExampleEvents.tsx","../../src/assets/demo/DemoPhoto1.jpg","../../src/assets/demo/DemoPhoto2.jpg","../../src/assets/demo/DemoPhoto3.jpg","../../src/assets/demo/DemoPhoto4.jpg","../../src/manager/theming/ui/example/ProfileExampleGallery.tsx","../../src/profile/ui/honor/ProfileHonorRecords.tsx","../../src/manager/theming/ui/example/ProfileExampleHonor.tsx","../../src/profile/ui/navigation/ProfileNavigation.tsx","../../src/manager/theming/ui/example/ThemingManagerProfileExample.tsx","../../src/manager/theming/ui/ThemingManagerControls.tsx","../../src/manager/theming/ui/ThemingManagerPageHeader.tsx","../../src/manager/theming/ui/ThemingManagerSettings.tsx","../../src/theme/palette.ts","../../src/theme/breakpoints.ts","../../src/theme/customSizes.ts","../../src/theme/lightNoise.ts","../../src/theme/shadows.ts","../../src/theme/transitions.ts","../../src/assets/fonts/BluuNextCyrillic.otf","../../src/assets/fonts/BluuNextCyrillic.woff2","../../src/assets/fonts/GolosText.ttf","../../src/theme/typography.ts","../../src/theme/zIndex.ts","../../src/theme/theme.ts","../../src/profile/ui/ProfileThemeProvider.tsx","../../src/manager/theming/ui/ThemingManagerPage.tsx","../../src/manager/ManagerRouter.tsx","../../src/profile/ui/activation/ProfileActivationAuth.tsx","../../src/profile/ui/activation/ProfileActivationDescription.tsx","../../src/profile/ui/activation/ProfileActivationPage.tsx","../../src/profile/ui/events/ProfileEvent.tsx","../../src/profile/ui/hook/useSectionMinHeight.ts","../../src/profile/ui/events/ProfileEvents.tsx","../../src/assets/icons/Video.svg?react","../../src/profile/ui/gallery/GalleryTabs.tsx","../../src/common/ui/hook/useSystemTheme.ts","../../src/common/ui/component/VpSystemThemeProvider.tsx","../../src/profile/ui/gallery/image/ProfileImageCarousel.tsx","../../src/profile/ui/gallery/image/ProfileImageScroller.tsx","../../src/profile/ui/gallery/image/ProfileImageViewer.tsx","../../src/profile/ui/gallery/video/VideoViewerContent.tsx","../../src/profile/ui/gallery/video/ProfileVideoViewer.tsx","../../src/profile/ui/gallery/ProfileGallery.tsx","../../src/assets/icons/Share.svg?react","../../src/assets/icons/QrCodeLarge.svg?react","../../src/profile/ui/header/ProfileAdModal.tsx","../../src/profile/ui/header/ProfilePageHeader.tsx","../../src/profile/ui/honor/NoRecordsMessage.tsx","../../src/honor/ui/components/SubmitRecordHeader.tsx","../../src/honor/ui/components/SubmitRecordContent.tsx","../../src/profile/ui/honor/SubmitRecordModal.tsx","../../src/profile/ui/honor/ProfileHonor.tsx","../../src/profile/ui/navigation/ProfileInfo.tsx","../../src/profile/ui/ProfileBio.tsx","../../src/profile/ui/ProfileImage.tsx","../../src/profile/ui/ProfilePageNoise.tsx","../../src/slideshow/ui/component/control/CloseButton.tsx","../../src/assets/icons/Export.svg?react","../../src/slideshow/ui/component/control/ShareButton.tsx","../../src/assets/icons/Grid.svg?react","../../src/slideshow/ui/component/control/SlideshowGalleryButton.tsx","../../src/slideshow/ui/component/control/SlideshowPlaybackButton.tsx","../../src/assets/icons/Volume.svg?react","../../src/assets/icons/VolumeMute.svg?react","../../src/slideshow/ui/component/control/VolumeButton.tsx","../../src/slideshow/ui/component/control/SlideshowControls.tsx","../../src/slideshow/ui/component/gallery/SlideshowGalleryHeader.tsx","../../src/slideshow/ui/component/gallery/SlideshowGalleryContent.tsx","../../src/slideshow/ui/component/gallery/SlideshowGalleryModal.tsx","../../src/slideshow/ui/component/SlideshowImage.tsx","../../src/slideshow/ui/component/SlideshowIntro.tsx","../../src/slideshow/ui/hook/useVisibilityPause.ts","../../src/slideshow/ui/component/SlideshowContent.tsx","../../src/profile/ui/SlideshowModal.tsx","../../src/profile/ui/ProfilePage.tsx","../../src/profile/ui/gateway/ProfileGateway.tsx","../../src/profile/ProfileRouter.tsx","../../src/routing/createRouter.tsx","../../src/AppRouter.tsx","../../src/AppViewModel.ts","../../src/App.tsx","../../src/AppContainer.ts","../../src/main.tsx"],"sourcesContent":["export const AppConfig = {\n env: import.meta.env.VITE_ENV,\n version: import.meta.env.VERSION,\n sentryDsn: import.meta.env.VITE_SENTRY_DSN,\n apiUrl: import.meta.env.VITE_API_URL ?? '',\n};\n","import * as Sentry from '@sentry/react';\nimport { useEffect } from 'react';\nimport { createRoutesFromChildren, matchRoutes, useLocation, useNavigationType } from 'react-router-dom';\n\nimport { AppConfig } from '@vp/config/AppConfig';\n\nSentry.init({\n dsn: AppConfig.sentryDsn,\n integrations: [\n Sentry.reactRouterV6BrowserTracingIntegration({\n useEffect,\n useLocation,\n useNavigationType,\n createRoutesFromChildren,\n matchRoutes,\n }),\n Sentry.replayIntegration(),\n ],\n environment: AppConfig.env,\n release: AppConfig.version,\n tracesSampleRate: 0.2,\n tracePropagationTargets: ['localhost', `https://${window.location.host}/api`],\n replaysSessionSampleRate: 0.1,\n replaysOnErrorSampleRate: 1.0,\n});\n","import { OwnerModel } from '@vp/auth/core/model/OwnerModel';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { OperationResult } from '@vp/common/core/OperationResult';\n\nexport abstract class AuthRepository {\n abstract register(email: string, password: string, controller?: AbortController): Promise;\n abstract login(email: string, password: string, controller?: AbortController): Promise;\n abstract refresh(tokens: TokensModel, controller?: AbortController): Promise;\n abstract getOwner(controller?: AbortController): Promise;\n abstract sendResetPasswordLink(email: string, controller?: AbortController): Promise;\n abstract restorePassword(password: string, recoveryToken: string, controller?: AbortController): Promise;\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nexport abstract class AuthState {\n abstract readonly authenticated: ReadonlySignal;\n abstract readonly email: ReadonlySignal;\n\n abstract setOwnerEmail(email: string): void;\n abstract reset(): void;\n}\n","import { TokensModel } from '@vp/auth/core/model/TokensModel';\n\nexport abstract class TokensStorage {\n abstract store(tokens: TokensModel): Promise;\n abstract retrieve(): Promise;\n abstract clear(): Promise;\n}\n","export abstract class Analytics {\n abstract trackError(error: unknown): void;\n abstract setUser(user: { id?: string; email: string }): void;\n abstract clearUser(): void;\n}\n","import { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { Analytics } from '@vp/common/core/Analytics';\n\n@injectable()\nexport class LoadOwnerUsecase {\n constructor(\n private readonly authState: AuthState,\n private readonly authRepository: AuthRepository,\n private readonly analytics: Analytics,\n ) {}\n\n async execute(controller?: AbortController): Promise {\n const owner = await this.authRepository.getOwner(controller);\n this.authState.setOwnerEmail(owner.email);\n this.analytics.setUser(owner);\n }\n}\n","import { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class ProfileManagerRepository {\n abstract getProfiles(controller?: AbortController): Promise;\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport type ProfileManagerStatus = 'initial' | 'loading' | 'loaded' | 'error';\n\nexport abstract class ProfileManagerState {\n abstract readonly active: ReadonlySignal;\n abstract readonly profiles: ReadonlySignal;\n abstract readonly status: ReadonlySignal;\n\n abstract loading(): void;\n abstract completed(status: ProfileManagerStatus, profiles?: ProfileModel[]): void;\n abstract getById(id: string): ProfileModel | null;\n abstract setActive(profile: ProfileModel): void;\n abstract update(profile: ProfileModel): void;\n abstract reset(): void;\n}\n","import { injectable } from 'inversify';\n\nimport { ProfileManagerRepository } from '@vp/manager/profile/core/interface/ProfileManagerRepository';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n@injectable()\nexport class LoadProfilesUsecase {\n constructor(\n private readonly profileManagerRepository: ProfileManagerRepository,\n private readonly profileManagerState: ProfileManagerState,\n ) {}\n\n async execute(controller?: AbortController): Promise {\n try {\n this.profileManagerState.loading();\n const profiles = await this.profileManagerRepository.getProfiles(controller);\n this.profileManagerState.completed('loaded', profiles);\n } catch {\n this.profileManagerState.completed('error');\n }\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { LoadOwnerUsecase } from '@vp/auth/core/usecase/LoadOwnerUsecase';\nimport { LoadProfilesUsecase } from '@vp/manager/profile/core/usecase/LoadProfilesUsecase';\n\n@injectable()\nexport class LoginUsecase {\n constructor(\n private readonly authRepository: AuthRepository,\n private readonly tokensStorage: TokensStorage,\n private readonly loadOwnerUsecase: LoadOwnerUsecase,\n private readonly loadProfilesUsecase: LoadProfilesUsecase,\n ) {}\n\n async execute(email: string, password: string, controller?: AbortController): Promise {\n const tokens = await this.authRepository.login(email, password, controller);\n await this.tokensStorage.store(tokens);\n await this.loadOwnerUsecase.execute(controller);\n await this.loadProfilesUsecase.execute(controller);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { Analytics } from '@vp/common/core/Analytics';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n@injectable()\nexport class LogoutUsecase {\n constructor(\n private readonly authState: AuthState,\n private readonly tokensStorage: TokensStorage,\n private readonly profileManagerState: ProfileManagerState,\n private readonly analytics: Analytics,\n ) {}\n\n async execute(): Promise {\n this.authState.reset();\n this.profileManagerState.reset();\n await this.tokensStorage.clear();\n this.analytics.clearUser();\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\n\n@injectable()\nexport class RefreshUsecase {\n constructor(\n private readonly tokensStorage: TokensStorage,\n private readonly authRepository: AuthRepository,\n ) {}\n\n async execute(tokens: TokensModel, controller?: AbortController): Promise {\n const refresh = await this.authRepository.refresh(tokens, controller);\n await this.tokensStorage.store(refresh);\n return refresh;\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { LoadOwnerUsecase } from '@vp/auth/core/usecase/LoadOwnerUsecase';\nimport { LoadProfilesUsecase } from '@vp/manager/profile/core/usecase/LoadProfilesUsecase';\n\n@injectable()\nexport class RegisterUsecase {\n constructor(\n private readonly authRepository: AuthRepository,\n private readonly tokensStorage: TokensStorage,\n private readonly loadOwnerUsecase: LoadOwnerUsecase,\n private readonly loadProfilesUsecase: LoadProfilesUsecase,\n ) {}\n\n async execute(email: string, password: string, controller?: AbortController): Promise {\n const tokens = await this.authRepository.register(email, password, controller);\n await this.tokensStorage.store(tokens);\n await this.loadOwnerUsecase.execute(controller);\n await this.loadProfilesUsecase.execute(controller);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { LoadOwnerUsecase } from '@vp/auth/core/usecase/LoadOwnerUsecase';\n\n@injectable()\nexport class ValidateAuthUsecase {\n constructor(\n private readonly tokensStorage: TokensStorage,\n private readonly authRepository: AuthRepository,\n private readonly loadOwnerUsecase: LoadOwnerUsecase,\n ) {}\n\n async execute(controller?: AbortController): Promise {\n try {\n await this.validateToken(controller);\n await this.loadOwnerIfNeeded();\n } catch {\n await this.tokensStorage.clear();\n }\n }\n\n private async validateToken(controller?: AbortController): Promise {\n const tokens = await this.tokensStorage.retrieve();\n\n if (tokens?.isExpired()) {\n const refresh = await this.authRepository.refresh(tokens, controller);\n await this.tokensStorage.store(refresh);\n }\n }\n\n private async loadOwnerIfNeeded(controller?: AbortController): Promise {\n if (await this.tokensStorage.retrieve()) {\n await this.loadOwnerUsecase.execute(controller);\n }\n }\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class JwtParser {\n parse(token: string): T {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''),\n );\n\n return JSON.parse(jsonPayload);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { JwtParser } from '@vp/common/core/JwtParser';\n\ntype TokenPayload = { exp: number };\n\n@injectable()\nexport class ValidateRecoveryTokenUsecase {\n constructor(private readonly jwtParser: JwtParser) {}\n\n execute(token: string): boolean {\n try {\n const payload = this.jwtParser.parse(token);\n return !this.isExpired(payload);\n } catch {\n return false;\n }\n }\n\n private isExpired(token: TokenPayload): boolean {\n const expiration = new Date(token.exp * 1000);\n return Date.now() > expiration.getTime();\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { LoginUsecase } from '@vp/auth/core/usecase/LoginUsecase';\nimport { LogoutUsecase } from '@vp/auth/core/usecase/LogoutUsecase';\nimport { RefreshUsecase } from '@vp/auth/core/usecase/RefreshUsecase';\nimport { RegisterUsecase } from '@vp/auth/core/usecase/RegisterUsecase';\nimport { ValidateAuthUsecase } from '@vp/auth/core/usecase/ValidateAuthUsecase';\nimport { ValidateRecoveryTokenUsecase } from '@vp/auth/core/usecase/ValidateRecoveryTokenUsecase';\nimport { OperationResult } from '@vp/common/core/OperationResult';\n\n@injectable()\nexport class AuthFacade implements AuthPort {\n readonly email: ReadonlySignal = this.authState.email;\n\n constructor(\n private readonly loginUsecase: LoginUsecase,\n private readonly registerUsecase: RegisterUsecase,\n private readonly tokensStorage: TokensStorage,\n private readonly refreshUsecase: RefreshUsecase,\n private readonly validateAuthUsecase: ValidateAuthUsecase,\n private readonly logoutUsecase: LogoutUsecase,\n private readonly validateRecoveryTokenUsecase: ValidateRecoveryTokenUsecase,\n private readonly authState: AuthState,\n private readonly repository: AuthRepository,\n ) {}\n\n async register(email: string, password: string, controller?: AbortController): Promise {\n await this.registerUsecase.execute(email, password, controller);\n }\n\n async login(email: string, password: string, controller?: AbortController): Promise {\n await this.loginUsecase.execute(email, password, controller);\n }\n\n async getTokens(): Promise {\n return this.tokensStorage.retrieve();\n }\n\n async refresh(tokens: TokensModel, controller?: AbortController): Promise {\n return this.refreshUsecase.execute(tokens, controller);\n }\n\n async validate(controller?: AbortController): Promise {\n await this.validateAuthUsecase.execute(controller);\n }\n\n async logout(): Promise {\n await this.logoutUsecase.execute();\n }\n\n async sendResetPasswordLink(email: string, controller?: AbortController): Promise {\n return await this.repository.sendResetPasswordLink(email, controller);\n }\n\n async restorePassword(password: string, recoveryToken: string, controller?: AbortController): Promise {\n return await this.repository.restorePassword(password, recoveryToken, controller);\n }\n\n validateRecoveryToken(token: string): boolean {\n return this.validateRecoveryTokenUsecase.execute(token);\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { OperationResult } from '@vp/common/core/OperationResult';\n\nexport abstract class AuthPort {\n abstract readonly email: ReadonlySignal;\n\n abstract register(email: string, password: string, controller?: AbortController): Promise;\n abstract login(email: string, password: string, controller?: AbortController): Promise;\n abstract sendResetPasswordLink(email: string, controller?: AbortController): Promise;\n abstract logout(): Promise;\n abstract getTokens(): Promise;\n abstract refresh(tokens: TokensModel, controller?: AbortController): Promise;\n abstract validate(controller?: AbortController): Promise;\n abstract restorePassword(password: string, recoveryToken: string, controller?: AbortController): Promise;\n abstract validateRecoveryToken(token: string): boolean;\n}\n","export class TokensModel {\n constructor(\n readonly access: string,\n readonly refresh: string,\n readonly expiresIn: number,\n ) {}\n\n isExpired(): boolean {\n const expiration = new Date(this.expiresIn * 1000);\n return expiration.getTime() < Date.now();\n }\n}\n","import { injectable } from 'inversify';\n\nimport { OwnerModel } from '@vp/auth/core/model/OwnerModel';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { OwnerResponseDto } from '@vp/auth/data/dto/OwnerResponseDto';\nimport { TokenDto } from '@vp/auth/data/dto/TokenDto';\nimport { TokensResponseDto } from '@vp/auth/data/dto/TokensResponseDto';\nimport { JwtParser } from '@vp/common/core/JwtParser';\n\n@injectable()\nexport class AuthDataMapper {\n constructor(private jwtParser: JwtParser) {}\n\n toOwner(dto: OwnerResponseDto): OwnerModel {\n return { email: dto.email, createdAt: dto.created_at };\n }\n\n toTokens(dto: TokensResponseDto): TokensModel {\n const { exp } = this.jwtParser.parse(dto.access_token);\n return new TokensModel(dto.access_token, dto.refresh_token, exp);\n }\n\n toForgotPasswordDto(email: string): FormData {\n const data = new FormData();\n data.append('email', email);\n return data;\n }\n\n toRestorePasswordDto(password: string): FormData {\n const data = new FormData();\n data.append('password', password);\n return data;\n }\n}\n","export class Success {\n constructor(readonly value: T) {}\n\n static from(value: T): Success {\n return new Success(value);\n }\n\n static empty(): Success {\n return new Success(undefined);\n }\n}\n\nexport class Failure {\n constructor(readonly message: string) {}\n\n static from(message: string): Failure {\n return new Failure(message);\n }\n}\n\nexport type OperationResult = Success | Failure;\n","import { AxiosError, isAxiosError } from 'axios';\nimport { injectable } from 'inversify';\n\n@injectable()\nexport class ErrorExtractor {\n extract(error: unknown): string {\n if (isAxiosError(error)) {\n return this.extractAxiosError(error);\n }\n\n if (error instanceof Error) {\n return error.message;\n }\n\n return '';\n }\n\n private extractAxiosError(error: AxiosError<{ error: string }>): string {\n return error.response?.data?.error || '';\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { OwnerModel } from '@vp/auth/core/model/OwnerModel';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { AuthDataMapper } from '@vp/auth/data/AuthDataMapper';\nimport { OwnerResponseDto } from '@vp/auth/data/dto/OwnerResponseDto';\nimport { TokensResponseDto } from '@vp/auth/data/dto/TokensResponseDto';\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\n\nexport enum AuthEndpoint {\n Register = '/api/admin/auth/sign_up',\n Login = '/api/admin/auth/sign_in',\n Refresh = '/api/admin/auth/refresh',\n GetOwner = '/api/admin/me',\n Passwords = '/api/admin/passwords',\n}\n\n@injectable()\nexport class RestAuthRepository implements AuthRepository {\n constructor(\n private readonly http: Axios,\n private readonly authDataMapper: AuthDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n ) {}\n\n async register(email: string, password: string, controller?: AbortController): Promise {\n const { data } = await this.http.post(AuthEndpoint.Register, { email, password }, { signal: controller?.signal });\n return this.authDataMapper.toTokens(data);\n }\n\n async login(email: string, password: string, controller?: AbortController): Promise {\n const { data } = await this.http.post(AuthEndpoint.Login, { email, password }, { signal: controller?.signal });\n return this.authDataMapper.toTokens(data);\n }\n\n async refresh(tokens: TokensModel, controller?: AbortController): Promise {\n const headers = { Authorization: `Bearer ${tokens.refresh}` };\n const options = { skipAuth: true, headers, signal: controller?.signal };\n const { data } = await this.http.put(AuthEndpoint.Refresh, {}, options);\n return this.authDataMapper.toTokens(data);\n }\n\n async getOwner(controller?: AbortController): Promise {\n const { data } = await this.http.get(AuthEndpoint.GetOwner, { signal: controller?.signal });\n return this.authDataMapper.toOwner(data);\n }\n\n async sendResetPasswordLink(email: string, controller?: AbortController): Promise {\n try {\n const data = this.authDataMapper.toForgotPasswordDto(email);\n await this.http.post(AuthEndpoint.Passwords, data, { skipAuth: true, signal: controller?.signal });\n return Success.empty();\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n\n async restorePassword(password: string, recoveryToken: string, controller?: AbortController): Promise {\n try {\n const data = this.authDataMapper.toRestorePasswordDto(password);\n await this.http.put(`${AuthEndpoint.Passwords}?token=${recoveryToken}`, data, { skipAuth: true, signal: controller?.signal });\n return Success.empty();\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n}\n","export type Subscriber = (state: RouterState) => void;\nexport type Unsubscribe = () => void;\nexport type SubscriberId = number;\n\nexport interface RouterState {\n pathname: string;\n search: string;\n hash: string;\n}\n\nexport class RouterSubscribers {\n private readonly subscribers: Map = new Map();\n private readonly generator: Generator = this.idGenerator();\n\n add(subscriber: Subscriber, state: RouterState): Unsubscribe {\n const id = this.generator.next().value;\n this.subscribers.set(id, subscriber);\n subscriber(state);\n return () => this.subscribers.delete(id);\n }\n\n notify(state: RouterState): void {\n this.subscribers.forEach(subscriber => {\n subscriber(state);\n });\n }\n\n private *idGenerator(): Generator {\n let number = 0;\n while (true) yield number++;\n }\n}\n","import { injectable } from 'inversify';\nimport { createBrowserRouter, matchPath } from 'react-router-dom';\n\nimport { RouterState, RouterSubscribers, Subscriber, Unsubscribe } from '@vp/routing/RouterSubscribers';\n\ntype Router = ReturnType;\n\nexport abstract class RouterService {\n abstract getParams(pattern: string): Record;\n abstract match(path: string): boolean;\n abstract isOn(pattern: string): boolean;\n abstract subscribe(subscriber: Subscriber): Unsubscribe;\n abstract notifySubscribers(): void;\n abstract navigate(...args: Parameters): Promise;\n abstract getCurrentState(): RouterState;\n}\n\n@injectable()\nexport class RouterServiceImpl implements RouterService {\n private readonly subscribers: RouterSubscribers;\n\n constructor(private readonly router: Router) {\n this.subscribers = new RouterSubscribers();\n }\n\n getParams(pattern: string): Record {\n const match = matchPath(pattern, window.location.pathname);\n return (match?.params as Record) ?? {};\n }\n\n match(path: string): boolean {\n const isPattern = path.includes(':');\n if (!isPattern) return window.location.pathname.includes(path);\n return !!matchPath(path, window.location.pathname);\n }\n\n isOn(pattern: string): boolean {\n const match = matchPath(pattern, window.location.pathname);\n return !!match;\n }\n\n subscribe(subscriber: Subscriber): Unsubscribe {\n return this.subscribers.add(subscriber, this.getCurrentState());\n }\n\n notifySubscribers(): void {\n this.subscribers.notify(this.getCurrentState());\n }\n\n async navigate(...args: Parameters): Promise {\n return this.router.navigate(...args);\n }\n\n getCurrentState(): RouterState {\n const { pathname, search, hash } = window.location;\n return { pathname, search, hash };\n }\n}\n","import { Axios, AxiosError, AxiosRequestConfig, HttpStatusCode, isAxiosError } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\nimport { AuthEndpoint } from '@vp/auth/data/RestAuthRepository';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class AuthInterceptorManager {\n constructor(\n private readonly instance: Axios,\n private readonly authPort: AuthPort,\n private readonly routerService: RouterService,\n ) {}\n\n attach(): void {\n this.attachTokenInterceptor();\n this.attachRetryInterceptor();\n }\n\n private attachTokenInterceptor(): void {\n this.instance.interceptors.request.use(async config => {\n const tokens = await this.authPort.getTokens();\n if (tokens && !config.skipAuth) this.attachTokenToRequest(config, tokens);\n return config;\n });\n }\n\n private attachRetryInterceptor(): void {\n this.instance.interceptors.response.use(\n response => response,\n async error => {\n const tokens = await this.authPort.getTokens();\n\n if (!this.shouldRefreshAndRetry(error) || !tokens) {\n this.navigateToLoginIfNeeded(error);\n return Promise.reject(error);\n }\n\n const refresh = await this.tryToRefresh(tokens);\n\n if (!(refresh instanceof TokensModel)) {\n return Promise.reject(refresh);\n }\n\n const config = this.createRetryConfig(error, refresh);\n return this.instance.request(config);\n },\n );\n }\n\n private async tryToRefresh(tokens: TokensModel): Promise {\n try {\n return await this.authPort.refresh(tokens);\n } catch (error) {\n void this.routerService.navigate('/auth/login');\n return error;\n }\n }\n\n private createRetryConfig(error: AxiosError, tokens: TokensModel): AxiosRequestConfig {\n const config: AxiosRequestConfig = {\n ...error.config,\n retried: true,\n headers: { ...error.config?.headers },\n };\n this.attachTokenToRequest(config, tokens);\n return config;\n }\n\n private shouldRefreshAndRetry(error: unknown): boolean {\n if (!isAxiosError(error)) return false;\n const isUnauthorized = error.response?.status === HttpStatusCode.Unauthorized;\n const isRetried = error.config?.retried;\n const isRefreshRequest = error.config?.url?.includes(AuthEndpoint.Refresh);\n const isLoginRequest = error.config?.url?.includes(AuthEndpoint.Login);\n return isUnauthorized && !isRetried && !isRefreshRequest && !isLoginRequest;\n }\n\n private attachTokenToRequest(config: AxiosRequestConfig, tokens: TokensModel): void {\n if (!tokens.isExpired()) {\n config.headers = { ...config.headers, ...this.toBearerTokenAuthorization(tokens) };\n }\n }\n\n private toBearerTokenAuthorization(tokens: TokensModel): Record {\n return { Authorization: `Bearer ${tokens.access}` };\n }\n\n private navigateToLoginIfNeeded(error: unknown): void {\n if (!isAxiosError(error)) {\n return;\n }\n\n const isUnauthorized = error.response?.status === HttpStatusCode.Unauthorized;\n const isGetOwnerRequest = error.config?.url?.includes(AuthEndpoint.GetOwner);\n const isLoginRequest = error.config?.url?.includes(AuthEndpoint.Login);\n\n if (isUnauthorized && !isGetOwnerRequest && !isLoginRequest) {\n void this.routerService.navigate('/auth/login');\n }\n }\n}\n","import { injectable } from 'inversify';\n\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { TokensModel } from '@vp/auth/core/model/TokensModel';\n\n@injectable()\nexport class LocalTokensStorage implements TokensStorage {\n private readonly accessTokenKey: string = 'accessToken';\n private readonly refreshTokenKey: string = 'refreshToken';\n private readonly expiresInKey: string = 'expiresIn';\n\n async store(tokens: TokensModel): Promise {\n localStorage.setItem(this.accessTokenKey, tokens.access);\n localStorage.setItem(this.refreshTokenKey, tokens.refresh);\n localStorage.setItem(this.expiresInKey, tokens.expiresIn.toString());\n }\n\n async retrieve(): Promise {\n const access = localStorage.getItem(this.accessTokenKey);\n const refresh = localStorage.getItem(this.refreshTokenKey);\n const expiresIn = localStorage.getItem(this.expiresInKey);\n\n if (!access || !refresh || !expiresIn) {\n return null;\n }\n\n return new TokensModel(access, refresh, parseInt(expiresIn, 10));\n }\n\n async clear(): Promise {\n localStorage.removeItem(this.accessTokenKey);\n localStorage.removeItem(this.refreshTokenKey);\n localStorage.removeItem(this.expiresInKey);\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\n\n@injectable()\nexport class SignalsAuthState implements AuthState {\n readonly authenticated: Signal = signal(false);\n readonly email: Signal = signal('');\n\n setOwnerEmail(email: string): void {\n this.email.value = email;\n this.authenticated.value = !!email;\n }\n\n reset(): void {\n this.email.value = '';\n this.authenticated.value = false;\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nexport interface ViewModelInit {\n init(): void;\n}\n\nexport interface ViewModelDispose {\n dispose(): void;\n}\n\n@injectable()\nexport abstract class ViewModel

{\n protected props: Signal

= signal(null);\n private lastProps: P | null = null;\n\n bindProps(props?: P): void {\n if (props && !this.compareProps(this.lastProps, props)) {\n this.lastProps = props;\n this.props.value = props;\n }\n }\n\n private compareProps(a: P | null, b: P | null): boolean {\n if (a === b) return true;\n if (a === null || b === null) return false;\n\n const keysA = Reflect.ownKeys(a);\n const keysB = Reflect.ownKeys(b);\n\n return keysA.length === keysB.length && keysA.every(key => Reflect.has(b, key) && Reflect.get(a, key) === Reflect.get(b, key));\n }\n}\n","import { injectable } from 'inversify';\nimport { enqueueSnackbar, SnackbarOrigin } from 'notistack';\nimport { FC } from 'react';\n\nimport { AppNotificationProps } from '@vp/notification/AppNotification';\n\nexport interface Notification {\n message: string;\n secondaryMessage?: string;\n variant: AppNotificationProps['variant'];\n Icon?: FC;\n anchorOrigin?: SnackbarOrigin;\n autoHideDuration?: number | null;\n}\n\n@injectable()\nexport class AppNotificationService {\n enqueue(notification: Notification): void {\n enqueueSnackbar(notification.message, {\n variant: notification.variant,\n secondaryMessage: notification.secondaryMessage,\n Icon: notification.Icon,\n anchorOrigin: notification.anchorOrigin,\n autoHideDuration: notification.autoHideDuration,\n });\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\n\nexport type ForgotPasswordFormData = {\n email: string;\n};\n\n@injectable()\nexport class ForgotPasswordViewModel extends ViewModel implements ViewModelDispose {\n readonly loading: Signal = signal(false);\n\n private controller?: AbortController;\n\n constructor(\n private readonly authPort: AuthPort,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n sendPasswordResetLink = async ({ email }: ForgotPasswordFormData): Promise => {\n this.controller = new AbortController();\n this.loading.value = true;\n\n const result = await this.authPort.sendResetPasswordLink(email, this.controller);\n\n if (result instanceof Success) {\n this.showSuccessNotification();\n } else {\n this.showErrorNotification(result.message);\n }\n\n this.loading.value = false;\n };\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Ссылка для восстановления пароля была отправлена на вашу почту',\n secondaryMessage: 'Проверьте папку \"Спам\", если вы не получили письмо.',\n autoHideDuration: 10_000,\n });\n }\n\n private showErrorNotification(message: string): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: message || 'Не удалось отправить письмо, попробуйте позже.',\n });\n }\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class SplashService {\n private readonly splashId: string = 'vp-splash';\n private readonly finishedClass: string = 'finished';\n private readonly hiddenClass: string = 'hidden';\n private readonly animationTime: number = 500;\n\n show(): void {\n const splash = this.getSplash();\n splash?.classList.remove(this.finishedClass);\n splash?.classList.remove(this.hiddenClass);\n }\n\n async hide(): Promise {\n const splash = this.getSplash();\n if (!splash) return;\n\n /**\n * Add extra time to prevent blinking.\n */\n await this.sleep(this.animationTime);\n splash.classList.add(this.finishedClass);\n\n /**\n * Wait until the animation finishes.\n */\n await this.sleep(this.animationTime);\n splash.classList.add(this.hiddenClass);\n }\n\n private getSplash(): HTMLElement | null {\n return document.getElementById(this.splashId);\n }\n\n private async sleep(time: number): Promise {\n return new Promise(resolve => setTimeout(resolve, time));\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { SplashService } from '@vp/common/ui/SplashService';\nimport { ViewModel, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class GuardViewModel extends ViewModel implements ViewModelInit {\n readonly authenticated: ReadonlySignal = this.authState.authenticated;\n\n constructor(\n private readonly authState: AuthState,\n private readonly routerService: RouterService,\n private readonly splashService: SplashService,\n ) {\n super();\n }\n\n async init(): Promise {\n if (!this.authenticated.value) {\n await this.routerService.navigate('/auth/login', { replace: true });\n await this.splashService.hide();\n }\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfileLoadingState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class ProfilePort {\n abstract readonly profile: ReadonlySignal;\n abstract readonly loadingState: ReadonlySignal;\n abstract readonly canActivateProfile: ReadonlySignal;\n abstract readonly profileForActivation: ReadonlySignal;\n\n abstract loadProfile(id: string, controller?: AbortController): Promise;\n abstract activateProfile(id: string, controller?: AbortController): Promise;\n abstract storeProfileForActivation(id: string): void;\n abstract resetProfileForActivation(): void;\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { RouterService } from '@vp/routing/RouterService';\n\nexport type LoginFormData = {\n email: string;\n password: string;\n};\n\n@injectable()\nexport class LoginViewModel extends ViewModel implements ViewModelDispose {\n readonly loading: Signal = signal(false);\n private controller?: AbortController;\n\n constructor(\n private readonly authPort: AuthPort,\n private readonly profilePort: ProfilePort,\n private readonly routerService: RouterService,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n login = async ({ email, password }: LoginFormData): Promise => {\n try {\n this.controller = new AbortController();\n this.loading.value = true;\n await this.authPort.login(email, password, this.controller);\n this.handleLoginSuccess();\n } catch {\n this.showErrorNotification();\n } finally {\n this.loading.value = false;\n }\n };\n\n dispose(): void {\n this.controller?.abort();\n }\n\n private handleLoginSuccess(): void {\n if (this.profilePort.profileForActivation.value) {\n void this.routerService.navigate(`/p/${this.profilePort.profileForActivation.value}`);\n } else {\n void this.routerService.navigate('/ps');\n }\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Ошибка при входе',\n });\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { RouterService } from '@vp/routing/RouterService';\n\nexport type RegisterFormData = {\n email: string;\n password: string;\n passwordConfirmation: string;\n termsAndCondition: boolean;\n rights: boolean;\n};\n\n@injectable()\nexport class RegisterViewModel extends ViewModel implements ViewModelDispose {\n readonly registering: Signal = signal(false);\n private controller?: AbortController;\n\n constructor(\n private readonly authPort: AuthPort,\n private readonly profilePort: ProfilePort,\n private readonly routerService: RouterService,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n register = async ({ email, password }: RegisterFormData): Promise => {\n try {\n this.controller = new AbortController();\n this.registering.value = true;\n await this.authPort.register(email, password, this.controller);\n this.handleRegisterSuccess();\n } catch {\n this.showErrorNotification();\n } finally {\n this.registering.value = false;\n }\n };\n\n dispose(): void {\n this.controller?.abort();\n }\n\n private handleRegisterSuccess(): void {\n if (this.profilePort.profileForActivation.value) {\n void this.routerService.navigate(`/p/${this.profilePort.profileForActivation.value}`);\n } else {\n void this.routerService.navigate('/ps');\n }\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Ошибка при регистрации',\n });\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { RouterService } from '@vp/routing/RouterService';\n\nexport type RestorePasswordFormData = {\n password: string;\n passwordConfirmation: string;\n};\n\n@injectable()\nexport class RestorePasswordViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly loading: Signal = signal(false);\n\n private recoveryToken?: string | null;\n private controller?: AbortController;\n private validated: boolean = false;\n\n constructor(\n private readonly router: RouterService,\n private readonly authPort: AuthPort,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n init(): void {\n if (!this.validated) {\n this.extractRecoveryToken();\n this.validateRecoveryToken();\n this.validated = true;\n }\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n restorePassword = async ({ password }: RestorePasswordFormData): Promise => {\n if (!this.recoveryToken) return;\n\n this.loading.value = true;\n this.controller = new AbortController();\n\n const result = await this.authPort.restorePassword(password, this.recoveryToken, this.controller);\n\n if (result instanceof Success) {\n this.showSuccessNotification();\n this.navigateToProfilesManager();\n } else {\n this.showErrorNotification(result.message);\n }\n\n this.loading.value = false;\n };\n\n private extractRecoveryToken(): void {\n const search = new URLSearchParams(window.location.search);\n this.recoveryToken = search.get('rt');\n }\n\n private validateRecoveryToken(): void {\n if (!this.recoveryToken || !this.authPort.validateRecoveryToken(this.recoveryToken)) {\n this.showTokenErrorNotification();\n void this.router.navigate('/auth/login', { replace: true });\n }\n }\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Пароль успешно изменен',\n });\n }\n\n private showErrorNotification(message: string): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: message || 'Не удалось установить новый пароль.',\n });\n }\n\n private showTokenErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: 'Срок действия токена для восстановления пароля истек, либо он недействителен.',\n autoHideDuration: 10_000,\n });\n }\n\n private navigateToProfilesManager(): void {\n void this.router.navigate('/ps');\n }\n}\n","import { Container, ContainerModule, interfaces } from 'inversify';\n\nexport abstract class BaseModule {\n abstract readonly module: ContainerModule;\n protected readonly imports: BaseModule[] = [];\n\n initialize(container: Container): void {\n this.initializeImports(container);\n }\n\n import(Modules: interfaces.Newable[], ...registry: Parameters): void {\n for (const Module of Modules) {\n const instance = new Module();\n instance.module.registry(...registry);\n this.imports.push(instance);\n }\n }\n\n private initializeImports(container: Container): void {\n for (const module of this.imports) {\n module.initialize?.(container);\n }\n }\n}\n","import { Container, ContainerModule } from 'inversify';\n\nimport { AuthFacade } from '@vp/auth/core/AuthFacade';\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { AuthRepository } from '@vp/auth/core/interface/AuthRepository';\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { TokensStorage } from '@vp/auth/core/interface/TokensStorage';\nimport { LoadOwnerUsecase } from '@vp/auth/core/usecase/LoadOwnerUsecase';\nimport { LoginUsecase } from '@vp/auth/core/usecase/LoginUsecase';\nimport { LogoutUsecase } from '@vp/auth/core/usecase/LogoutUsecase';\nimport { RefreshUsecase } from '@vp/auth/core/usecase/RefreshUsecase';\nimport { RegisterUsecase } from '@vp/auth/core/usecase/RegisterUsecase';\nimport { ValidateAuthUsecase } from '@vp/auth/core/usecase/ValidateAuthUsecase';\nimport { ValidateRecoveryTokenUsecase } from '@vp/auth/core/usecase/ValidateRecoveryTokenUsecase';\nimport { AuthDataMapper } from '@vp/auth/data/AuthDataMapper';\nimport { AuthInterceptorManager } from '@vp/auth/data/AuthInterceptorManager';\nimport { LocalTokensStorage } from '@vp/auth/data/LocalTokensStorage';\nimport { RestAuthRepository } from '@vp/auth/data/RestAuthRepository';\nimport { SignalsAuthState } from '@vp/auth/data/SignalsAuthState';\nimport { ForgotPasswordViewModel } from '@vp/auth/ui/forgot-password/ForgotPasswordViewModel';\nimport { GuardViewModel } from '@vp/auth/ui/guard/GuardViewModel';\nimport { LoginViewModel } from '@vp/auth/ui/login/LoginViewModel';\nimport { RegisterViewModel } from '@vp/auth/ui/register/RegisterViewModel';\nimport { RestorePasswordViewModel } from '@vp/auth/ui/restore-password/RestorePasswordViewModel';\nimport { BaseModule } from '@vp/common/BaseModule';\n\nexport class AuthModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(RestAuthRepository).toSelf().inSingletonScope();\n\n bind(AuthRepository)\n .toDynamicValue(context => context.container.get(RestAuthRepository))\n .inSingletonScope();\n\n bind(AuthFacade).toSelf().inSingletonScope();\n\n bind(AuthPort)\n .toDynamicValue(context => context.container.get(AuthFacade))\n .inSingletonScope();\n\n bind(RegisterViewModel).toSelf().inTransientScope();\n bind(LoginViewModel).toSelf().inTransientScope();\n bind(GuardViewModel).toSelf().inTransientScope();\n bind(ForgotPasswordViewModel).toSelf().inTransientScope();\n bind(RestorePasswordViewModel).toSelf().inTransientScope();\n\n bind(LoginUsecase).toSelf().inSingletonScope();\n bind(RefreshUsecase).toSelf().inSingletonScope();\n bind(RegisterUsecase).toSelf().inSingletonScope();\n bind(AuthInterceptorManager).toSelf().inSingletonScope();\n bind(LocalTokensStorage).toSelf().inSingletonScope();\n bind(AuthDataMapper).toSelf().inSingletonScope();\n\n bind(TokensStorage)\n .toDynamicValue(context => context.container.get(LocalTokensStorage))\n .inSingletonScope();\n\n bind(SignalsAuthState).toSelf().inSingletonScope();\n\n bind(AuthState)\n .toDynamicValue(context => context.container.get(SignalsAuthState))\n .inSingletonScope();\n\n bind(ValidateAuthUsecase).toSelf().inSingletonScope();\n bind(LoadOwnerUsecase).toSelf().inSingletonScope();\n bind(LogoutUsecase).toSelf().inSingletonScope();\n bind(ValidateRecoveryTokenUsecase).toSelf().inSingletonScope();\n });\n\n override initialize(container: Container): void {\n super.initialize(container);\n container.get(AuthInterceptorManager).attach();\n }\n}\n","import axios, { Axios, isCancel } from 'axios';\n\nimport { AppConfig } from '@vp/config/AppConfig';\n\nexport function HttpClientFactory(): Axios {\n const instance = axios.create({ baseURL: AppConfig.apiUrl, timeout: 60_000 });\n\n /**\n * This proxy wraps all Axios methods in a try-catch to prevent throwing cancellation errors.\n * The goal is to ensure that, when a request is cancelled, no code following the 'await axios.request(...)' is executed.\n */\n return new Proxy(instance, {\n get: (target, prop, receiver): unknown => {\n const originalProperty = Reflect.get(target, prop, receiver);\n\n if (typeof originalProperty === 'function') {\n return async (...args: unknown[]): Promise => {\n try {\n return await originalProperty.apply(target, args);\n } catch (error) {\n if (!isCancel(error)) throw error;\n return new Promise(() => {});\n }\n };\n }\n\n return originalProperty;\n },\n });\n}\n","import * as Sentry from '@sentry/browser';\nimport { injectable } from 'inversify';\n\nimport { Analytics } from '@vp/common/core/Analytics';\n\n@injectable()\nexport class SentryAnalytics implements Analytics {\n setUser(user: { id: string; email: string }): void {\n Sentry.setUser(user);\n }\n\n trackError(error: unknown): void {\n if (error instanceof Error) {\n Sentry.captureException(error);\n } else {\n Sentry.captureMessage(error as string);\n }\n }\n\n clearUser(): void {\n Sentry.setUser(null);\n }\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class DateFormatter {\n toLocaleDate(date: string): string {\n if (!date) return '';\n\n return new Date(date).toLocaleDateString('ru-RU', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n }\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class TimeAgoFormatter {\n getTimeAgo(date: Date): string {\n const timestamp = date.getTime();\n const now = Date.now();\n const secondsPast = Math.floor((now - timestamp) / 1000);\n\n if (secondsPast < 60) {\n return `только что`;\n }\n if (secondsPast < 3600) {\n const minutes = Math.floor(secondsPast / 60);\n return `${minutes} ${this.getRussianNumeralForm(minutes, 'минуту', 'минуты', 'минут')} назад`;\n }\n if (secondsPast < 86400) {\n const hours = Math.floor(secondsPast / 3600);\n return `${hours} ${this.getRussianNumeralForm(hours, 'час', 'часа', 'часов')} назад`;\n }\n if (secondsPast < 604800) {\n const days = Math.floor(secondsPast / 86400);\n return `${days} ${this.getRussianNumeralForm(days, 'день', 'дня', 'дней')} назад`;\n }\n if (secondsPast < 2592000) {\n const days = Math.floor(secondsPast / 86400);\n return `${days} ${this.getRussianNumeralForm(days, 'день', 'дня', 'дней')} назад`;\n }\n if (secondsPast < 31536000) {\n const months = Math.floor(secondsPast / 2592000);\n return `${months} ${this.getRussianNumeralForm(months, 'месяц', 'месяца', 'месяцев')} назад`;\n }\n\n const years = Math.floor(secondsPast / 31536000);\n return `${years} ${this.getRussianNumeralForm(years, 'год', 'года', 'лет')} назад`;\n }\n\n private getRussianNumeralForm(number: number, singleForm: string, fewForm: string, pluralForm: string): string {\n const lastTwoDigits = Math.abs(number) % 100;\n const lastDigit = lastTwoDigits % 10;\n\n if (lastTwoDigits > 10 && lastTwoDigits < 20) {\n return pluralForm;\n }\n if (lastDigit > 1 && lastDigit < 5) {\n return fewForm;\n }\n if (lastDigit == 1) {\n return singleForm;\n }\n\n return pluralForm;\n }\n}\n","import { Axios } from 'axios';\nimport { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { Analytics } from '@vp/common/core/Analytics';\nimport { JwtParser } from '@vp/common/core/JwtParser';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { HttpClientFactory } from '@vp/common/data/HttpClientFactory';\nimport { SentryAnalytics } from '@vp/common/data/SentryAnalytics';\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { SplashService } from '@vp/common/ui/SplashService';\nimport { TimeAgoFormatter } from '@vp/common/ui/TimeAgoFormatter';\n\nexport class CommonModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(SplashService).toSelf().inSingletonScope();\n bind(SentryAnalytics).toSelf().inSingletonScope();\n\n bind(TimeAgoFormatter).toSelf().inSingletonScope();\n bind(DateFormatter).toSelf().inSingletonScope();\n bind(JwtParser).toSelf().inSingletonScope();\n\n bind(ErrorExtractor).toSelf().inSingletonScope();\n bind(Axios).toDynamicValue(HttpClientFactory).inSingletonScope();\n\n bind(Analytics)\n .toDynamicValue(context => context.container.get(SentryAnalytics))\n .inSingletonScope();\n });\n}\n","import { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport abstract class HonorSubmitRepository {\n abstract submitHonorRecord(record: HonorRecordModel, profileId: string, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\nimport { HonorSubmitRepository } from '@vp/honor/core/interface/HonorSubmitRepository';\nimport { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\n@injectable()\nexport class SubmitHonorRecordUsecase {\n constructor(private readonly honorSubmitRepository: HonorSubmitRepository) {}\n\n async execute(record: HonorRecordModel, profileId: string, controller?: AbortController): Promise {\n return await this.honorSubmitRepository.submitHonorRecord(record, profileId, controller);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorSubmitPort } from '@vp/honor/core/interface/HonorSubmitPort';\nimport { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { SubmitHonorRecordUsecase } from '@vp/honor/core/usecase/SubmitHonorRecordUsecase';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\n@injectable()\nexport class HonorSubmitFacade implements HonorSubmitPort {\n constructor(private submitHonorRecordUsecase: SubmitHonorRecordUsecase) {}\n\n async submitHonorRecord(record: HonorRecordModel, profileId: string, controller?: AbortController): Promise {\n return await this.submitHonorRecordUsecase.execute(record, profileId, controller);\n }\n}\n","import { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport abstract class HonorSubmitPort {\n abstract submitHonorRecord(record: HonorRecordModel, profileId: string, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { ProfileThemeMode, ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\nimport { ProfileVideoModel } from '@vp/profile/core/model/ProfileVideoModel';\nimport { ImageResponseDto } from '@vp/profile/data/dto/ImageResponseDto';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { TributeResponseDto } from '@vp/profile/data/dto/TributeResponseDto';\nimport { VideoResponseDto } from '@vp/profile/data/dto/VideoResponseDto';\n\n@injectable()\nexport class ProfileDataMapper {\n private themeModes: Set = new Set(['dark', 'light']);\n\n toProfile(dto: ProfileResponseDto): ProfileModel {\n return {\n id: dto.id,\n name: dto.name,\n bio: dto.bio ?? '',\n birthDate: dto.date_of_birth ?? '',\n deathDate: dto.date_of_death ?? '',\n image: this.toImage(dto),\n photos: this.toPhotos(dto),\n videos: this.toVideos(dto),\n events: this.toEvents(dto),\n honorRecords: this.toHonorRecords(dto),\n theme: this.toTheme(dto),\n slideshowAudio: dto.settings?.slideshow_melody ?? '',\n active: dto.active,\n premium: dto.premium ?? false,\n };\n }\n\n toHonorRecord(tribute: TributeResponseDto): ProfileHonorRecordModel {\n return {\n id: tribute.id.toString(),\n author: tribute.author,\n text: tribute.text,\n date: tribute.created_at,\n approved: tribute.approved,\n };\n }\n\n toPhoto(image: ImageResponseDto): ProfilePhotoModel {\n return {\n id: image.id.toString(),\n hash: image.blurhash,\n url: image.url,\n };\n }\n\n toVideo(video: VideoResponseDto): ProfileVideoModel {\n return {\n id: video.id.toString(),\n url: video.url,\n thumbnail: video.thumbnail,\n thumbnailHash: video.blurhash,\n };\n }\n\n private toPhotos({ images = [] }: ProfileResponseDto): ProfilePhotoModel[] {\n return images.map(image => this.toPhoto(image));\n }\n\n private toEvents({ timelines = [] }: ProfileResponseDto): ProfileEventModel[] {\n return timelines.map(timeline => {\n const id = timeline.id.toString();\n const image = timeline.image?.url ?? '';\n const hash = timeline.image?.blurhash ?? '';\n\n return { id, date: timeline.date, description: timeline.description, hash, image };\n });\n }\n\n private toVideos({ videos = [] }: ProfileResponseDto): ProfileVideoModel[] {\n return videos.map(video => this.toVideo(video));\n }\n\n private toHonorRecords({ tributes = [] }: ProfileResponseDto): ProfileHonorRecordModel[] {\n return tributes.filter(({ approved }) => approved).map(tribute => this.toHonorRecord(tribute));\n }\n\n private toImage(dto: ProfileResponseDto): ProfilePhotoModel {\n return {\n id: dto.avatar?.id?.toString() ?? '',\n hash: dto.avatar?.blurhash ?? '',\n url: dto.avatar?.url ?? '',\n };\n }\n\n private toTheme(dto: ProfileResponseDto): ProfileThemeModel {\n const isValid = this.themeModes.has(dto.settings?.background_mode as ProfileThemeMode);\n const mode = isValid ? (dto.settings?.background_mode as ProfileThemeMode) : 'dark';\n return { color: null, mode };\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { HonorSubmitRepository } from '@vp/honor/core/interface/HonorSubmitRepository';\nimport { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestHonorSubmitRepository implements HonorSubmitRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n ) {}\n\n async submitHonorRecord(record: HonorRecordModel, profileId: string, controller?: AbortController): Promise {\n const body = { author: record.name, text: record.text };\n const { data } = await this.http.post(`/api/tributes?profile_id=${profileId}`, body, { signal: controller?.signal });\n return this.profileDataMapper.toHonorRecord(data);\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { HonorSubmitPort } from '@vp/honor/core/interface/HonorSubmitPort';\nimport { HonorRecordModel } from '@vp/honor/core/model/HonorRecordModel';\nimport { SubmitRecordBodyProps } from '@vp/honor/ui/components/SubmitRecordBody';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\n@injectable()\nexport class HonorSubmitViewModel extends ViewModel implements ViewModelDispose {\n readonly submitting: Signal = signal(false);\n private controller?: AbortController;\n\n constructor(private readonly honorPort: HonorSubmitPort) {\n super();\n }\n\n handleFormSubmit = async (record: HonorRecordModel): Promise => {\n this.props.value?.handleBeforeSubmission && this.props.value.handleBeforeSubmission();\n const { status, record: newRecord } = await this.submit(record, this.props.value!.profileId);\n this.props.value?.handleSubmissionResult(status, newRecord);\n\n return status;\n };\n\n private async submit(\n record: HonorRecordModel,\n profileId: string,\n ): Promise<{ status: ProfileHonorNotificationStatus; record: ProfileHonorRecordModel | null }> {\n this.controller = new AbortController();\n\n this.submitting.value = true;\n let status: ProfileHonorNotificationStatus = 'success';\n let newRecord: ProfileHonorRecordModel | null = null;\n\n try {\n newRecord = await this.honorPort.submitHonorRecord(record, profileId, this.controller);\n } catch {\n status = 'error';\n }\n\n this.submitting.value = false;\n return { status, record: newRecord };\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { HonorSubmitFacade } from '@vp/honor/core/HonorSubmitFacade';\nimport { HonorSubmitPort } from '@vp/honor/core/interface/HonorSubmitPort';\nimport { HonorSubmitRepository } from '@vp/honor/core/interface/HonorSubmitRepository';\nimport { SubmitHonorRecordUsecase } from '@vp/honor/core/usecase/SubmitHonorRecordUsecase';\nimport { RestHonorSubmitRepository } from '@vp/honor/data/RestHonorSubmitRepository';\nimport { HonorSubmitViewModel } from '@vp/honor/ui/HonorSubmitViewModel';\n\nexport class HonorModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(SubmitHonorRecordUsecase).toSelf().inSingletonScope();\n bind(HonorSubmitFacade).toSelf().inSingletonScope();\n bind(RestHonorSubmitRepository).toSelf().inSingletonScope();\n\n bind(HonorSubmitViewModel).toSelf().inTransientScope();\n\n bind(HonorSubmitRepository)\n .toDynamicValue(context => context.container.get(RestHonorSubmitRepository))\n .inSingletonScope();\n\n bind(HonorSubmitPort)\n .toDynamicValue(context => context.container.get(HonorSubmitFacade))\n .inSingletonScope();\n });\n}\n","import { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class AvatarManagerRepository {\n abstract upload(profileId: string, avatarFile: File, controller?: AbortController): Promise;\n abstract remove(profileId: string, avatarId: string, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\nimport { AvatarManagerRepository } from '@vp/manager/avatar/core/interfaces/AvatarManagerRepository';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n\n@injectable()\nexport class RemoveAvatarUsecase {\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly avatarManagerRepository: AvatarManagerRepository\n ) { }\n\n async execute(profileId: string, avatarId: string, controller?: AbortController): Promise {\n try {\n const profile = await this.avatarManagerRepository.remove(profileId, avatarId, controller);\n this.profileManagerState.update(profile);\n return true;\n } catch {\n return false;\n }\n }\n}\n","import { injectable } from 'inversify';\n\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\nimport { AvatarManagerRepository } from '../interfaces/AvatarManagerRepository';\n\n@injectable()\nexport class UploadAvatarUsecase {\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly avatarManagerRepository: AvatarManagerRepository,\n ) { }\n\n async execute(profileId: string, avatarFile: File, controller?: AbortController): Promise {\n try {\n const profile = await this.avatarManagerRepository.upload(profileId, avatarFile, controller);\n this.profileManagerState.update(profile);\n return true;\n } catch {\n return false;\n }\n }\n}\n","\nimport { injectable } from 'inversify';\n\nimport { AvatarManagerPort } from '@vp/manager/avatar/core/interfaces/AvatarManagerPort';\nimport { RemoveAvatarUsecase } from '@vp/manager/avatar/core/usecase/RemoveAvatarUsecase';\nimport { UploadAvatarUsecase } from '@vp/manager/avatar/core/usecase/UploadAvatarUsecase';\n\n@injectable()\nexport class AvatarManagerFacade implements AvatarManagerPort {\n constructor(\n private readonly removeAvatarUsecase: RemoveAvatarUsecase,\n private readonly uploadAvatarUsecase: UploadAvatarUsecase,\n ) { }\n\n async remove(profileId: string, avatarId: string, controller?: AbortController): Promise {\n return await this.removeAvatarUsecase.execute(profileId, avatarId, controller);\n }\n\n async upload(profileId: string, avatarFile: File, controller?: AbortController): Promise {\n return await this.uploadAvatarUsecase.execute(profileId, avatarFile, controller);\n }\n}\n","export abstract class AvatarManagerPort {\n abstract remove(profileId: string, avatarId: string, controller?: AbortController): Promise;\n abstract upload(profileId: string, avatarFile: File, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class AvatarManagerDataMapper {\n toUploadFormData(file: File): FormData {\n const formData = new FormData();\n\n formData.append('attachment_type', 'avatar');\n formData.append('avatar', file);\n\n return formData;\n }\n\n toRemoveFormData(id: string): FormData {\n const formData = new FormData();\n\n formData.append('attachment_type', 'avatar');\n formData.append('removed_ids[]', id);\n\n return formData;\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { AvatarManagerRepository } from '@vp/manager/avatar/core/interfaces/AvatarManagerRepository';\nimport { AvatarManagerDataMapper } from '@vp/manager/avatar/data/AvatarManagerDataMapper';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n\n@injectable()\nexport class RestAvatarManagerRepository implements AvatarManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n private readonly avatarManagerMapper: AvatarManagerDataMapper,\n ) { }\n\n async upload(id: string, avatarFile: File, controller?: AbortController): Promise {\n const formData = this.avatarManagerMapper.toUploadFormData(avatarFile);\n\n const { data } = await this.http.put(`/api/profiles/${id}/upload`, formData, {\n signal: controller?.signal,\n });\n\n return this.profileDataMapper.toProfile(data);\n }\n\n async remove(profileId: string, avatarId: string, controller?: AbortController): Promise {\n const formData = this.avatarManagerMapper.toRemoveFormData(avatarId);\n\n const { data } = await this.http.put(`/api/profiles/${profileId}/upload`, formData, {\n signal: controller?.signal,\n });\n\n return this.profileDataMapper.toProfile(data);\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class ProfileManagerPort {\n abstract active: ReadonlySignal;\n\n abstract loadProfilesIfNeeded(controller?: AbortController): Promise;\n abstract setActiveProfile(profile: ProfileModel): void;\n}\n","import { batch, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { AvatarManagerPort } from '@vp/manager/avatar/core/interfaces/AvatarManagerPort';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nenum AvatarOperation {\n Upload = 'upload',\n Remove = 'remove',\n}\n\n@injectable()\nexport class AvatarManagerViewModel extends ViewModel implements ViewModelDispose {\n readonly profile: Signal = this.profileManagerPort.active;\n readonly dialogShown: Signal = signal(false);\n readonly removing: Signal = signal(false);\n readonly uploading: Signal = signal(false);\n\n private controller?: AbortController;\n\n constructor(\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly notificationService: AppNotificationService,\n private readonly avatarManagerPort: AvatarManagerPort,\n ) {\n super();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n onFileUpload = async (files: File[]): Promise => {\n this.uploading.value = true;\n await this.handleUpload(files[0]);\n this.uploading.value = false;\n };\n\n onRemoveButtonClick = (): void => {\n this.dialogShown.value = true;\n };\n\n removeImage = async (): Promise => {\n this.removing.value = true;\n await this.handleRemove();\n batch(() => {\n this.removing.value = false;\n this.dialogShown.value = false;\n });\n };\n\n closeDialog = (): void => {\n this.dialogShown.value = false;\n };\n\n private async handleRemove(): Promise {\n this.controller = new AbortController();\n\n if (await this.avatarManagerPort.remove(this.profile.value!.id, this.profile.value!.image.id, this.controller)) {\n this.showSuccessNotification(AvatarOperation.Remove);\n } else {\n this.showErrorNotification(AvatarOperation.Remove);\n }\n }\n\n private async handleUpload(avatarFile: File): Promise {\n this.controller = new AbortController();\n\n if (await this.avatarManagerPort.upload(this.profile.value!.id, avatarFile, this.controller)) {\n this.showSuccessNotification(AvatarOperation.Upload);\n } else {\n this.showErrorNotification(AvatarOperation.Upload);\n }\n }\n\n private showSuccessNotification(operation: AvatarOperation): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: `Фото было ${operation === AvatarOperation.Upload ? 'загружено' : 'удалено'}`,\n });\n }\n\n private showErrorNotification(operation: AvatarOperation): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: `Не удалось ${operation === AvatarOperation.Upload ? 'загрузить' : 'удалить'} фото`,\n });\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { AvatarManagerFacade } from '@vp/manager/avatar/core/AvatarManagerFacade';\nimport { AvatarManagerPort } from '@vp/manager/avatar/core/interfaces/AvatarManagerPort';\nimport { AvatarManagerRepository } from '@vp/manager/avatar/core/interfaces/AvatarManagerRepository';\nimport { RemoveAvatarUsecase } from '@vp/manager/avatar/core/usecase/RemoveAvatarUsecase';\nimport { UploadAvatarUsecase } from '@vp/manager/avatar/core/usecase/UploadAvatarUsecase';\nimport { AvatarManagerDataMapper } from '@vp/manager/avatar/data/AvatarManagerDataMapper';\nimport { RestAvatarManagerRepository } from '@vp/manager/avatar/data/RestAvatarManagerRepository';\nimport { AvatarManagerViewModel } from '@vp/manager/avatar/ui/AvatarManagerViewModel';\n\nexport class AvatarManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(AvatarManagerViewModel).toSelf().inTransientScope();\n bind(RestAvatarManagerRepository).toSelf().inSingletonScope();\n bind(AvatarManagerDataMapper).toSelf().inSingletonScope();\n\n bind(AvatarManagerRepository)\n .toDynamicValue(context => context.container.get(RestAvatarManagerRepository))\n .inSingletonScope();\n\n bind(UploadAvatarUsecase).toSelf().inSingletonScope();\n bind(RemoveAvatarUsecase).toSelf().inSingletonScope();\n\n bind(AvatarManagerFacade).toSelf().inSingletonScope();\n bind(AvatarManagerPort)\n .toDynamicValue(context => context.container.get(AvatarManagerFacade))\n .inSingletonScope();\n });\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class BiographyManagerRepository {\n abstract refine(dto: RefineBiographyDto, controller?: AbortController): Promise>;\n abstract update(dto: UpdateBiographyDto, controller?: AbortController): Promise>;\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\nimport { BiographyManagerRepository } from '@vp/manager/biography/core/interface/BiographyManagerRepository';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n@injectable()\nexport class UpdateBiographyUsecase {\n constructor(\n private readonly biographyManagerRepository: BiographyManagerRepository,\n private readonly profileManagerState: ProfileManagerState,\n ) {}\n\n async execute(dto: UpdateBiographyDto, controller?: AbortController): Promise {\n const result = await this.biographyManagerRepository.update(dto, controller);\n\n if (result instanceof Success) {\n this.profileManagerState.update(result.value);\n }\n\n return result as OperationResult;\n }\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\nimport { BiographyManagerPort } from '@vp/manager/biography/core/interface/BiographyManagerPort';\nimport { BiographyManagerRepository } from '@vp/manager/biography/core/interface/BiographyManagerRepository';\nimport { UpdateBiographyUsecase } from '@vp/manager/biography/core/usecase/UpdateBiographyUsecase';\n\n@injectable()\nexport class BiographyManagerFacade implements BiographyManagerPort {\n constructor(\n private readonly biographyManagerRepository: BiographyManagerRepository,\n private readonly updateBiographyUsecase: UpdateBiographyUsecase,\n ) {}\n\n async refine(dto: RefineBiographyDto, controller?: AbortController): Promise> {\n return await this.biographyManagerRepository.refine(dto, controller);\n }\n\n async update(dto: UpdateBiographyDto, controller?: AbortController): Promise {\n return await this.updateBiographyUsecase.execute(dto, controller);\n }\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\n\nexport abstract class BiographyManagerPort {\n abstract refine(dto: RefineBiographyDto, controller?: AbortController): Promise>;\n abstract update(dto: UpdateBiographyDto, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\nimport { GenerateBioResponseDto } from '@vp/manager/biography/core/dto/GenerateBioResponseDto';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\n\n@injectable()\nexport class BiographyManagerDataMapper {\n toRefineFormData(dto: RefineBiographyDto): FormData {\n const formData = new FormData();\n\n formData.append('bio', dto.biography);\n formData.append('grammar_only', dto.grammarOnly.toString());\n\n return formData;\n }\n\n toUpdateFormData(dto: UpdateBiographyDto): FormData {\n const formData = new FormData();\n\n formData.append('name', dto.name);\n formData.append('date_of_birth', dto.dateOfBirth);\n formData.append('date_of_death', dto.dateOfDeath);\n formData.append('bio', dto.biography);\n\n return formData;\n }\n\n toGeneratedInfo(dto: GenerateBioResponseDto): string {\n return dto.generated_text;\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { GenerateBioResponseDto } from '@vp/manager/biography/core/dto/GenerateBioResponseDto';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\nimport { BiographyManagerRepository } from '@vp/manager/biography/core/interface/BiographyManagerRepository';\nimport { BiographyManagerDataMapper } from '@vp/manager/biography/data/BiographyManagerDataMapper';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestBiographyManagerRepository implements BiographyManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n private readonly biographyManagerDataMapper: BiographyManagerDataMapper,\n ) {}\n\n async refine(dto: RefineBiographyDto, controller?: AbortController): Promise> {\n try {\n const formData = this.biographyManagerDataMapper.toRefineFormData(dto);\n\n const { data } = await this.http.post(`/api/profiles/${dto.profileId}/generate_bio`, formData, {\n signal: controller?.signal,\n });\n\n return Success.from(this.biographyManagerDataMapper.toGeneratedInfo(data));\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n\n async update(dto: UpdateBiographyDto, controller?: AbortController): Promise> {\n try {\n const formData = this.biographyManagerDataMapper.toUpdateFormData(dto);\n\n const { data } = await this.http.put(`/api/profiles/${dto.profileId}`, formData, {\n signal: controller?.signal,\n });\n\n return Success.from(this.profileDataMapper.toProfile(data));\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n}\n","export class RefineBiographyDto {\n readonly profileId!: string;\n readonly biography!: string;\n readonly grammarOnly!: boolean;\n\n constructor(args: RefineBiographyDto) {\n Object.assign(this, args);\n }\n}\n","export class UpdateBiographyDto {\n readonly profileId!: string;\n readonly name!: string;\n readonly dateOfBirth!: string;\n readonly dateOfDeath!: string;\n readonly biography!: string;\n\n constructor(args: UpdateBiographyDto) {\n Object.assign(this, args);\n }\n}\n","import { computed, effect, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\nimport { UseFormReturn } from 'react-hook-form';\n\nimport { Success } from '@vp/common/core/OperationResult';\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { RefineBiographyDto } from '@vp/manager/biography/core/dto/RefineBiographyDto';\nimport { UpdateBiographyDto } from '@vp/manager/biography/core/dto/UpdateBiographyDto';\nimport { BiographyManagerPort } from '@vp/manager/biography/core/interface/BiographyManagerPort';\nimport { EditModalFormValues } from '@vp/manager/biography/ui/edit/BiographyManagerEditContent';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport enum AiOptionStatus {\n SpellingCheck = 'SpellingCheck',\n SupplementedDescription = 'SupplementedDescription',\n None = 'None',\n}\n\nexport interface BiographyFormValues {\n name: string;\n datebirth: string;\n datedeath: string;\n biography: string;\n}\n\nexport interface BiographyManagerViewModelProps {\n methods: UseFormReturn;\n}\n\n@injectable()\nexport class BiographyManagerViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly profile: Signal = computed(() => this.toViewProfile());\n readonly generatedBiography: Signal = signal(null);\n readonly loading: Signal = signal(false);\n readonly editModalShown: Signal = signal(false);\n readonly aiOptionStatus: Signal = signal(AiOptionStatus.None);\n\n private controller?: AbortController;\n private disposeEffect?: () => void;\n\n constructor(\n private readonly notificationService: AppNotificationService,\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly dateFormatter: DateFormatter,\n private readonly biographyManagerPort: BiographyManagerPort,\n ) {\n super();\n }\n\n init(): void {\n this.resetFormOnProfileChange();\n }\n\n dispose(): void {\n this.controller?.abort();\n this.disposeEffect?.();\n }\n\n openEditModel = (): void => {\n this.editModalShown.value = true;\n };\n\n closeEditModal = (): void => {\n this.aiOptionStatus.value = AiOptionStatus.None;\n this.editModalShown.value = false;\n };\n\n changeAiOptionStatus = (status: AiOptionStatus): void => {\n this.aiOptionStatus.value = status;\n };\n\n toFormValues = (profile: ProfileModel): BiographyFormValues => {\n return {\n name: profile.name,\n datebirth: profile.birthDate,\n datedeath: profile.deathDate,\n biography: profile.bio,\n };\n };\n\n submit = async (values: BiographyFormValues): Promise => {\n this.loading.value = true;\n\n if (this.aiOptionStatus.value != AiOptionStatus.None) {\n await this.refineBiography(values.biography);\n } else {\n await this.updateBiography(values);\n }\n\n this.loading.value = false;\n };\n\n onSaveSuggestedBiography = (values: EditModalFormValues): void => {\n this.props.value?.methods.setValue('biography', values.suggestedText, { shouldDirty: true });\n this.closeEditModal();\n };\n\n private updateBiography = async (values: BiographyFormValues): Promise => {\n this.controller = new AbortController();\n\n if (await this.biographyManagerPort.update(this.toUpdateDto(values), this.controller)) {\n this.showSuccessNotification();\n } else {\n this.showErrorNotification();\n }\n };\n\n private async refineBiography(biography: BiographyFormValues['biography']): Promise {\n this.controller = new AbortController();\n\n const result = await this.biographyManagerPort.refine(this.toRefineDto(biography), this.controller);\n\n if (result instanceof Success) {\n this.generatedBiography.value = result.value;\n this.openEditModel();\n } else {\n this.showErrorNotification();\n }\n }\n\n private toUpdateDto(values: BiographyFormValues): UpdateBiographyDto {\n return new UpdateBiographyDto({\n profileId: this.profile.value.id,\n name: values.name,\n dateOfBirth: values.datebirth,\n dateOfDeath: values.datedeath,\n biography: values.biography,\n });\n }\n\n private toRefineDto(biography: BiographyFormValues['biography']): RefineBiographyDto {\n return new RefineBiographyDto({\n biography: biography,\n profileId: this.profile.value.id,\n grammarOnly: this.aiOptionStatus.value === AiOptionStatus.SpellingCheck,\n });\n }\n\n private toViewProfile(): ProfileModel {\n const profile = this.profileManagerPort.active.value!;\n const birthDate = this.dateFormatter.toLocaleDate(profile.birthDate);\n const deathDate = this.dateFormatter.toLocaleDate(profile.deathDate);\n return { ...profile, birthDate, deathDate };\n }\n\n private resetFormOnProfileChange(): void {\n this.disposeEffect = effect(() => {\n const formValues = this.toFormValues(this.profile.value);\n this.props.value?.methods.reset(formValues);\n });\n }\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Биография была загружена в профиль',\n secondaryMessage: 'Вы можете отредактировать её в любой момент',\n });\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: 'Не удалось отредактировать биографию',\n });\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { BiographyManagerFacade } from '@vp/manager/biography/core/BiographyManagerFacade';\nimport { BiographyManagerPort } from '@vp/manager/biography/core/interface/BiographyManagerPort';\nimport { BiographyManagerRepository } from '@vp/manager/biography/core/interface/BiographyManagerRepository';\nimport { UpdateBiographyUsecase } from '@vp/manager/biography/core/usecase/UpdateBiographyUsecase';\nimport { BiographyManagerDataMapper } from '@vp/manager/biography/data/BiographyManagerDataMapper';\nimport { RestBiographyManagerRepository } from '@vp/manager/biography/data/RestBiographyManagerRepository';\nimport { BiographyManagerViewModel } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\nexport class BiographyManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(BiographyManagerViewModel).toSelf().inTransientScope();\n\n bind(RestBiographyManagerRepository).toSelf().inSingletonScope();\n bind(BiographyManagerDataMapper).toSelf().inSingletonScope();\n\n bind(UpdateBiographyUsecase).toSelf().inSingletonScope();\n\n bind(BiographyManagerRepository)\n .toDynamicValue(context => context.container.get(RestBiographyManagerRepository))\n .inSingletonScope();\n\n bind(BiographyManagerFacade).toSelf().inSingletonScope();\n bind(BiographyManagerPort)\n .toDynamicValue(context => context.container.get(BiographyManagerFacade))\n .inSingletonScope();\n });\n}\n","import { Signal } from '@preact/signals-react';\n\nimport { SubmitEventsResultDto } from '@vp/manager/events/core/dto/SubmitEventsResultDto';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\nexport type EventsManagerStatus = 'initial' | 'loading' | 'loaded' | 'error';\n\nexport abstract class EventsManagerState {\n abstract readonly events: Signal;\n abstract readonly status: Signal;\n abstract loading(): void;\n abstract update(dto: SubmitEventsResultDto, deletedEvents: string[]): void;\n abstract completed(status: EventsManagerStatus, events?: EventsManagerRecordModel[]): void;\n abstract reset(): void;\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { SubmitEventsResultDto } from '@vp/manager/events/core/dto/SubmitEventsResultDto';\nimport { SumbitEventsDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\nexport abstract class EventsManagerRepository {\n abstract loadEvents(profileId: string, controller: AbortController): Promise>;\n abstract submitEvents(dto: SumbitEventsDto, controller: AbortController): Promise>;\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { EventsManagerRepository } from '@vp/manager/events/core/interface/EventsManagerRepository';\nimport { EventsManagerState } from '@vp/manager/events/core/interface/EventsManagerState';\n\n@injectable()\nexport class LoadEventsUsecase {\n constructor(\n private readonly eventsManarRepository: EventsManagerRepository,\n private readonly eventsManagerState: EventsManagerState,\n ) {}\n\n async execute(profileId: string, controller: AbortController): Promise {\n this.eventsManagerState.loading();\n const result = await this.eventsManarRepository.loadEvents(profileId, controller);\n\n if (result instanceof Success) {\n this.eventsManagerState.completed('loaded', result.value);\n } else {\n this.eventsManagerState.completed('error');\n }\n\n return result as OperationResult;\n }\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { SumbitEventsDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerRepository } from '@vp/manager/events/core/interface/EventsManagerRepository';\nimport { EventsManagerState } from '@vp/manager/events/core/interface/EventsManagerState';\n\n@injectable()\nexport class SubmitEventsUsecase {\n constructor(\n private readonly repository: EventsManagerRepository,\n private readonly state: EventsManagerState,\n ) {}\n\n async execute(dto: SumbitEventsDto, controller: AbortController): Promise {\n const result = await this.repository.submitEvents(dto, controller);\n\n if (result instanceof Success) {\n this.state.update(result.value, dto.toDelete);\n }\n\n return result as OperationResult;\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { SumbitEventsDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerPort } from '@vp/manager/events/core/interface/EventsManagerPort';\nimport { EventsManagerState, EventsManagerStatus } from '@vp/manager/events/core/interface/EventsManagerState';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\nimport { LoadEventsUsecase } from '@vp/manager/events/core/usecase/LoadEventsUsecase';\nimport { SubmitEventsUsecase } from '@vp/manager/events/core/usecase/SubmitEventsUsecase';\n\n@injectable()\nexport class EventsManagerFacade implements EventsManagerPort {\n readonly events: ReadonlySignal = this.eventsState.events;\n readonly status: ReadonlySignal = this.eventsState.status;\n\n constructor(\n private readonly eventsState: EventsManagerState,\n private readonly loadEventsUsecase: LoadEventsUsecase,\n private readonly submitEventsUsecase: SubmitEventsUsecase,\n ) {}\n\n async loadEvents(profileId: string, controller: AbortController): Promise {\n return await this.loadEventsUsecase.execute(profileId, controller);\n }\n\n async submitEvents(dto: SumbitEventsDto, controller: AbortController): Promise {\n return await this.submitEventsUsecase.execute(dto, controller);\n }\n\n resetState(): void {\n this.eventsState.reset();\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { SumbitEventsDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerStatus } from '@vp/manager/events/core/interface/EventsManagerState';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\nexport abstract class EventsManagerPort {\n abstract events: ReadonlySignal;\n abstract status: ReadonlySignal;\n abstract loadEvents(profileId: string, controller: AbortController): Promise;\n abstract submitEvents(events: SumbitEventsDto, controller: AbortController): Promise;\n abstract resetState(): void;\n}\n","import { injectable } from 'inversify';\n\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\nimport { TimelineResponseDto } from '@vp/profile/data/dto/TimelineResponseDto';\n\n@injectable()\nexport class EventsManagerDataMapper {\n toCreateFormData(events: EventsManagerRecordModel[], profileId: string): FormData {\n const formData = new FormData();\n formData.append('profile_id', profileId);\n\n events.forEach((event, index) => {\n formData.append(`timelines[${index}][id]`, event.id);\n formData.append(`timelines[${index}][date]`, event.date);\n formData.append(`timelines[${index}][description]`, event.description);\n\n if (event.image.file) {\n formData.append(`timelines[${index}][image][file]`, event.image.file);\n }\n });\n\n return formData;\n }\n\n toEvents(dto: TimelineResponseDto[]): EventsManagerRecordModel[] {\n return dto.map(timeline => this.toEvent(timeline));\n }\n\n toEvent(dto: TimelineResponseDto): EventsManagerRecordModel {\n const date = this.convertDateFormat(dto.date);\n const imageUrl = dto.image?.url ?? '';\n const imageHash = dto.image?.blurhash ?? '';\n const imageId = dto.image?.id.toString() ?? '';\n return { ...dto, date, id: dto.id.toString(), image: { id: imageId, url: imageUrl, hash: imageHash, file: null } };\n }\n\n private convertDateFormat(date: string): string {\n const [year, month, day] = date.split('-');\n return [day, month, year].join('.');\n }\n}\n","import { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\nexport class SubmitEventsResultDto {\n constructor(\n readonly createdEvents: EventsManagerRecordModel[],\n readonly updatedEvents: EventsManagerRecordModel[],\n ) {}\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { Analytics } from '@vp/common/core/Analytics';\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { SubmitEventsResultDto } from '@vp/manager/events/core/dto/SubmitEventsResultDto';\nimport { SumbitEventsDto, UpdateEventDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerRepository } from '@vp/manager/events/core/interface/EventsManagerRepository';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\nimport { EventsManagerDataMapper } from '@vp/manager/events/data/EventsManagerDataMapper';\nimport { TimelineResponseDto } from '@vp/profile/data/dto/TimelineResponseDto';\n\n@injectable()\nexport class RestEventsManagerRepository implements EventsManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly dataMapper: EventsManagerDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n private readonly analytics: Analytics,\n ) {}\n\n async loadEvents(profileId: string, controller: AbortController): Promise> {\n try {\n const { data } = await this.http.get(`/api/timelines`, {\n params: { profile_id: profileId },\n signal: controller.signal,\n });\n return Success.from(this.dataMapper.toEvents(data));\n } catch (error) {\n return Failure.from(this.errorExtractor.extract(error));\n }\n }\n\n async submitEvents(dto: SumbitEventsDto, controller: AbortController): Promise> {\n const updatePromises = dto.toUpdate.map(event => this.updateEvent(event, controller));\n const createPromise = dto.toCreate.length > 0 ? this.createEvents(dto.toCreate, dto.profileId, controller) : Promise.resolve();\n const deletePromise = dto.toDelete.length > 0 ? this.deleteEvents(dto.toDelete, dto.profileId, controller) : Promise.resolve();\n\n try {\n const [createdEvents, _, ...updatedEvents] = await Promise.all([createPromise, deletePromise, ...updatePromises]);\n const dto = new SubmitEventsResultDto(createdEvents ?? [], updatedEvents ?? []);\n return Success.from(dto);\n } catch (error) {\n this.analytics.trackError(error);\n return Failure.from(this.errorExtractor.extract(error));\n }\n }\n\n private async createEvents(\n events: EventsManagerRecordModel[],\n profileId: string,\n controller: AbortController,\n ): Promise {\n const formData = this.dataMapper.toCreateFormData(events, profileId);\n\n const { data } = await this.http.post(`/api/timelines/batches_create`, formData, {\n timeout: 10 * 60_000,\n headers: { 'Content-Type': 'multipart/form-data' },\n signal: controller?.signal,\n });\n\n return this.dataMapper.toEvents(data);\n }\n\n private async updateEvent(dto: UpdateEventDto, controller: AbortController): Promise {\n const body = { ...dto, image: dto.image.file, 'removed_ids[]': dto.imageIdToRemove };\n const { data } = await this.http.put(`/api/timelines/${dto.id}`, body, {\n headers: { 'Content-Type': 'multipart/form-data' },\n signal: controller?.signal,\n });\n return this.dataMapper.toEvent(data);\n }\n\n private async deleteEvents(ids: string[], profileId: string, controller: AbortController): Promise {\n const data = { timeline_ids: ids };\n await this.http.delete(`/api/timelines?profile_id=${profileId}`, { data, signal: controller?.signal });\n }\n}\n","import { batch, Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { SubmitEventsResultDto } from '@vp/manager/events/core/dto/SubmitEventsResultDto';\nimport { EventsManagerState, EventsManagerStatus } from '@vp/manager/events/core/interface/EventsManagerState';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\n@injectable()\nexport class SignalsEventsManagerState implements EventsManagerState {\n readonly events: Signal = signal([]);\n readonly status: Signal = signal('initial');\n\n private eventsMap: Map = new Map();\n\n completed(status: EventsManagerStatus, events?: EventsManagerRecordModel[]): void {\n batch(() => {\n this.status.value = status;\n events && this.setEvents(events);\n });\n }\n\n loading(): void {\n this.status.value = 'loading';\n }\n\n update(dto: SubmitEventsResultDto, deletedEvents: string[]): void {\n batch(() => {\n this.deleteEvents(deletedEvents);\n this.updateEvents(dto.updatedEvents);\n this.setEvents([...this.events.value, ...dto.createdEvents]);\n });\n }\n\n reset(): void {\n batch(() => {\n this.setEvents([]);\n this.status.value = 'initial';\n });\n }\n\n private setEvents(events: EventsManagerRecordModel[]): void {\n this.eventsMap = new Map();\n this.updateEvents(events);\n }\n\n private updateEvents(events: EventsManagerRecordModel[]): void {\n for (const event of events) {\n this.eventsMap.set(event.id, event);\n }\n\n this.emitUpdate();\n }\n\n private deleteEvents(ids: string[]): void {\n for (const id of ids) {\n this.eventsMap.delete(id);\n }\n\n this.emitUpdate();\n }\n\n private emitUpdate(): void {\n this.events.value = [...this.eventsMap.values()];\n }\n}\n","import { injectable } from 'inversify';\n\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\ntype UpdatedEvent = EventsManagerRecordModel & { imageIdToRemove: string | null };\ntype DeletedEvent = EventsManagerRecordModel;\ntype CreatedEvent = EventsManagerRecordModel;\n\nexport class EventsDiff {\n readonly created: CreatedEvent[] = [];\n readonly deleted: DeletedEvent[] = [];\n readonly updated: UpdatedEvent[] = [];\n\n addCreated(event: CreatedEvent): void {\n this.created.push(event);\n }\n\n addUpdated(event: UpdatedEvent): void {\n this.updated.push(event);\n }\n\n addDeleted(event: DeletedEvent[]): void {\n this.deleted.push(...event);\n }\n}\n\n@injectable()\nexport class EventsManagerDiffer {\n getDiff(current: EventsManagerRecordModel[], previous: EventsManagerRecordModel[]): EventsDiff {\n const diff = new EventsDiff();\n const previousMap = this.toEventsMap(previous);\n\n this.processCurrent(current, previousMap, diff);\n this.collectDeletedEvents(previousMap, diff);\n\n return diff;\n }\n\n private processCurrent(current: EventsManagerRecordModel[], previousMap: Map, diff: EventsDiff): void {\n for (const event of current) {\n if (this.isCreated(event)) {\n diff.addCreated(event);\n } else {\n this.updateIfNeeded(event, previousMap, diff);\n this.markUpdated(previousMap, event);\n }\n }\n }\n\n private updateIfNeeded(current: EventsManagerRecordModel, previousMap: Map, diff: EventsDiff): void {\n const previous = previousMap.get(current.id);\n if (previous && this.hasEventChanged(current, previous)) {\n const imageIdToRemove = this.getImageIdToRemove(current, previous);\n diff.addUpdated({ ...current, imageIdToRemove });\n }\n }\n\n private collectDeletedEvents(previousMap: Map, diff: EventsDiff): void {\n diff.addDeleted([...previousMap.values()]);\n }\n\n private markUpdated(eventsMap: Map, event: EventsManagerRecordModel): void {\n eventsMap.delete(event.id);\n }\n\n private toEventsMap(events: EventsManagerRecordModel[]): Map {\n return new Map(events.map(event => [event.id, event]));\n }\n\n private isCreated(event: EventsManagerRecordModel): boolean {\n return !event.id;\n }\n\n private getImageIdToRemove(current: EventsManagerRecordModel, previous: EventsManagerRecordModel): string | null {\n return this.hasImageBeenRemoved(current, previous) ? previous.image.id : null;\n }\n\n private hasEventChanged(current: EventsManagerRecordModel, previous: EventsManagerRecordModel): boolean {\n return JSON.stringify(current) !== JSON.stringify(previous);\n }\n\n private hasImageBeenRemoved(current: EventsManagerRecordModel, previous: EventsManagerRecordModel): boolean {\n return !!previous.image?.id && !current.image?.id;\n }\n}\n","import { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\nexport type UpdateEventDto = EventsManagerRecordModel & { imageIdToRemove: string | null };\n\nexport class SumbitEventsDto {\n readonly toUpdate!: UpdateEventDto[];\n readonly toCreate!: EventsManagerRecordModel[];\n readonly toDelete!: string[];\n readonly profileId!: string;\n\n constructor(args: SumbitEventsDto) {\n Object.assign(this, args);\n }\n}\n","import { ReadonlySignal, Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { Failure, Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { SumbitEventsDto } from '@vp/manager/events/core/dto/SumbitEventsDto';\nimport { EventsManagerPort } from '@vp/manager/events/core/interface/EventsManagerPort';\nimport { EventsManagerStatus } from '@vp/manager/events/core/interface/EventsManagerState';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\nimport { EventsDiff, EventsManagerDiffer } from '@vp/manager/events/ui/EventsManagerDiffer';\nimport { EventsFormValues } from '@vp/manager/events/ui/EventsManagerPage';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\n\n@injectable()\nexport class EventsManagerViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n static readonly EmptyEvent: EventsManagerRecordModel = {\n id: '',\n date: '',\n image: { url: '', hash: '', file: null, id: '' },\n description: '',\n };\n\n readonly events: ReadonlySignal = this.eventsManagerPort.events;\n readonly recordsStatus: ReadonlySignal = this.eventsManagerPort.status;\n readonly submitting: Signal = signal(false);\n\n private controller?: AbortController;\n\n constructor(\n private readonly eventsManagerPort: EventsManagerPort,\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly notificationService: AppNotificationService,\n private readonly eventsManagerDiffer: EventsManagerDiffer,\n ) {\n super();\n }\n\n async init(): Promise {\n const profileId = this.profileManagerPort.active.value!.id;\n this.controller = new AbortController();\n const result = await this.eventsManagerPort.loadEvents(profileId, this.controller);\n\n if (result instanceof Failure) {\n this.showErrorNotification(result.message);\n }\n }\n\n dispose(): void {\n this.controller?.abort();\n this.eventsManagerPort.resetState();\n }\n\n submitForm = async (data: EventsFormValues): Promise => {\n const diff = this.eventsManagerDiffer.getDiff(data.events, this.events.value);\n const dto = this.toDto(diff);\n await this.submit(dto);\n };\n\n private async submit(dto: SumbitEventsDto): Promise {\n this.setSubmitting(true);\n this.controller = new AbortController();\n const result = await this.eventsManagerPort.submitEvents(dto, this.controller);\n\n if (result instanceof Success) {\n this.showSuccessNotification();\n this.cleanupImages(dto);\n } else {\n this.showErrorNotification();\n }\n this.setSubmitting(false);\n }\n\n private toDto(diff: EventsDiff): SumbitEventsDto {\n const profileId = this.profileManagerPort.active.value!.id;\n const idsToDelete = diff.deleted.map(({ id }) => id);\n return new SumbitEventsDto({ toCreate: diff.created, toUpdate: diff.updated, toDelete: idsToDelete, profileId });\n }\n\n private setSubmitting(isSubmitting: boolean): void {\n this.submitting.value = isSubmitting;\n }\n\n private cleanupImages(dto: SumbitEventsDto): void {\n dto.toUpdate.forEach(event => event.image.url && URL.revokeObjectURL(event.image.url));\n }\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'События были загружены в профиль',\n secondaryMessage: 'Вы можете отредактировать их в любой момент',\n });\n }\n\n private showErrorNotification(message?: string): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: message || 'Обновите страницу и попробуйте ещё раз.',\n });\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { EventsManagerFacade } from '@vp/manager/events/core/EventsManagerFacade';\nimport { EventsManagerPort } from '@vp/manager/events/core/interface/EventsManagerPort';\nimport { EventsManagerRepository } from '@vp/manager/events/core/interface/EventsManagerRepository';\nimport { EventsManagerState } from '@vp/manager/events/core/interface/EventsManagerState';\nimport { LoadEventsUsecase } from '@vp/manager/events/core/usecase/LoadEventsUsecase';\nimport { SubmitEventsUsecase } from '@vp/manager/events/core/usecase/SubmitEventsUsecase';\nimport { EventsManagerDataMapper } from '@vp/manager/events/data/EventsManagerDataMapper';\nimport { RestEventsManagerRepository } from '@vp/manager/events/data/RestEventsManagerRepository';\nimport { SignalsEventsManagerState } from '@vp/manager/events/data/SignalsEventsManagerState';\nimport { EventsManagerDiffer } from '@vp/manager/events/ui/EventsManagerDiffer';\nimport { EventsManagerViewModel } from '@vp/manager/events/ui/EventsManagerViewModel';\n\nexport class EventsManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(RestEventsManagerRepository).toSelf().inSingletonScope();\n bind(SignalsEventsManagerState).toSelf().inSingletonScope();\n bind(EventsManagerFacade).toSelf().inSingletonScope();\n bind(EventsManagerDataMapper).toSelf().inSingletonScope();\n\n bind(LoadEventsUsecase).toSelf().inSingletonScope();\n bind(SubmitEventsUsecase).toSelf().inSingletonScope();\n\n bind(EventsManagerViewModel).toSelf().inTransientScope();\n bind(EventsManagerDiffer).toSelf().inTransientScope();\n\n bind(EventsManagerRepository)\n .toDynamicValue(context => context.container.get(RestEventsManagerRepository))\n .inSingletonScope();\n\n bind(EventsManagerState)\n .toDynamicValue(context => context.container.get(SignalsEventsManagerState))\n .inSingletonScope();\n\n bind(EventsManagerPort)\n .toDynamicValue(context => context.container.get(EventsManagerFacade))\n .inSingletonScope();\n });\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { GalleryManagerUploadHandle } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class GalleryManagerRepository {\n abstract upload(dto: UploadMediaDto): GalleryManagerUploadHandle;\n abstract remove(dto: RemoveMediaDto, controller?: AbortController): Promise>;\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { GalleryManagerRepository } from '@vp/manager/gallery/core/interface/GalleryManagerRepository';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n@injectable()\nexport class RemoveMediaUsecase {\n constructor(\n private readonly galleryManagerRepository: GalleryManagerRepository,\n private readonly profileManagerState: ProfileManagerState,\n ) {}\n\n async execute(dto: RemoveMediaDto, controller?: AbortController): Promise {\n const result = await this.galleryManagerRepository.remove(dto, controller);\n\n if (result instanceof Success) {\n this.profileManagerState.update(result.value);\n }\n\n return result as OperationResult;\n }\n}\n","import { injectable } from 'inversify';\n\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { GalleryManagerRepository } from '@vp/manager/gallery/core/interface/GalleryManagerRepository';\nimport { GalleryManagerUploadHandle, UploadHandleSnapshot } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\n\n@injectable()\nexport class UploadMediaUsecase {\n constructor(\n private readonly galleryManagerRepository: GalleryManagerRepository,\n private readonly managerState: ProfileManagerState,\n ) {}\n\n execute(dto: UploadMediaDto): GalleryManagerUploadHandle {\n const handle = this.galleryManagerRepository.upload(dto);\n this.updateProfileOnCompleted(handle);\n return handle;\n }\n\n private updateProfileOnCompleted(handle: GalleryManagerUploadHandle): void {\n handle.subscribe(snapshot => {\n if (snapshot.state === 'completed') {\n this.updateProfileIfNeeded(snapshot);\n }\n });\n }\n\n private updateProfileIfNeeded(snapshot: UploadHandleSnapshot): void {\n if (this.shouldBeUpdated(snapshot)) {\n const profile = this.managerState.active.value!;\n const photos = [...new Map([...profile.photos, ...snapshot.uploadedPhotos].map(item => [item.id, item])).values()];\n const videos = [...new Map([...profile.videos, ...snapshot.uploadedVideos].map(item => [item.id, item])).values()];\n this.managerState.update({ ...profile, photos, videos });\n }\n }\n\n private shouldBeUpdated(snapshot: UploadHandleSnapshot): boolean {\n return !!this.managerState.active.value && !!(snapshot.uploadedVideos.length || snapshot.uploadedPhotos.length);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { GalleryManagerPort } from '@vp/manager/gallery/core/interface/GalleryManagerPort';\nimport { GalleryManagerUploadHandle } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { RemoveMediaUsecase } from '@vp/manager/gallery/core/usecase/RemoveMediaUsecase';\nimport { UploadMediaUsecase } from '@vp/manager/gallery/core/usecase/UploadMediaUsecase';\n\n@injectable()\nexport class GalleryManagerFacade implements GalleryManagerPort {\n constructor(\n private readonly uploadMediaUsecase: UploadMediaUsecase,\n private readonly removeMediaUsecase: RemoveMediaUsecase,\n ) {}\n\n upload(dto: UploadMediaDto): GalleryManagerUploadHandle {\n return this.uploadMediaUsecase.execute(dto);\n }\n\n async remove(dto: RemoveMediaDto, controller?: AbortController): Promise {\n return await this.removeMediaUsecase.execute(dto, controller);\n }\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { GalleryManagerUploadHandle } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\n\nexport abstract class GalleryManagerPort {\n abstract upload(dto: UploadMediaDto): GalleryManagerUploadHandle;\n abstract remove(dto: RemoveMediaDto, controller?: AbortController): Promise;\n}\n","export enum UploadMediaType {\n Photos = 'photos',\n Videos = 'videos',\n}\n","import { MediaFileDto } from '@vp/manager/gallery/core/dto/MediaFileDto';\nimport { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\nimport { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { ImageResponseDto } from '@vp/profile/data/dto/ImageResponseDto';\nimport { VideoResponseDto } from '@vp/profile/data/dto/VideoResponseDto';\n\nexport type FileUploadRegistry = Map;\n\nexport class UploadContext {\n progress: number = 0;\n currentFileIndex: number = 0;\n fileRegistry: FileUploadRegistry = new Map();\n error: string = '';\n\n images: ImageResponseDto[] = [];\n videos: VideoResponseDto[] = [];\n\n constructor(\n readonly files: MediaFileDto[],\n readonly type: UploadMediaType,\n readonly chunkSize: number,\n readonly profileId: string,\n ) {}\n\n setError(error: string): void {\n this.error = error;\n }\n\n nextFile(): void {\n this.currentFileIndex++;\n }\n\n addImage(image: ImageResponseDto): void {\n this.images.push(image);\n }\n\n addVideo(video: VideoResponseDto): void {\n this.videos.push(video);\n }\n\n getCurrentFileUpload(): FileUpload {\n return this.fileRegistry.get(this.currentFileIndex)!;\n }\n\n updateProgress(progress: number): void {\n this.progress = progress;\n }\n\n setRegistry(fileRegistry: FileUploadRegistry): void {\n this.fileRegistry = fileRegistry;\n }\n\n isLastFile(): boolean {\n return this.currentFileIndex === this.files.length - 1;\n }\n\n reset(): void {\n this.progress = 0;\n this.currentFileIndex = 0;\n this.fileRegistry.clear();\n this.images = [];\n this.videos = [];\n this.error = '';\n }\n}\n","import { injectable } from 'inversify';\n\nimport { MediaFileDto } from '@vp/manager/gallery/core/dto/MediaFileDto';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\nimport { HandleState, UploadHandleSnapshot } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { UploadContext } from '@vp/manager/gallery/data/upload/context/UploadContext';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\nimport { UploadStateMachine } from '@vp/manager/gallery/data/upload/UploadStateMachine';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\nexport enum AttachmentType {\n Images = 'images',\n Videos = 'videos',\n}\n\n@injectable()\nexport class GalleryManagerDataMapper {\n constructor(private readonly profileMapper: ProfileDataMapper) {}\n\n toUploadStateMachineContext(dto: UploadMediaDto, chunkSize: number): UploadContext {\n return new UploadContext(dto.files, dto.type, chunkSize, dto.profileId);\n }\n\n toUploadHandleSnapshot(machine: UploadStateMachine): UploadHandleSnapshot {\n return {\n state: this.toUploadHandleState(machine),\n progress: machine.context.progress,\n error: machine.context.error,\n fileProgressTracker: this.toFileProgressTracker(machine),\n uploadedPhotos: machine.context.images.map(image => this.profileMapper.toPhoto(image)),\n uploadedVideos: machine.context.videos.map(video => this.profileMapper.toVideo(video)),\n };\n }\n\n toMultipartUploadFormData(fileUpload: FileUpload, profileId: string): FormData {\n const data = new FormData();\n\n data.set('key', fileUpload.uploadKey!);\n data.set('upload_id', fileUpload.uploadId!);\n data.set('profile_id', profileId);\n data.set('content_type', fileUpload.mediaFile.file.type);\n data.set('parts', this.toParts(fileUpload));\n\n return data;\n }\n\n toUploadFormData(files: MediaFileDto[], type: UploadMediaType): FormData {\n const attachment = this.toAttachmentType(type);\n\n const formData = new FormData();\n formData.append('attachment_type', attachment);\n\n for (const { id, file } of files) {\n formData.append(`${attachment}[${id}]`, file);\n }\n\n return formData;\n }\n\n toRemoveFormData(dto: RemoveMediaDto): FormData {\n const formData = new FormData();\n formData.append('attachment_type', this.toAttachmentType(dto.type));\n formData.append('removed_ids[]', dto.id);\n return formData;\n }\n\n private toAttachmentType(type: UploadMediaType): AttachmentType {\n return type === UploadMediaType.Photos ? AttachmentType.Images : AttachmentType.Videos;\n }\n\n private toUploadHandleState(machine: UploadStateMachine): UploadHandleSnapshot['state'] {\n const stateMap = new Map([\n [machine.completedState, 'completed'],\n [machine.failedState, 'failed'],\n ]);\n\n return stateMap.get(machine.currentState!) ?? 'uploading';\n }\n\n private toFileProgressTracker(machine: UploadStateMachine): UploadHandleSnapshot['fileProgressTracker'] {\n const tracker: UploadHandleSnapshot['fileProgressTracker'] = {};\n\n machine.context.fileRegistry.forEach((fileUpload, index) => {\n tracker[index] = fileUpload.progress;\n });\n\n return tracker;\n }\n\n private toParts(fileUpload: FileUpload): string {\n const parts = fileUpload.chunks.map(chunk => ({ part_number: chunk.order, etag: chunk.eTag }));\n return JSON.stringify(parts);\n }\n}\n","import { UploadStateMachine } from '@vp/manager/gallery/data/upload/UploadStateMachine';\n\nexport abstract class UploadState {\n constructor(protected readonly stateMachine: UploadStateMachine) {}\n\n process?(): Promise;\n\n onEnter(): void {\n this.stateMachine.notify();\n }\n\n protected handleError(error: unknown): void {\n const message = this.stateMachine.errorExtractor.extract(error);\n this.stateMachine.context.setError(message);\n this.stateMachine.analytics.trackError(error);\n }\n\n protected updateTotalProgress(): void {\n let progress = 0;\n const registrySize = this.stateMachine.context.fileRegistry.size;\n\n this.stateMachine.context.fileRegistry.forEach(fileUpload => {\n progress += Math.round(fileUpload.progress / registrySize);\n });\n\n this.stateMachine.context.updateProgress(Math.min(progress, 100));\n }\n}\n","import { AxiosProgressEvent } from 'axios';\n\nimport { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\n\nexport class BasicUploadingState extends UploadState {\n async process(): Promise {\n try {\n await this.uploadFile();\n this.determineTransition();\n } catch (error) {\n this.handleError(error);\n this.stateMachine.changeState(this.stateMachine.failedState);\n }\n }\n\n private async uploadFile(): Promise {\n const fileUpload = this.stateMachine.context.getCurrentFileUpload();\n const formData = this.stateMachine.mapper.toUploadFormData([fileUpload.mediaFile], this.stateMachine.context.type);\n\n const { data } = await this.stateMachine.http.put(\n `/api/profiles/${this.stateMachine.context.profileId}/upload`,\n formData,\n {\n timeout: 3 * 60_000,\n signal: this.stateMachine.controller.signal,\n onUploadProgress: progressEvent => {\n this.updateFileProgress(progressEvent, fileUpload);\n this.updateTotalProgress();\n this.stateMachine.notify();\n },\n },\n );\n\n this.addToContextIfNeeded(data);\n }\n\n private updateFileProgress(progressEvent: AxiosProgressEvent, fileUpload: FileUpload): void {\n const percent = Math.round((progressEvent.loaded * 100) / progressEvent.total!);\n fileUpload.updateProgress(percent);\n }\n\n private addToContextIfNeeded(data: ProfileResponseDto): void {\n if (this.stateMachine.context.isLastFile()) {\n data.videos?.map(video => this.stateMachine.context.addVideo(video));\n data.images?.map(image => this.stateMachine.context.addImage(image));\n }\n }\n\n private determineTransition(): void {\n if (!this.stateMachine.context.isLastFile()) {\n this.stateMachine.context.nextFile();\n this.stateMachine.changeState(this.stateMachine.basicUploadingState);\n } else {\n this.stateMachine.changeState(this.stateMachine.completedState);\n }\n }\n}\n","import { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\nexport class ChunkingState extends UploadState {\n async process(): Promise {\n const fileUpload = this.stateMachine.context.getCurrentFileUpload();\n\n if (this.requiresChunking(fileUpload)) {\n this.splitOnChunks(fileUpload);\n } else {\n fileUpload.addChunk(fileUpload.mediaFile.file);\n }\n\n this.stateMachine.changeState(this.stateMachine.uploadingState);\n }\n\n private requiresChunking(fileUpload: FileUpload): boolean {\n return fileUpload.mediaFile.file.size > this.stateMachine.context.chunkSize * 2;\n }\n\n private splitOnChunks(fileUpload: FileUpload): void {\n for (let chunkIndex = 0; chunkIndex < fileUpload.mediaFile.file.size / this.stateMachine.context.chunkSize; chunkIndex++) {\n const start = chunkIndex * this.stateMachine.context.chunkSize;\n const end = start + this.stateMachine.context.chunkSize;\n const blob = fileUpload.mediaFile.file.slice(start, end);\n\n fileUpload.addChunk(blob);\n }\n }\n}\n","import { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\nexport class CompletedState extends UploadState {}\n","import { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\nexport class FailedState extends UploadState {}\n","import { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\nimport { ImageResponseDto } from '@vp/profile/data/dto/ImageResponseDto';\nimport { VideoResponseDto } from '@vp/profile/data/dto/VideoResponseDto';\n\ninterface UploadResponseDto {\n videos?: VideoResponseDto;\n images?: ImageResponseDto;\n}\n\nexport class FinalizingState extends UploadState {\n async process(): Promise {\n try {\n await this.finalizeUpload();\n this.determineTransition();\n } catch (error) {\n this.handleError(error);\n this.stateMachine.changeState(this.stateMachine.failedState);\n }\n }\n\n private async finalizeUpload(): Promise {\n const fileUpload = this.stateMachine.context.getCurrentFileUpload();\n const formData = this.stateMachine.mapper.toMultipartUploadFormData(fileUpload, this.stateMachine.context.profileId);\n\n const { data } = await this.stateMachine.http.put('/api/multipart_uploads', formData, {\n signal: this.stateMachine.controller.signal,\n });\n\n data.videos && this.stateMachine.context.addVideo(data.videos);\n data.images && this.stateMachine.context.addImage(data.images);\n }\n\n private determineTransition(): void {\n if (!this.stateMachine.context.isLastFile()) {\n this.stateMachine.context.nextFile();\n this.stateMachine.changeState(this.stateMachine.initializationState);\n } else {\n this.stateMachine.changeState(this.stateMachine.completedState);\n }\n }\n}\n","import { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\ntype UploadInitializationDto = { upload_id: string; key: string };\n\nexport class InitializationState extends UploadState {\n async process(): Promise {\n try {\n await this.initializeUpload();\n this.stateMachine.changeState(this.stateMachine.chunkingState);\n } catch (error) {\n this.handleError(error);\n this.stateMachine.changeState(this.stateMachine.failedState);\n }\n }\n\n private async initializeUpload(): Promise {\n const fileUpload = this.stateMachine.context.getCurrentFileUpload();\n const url = `/api/multipart_uploads?${this.toSearchParams(fileUpload)}`;\n\n const { data } = await this.stateMachine.http.post(url, {\n signal: this.stateMachine.controller.signal,\n });\n\n fileUpload.setUploadMeta(data.upload_id, data.key);\n }\n\n private toSearchParams(fileUpload: FileUpload): string {\n const search = new URLSearchParams();\n\n search.set('filename', fileUpload.mediaFile.file.name);\n search.set('profile_id', this.stateMachine.context.profileId);\n search.set('content_type', fileUpload.mediaFile.file.type);\n search.set('content_length', fileUpload.mediaFile.file.size.toString());\n\n return search.toString();\n }\n}\n","export class FileChunk {\n eTag?: string;\n\n constructor(\n public blob: Blob,\n public order: number,\n ) {}\n\n setEtag(etag: string): void {\n this.eTag = etag;\n }\n}\n","import { MediaFileDto } from '@vp/manager/gallery/core/dto/MediaFileDto';\nimport { FileChunk } from '@vp/manager/gallery/data/upload/context/FileChunk';\n\nexport class FileUpload {\n uploadId?: string;\n uploadKey?: string;\n progress: number = 0;\n readonly chunks: FileChunk[] = [];\n\n constructor(readonly mediaFile: MediaFileDto) {}\n\n addChunk(blob: Blob): void {\n const order = this.chunks.length + 1;\n const chunk = new FileChunk(blob, order);\n this.chunks.push(chunk);\n }\n\n setUploadMeta(uploadId: string, uploadKey: string): void {\n this.uploadId = uploadId;\n this.uploadKey = uploadKey;\n }\n\n updateProgress(progress: number): void {\n this.progress = Math.min(progress, 100);\n }\n}\n","import { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\nimport { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { FileUploadRegistry } from '@vp/manager/gallery/data/upload/context/UploadContext';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\nexport class InitialState extends UploadState {\n async process(): Promise {\n const registry: FileUploadRegistry = new Map();\n\n for (let index = 0; index < this.stateMachine.context.files.length; index++) {\n const mediaFile = this.stateMachine.context.files[index];\n registry.set(index, new FileUpload(mediaFile));\n }\n\n this.stateMachine.context.setRegistry(registry);\n\n this.determineTransition();\n }\n\n private determineTransition(): void {\n if (this.stateMachine.context.type === UploadMediaType.Videos) {\n this.stateMachine.changeState(this.stateMachine.initializationState);\n } else {\n this.stateMachine.changeState(this.stateMachine.basicUploadingState);\n }\n }\n}\n","import { AxiosProgressEvent, AxiosResponse } from 'axios';\n\nimport { FileChunk } from '@vp/manager/gallery/data/upload/context/FileChunk';\nimport { FileUpload } from '@vp/manager/gallery/data/upload/context/FileUpload';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\ntype PresignedUrlDto = { presigned_url: string };\n\nexport class UploadingState extends UploadState {\n async process(): Promise {\n try {\n await this.uploadChunks();\n this.stateMachine.changeState(this.stateMachine.finalizingState);\n } catch (error) {\n this.handleError(error);\n this.stateMachine.changeState(this.stateMachine.failedState);\n }\n }\n\n private async uploadChunks(): Promise {\n const fileUpload = this.stateMachine.context.getCurrentFileUpload();\n\n for (const chunk of fileUpload.chunks) {\n const uploadUrl = await this.getUploadUrl(chunk, fileUpload);\n await this.uploadChunk(uploadUrl, chunk, fileUpload);\n }\n }\n\n private async getUploadUrl(chunk: FileChunk, fileUpload: FileUpload): Promise {\n const params = new URLSearchParams({\n upload_id: fileUpload.uploadId!,\n key: fileUpload.uploadKey!,\n part_number: chunk.order.toString(),\n });\n\n const { data } = await this.stateMachine.http.get('/api/multipart_uploads/presigned_url_for_chunk', {\n signal: this.stateMachine.controller.signal,\n params,\n });\n\n return data.presigned_url;\n }\n\n private async uploadChunk(url: string, chunk: FileChunk, fileUpload: FileUpload): Promise {\n const response = await this.stateMachine.http.put(url, chunk.blob, {\n signal: this.stateMachine.controller.signal,\n timeout: 15 * 60 * 1000,\n headers: { 'Content-Type': 'application/octet-stream' },\n onUploadProgress: progressEvent => {\n this.updateFileProgress(progressEvent, fileUpload, chunk);\n this.updateTotalProgress();\n this.stateMachine.notify();\n },\n });\n\n chunk.setEtag(this.extractEtag(response));\n }\n\n private updateFileProgress(progressEvent: AxiosProgressEvent, fileUpload: FileUpload, chunk: FileChunk): void {\n const chunkPercent = Math.round((progressEvent.loaded * 100) / progressEvent.total!) / fileUpload.chunks.length;\n const basePercent = ((chunk.order - 1) * 100) / fileUpload.chunks.length;\n fileUpload.updateProgress(basePercent + chunkPercent);\n }\n\n private extractEtag(response: AxiosResponse): string {\n const etag = response.headers['etag'] as string;\n return etag.replace(/\"/g, '');\n }\n}\n","import { Axios } from 'axios';\n\nimport { Analytics } from '@vp/common/core/Analytics';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport {\n GalleryManagerUploadHandle,\n UploadHandleSubscriber,\n UploadHandleUnsubscribe,\n} from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { GalleryManagerDataMapper } from '@vp/manager/gallery/data/GalleryManagerDataMapper';\nimport { UploadContext } from '@vp/manager/gallery/data/upload/context/UploadContext';\nimport { BasicUploadingState } from '@vp/manager/gallery/data/upload/state/BasicUploadingState';\nimport { ChunkingState } from '@vp/manager/gallery/data/upload/state/ChunkingState';\nimport { CompletedState } from '@vp/manager/gallery/data/upload/state/CompletedState';\nimport { FailedState } from '@vp/manager/gallery/data/upload/state/FailedState';\nimport { FinalizingState } from '@vp/manager/gallery/data/upload/state/FinalizingState';\nimport { InitializationState } from '@vp/manager/gallery/data/upload/state/InitializationState';\nimport { InitialState } from '@vp/manager/gallery/data/upload/state/InitialState';\nimport { UploadingState } from '@vp/manager/gallery/data/upload/state/UploadingState';\nimport { UploadState } from '@vp/manager/gallery/data/upload/state/UploadState';\n\nexport class UploadStateMachine implements GalleryManagerUploadHandle {\n readonly initialState: UploadState = new InitialState(this);\n readonly initializationState: UploadState = new InitializationState(this);\n readonly chunkingState: UploadState = new ChunkingState(this);\n readonly uploadingState: UploadState = new UploadingState(this);\n readonly basicUploadingState: UploadState = new BasicUploadingState(this);\n readonly finalizingState: UploadState = new FinalizingState(this);\n readonly completedState: UploadState = new CompletedState(this);\n readonly failedState: UploadState = new FailedState(this);\n\n controller: AbortController = new AbortController();\n currentState?: UploadState;\n\n private readonly subscribers: Set = new Set();\n\n constructor(\n readonly context: UploadContext,\n readonly http: Axios,\n readonly errorExtractor: ErrorExtractor,\n readonly mapper: GalleryManagerDataMapper,\n readonly analytics: Analytics,\n ) {}\n\n subscribe(subscriber: UploadHandleSubscriber): UploadHandleUnsubscribe {\n this.subscribers.add(subscriber);\n const snapshot = this.mapper.toUploadHandleSnapshot(this);\n subscriber(snapshot);\n return () => this.subscribers.delete(subscriber);\n }\n\n notify(): void {\n const snapshot = this.mapper.toUploadHandleSnapshot(this);\n this.subscribers.forEach(subscriber => subscriber(snapshot));\n }\n\n start(): void {\n this.stop();\n this.controller = new AbortController();\n this.changeState(this.initialState);\n }\n\n stop(): void {\n this.controller.abort();\n this.subscribers.clear();\n this.currentState = undefined;\n this.context.reset();\n }\n\n changeState(state: UploadState): void {\n this.currentState = state;\n this.currentState.onEnter();\n void this.currentState.process?.();\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { Analytics } from '@vp/common/core/Analytics';\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { GalleryManagerRepository } from '@vp/manager/gallery/core/interface/GalleryManagerRepository';\nimport { GalleryManagerUploadHandle } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { GalleryManagerDataMapper } from '@vp/manager/gallery/data/GalleryManagerDataMapper';\nimport { UploadStateMachine } from '@vp/manager/gallery/data/upload/UploadStateMachine';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestGalleryManagerRepository implements GalleryManagerRepository {\n private readonly ChunkSize: number = 5 * 1024 * 1024;\n\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n private readonly galleryManagerMapper: GalleryManagerDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n private readonly analytics: Analytics,\n ) {}\n\n upload(dto: UploadMediaDto): GalleryManagerUploadHandle {\n const context = this.galleryManagerMapper.toUploadStateMachineContext(dto, this.ChunkSize);\n\n const machine = new UploadStateMachine(context, this.http, this.errorExtractor, this.galleryManagerMapper, this.analytics);\n machine.start();\n\n return machine;\n }\n\n async remove(dto: RemoveMediaDto, controller?: AbortController): Promise> {\n try {\n const formData = this.galleryManagerMapper.toRemoveFormData(dto);\n\n const { data } = await this.http.put(`/api/profiles/${dto.profileId}/upload`, formData, {\n signal: controller?.signal,\n });\n\n return Success.from(this.profileDataMapper.toProfile(data));\n } catch (error) {\n this.analytics.trackError(error);\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n}\n","export enum GalleryManagerSection {\n Photos = 'photos',\n Videos = 'videos',\n}\n","import { injectable } from 'inversify';\n\nimport { MediaGridItem } from '@vp/common/ui/component/VpMediaGrid';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerPreviewProps, PhotoPreview, VideoPreview } from '@vp/manager/gallery/ui/preview/GalleryManagerPreview';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class GalleryManagerMapper {\n toPreviewItem(item: MediaGridItem, section: GalleryManagerSection, profile: ProfileModel): GalleryManagerPreviewProps['item'] {\n return section === GalleryManagerSection.Photos ? this.toPhoto(item, profile) : this.toVideo(item, profile);\n }\n\n private toPhoto(item: MediaGridItem, profile: ProfileModel): PhotoPreview {\n const photo = profile.photos.find(photo => photo.id === item.id)!;\n return { id: photo.id, url: photo.url, hash: photo.hash };\n }\n\n private toVideo(item: MediaGridItem, profile: ProfileModel): VideoPreview {\n const video = profile.videos.find(video => video.id === item.id)!;\n return { id: video.id, url: video.url, thumbnail: video.thumbnail, thumbnailHash: video.thumbnailHash };\n }\n}\n","import { injectable } from 'inversify';\n\nimport { MediaGridItem } from '@vp/common/ui/component/VpMediaGrid';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { ProfileVideoModel } from '@vp/profile/core/model/ProfileVideoModel';\n\n@injectable()\nexport class MediaItemsMapper {\n toPhotoItems(photos: ProfilePhotoModel[]): MediaGridItem[] {\n return photos.map(photo => ({ ...photo, type: 'photo' }));\n }\n\n toVideoItems(videos: ProfileVideoModel[]): MediaGridItem[] {\n return videos.map(({ id, thumbnail, thumbnailHash }) => ({ id, url: thumbnail, hash: thumbnailHash, type: 'video' }));\n }\n}\n","import { batch, computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { MediaGridItem } from '@vp/common/ui/component/VpMediaGrid';\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { GalleryManagerMapper } from '@vp/manager/gallery/ui/GalleryManagerMapper';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerPreviewProps } from '@vp/manager/gallery/ui/preview/GalleryManagerPreview';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { MediaItemsMapper } from '@vp/profile/ui/gallery/MediaItemsMapper';\n\n@injectable()\nexport class GalleryManagerViewModel extends ViewModel {\n readonly profile: ReadonlySignal = this.profileManagerPort.active;\n readonly photos: ReadonlySignal = computed(() => this.toViewPhotos());\n readonly videos: ReadonlySignal = computed(() => this.toViewVideos());\n\n readonly filesToUpload: Signal = signal([]);\n readonly uploadShown: Signal = signal(false);\n readonly previewShown: Signal = signal(false);\n readonly previewItem: Signal = signal(null);\n\n constructor(\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly mediaItemsMapper: MediaItemsMapper,\n private readonly galleryManagerMapper: GalleryManagerMapper,\n ) {\n super();\n }\n\n handleFiles = (files: File[]): void => {\n batch(() => {\n this.filesToUpload.value = files;\n this.uploadShown.value = true;\n });\n };\n\n closeUpload = (): void => {\n batch(() => {\n this.uploadShown.value = false;\n this.filesToUpload.value = [];\n });\n };\n\n showPreview = (item: MediaGridItem, section: GalleryManagerSection): void => {\n const previewItem = this.galleryManagerMapper.toPreviewItem(item, section, this.profile.value!);\n\n batch(() => {\n this.previewItem.value = previewItem;\n this.previewShown.value = true;\n });\n };\n\n closePreview = (): void => {\n batch(() => {\n this.previewShown.value = false;\n this.previewItem.value = null;\n });\n };\n\n private toViewPhotos(): MediaGridItem[] {\n return this.mediaItemsMapper.toPhotoItems(this.profile.value?.photos ?? []);\n }\n\n private toViewVideos(): MediaGridItem[] {\n return this.mediaItemsMapper.toVideoItems(this.profile.value?.videos ?? []);\n }\n}\n","import { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\n\nexport class RemoveMediaDto {\n readonly id!: string;\n readonly type!: UploadMediaType;\n readonly profileId!: string;\n\n constructor(args: RemoveMediaDto) {\n Object.assign(this, args);\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { RemoveMediaDto } from '@vp/manager/gallery/core/dto/RemoveMediaDto';\nimport { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\nimport { GalleryManagerPort } from '@vp/manager/gallery/core/interface/GalleryManagerPort';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerPreviewProps, PhotoPreview, VideoPreview } from '@vp/manager/gallery/ui/preview/GalleryManagerPreview';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\n\n@injectable()\nexport class GalleryManagerPreviewViewModel extends ViewModel implements ViewModelDispose {\n readonly dialogShown: Signal = signal(false);\n readonly removing: Signal = signal(false);\n\n private controller?: AbortController;\n\n constructor(\n private readonly galleryManagerPort: GalleryManagerPort,\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n showDialog = (): void => {\n this.dialogShown.value = true;\n };\n\n closeDialog = (): void => {\n this.dialogShown.value = false;\n };\n\n remove = async (): Promise => {\n this.removing.value = true;\n await this.handleRemove();\n this.removing.value = false;\n };\n\n isPhotoPreview = (item: PhotoPreview | VideoPreview): item is PhotoPreview => {\n return !Reflect.has(item, 'thumbnail');\n };\n\n private async handleRemove(): Promise {\n this.controller = new AbortController();\n const result = await this.galleryManagerPort.remove(this.toRemoveDto(), this.controller);\n\n if (result instanceof Success) {\n this.closeDialog();\n this.props.value?.close();\n this.showSuccessMessage();\n } else {\n this.showErrorMessage(result.message);\n }\n }\n\n private showSuccessMessage(): void {\n const name = this.isPhotoPreview(this.props.value!.item) ? 'Фото' : 'Видео';\n this.notificationService.enqueue({ variant: 'success', message: `${name} было удалено` });\n }\n\n private showErrorMessage(message: string): void {\n const name = this.isPhotoPreview(this.props.value!.item) ? 'фото' : 'видео';\n const secondaryMessage = message || `Не удалось удалить ${name}`;\n this.notificationService.enqueue({ variant: 'error', message: 'Что-то пошло не так', secondaryMessage });\n }\n\n private toRemoveDto(): RemoveMediaDto {\n const id = this.props.value!.item.id;\n const profileId = this.profileManagerPort.active.value!.id;\n const type = this.props.value!.section === GalleryManagerSection.Photos ? UploadMediaType.Photos : UploadMediaType.Videos;\n return new RemoveMediaDto({ id, type, profileId });\n }\n}\n","import { MediaFileDto } from '@vp/manager/gallery/core/dto/MediaFileDto';\nimport { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\n\nexport class UploadMediaDto {\n readonly profileId!: string;\n readonly files!: MediaFileDto[];\n readonly type!: UploadMediaType;\n\n constructor(args: UploadMediaDto) {\n Object.assign(this, args);\n }\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { MediaGridItem } from '@vp/common/ui/component/VpMediaGrid';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { UploadMediaDto } from '@vp/manager/gallery/core/dto/UploadMediaDto';\nimport { UploadMediaType } from '@vp/manager/gallery/core/dto/UploadMediaType';\nimport { GalleryManagerPort } from '@vp/manager/gallery/core/interface/GalleryManagerPort';\nimport { GalleryManagerUploadHandle, UploadHandleSnapshot } from '@vp/manager/gallery/core/interface/GalleryManagerUploadHandle';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerUploadProps } from '@vp/manager/gallery/ui/upload/GalleryManagerUpload';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class GalleryManagerUploadViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly items: Signal = signal([]);\n readonly uploadSnapshot: Signal = signal(null);\n readonly profile: ReadonlySignal = this.profileManagerPort.active;\n readonly showLimits: ReadonlySignal = computed(() => !this.profile.value?.premium);\n\n private files: Map = new Map();\n private uploadHandle?: GalleryManagerUploadHandle;\n\n constructor(\n private readonly galleryManagerPort: GalleryManagerPort,\n private readonly profileManagerPort: ProfileManagerPort,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n init(): void {\n this.initializeFiles();\n this.items.value = this.toGridItems();\n }\n\n dispose(): void {\n this.uploadHandle?.stop();\n this.revokeItemsUrl();\n }\n\n remove = (item: MediaGridItem): void => {\n this.revokeItemUrl(item);\n this.items.value = this.items.value.filter(({ id }) => item.id !== id);\n if (!this.items.value.length) this.closeUpload();\n };\n\n upload = (): void => {\n this.uploadHandle?.stop();\n this.uploadHandle = this.galleryManagerPort.upload(this.toDto());\n\n this.uploadHandle.subscribe(snapshot => {\n this.uploadSnapshot.value = snapshot;\n\n if (snapshot.state === 'completed') {\n this.closeUpload();\n this.showSuccessNotification();\n }\n\n if (snapshot.state === 'failed') {\n this.showErrorNotification(snapshot.error);\n }\n });\n };\n\n cancelUpload = (): void => {\n this.uploadHandle?.stop();\n this.uploadSnapshot.value = null;\n };\n\n private closeUpload(): void {\n this.props.value?.close();\n }\n\n private showSuccessNotification(): void {\n const name = this.props.value?.section === GalleryManagerSection.Photos ? 'Фото' : 'Видео';\n\n this.notificationService.enqueue({\n variant: 'success',\n message: `${name} были добавлены в профиль`,\n });\n }\n\n private showErrorNotification(message?: string): void {\n const name = this.props.value?.section === GalleryManagerSection.Photos ? 'фото' : 'видео';\n const secondaryMessage = message || `Не удалось загрузить ${name}`;\n\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage,\n });\n }\n\n private toDto(): UploadMediaDto {\n const profileId = this.profile.value!.id;\n const type = this.props.value?.section === GalleryManagerSection.Photos ? UploadMediaType.Photos : UploadMediaType.Videos;\n const files = this.items.value.map(({ id }) => ({ id, file: this.files.get(id)! }));\n return new UploadMediaDto({ profileId, type, files });\n }\n\n private toGridItems(): MediaGridItem[] {\n const type = this.getType();\n const items: MediaGridItem[] = [];\n\n this.files.forEach((file, id) => {\n const item = this.toGridItem(id, type, file);\n items.push(item);\n });\n\n return items;\n }\n\n private toGridItem(id: string, type: MediaGridItem['type'], file: File): MediaGridItem {\n const url = type === 'photo' ? URL.createObjectURL(file) : '';\n return { id, type, hash: '', url };\n }\n\n private getType(): MediaGridItem['type'] {\n return this.props.value?.section === GalleryManagerSection.Photos ? 'photo' : 'video';\n }\n\n private revokeItemsUrl(): void {\n this.items.value.forEach(item => this.revokeItemUrl(item));\n }\n\n private revokeItemUrl(item: MediaGridItem): void {\n if (item.url) {\n URL.revokeObjectURL(item.url);\n }\n }\n\n private initializeFiles(): void {\n this.files = new Map();\n\n if (this.props.value?.files) {\n this.props.value.files.forEach(file => {\n this.files.set(Math.random().toString(36), file);\n });\n }\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { GalleryManagerFacade } from '@vp/manager/gallery/core/GalleryManagerFacade';\nimport { GalleryManagerPort } from '@vp/manager/gallery/core/interface/GalleryManagerPort';\nimport { GalleryManagerRepository } from '@vp/manager/gallery/core/interface/GalleryManagerRepository';\nimport { RemoveMediaUsecase } from '@vp/manager/gallery/core/usecase/RemoveMediaUsecase';\nimport { UploadMediaUsecase } from '@vp/manager/gallery/core/usecase/UploadMediaUsecase';\nimport { GalleryManagerDataMapper } from '@vp/manager/gallery/data/GalleryManagerDataMapper';\nimport { RestGalleryManagerRepository } from '@vp/manager/gallery/data/RestGalleryManagerRepository';\nimport { GalleryManagerMapper } from '@vp/manager/gallery/ui/GalleryManagerMapper';\nimport { GalleryManagerViewModel } from '@vp/manager/gallery/ui/GalleryManagerViewModel';\nimport { GalleryManagerPreviewViewModel } from '@vp/manager/gallery/ui/preview/GalleryManagerPreviewViewModel';\nimport { GalleryManagerUploadViewModel } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadViewModel';\n\nexport class GalleryManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(GalleryManagerMapper).toSelf().inTransientScope();\n bind(GalleryManagerViewModel).toSelf().inTransientScope();\n bind(GalleryManagerUploadViewModel).toSelf().inTransientScope();\n bind(GalleryManagerPreviewViewModel).toSelf().inTransientScope();\n\n bind(RestGalleryManagerRepository).toSelf().inSingletonScope();\n bind(GalleryManagerDataMapper).toSelf().inSingletonScope();\n\n bind(GalleryManagerRepository)\n .toDynamicValue(context => context.container.get(RestGalleryManagerRepository))\n .inSingletonScope();\n\n bind(UploadMediaUsecase).toSelf().inSingletonScope();\n bind(RemoveMediaUsecase).toSelf().inSingletonScope();\n bind(GalleryManagerFacade).toSelf().inSingletonScope();\n\n bind(GalleryManagerPort)\n .toDynamicValue(context => context.container.get(GalleryManagerFacade))\n .inSingletonScope();\n });\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport type HonorManagerStatus = 'initial' | 'loading' | 'loaded' | 'error';\n\nexport abstract class HonorManagerState {\n abstract readonly approvedRecords: ReadonlySignal;\n abstract readonly pendingRecords: ReadonlySignal;\n abstract readonly status: ReadonlySignal;\n\n abstract loading(): void;\n abstract completed(status: HonorManagerStatus): void;\n abstract setRecords(records: ProfileHonorRecordModel[]): void;\n abstract updateRecords(records: ProfileHonorRecordModel[]): void;\n abstract setRecord(record: ProfileHonorRecordModel): void;\n abstract deleteRecords(ids: string[]): void;\n abstract reset(): void;\n}\n","import { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport abstract class HonorManagerRepository {\n abstract getHonorRecords(id: string, controller?: AbortController): Promise;\n abstract removeHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise;\n abstract approveHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise;\n abstract editHonorRecord(id: string, newText: string, controller?: AbortController): Promise;\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\n\n@injectable()\nexport class ApproveHonorRecordUsecase {\n constructor(\n private readonly honorManagerRepository: HonorManagerRepository,\n private readonly honorManagerState: HonorManagerState,\n ) {}\n\n async execute(ids: string[], profileId: string, controller?: AbortController): Promise {\n const approvedRecords = await this.honorManagerRepository.approveHonorRecords(ids, profileId, controller);\n this.honorManagerState.updateRecords(approvedRecords);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\n\n@injectable()\nexport class EditHonorRecordUsecase {\n constructor(\n private readonly honorManagerRepository: HonorManagerRepository,\n private readonly honorManagerState: HonorManagerState,\n ) {}\n\n async execute(id: string, newText: string, controller?: AbortController): Promise {\n const updatedRecord = await this.honorManagerRepository.editHonorRecord(id, newText, controller);\n this.honorManagerState.setRecord(updatedRecord);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\n@injectable()\nexport class HandleSubmissionResultUsecase {\n constructor(private readonly honorManagerState: HonorManagerState) {}\n\n execute(record: ProfileHonorRecordModel): void {\n this.honorManagerState.setRecord(record);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\n\n@injectable()\nexport class LoadHonorRecordsUsecase {\n constructor(\n private readonly honorManagerRepository: HonorManagerRepository,\n private readonly honorManagerState: HonorManagerState,\n ) {}\n\n async execute(id: string, controller?: AbortController): Promise {\n try {\n this.honorManagerState.loading();\n const records = await this.honorManagerRepository.getHonorRecords(id, controller);\n this.honorManagerState.setRecords(records);\n this.honorManagerState.completed('loaded');\n } catch {\n this.honorManagerState.completed('error');\n }\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\n\n@injectable()\nexport class RemoveHonorRecordUsecase {\n constructor(\n private readonly honorManagerRepository: HonorManagerRepository,\n private readonly honorManagerState: HonorManagerState,\n ) {}\n\n async execute(ids: string[], profileId: string, controller?: AbortController): Promise {\n await this.honorManagerRepository.removeHonorRecords(ids, profileId, controller);\n this.honorManagerState.deleteRecords(ids);\n }\n}\n","import { injectable } from 'inversify';\n\nimport { HonorManagerPort } from '@vp/manager/honor/core/interface/HonorManagerPort';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\nimport { ApproveHonorRecordUsecase } from '@vp/manager/honor/core/usecase/ApproveHonorRecordUsecase';\nimport { EditHonorRecordUsecase } from '@vp/manager/honor/core/usecase/EditHonorRecordUsecase';\nimport { HandleSubmissionResultUsecase } from '@vp/manager/honor/core/usecase/HandleSubmissionResultUsecase';\nimport { LoadHonorRecordsUsecase } from '@vp/manager/honor/core/usecase/LoadHonorRecordsUsecase';\nimport { RemoveHonorRecordUsecase } from '@vp/manager/honor/core/usecase/RemoveHonorRecordUsecase';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\n@injectable()\nexport class HonorManagerFacade implements HonorManagerPort {\n constructor(\n private readonly loadHonorRecordsUsecase: LoadHonorRecordsUsecase,\n private readonly removeHonorRecordUsecase: RemoveHonorRecordUsecase,\n private readonly approveHonorRecordUsecase: ApproveHonorRecordUsecase,\n private readonly handleSubmissionResultUsecase: HandleSubmissionResultUsecase,\n private readonly editHonorRecordUsecase: EditHonorRecordUsecase,\n private readonly honorManagerState: HonorManagerState,\n ) {}\n\n async loadHonorRecords(id: string, controller?: AbortController): Promise {\n await this.loadHonorRecordsUsecase.execute(id, controller);\n }\n\n async removeHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise {\n await this.removeHonorRecordUsecase.execute(ids, profileId, controller);\n }\n\n async approveHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise {\n await this.approveHonorRecordUsecase.execute(ids, profileId, controller);\n }\n\n async editRecord(id: string, newText: string, controller?: AbortController): Promise {\n await this.editHonorRecordUsecase.execute(id, newText, controller);\n }\n\n resetState(): void {\n this.honorManagerState.reset();\n }\n\n handleSubmissionResult(record: ProfileHonorRecordModel): void {\n this.handleSubmissionResultUsecase.execute(record);\n }\n}\n","import { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport abstract class HonorManagerPort {\n abstract loadHonorRecords(id: string, controller?: AbortController): Promise;\n abstract editRecord(id: string, newText: string, controller?: AbortController): Promise;\n abstract removeHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise;\n abstract approveHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise;\n abstract handleSubmissionResult(record: ProfileHonorRecordModel): void;\n abstract resetState(): void;\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { TributeResponseDto } from '@vp/profile/data/dto/TributeResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestHonorManagerRepository implements HonorManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n ) {}\n\n async getHonorRecords(id: string, controller?: AbortController): Promise {\n const { data } = await this.http.get(`/api/tributes?profile_id=${id}`, {\n signal: controller?.signal,\n });\n return data.map(dto => this.profileDataMapper.toHonorRecord(dto));\n }\n\n async removeHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise {\n const data = { tribute_ids: ids };\n await this.http.delete(`/api/tributes?profile_id=${profileId}`, { data, signal: controller?.signal });\n }\n\n async approveHonorRecords(ids: string[], profileId: string, controller?: AbortController): Promise {\n const body = { tribute_ids: ids };\n const { data } = await this.http.put(`/api/tributes/approve?profile_id=${profileId}`, body, {\n signal: controller?.signal,\n });\n return data.map(dto => this.profileDataMapper.toHonorRecord(dto));\n }\n\n async editHonorRecord(id: string, newText: string, controller?: AbortController): Promise {\n const { data } = await this.http.patch(`/api/tributes/${id}`, this.createFormData(newText), {\n signal: controller?.signal,\n });\n return this.profileDataMapper.toHonorRecord(data);\n }\n\n private createFormData(text: string): FormData {\n const formData = new FormData();\n formData.append('text', text);\n return formData;\n }\n}\n","import { batch, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { HonorManagerState, HonorManagerStatus } from '@vp/manager/honor/core/interface/HonorManagerState';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\n@injectable()\nexport class SignalsHonorManagerState implements HonorManagerState {\n readonly approvedRecords: Signal = signal([]);\n readonly pendingRecords: Signal = signal([]);\n readonly status: Signal = signal('initial');\n\n private records: Map = new Map();\n\n completed(status: HonorManagerStatus): void {\n this.status.value = status;\n }\n\n loading(): void {\n this.status.value = 'loading';\n }\n\n setRecords(records: ProfileHonorRecordModel[]): void {\n this.records = new Map();\n this.updateRecords(records);\n }\n\n updateRecords(records: ProfileHonorRecordModel[]): void {\n for (const record of records) {\n this.records.set(record.id, record);\n }\n\n this.emitUpdate();\n }\n\n setRecord(record: ProfileHonorRecordModel): void {\n this.records.set(record.id, record);\n this.emitUpdate();\n }\n\n deleteRecords(ids: string[]): void {\n for (const id of ids) {\n this.records.delete(id);\n }\n\n this.emitUpdate();\n }\n\n reset(): void {\n this.setRecords([]);\n this.status.value = 'initial';\n }\n\n private emitUpdate(): void {\n const { approved, pending } = this.splitRecords();\n\n batch(() => {\n this.approvedRecords.value = approved;\n this.pendingRecords.value = pending;\n });\n }\n\n private splitRecords(): { approved: ProfileHonorRecordModel[]; pending: ProfileHonorRecordModel[] } {\n const approved: ProfileHonorRecordModel[] = [];\n const pending: ProfileHonorRecordModel[] = [];\n\n this.records.forEach(record => {\n if (record.approved) {\n approved.push(record);\n } else {\n pending.push(record);\n }\n });\n\n return { approved, pending };\n }\n}\n","export enum HonorManagerSection {\n Approved = 'approved',\n Pending = 'pending',\n YourRecord = 'your-record',\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { HonorManagerSection } from '@vp/manager/honor/ui/HonorManagerSection';\nimport { RouterService } from '@vp/routing/RouterService';\nimport { Unsubscribe } from '@vp/routing/RouterSubscribers';\n\n@injectable()\nexport class HonorManagerNavigator {\n readonly activeSection: Signal = signal(HonorManagerSection.Approved);\n\n private unsubscribe?: Unsubscribe;\n\n constructor(private readonly routerService: RouterService) {}\n\n attach(): void {\n this.unsubscribe = this.routerService.subscribe(({ search }) => {\n if (this.routerService.isOn('/ps/:id/honor')) {\n this.setActiveSection(search);\n }\n });\n }\n\n detach(): void {\n this.unsubscribe?.();\n }\n\n toApprovedSection(): void {\n const search = new URLSearchParams(location.search);\n search.set('s', HonorManagerSection.Approved);\n void this.routerService.navigate(`${location.pathname}?${search.toString()}`);\n }\n\n isOn(section: string): boolean {\n return this.activeSection.value === section;\n }\n\n private setActiveSection(search: string): void {\n const params = new URLSearchParams(search);\n this.activeSection.value = params.get('s') ?? HonorManagerSection.Approved;\n }\n}\n","import { injectable } from 'inversify';\n\nimport { Action } from '@vp/manager/honor/ui/HonorManagerViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\ninterface NotificationMessage {\n primary: string;\n secondary: string;\n}\n\ninterface NotificationStatusMessages {\n success: NotificationMessage;\n error: NotificationMessage;\n info: NotificationMessage;\n}\n\nconst EditNotificationText: NotificationStatusMessages = {\n success: {\n primary: 'Почесть была отредактирована',\n secondary: 'Вы можете изменить её в любой момент',\n },\n error: {\n primary: 'Что-то пошло не так.',\n secondary: 'Обновите страницу и попробуйте ещё раз.',\n },\n info: {\n primary: '',\n secondary: '',\n },\n};\n\nconst ApproveNotificationText: NotificationStatusMessages = {\n success: {\n primary: 'Почесть была одобрена',\n secondary: 'Вы можете найти её во вкладке Одобренные',\n },\n error: {\n primary: 'Что-то пошло не так.',\n secondary: 'Обновите страницу и попробуйте ещё раз.',\n },\n info: {\n primary: '',\n secondary: '',\n },\n};\n\nconst RemoveNotificationText: NotificationStatusMessages = {\n success: {\n primary: 'Почесть была удалена',\n secondary: 'Это действие нельзя отменить',\n },\n error: {\n primary: 'Что-то пошло не так.',\n secondary: 'Обновите страницу и попробуйте ещё раз.',\n },\n info: {\n primary: '',\n secondary: '',\n },\n};\n\nconst SubmitNotificationText: NotificationStatusMessages = {\n success: {\n primary: 'Ваша запись была отправлена',\n secondary: 'Вы можете найти её во вкладке Одобренные',\n },\n error: {\n primary: 'Что-то пошло не так.',\n secondary: 'Обновите страницу и попробуйте ещё раз.',\n },\n info: {\n primary: '',\n secondary: '',\n },\n};\n\nconst NotificationText: Record = {\n edit: EditNotificationText,\n approve: ApproveNotificationText,\n remove: RemoveNotificationText,\n submit: SubmitNotificationText,\n};\n\n@injectable()\nexport class HonorManagerNotificationService {\n constructor(private readonly notificationService: AppNotificationService) {}\n\n showNotification(status: ProfileHonorNotificationStatus, action: Action): void {\n const { primary, secondary } = NotificationText[action][status];\n\n this.notificationService.enqueue({\n variant: status,\n message: primary,\n secondaryMessage: secondary,\n });\n }\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { TimeAgoFormatter } from '@vp/common/ui/TimeAgoFormatter';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { HonorManagerPort } from '@vp/manager/honor/core/interface/HonorManagerPort';\nimport { HonorManagerState, HonorManagerStatus } from '@vp/manager/honor/core/interface/HonorManagerState';\nimport { HonorManagerNavigator } from '@vp/manager/honor/ui/HonorManagerNavigator';\nimport { HonorManagerNotificationService } from '@vp/manager/honor/ui/HonorManagerNotificationService';\nimport { HonorManagerSection } from '@vp/manager/honor/ui/HonorManagerSection';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\nexport type Status = ProfileHonorNotificationStatus;\nexport type Action = 'edit' | 'remove' | 'submit' | 'approve';\n\nexport interface RequestState {\n inProgress: boolean;\n action: Action | null;\n ids: string[];\n}\n\n@injectable()\nexport class HonorManagerViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly approvedRecords: ReadonlySignal = computed(() =>\n this.toViewHonorRecords(this.honorManagerState.approvedRecords.value),\n );\n readonly pendingRecords: ReadonlySignal = computed(() =>\n this.toViewHonorRecords(this.honorManagerState.pendingRecords.value),\n );\n readonly isActiveTabHasRecords: ReadonlySignal = computed(() => this.hasRecords());\n\n readonly status: ReadonlySignal = this.honorManagerState.status;\n readonly profile: ReadonlySignal = this.profileManagerState.active;\n\n readonly activeRequestState: Signal = signal({ inProgress: false, action: null, ids: [] });\n private controller?: AbortController;\n\n constructor(\n private readonly honorManagerState: HonorManagerState,\n private readonly timeAgoFormatter: TimeAgoFormatter,\n private readonly honorManagerPort: HonorManagerPort,\n private readonly profileManagerState: ProfileManagerState,\n private readonly honorManagerNavigator: HonorManagerNavigator,\n private readonly honorManagerNotificationService: HonorManagerNotificationService,\n ) {\n super();\n }\n\n init(): void {\n this.controller = new AbortController();\n void this.honorManagerPort.loadHonorRecords(this.profile.value?.id ?? '', this.controller);\n this.honorManagerNavigator.attach();\n }\n\n dispose(): void {\n this.controller?.abort();\n this.honorManagerNavigator.detach();\n this.honorManagerPort.resetState();\n }\n\n editRecord = async (id: string, newText: string): Promise => {\n return await this.handleRequest('edit', [id], (controller: AbortController) =>\n this.honorManagerPort.editRecord(id, newText, controller),\n );\n };\n\n removeRecords = async (ids: string[]): Promise => {\n return await this.handleRequest('remove', ids, (controller: AbortController) =>\n this.honorManagerPort.removeHonorRecords(ids, this.profile.value?.id ?? '', controller),\n );\n };\n\n approveRecords = async (ids: string[]): Promise => {\n return await this.handleRequest('approve', ids, (controller: AbortController) =>\n this.honorManagerPort.approveHonorRecords(ids, this.profile.value?.id ?? '', controller),\n );\n };\n\n handleBeforeSubmission = (): void => {\n this.setActiveRequestState({ inProgress: true, action: 'submit', ids: [] });\n };\n\n handleSubmissionResult = (status: ProfileHonorNotificationStatus, record: ProfileHonorRecordModel | null): void => {\n if (status === 'success' && record) {\n this.honorManagerPort.handleSubmissionResult(record);\n this.honorManagerNavigator.toApprovedSection();\n }\n this.setActiveRequestState({ inProgress: false, action: 'submit', ids: [] });\n this.honorManagerNotificationService.showNotification(status, 'submit');\n };\n\n private async handleRequest(\n action: Action,\n ids: string[],\n asyncOperation: (controller: AbortController) => Promise,\n ): Promise {\n this.controller = new AbortController();\n\n const requestState = { inProgress: true, action, ids };\n this.setActiveRequestState(requestState);\n\n let status: Status = 'success';\n\n try {\n await asyncOperation(this.controller);\n } catch {\n status = 'error';\n }\n\n this.setActiveRequestState({ ...requestState, inProgress: false });\n this.honorManagerNotificationService.showNotification(status, action);\n return status;\n }\n\n private setActiveRequestState = (state: RequestState): void => {\n this.activeRequestState.value = state;\n };\n\n private hasRecords(): boolean {\n const hasApproved = this.honorManagerNavigator.isOn(HonorManagerSection.Approved) && !!this.approvedRecords.value.length;\n const hasPending = this.honorManagerNavigator.isOn(HonorManagerSection.Pending) && !!this.pendingRecords.value.length;\n return hasApproved || hasPending;\n }\n\n private toViewHonorRecords(records: ProfileHonorRecordModel[]): ProfileHonorRecordModel[] {\n return records.map(record => ({ ...record, date: this.toTimeAgo(record.date) }));\n }\n\n private toTimeAgo(date: string): string {\n return this.timeAgoFormatter.getTimeAgo(new Date(date));\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { HonorManagerFacade } from '@vp/manager/honor/core/HonorManagerFacade';\nimport { HonorManagerPort } from '@vp/manager/honor/core/interface/HonorManagerPort';\nimport { HonorManagerRepository } from '@vp/manager/honor/core/interface/HonorManagerRepository';\nimport { HonorManagerState } from '@vp/manager/honor/core/interface/HonorManagerState';\nimport { ApproveHonorRecordUsecase } from '@vp/manager/honor/core/usecase/ApproveHonorRecordUsecase';\nimport { EditHonorRecordUsecase } from '@vp/manager/honor/core/usecase/EditHonorRecordUsecase';\nimport { HandleSubmissionResultUsecase } from '@vp/manager/honor/core/usecase/HandleSubmissionResultUsecase';\nimport { LoadHonorRecordsUsecase } from '@vp/manager/honor/core/usecase/LoadHonorRecordsUsecase';\nimport { RemoveHonorRecordUsecase } from '@vp/manager/honor/core/usecase/RemoveHonorRecordUsecase';\nimport { RestHonorManagerRepository } from '@vp/manager/honor/data/RestHonorManagerRepository';\nimport { SignalsHonorManagerState } from '@vp/manager/honor/data/SignalsHonorManagerState';\nimport { HonorManagerNavigator } from '@vp/manager/honor/ui/HonorManagerNavigator';\nimport { HonorManagerNotificationService } from '@vp/manager/honor/ui/HonorManagerNotificationService';\nimport { HonorManagerViewModel } from '@vp/manager/honor/ui/HonorManagerViewModel';\n\nexport class HonorManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(RestHonorManagerRepository).toSelf().inSingletonScope();\n bind(SignalsHonorManagerState).toSelf().inSingletonScope();\n bind(HonorManagerFacade).toSelf().inSingletonScope();\n\n bind(LoadHonorRecordsUsecase).toSelf().inSingletonScope();\n bind(RemoveHonorRecordUsecase).toSelf().inSingletonScope();\n bind(HandleSubmissionResultUsecase).toSelf().inSingletonScope();\n bind(EditHonorRecordUsecase).toSelf().inSingletonScope();\n bind(ApproveHonorRecordUsecase).toSelf().inSingletonScope();\n\n bind(HonorManagerNavigator).toSelf().inTransientScope();\n bind(HonorManagerViewModel).toSelf().inTransientScope();\n\n bind(HonorManagerNotificationService).toSelf().inTransientScope();\n\n bind(HonorManagerState)\n .toDynamicValue(context => context.container.get(SignalsHonorManagerState))\n .inSingletonScope();\n\n bind(HonorManagerRepository)\n .toDynamicValue(context => context.container.get(RestHonorManagerRepository))\n .inSingletonScope();\n\n bind(HonorManagerPort)\n .toDynamicValue(context => context.container.get(HonorManagerFacade))\n .inSingletonScope();\n });\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { RouterService } from '@vp/routing/RouterService';\nimport { Unsubscribe } from '@vp/routing/RouterSubscribers';\n\n@injectable()\nexport class ManagerGatewayViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly hasError: Signal = signal(false);\n readonly initialized: Signal = signal(false);\n readonly profile: ReadonlySignal = computed(() => this.toViewProfile());\n\n private unsubscribe?: Unsubscribe;\n\n constructor(\n private readonly routerService: RouterService,\n private readonly profileManagerState: ProfileManagerState,\n private readonly managerPort: ProfileManagerPort,\n private readonly dateFormatter: DateFormatter,\n ) {\n super();\n }\n\n init(): void {\n this.unsubscribe = this.routerService.subscribe(() => {\n if (this.routerService.isOn('/ps/:id?/*')) {\n this.handleRouteChange();\n }\n });\n }\n\n dispose(): void {\n this.unsubscribe?.();\n }\n\n private handleRouteChange(): void {\n const { id } = this.routerService.getParams('/ps/:id?/*');\n\n if (id) {\n this.makeProfileActive(id);\n } else {\n this.makeFirstProfileActive();\n }\n\n this.initialized.value = true;\n }\n\n private makeProfileActive(id: string): void {\n const profile = this.profileManagerState.getById(id);\n\n if (profile) {\n this.managerPort.setActiveProfile(profile);\n } else {\n this.hasError.value = true;\n }\n }\n\n private makeFirstProfileActive(): void {\n const profiles = this.profileManagerState.profiles.value;\n\n if (profiles.length > 0) {\n const first = profiles[0];\n this.managerPort.setActiveProfile(first);\n void this.routerService.navigate(`/ps/${first.id}`, { replace: true });\n }\n }\n\n private toViewProfile(): ProfileModel | null {\n const profile = this.profileManagerState.active.value;\n if (!profile) return null;\n const birthDate = this.dateFormatter.toLocaleDate(profile.birthDate);\n const deathDate = this.dateFormatter.toLocaleDate(profile.deathDate);\n return { ...profile, birthDate, deathDate };\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { LoadProfilesUsecase } from '@vp/manager/profile/core/usecase/LoadProfilesUsecase';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class ProfileManagerFacade implements ProfileManagerPort {\n readonly active: ReadonlySignal = this.state.active;\n\n constructor(\n private readonly loadProfilesUsecase: LoadProfilesUsecase,\n private readonly state: ProfileManagerState,\n private readonly authState: AuthState,\n ) {}\n\n async loadProfilesIfNeeded(controller?: AbortController): Promise {\n if (this.authState.authenticated.value) {\n await this.loadProfilesUsecase.execute(controller);\n }\n }\n\n setActiveProfile(profile: ProfileModel): void {\n this.state.setActive(profile);\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { ProfileManagerRepository } from '@vp/manager/profile/core/interface/ProfileManagerRepository';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestProfileManagerRepository implements ProfileManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n ) {}\n\n async getProfiles(controller?: AbortController): Promise {\n const { data } = await this.http.get('/api/profiles', { signal: controller?.signal });\n return data.map(dto => this.profileDataMapper.toProfile(dto));\n }\n}\n","import { batch, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ProfileManagerState, ProfileManagerStatus } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class SignalsProfileManagerState implements ProfileManagerState {\n readonly profiles: Signal = signal([]);\n readonly status: Signal = signal('initial');\n readonly active: Signal = signal(null);\n\n completed(status: ProfileManagerStatus, profiles?: ProfileModel[]): void {\n this.status.value = status;\n this.profiles.value = profiles ?? this.profiles.value;\n }\n\n loading(): void {\n this.status.value = 'loading';\n }\n\n getById(id: string): ProfileModel | null {\n return this.profiles.value.find(profile => profile.id === id) ?? null;\n }\n\n setActive(profile: ProfileModel): void {\n this.active.value = profile;\n }\n\n update(updatedProfile: ProfileModel): void {\n if (!this.getById(updatedProfile.id)) {\n return void this.profiles.value.push(updatedProfile);\n }\n\n this.profiles.value = this.profiles.value.map(profile => {\n return profile.id === updatedProfile.id ? updatedProfile : profile;\n });\n\n if (updatedProfile.id === this.active.value?.id) {\n this.active.value = updatedProfile;\n }\n }\n\n reset(): void {\n batch(() => {\n this.profiles.value = [];\n this.status.value = 'initial';\n this.active.value = null;\n });\n }\n}\n","import * as React from \"react\";\nconst SvgCalendar = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.5 3.5H16.5V2H15V3.5H9V2H7.5V3.5H4.5C3.675 3.5 3 4.175 3 5V20C3 20.825 3.675 21.5 4.5 21.5H19.5C20.325 21.5 21 20.825 21 20V5C21 4.175 20.325 3.5 19.5 3.5ZM19.5 20H4.5V9.5H19.5V20ZM19.5 8H4.5V5H7.5V6.5H9V5H15V6.5H16.5V5H19.5V8Z\", fill: \"currentColor\" }));\nexport default SvgCalendar;\n","import * as React from \"react\";\nconst SvgColorPalette = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.26234 2.67996C9.58338 2.17675 10.9924 1.94548 12.405 2C15.0475 2.10882 17.5525 3.20733 19.4226 5.07744C21.2927 6.94755 22.3912 9.45251 22.5 12.095C22.5545 13.5076 22.3233 14.9166 21.82 16.2377C21.3168 17.5587 20.5521 18.7645 19.5716 19.7828C18.5911 20.8012 17.415 21.611 16.114 22.1638C14.8129 22.7166 13.4136 23.0011 12 23C11.4033 23 10.831 22.7629 10.409 22.341C9.98706 21.919 9.75 21.3467 9.75 20.75V17.93C9.75068 17.5836 9.67138 17.2418 9.51827 16.931C9.36516 16.6203 9.14239 16.3492 8.8673 16.1387C8.5922 15.9282 8.27223 15.7841 7.9323 15.7175C7.59237 15.651 7.24166 15.6638 6.9075 15.755L6.0675 15.9875C5.53116 16.134 4.96825 16.1548 4.42255 16.0483C3.87685 15.9418 3.36308 15.7109 2.92117 15.3735C2.47927 15.036 2.12115 14.6012 1.87466 14.1029C1.62818 13.6045 1.49997 13.056 1.5 12.5C1.49895 11.0864 1.78336 9.68708 2.33618 8.38603C2.889 7.08497 3.69884 5.90894 4.71716 4.92844C5.73548 3.94794 6.9413 3.18316 8.26234 2.67996ZM15.528 20.7825C16.6432 20.3067 17.6501 19.6093 18.4875 18.7325V18.74C19.3327 17.8698 19.9914 16.8363 20.4234 15.7028C20.8554 14.5692 21.0516 13.3595 21 12.1475C20.8825 9.89211 19.9338 7.76018 18.3368 6.16322C16.7398 4.56625 14.6079 3.61747 12.3525 3.5C11.1413 3.45253 9.93295 3.65021 8.8 4.0812C7.66706 4.51219 6.63285 5.16759 5.75942 6.0081C4.886 6.8486 4.19136 7.85688 3.71719 8.97244C3.24301 10.088 2.99907 11.2878 3 12.5C2.9993 12.8248 3.07341 13.1454 3.2166 13.437C3.35979 13.7285 3.56821 13.9832 3.82569 14.1812C4.08317 14.3792 4.38279 14.5152 4.70133 14.5787C5.01987 14.6423 5.34876 14.6316 5.6625 14.5475L6.5025 14.315C6.82755 14.226 7.16299 14.1806 7.5 14.18C8.49456 14.18 9.44839 14.5751 10.1517 15.2783C10.8549 15.9816 11.25 16.9354 11.25 17.93V20.75C11.25 20.9489 11.329 21.1397 11.4697 21.2803C11.6103 21.421 11.8011 21.5 12 21.5C13.2125 21.5023 14.4127 21.2582 15.528 20.7825ZM13.5 7.25C13.5 8.07843 12.8284 8.75 12 8.75C11.1716 8.75 10.5 8.07843 10.5 7.25C10.5 6.42158 11.1716 5.75 12 5.75C12.8284 5.75 13.5 6.42158 13.5 7.25ZM9 9.5C9 10.3284 8.32843 11 7.5 11C6.67157 11 6 10.3284 6 9.5C6 8.67158 6.67157 8 7.5 8C8.32843 8 9 8.67158 9 9.5ZM16.5 11C17.3284 11 18 10.3284 18 9.5C18 8.67158 17.3284 8 16.5 8C15.6716 8 15 8.67158 15 9.5C15 10.3284 15.6716 11 16.5 11ZM18.75 14C18.75 14.8284 18.0784 15.5 17.25 15.5C16.4216 15.5 15.75 14.8284 15.75 14C15.75 13.1716 16.4216 12.5 17.25 12.5C18.0784 12.5 18.75 13.1716 18.75 14ZM14.25 19.25C15.0784 19.25 15.75 18.5784 15.75 17.75C15.75 16.9216 15.0784 16.25 14.25 16.25C13.4216 16.25 12.75 16.9216 12.75 17.75C12.75 18.5784 13.4216 19.25 14.25 19.25Z\", fill: \"currentColor\" }));\nexport default SvgColorPalette;\n","import * as React from \"react\";\nconst SvgImage = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M4.5 3.5H19.5C19.8978 3.5 20.2794 3.65804 20.5607 3.93934C20.842 4.22064 21 4.60218 21 5V20C21 20.3978 20.842 20.7794 20.5607 21.0607C20.2794 21.342 19.8978 21.5 19.5 21.5H4.5C4.10218 21.5 3.72064 21.342 3.43934 21.0607C3.15804 20.7794 3 20.3978 3 20V5C3 4.60218 3.15804 4.22064 3.43934 3.93934C3.72064 3.65804 4.10218 3.5 4.5 3.5ZM4.5 15.5V20H19.5V18.5L15.75 14.75L14.5575 15.9425C14.2765 16.2219 13.8963 16.3787 13.5 16.3787C13.1037 16.3787 12.7235 16.2219 12.4425 15.9425L8.25 11.75L4.5 15.5ZM16.8075 13.685L19.5 16.3775V5H4.5V13.3775L7.1925 10.685C7.47354 10.4056 7.85372 10.2488 8.25 10.2488C8.64628 10.2488 9.02646 10.4056 9.3075 10.685L13.5 14.8775L14.6925 13.685C14.9735 13.4056 15.3537 13.2488 15.75 13.2488C16.1463 13.2488 16.5265 13.4056 16.8075 13.685ZM15.5 10.6208C15.13 10.868 14.695 11 14.25 11C13.6533 11 13.081 10.7629 12.659 10.341C12.2371 9.91903 12 9.34674 12 8.75C12 8.30499 12.132 7.86998 12.3792 7.49997C12.6264 7.12996 12.9778 6.84157 13.389 6.67127C13.8001 6.50097 14.2525 6.45642 14.689 6.54323C15.1254 6.63005 15.5263 6.84434 15.841 7.15901C16.1557 7.47368 16.37 7.87459 16.4568 8.31105C16.5436 8.74751 16.499 9.19991 16.3287 9.61104C16.1584 10.0222 15.87 10.3736 15.5 10.6208ZM14.6667 8.1264C14.5433 8.04399 14.3983 8 14.25 8C14.0511 8 13.8603 8.07902 13.7197 8.21967C13.579 8.36032 13.5 8.55109 13.5 8.75C13.5 8.89834 13.544 9.04334 13.6264 9.16668C13.7088 9.29002 13.8259 9.38615 13.963 9.44291C14.1 9.49968 14.2508 9.51453 14.3963 9.48559C14.5418 9.45665 14.6754 9.38522 14.7803 9.28033C14.8852 9.17544 14.9567 9.04181 14.9856 8.89632C15.0145 8.75083 14.9997 8.60003 14.9429 8.46299C14.8861 8.32594 14.79 8.20881 14.6667 8.1264Z\", fill: \"currentColor\" }));\nexport default SvgImage;\n","import * as React from \"react\";\nconst SvgPenFountain = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.2803 4.46978L20.0303 2.21978C19.9606 2.1501 19.878 2.09483 19.787 2.05712C19.696 2.01941 19.5985 2 19.5 2C19.4015 2 19.304 2.01941 19.213 2.05712C19.122 2.09483 19.0394 2.1501 18.9698 2.21978L14.6894 6.50003H12.821C11.1108 6.50135 9.44324 7.03355 8.04846 8.02315C6.65367 9.01274 5.60048 10.4109 5.03431 12.0247L1.54216 22.0025C1.49556 22.1358 1.48752 22.2795 1.51896 22.4171C1.5504 22.5548 1.62005 22.6807 1.7199 22.7805C1.81974 22.8803 1.94573 22.9499 2.08337 22.9813C2.22101 23.0127 2.36471 23.0046 2.49796 22.958L12.4757 19.4658C14.0894 18.8995 15.4875 17.8463 16.477 16.4515C17.4666 15.0567 17.9987 13.3892 18 11.679V9.8106L22.2803 5.53028C22.3499 5.46067 22.4052 5.37801 22.4429 5.28702C22.4806 5.19604 22.5 5.09852 22.5 5.00003C22.5 4.90154 22.4806 4.80401 22.4429 4.71303C22.4052 4.62205 22.3499 4.53939 22.2803 4.46978ZM16.7198 8.96978C16.5791 9.1104 16.5 9.30113 16.5 9.50003V11.679C16.4989 13.0782 16.0635 14.4426 15.2538 15.5838C14.4441 16.725 13.3002 17.5868 11.9798 18.05L5.10406 20.4568L12 13.5606L10.9394 12.5L4.04356 19.3961L6.45001 12.5202C6.91328 11.1999 7.77499 10.0559 8.91619 9.24625C10.0574 8.43658 11.4218 8.00114 12.821 8.00003H15C15.1989 7.99998 15.3896 7.92094 15.5303 7.78028L19.5 3.8106L20.6894 5.00003L16.7198 8.96978Z\", fill: \"currentColor\" }));\nexport default SvgPenFountain;\n","import * as React from \"react\";\nconst SvgTextAnnotationToggle = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3 15.5H6V17H3C2.60218 17 2.22064 16.842 1.93934 16.5607C1.65804 16.2794 1.5 15.8978 1.5 15.5V3.5C1.5 3.10218 1.65804 2.72064 1.93934 2.43934C2.22064 2.15804 2.60218 2 3 2H15C15.3978 2 15.7794 2.15804 16.0607 2.43934C16.342 2.72064 16.5 3.10218 16.5 3.5V6.5H15V3.5H3V15.5ZM9.75 13.25V8H12V6.5H6V8H8.25V13.25H9.75ZM22.1528 10.82L19.68 8.34723C19.457 8.12487 19.1549 8 18.84 8C18.5251 8 18.223 8.12487 18 8.34723L7.5 18.8505V23H11.6495L22.1528 12.5C22.3751 12.277 22.5 11.9749 22.5 11.66C22.5 11.3451 22.3751 11.043 22.1528 10.82ZM11.0281 21.5H9V19.4718L16.0807 12.3912L18.1088 14.4193L11.0281 21.5ZM19.1693 13.3587L17.1412 11.3307L18.8417 9.63026L20.8698 11.6584L19.1693 13.3587Z\", fill: \"currentColor\" }));\nexport default SvgTextAnnotationToggle;\n","import * as React from \"react\";\nconst SvgView = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18.8001 6.56906C20.7915 7.98996 22.3229 9.96324 23.205 12.245C23.2646 12.4098 23.2646 12.5902 23.205 12.755C22.3229 15.0368 20.7915 17.01 18.8001 18.4309C16.8088 19.8518 14.4447 20.6581 12 20.75C9.55543 20.6581 7.19134 19.8518 5.19995 18.4309C3.20856 17.01 1.67717 15.0368 0.795047 12.755C0.735473 12.5902 0.735473 12.4098 0.795047 12.245C1.67717 9.96324 3.20856 7.98996 5.19995 6.56906C7.19134 5.14817 9.55543 4.34193 12 4.25C14.4447 4.34193 16.8088 5.14817 18.8001 6.56906ZM2.30255 12.5C3.82505 16.3025 8.02505 19.25 12 19.25C15.975 19.25 20.175 16.3025 21.6975 12.5C20.175 8.6975 15.975 5.75 12 5.75C8.02505 5.75 3.82505 8.6975 2.30255 12.5ZM9.49998 8.75839C10.24 8.26392 11.11 8 12 8C13.1935 8 14.3381 8.47411 15.182 9.31802C16.0259 10.1619 16.5 11.3065 16.5 12.5C16.5 13.39 16.2361 14.26 15.7417 15.0001C15.2472 15.7401 14.5444 16.3169 13.7221 16.6575C12.8999 16.9981 11.9951 17.0872 11.1221 16.9135C10.2492 16.7399 9.4474 16.3113 8.81807 15.682C8.18873 15.0526 7.76015 14.2508 7.58651 13.3779C7.41288 12.505 7.502 11.6002 7.84259 10.7779C8.18318 9.95566 8.75996 9.25285 9.49998 8.75839ZM10.3333 14.9944C10.8267 15.3241 11.4067 15.5 12 15.5C12.7957 15.5 13.5588 15.1839 14.1214 14.6213C14.684 14.0587 15 13.2956 15 12.5C15 11.9067 14.8241 11.3266 14.4945 10.8333C14.1648 10.3399 13.6963 9.95542 13.1481 9.72836C12.5999 9.5013 11.9967 9.44189 11.4148 9.55764C10.8328 9.6734 10.2983 9.95912 9.87873 10.3787C9.45917 10.7982 9.17345 11.3328 9.05769 11.9147C8.94194 12.4967 9.00135 13.0999 9.22841 13.6481C9.45547 14.1962 9.83999 14.6648 10.3333 14.9944Z\", fill: \"currentColor\" }));\nexport default SvgView;\n","export abstract class AppMenuService {\n abstract toggle(): void;\n}\n","import { computed, ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport Calendar from '@vp/assets/icons/Calendar.svg?react';\nimport ColorPalette from '@vp/assets/icons/ColorPalette.svg?react';\nimport Image from '@vp/assets/icons/Image.svg?react';\nimport PenFountain from '@vp/assets/icons/PenFountain.svg?react';\nimport TextAnnotationToggle from '@vp/assets/icons/TextAnnotationToggle.svg?react';\nimport View from '@vp/assets/icons/View.svg?react';\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { MenuItem } from '@vp/manager/profile/ui/settings/menu/ProfileSettingsMenu';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class ProfileSettingsViewModel extends ViewModel {\n readonly profile: ReadonlySignal = computed(() => this.toViewProfile());\n readonly noProfiles: ReadonlySignal = computed(() => this.hasNoProfiles());\n readonly isError: ReadonlySignal = computed(() => this.hasError());\n\n readonly mainItems: ReadonlySignal = computed(() => this.toMainItems());\n readonly additionalItems: ReadonlySignal = computed(() => this.toAdditionalItems());\n\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly dateFormatter: DateFormatter,\n private readonly appMenuService: AppMenuService,\n ) {\n super();\n }\n\n toggleMenu = (): void => {\n this.appMenuService.toggle();\n };\n\n private toViewProfile(): ProfileModel | null {\n const profile = this.profileManagerState.active.value;\n if (!profile) return null;\n const birthDate = this.dateFormatter.toLocaleDate(profile.birthDate);\n const deathDate = this.dateFormatter.toLocaleDate(profile.deathDate);\n return { ...profile, birthDate, deathDate };\n }\n\n private hasNoProfiles(): boolean {\n return this.profileManagerState.profiles.value.length === 0;\n }\n\n private hasError(): boolean {\n const hasProfiles = !this.hasNoProfiles();\n return hasProfiles && !this.profile.value;\n }\n\n private toMainItems(): MenuItem[] {\n const id = this.profile.value?.id;\n\n return [\n { path: `/ps/${id}/bio`, Icon: TextAnnotationToggle, text: 'Биография' },\n { path: `/ps/${id}/events`, Icon: Calendar, text: 'События' },\n { path: `/ps/${id}/gallery`, Icon: Image, text: 'Галерея' },\n { path: `/ps/${id}/honor`, Icon: PenFountain, text: 'Почести' },\n ];\n }\n\n private toAdditionalItems(): MenuItem[] {\n const id = this.profile.value?.id;\n\n return [\n { path: `/ps/${id}/theming`, Icon: ColorPalette, text: 'Тема' },\n { path: `/p/${id}`, text: 'Просмотр профиля', Icon: View },\n ];\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { ManagerGatewayViewModel } from '@vp/manager/gateway/ManagerGatewayViewModel';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { ProfileManagerRepository } from '@vp/manager/profile/core/interface/ProfileManagerRepository';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ProfileManagerFacade } from '@vp/manager/profile/core/ProfileManagerFacade';\nimport { LoadProfilesUsecase } from '@vp/manager/profile/core/usecase/LoadProfilesUsecase';\nimport { RestProfileManagerRepository } from '@vp/manager/profile/data/RestProfileManagerRepository';\nimport { SignalsProfileManagerState } from '@vp/manager/profile/data/SignalsProfileManagerState';\nimport { ProfileSettingsViewModel } from '@vp/manager/profile/ui/settings/ProfileSettingsViewModel';\n\nexport class ProfileManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(RestProfileManagerRepository).toSelf().inSingletonScope();\n bind(SignalsProfileManagerState).toSelf().inSingletonScope();\n bind(ProfileManagerFacade).toSelf().inSingletonScope();\n bind(LoadProfilesUsecase).toSelf().inSingletonScope();\n\n bind(ProfileSettingsViewModel).toSelf().inTransientScope();\n bind(ManagerGatewayViewModel).toSelf().inTransientScope();\n\n bind(ProfileManagerState)\n .toDynamicValue(context => context.container.get(SignalsProfileManagerState))\n .inSingletonScope();\n\n bind(ProfileManagerRepository)\n .toDynamicValue(context => context.container.get(RestProfileManagerRepository))\n .inSingletonScope();\n\n bind(ProfileManagerPort)\n .toDynamicValue(context => context.container.get(ProfileManagerFacade))\n .inSingletonScope();\n });\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\nexport abstract class ThemingManagerPort {\n abstract readonly theme: ReadonlySignal;\n abstract updateTheme(theme: ProfileThemeModel, controller?: AbortController): Promise;\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\nexport abstract class ThemingManagerRepository {\n abstract update(profileId: string, theme: ProfileThemeModel, controller?: AbortController): Promise>;\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ThemingManagerRepository } from '@vp/manager/theming/core/interface/ThemingManagerRepository';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\n@injectable()\nexport class UpdateProfileThemeUsecase {\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly repository: ThemingManagerRepository,\n ) {}\n\n async execute(theme: ProfileThemeModel, controller?: AbortController): Promise {\n const id = this.profileManagerState.active.value!.id;\n const result = await this.repository.update(id, theme, controller);\n\n if (result instanceof Success) {\n this.profileManagerState.update(result.value);\n }\n\n return result as OperationResult;\n }\n}\n","import { computed, ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ThemingManagerPort } from '@vp/manager/theming/core/interface/ThemingManagerPort';\nimport { UpdateProfileThemeUsecase } from '@vp/manager/theming/core/usecase/UpdateProfileThemeUsecase';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\n@injectable()\nexport class ThemingManagerFacade implements ThemingManagerPort {\n readonly theme: ReadonlySignal = computed(() => this.resolveTheme());\n\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly updateThemeUsecase: UpdateProfileThemeUsecase,\n ) {}\n\n async updateTheme(theme: ProfileThemeModel, controller?: AbortController): Promise {\n return await this.updateThemeUsecase.execute(theme, controller);\n }\n\n private resolveTheme(): ProfileThemeModel {\n return this.profileManagerState.active.value?.theme ?? { mode: 'dark', color: null };\n }\n}\n","import { ProfileThemeMode, ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\ninterface ConfigAttributes {\n color: string;\n background_mode: ProfileThemeMode;\n}\n\nexport class UpdateThemeDto {\n readonly config_attributes: ConfigAttributes;\n\n constructor({ mode, color }: ProfileThemeModel) {\n color ??= '';\n this.config_attributes = { color, background_mode: mode };\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { ThemingManagerRepository } from '@vp/manager/theming/core/interface/ThemingManagerRepository';\nimport { UpdateThemeDto } from '@vp/manager/theming/data/dto/UpdateThemeDto';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestThemingManagerRepository implements ThemingManagerRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileMapper: ProfileDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n ) {}\n\n async update(profileId: string, theme: ProfileThemeModel, controller?: AbortController): Promise> {\n try {\n const dto = new UpdateThemeDto(theme);\n const { data } = await this.http.put(`/api/profiles/${profileId}`, dto, { signal: controller?.signal });\n return Success.from(this.profileMapper.toProfile(data));\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { ThemingManagerPort } from '@vp/manager/theming/core/interface/ThemingManagerPort';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\ntype ModeSwitcher = Record;\n\n@injectable()\nexport class ThemeManagerViewModel extends ViewModel implements ViewModelDispose {\n readonly theme: Signal = signal(this.themingManagerPort.theme.value);\n readonly dirty: ReadonlySignal = computed(() => this.checkDirty());\n readonly loading: Signal = signal(false);\n\n private readonly modeSwitcher: ModeSwitcher = { dark: 'light', light: 'dark' };\n private controller?: AbortController;\n\n constructor(\n private readonly themingManagerPort: ThemingManagerPort,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n cancel = (): void => {\n this.controller?.abort();\n this.theme.value = this.themingManagerPort.theme.value;\n this.loading.value = false;\n };\n\n save = async (): Promise => {\n if (!this.dirty.value) return;\n\n this.controller = new AbortController();\n this.loading.value = true;\n const result = await this.themingManagerPort.updateTheme(this.theme.value, this.controller);\n\n if (result instanceof Success) {\n this.showSuccessNotification();\n } else {\n this.showErrorNotification(result.message);\n }\n\n this.loading.value = false;\n };\n\n switchTheme = (): void => {\n const mode = this.modeSwitcher[this.theme.value.mode];\n this.theme.value = { ...this.theme.value, mode };\n };\n\n private checkDirty(): boolean {\n const current = this.theme.value;\n const persisted = this.themingManagerPort.theme.value;\n return current.mode !== persisted.mode || current.color !== persisted.color;\n }\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Тема профиля была успешно применена',\n });\n }\n\n private showErrorNotification(message: string): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: message || 'Не удалось применить тему',\n });\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { ThemingManagerPort } from '@vp/manager/theming/core/interface/ThemingManagerPort';\nimport { ThemingManagerRepository } from '@vp/manager/theming/core/interface/ThemingManagerRepository';\nimport { ThemingManagerFacade } from '@vp/manager/theming/core/ThemingManagerFacade';\nimport { UpdateProfileThemeUsecase } from '@vp/manager/theming/core/usecase/UpdateProfileThemeUsecase';\nimport { RestThemingManagerRepository } from '@vp/manager/theming/data/RestThemingManagerRepository';\nimport { ThemeManagerViewModel } from '@vp/manager/theming/ui/ThemeManagerViewModel';\n\nexport class ThemingManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(ThemeManagerViewModel).toSelf().inTransientScope();\n\n bind(UpdateProfileThemeUsecase).toSelf().inSingletonScope();\n bind(ThemingManagerFacade).toSelf().inSingletonScope();\n bind(RestThemingManagerRepository).toSelf().inSingletonScope();\n\n bind(ThemingManagerRepository)\n .toDynamicValue(context => context.container.get(RestThemingManagerRepository))\n .inSingletonScope();\n\n bind(ThemingManagerPort)\n .toDynamicValue(context => context.container.get(ThemingManagerFacade))\n .inSingletonScope();\n });\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { AvatarManagerModule } from '@vp/manager/avatar/AvatarManagerModule';\nimport { BiographyManagerModule } from '@vp/manager/biography/BiographyManagerModule';\nimport { EventsManagerModule } from '@vp/manager/events/EventsManagerModule';\nimport { GalleryManagerModule } from '@vp/manager/gallery/GalleryManagerModule';\nimport { HonorManagerModule } from '@vp/manager/honor/HonorManagerModule';\nimport { ProfileManagerModule } from '@vp/manager/profile/ProfileManagerModule';\nimport { ThemingManagerModule } from '@vp/manager/theming/ThemingManagerModule';\n\nexport class ManagerModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule((...registry) => {\n this.import(\n [\n ProfileManagerModule,\n GalleryManagerModule,\n HonorManagerModule,\n AvatarManagerModule,\n EventsManagerModule,\n BiographyManagerModule,\n ThemingManagerModule,\n ],\n ...registry,\n );\n });\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nexport abstract class AppMenuState {\n abstract readonly open: ReadonlySignal;\n abstract setOpen(open: boolean): void;\n}\n","import { injectable } from 'inversify';\n\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { AppMenuState } from '@vp/menu/core/interface/AppMenuState';\n\n@injectable()\nexport class AppMenuFacade implements AppMenuService {\n constructor(private readonly appMenuState: AppMenuState) {}\n\n toggle(): void {\n const state = !this.appMenuState.open.value;\n this.appMenuState.setOpen(state);\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AppMenuState } from '@vp/menu/core/interface/AppMenuState';\n\n@injectable()\nexport class SignalsAppMenuState implements AppMenuState {\n readonly open: Signal = signal(false);\n\n setOpen(open: boolean): void {\n this.open.value = open;\n }\n}\n","import * as React from \"react\";\nconst SvgHeadset = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.75 8.00001H18.705C18.5142 6.35558 17.7257 4.83862 16.4894 3.73756C15.2532 2.6365 13.6555 2.02814 12 2.02814C10.3445 2.02814 8.74678 2.6365 7.51056 3.73756C6.27433 4.83862 5.48584 6.35558 5.295 8.00001H5.25C4.25544 8.00001 3.30161 8.3951 2.59835 9.09836C1.89509 9.80163 1.5 10.7555 1.5 11.75C1.5 12.7446 1.89509 13.6984 2.59835 14.4017C3.30161 15.1049 4.25544 15.5 5.25 15.5H6.75V8.75001C6.75 7.35763 7.30312 6.02227 8.28769 5.0377C9.27226 4.05314 10.6076 3.50001 12 3.50001C13.3924 3.50001 14.7277 4.05314 15.7123 5.0377C16.6969 6.02227 17.25 7.35763 17.25 8.75001V16.25C17.2495 16.9372 17.0131 17.6033 16.5803 18.1371C16.1476 18.6709 15.5447 19.0399 14.8725 19.1825C14.6723 18.4803 14.2229 17.8753 13.6085 17.4808C12.9941 17.0862 12.2569 16.9293 11.5351 17.0394C10.8133 17.1495 10.1564 17.5191 9.68758 18.0789C9.21875 18.6386 8.97017 19.3502 8.98842 20.0801C9.00667 20.81 9.29049 21.5082 9.7867 22.0439C10.2829 22.5795 10.9574 22.9158 11.6838 22.9897C12.4103 23.0636 13.1387 22.87 13.7326 22.4453C14.3265 22.0206 14.7451 21.3938 14.91 20.6825C15.9742 20.5247 16.9467 19.9909 17.6512 19.1777C18.3557 18.3645 18.7455 17.3259 18.75 16.25V15.5C19.7446 15.5 20.6984 15.1049 21.4016 14.4017C22.1049 13.6984 22.5 12.7446 22.5 11.75C22.5 10.7555 22.1049 9.80163 21.4016 9.09836C20.6984 8.3951 19.7446 8.00001 18.75 8.00001ZM3 11.75C3 11.1533 3.23705 10.581 3.65901 10.159C4.08097 9.73707 4.65326 9.50001 5.25 9.50001V14C4.65326 14 4.08097 13.763 3.65901 13.341C3.23705 12.919 3 12.3468 3 11.75ZM12 21.5C11.7033 21.5 11.4133 21.412 11.1666 21.2472C10.92 21.0824 10.7277 20.8481 10.6142 20.574C10.5006 20.2999 10.4709 19.9984 10.5288 19.7074C10.5867 19.4164 10.7296 19.1491 10.9393 18.9394C11.1491 18.7296 11.4164 18.5867 11.7074 18.5288C11.9983 18.471 12.2999 18.5007 12.574 18.6142C12.8481 18.7277 13.0824 18.92 13.2472 19.1667C13.412 19.4133 13.5 19.7033 13.5 20C13.5 20.3978 13.342 20.7794 13.0607 21.0607C12.7794 21.342 12.3978 21.5 12 21.5ZM18.75 14V9.50001C19.3467 9.50001 19.919 9.73707 20.341 10.159C20.7629 10.581 21 11.1533 21 11.75C21 12.3468 20.7629 12.919 20.341 13.341C19.919 13.763 19.3467 14 18.75 14Z\", fill: \"currentColor\" }));\nexport default SvgHeadset;\n","import * as React from \"react\";\nconst SvgLogin = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.5 23H19.5C19.8978 23 20.2794 22.842 20.5607 22.5607C20.842 22.2794 21 21.8978 21 21.5V3.5C21 3.10218 20.842 2.72064 20.5607 2.43934C20.2794 2.15804 19.8978 2 19.5 2H10.5C10.1022 2 9.72064 2.15804 9.43934 2.43934C9.15804 2.72064 9 3.10218 9 3.5V5.75H10.5V3.5H19.5V21.5H10.5V19.25H9V21.5C9 21.8978 9.15804 22.2794 9.43934 22.5607C9.72064 22.842 10.1022 23 10.5 23ZM13.6275 13.25L10.9425 15.9425L12 17L16.5 12.5L12 8L10.9425 9.0575L13.6275 11.75H3V13.25H13.6275Z\", fill: \"currentColor\" }));\nexport default SvgLogin;\n","import { FC } from 'react';\n\nexport enum AppMenuItemId {\n Support,\n Auth,\n Profiles,\n}\n\nexport interface AppMenuItemModel {\n id: AppMenuItemId;\n text: string;\n Icon: FC;\n}\n","import { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class AuthHandler {\n constructor(\n private readonly authState: AuthState,\n private readonly routerService: RouterService,\n private readonly authPort: AuthPort,\n private readonly appMenuService: AppMenuService,\n ) {}\n\n handle(): void {\n this.isAuthenticated() ? this.handleLogout() : this.toLogin();\n this.appMenuService.toggle();\n }\n\n private handleLogout(): void {\n this.toLoginPageIfNeeded();\n void this.authPort.logout();\n }\n\n private toLoginPageIfNeeded(): void {\n const isOnSettingsPage = this.routerService.match('/ps');\n if (isOnSettingsPage) this.toLogin();\n }\n\n private toLogin(): void {\n void this.routerService.navigate('/auth/login');\n }\n\n private isAuthenticated(): boolean {\n return this.authState.authenticated.value;\n }\n}\n","import { injectable } from 'inversify';\n\n@injectable()\nexport class SupportHandler {\n private readonly supportHref: string = 'https://впамяти.рф/#contacts';\n\n handle(): void {\n window.open(this.supportHref, '_blank');\n }\n}\n","import { injectable } from 'inversify';\n\nimport { AppMenuItemId } from '@vp/menu/ui/AppMenuItemModel';\nimport { AuthHandler } from '@vp/menu/ui/handler/AuthHandler';\nimport { SupportHandler } from '@vp/menu/ui/handler/SupportHandler';\n\nexport type Handler = () => void;\n\n@injectable()\nexport class HandlerRegistry {\n private readonly handlerRegistry: Map void> = new Map([\n [AppMenuItemId.Support, this.supportHandler.handle.bind(this.supportHandler)],\n [AppMenuItemId.Auth, this.authHandler.handle.bind(this.authHandler)],\n ]);\n\n constructor(\n private readonly authHandler: AuthHandler,\n private readonly supportHandler: SupportHandler,\n ) {}\n\n get(id: AppMenuItemId): Handler | null {\n return this.handlerRegistry.get(id) ?? null;\n }\n}\n","import { computed, ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport Headset from '@vp/assets/icons/Headset.svg?react';\nimport Login from '@vp/assets/icons/Login.svg?react';\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { AppMenuState } from '@vp/menu/core/interface/AppMenuState';\nimport { AppMenuItemId, AppMenuItemModel } from '@vp/menu/ui/AppMenuItemModel';\nimport { HandlerRegistry } from '@vp/menu/ui/handler/HandlerRegistry';\n\n@injectable()\nexport class AppMenuViewModel extends ViewModel {\n readonly open: ReadonlySignal = this.appMenuState.open;\n readonly authenticated: ReadonlySignal = this.authState.authenticated;\n readonly email: ReadonlySignal = this.authState.email;\n readonly items: ReadonlySignal = computed(() => this.getMenuItems(this.authenticated.value));\n\n constructor(\n private readonly appMenuState: AppMenuState,\n private readonly appMenuService: AppMenuService,\n private readonly authState: AuthState,\n private readonly handlerRegistry: HandlerRegistry,\n ) {\n super();\n }\n\n close = (): void => {\n this.appMenuService.toggle();\n };\n\n onItemClick = (item: AppMenuItemModel): void => {\n const handler = this.handlerRegistry.get(item.id);\n handler?.();\n };\n\n private getMenuItems(authenticated: boolean): AppMenuItemModel[] {\n const authItem = this.getAuthItem(authenticated);\n return [{ id: AppMenuItemId.Support, text: 'Написать в поддержку', Icon: Headset }, authItem];\n }\n\n private getAuthItem(authenticated: boolean): AppMenuItemModel {\n const text = authenticated ? 'Выйти из аккаунта' : 'Войти в аккаунт';\n return { id: AppMenuItemId.Auth, text, Icon: Login };\n }\n}\n","import { ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class AppMenuProfilesViewModel extends ViewModel {\n readonly profiles: ReadonlySignal = this.profileManagerState.profiles;\n readonly open: Signal = signal(true);\n\n constructor(\n private readonly profileManagerState: ProfileManagerState,\n private readonly routerService: RouterService,\n private readonly appMenuService: AppMenuService,\n ) {\n super();\n }\n\n toggle = (): void => {\n this.open.value = !this.open.value;\n };\n\n selectProfile = (profile: ProfileModel): void => {\n const path = `/ps/${profile.id}`;\n void this.routerService.navigate(path);\n this.appMenuService.toggle();\n };\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { AppMenuFacade } from '@vp/menu/core/AppMenuFacade';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { AppMenuState } from '@vp/menu/core/interface/AppMenuState';\nimport { SignalsAppMenuState } from '@vp/menu/data/SignalsAppMenuState';\nimport { AppMenuViewModel } from '@vp/menu/ui/AppMenuViewModel';\nimport { AuthHandler } from '@vp/menu/ui/handler/AuthHandler';\nimport { HandlerRegistry } from '@vp/menu/ui/handler/HandlerRegistry';\nimport { SupportHandler } from '@vp/menu/ui/handler/SupportHandler';\nimport { AppMenuProfilesViewModel } from '@vp/menu/ui/profiles/AppMenuProfilesViewModel';\n\nexport class AppMenuModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(SignalsAppMenuState).toSelf().inSingletonScope();\n\n bind(AuthHandler).toSelf().inSingletonScope();\n bind(SupportHandler).toSelf().inSingletonScope();\n bind(HandlerRegistry).toSelf().inSingletonScope();\n\n bind(AppMenuState)\n .toDynamicValue(context => context.container.get(SignalsAppMenuState))\n .inSingletonScope();\n\n bind(AppMenuFacade).toSelf().inSingletonScope();\n\n bind(AppMenuService)\n .toDynamicValue(context => context.container.get(AppMenuFacade))\n .inSingletonScope();\n\n bind(AppMenuViewModel).toSelf().inTransientScope();\n bind(AppMenuProfilesViewModel).toSelf().inTransientScope();\n });\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\n\nexport class AppNotificationModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(AppNotificationService).toSelf().inSingletonScope();\n });\n}\n","import { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport abstract class ProfileRepository {\n abstract loadProfile(id: string, controller?: AbortController): Promise>;\n abstract activateProfile(id: string, controller?: AbortController): Promise>;\n}\n","import { ReadonlySignal } from '@preact/signals-react';\n\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport type ProfileLoadingState = 'initial' | 'loading' | 'success' | 'error';\n\nexport abstract class ProfileState {\n abstract readonly profile: ReadonlySignal;\n abstract readonly loadingState: ReadonlySignal;\n abstract readonly profileForActivation: ReadonlySignal;\n\n abstract setProfile(profile: ProfileModel): void;\n abstract setLoadingState(state: ProfileLoadingState): void;\n abstract storeProfileForActivation(id: string): void;\n abstract resetProfileForActivation(): void;\n}\n","import { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ProfileManagerState } from '@vp/manager/profile/core/interface/ProfileManagerState';\nimport { ProfileRepository } from '@vp/profile/core/interface/ProfileRepository';\n\n@injectable()\nexport class ActivateProfileUsecase {\n constructor(\n private readonly authState: AuthState,\n private readonly profileRepository: ProfileRepository,\n private readonly profileManagerState: ProfileManagerState,\n ) {}\n\n async execute(id: string, controller?: AbortController): Promise {\n this.ensureUserAuthenticated();\n const result = await this.profileRepository.activateProfile(id, controller);\n\n if (result instanceof Success) {\n this.profileManagerState.update(result.value);\n }\n\n return result as OperationResult;\n }\n\n private ensureUserAuthenticated(): void {\n if (!this.authState.authenticated.value) {\n throw new Error('Users have to be authenticated to activate profiles.');\n }\n }\n}\n","import { injectable } from 'inversify';\n\nimport { OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ProfileRepository } from '@vp/profile/core/interface/ProfileRepository';\nimport { ProfileState } from '@vp/profile/core/interface/ProfileState';\n\n@injectable()\nexport class LoadProfileUsecase {\n constructor(\n private readonly profileRepository: ProfileRepository,\n private readonly profileState: ProfileState,\n ) {}\n\n async execute(id: string, controller?: AbortController): Promise {\n this.profileState.setLoadingState('loading');\n const result = await this.profileRepository.loadProfile(id, controller);\n\n if (result instanceof Success) {\n this.profileState.setProfile(result.value);\n this.profileState.setLoadingState('success');\n } else {\n this.profileState.setLoadingState('error');\n }\n\n return result as OperationResult;\n }\n}\n","import { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\nexport abstract class SlideshowMediaLoader {\n abstract loadImages(images: ProfilePhotoModel[]): Promise;\n abstract loadAudio(audioUrl: string): Promise;\n}\n","import { Signal } from '@preact/signals-react';\n\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\nexport type SlideshowStatus = 'open' | 'closed' | 'skipped';\n\nexport abstract class SlideshowState {\n abstract readonly slideshowStatus: Signal;\n abstract readonly images: Signal;\n abstract readonly audio: Signal;\n\n abstract setSlideshowStatus(status: SlideshowStatus): void;\n abstract setImages(images: ProfilePhotoModel[]): void;\n abstract setAudio(audio: Blob): void;\n}\n","import { injectable } from 'inversify';\n\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowMediaLoader } from '@vp/slideshow/core/interface/SlideshowMediaLoader';\nimport { SlideshowState } from '@vp/slideshow/core/interface/SlideshowState';\n\n@injectable()\nexport class ScheduleSlideshowUsecase {\n private readonly MinSlideshowSlides: number = 3;\n private readonly MaxSlideshowSlides: number = 15;\n private readonly MaxSlidesToLoadInCache: number = 20;\n\n constructor(\n private readonly slideshowMediaLoader: SlideshowMediaLoader,\n private readonly slideshowState: SlideshowState,\n ) {}\n\n async execute(profile: ProfileModel): Promise {\n if (profile.photos.length < this.MinSlideshowSlides) {\n return this.slideshowState.setSlideshowStatus('skipped');\n }\n\n // todo: handle case if audio is not loaded (maybe just disable mute icon)\n const [successfulImages, audio] = await Promise.all([\n this.slideshowMediaLoader.loadImages(this.prepareProfileImagesToLoad(profile)),\n this.slideshowMediaLoader.loadAudio(profile.slideshowAudio),\n ]);\n\n if (successfulImages.length < this.MinSlideshowSlides) {\n return this.slideshowState.setSlideshowStatus('skipped');\n }\n\n this.slideshowState.setAudio(audio);\n this.slideshowState.setImages(this.createSlideshowImages(successfulImages, profile.image.id));\n this.slideshowState.setSlideshowStatus('open');\n }\n\n private createSlideshowImages(images: ProfilePhotoModel[], avatarId: string): ProfilePhotoModel[] {\n const avatar = images.find(image => image.id === avatarId);\n const slideshowImages = avatar ? [avatar, ...this.excludeAvatar(images, avatarId)] : images;\n\n return slideshowImages.slice(0, this.MaxSlideshowSlides);\n }\n\n private prepareProfileImagesToLoad(profile: ProfileModel): ProfilePhotoModel[] {\n const photosExcludingAvatar = this.excludeAvatar(profile.photos, profile.image.id);\n const shuffledPhotos = photosExcludingAvatar.sort(() => 0.5 - Math.random());\n const randomPhotos = shuffledPhotos.slice(0, this.MaxSlidesToLoadInCache);\n\n return [profile.image, ...randomPhotos];\n }\n\n private excludeAvatar(images: ProfilePhotoModel[], avatarId: string): ProfilePhotoModel[] {\n return images.filter(image => image.id !== avatarId);\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthState } from '@vp/auth/core/interface/AuthState';\nimport { OperationResult } from '@vp/common/core/OperationResult';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { ProfileLoadingState, ProfileState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ActivateProfileUsecase } from '@vp/profile/core/usecase/ActivateProfileUsecase';\nimport { LoadProfileUsecase } from '@vp/profile/core/usecase/LoadProfileUsecase';\nimport { ScheduleSlideshowUsecase } from '@vp/slideshow/core/usecase/ScheduleSlideshowUsecase';\n\n@injectable()\nexport class ProfileFacade implements ProfilePort {\n readonly loadingState: ReadonlySignal = this.profileState.loadingState;\n readonly profile: ReadonlySignal = this.profileState.profile;\n readonly canActivateProfile: ReadonlySignal = this.authState.authenticated;\n readonly profileForActivation: ReadonlySignal = this.profileState.profileForActivation;\n\n constructor(\n private readonly authState: AuthState,\n private readonly profileState: ProfileState,\n private readonly loadProfileUsecase: LoadProfileUsecase,\n private readonly activateProfileUsecase: ActivateProfileUsecase,\n private readonly scheduleSlideshowUsecase: ScheduleSlideshowUsecase,\n ) {}\n\n async loadProfile(id: string, controller?: AbortController): Promise {\n await this.loadProfileUsecase.execute(id, controller);\n await this.scheduleSlideshowUsecase.execute(this.profileState.profile.value);\n }\n\n async activateProfile(id: string, controller?: AbortController): Promise {\n return await this.activateProfileUsecase.execute(id, controller);\n }\n\n storeProfileForActivation(id: string): void {\n this.profileState.storeProfileForActivation(id);\n }\n\n resetProfileForActivation(): void {\n this.profileState.resetProfileForActivation();\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { Failure, OperationResult, Success } from '@vp/common/core/OperationResult';\nimport { ErrorExtractor } from '@vp/common/data/ErrorExtractor';\nimport { ProfileRepository } from '@vp/profile/core/interface/ProfileRepository';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileResponseDto } from '@vp/profile/data/dto/ProfileResponseDto';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\n\n@injectable()\nexport class RestProfileRepository implements ProfileRepository {\n constructor(\n private readonly http: Axios,\n private readonly profileDataMapper: ProfileDataMapper,\n private readonly errorExtractor: ErrorExtractor,\n ) {}\n\n async loadProfile(id: string, controller?: AbortController): Promise> {\n try {\n const { data } = await this.http.get(`/api/profiles/${id}`, { signal: controller?.signal });\n return Success.from(this.profileDataMapper.toProfile(data));\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n\n async activateProfile(id: string, controller?: AbortController): Promise> {\n try {\n const { data } = await this.http.put(`/api/profiles/${id}/activate`, { signal: controller?.signal });\n return Success.from(this.profileDataMapper.toProfile(data));\n } catch (error) {\n const message = this.errorExtractor.extract(error);\n return Failure.from(message);\n }\n }\n}\n","import { Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ProfileLoadingState, ProfileState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\n@injectable()\nexport class SignalsProfileState implements ProfileState {\n readonly profile: Signal = signal({\n id: '',\n name: '',\n birthDate: '',\n deathDate: '',\n image: { id: '', hash: '', url: '' },\n bio: '',\n events: [],\n photos: [],\n videos: [],\n honorRecords: [],\n theme: { color: null, mode: 'dark' },\n slideshowAudio: '',\n active: true,\n premium: false,\n });\n\n readonly profileForActivation: Signal = signal(null);\n readonly loadingState: Signal = signal('loading');\n\n setProfile(profile: ProfileModel): void {\n this.profile.value = profile;\n }\n\n setLoadingState(state: ProfileLoadingState): void {\n this.loadingState.value = state;\n }\n\n storeProfileForActivation(id: string): void {\n this.profileForActivation.value = id;\n }\n\n resetProfileForActivation(): void {\n this.profileForActivation.value = null;\n }\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { Success } from '@vp/common/core/OperationResult';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class ProfileActivationViewModel extends ViewModel implements ViewModelDispose, ViewModelInit {\n readonly loading: Signal = signal(false);\n readonly email: ReadonlySignal = this.authPort.email;\n readonly canActivateProfile: ReadonlySignal = this.profilePort.canActivateProfile;\n readonly instructionText: ReadonlySignal = computed(() => this.toInstructionText());\n\n private controller?: AbortController;\n\n constructor(\n private readonly authPort: AuthPort,\n private readonly profilePort: ProfilePort,\n private readonly routerService: RouterService,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n init(): void {\n this.profilePort.resetProfileForActivation();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n\n activate = async (): Promise => {\n if (this.canActivateProfile.value) {\n this.loading.value = true;\n await this.activateProfile();\n this.loading.value = false;\n }\n };\n\n loginToActivate = (): void => {\n const id = this.profilePort.profile.value.id;\n this.profilePort.storeProfileForActivation(id);\n void this.routerService.navigate('/auth/login');\n };\n\n registerToActivate = (): void => {\n const id = this.profilePort.profile.value.id;\n this.profilePort.storeProfileForActivation(id);\n void this.routerService.navigate('/auth/register');\n };\n\n private async activateProfile(): Promise {\n this.controller = new AbortController();\n const id = this.profilePort.profile.value.id;\n const result = await this.profilePort.activateProfile(id, this.controller);\n\n if (result instanceof Success) {\n this.toProfileSettings(id);\n this.showSuccessNotification();\n } else {\n this.showErrorNotification();\n }\n }\n\n private toProfileSettings(id: string): void {\n void this.routerService.navigate(`/ps/${id}`);\n }\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Профиль успешно активирован',\n });\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: 'Не удалось активировать профиль.',\n });\n }\n\n private toInstructionText(): string {\n if (this.canActivateProfile.value) return 'Этот профиль пока еще не активирован.';\n return 'Этот профиль пока еще не активирован. Чтобы активировать его, вам необходимо сначала войти или зарегистрироваться.';\n }\n}\n","import { computed, ReadonlySignal, signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { MediaGridItem } from '@vp/common/ui/component/VpMediaGrid';\nimport { ViewModel, ViewModelDispose } from '@vp/common/ui/ViewModel';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { ProfileVideoModel } from '@vp/profile/core/model/ProfileVideoModel';\nimport { MediaItemsMapper } from '@vp/profile/ui/gallery/MediaItemsMapper';\nimport { ProfilePhotosProps } from '@vp/profile/ui/gallery/ProfileGallery';\n\nexport enum ProfileGalleryMode {\n Images = 'images',\n Videos = 'videos',\n}\n\n@injectable()\nexport class ProfileGalleryViewModel extends ViewModel implements ViewModelDispose {\n readonly imageViewerShown: Signal = signal(false);\n readonly videoViewerShown: Signal = signal(false);\n\n readonly selectedPhoto: Signal = signal(null);\n readonly selectedVideo: Signal = signal(null);\n\n readonly photoItems: ReadonlySignal = computed(() => this.toPhotoItems());\n readonly videoItems: ReadonlySignal = computed(() => this.toVideoItems());\n\n constructor(private readonly mediaItemsMapper: MediaItemsMapper) {\n super();\n }\n\n dispose(): void {\n this.closeImageViewer();\n this.closeVideoViewer();\n }\n\n closeImageViewer = (): void => {\n this.imageViewerShown.value = false;\n };\n\n closeVideoViewer = (): void => {\n this.videoViewerShown.value = false;\n };\n\n handlePhotoClick = (photo: MediaGridItem): void => {\n this.closeVideoViewer();\n this.imageViewerShown.value = true;\n this.selectedPhoto.value = photo;\n };\n\n handleVideoClick = (video: MediaGridItem): void => {\n this.closeImageViewer();\n this.videoViewerShown.value = true;\n this.selectedVideo.value = this.toVideoModel(video);\n };\n\n private toPhotoItems(): MediaGridItem[] {\n if (!this.props.value?.profile) return [];\n return this.mediaItemsMapper.toPhotoItems(this.props.value.profile.photos);\n }\n\n private toVideoItems(): MediaGridItem[] {\n if (!this.props.value?.profile) return [];\n return this.mediaItemsMapper.toVideoItems(this.props.value.profile.videos);\n }\n\n private toVideoModel(item: MediaGridItem): ProfileVideoModel {\n return this.props.value!.profile.videos.find(video => video.id === item.id)!;\n }\n}\n","import { ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { SplashService } from '@vp/common/ui/SplashService';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { ProfileLoadingState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class ProfileGatewayViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly state: ReadonlySignal = this.profilePort.loadingState;\n readonly profile: ReadonlySignal = this.profilePort.profile;\n\n private controller?: AbortController;\n\n constructor(\n private readonly profilePort: ProfilePort,\n private readonly router: RouterService,\n private readonly splashService: SplashService,\n ) {\n super();\n }\n\n async init(): Promise {\n this.splashService.show();\n this.controller = new AbortController();\n const { id } = this.router.getParams('p/:id/*');\n await this.profilePort.loadProfile(id, this.controller);\n await this.splashService.hide();\n }\n\n dispose(): void {\n this.controller?.abort();\n }\n}\n","import * as React from \"react\";\nconst SvgInformationFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C9.9233 2 7.89323 2.61581 6.16652 3.76957C4.4398 4.92332 3.09399 6.5632 2.29927 8.48182C1.50455 10.4004 1.29661 12.5116 1.70176 14.5484C2.1069 16.5852 3.10693 18.4562 4.57538 19.9246C6.04383 21.3931 7.91476 22.3931 9.95156 22.7982C11.9884 23.2034 14.0996 22.9955 16.0182 22.2007C17.9368 21.406 19.5767 20.0602 20.7304 18.3335C21.8842 16.6068 22.5 14.5767 22.5 12.5C22.5 9.71523 21.3938 7.04451 19.4246 5.07538C17.4555 3.10625 14.7848 2 12 2ZM12 6.5C12.2225 6.5 12.44 6.56598 12.625 6.6896C12.81 6.81321 12.9542 6.98891 13.0394 7.19448C13.1245 7.40005 13.1468 7.62625 13.1034 7.84448C13.06 8.06271 12.9528 8.26316 12.7955 8.4205C12.6382 8.57783 12.4377 8.68498 12.2195 8.72838C12.0013 8.77179 11.7751 8.74951 11.5695 8.66436C11.3639 8.57922 11.1882 8.43502 11.0646 8.25002C10.941 8.06501 10.875 7.8475 10.875 7.625C10.875 7.32663 10.9935 7.04048 11.2045 6.8295C11.4155 6.61853 11.7016 6.5 12 6.5ZM15 18.5938H9V16.9062H11.1563V12.5938H9.75V10.9062H12.8438V16.9062H15V18.5938Z\", fill: \"currentColor\" }));\nexport default SvgInformationFilled;\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport InformationFilled from '@vp/assets/icons/InformationFilled.svg?react';\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { AppMenuService } from '@vp/menu/core/interface/AppMenuService';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\n\n@injectable()\nexport class ProfilePageHeaderViewModel extends ViewModel {\n readonly adShown: Signal = signal(false);\n\n constructor(\n private readonly appMenuService: AppMenuService,\n private readonly notificationService: AppNotificationService,\n ) {\n super();\n }\n\n toggleMenu = (): void => {\n this.appMenuService.toggle();\n };\n\n showAd = (): void => {\n this.adShown.value = true;\n };\n\n closeAd = (): void => {\n this.adShown.value = false;\n };\n\n shareProfile = async (): Promise => {\n try {\n const href = location.href;\n await navigator.clipboard.writeText(href);\n this.showSuccessNotification();\n } catch {\n this.showErrorNotification();\n }\n };\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'primary',\n message: 'Ссылка скопирована',\n Icon: InformationFilled,\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Не удалось скопировать ссылку. Попробуйте сделать это вручную',\n anchorOrigin: { vertical: 'top', horizontal: 'center' },\n });\n }\n}\n","import { Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { AppNotificationService } from '@vp/notification/AppNotificationService';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\n@injectable()\nexport class ProfileHonorViewModel extends ViewModel {\n readonly showSubmitRecordModal: Signal = signal(false);\n\n constructor(private readonly notificationService: AppNotificationService) {\n super();\n }\n\n handleSubmissionResult = (status: ProfileHonorNotificationStatus): void => {\n if (status === 'success') {\n this.showSuccessNotification();\n this.closeSubmitRecordModal();\n } else {\n this.showErrorNotification();\n }\n };\n\n openSubmitRecordModal = (): void => {\n this.showSubmitRecordModal.value = true;\n };\n\n closeSubmitRecordModal = (): void => {\n this.showSubmitRecordModal.value = false;\n };\n\n private showSuccessNotification(): void {\n this.notificationService.enqueue({\n variant: 'success',\n message: 'Ваша запись была отправлена',\n secondaryMessage: 'Если администратор одобрит запись, она появятся на вкладке “Почести”',\n });\n }\n\n private showErrorNotification(): void {\n this.notificationService.enqueue({\n variant: 'error',\n message: 'Что-то пошло не так',\n secondaryMessage: 'Обновите страницу и попробуйте ещё раз.',\n });\n }\n}\n","import { computed, ReadonlySignal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { TimeAgoFormatter } from '@vp/common/ui/TimeAgoFormatter';\nimport { ViewModel } from '@vp/common/ui/ViewModel';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { SlideshowState, SlideshowStatus } from '@vp/slideshow/core/interface/SlideshowState';\n\nexport enum ProfileSection {\n Bio = 'bio',\n Events = 'events',\n Gallery = 'gallery',\n Honor = 'honor',\n}\n\n@injectable()\nexport class ProfileViewModel extends ViewModel {\n readonly profile: ReadonlySignal = computed(() => this.toViewProfile(this.profilePort.profile.value));\n readonly slideshowStatus: ReadonlySignal = this.slideshowState.slideshowStatus;\n\n constructor(\n private readonly profilePort: ProfilePort,\n private readonly timeAgoFormatter: TimeAgoFormatter,\n private readonly slideshowState: SlideshowState,\n private readonly dateFormatter: DateFormatter,\n ) {\n super();\n }\n\n private toViewProfile(profile: ProfileModel): ProfileModel {\n const birthDate = this.dateFormatter.toLocaleDate(profile.birthDate);\n const deathDate = this.dateFormatter.toLocaleDate(profile.deathDate);\n const events = this.toViewEvents(profile.events);\n const honorRecords = this.toProfileHonorRecords(profile.honorRecords);\n return { ...profile, birthDate, deathDate, events, honorRecords };\n }\n\n private toViewEvents(events: ProfileEventModel[]): ProfileEventModel[] {\n return events.map(event => ({ ...event, date: this.dateFormatter.toLocaleDate(event.date) }));\n }\n\n private toProfileHonorRecords(records: ProfileHonorRecordModel[]): ProfileHonorRecordModel[] {\n return records.map(record => ({ ...record, date: this.toTimeAgo(record.date) }));\n }\n\n private toTimeAgo(date: string): string {\n return this.timeAgoFormatter.getTimeAgo(new Date(date));\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { ProfileRepository } from '@vp/profile/core/interface/ProfileRepository';\nimport { ProfileState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileFacade } from '@vp/profile/core/ProfileFacade';\nimport { ActivateProfileUsecase } from '@vp/profile/core/usecase/ActivateProfileUsecase';\nimport { LoadProfileUsecase } from '@vp/profile/core/usecase/LoadProfileUsecase';\nimport { ProfileDataMapper } from '@vp/profile/data/ProfileDataMapper';\nimport { RestProfileRepository } from '@vp/profile/data/RestProfileRepository';\nimport { SignalsProfileState } from '@vp/profile/data/SignalsProfileState';\nimport { ProfileActivationViewModel } from '@vp/profile/ui/activation/ProfileActivationViewModel';\nimport { MediaItemsMapper } from '@vp/profile/ui/gallery/MediaItemsMapper';\nimport { ProfileGalleryViewModel } from '@vp/profile/ui/gallery/ProfileGalleryViewModel';\nimport { ProfileGatewayViewModel } from '@vp/profile/ui/gateway/ProfileGatewayViewModel';\nimport { ProfilePageHeaderViewModel } from '@vp/profile/ui/header/ProfilePageHeaderViewModel';\nimport { ProfileHonorViewModel } from '@vp/profile/ui/honor/ProfileHonorViewModel';\nimport { ProfileViewModel } from '@vp/profile/ui/ProfileViewModel';\n\nexport class ProfileModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(LoadProfileUsecase).toSelf().inSingletonScope();\n bind(ProfileFacade).toSelf().inSingletonScope();\n bind(RestProfileRepository).toSelf().inSingletonScope();\n bind(ProfileDataMapper).toSelf().inSingletonScope();\n bind(SignalsProfileState).toSelf().inSingletonScope();\n bind(ActivateProfileUsecase).toSelf().inSingletonScope();\n\n bind(MediaItemsMapper).toSelf().inSingletonScope();\n bind(ProfileViewModel).toSelf().inTransientScope();\n bind(ProfilePageHeaderViewModel).toSelf().inTransientScope();\n bind(ProfileGalleryViewModel).toSelf().inTransientScope();\n bind(ProfileGatewayViewModel).toSelf().inTransientScope();\n bind(ProfileHonorViewModel).toSelf().inTransientScope();\n bind(ProfileActivationViewModel).toSelf().inTransientScope();\n\n bind(ProfileState)\n .toDynamicValue(context => context.container.get(SignalsProfileState))\n .inSingletonScope();\n\n bind(ProfileRepository)\n .toDynamicValue(context => context.container.get(RestProfileRepository))\n .inSingletonScope();\n\n bind(ProfilePort)\n .toDynamicValue(context => context.container.get(ProfileFacade))\n .inSingletonScope();\n });\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { RouterService, RouterServiceImpl } from '@vp/routing/RouterService';\n\nexport class RoutingModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(RouterServiceImpl)\n .toDynamicValue(context => new RouterServiceImpl(context.container.get('RouterInstance')))\n .inSingletonScope();\n\n bind(RouterService)\n .toDynamicValue(context => context.container.get(RouterServiceImpl))\n .inSingletonScope();\n });\n}\n","import { SlideshowEngine } from '@vp/slideshow/core/engine/SlideshowEngine';\n\nexport abstract class EngineState {\n constructor(protected readonly engine: SlideshowEngine) {}\n\n play?(): void;\n pause?(): void;\n goTo?(slide: number): void;\n enter?(): void;\n tick?(): void;\n exit?(): void;\n}\n","import { EngineState } from '@vp/slideshow/core/engine/state/EngineState';\n\nexport class FinishedState extends EngineState {\n play(): void {\n this.engine.changeState(this.engine.playingState);\n }\n\n exit(): void {\n this.engine.progress = 0;\n this.engine.currentSlide = 0;\n this.engine.currentSlideProgress = 0;\n this.engine.startTime = Date.now();\n }\n}\n","import { EngineState } from '@vp/slideshow/core/engine/state/EngineState';\n\nexport class InitialState extends EngineState {\n enter(): void {\n this.engine.totalTime = this.engine.slidesCount * this.engine.slideTime;\n }\n\n exit(): void {\n this.engine.startTime = Date.now();\n }\n\n play(): void {\n this.engine.changeState(this.engine.playingState);\n }\n}\n","import { EngineState } from '@vp/slideshow/core/engine/state/EngineState';\n\nexport class PausedState extends EngineState {\n private pauseStartTime!: number;\n\n enter(): void {\n this.pauseStartTime = Date.now();\n }\n\n play(): void {\n this.engine.changeState(this.engine.playingState);\n }\n\n goTo(slide: number): void {\n this.engine.currentSlide = slide;\n this.engine.currentSlideProgress = 0;\n const updatedPlayedTime = slide * this.engine.slideTime;\n this.engine.progress = (updatedPlayedTime / this.engine.totalTime) * 100;\n this.engine.startTime -= updatedPlayedTime - (this.pauseStartTime - this.engine.startTime);\n }\n\n exit(): void {\n const pausedTime = Date.now() - this.pauseStartTime;\n this.engine.startTime += pausedTime;\n }\n}\n","import { EngineState } from '@vp/slideshow/core/engine/state/EngineState';\n\nexport class PlayingState extends EngineState {\n private timePercent: number = 0;\n\n enter(): void {\n this.timePercent = this.engine.totalTime / 100;\n }\n\n pause(): void {\n this.engine.changeState(this.engine.pausedState);\n }\n\n goTo(slide: number): void {\n this.engine.currentSlide = slide;\n this.engine.currentSlideProgress = 0;\n const updatedPlayedTime = slide * this.engine.slideTime;\n this.engine.progress = (updatedPlayedTime / this.engine.totalTime) * 100;\n this.engine.startTime -= updatedPlayedTime - (Date.now() - this.engine.startTime);\n }\n\n tick(): void {\n this.updateProgress();\n this.defineSlide();\n this.updateSlideProgress();\n this.finishIfNeeded();\n }\n\n private updateProgress(): void {\n const progress = (Date.now() - this.engine.startTime) / this.engine.totalTime;\n this.engine.progress = Math.min(progress * 100, 100);\n }\n\n private defineSlide(): void {\n const timePlayed = this.engine.progress * this.timePercent;\n const currentSlide = Math.floor(timePlayed / this.engine.slideTime);\n this.engine.currentSlide = Math.min(currentSlide, this.engine.slidesCount - 1);\n }\n\n private updateSlideProgress(): void {\n if (this.engine.progress >= 100) {\n return void (this.engine.currentSlideProgress = 100);\n }\n\n const timePlayed = this.engine.progress * this.timePercent;\n const slideTimePlayed = timePlayed % this.engine.slideTime;\n this.engine.currentSlideProgress = (slideTimePlayed / this.engine.slideTime) * 100;\n }\n\n private finishIfNeeded(): void {\n if (this.engine.progress >= 100) {\n this.engine.changeState(this.engine.finishedState);\n }\n }\n}\n","import { EngineState } from '@vp/slideshow/core/engine/state/EngineState';\nimport { FinishedState } from '@vp/slideshow/core/engine/state/FinishedState';\nimport { InitialState } from '@vp/slideshow/core/engine/state/InitialState';\nimport { PausedState } from '@vp/slideshow/core/engine/state/PausedState';\nimport { PlayingState } from '@vp/slideshow/core/engine/state/PlayingState';\nimport { SlideshowEnginePort } from '@vp/slideshow/core/interface/SlideshowEnginePort';\n\nexport class SlideshowEngine implements SlideshowEnginePort {\n totalTime: number = 0;\n startTime: number = 0;\n\n progress: number = 0;\n currentSlide: number = 0;\n currentSlideProgress: number = 0;\n\n readonly initialState: EngineState = new InitialState(this);\n readonly playingState: EngineState = new PlayingState(this);\n readonly pausedState: EngineState = new PausedState(this);\n readonly finishedState: EngineState = new FinishedState(this);\n\n private state: EngineState | null = null;\n\n constructor(\n readonly slidesCount: number,\n readonly slideTime: number,\n ) {}\n\n play(): void {\n this.state?.play?.();\n }\n\n pause(): void {\n this.state?.pause?.();\n }\n\n tick(): void {\n this.state?.tick?.();\n }\n\n goTo(slide: number): void {\n this.state?.goTo?.(slide);\n }\n\n isIn(State: typeof EngineState): boolean {\n return this.state instanceof State;\n }\n\n changeState(state: EngineState): void {\n this.state?.exit?.();\n this.state = state;\n this.state.enter?.();\n }\n}\n","import { injectable } from 'inversify';\n\nimport { SlideshowEngine } from '@vp/slideshow/core/engine/SlideshowEngine';\nimport { SlideshowEngineFactoryPort } from '@vp/slideshow/core/interface/SlideshowEngineFactoryPort';\nimport { SlideshowEnginePort } from '@vp/slideshow/core/interface/SlideshowEnginePort';\n\n@injectable()\nexport class SlideshowEngineFactory implements SlideshowEngineFactoryPort {\n create(slidesCount: number, slideTime: number): SlideshowEnginePort {\n const engine = new SlideshowEngine(slidesCount, slideTime);\n engine.changeState(engine.initialState);\n return engine;\n }\n}\n","import { SlideshowEnginePort } from '@vp/slideshow/core/interface/SlideshowEnginePort';\n\nexport abstract class SlideshowEngineFactoryPort {\n abstract create(slidesCount: number, slideTime: number): SlideshowEnginePort;\n}\n","import { Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowState, SlideshowStatus } from '@vp/slideshow/core/interface/SlideshowState';\n\n@injectable()\nexport class SignalsSlideshowState implements SlideshowState {\n readonly slideshowStatus: Signal = signal('closed');\n readonly images: Signal = signal([]);\n readonly audio: Signal = signal(new Blob());\n\n setSlideshowStatus(status: SlideshowStatus): void {\n this.slideshowStatus.value = status;\n }\n\n setImages(images: ProfilePhotoModel[]): void {\n this.images.value = images;\n }\n\n setAudio(audio: Blob): void {\n this.audio.value = audio;\n }\n}\n","import { Axios } from 'axios';\nimport { injectable } from 'inversify';\n\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowMediaLoader } from '@vp/slideshow/core/interface/SlideshowMediaLoader';\n\n@injectable()\nexport class SlideshowMediaCacheLoader implements SlideshowMediaLoader {\n constructor(private readonly http: Axios) {}\n\n async loadImages(images: ProfilePhotoModel[]): Promise {\n const successfulImages: ProfilePhotoModel[] = [];\n\n await Promise.all(\n images.map(image => {\n return new Promise(resolve => {\n const img = new Image();\n img.src = image.url;\n img.onload = (): void => {\n successfulImages.push(image);\n resolve(null);\n };\n img.onerror = (): void => resolve(null);\n });\n }),\n );\n\n return successfulImages;\n }\n\n async loadAudio(audioUrl: string): Promise {\n try {\n const response = await this.http.get(audioUrl, { responseType: 'arraybuffer' });\n return new Blob([response.data], { type: 'audio/mpeg' });\n } catch {\n // TODO log error\n return new Blob();\n }\n }\n}\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\nimport { animate, MotionValue, motionValue } from 'motion';\n\nimport { SlideshowState } from '@vp/slideshow/core/interface/SlideshowState';\n\n@injectable()\nexport class SlideshowAudioController {\n readonly muted: Signal = signal(false);\n\n private audio!: HTMLAudioElement | null;\n private context?: AudioContext;\n private source?: MediaElementAudioSourceNode;\n private gainNode?: GainNode;\n\n private volume!: MotionValue;\n private smoothedVolume!: MotionValue;\n\n private readonly defaultVolume: number = 0.25;\n private readonly reducedVolume: number = 0.1;\n private readonly animationDurationInSeconds: number = 1;\n\n private currentAnimation: ReturnType | null = null;\n\n private readonly subscriptions: Set<() => void> = new Set();\n\n constructor(private readonly slideshowState: SlideshowState) {}\n\n attach(): void {\n this.unsubscribe();\n this.initializeAudio();\n this.initializeVolume();\n this.initializeAnimation();\n }\n\n detach(): void {\n this.muteSmoothly();\n this.cleanup();\n }\n\n play(): void {\n void this.audio!.play();\n this.initializeAudioContextIfNeeded();\n this.volume.set(this.defaultVolume);\n }\n\n pause(): void {\n this.audio!.pause();\n }\n\n reduceVolume(): void {\n this.volume.set(this.reducedVolume);\n }\n\n toggleMuted(): void {\n this.muted.value = !this.muted.value;\n this.audio!.muted = this.muted.value;\n }\n\n private muteSmoothly(): void {\n this.volume.set(0);\n }\n\n private initializeAudio(): void {\n const url = URL.createObjectURL(this.slideshowState.audio.value);\n this.audio = new Audio(url);\n this.audio.loop = true;\n }\n\n private initializeVolume(): void {\n this.volume = motionValue(0);\n this.smoothedVolume = motionValue(this.volume.get());\n }\n\n private initializeAnimation(): void {\n this.subscriptions.add(\n this.volume.on('change', value => {\n this.currentAnimation?.stop();\n\n this.currentAnimation = animate(this.smoothedVolume, value, {\n duration: this.animationDurationInSeconds,\n ease: 'linear',\n onComplete: () => {\n this.currentAnimation = null;\n\n if (this.volume.get() === 0) {\n this.pause();\n }\n },\n });\n }),\n );\n\n this.subscriptions.add(\n this.smoothedVolume.on('change', value => {\n this.setVolume(value);\n }),\n );\n }\n\n private initializeAudioContextIfNeeded(): void {\n if (!this.context) {\n this.context = new AudioContext();\n this.source = this.context.createMediaElementSource(this.audio!);\n this.gainNode = this.context.createGain();\n this.source.connect(this.gainNode).connect(this.context.destination);\n this.setVolume(0);\n }\n\n if (this.context.state === 'suspended') {\n void this.context.resume();\n }\n }\n\n private setVolume(value: number): void {\n this.gainNode?.gain.setValueAtTime(value, this.context?.currentTime ?? 0);\n }\n\n private cleanup(): void {\n URL.revokeObjectURL(this.audio!.src);\n }\n\n private unsubscribe(): void {\n for (const unsubscribe of this.subscriptions) {\n unsubscribe();\n }\n\n this.subscriptions.clear();\n }\n}\n","import { batch, Signal, signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { FinishedState } from '@vp/slideshow/core/engine/state/FinishedState';\nimport { PlayingState } from '@vp/slideshow/core/engine/state/PlayingState';\nimport { SlideshowEngineFactoryPort } from '@vp/slideshow/core/interface/SlideshowEngineFactoryPort';\nimport { SlideshowEnginePort } from '@vp/slideshow/core/interface/SlideshowEnginePort';\n\n@injectable()\nexport class SlideshowEngineController {\n readonly progress: Signal = signal(0);\n readonly currentSlide: Signal = signal(0);\n readonly currentSlideProgress: Signal = signal(0);\n readonly isPaused: Signal = signal(true);\n readonly isFinished: Signal = signal(false);\n\n private engine: SlideshowEnginePort | null = null;\n private frameId!: number;\n\n constructor(private readonly engineFactory: SlideshowEngineFactoryPort) {}\n\n start(slidesCount: number, slideTime: number): void {\n this.engine = this.engineFactory.create(slidesCount, slideTime);\n this.tick();\n }\n\n stop(): void {\n cancelAnimationFrame(this.frameId);\n }\n\n play(): void {\n this.engine?.play();\n }\n\n pause(): void {\n this.engine?.pause();\n }\n\n goTo(slide: number): void {\n this.engine?.goTo(slide);\n }\n\n private tick(): void {\n this.frameId = requestAnimationFrame(() => {\n this.engine?.tick();\n this.updateState();\n this.tick();\n });\n }\n\n private updateState(): void {\n batch(() => {\n this.progress.value = this.engine?.progress ?? 0;\n this.currentSlide.value = this.engine?.currentSlide ?? 0;\n this.currentSlideProgress.value = this.engine?.currentSlideProgress ?? 0;\n this.isPaused.value = !this.engine?.isIn(PlayingState);\n this.isFinished.value = this.engine?.isIn(FinishedState) ?? false;\n });\n }\n}\n","import { ReadonlySignal, computed, Signal, signal, effect, batch } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { DateFormatter } from '@vp/common/ui/DateFormatter';\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { ProfileState } from '@vp/profile/core/interface/ProfileState';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowState, SlideshowStatus } from '@vp/slideshow/core/interface/SlideshowState';\nimport { SlideshowAudioController } from '@vp/slideshow/ui/SlideshowAudioController';\nimport { SlideshowEngineController } from '@vp/slideshow/ui/SlideshowEngineController';\n\n@injectable()\nexport class SlideshowViewModel extends ViewModel implements ViewModelInit, ViewModelDispose {\n readonly birthDeathDates: ReadonlySignal = computed(() => this.toBirthDeathDates(this.profileState.profile.value));\n readonly profileName: ReadonlySignal = computed(() => this.toProfileNameView());\n readonly images: ReadonlySignal = this.slideshowState.images;\n\n readonly isPaused: ReadonlySignal = this.engineController.isPaused;\n readonly isFinished: ReadonlySignal = this.engineController.isFinished;\n readonly progress: Signal = this.engineController.progress;\n readonly currentSlide: Signal = this.engineController.currentSlide;\n readonly currentSlideProgress: Signal = this.engineController.currentSlideProgress;\n\n readonly muted: Signal = this.audioController.muted;\n readonly galleryShown: Signal = signal(false);\n\n readonly introShown: Signal = signal(true);\n readonly introImage: Signal = signal(this.images.value[0]);\n readonly introImageScale: Signal = signal(1);\n readonly introButtonText: Signal = signal('Показать слайдшоу');\n\n private disposeEffect!: () => void;\n\n constructor(\n private readonly profileState: ProfileState,\n private readonly slideshowState: SlideshowState,\n private readonly dateFormatter: DateFormatter,\n private readonly engineController: SlideshowEngineController,\n private readonly audioController: SlideshowAudioController,\n ) {\n super();\n }\n\n init(): void {\n this.engineController.start(this.images.value.length, 3000);\n this.audioController.attach();\n this.onSlideshowFinished();\n }\n\n dispose(): void {\n this.engineController.stop();\n this.audioController.detach();\n this.disposeEffect();\n }\n\n closeSlideshow = (status: SlideshowStatus): void => {\n this.slideshowState.setSlideshowStatus(status);\n };\n\n pause = (): void => {\n this.engineController.pause();\n this.audioController.pause();\n };\n\n togglePause = (): void => {\n if (this.isPaused.value) {\n this.engineController.play();\n this.audioController.play();\n } else {\n this.engineController.pause();\n this.audioController.pause();\n }\n };\n\n toggleMuted = (): void => {\n this.audioController.toggleMuted();\n };\n\n openGallery = (): void => {\n if (!this.isPaused.value) this.engineController.pause();\n this.galleryShown.value = true;\n };\n\n closeGallery = (imageId?: string): void => {\n this.goToSlideIfNeeded(imageId);\n this.engineController.play();\n this.audioController.play();\n this.galleryShown.value = false;\n };\n\n startSlideshow = (): void => {\n this.introShown.value = false;\n this.engineController.play();\n this.audioController.play();\n };\n\n private onSlideshowFinished(): void {\n this.disposeEffect = effect(() => {\n if (this.isFinished.value) {\n batch(() => {\n this.introShown.value = true;\n this.introImage.value = this.images.value[this.images.value.length - 1];\n this.introImageScale.value = 1.05;\n this.introButtonText.value = 'Смотреть еще раз';\n this.audioController.reduceVolume();\n });\n }\n });\n }\n\n private goToSlideIfNeeded(imageId?: string): void {\n if (!imageId) return;\n\n const slide = this.images.value.findIndex(image => image.id === imageId);\n this.engineController.goTo(slide);\n }\n\n private toLocaleDate(date: string): string {\n return this.dateFormatter.toLocaleDate(date);\n }\n\n private toBirthDeathDates(profile: ProfileModel): string {\n const birthDate = this.toLocaleDate(profile.birthDate);\n const deathDate = this.toLocaleDate(profile.deathDate);\n return birthDate && deathDate ? `${birthDate} - ${deathDate}` : '';\n }\n\n private toProfileNameView(): string {\n return this.profileState.profile.value.name || 'Нет имени';\n }\n}\n","import { ContainerModule } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\nimport { SlideshowEngineFactory } from '@vp/slideshow/core/engine/SlideshowEngineFactory';\nimport { SlideshowEngineFactoryPort } from '@vp/slideshow/core/interface/SlideshowEngineFactoryPort';\nimport { SlideshowMediaLoader } from '@vp/slideshow/core/interface/SlideshowMediaLoader';\nimport { SlideshowState } from '@vp/slideshow/core/interface/SlideshowState';\nimport { ScheduleSlideshowUsecase } from '@vp/slideshow/core/usecase/ScheduleSlideshowUsecase';\nimport { SignalsSlideshowState } from '@vp/slideshow/data/SignalsSlideshowState';\nimport { SlideshowMediaCacheLoader } from '@vp/slideshow/data/SlideshowMediaCacheLoader';\nimport { SlideshowAudioController } from '@vp/slideshow/ui/SlideshowAudioController';\nimport { SlideshowEngineController } from '@vp/slideshow/ui/SlideshowEngineController';\nimport { SlideshowViewModel } from '@vp/slideshow/ui/SlideshowViewModel';\n\nexport class SlideshowModule extends BaseModule {\n readonly module: ContainerModule = new ContainerModule(bind => {\n bind(ScheduleSlideshowUsecase).toSelf().inSingletonScope();\n bind(SlideshowMediaCacheLoader).toSelf().inSingletonScope();\n bind(SignalsSlideshowState).toSelf().inSingletonScope();\n\n bind(SlideshowViewModel).toSelf().inTransientScope();\n bind(SlideshowEngineController).toSelf().inTransientScope();\n bind(SlideshowAudioController).toSelf().inTransientScope();\n\n bind(SlideshowState)\n .toDynamicValue(context => context.container.get(SignalsSlideshowState))\n .inSingletonScope();\n\n bind(SlideshowMediaLoader)\n .toDynamicValue(context => context.container.get(SlideshowMediaCacheLoader))\n .inSingletonScope();\n\n bind(SlideshowEngineFactory).toSelf().inSingletonScope();\n\n bind(SlideshowEngineFactoryPort)\n .toDynamicValue(context => context.container.get(SlideshowEngineFactory))\n .inSingletonScope();\n });\n}\n","import { interfaces } from 'inversify';\nimport { useInjection } from 'inversify-react';\nimport { useEffect } from 'react';\n\nimport { ViewModel, ViewModelDispose, ViewModelInit } from '@vp/common/ui/ViewModel';\n\nexport function useViewModel

>(identifier: interfaces.Newable, props?: P): T {\n const viewModel = useInjection(identifier);\n viewModel.bindProps(props);\n\n useEffect(() => {\n initializeIfNeeded(viewModel);\n return (): void => disposeIfNeeded(viewModel);\n }, [viewModel]);\n\n return viewModel;\n}\n\nfunction initializeIfNeeded(viewModel: object): void {\n if (initializable(viewModel)) {\n viewModel.init();\n }\n}\n\nfunction initializable(viewModel: Partial): viewModel is ViewModelInit {\n return typeof viewModel?.init === 'function';\n}\n\nfunction disposeIfNeeded(viewModel: object): void {\n if (disposable(viewModel)) {\n viewModel.dispose();\n }\n}\n\nfunction disposable(viewModel: Partial): viewModel is ViewModelDispose {\n return typeof viewModel?.dispose === 'function';\n}\n","import * as React from \"react\";\nconst SvgClose = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 7.55L16.95 6.5L12 11.45L7.05 6.5L6 7.55L10.95 12.5L6 17.45L7.05 18.5L12 13.55L16.95 18.5L18 17.45L13.05 12.5L18 7.55Z\", fill: \"currentColor\" }));\nexport default SvgClose;\n","import * as React from \"react\";\nconst SvgLogo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 154 121\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M77.2888 120.019C77.2888 120.019 77.5366 120.019 77.7017 120.019C79.147 119.936 80.0968 119.523 81.3356 119.028C81.7898 118.821 82.3266 118.615 82.9047 118.408C84.3913 117.872 85.9605 117.376 87.5297 117.004C90.9571 116.137 94.467 115.6 98.0183 115.064C98.39 114.981 98.7616 114.94 99.092 114.898H99.2158L112.636 112.875L137.124 109.324C140.592 108.87 144.061 108.374 147.53 107.837L149.223 107.589L151.163 107.3L152.815 107.053C153.104 107.011 153.435 106.929 153.682 106.805C153.559 106.227 153.352 105.649 153.146 105.07L152.98 104.658L152.898 104.451C152.815 104.203 152.733 103.956 152.65 103.708L146.002 83.7629C144.35 78.6424 142.657 73.5633 140.923 68.4428C140.386 66.7498 139.808 65.0567 139.23 63.3637L139.106 62.9507L138.899 62.2074C138.734 61.6706 138.528 61.1338 138.321 60.6796C138.156 60.5557 137.949 60.4318 137.702 60.3492L137.33 60.1841L136.876 59.9776L136.587 59.8537L136.422 59.7711L133.325 58.3258L132.127 57.7477C130.971 57.1696 129.649 56.5502 128.741 56.2199V55.9721L128.576 55.4766V55.2701L128.493 55.1875C128.328 54.4029 128.163 53.4531 127.915 53.2054C127.791 53.0402 127.585 52.9576 127.378 52.875C127.172 52.7924 126.8 52.7512 126.387 52.6686L125.025 52.5034L124.157 52.3795L123.29 52.2556H122.919V52.0905L122.258 48.374C122.258 48.374 122.258 48.0436 122.175 47.8785C122.175 47.4242 122.051 46.97 121.886 46.5571C121.886 46.4745 121.845 46.4332 121.804 46.4332L121.68 46.3506C115.362 46.5158 109.126 47.672 103.345 49.3237C94.7974 51.7601 84.9282 55.9721 79.6012 61.3403C78.6928 62.29 77.9082 63.2398 77.2888 64.2308C76.6694 63.1985 75.8848 62.2487 74.9763 61.3403C69.6494 55.9721 59.7802 51.7601 51.2323 49.3237C49.1676 48.7456 47.0204 48.2088 44.8731 47.7546C40.9915 46.97 36.9859 46.4332 32.8979 46.3506C32.774 46.4332 32.7327 46.4745 32.6914 46.5571C32.5262 46.97 32.4436 47.4242 32.4023 47.8785C32.361 48.0436 32.3197 48.2088 32.3197 48.374L31.6591 52.0905V52.2143H31.2874L30.4202 52.3795L29.5531 52.5034C28.6033 52.6273 27.6122 52.7511 27.1993 52.875C26.9928 52.9576 26.7864 53.0402 26.6625 53.2054C26.5799 53.288 26.4973 53.4944 26.4147 53.7422C26.2908 54.1551 26.2215 54.514 26.0977 55.0508L25.9727 55.5938L25.9219 55.918L25.8779 56.2199C24.9281 56.5502 23.6067 57.1696 22.4505 57.7477L21.253 58.3258L18.156 59.7711L17.9082 59.895L17.743 59.9776L17.2888 60.1841H17.2062C16.8758 60.3905 16.5455 60.5144 16.2977 60.7209C16.0913 61.2164 15.9261 61.7532 15.7196 62.2488L15.5131 62.992L15.3893 63.405C14.8111 65.098 14.233 66.7911 13.6962 68.4841C11.9619 73.6045 10.2688 78.6837 8.61706 83.8041L1.96875 103.749C1.88616 103.997 1.80358 104.245 1.721 104.492L1.63841 104.699L1.47323 105.112C1.26676 105.69 1.06028 106.268 0.936401 106.846C1.18416 106.97 1.51451 107.053 1.80357 107.094L3.33145 107.342L5.39615 107.631L7.0892 107.878C10.5579 108.415 14.0266 108.911 17.4953 109.365L41.9825 112.916L55.403 114.94H55.5269C55.8573 114.981 56.2289 115.022 56.6006 115.105C60.1518 115.642 63.6618 116.179 67.0892 117.046C68.6584 117.417 70.2275 117.913 71.7141 118.45C72.2922 118.656 72.8291 118.863 73.2833 119.069C74.5221 119.565 75.4719 119.978 76.9171 120.06C77.0823 120.06 77.2062 120.06 77.3301 120.06L77.2888 120.019ZM77.6604 114.568L77.7017 65.6348C77.8256 65.3045 77.9908 65.0154 78.156 64.7264L78.2385 64.5612L78.3211 64.4373C79.6838 62.3313 81.7898 60.4318 84.1436 58.8214C92.2785 53.288 104.171 49.1999 115.279 47.7133C115.403 47.7133 115.527 47.7133 115.651 47.672L116.188 47.5894C117.757 47.3829 119.409 47.2178 120.978 47.2178L126.057 75.1324L126.387 76.9907L126.759 78.8489L126.841 79.3031C127.296 81.6982 127.75 84.0932 128.122 86.4882C126.387 86.4882 124.612 86.7773 122.877 87.1077C121.391 87.3967 119.945 87.7683 118.624 88.0987H118.5C107.557 90.9893 97.3989 95.2426 89.3053 101.189C85.2172 104.203 81.6659 107.507 79.2709 111.306C78.6102 112.38 78.1147 113.453 77.6604 114.568ZM77.7017 118.078V117.583C78.1147 117.128 78.7754 116.426 79.0231 116.22C83.4003 112.132 90.9158 108.663 97.4402 106.392C108.011 102.717 124.405 99.3719 136.215 99.7436H136.133C140.427 99.8674 144.639 100.115 148.562 101.354C148.81 102.015 149.058 102.634 149.264 103.295C149.47 103.956 149.677 104.575 149.842 105.236C136.545 106.97 123.208 108.828 109.952 110.769L99.1745 112.38C94.7148 113.04 90.2963 113.742 86.0431 114.898C83.9371 115.518 81.8724 116.179 79.9729 117.046C79.849 117.128 79.6838 117.211 79.4774 117.293L79.3122 117.376C78.7754 117.624 78.1147 117.954 77.7017 118.078ZM77.7017 119.152V118.78C77.9495 118.656 78.2798 118.491 78.6515 118.367L79.2296 118.119C82.4918 116.633 85.0933 115.766 88.7685 114.898C90.0899 114.609 91.37 114.32 92.7327 114.073C94.8387 113.701 96.986 113.371 99.092 113.04H99.4223C103.056 112.421 106.69 111.884 110.365 111.347C119.161 110.067 127.956 108.87 136.752 107.631H137L145.837 106.392L146.497 106.309L147.241 106.227L147.984 106.144C149.016 106.02 150.049 105.896 150.998 105.649C150.874 105.07 150.668 104.534 150.503 103.956L150.296 103.377C150.131 102.965 150.007 102.552 149.883 102.139L139.725 70.714L137.371 63.7353L137.289 63.5289C137.206 63.2398 137.082 62.9508 136.958 62.703L136.876 62.4965C136.628 61.8358 136.422 61.3047 136.256 60.6383C136.669 60.8035 137.082 61.0099 137.495 61.2164C139.271 66.1304 140.881 71.0443 142.451 75.9996C143.318 78.725 144.226 81.4504 145.135 84.1345L150.255 99.661L150.668 100.859L151.081 102.056C151.576 103.46 152.031 104.864 152.444 106.268L110.159 112.214C105.658 112.834 101.198 113.536 96.7382 114.238H96.6556C93.8476 114.692 90.9983 115.187 88.2317 115.807C87.1167 116.096 86.0018 116.385 84.8869 116.715C83.7719 117.046 82.7396 117.417 81.6659 117.83C81.2943 117.954 80.9226 118.119 80.551 118.285C79.8903 118.574 79.2296 118.863 78.4863 119.069H78.2385C78.2385 119.069 77.8669 119.152 77.7017 119.152ZM76.8758 119.152C76.8758 119.152 76.5042 119.152 76.339 119.11H76.2151H76.0913C75.348 118.904 74.6873 118.615 74.0266 118.326H73.944C73.6136 118.119 73.242 117.995 72.9116 117.872C71.838 117.459 70.8056 117.087 69.6907 116.757C68.5758 116.426 67.4609 116.137 66.3459 115.848C63.5792 115.229 60.7299 114.733 57.922 114.279C53.4209 113.577 48.9199 112.875 44.4188 112.256L2.13393 106.309C2.54687 104.905 3.00111 103.501 3.49663 102.097C3.78569 101.313 4.07473 100.487 4.3225 99.7023L9.44295 84.1758C10.3514 81.4917 11.2599 78.7663 12.127 76.0409C13.0355 73.1916 13.944 70.3836 14.8937 67.5757C15.5957 65.4697 16.339 63.3637 17.0823 61.2577C17.4952 61.0512 17.9082 60.8447 18.2798 60.6796V60.597C18.2798 61.2164 17.9495 61.9184 17.7017 62.5378L17.6191 62.7443C17.4952 62.992 17.3714 63.2811 17.2888 63.5702L17.2062 63.7766L14.8524 70.7553L4.69414 102.18C4.57026 102.593 4.44639 103.006 4.28121 103.419L4.07474 103.997L3.78569 104.781C3.7031 105.07 3.62051 105.36 3.53792 105.649C4.48768 105.896 5.52002 106.02 6.55237 106.144L7.29566 106.227L8.03895 106.309L8.69965 106.392L17.5365 107.589L29.8421 109.324L44.1711 111.347C47.8462 111.884 51.4801 112.421 55.114 113.04H55.4443C57.3851 113.329 59.3259 113.66 61.2255 113.99C62.7533 114.279 64.2399 114.568 65.7678 114.898C69.443 115.766 72.0445 116.633 75.3067 118.119L75.8848 118.367L76.5455 118.656L76.8345 118.78V119.152H76.8758ZM76.8758 117.624V118.119C76.4216 117.995 75.8022 117.665 75.2654 117.417L75.1002 117.335C74.8937 117.252 74.7286 117.17 74.6047 117.087C72.7052 116.22 70.6405 115.559 68.5345 114.94C64.2812 113.783 59.8628 113.081 55.403 112.421L44.6253 110.81C35.7884 109.53 26.869 108.25 17.9495 107.053C13.531 106.433 9.11259 105.855 4.69414 105.277C5.02449 103.997 5.47873 102.675 5.97426 101.395C9.89718 100.157 14.1091 99.9088 18.4037 99.7849H18.3211C30.1312 99.4132 46.5248 102.758 57.0961 106.433C63.6205 108.704 71.136 112.173 75.5131 116.261C75.7196 116.468 76.339 117.087 76.752 117.541C76.752 117.541 76.7932 117.624 76.8345 117.624H76.8758ZM76.8758 114.568C76.4216 113.453 75.9261 112.38 75.2654 111.306C74.0266 109.324 72.4987 107.507 70.7231 105.772C69.0713 104.162 67.2131 102.634 65.231 101.189C57.1374 95.2426 46.9791 90.9893 36.0362 88.14H35.9123C32.9805 87.3554 29.5943 86.5295 26.4147 86.4882C26.7864 84.0932 27.2406 81.6982 27.6948 79.3031L27.7774 78.8489L28.1491 76.9907L28.4794 75.1324L33.5586 47.2178C35.1277 47.2178 36.7795 47.4242 38.3486 47.5894L38.8855 47.672H39.0507L39.2571 47.7133C50.3652 49.1999 62.2578 53.288 70.3927 58.8214C72.7464 60.4318 74.8524 62.3313 76.2151 64.4373L76.2977 64.5612L76.3803 64.6851C76.5868 64.9741 76.7932 65.3045 76.8758 65.6348V114.568ZM31.4939 53.2054H31.3287C30.0486 53.3293 28.6859 53.5357 27.4471 53.7835C25.5888 61.9597 23.648 70.1359 21.6246 78.3121L19.4774 87.1903L19.3122 87.8922L19.147 88.5942C18.8579 89.6679 18.6102 90.7415 18.4037 91.8565C35.9123 92.5997 57.7981 99.3719 69.5668 108.622C71.136 109.861 72.54 111.141 73.8614 112.503C74.4395 113.123 74.9763 113.742 75.5131 114.403L76.4629 115.6C73.1594 106.392 61.2255 98.3809 49.9522 93.6734C43.9646 91.1958 35.3342 88.3878 28.4794 87.4793C28.2729 87.4793 27.9426 87.4793 27.5297 87.3967H27.3645C26.7038 87.3967 25.9605 87.3141 25.7127 87.2315C25.5888 87.1902 25.465 87.1077 25.4237 87.0251C25.3411 86.6121 25.8366 84.0519 26.167 82.4827L26.3321 81.6569V81.4504L30.2138 60.8034L31.2461 55.0636L31.37 54.4442L31.4141 54.1837C31.5234 53.6524 31.5312 53.6407 31.5764 53.288V53.2054H31.4939ZM25.5063 57.3761C25.5063 57.3761 25.5063 57.6238 25.5063 57.7477V57.8303C25.3824 58.5736 25.1759 59.3582 24.9694 60.1015L24.8869 60.3492C24.763 60.7209 24.6804 61.0512 24.6391 61.4229C24.0197 64.107 23.4003 66.7911 22.6983 69.4752L18.445 86.9425C18.1972 88.0161 17.9495 89.0485 17.6604 90.1221L17.5365 90.6176C17.3714 91.1544 17.2062 91.7326 17.2475 92.2694C17.5365 92.5584 18.7754 92.5997 19.6425 92.5997H20.3032C22.1202 92.7236 23.9371 92.9301 25.754 93.1366C28.0252 93.4256 30.2964 93.8385 32.5262 94.2928C46.5661 97.0595 60.2757 102.304 69.9385 110.067C71.425 111.265 73.3658 112.834 74.4808 114.238C72.4574 112.545 70.1036 111.141 67.626 109.819C62.5056 107.259 56.7657 105.236 50.9433 103.625C47.392 102.675 43.7994 101.85 40.1243 101.189C31.659 99.6197 22.9873 98.5873 14.1917 99.2068C11.4663 99.4132 8.65836 99.7436 6.18073 100.487C6.63496 99.248 7.00661 98.0093 7.37825 96.7704L7.7499 95.4903L10.1449 87.9335L15.7196 70.8379L18.0321 63.8592C18.1559 63.5289 18.2798 63.1572 18.3624 62.8269V62.6617C18.6928 61.7945 18.9405 60.9686 19.3122 60.1428L25.3824 57.3348H25.5063V57.3761ZM123.084 53.2054H123.249C124.529 53.3293 125.892 53.5357 127.13 53.7835C128.989 61.9597 130.93 70.1359 132.953 78.3121L135.1 87.1903L135.265 87.8922L135.431 88.5942C135.72 89.6679 135.967 90.7415 136.174 91.8565C118.665 92.5997 96.7795 99.3719 85.0107 108.622C83.4416 109.861 82.0376 111.141 80.7162 112.503C80.0968 113.164 79.56 113.825 79.0231 114.485L78.1147 115.6C81.4182 106.392 93.3521 98.3809 104.625 93.6734C110.613 91.1958 119.243 88.3878 126.098 87.4793C126.305 87.4793 126.635 87.4793 127.048 87.3967H127.213C127.585 87.3967 127.956 87.3554 128.287 87.3141C128.534 87.3141 128.741 87.2315 128.865 87.2315C128.989 87.1902 129.113 87.1077 129.154 87.0251C129.236 86.6121 128.741 84.0519 128.411 82.4827L128.245 81.6569V81.4504L124.364 60.8034L123.331 55.0636L123.208 54.4442V54.1964C123.084 53.9074 123.001 53.577 123.001 53.288H123.084V53.2054ZM129.071 57.6238V57.7477V57.8303C129.154 58.2432 129.236 58.6975 129.36 59.1517L129.608 60.1015L129.691 60.3492C129.815 60.7209 129.897 61.0512 129.938 61.4229C130.558 64.107 131.177 66.7911 131.879 69.4752L136.133 86.9425C136.38 88.0161 136.628 89.0485 136.917 90.1221L137.041 90.6176C137.206 91.1544 137.371 91.7326 137.33 92.2694C137.041 92.5584 135.802 92.5997 134.935 92.5997H134.274C130.145 92.8888 126.057 93.4669 122.051 94.2928C108.011 97.0595 94.3019 102.304 84.6391 110.067C83.648 110.852 82.4918 111.801 81.5008 112.751C80.9639 113.247 80.5097 113.742 80.0967 114.238C82.1201 112.545 84.4739 111.141 86.9515 109.819C92.072 107.259 97.8118 105.236 103.634 103.625C105.864 103.006 108.135 102.469 110.406 101.973C111.728 101.684 113.091 101.437 114.453 101.189C122.919 99.6197 131.59 98.5873 140.386 99.2068C143.111 99.4132 145.919 99.7436 148.397 100.487C147.943 99.248 147.571 98.0093 147.199 96.7704L146.828 95.4903L144.433 87.9335L138.858 70.8379L136.546 63.8592C136.422 63.5289 136.298 63.1572 136.215 62.8269C135.926 61.9184 135.637 61.0099 135.265 60.1428L129.195 57.3348H129.071C129.071 57.3348 129.03 57.5412 129.071 57.6238Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.7953 14.2238C27.6535 11.7049 28.6033 9.30988 28.6033 6.95613C28.6033 4.89143 28.0665 3.23968 26.9928 1.95957C25.9605 0.720757 24.4326 0.0600586 22.4918 0.0600586C21.7485 0.0600586 21.3356 1.0924 21.3356 3.19839C21.3356 5.67602 21.3769 8.73176 21.5008 12.3243C21.5833 16.3711 21.6246 19.4269 21.6246 21.4916L21.542 27.0249C21.4594 29.5026 21.4181 31.3608 21.4181 32.5996C21.4181 33.0126 21.955 33.219 23.0286 33.219H23.1112C23.1112 33.219 23.6067 33.1364 23.9784 33.0126C24.2261 32.9713 24.5152 32.8887 24.8455 32.8061C25.7953 32.3931 26.5386 31.9802 27.1167 31.5673C27.7361 31.1544 28.2316 30.7001 28.562 30.2459C28.9336 29.7917 29.2227 29.2135 29.4292 28.5941C29.6356 27.9747 29.7595 27.314 29.8421 26.612C29.9247 25.8687 29.966 24.919 29.966 23.7214C29.966 21.7806 29.6356 20.0876 29.0162 18.6836C28.3968 17.2796 27.3232 15.793 25.7953 14.2651V14.2238ZM22.6983 3.44616C22.6983 2.20734 23.0699 1.54662 23.8545 1.54662C24.8043 1.54662 25.6301 2.00086 26.3321 2.90933C27.0754 3.8178 27.4883 4.76756 27.4883 5.7999C27.4883 6.54319 27.4058 7.41035 27.1993 8.31882C26.9928 9.22728 26.7038 10.0945 26.3321 10.9616C25.9605 11.8701 25.465 12.6134 24.8868 13.1502C24.3087 13.687 23.6893 13.9761 23.0286 13.9761H22.9047L22.8222 8.69048C22.7809 7.16261 22.7395 5.38697 22.7395 3.44616H22.6983ZM28.0252 28.2225C27.5709 29.2135 26.9102 29.9981 26.0431 30.6175C25.2172 31.1956 24.3087 31.4847 23.3177 31.4847H23.1938L23.0699 31.4434C23.0699 25.9513 22.9873 20.8309 22.8634 16.0821C23.0286 16.0821 23.359 15.9995 23.8545 15.8343C24.3913 15.6691 24.763 15.6279 25.0107 15.6279C27.5296 16.6602 28.7684 19.7985 28.7684 25.0428C28.7684 26.1991 28.5207 27.2314 28.0252 28.2225Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M43.8408 20.4593C43.8408 20.0463 43.8408 19.4269 43.9234 18.6011C43.9647 17.7339 44.0059 17.0732 44.0059 16.6602C44.0059 16.0821 44.0059 15.5866 44.0059 15.215V13.2741C44.0059 12.407 44.0472 11.2094 44.1298 9.72287C44.2124 8.36017 44.3363 6.99747 44.5427 5.63477C44.6253 5.09795 44.5015 4.7263 44.0885 4.60242C43.7995 4.43725 43.4278 4.35466 43.0562 4.31337C42.6845 4.27207 42.189 4.23078 41.6522 4.23078C41.1154 4.23078 40.6611 4.18948 40.3721 4.14819L39.0919 4.02431C38.679 3.98302 38.0596 3.90042 37.2337 3.85913C36.7795 3.85913 36.4905 3.94172 36.3666 4.14819C36.2014 4.31336 36.1601 4.60243 36.1601 4.93278V13.811C36.1188 17.2383 36.0775 19.8399 36.0775 21.5329L36.3253 31.6912C36.3253 32.0629 36.4079 32.3519 36.5317 32.5171C36.6969 32.6822 36.9034 32.7236 37.1924 32.7236C37.7293 32.7236 38.0596 32.3932 38.1009 31.7325C38.1009 31.0305 38.0183 29.9569 37.9357 28.5529C37.8531 27.1076 37.7706 26.0752 37.7293 25.4558C37.688 24.6299 37.6054 24.0106 37.5641 23.5976C37.5641 23.2673 37.4815 22.7304 37.4402 21.9872C37.3989 21.2439 37.3576 20.5419 37.3576 19.9225V17.899C37.3576 15.7518 37.3576 14.1826 37.3989 13.109C37.4402 12.4483 37.5228 11.4159 37.5641 9.97062C37.6467 8.48404 37.688 7.32782 37.688 6.46065C37.688 5.79995 37.688 5.46959 37.6054 5.46959C38.2661 5.46959 39.2984 5.55219 40.785 5.59348C42.2716 5.63478 42.9736 5.67606 42.891 5.71736C42.891 6.29547 42.891 6.66711 42.8497 6.87358C42.8084 7.03876 42.7258 7.28653 42.6845 7.65818V10.7965C42.6845 12.9851 42.6845 14.3478 42.6432 14.8846C42.6432 16.6189 42.6432 17.9403 42.5607 18.7662C42.3129 21.3264 42.2303 23.2673 42.2303 24.5887C42.2303 25.0842 42.2303 25.8688 42.3129 26.9011C42.3129 27.1489 42.3542 27.727 42.3542 28.5529V29.833C42.3542 30.0807 42.3542 30.4111 42.3129 30.7414C42.3129 31.0718 42.3129 31.4022 42.3542 31.7325C42.3542 32.4758 42.6432 32.8887 43.2213 32.8887C43.6343 32.8887 43.9234 32.7235 44.0885 32.3519C44.1711 32.1041 44.2124 31.8977 44.2124 31.6499C44.2124 31.4847 44.2124 31.237 44.1298 30.9479C44.0885 30.6176 44.0472 30.3698 44.0059 30.122C43.8408 28.1399 43.7582 26.4056 43.7582 24.9603V21.3677C43.7582 21.3677 43.8408 20.8309 43.8408 20.418V20.4593Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M57.8393 9.0209C57.6328 7.20397 57.5503 5.5935 57.5503 4.18951C57.5503 4.02433 57.4677 3.85916 57.3025 3.73527C57.1373 3.5701 56.9722 3.52881 56.7657 3.52881C56.6005 3.69398 56.3115 3.77656 55.9811 3.77656C55.8572 3.77656 55.7746 3.77657 55.692 3.73527H55.403C55.403 3.73527 55.2378 4.27209 55.1552 5.05668C55.0726 5.5935 54.9487 6.41938 54.8661 7.49302C54.7836 8.48407 54.701 9.02089 54.701 9.10348C54.6184 9.84677 54.3706 11.2095 53.9577 13.1916C53.5861 14.9259 53.297 16.206 53.1731 16.9906C52.8428 18.9314 52.6776 19.8812 52.6776 19.8812L52.1408 23.226L51.604 25.9514C51.2736 27.9748 50.8194 30.0395 50.2826 32.1455L50.2 32.3932C50.2 32.3932 50.2825 32.7236 50.489 32.93C50.6955 33.0952 50.9019 33.1365 51.0671 33.1365C51.2736 33.1365 51.4801 32.8887 51.7278 32.3932C51.9343 31.939 52.0995 31.3609 52.2646 30.535C52.5537 28.9658 52.7189 27.8922 52.7602 27.3967L52.8428 26.5295C52.8428 26.5295 52.8841 26.4882 52.8841 26.4056C52.8841 26.2404 53.0079 26.1991 53.1731 26.1991C53.5035 26.1991 53.999 26.2404 54.701 26.323L56.2702 26.4056C57.096 26.4056 57.798 26.4882 58.4587 26.6121L58.6652 28.3464C58.7065 28.8833 58.8717 30.2047 59.1607 32.3106C59.202 32.7649 59.2846 33.0126 59.4085 33.0952C59.5324 33.2191 59.8214 33.2604 60.2344 33.2604C60.4821 33.0952 60.5647 32.8888 60.5647 32.5997V32.4758C59.2433 22.1111 58.4174 15.0498 58.1284 11.292C58.0871 10.6726 57.9632 9.88806 57.8806 8.9796L57.8393 9.0209ZM57.7567 25.4558C56.9309 25.4558 55.9398 25.4145 54.8249 25.2907C53.7099 25.1668 53.1731 25.0429 53.1731 24.8777C53.1731 24.0106 53.5035 21.9046 54.1642 18.5185L56.5179 6.83232C57.3438 15.0498 57.8806 21.2439 58.1697 25.4558H57.7154H57.7567Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M84.3087 33.1364C84.3087 33.1364 84.3087 33.0539 84.2674 33.0126C84.0609 32.0628 83.9783 30.6588 83.9783 28.8006C83.9783 27.9334 83.9783 27.1488 84.0196 26.4881V24.217C83.648 23.515 83.4415 17.0731 83.4415 4.89143C83.4415 4.72626 83.3176 4.56108 83.0285 4.35461C82.7808 4.18943 82.533 4.10686 82.3266 4.10686C81.8723 4.10686 81.5007 4.39591 81.2942 4.97402C81.0877 5.71731 80.9639 6.29543 80.8813 6.66707C80.8813 6.83225 80.84 6.99743 80.7987 7.12131C80.7987 7.2039 80.7987 7.28648 80.7987 7.32777C80.5509 8.85565 79.6425 12.3656 78.1146 17.8164C76.628 23.2672 75.7195 26.2404 75.3892 26.7359C75.3892 26.0752 75.3479 25.4145 75.224 24.7125C75.1001 24.0105 74.9349 23.102 74.6459 21.9871C74.3981 20.9961 74.1917 20.294 74.1091 19.8398L73.531 18.6836C73.4071 17.8577 73.0767 16.6189 72.6225 14.9259C72.4573 14.4716 72.3334 13.9348 72.127 13.2328C71.8379 12.283 71.425 11.2094 70.8469 9.92928C70.1449 8.36011 69.7319 7.20389 69.5668 6.4193V5.88249C69.5668 5.59344 69.4842 5.13921 69.3603 4.56109C69.2777 4.10686 68.9886 3.90039 68.4931 3.90039C67.7498 3.90039 67.3369 4.10686 67.3369 4.56109C67.3369 4.64368 67.3782 4.76756 67.4608 4.97402C67.5021 5.1392 67.5433 5.26308 67.5433 5.42826C67.5433 8.48401 67.3369 13.1089 66.8827 19.2204C66.4284 25.8274 66.1807 30.4111 66.1807 33.0539C66.1807 33.1365 66.2633 33.2603 66.4697 33.3842C66.6762 33.5494 66.8414 33.632 66.924 33.632C67.4195 33.632 67.7085 33.4255 67.8324 33.0539V31.3195C67.7911 27.4792 67.9976 22.1936 68.4105 15.4627C68.617 11.6636 68.7409 9.26859 68.7822 8.23624C69.1125 8.5666 69.6906 10.2184 70.5165 13.2741C71.3837 16.3298 72.2096 19.4682 72.9116 22.7717C73.6548 26.0752 74.0678 28.0986 74.0678 28.8832C74.0678 29.3787 74.1504 29.7503 74.3568 29.9981C74.5633 30.2459 74.8937 30.3285 75.3479 30.3285C75.5544 30.3285 75.7195 30.2459 75.8847 30.0807C76.0499 29.9155 76.1738 29.6678 76.2977 29.3374C76.4215 28.8832 76.5454 28.3051 76.6693 27.6031V26.9424C79.6425 15.0497 81.4181 8.89694 81.9962 8.5253C82.1201 8.97953 82.1614 9.68153 82.1614 10.59L82.0788 13.3154C82.0375 14.1413 81.9962 15.0497 81.9962 16.0408C81.9962 16.5776 82.0375 17.2383 82.1614 17.9816L82.2853 19.5921C82.4505 21.9458 82.533 25.2493 82.533 29.4613V32.3519C82.533 34.2101 82.8221 35.1598 83.4002 35.1598C83.648 35.1598 83.8957 34.9947 84.0609 34.6643C84.2674 34.334 84.35 34.0036 84.35 33.7146C84.35 33.5494 84.35 33.4255 84.3087 33.3016C84.3087 33.219 84.2674 33.1364 84.2261 33.0951L84.3087 33.1364ZM82.0375 8.44269H81.9136L81.9962 8.36012H82.0375V8.44269Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M98.7617 30.9064V24.671C98.7617 24.0516 98.7617 23.0605 98.6791 21.7391C98.5965 20.459 98.5552 19.1376 98.5552 17.8162C98.5552 16.8665 98.5552 15.4624 98.5552 13.6042V9.43356C98.5552 7.69922 98.6378 6.21263 98.803 5.05641C98.8443 4.51959 98.803 4.14795 98.5965 3.90018C98.4313 3.65242 98.0597 3.56982 97.5641 3.56982C96.4905 3.56982 95.4582 3.90018 94.4671 4.60217C92.7328 5.88228 91.783 7.65791 91.6178 9.92907C91.6178 10.1768 91.6178 10.5072 91.5765 10.9201C91.5765 11.2918 91.5765 11.746 91.4939 12.2828C91.4526 12.6958 91.4114 12.9848 91.4114 13.1913C91.4114 14.1823 91.6591 15.0082 92.1134 15.6689C92.5676 16.3296 93.2696 17.0316 94.2194 17.7336L93.6825 18.5595C93.2696 19.2202 93.0218 19.6744 92.898 20.0048C92.5263 21.0371 92.2785 22.0282 92.1547 22.9779C92.0721 23.8864 92.0308 25.0839 92.0308 26.5292C92.0308 27.7267 91.8243 28.883 91.4526 30.0392C91.3701 30.3283 91.2462 30.576 91.081 30.7825C90.9571 30.9477 90.792 31.1129 90.5442 31.278C90.2551 31.4432 90.09 31.6496 90.09 31.8974C90.09 32.1452 90.2138 32.3516 90.4203 32.5168C90.6681 32.682 90.9158 32.7646 91.1636 32.7646C91.3288 32.7646 91.4527 32.7646 91.5765 32.7233C92.196 32.5168 92.6915 31.8974 93.0218 30.8651C93.3935 29.8327 93.5999 28.7591 93.6412 27.768V25.373V22.9779C93.6412 22.6063 93.6825 22.2347 93.7651 21.9456C93.889 21.6152 94.0129 21.2023 94.2194 20.7894C94.3845 20.3764 94.5084 20.0461 94.6323 19.8396C94.7149 19.5918 94.8387 19.4267 95.0039 19.3028C95.1691 19.1789 95.3756 19.055 95.6646 18.8899C95.9124 18.7247 96.1189 18.6008 96.2427 18.4769C96.3253 18.4356 96.4905 18.3943 96.697 18.353C96.9447 18.353 97.1099 18.3117 97.2751 18.2704L97.688 24.9188L97.6054 27.3551C97.5642 28.47 97.4816 30.1631 97.4403 32.4342C97.4403 32.682 97.4815 32.8885 97.6467 33.0537C97.8119 33.2188 98.0597 33.2601 98.3074 33.2601H98.39C98.39 33.2601 98.7617 33.1362 98.8855 32.9711C99.0094 32.8059 99.0507 32.6407 99.0507 32.3929V32.2691C99.0507 32.2691 99.0094 31.8974 98.9681 31.6497C98.9681 31.4019 98.9681 31.1541 98.9681 30.8238L98.7617 30.9064ZM97.1099 16.4948C96.7796 16.7426 96.4492 16.8252 96.0776 16.8252C95.7059 16.8252 95.293 16.7013 94.88 16.4948C93.8477 15.9993 93.2283 15.1321 93.0218 13.852C93.0218 13.5217 92.9805 12.9435 92.9805 12.2415C92.9805 11.0853 93.0631 10.0943 93.2283 9.26838C93.476 8.02957 94.1368 6.91464 95.2104 5.96488C95.4169 5.7997 95.7885 5.59322 96.3253 5.38675L97.1512 5.05641V16.4948H97.1099Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.462 4.23073H112.554L111.645 4.27204C110.613 4.27204 109.374 4.18944 107.846 4.06555C106.195 3.94167 104.914 3.90039 104.047 3.90039C103.634 3.90039 103.345 4.06556 103.221 4.39591C103.221 4.72626 103.51 4.93273 104.089 5.0979C104.708 5.18049 105.906 5.22179 107.722 5.22179C107.722 7.08002 107.929 10.5487 108.218 15.6691C108.507 20.996 108.672 24.6299 108.672 26.5707C108.796 26.9837 108.837 27.314 108.837 27.6031V28.3876C108.837 28.3876 108.755 28.8419 108.755 29.1309C108.755 29.709 108.755 30.2459 108.796 30.7001V32.3106L109.333 32.6409C109.581 32.6409 109.787 32.5583 110.035 32.3932C110.283 32.228 110.448 32.0215 110.448 31.815C110.448 29.2135 110.283 24.9603 109.952 18.9726C109.581 13.2328 109.416 8.93824 109.416 6.08896C109.416 5.63473 109.415 5.34567 109.457 5.26308C109.457 5.18049 109.498 5.1392 109.622 5.1392L111.521 5.22179C112.182 5.26309 112.76 5.30438 113.338 5.30438C113.586 5.30438 113.834 5.26308 113.999 5.18049C114.206 5.05661 114.288 4.93272 114.288 4.72626C114.288 4.35461 114.04 4.14814 113.504 4.14814L113.462 4.23073Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M133.159 27.3553V23.804C133.242 23.0607 133.242 21.8632 133.242 20.2941C133.242 19.2617 133.242 18.5184 133.242 17.9816C133.201 16.4537 133.118 15.3388 133.077 14.5955C132.953 12.3244 132.912 10.6313 132.912 9.47505V6.00638C132.912 5.38697 132.912 4.85015 132.912 4.35462C132.912 4.18944 132.87 4.06558 132.788 3.9004C132.705 3.73522 132.623 3.61133 132.54 3.61133C132.375 3.61133 132.21 3.61134 132.003 3.65263C131.797 3.65263 131.632 3.73522 131.508 3.81781C131.342 3.98299 131.136 4.39592 130.888 5.13921C130.64 5.84121 130.434 6.62578 130.186 7.45166C129.897 8.60789 129.649 9.47506 129.484 9.97059C129.195 10.8791 128.824 11.9114 128.328 13.0676L127.75 14.4716C127.502 15.2149 126.8 17.2796 125.561 20.707C124.322 24.1344 123.331 26.9011 122.506 29.0071L122.134 29.4613L121.845 25.2493C121.762 22.3175 121.721 19.8398 121.721 17.899C121.721 16.4537 121.721 14.9258 121.638 13.3154C121.515 8.89694 121.432 6.13027 121.473 5.13921C121.473 4.39592 121.184 3.98297 120.647 3.98297C120.317 3.98297 120.069 4.10686 119.863 4.31333C119.698 4.5198 119.615 4.80885 119.656 5.1805C119.78 6.29543 119.863 7.12132 119.945 7.65814C120.193 9.84672 120.441 17.899 120.689 31.7737C120.689 32.1454 120.771 32.4345 120.895 32.5996C121.06 32.7648 121.308 32.8061 121.68 32.8061H122.217C123.703 29.1309 125.768 23.5976 128.411 16.1647L131.425 7.78202H131.714C131.714 7.78202 131.714 9.39248 131.714 12.3656C131.714 15.2975 131.797 17.899 131.838 20.1702V21.4916L131.59 28.2638L131.466 31.4847C131.466 31.7325 131.508 31.9389 131.673 32.1041C131.879 32.2693 132.127 32.3106 132.375 32.3106C132.623 32.3106 132.87 32.1867 133.035 32.0628C133.242 31.8976 133.325 31.6912 133.325 31.4847V31.4021C133.242 29.9981 133.201 28.5941 133.201 27.1901L133.159 27.3553Z\", fill: \"currentColor\" }));\nexport default SvgLogo;\n","import { styled } from '@mui/material';\nimport { ChangeEventHandler, FC, useCallback } from 'react';\n\nconst VpHiddenFileInputRoot = styled('input')({\n clipPath: 'inset(50%)',\n height: 1,\n overflow: 'hidden',\n position: 'absolute',\n bottom: 0,\n left: 0,\n whiteSpace: 'nowrap',\n width: 1,\n});\n\nconst AcceptPropToType: Record = {\n image: 'image/*,image/heic,image/heif',\n video: 'video/*',\n audio: 'audio/*',\n};\n\nexport interface FileUploadProps {\n multiple?: boolean;\n accept: 'audio' | 'video' | 'image' | string;\n onFileUpload: (files: File[]) => void;\n}\n\nexport const VpHiddenFileInput: FC = ({ multiple = false, accept, onFileUpload }) => {\n const onChange = useCallback>(\n event => {\n const files = Array.from(event.target.files ?? []);\n\n if (files.length) {\n onFileUpload?.(files);\n event.target.value = '';\n }\n },\n [onFileUpload],\n );\n\n return ;\n};\n","import { Box, SvgIcon, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, Fragment } from 'react';\n\nexport type VpIconProps = Omit[0], 'size' | 'color'> & {\n Icon: FC;\n size: number | string;\n color?: string;\n glowing?: boolean;\n sx?: SxProps;\n};\n\nexport const VpIcon: FC = ({ Icon, sx, size, color, glowing = false, ...props }) => {\n return (\n \n {glowing && (\n \n \n \n \n\n \n \n \n \n )}\n\n {!glowing && (\n \n \n \n )}\n \n );\n};\n","import { Theme } from '@mui/material';\nimport { SxProps, SystemStyleObject } from '@mui/system';\n\nexport function resolveSx(sx: SxProps | undefined, theme: Theme): SystemStyleObject {\n if (typeof sx === 'function') {\n return sx(theme);\n }\n\n return (sx ?? {}) as SystemStyleObject;\n}\n","import { IconButton } from '@mui/material';\nimport { FC } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\n\nimport { FileUploadProps, VpHiddenFileInput } from '@vp/common/ui/component/VpHiddenFileInput';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport type VpIconButtonProps = Omit[0], 'size'> & {\n Icon: FC;\n glowing?: boolean;\n to?: string;\n size?: number;\n fileUpload?: FileUploadProps;\n};\n\nexport const VpIconButton: FC = ({ Icon, glowing, sx, size = 24, fileUpload, ...props }) => {\n return (\n ({\n px: 2,\n py: 1.25,\n pointerEvents: 'auto',\n color: theme.palette.primary[500],\n transition: 'color 0.25s ease-in-out',\n ...resolveSx(sx, theme),\n })}\n LinkComponent={props.to ? RouterLink : props.LinkComponent}\n {...props}\n {...(fileUpload ? { component: 'label' } : {})}\n >\n \n {fileUpload && }\n \n );\n};\n","import * as React from \"react\";\nconst SvgChevronRight = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.5 12.5L8.99995 20L7.94995 18.95L14.4 12.5L7.94995 6.05L8.99995 5L16.5 12.5Z\", fill: \"currentColor\" }));\nexport default SvgChevronRight;\n","import { Button, SvgIcon, Typography } from '@mui/material';\nimport { FC, useCallback } from 'react';\n\nimport ChevronRight from '@vp/assets/icons/ChevronRight.svg?react';\nimport { AppMenuItemModel } from '@vp/menu/ui/AppMenuItemModel';\n\nexport interface AppMenuListItemProps {\n open?: boolean;\n item: AppMenuItemModel;\n onItemClick: (item: AppMenuItemModel) => void;\n}\n\nexport const AppMenuListItem: FC = ({ open, item, onItemClick }) => {\n const { Icon, text } = item;\n const onClick = useCallback(() => onItemClick(item), [item, onItemClick]);\n\n return (\n ({\n backgroundColor: 'transparent',\n textTransform: 'none',\n pt: 2.25,\n pb: `calc(${theme.spacing(2.25)} - 1px)`,\n pl: 3,\n pr: 2,\n width: 1,\n justifyContent: 'flex-start',\n borderRadius: 0,\n alignItems: 'center',\n color: theme.palette.text.secondary,\n borderBottom: '1px solid',\n borderColor: theme.palette.transparency.alpha16,\n })}\n onClick={onClick}\n >\n \n \n \n\n \n {text}\n \n\n ({\n fontSize: 24,\n color: theme.palette.text.disabled,\n transition: 'transform 0.25s ease-in-out',\n })}\n >\n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgUserMultiple = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M15 2V3.5C15.9946 3.5 16.9484 3.89509 17.6516 4.59835C18.3549 5.30161 18.75 6.25544 18.75 7.25C18.75 8.24456 18.3549 9.19839 17.6516 9.90165C16.9484 10.6049 15.9946 11 15 11V12.5C16.3924 12.5 17.7277 11.9469 18.7123 10.9623C19.6969 9.97774 20.25 8.64239 20.25 7.25C20.25 5.85761 19.6969 4.52226 18.7123 3.53769C17.7277 2.55312 16.3924 2 15 2ZM15 23H16.5V19.25C16.4984 17.8581 15.9447 16.5237 14.9605 15.5395C13.9763 14.5553 12.6419 14.0016 11.25 14H6.75C5.35811 14.0016 4.0237 14.5553 3.03949 15.5395C2.05527 16.5237 1.50163 17.8581 1.5 19.25V23H3V19.25C3.00117 18.2558 3.39664 17.3027 4.09964 16.5996C4.80265 15.8966 5.7558 15.5012 6.75 15.5H11.25C12.2442 15.5012 13.1973 15.8966 13.9004 16.5996C14.6034 17.3027 14.9988 18.2558 15 19.25V23ZM21 23H22.5V19.25C22.4985 17.8581 21.9448 16.5236 20.9606 15.5394C19.9764 14.5552 18.6419 14.0015 17.25 14V15.5C18.2442 15.5011 19.1974 15.8966 19.9004 16.5996C20.6034 17.3026 20.9989 18.2558 21 19.25V23ZM11.0834 4.13199C10.4667 3.71993 9.74168 3.5 9 3.5C8.00544 3.5 7.05161 3.89509 6.34835 4.59835C5.64509 5.30161 5.25 6.25544 5.25 7.25C5.25 7.99168 5.46994 8.7167 5.88199 9.33339C6.29405 9.95007 6.87972 10.4307 7.56494 10.7145C8.25016 10.9984 9.00416 11.0726 9.73159 10.9279C10.459 10.7833 11.1272 10.4261 11.6517 9.90165C12.1761 9.3772 12.5333 8.70902 12.6779 7.98159C12.8226 7.25416 12.7484 6.50016 12.4646 5.81494C12.1807 5.12971 11.7001 4.54404 11.0834 4.13199ZM6.08326 2.88478C6.94662 2.30791 7.96165 2 9 2C10.3924 2 11.7277 2.55312 12.7123 3.53769C13.6969 4.52226 14.25 5.85761 14.25 7.25C14.25 8.28835 13.9421 9.30339 13.3652 10.1667C12.7883 11.0301 11.9684 11.703 11.0091 12.1004C10.0498 12.4977 8.99418 12.6017 7.97578 12.3991C6.95738 12.1966 6.02192 11.6965 5.28769 10.9623C4.55347 10.2281 4.05345 9.29262 3.85088 8.27422C3.64831 7.25582 3.75227 6.20022 4.14963 5.24091C4.54699 4.2816 5.2199 3.46166 6.08326 2.88478Z\", fill: \"currentColor\" }));\nexport default SvgUserMultiple;\n","import * as React from \"react\";\nconst SvgSettingsAdjust = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M19.425 6.5H22.5V8H19.425C19.05 9.725 17.55 11 15.75 11C13.95 11 12.45 9.725 12.075 8H1.5V6.5H12.075C12.45 4.775 13.95 3.5 15.75 3.5C17.55 3.5 19.05 4.775 19.425 6.5ZM13.5 7.25C13.5 8.525 14.475 9.5 15.75 9.5C17.025 9.5 18 8.525 18 7.25C18 5.975 17.025 5 15.75 5C14.475 5 13.5 5.975 13.5 7.25ZM4.575 18.5H1.5V17H4.575C4.95 15.275 6.45 14 8.25 14C10.05 14 11.55 15.275 11.925 17H22.5V18.5H11.925C11.55 20.225 10.05 21.5 8.25 21.5C6.45 21.5 4.95 20.225 4.575 18.5ZM10.5 17.75C10.5 16.475 9.525 15.5 8.25 15.5C6.975 15.5 6 16.475 6 17.75C6 19.025 6.975 20 8.25 20C9.525 20 10.5 19.025 10.5 17.75Z\", fill: \"currentColor\" }));\nexport default SvgSettingsAdjust;\n","import { Box, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { SystemStyleObject } from '@mui/system/styleFunctionSx/styleFunctionSx';\nimport { CSSProperties, forwardRef, useCallback, useMemo, useState } from 'react';\nimport { Blurhash } from 'react-blurhash';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpImageProps {\n src: string;\n hash?: string;\n width?: string;\n height?: string;\n alt?: string;\n position?: string;\n sx?: SxProps;\n mode?: 'cover' | 'contain';\n animateAppearance?: boolean;\n imageProps?: { sx?: SxProps; style?: CSSProperties };\n}\n\nexport const VpImage = forwardRef(\n ({ src, hash, width, height, alt, position, sx, mode = 'cover', animateAppearance = true, imageProps }, ref) => {\n const [loaded, setLoaded] = useState(false);\n const onLoad = useCallback(() => setLoaded(true), []);\n const modeStyles = useMemo(() => resolveMode(mode), [mode]);\n const imageStyles = useMemo(() => resolveStyle(imageProps?.style), [imageProps]);\n\n const transition = animateAppearance ? 'opacity 0.5s ease-in-out' : undefined;\n const opacity = Number(loaded);\n position ??= 'center';\n hash ||= 'L5EV+:0000of00-;xu%M~qt7xuD%';\n\n return (\n ({ position: 'relative', ...resolveSx(sx, theme) })} width={width ?? '100%'} height={height ?? '100%'}>\n \n\n ({ position: 'absolute', top: '50%', left: '50%', ...modeStyles, ...resolveSx(imageProps?.sx, theme) })}\n onLoad={onLoad}\n />\n \n );\n },\n);\n\nVpImage.displayName = 'VpImage';\n\nfunction resolveMode(mode: NonNullable): SystemStyleObject {\n if (mode === 'contain') {\n return { maxWidth: '100%', width: '100%', maxHeight: '100%', objectFit: 'contain' };\n }\n\n return { width: '100%', height: '100%', objectFit: 'cover' };\n}\n\nfunction resolveStyle(style?: CSSProperties): CSSProperties {\n const values = ['translate(-50%, -50%)', style?.transform];\n const transform = values.filter(Boolean).join(' ');\n return { ...style, transform };\n}\n","import { Button, SvgIcon, Typography } from '@mui/material';\nimport { FC, useCallback } from 'react';\n\nimport SettingsAdjust from '@vp/assets/icons/SettingsAdjust.svg?react';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport interface AppMenuProfileItemProps {\n profile: ProfileModel;\n onProfileClick: (profile: ProfileModel) => void;\n}\n\nexport const AppMenuProfileItem: FC = ({ profile, onProfileClick }) => {\n const onClick = useCallback(() => onProfileClick(profile), [onProfileClick, profile]);\n\n return (\n ({\n backgroundColor: 'transparent',\n textTransform: 'none',\n width: 1,\n pl: 6,\n pr: 2.5,\n pt: 1.25,\n pb: `calc(${theme.spacing(1.25)} - 1px)`,\n justifyContent: 'flex-start',\n alignItems: 'center',\n borderBottom: '1px solid',\n borderRadius: 0,\n borderColor: theme.palette.transparency.alpha16,\n })}\n onClick={onClick}\n >\n \n\n \n {profile.name || 'Имя не указано'}\n \n\n ({ fontSize: 24, color: theme.palette.transparency.alpha48, ml: 2 })}>\n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgUserMultipleGradient = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"user-multiple-gradient\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"0%\", gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: \"1.37%\", stopColor: \"rgba(229, 229, 229, 0.7)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"50.9%\", stopColor: \"rgba(229, 229, 229, 0.5)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"105.12%\", stopColor: \"rgba(229, 229, 229, 0.1)\" }))), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M15 2V3.5C15.9946 3.5 16.9484 3.89509 17.6516 4.59835C18.3549 5.30161 18.75 6.25544 18.75 7.25C18.75 8.24456 18.3549 9.19839 17.6516 9.90165C16.9484 10.6049 15.9946 11 15 11V12.5C16.3924 12.5 17.7277 11.9469 18.7123 10.9623C19.6969 9.97774 20.25 8.64239 20.25 7.25C20.25 5.85761 19.6969 4.52226 18.7123 3.53769C17.7277 2.55312 16.3924 2 15 2ZM15 23H16.5V19.25C16.4984 17.8581 15.9447 16.5237 14.9605 15.5395C13.9763 14.5553 12.6419 14.0016 11.25 14H6.75C5.35811 14.0016 4.0237 14.5553 3.03949 15.5395C2.05527 16.5237 1.50163 17.8581 1.5 19.25V23H3V19.25C3.00117 18.2558 3.39664 17.3027 4.09964 16.5996C4.80265 15.8966 5.7558 15.5012 6.75 15.5H11.25C12.2442 15.5012 13.1973 15.8966 13.9004 16.5996C14.6034 17.3027 14.9988 18.2558 15 19.25V23ZM21 23H22.5V19.25C22.4985 17.8581 21.9448 16.5236 20.9606 15.5394C19.9764 14.5552 18.6419 14.0015 17.25 14V15.5C18.2442 15.5011 19.1974 15.8966 19.9004 16.5996C20.6034 17.3026 20.9989 18.2558 21 19.25V23ZM11.0834 4.13199C10.4667 3.71993 9.74168 3.5 9 3.5C8.00544 3.5 7.05161 3.89509 6.34835 4.59835C5.64509 5.30161 5.25 6.25544 5.25 7.25C5.25 7.99168 5.46994 8.7167 5.88199 9.33339C6.29405 9.95007 6.87972 10.4307 7.56494 10.7145C8.25016 10.9984 9.00416 11.0726 9.73159 10.9279C10.459 10.7833 11.1272 10.4261 11.6517 9.90165C12.1761 9.3772 12.5333 8.70902 12.6779 7.98159C12.8226 7.25416 12.7484 6.50016 12.4646 5.81494C12.1807 5.12971 11.7001 4.54404 11.0834 4.13199ZM6.08326 2.88478C6.94662 2.30791 7.96165 2 9 2C10.3924 2 11.7277 2.55312 12.7123 3.53769C13.6969 4.52226 14.25 5.85761 14.25 7.25C14.25 8.28835 13.9421 9.30339 13.3652 10.1667C12.7883 11.0301 11.9684 11.703 11.0091 12.1004C10.0498 12.4977 8.99418 12.6017 7.97578 12.3991C6.95738 12.1966 6.02192 11.6965 5.28769 10.9623C4.55347 10.2281 4.05345 9.29262 3.85088 8.27422C3.64831 7.25582 3.75227 6.20022 4.14963 5.24091C4.54699 4.2816 5.2199 3.46166 6.08326 2.88478Z\", fill: \"url(#user-multiple-gradient)\" }));\nexport default SvgUserMultipleGradient;\n","import { Box, Stack, SvgIcon, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport UserMultipleGradient from '@vp/assets/icons/UserMultipleGradient.svg?react';\n\nconst Title = 'У вас пока нет управляемых профилей';\nconst Caption =\n 'Вы можете приобрести наш специальный блистер с QR-кодом, который будет хранить тёплые воспоминания и важные моменты о ваших близких.';\n\nexport const NoProfiles: FC = () => {\n return (\n \n \n \n \n \n\n \n \n \n \n\n \n {Title}\n \n\n \n {Caption}\n \n \n );\n};\n","import { Box, Collapse, Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport UserMultiple from '@vp/assets/icons/UserMultiple.svg?react';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { AppMenuItemId, AppMenuItemModel } from '@vp/menu/ui/AppMenuItemModel';\nimport { AppMenuListItem } from '@vp/menu/ui/AppMenuListItem';\nimport { AppMenuProfileItem } from '@vp/menu/ui/profiles/AppMenuProfileItem';\nimport { AppMenuProfilesViewModel } from '@vp/menu/ui/profiles/AppMenuProfilesViewModel';\nimport { NoProfiles } from '@vp/menu/ui/profiles/NoProfiles';\n\nconst ProfilesItem: AppMenuItemModel = {\n id: AppMenuItemId.Profiles,\n text: 'Мои профили',\n Icon: UserMultiple,\n};\n\nexport const AppMenuProfiles: FC = () => {\n const viewModel = useViewModel(AppMenuProfilesViewModel);\n const maxHeight = viewModel.profiles.value.length ? 250 : undefined;\n\n return (\n \n \n\n \n \n {!!viewModel.profiles.value.length && (\n \n {viewModel.profiles.value.map(profile => (\n \n ))}\n \n )}\n\n {!viewModel.profiles.value.length && }\n \n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { AppMenuItemModel } from '@vp/menu/ui/AppMenuItemModel';\nimport { AppMenuListItem } from '@vp/menu/ui/AppMenuListItem';\nimport { AppMenuProfiles } from '@vp/menu/ui/profiles/AppMenuProfiles';\n\nexport interface AppMenuListProps {\n authenticated: boolean;\n items: AppMenuItemModel[];\n onItemClick: (item: AppMenuItemModel) => void;\n}\n\nexport const AppMenuList: FC = ({ authenticated, items, onItemClick }) => {\n return (\n \n {authenticated && }\n\n {items.map(item => (\n \n ))}\n \n );\n};\n","import * as React from \"react\";\nconst SvgEmail = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21 5H3C2.60218 5 2.22064 5.15804 1.93934 5.43934C1.65804 5.72064 1.5 6.10218 1.5 6.5V18.5C1.5 18.8978 1.65804 19.2794 1.93934 19.5607C2.22064 19.842 2.60218 20 3 20H21C21.3978 20 21.7794 19.842 22.0607 19.5607C22.342 19.2794 22.5 18.8978 22.5 18.5V6.5C22.5 6.10218 22.342 5.72064 22.0607 5.43934C21.7794 5.15804 21.3978 5 21 5ZM19.35 6.5L12 11.585L4.65 6.5H19.35ZM3 18.5V7.1825L11.5725 13.115C11.698 13.2021 11.8472 13.2488 12 13.2488C12.1528 13.2488 12.302 13.2021 12.4275 13.115L21 7.1825V18.5H3Z\", fill: \"currentColor\" }));\nexport default SvgEmail;\n","import { Stack, SvgIcon, Typography } from '@mui/material';\nimport { memo } from 'react';\n\nimport Email from '@vp/assets/icons/Email.svg?react';\n\nexport type AppMenuUserProps = {\n email: string;\n};\n\nexport const AppMenuUser = memo(({ email }) => {\n return (\n ({ color: theme.palette.text.primary })}>\n \n \n \n\n \n {email}\n \n \n );\n});\n\nAppMenuUser.displayName = 'AppMenuUser';\n","import { Box, Drawer, Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport Logo from '@vp/assets/icons/Logo.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { AppMenuList } from '@vp/menu/ui/AppMenuList';\nimport { AppMenuUser } from '@vp/menu/ui/AppMenuUser';\nimport { AppMenuViewModel } from '@vp/menu/ui/AppMenuViewModel';\n\nexport const AppMenu: FC = () => {\n const viewModel = useViewModel(AppMenuViewModel);\n\n return (\n ({\n width: { mobile: 1, desktop: '53%' },\n background: { mobile: theme.palette.background[200], desktop: theme.palette.background[300] },\n }),\n }}\n slotProps={{ backdrop: { sx: { background: 'transparent' } } }}\n onClose={viewModel.close}\n >\n \n ({\n mt: 1,\n position: 'absolute',\n top: { mobile: 0, tablet: theme.spacing(1) },\n left: { mobile: 0, tablet: theme.spacing(3) },\n [theme.breakpoints.up('desktop')]: { p: 1 },\n })}\n onClick={viewModel.close}\n />\n\n \n {viewModel.authenticated.value && }\n\n \n\n {viewModel.authenticated.value && }\n \n\n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgCheckmarkFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C9.9233 2 7.89323 2.61581 6.16652 3.76957C4.4398 4.92332 3.09399 6.5632 2.29927 8.48182C1.50455 10.4004 1.29661 12.5116 1.70176 14.5484C2.1069 16.5852 3.10693 18.4562 4.57538 19.9246C6.04383 21.3931 7.91476 22.3931 9.95156 22.7982C11.9884 23.2034 14.0996 22.9955 16.0182 22.2007C17.9368 21.406 19.5767 20.0602 20.7304 18.3335C21.8842 16.6068 22.5 14.5767 22.5 12.5C22.5 9.71523 21.3938 7.04451 19.4246 5.07538C17.4555 3.10625 14.7848 2 12 2ZM10.5 16.6931L6.75 12.9431L7.94296 11.75L10.5 14.3069L16.0575 8.75L17.2543 9.93943L10.5 16.6931Z\", fill: \"currentColor\" }));\nexport default SvgCheckmarkFilled;\n","import * as React from \"react\";\nconst SvgCloseFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 2C6.15 2 1.5 6.65 1.5 12.5C1.5 18.35 6.15 23 12 23C17.85 23 22.5 18.35 22.5 12.5C22.5 6.65 17.85 2 12 2ZM16.05 17.75L12 13.7L7.95 17.75L6.75 16.55L10.8 12.5L6.75 8.45L7.95 7.25L12 11.3L16.05 7.25L17.25 8.45L13.2 12.5L17.25 16.55L16.05 17.75Z\", fill: \"currentColor\" }));\nexport default SvgCloseFilled;\n","import * as React from \"react\";\nconst SvgStar = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 5.39L14.07 9.575L14.415 10.325L15.165 10.4375L19.785 11.105L16.5 14.33L15.9375 14.8775L16.0725 15.6275L16.86 20.225L12.7275 18.0575L12 17.75L11.3025 18.1175L7.16996 20.255L7.91996 15.6575L8.05496 14.9075L7.49996 14.33L4.18496 11.0675L8.80496 10.4L9.55496 10.2875L9.89996 9.5375L12 5.39ZM12 2L8.58746 8.915L0.959961 10.0175L6.47996 15.4025L5.17496 23L12 19.415L18.825 23L17.52 15.4025L23.04 10.025L15.4125 8.915L12 2Z\", fill: \"currentColor\" }));\nexport default SvgStar;\n","import * as React from \"react\";\nconst SvgWarningAltFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.4154 21.904L12.6654 3.15396C12.6021 3.03219 12.5065 2.93013 12.3892 2.8589C12.2719 2.78767 12.1373 2.75 12 2.75C11.8627 2.75 11.7281 2.78767 11.6108 2.8589C11.4935 2.93013 11.3979 3.03219 11.3346 3.15396L1.58461 21.904C1.52515 22.0183 1.49615 22.146 1.50041 22.2748C1.50466 22.4036 1.54203 22.5291 1.60889 22.6392C1.67576 22.7494 1.76988 22.8404 1.88218 22.9036C1.99447 22.9668 2.12115 23 2.25001 23H21.75C21.8789 23 22.0055 22.9668 22.1178 22.9036C22.2301 22.8404 22.3242 22.7494 22.3911 22.6392C22.458 22.5291 22.4953 22.4036 22.4996 22.2748C22.5039 22.146 22.4749 22.0183 22.4154 21.904ZM11.1563 8.75001H12.8438V16.25H11.1563V8.75001ZM12 20.75C11.7775 20.75 11.56 20.684 11.375 20.5604C11.19 20.4368 11.0458 20.2611 10.9606 20.0555C10.8755 19.85 10.8532 19.6238 10.8966 19.4055C10.94 19.1873 11.0472 18.9869 11.2045 18.8295C11.3618 18.6722 11.5623 18.565 11.7805 18.5216C11.9988 18.4782 12.225 18.5005 12.4305 18.5856C12.6361 18.6708 12.8118 18.815 12.9354 19C13.059 19.185 13.125 19.4025 13.125 19.625C13.125 19.9234 13.0065 20.2095 12.7955 20.4205C12.5845 20.6315 12.2984 20.75 12 20.75Z\", fill: \"currentColor\" }));\nexport default SvgWarningAltFilled;\n","import { Box, IconButton, Stack, styled, SvgIcon, Typography } from '@mui/material';\nimport { CustomContentProps, SnackbarContent, useSnackbar } from 'notistack';\nimport { forwardRef, FC, useCallback, Ref } from 'react';\n\nimport CheckmarkFilled from '@vp/assets/icons/CheckmarkFilled.svg?react';\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport CloseFilled from '@vp/assets/icons/CloseFilled.svg?react';\nimport InformationFilled from '@vp/assets/icons/InformationFilled.svg?react';\nimport Star from '@vp/assets/icons/Star.svg?react';\nimport WarningAltFilled from '@vp/assets/icons/WarningAltFilled.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nexport interface AppNotificationProps extends CustomContentProps {\n primaryMessage: string;\n secondaryMessage?: string;\n Icon?: FC;\n}\n\nconst Icons: Record = {\n success: CheckmarkFilled,\n info: InformationFilled,\n warning: WarningAltFilled,\n error: CloseFilled,\n primary: Star,\n};\n\ntype AppNotificationRootProps = Pick;\n\nconst AppNotificationRoot = styled(Box)(({ theme }) => ({\n position: 'relative',\n width: '100%',\n padding: theme.spacing(1.5),\n display: 'flex',\n alignItems: 'flex-start',\n borderRadius: '8px',\n background: getBackground(),\n '--vp-snackbar-background': theme.palette.background[300],\n variants: [\n {\n props: { variant: 'success' },\n style: { '--vp-snackbar-status-background': theme.palette.success.alpha24, '--vp-snackbar-action-color': theme.palette.success[500] },\n },\n {\n props: { variant: 'info' },\n style: { '--vp-snackbar-status-background': theme.palette.info.alpha24, '--vp-snackbar-action-color': theme.palette.info[500] },\n },\n {\n props: { variant: 'warning' },\n style: { '--vp-snackbar-status-background': theme.palette.warning.alpha24, '--vp-snackbar-action-color': theme.palette.warning[500] },\n },\n {\n props: { variant: 'error' },\n style: { '--vp-snackbar-status-background': theme.palette.danger.alpha24, '--vp-snackbar-action-color': theme.palette.danger[500] },\n },\n {\n props: { variant: 'primary' },\n style: {\n '--vp-snackbar-status-background': theme.palette.transparency.alpha8,\n '--vp-snackbar-action-color': theme.palette.primary[500],\n },\n },\n ],\n}));\n\nexport const AppNotification = forwardRef(function AppNotification(\n props: AppNotificationProps,\n ref: Ref,\n) {\n const { closeSnackbar } = useSnackbar();\n const { id, variant, message, secondaryMessage = '', Icon } = props;\n\n const close = useCallback(() => closeSnackbar(id), [closeSnackbar, id]);\n\n return (\n \n \n \n\n \n \n {message}\n \n \n {secondaryMessage}\n \n \n\n \n ({\n position: 'absolute',\n top: theme.spacing(1),\n right: theme.spacing(1),\n p: 1,\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n inset: theme.spacing(-2),\n background: 'transparent',\n },\n })}\n onClick={close}\n >\n ({ fontSize: 16, color: theme.palette.transparency.alpha48 })}>\n \n \n \n \n \n \n );\n});\n\nAppNotification.displayName = 'AppNotification';\n\nfunction getBackground(): string {\n const first = `linear-gradient(0deg, var(--vp-snackbar-status-background), var(--vp-snackbar-status-background))`;\n const second = `linear-gradient(0deg, var(--vp-snackbar-background), var(--vp-snackbar-background))`;\n return `${first}, ${second}`;\n}\n","import { SnackbarProvider } from 'notistack';\nimport { FC } from 'react';\n\nimport { AppNotification } from '@vp/notification/AppNotification';\n\nexport const AppNotificationOutlet: FC = () => {\n return (\n \n );\n};\n","import { Theme } from '@mui/material';\nimport { SystemStyleObject } from '@mui/system/styleFunctionSx/styleFunctionSx';\n\nexport const scrollbarStyles = (theme: Theme): SystemStyleObject => ({\n '::-webkit-scrollbar': {\n width: '4px',\n height: '4px',\n },\n '::-webkit-scrollbar-track': {\n backgroundColor: theme.palette.transparency.alpha16,\n },\n '::-webkit-scrollbar-thumb': {\n backgroundColor: theme.palette.transparency.alpha32,\n borderRadius: '3.5px',\n },\n});\n","import { Box, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { motion, MotionStyle, Variants } from 'motion/react';\nimport { FC, PropsWithChildren, useMemo } from 'react';\n\nconst pageVariants: Variants = {\n initial: {\n opacity: 0,\n },\n in: {\n opacity: 1,\n },\n out: {\n opacity: 0,\n },\n};\n\nexport interface VpFadeProps extends PropsWithChildren {\n duration?: number;\n style?: MotionStyle;\n sx?: SxProps;\n}\n\nexport const VpFade: FC = ({ children, duration = 0.5, style, sx }) => {\n const transition = useMemo(() => ({ type: 'tween', ease: 'easeInOut', duration }), [duration]);\n\n return (\n \n {children}\n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, PropsWithChildren } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\n\nexport const AuthPageContainer: FC = ({ children }) => {\n return (\n ({\n width: 1,\n display: 'flex',\n justifyContent: 'center',\n [theme.breakpoints.only('mobile')]: { px: 3 },\n })}\n >\n {children}\n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC, memo } from 'react';\n\nexport type AuthPageDescriptionProps = {\n title: string;\n description: string;\n};\n\nexport const AuthPageDescription: FC = memo(({ title, description }) => {\n return (\n \n \n {title}\n \n\n \n {description}\n \n \n );\n});\n\nAuthPageDescription.displayName = AuthPageDescription.name;\n","export const EmailValidationOptions = {\n required: 'Email обязателен',\n maxLength: {\n value: 50,\n message: 'Email слишком длинный, возможно Вы случайно вставили неверные данные',\n },\n pattern: {\n value: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n message: 'Некорректный email',\n },\n};\n","import { InternalStandardProps as StandardProps } from '@mui/material';\nimport { Typography } from '@mui/material/styles/createTypography';\nimport { styled, SxProps, Theme } from '@mui/system';\nimport { forwardRef, HTMLAttributes, MutableRefObject, useCallback, useLayoutEffect, useRef } from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\n\nexport type VpMultilineTextInputProps = {\n id?: string;\n variant?: 'large' | 'medium' | 'small' | 'x-small';\n status?: 'success' | 'danger';\n disabled?: boolean;\n placeholder?: string;\n registerReturn?: UseFormRegisterReturn;\n maxHeight?: number | string;\n sx?: SxProps;\n} & StandardProps>;\n\nconst VpMultilineTextInputRoot = styled('textarea', { name: 'VpMultilineTextInput' })<\n Pick\n>(({ theme }) => ({\n width: '100%',\n minWidth: 0,\n outline: 'none',\n resize: 'none',\n borderRadius: 0,\n border: '1px solid',\n borderColor: theme.palette.transparency.alpha16,\n transition: 'border-color 0.25s ease-in-out',\n WebkitTapHighlightColor: 'transparent',\n '&:active': {\n backgroundColor: 'initial',\n },\n '&:hover': {\n borderColor: theme.palette.transparency.alpha48,\n },\n '&:focus': {\n borderColor: theme.palette.primary[500],\n },\n background: 'transparent',\n color: theme.palette.text.primary,\n '&::placeholder': {\n color: theme.palette.transparency.alpha48,\n },\n '&:-webkit-autofill': {\n WebkitBoxShadow: 'none',\n WebkitTextFillColor: theme.palette.primary['500'],\n backgroundClip: 'text',\n },\n variants: [\n {\n props: { variant: 'x-small' },\n style: {\n minHeight: '86px',\n padding: `${theme.spacing(1)} ${theme.spacing(1.5)}`,\n ...(theme.typography as Typography)?.formPlaceholderXSmall,\n },\n },\n {\n props: { variant: 'small' },\n style: {\n minHeight: '100px',\n padding: `${theme.spacing(1.25)} ${theme.spacing(1.5)} ${theme.spacing(1.25)} ${theme.spacing(1.75)}`,\n ...(theme.typography as Typography)?.formPlaceholderSmall,\n },\n },\n {\n props: { variant: 'medium' },\n style: {\n minHeight: '120px',\n padding: `${theme.spacing(1.5)} ${theme.spacing(1.5)} ${theme.spacing(1.5)} ${theme.spacing(2)}`,\n ...(theme.typography as Typography)?.formPlaceholderMedium,\n },\n },\n {\n props: { variant: 'large' },\n style: {\n minHeight: '128px',\n padding: `${theme.spacing(2)} ${theme.spacing(1.5)} ${theme.spacing(2)} ${theme.spacing(2.5)}`,\n ...(theme.typography as Typography)?.formPlaceholderMedium,\n },\n },\n\n {\n props: { disabled: true },\n style: {\n opacity: 0.32,\n },\n },\n {\n props: { status: 'danger' },\n style: {\n borderColor: theme.palette.danger[500],\n },\n },\n {\n props: { status: 'success' },\n style: {\n borderColor: theme.palette.success[500],\n },\n },\n ],\n}));\n\nexport const VpMultilineTextInput = forwardRef((props, ref) => {\n const { id, variant, status, disabled, placeholder, registerReturn, maxHeight, sx, ...rest } = props;\n const overflow = maxHeight ? 'scroll' : 'hidden';\n const textareaRef = useRef(null) as MutableRefObject;\n\n const setRef = useCallback(\n (element: HTMLTextAreaElement) => {\n textareaRef.current = element;\n\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n\n registerReturn?.ref(element);\n },\n [ref, registerReturn],\n );\n\n useLayoutEffect(() => {\n const textarea = textareaRef.current;\n if (!textarea) return;\n\n const onInput = (): void => {\n textarea.style.height = 'auto';\n textarea.style.height = `${textarea.scrollHeight}px`;\n };\n\n onInput();\n textarea.addEventListener('input', onInput);\n\n return (): void => textarea.removeEventListener('input', onInput);\n }, []);\n\n return (\n \n );\n});\n\nVpMultilineTextInput.displayName = 'VpMultilineTextInput';\n","import { InternalStandardProps as StandardProps } from '@mui/material';\nimport { Typography } from '@mui/material/styles/createTypography';\nimport { styled, SxProps, Theme } from '@mui/system';\nimport { forwardRef, HTMLAttributes, MutableRefObject, ReactNode, useCallback, useRef } from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\n\nexport type VpTextInputProps = {\n id?: string;\n variant?: 'large' | 'medium' | 'small' | 'x-small';\n status?: 'success' | 'danger';\n type?: 'text' | 'email' | 'password';\n disabled?: boolean;\n placeholder?: string;\n endAdornment?: ReactNode;\n registerReturn?: UseFormRegisterReturn;\n sx?: SxProps;\n} & StandardProps>;\n\nconst VpTextInputRoot = styled('div', { name: 'VpTextInput' })>(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n border: '1px solid',\n borderColor: theme.palette.transparency.alpha16,\n transition: 'border-color 0.25s ease-in-out',\n '&:hover': {\n borderColor: theme.palette.transparency.alpha48,\n },\n '&:focus-within': {\n borderColor: theme.palette.primary[500],\n },\n '--vp-text-input-end-adornment-color': theme.palette.text.disabled,\n variants: [\n {\n props: { variant: 'x-small' },\n style: {\n padding: `${theme.spacing(0.75)} ${theme.spacing(1.5)}`,\n gap: theme.spacing(0.75),\n '--vp-text-input-end-adornment-size': '18px',\n },\n },\n {\n props: { variant: 'small' },\n style: {\n padding: `${theme.spacing(1)} ${theme.spacing(1.5)} ${theme.spacing(1)} ${theme.spacing(1.75)}`,\n gap: theme.spacing(1),\n '--vp-text-input-end-adornment-size': '20px',\n },\n },\n {\n props: { variant: 'medium' },\n style: {\n padding: `${theme.spacing(1.5)} ${theme.spacing(1.5)} ${theme.spacing(1.5)} ${theme.spacing(2)}`,\n gap: theme.spacing(1.25),\n '--vp-text-input-end-adornment-size': '22px',\n },\n },\n {\n props: { variant: 'large' },\n style: {\n padding: `${theme.spacing(2)} ${theme.spacing(1.5)} ${theme.spacing(2)} ${theme.spacing(2.5)}`,\n gap: theme.spacing(1.5),\n '--vp-text-input-end-adornment-size': '24px',\n },\n },\n\n {\n props: { disabled: true },\n style: {\n opacity: 0.32,\n },\n },\n {\n props: { status: 'danger' },\n style: {\n borderColor: theme.palette.danger[500],\n '--vp-text-input-end-adornment-color': theme.palette.danger[500],\n },\n },\n {\n props: { status: 'success' },\n style: {\n borderColor: theme.palette.success[500],\n '--vp-text-input-end-adornment-color': theme.palette.success[500],\n },\n },\n ],\n}));\n\nconst VpTextInputRaw = styled('input', { name: 'VpTextInput', slot: 'input' })>(({ theme }) => ({\n width: '100%',\n minWidth: 0,\n outline: 'none',\n border: 'none',\n padding: 0,\n background: 'transparent',\n color: theme.palette.text.primary,\n WebkitTapHighlightColor: 'transparent',\n '&:active': {\n backgroundColor: 'initial',\n },\n '&::placeholder': {\n color: theme.palette.transparency.alpha48,\n },\n '&:-webkit-autofill': {\n WebkitBoxShadow: 'none',\n WebkitTextFillColor: theme.palette.primary['500'],\n backgroundClip: 'text',\n },\n variants: [\n {\n props: { variant: 'x-small' },\n style: {\n ...(theme.typography as Typography)?.formPlaceholderXSmall,\n },\n },\n {\n props: { variant: 'small' },\n style: {\n ...(theme.typography as Typography)?.formPlaceholderSmall,\n },\n },\n {\n props: { variant: 'medium' },\n style: {\n ...(theme.typography as Typography)?.formPlaceholderMedium,\n },\n },\n {\n props: { variant: 'large' },\n style: {\n ...(theme.typography as Typography)?.formPlaceholderMedium,\n },\n },\n ],\n}));\n\nexport const VpTextInput = forwardRef((props, ref) => {\n const { id, variant = 'large', disabled, status, endAdornment, type = 'text', registerReturn, ...rest } = props;\n const inputRef = useRef(null) as MutableRefObject;\n const onClick = useCallback(() => inputRef.current?.focus(), []);\n\n const setRef = useCallback(\n (element: HTMLInputElement) => {\n inputRef.current = element;\n\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n ref.current = element;\n }\n\n registerReturn?.ref(element);\n },\n [ref, registerReturn],\n );\n\n return (\n \n \n {endAdornment}\n \n );\n});\n\nVpTextInput.displayName = 'VpTextInput';\n\nfunction configureInputType(type: NonNullable): Record {\n if (type !== 'email') {\n return { type };\n }\n\n return {\n type: 'email',\n autoComplete: 'email',\n autoCorrect: 'off',\n autoCapitalize: 'none',\n spellCheck: false,\n };\n}\n","import { Typography } from '@mui/material/styles/createTypography';\nimport { styled, SxProps, Theme } from '@mui/system';\nimport { forwardRef, useImperativeHandle, useRef } from 'react';\n\nimport { VpMultilineTextInput, VpMultilineTextInputProps } from '@vp/common/ui/component/form/VpMultilineTextInput';\nimport { VpTextInput, VpTextInputProps } from '@vp/common/ui/component/form/VpTextInput';\n\nexport type VpTextFieldProps = {\n id: string;\n label?: string;\n error?: string | boolean;\n caption?: string;\n captionPosition?: 'static' | 'absolute';\n fullWidth?: boolean;\n variant?: VpTextInputProps['variant'];\n status?: VpTextInputProps['status'];\n disabled?: boolean;\n sx?: SxProps;\n multiline?: boolean;\n slotProps?: {\n input?: VpTextInputProps;\n multilineInput?: VpMultilineTextInputProps;\n };\n};\n\nconst VpTextFieldRoot = styled('div', { name: 'VpTextField' })>(() => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n variants: [{ props: { fullWidth: true }, style: { width: '100%' } }],\n}));\n\nconst VpTextFieldLabel = styled('label', {\n name: 'VpTextField',\n slot: 'label',\n})>(({ theme }) => ({\n color: theme.palette.text.primary,\n WebkitTapHighlightColor: 'transparent',\n '&:active': {\n backgroundColor: 'initial',\n },\n variants: [\n {\n props: { variant: 'x-small' },\n style: (theme.typography as Typography)?.formLabelSmall,\n },\n {\n props: { variant: 'small' },\n style: (theme.typography as Typography)?.formLabelSmall,\n },\n {\n props: { variant: 'medium' },\n style: (theme.typography as Typography)?.formLabelMedium,\n },\n {\n props: { variant: 'large' },\n style: (theme.typography as Typography)?.formLabelMedium,\n },\n ],\n}));\n\nconst VpTextFieldCaption = styled('span')>(({ theme }) => ({\n color: theme.palette.text.disabled,\n variants: [\n {\n props: { variant: 'x-small' },\n style: (theme.typography as Typography)?.caption1Regular,\n },\n {\n props: { variant: 'small' },\n style: (theme.typography as Typography)?.caption1Regular,\n },\n {\n props: { variant: 'medium' },\n style: (theme.typography as Typography)?.body2Regular,\n },\n {\n props: { variant: 'large' },\n style: (theme.typography as Typography)?.body2Regular,\n },\n\n {\n props: { status: 'success' },\n style: {\n color: theme.palette.success[500],\n },\n },\n {\n props: { status: 'danger' },\n style: {\n color: theme.palette.danger[500],\n },\n },\n\n {\n props: { captionPosition: 'absolute' },\n style: {\n width: '100%',\n position: 'absolute',\n top: `calc(100% + ${theme.spacing(0.75)})`,\n },\n },\n ],\n}));\n\nexport const VpTextField = forwardRef((props, ref) => {\n const status = resolveStatus(props);\n const disabled = resolveDisabled(props);\n const variant = resolveVariant(props);\n const { id, label, fullWidth, caption, error, slotProps, sx, captionPosition = 'static', multiline = false } = props;\n const inputProps: VpTextInputProps = { id, ...slotProps?.input, variant, status, disabled };\n const multilineInputProps: VpMultilineTextInputProps = {\n id,\n ...slotProps?.multilineInput,\n variant,\n status,\n disabled,\n };\n\n const inputRef = useRef(null!);\n const multilineInputRef = useRef(null!);\n\n useImperativeHandle(ref, () => (multiline ? multilineInputRef.current : inputRef.current));\n\n return (\n \n {label && (\n \n {label}\n \n )}\n\n {multiline && }\n {!multiline && }\n\n {caption && !error && (\n \n {caption}\n \n )}\n\n {typeof error === 'string' && (\n \n {error}\n \n )}\n \n );\n});\n\nVpTextField.displayName = 'VpTextField';\n\nfunction resolveStatus(props: VpTextFieldProps): VpTextInputProps['status'] {\n if (props.error) {\n return 'danger';\n }\n\n if (props.multiline) {\n return props.slotProps?.multilineInput?.status || props.status;\n }\n\n return props.slotProps?.input?.status || props.status;\n}\n\nfunction resolveDisabled(props: VpTextFieldProps): boolean {\n const inputDisabled = props.multiline ? props.slotProps?.multilineInput?.disabled : props.slotProps?.input?.disabled;\n\n if (inputDisabled != null) {\n return inputDisabled;\n }\n\n if (props.disabled != null) {\n return props.disabled;\n }\n\n return false;\n}\n\nfunction resolveVariant(props: VpTextFieldProps): NonNullable {\n const inputVariant = props.multiline ? props.slotProps?.multilineInput?.variant : props.slotProps?.input?.variant;\n\n if (inputVariant != null) {\n return inputVariant;\n }\n\n return props.variant || 'large';\n}\n","import { CSSObject } from '@mui/styled-engine';\n\nimport { VpSpinnerProps } from '@vp/common/ui/component/spinner/VpSpinner';\n\ninterface Range {\n min: number;\n max: number;\n border: number;\n}\n\ninterface Variant {\n props: VpSpinnerProps;\n style: CSSObject;\n}\n\nexport class SpinnerBorderCalculator {\n constructor(private readonly ranges: Range[]) {}\n\n getBorder(diameter: number): number {\n for (const range of this.ranges) {\n if (diameter >= range.min && diameter < range.max) {\n return range.border;\n }\n }\n throw new Error('Diameter out of supported range');\n }\n}\n\nexport class SpinnerResolver {\n constructor(private readonly borderCalculator: SpinnerBorderCalculator) {}\n\n resolveWith(diameter: number, border: number): CSSObject {\n const maskRadius = diameter / 2 - border;\n const maskImage = `radial-gradient(circle, transparent ${maskRadius}px, black ${maskRadius + 1}px)`;\n return { width: diameter, height: diameter, maskImage };\n }\n\n getVariantsRange(from: number, to: number): Variant[] {\n const variants: Variant[] = [];\n\n for (let size = from; size <= to; size++) {\n const border = this.borderCalculator.getBorder(size);\n const style = this.resolveWith(size, border);\n variants.push({ props: { size }, style });\n }\n\n return variants;\n }\n}\n","import { Box, styled } from '@mui/material';\nimport { FC } from 'react';\n\nimport { SpinnerBorderCalculator, SpinnerResolver } from '@vp/common/ui/component/spinner/SpinnerResolver';\n\nexport interface VpSpinnerProps {\n size?: 'x-small' | 'small' | 'medium' | 'large' | 'x-large' | 'giant' | number;\n}\n\nconst spinAnimation = {\n '@keyframes spin': {\n '0%': {\n transform: 'rotate(0deg)',\n },\n '100%': {\n transform: 'rotate(360deg)',\n },\n },\n};\n\nconst borderCalculator = new SpinnerBorderCalculator([\n { min: 0, max: 24, border: 3 },\n { min: 24, max: 48, border: 4 },\n { min: 48, max: Infinity, border: 6 },\n]);\n\nconst resolver = new SpinnerResolver(borderCalculator);\n\nconst VpSpinnerRoot = styled(Box)(() => ({\n display: 'inline-block',\n borderRadius: '50%',\n background: 'conic-gradient(from 180deg at 50% 50%, rgba(255, 255, 255, 0) 0deg, var(--vp-text-color, #FBF1E8) 360deg)',\n animation: 'spin 1s linear infinite',\n ...spinAnimation,\n variants: [\n { props: { size: 'x-small' }, style: resolver.resolveWith(16, 3) },\n { props: { size: 'small' }, style: resolver.resolveWith(20, 3) },\n { props: { size: 'medium' }, style: resolver.resolveWith(24, 4) },\n { props: { size: 'large' }, style: resolver.resolveWith(28, 4) },\n { props: { size: 'x-large' }, style: resolver.resolveWith(32, 4) },\n { props: { size: 'giant' }, style: resolver.resolveWith(48, 6) },\n ...resolver.getVariantsRange(16, 48),\n ],\n}));\n\nexport const VpSpinner: FC = ({ size = 'small' }) => {\n return ;\n};\n","import { useEffect, useState } from 'react';\n\nexport function useFalsyStateDelay(state: T, delay: number): T {\n const [delayedState, setDelayedState] = useState(state);\n\n useEffect(() => {\n let timeout: number;\n\n if (state) {\n setDelayedState(state);\n } else {\n timeout = setTimeout(() => setDelayedState(state), delay);\n }\n\n return (): void => clearTimeout(timeout);\n }, [delay, state]);\n\n return delayedState;\n}\n","import { Box, ButtonBase, styled, Typography, TypographyOwnProps, useTheme } from '@mui/material';\nimport { alpha, Theme } from '@mui/system';\nimport { AnimatePresence } from 'motion/react';\nimport { CSSProperties, FC, Fragment, SVGProps, useMemo } from 'react';\nimport { Link as RouterLink, To } from 'react-router-dom';\n\nimport { VpSpinner } from '@vp/common/ui/component/spinner/VpSpinner';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { FileUploadProps, VpHiddenFileInput } from '@vp/common/ui/component/VpHiddenFileInput';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\n\ntype BaseButtonProps = Parameters[0];\n\nexport type VpFancyButtonProps = BaseButtonProps & {\n text: string;\n size?: 'large' | 'medium' | 'small';\n loading?: boolean;\n to?: To;\n Icon?: FC>;\n fileUpload?: FileUploadProps;\n};\n\nconst VpFancyButtonRoot = styled(Box)>>(() => ({\n display: 'inline-flex',\n variants: [\n { props: { size: 'small' }, style: { width: 184 } },\n { props: { size: 'medium' }, style: { width: 303 } },\n { props: { size: 'large' }, style: { width: 311 } },\n ],\n}));\n\nconst VpFancyButtonBase = styled(ButtonBase)>>(({ theme }) => ({\n width: '100%',\n position: 'relative',\n willChange: 'opacity',\n margin: `${theme.spacing(0.875)} 0`,\n '&::after': getGlow(theme),\n transition: `opacity 0.25s ease-in-out`,\n '&.Mui-disabled': { opacity: 0.32 },\n '&::before': { content: '\"\"', position: 'absolute', inset: `-2px 0`, ...getBorder(theme) },\n variants: [\n { props: { size: 'small' }, style: { padding: `${theme.spacing(1.25)} ${theme.spacing(2)}` } },\n { props: { size: 'medium' }, style: { padding: `${theme.spacing(1.625)} ${theme.spacing(2.5)}` } },\n { props: { size: 'large' }, style: { padding: `${theme.spacing(2)} ${theme.spacing(3)}` } },\n ],\n}));\n\nconst VpFancyButtonText = styled(Typography)>>(({ theme }) => ({\n color: theme.palette.primary[500],\n variants: [\n { props: { size: 'small' }, style: theme.typography.buttonMedium },\n { props: { size: 'medium' }, style: theme.typography.buttonLarge },\n { props: { size: 'large' }, style: theme.typography.buttonGiant },\n ],\n}));\n\nconst SizeToNumber = {\n small: 20,\n medium: 22,\n large: 24,\n};\n\nexport const VpFancyButton: FC = ({ text, size = 'medium', Icon, loading = false, sx, fileUpload, ...props }) => {\n const theme = useTheme();\n const delayedLoading = useFalsyStateDelay(loading, 250);\n const fadeKey = `${delayedLoading},${text}`;\n\n const border = useMemo(() => getBorder(theme), [theme]);\n const glow = useMemo(() => getGlow(theme), [theme]);\n\n return (\n \n \n \n \n {!delayedLoading && (\n \n {Icon && }\n\n \n {text}\n \n \n )}\n\n {delayedLoading && }\n \n \n\n \n {fileUpload && }\n \n \n );\n};\n\nfunction getBorder(theme: Theme): CSSProperties {\n const color = theme.palette.primary[500] as string;\n const gradient = `linear-gradient(93.17deg, ${alpha(color, 0.7)} 1.37%, ${alpha(color, 0.5)} 50.9%, ${alpha(color, 0.1)} 105.12%)`;\n\n return {\n boxSizing: 'border-box',\n border: '2px solid',\n borderImageSlice: 1,\n borderImageSource: gradient,\n };\n}\n\nfunction getGlow(theme: Theme): CSSProperties {\n if (theme.palette.mode === 'light') {\n return {};\n }\n\n return {\n ...getBorder(theme),\n content: '\"\"',\n inset: -2,\n zIndex: -1,\n position: 'absolute',\n filter: 'blur(10px)',\n };\n}\n","import { Stack } from '@mui/material';\nimport { FC } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { ForgotPasswordFormData, ForgotPasswordViewModel } from '@vp/auth/ui/forgot-password/ForgotPasswordViewModel';\nimport { EmailValidationOptions } from '@vp/auth/ui/validation/EmailValidationOptions';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\n\nexport const ForgotPasswordForm: FC = () => {\n const viewModel = useViewModel(ForgotPasswordViewModel);\n\n const { register, handleSubmit, formState } = useForm({\n defaultValues: { email: '' },\n mode: 'onTouched',\n });\n\n return (\n \n \n\n \n \n );\n};\n","import { FC } from 'react';\n\nimport { AuthPageContainer } from '@vp/auth/ui/AuthPageContainer';\nimport { AuthPageDescription } from '@vp/auth/ui/AuthPageDescription';\nimport { ForgotPasswordForm } from '@vp/auth/ui/forgot-password/ForgotPasswordForm';\n\nexport const ForgotPasswordPage: FC = () => {\n return (\n \n \n\n \n \n );\n};\n","import * as React from \"react\";\nconst SvgViewOff = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18.9001 6.665C20.8486 8.06527 22.345 10.0049 23.205 12.245C23.2646 12.4098 23.2646 12.5902 23.205 12.755C22.3229 15.0368 20.7915 17.01 18.8001 18.4309C16.8088 19.8518 14.4447 20.6581 12 20.75C10.0231 20.7181 8.08796 20.1755 6.38255 19.175L2.55755 23L1.50005 21.9425L21.4426 2L22.5 3.0575L18.9001 6.665ZM14.5914 13.9937C14.856 13.5401 14.9969 13.0251 15 12.5C14.9946 11.9717 14.8497 11.4543 14.58 11L10.5 15.08C10.9548 15.3426 11.4705 15.4812 11.9955 15.482C12.5206 15.4827 13.0367 15.3457 13.4923 15.0845C13.9478 14.8234 14.3268 14.4472 14.5914 13.9937ZM7.50005 18.065C8.88297 18.816 10.4266 19.2225 12 19.25C15.975 19.25 20.175 16.3025 21.6975 12.5C20.8868 10.5766 19.541 8.92624 17.82 7.745L15.6675 9.8975C16.2688 10.764 16.5466 11.8142 16.4524 12.8646C16.3582 13.915 15.8981 14.899 15.1524 15.6448C14.4066 16.3906 13.4226 16.8507 12.3721 16.9449C11.3217 17.039 10.2716 16.7612 9.40505 16.16L7.50005 18.065ZM3.93005 17.3825L5.00255 16.3175C3.82821 15.2631 2.90553 13.9585 2.30255 12.5C3.82505 8.6975 8.02505 5.75 12 5.75C13.023 5.7635 14.0366 5.94596 15 6.29L16.1625 5.12C14.8445 4.56299 13.4308 4.26751 12 4.25C9.55543 4.34193 7.19134 5.14817 5.19995 6.56906C3.20856 7.98996 1.67717 9.96324 0.795047 12.245C0.735473 12.4098 0.735473 12.5902 0.795047 12.755C1.46123 14.5228 2.53537 16.1083 3.93005 17.3825ZM9.00005 12.2978C9.05221 11.5791 9.36132 10.9032 9.87086 10.3937C10.3804 9.88411 11.0563 9.575 11.775 9.52285L13.1326 8.15785C12.3719 7.95755 11.572 7.96016 10.8126 8.16539C10.0533 8.37063 9.36096 8.77133 8.80475 9.32754C8.24853 9.88376 7.84783 10.5761 7.6426 11.3354C7.43736 12.0948 7.43476 12.8947 7.63505 13.6553L9.00005 12.2978Z\", fill: \"currentColor\" }));\nexport default SvgViewOff;\n","import { IconButton } from '@mui/material';\nimport { FC, MouseEvent, useCallback } from 'react';\n\nimport View from '@vp/assets/icons/View.svg?react';\nimport ViewOff from '@vp/assets/icons/ViewOff.svg?react';\n\nexport interface ViewPasswordIconProps {\n showPassword: boolean;\n onClick: () => void;\n}\n\nexport const ViewPasswordIcon: FC = ({ showPassword, onClick }) => {\n const handleMouseDownPassword = useCallback((event: MouseEvent) => event.preventDefault(), []);\n\n return (\n ({\n fontSize: 'var(--vp-text-input-end-adornment-size)',\n color: 'var(--vp-text-input-end-adornment-color)',\n p: 0,\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n zIndex: 1,\n inset: `-${spacing(2)} -${spacing(1.5)} -${spacing(2)} -${spacing(1.5)}`,\n },\n })}\n onClick={onClick}\n onMouseDown={handleMouseDownPassword}\n >\n {showPassword ? : }\n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\nimport { useForm, RegisterOptions } from 'react-hook-form';\nimport { Link } from 'react-router-dom';\n\nimport { LoginFormData, LoginViewModel } from '@vp/auth/ui/login/LoginViewModel';\nimport { ViewPasswordIcon } from '@vp/auth/ui/register/ViewPasswordIcon';\nimport { EmailValidationOptions } from '@vp/auth/ui/validation/EmailValidationOptions';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\n\nconst PasswordValidationOptions: RegisterOptions = {\n required: true,\n maxLength: 24,\n};\n\nexport const LoginForm: FC = () => {\n const viewModel = useViewModel(LoginViewModel);\n\n const { register, handleSubmit, formState } = useForm({\n defaultValues: { email: '', password: '' },\n mode: 'onTouched',\n });\n\n const [showPassword, setShowPassword] = useState(false);\n const passwordInputType = showPassword ? 'text' : 'password';\n\n const handleClickShowPassword = useCallback(() => setShowPassword(state => !state), []);\n\n return (\n \n \n\n ,\n },\n }}\n />\n\n \n Забыли пароль?\n \n\n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { AuthPageContainer } from '@vp/auth/ui/AuthPageContainer';\nimport { AuthPageDescription } from '@vp/auth/ui/AuthPageDescription';\nimport { LoginForm } from '@vp/auth/ui/login/LoginForm';\n\nexport const LoginPage: FC = () => {\n return (\n \n \n \n\n \n \n Нет аккаунта?\n \n\n \n Зарегистрироваться\n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nexport const RegisterLoginNavigation: FC = () => (\n \n \n Уже есть аккаунт?\n \n\n \n Войти\n \n \n);\n","export const PasswordValidationOptions = {\n required: 'Пароль должен содержать от 8 до 24 символов',\n minLength: {\n value: 8,\n message: 'Пароль должен содержать не менее 8 символов',\n },\n maxLength: {\n value: 24,\n message: 'Пароль должен содержать не более 24 символов',\n },\n pattern: {\n value: /^[A-Za-z0-9!@#$%^&*()_+]+$/,\n message: 'Пароль должен содержать только латинские буквы, цифры или специальные символы',\n },\n};\n","import * as React from \"react\";\nconst SvgCheckmark = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M9.75 18.5L3 11.75L4.0605 10.6895L9.75 16.3783L19.9395 6.18951L21 7.25001L9.75 18.5Z\", fill: \"currentColor\" }));\nexport default SvgCheckmark;\n","import Box from '@mui/material/Box';\nimport Checkbox, { CheckboxProps } from '@mui/material/Checkbox';\nimport SvgIcon from '@mui/material/SvgIcon';\nimport { FC } from 'react';\nimport type { UseFormRegisterReturn } from 'react-hook-form';\n\nimport Checkmark from '@vp/assets/icons/Checkmark.svg?react';\n\nconst CheckedIcon: FC = () => {\n return (\n ({ width: 20, height: 20, backgroundColor: theme.palette.primary[500] })}>\n ({ width: 16, height: 16, color: theme.palette.background[300], m: 0.25 })}>\n \n \n \n );\n};\n\nconst UncheckedIcon: FC = () => {\n return (\n ({\n width: 20,\n height: 20,\n boxSizing: 'border-box',\n border: '1px solid',\n borderColor: theme.palette.transparency.alpha24,\n })}\n />\n );\n};\n\nexport type VpCheckboxProps = CheckboxProps & {\n registerReturn?: UseFormRegisterReturn;\n};\n\nexport const VpCheckbox: FC = ({ registerReturn, ...props }) => {\n return } checkedIcon={} {...props} {...registerReturn}>;\n};\n","import { FormControl, Stack, Typography } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { RegisterLoginNavigation } from '@vp/auth/ui/register/RegisterLoginNavigation';\nimport { RegisterFormData, RegisterViewModel } from '@vp/auth/ui/register/RegisterViewModel';\nimport { ViewPasswordIcon } from '@vp/auth/ui/register/ViewPasswordIcon';\nimport { EmailValidationOptions } from '@vp/auth/ui/validation/EmailValidationOptions';\nimport { PasswordValidationOptions } from '@vp/auth/ui/validation/PasswordValidationOptions';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpCheckbox } from '@vp/common/ui/component/VpCheckbox';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\n\nexport const RegisterForm: FC = () => {\n const viewModel = useViewModel(RegisterViewModel);\n\n const { register, handleSubmit, formState, watch } = useForm({\n defaultValues: { email: '', password: '', passwordConfirmation: '', termsAndCondition: false, rights: false },\n mode: 'onTouched',\n });\n\n const password = watch('password');\n const [showPassword, setShowPassword] = useState(false);\n const passwordInputType = showPassword ? 'text' : 'password';\n\n const handleClickShowPassword = useCallback(() => setShowPassword(state => !state), []);\n\n return (\n \n \n\n ,\n },\n }}\n />\n\n value === password || 'Пароли не совпадают',\n }),\n endAdornment: ,\n },\n }}\n />\n\n \n \n \n\n \n Я соглашаюсь с{' '}\n \n условиями использования\n {' '}\n и{' '}\n \n политикой конфиденциальности\n \n .\n \n \n\n {formState.errors.termsAndCondition?.message && (\n \n {formState.errors.termsAndCondition.message}\n \n )}\n \n\n \n \n \n\n \n Пользователь подтверждает, что обладает всеми необходимыми правами на размещение фото-, видео-, аудио- и текстовых материалов в\n создаваемом профиле и несёт полную ответственность за их размещение.\n \n \n\n {formState.errors.rights?.message && (\n \n {formState.errors.rights.message}\n \n )}\n \n\n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport { AuthPageContainer } from '@vp/auth/ui/AuthPageContainer';\nimport { AuthPageDescription } from '@vp/auth/ui/AuthPageDescription';\nimport { RegisterForm } from '@vp/auth/ui/register/RegisterForm';\n\nexport const RegisterPage: FC = () => {\n return (\n \n \n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { ViewPasswordIcon } from '@vp/auth/ui/register/ViewPasswordIcon';\nimport { RestorePasswordFormData, RestorePasswordViewModel } from '@vp/auth/ui/restore-password/RestorePasswordViewModel';\nimport { PasswordValidationOptions } from '@vp/auth/ui/validation/PasswordValidationOptions';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\n\nexport const RestorePasswordForm: FC = () => {\n const viewModel = useViewModel(RestorePasswordViewModel);\n\n const { register, handleSubmit, formState, watch } = useForm({\n defaultValues: { password: '', passwordConfirmation: '' },\n mode: 'onTouched',\n });\n\n const password = watch('password');\n const [showPassword, setShowPassword] = useState(false);\n const passwordInputType = showPassword ? 'text' : 'password';\n\n const handleClickShowPassword = useCallback(() => setShowPassword(state => !state), []);\n\n return (\n \n ,\n },\n }}\n />\n\n value === password || 'Пароли не совпадают',\n }),\n endAdornment: ,\n },\n }}\n />\n\n \n \n );\n};\n","import { FC } from 'react';\n\nimport { AuthPageContainer } from '@vp/auth/ui/AuthPageContainer';\nimport { AuthPageDescription } from '@vp/auth/ui/AuthPageDescription';\nimport { RestorePasswordForm } from '@vp/auth/ui/restore-password/RestorePasswordForm';\n\nexport const RestorePasswordPage: FC = () => {\n return (\n \n \n \n \n );\n};\n","import { RouteObject } from 'react-router';\nimport { Navigate } from 'react-router-dom';\n\nimport { ForgotPasswordPage } from '@vp/auth/ui/forgot-password/ForgotPasswordPage';\nimport { LoginPage } from '@vp/auth/ui/login/LoginPage';\nimport { RegisterPage } from '@vp/auth/ui/register/RegisterPage';\nimport { RestorePasswordPage } from '@vp/auth/ui/restore-password/RestorePasswordPage';\n\nexport const AuthRouter: RouteObject = {\n path: 'auth',\n children: [\n {\n path: 'register',\n element: ,\n },\n {\n path: 'login',\n element: ,\n },\n {\n path: 'forgot-password',\n element: ,\n },\n {\n path: 'restore-password',\n element: ,\n },\n {\n path: '',\n element: ,\n },\n ],\n};\n","import * as React from \"react\";\nconst SvgWarningAltGradient = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"warning-alt-gradient\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"0%\", gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: \"1.37%\", stopColor: \"rgba(229, 229, 229, 0.7)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"50.9%\", stopColor: \"rgba(229, 229, 229, 0.5)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"105.12%\", stopColor: \"rgba(229, 229, 229, 0.1)\" }))), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M1.88218 22.9036C1.99447 22.9668 2.12115 23 2.25001 23H21.75C21.8789 23 22.0055 22.9668 22.1178 22.9036C22.2301 22.8404 22.3242 22.7494 22.3911 22.6392C22.458 22.5291 22.4953 22.4036 22.4996 22.2748C22.5039 22.146 22.4749 22.0183 22.4154 21.904L12.6654 3.15396C12.6021 3.03219 12.5065 2.93013 12.3892 2.8589C12.2719 2.78767 12.1373 2.75 12 2.75C11.8627 2.75 11.7281 2.78767 11.6108 2.8589C11.4935 2.93013 11.3979 3.03219 11.3346 3.15396L1.58461 21.904C1.52515 22.0183 1.49615 22.146 1.50041 22.2748C1.50466 22.4036 1.54203 22.5291 1.60889 22.6392C1.67576 22.7494 1.76988 22.8404 1.88218 22.9036ZM20.512 21.5H3.48803L3.48653 21.4975L11.9985 5.12856H12.0015L20.5135 21.4975L20.512 21.5ZM12.75 9.5H11.25V16.25H12.75V9.5ZM12 17.75C11.7775 17.75 11.56 17.816 11.375 17.9396C11.19 18.0632 11.0458 18.2389 10.9606 18.4445C10.8755 18.65 10.8532 18.8762 10.8966 19.0945C10.94 19.3127 11.0472 19.5132 11.2045 19.6705C11.3618 19.8278 11.5623 19.935 11.7805 19.9784C11.9988 20.0218 12.225 19.9995 12.4305 19.9144C12.6361 19.8292 12.8118 19.685 12.9354 19.5C13.059 19.315 13.125 19.0975 13.125 18.875C13.125 18.5766 13.0065 18.2905 12.7955 18.0795C12.5845 17.8685 12.2984 17.75 12 17.75Z\", fill: \"url(#warning-alt-gradient)\" }));\nexport default SvgWarningAltGradient;\n","import { Stack, Typography } from '@mui/material';\nimport { FC, useCallback } from 'react';\n\nimport WarningAltGradient from '@vp/assets/icons/WarningAltGradient.svg?react';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nexport interface VpFallbackProps {\n title: string;\n text?: string;\n showRefresh?: boolean;\n}\n\nexport const VpFallback: FC = ({ title, text, showRefresh }) => {\n showRefresh ??= false;\n const onRefresh = useCallback(() => window.location.reload(), []);\n\n return (\n \n \n \n\n \n {title}\n \n {text && (\n \n {text}\n \n )}\n {showRefresh && }\n \n \n );\n};\n","import { Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nconst Text = {\n mobile:\n 'Соберите и сохраните память \\nо своих близких для поколений. Проживайте заветные воспоминания \\nс помощью фотографий, видео и историй при каждом сканировании наших мемориалов с QR-кодом.',\n desktop:\n 'Соберите и сохраните память о своих близких для поколений. Проживайте заветные воспоминания \\nс помощью фотографий, видео и историй при каждом сканировании наших мемориалов с QR-кодом.',\n};\n\nexport const LandingDescription: FC = () => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n const text = isMobile ? Text.mobile : Text.desktop;\n\n return (\n \n {text}\n \n );\n};\n","import { Link, LinkProps } from '@mui/material';\nimport { FC } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\n\nexport interface SphinxLinkProps extends LinkProps {\n text: string;\n to: string;\n}\n\nexport const VpLink: FC = ({ text, to, ...props }) => {\n return (\n \n {text}\n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpLink } from '@vp/common/ui/component/VpLink';\n\nexport const LandingNavigation: FC = () => {\n return (\n \n \n\n \n \n Уже есть аккаунт?\n \n\n \n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nexport const LandingSlogan: FC = () => {\n return (\n \n Вдохновляя Будущее{' '}\n \n Прошлым\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { LandingDescription } from '@vp/landing/LandingDescription';\nimport { LandingNavigation } from '@vp/landing/LandingNavigation';\nimport { LandingSlogan } from '@vp/landing/LandingSlogan';\n\nexport const LandingPage: FC = () => {\n return (\n ({\n width: 1,\n height: '100dvh',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n [theme.breakpoints.only('mobile')]: {\n px: 3,\n pb: 1,\n alignItems: 'flex-end',\n },\n })}\n >\n \n \n \n \n \n\n \n \n \n );\n};\n","import { RouteObject } from 'react-router';\nimport { Navigate } from 'react-router-dom';\n\nimport { LandingPage } from '@vp/landing/LandingPage';\n\nexport const LandingRouter: RouteObject = {\n path: '',\n children: [\n {\n path: 'landing',\n element: ,\n },\n {\n path: '',\n element: ,\n },\n ],\n};\n","import { FC, PropsWithChildren } from 'react';\n\nimport { GuardViewModel } from '@vp/auth/ui/guard/GuardViewModel';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\n\n\nexport const AuthGuard: FC = ({ children }) => {\n const viewModel = useViewModel(GuardViewModel);\n if (!viewModel.authenticated.value) return null;\n return children;\n};\n","import { ButtonBase, styled } from '@mui/material';\nimport { alpha, Theme } from '@mui/system';\nimport { AnimatePresence } from 'motion/react';\nimport { FC } from 'react';\nimport { Link as RouterLink, To } from 'react-router-dom';\n\nimport { VpSpinner } from '@vp/common/ui/component/spinner/VpSpinner';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { FileUploadProps, VpHiddenFileInput } from '@vp/common/ui/component/VpHiddenFileInput';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\n\ntype BaseButtonProps = Parameters[0];\n\nexport type VpButtonProps = BaseButtonProps & {\n to?: To;\n text: string;\n loading?: boolean;\n fileUpload?: FileUploadProps;\n status: 'primary' | 'overlay';\n variant: 'solid' | 'soft' | 'outlined';\n size: 'large' | 'medium' | 'small' | 'x-small';\n};\n\nconst VpButtonRoot = styled(ButtonBase)>>(({ theme }) => ({\n transition: `opacity 0.25s ease-in-out`,\n '&.Mui-disabled': { opacity: 0.32 },\n variants: [\n {\n props: { size: 'x-small' },\n style: {\n padding: `${theme.spacing(0.875)} ${theme.spacing(1.5)}`,\n ...theme.typography.buttonSmall,\n },\n },\n {\n props: { size: 'small' },\n style: {\n padding: `${theme.spacing(1.25)} ${theme.spacing(2)}`,\n ...theme.typography.buttonMedium,\n },\n },\n {\n props: { size: 'medium' },\n style: {\n padding: `${theme.spacing(1.625)} ${theme.spacing(2.5)}`,\n ...theme.typography.buttonLarge,\n },\n },\n {\n props: { size: 'large' },\n style: {\n padding: `${theme.spacing(2)} ${theme.spacing(3)}`,\n ...theme.typography.buttonGiant,\n },\n },\n\n {\n props: { status: 'primary', variant: 'solid' },\n style: {\n backgroundColor: theme.palette.primary[500],\n '--vp-text-color': theme.palette.background[300],\n color: 'var(--vp-text-color)',\n },\n },\n {\n props: { status: 'primary', variant: 'soft' },\n style: {\n backgroundColor: theme.palette.primary.alpha16,\n '--vp-text-color': theme.palette.text.secondary,\n color: 'var(--vp-text-color)',\n },\n },\n {\n props: { status: 'primary', variant: 'outlined' },\n style: {\n backgroundColor: 'transparent',\n '--vp-text-color': theme.palette.primary[500],\n color: 'var(--vp-text-color)',\n border: '2px solid',\n borderImageSource: getGradient(theme),\n borderImageSlice: 1,\n },\n },\n\n {\n props: { status: 'overlay', variant: 'solid' },\n style: {\n backgroundColor: theme.palette.background[300],\n '--vp-text-color': theme.palette.text.primary,\n color: 'var(--vp-text-color)',\n },\n },\n {\n props: { status: 'overlay', variant: 'soft' },\n style: {\n backgroundColor: theme.palette.transparency.alpha8,\n '--vp-text-color': theme.palette.primary[500],\n color: 'var(--vp-text-color)',\n },\n },\n {\n props: { status: 'overlay', variant: 'outlined' },\n style: {\n backgroundColor: 'transparent',\n '--vp-text-color': theme.palette.text.primary,\n color: 'var(--vp-text-color)',\n border: '1px solid',\n borderColor: theme.palette.transparency.alpha24,\n },\n },\n ],\n}));\n\nconst SizeToNumber = {\n 'x-small': 18,\n small: 20,\n medium: 22,\n large: 24,\n};\n\nexport const VpButton: FC = props => {\n const { text, size, status, variant, loading = false, fileUpload, sx, ...other } = props;\n\n const delayedLoading = useFalsyStateDelay(loading, 250);\n const fadeKey = `${delayedLoading},${text}`;\n\n return (\n \n \n \n {!delayedLoading && text}\n {delayedLoading && }\n {fileUpload && }\n \n \n \n );\n};\n\nfunction getGradient(theme: Theme): string {\n const color = theme.palette.primary[500] as string;\n return `linear-gradient(93.17deg, ${alpha(color, 0.7)} 1.37%, ${alpha(color, 0.5)} 50.9%, ${alpha(color, 0.1)} 105.12%)`;\n}\n","import { Box, Fade, Modal, Theme, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { SxProps } from '@mui/system';\nimport { FC, PropsWithChildren, useCallback } from 'react';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpModalProps extends PropsWithChildren {\n open: boolean;\n sx?: SxProps;\n close?: () => void;\n maxWidth?: number | string;\n}\n\nexport const VpModal: FC = ({ open, close, sx, maxWidth, children }) => {\n const { transitions, palette } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n const onClose = useCallback>((_, reason) => reason === 'escapeKeyDown' && close?.(), [close]);\n\n return (\n \n \n \n ({\n width: 1,\n maxWidth: maxWidth,\n backgroundColor: palette.background[200],\n borderRadius: 1.5,\n ...resolveSx(sx, theme),\n })}\n >\n {children}\n \n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { VpModal } from '@vp/common/ui/component/VpModal';\n\nexport interface VpDialogProps {\n open: boolean;\n title: string;\n text: string;\n actionText: string;\n cancelText: string;\n actionLoading?: boolean;\n cancelDisabled?: boolean;\n onAction: () => void;\n onCancel: () => void;\n maxWidth?: number | string;\n}\n\nexport const VpDialog: FC = props => {\n const { cancelDisabled = false, actionLoading = false, open, title, text, actionText, cancelText, onAction, onCancel } = props;\n\n return (\n \n \n \n {title}\n \n\n \n {text}\n \n\n \n \n\n \n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgAdd = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.75 11.75V6.5H11.25V11.75H6V13.25H11.25V18.5H12.75V13.25H18V11.75H12.75Z\", fill: \"currentColor\" }));\nexport default SvgAdd;\n","import { Box, useTheme } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC } from 'react';\n\nimport Add from '@vp/assets/icons/Add.svg?react';\nimport { VpSpinner } from '@vp/common/ui/component/spinner/VpSpinner';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface AvatarImagePlaceholder {\n uploading: boolean;\n onFileUpload: (files: File[]) => Promise;\n}\n\nexport const AvatarImagePlaceholder: FC = props => {\n const { customSizes } = useTheme();\n\n return (\n \n ({ border: `1px dashed ${theme.palette.transparency.alpha48}`, height: '100%', width: '100%' })}>\n \n \n {props.uploading && }\n\n {!props.uploading && (\n ({\n width: '100%',\n height: '100%',\n borderRadius: 0,\n color: theme.palette.primary[500],\n })}\n size={32}\n fileUpload={{ accept: 'img', multiple: false, onFileUpload: props.onFileUpload }}\n Icon={Add}\n />\n )}\n \n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgChevronLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M7.5 12.5L15 5L16.05 6.05L9.6 12.5L16.05 18.95L15 20L7.5 12.5Z\", fill: \"currentColor\" }));\nexport default SvgChevronLeft;\n","import { Box, Stack, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, PropsWithChildren } from 'react';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpHeaderProps extends PropsWithChildren {\n sx?: SxProps;\n}\n\nexport interface VpHeaderColumnProps extends PropsWithChildren {\n align?: 'left' | 'center' | 'right';\n flex?: number;\n}\n\nconst AlignToJustifyContent = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n};\n\nexport const VpHeaderColumn: FC = ({ flex, align = 'center', children }) => {\n flex ??= align === 'center' ? 2 : 1;\n return (\n \n {children}\n \n );\n};\n\nexport const VpHeader: FC = ({ children, sx }) => {\n return (\n ({\n width: 1,\n pt: 1,\n position: 'fixed',\n top: 0,\n left: 0,\n zIndex: theme.zIndex.header,\n ...resolveSx(sx, theme),\n })}\n >\n {children}\n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeft from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport const AvatarManagerHeader: FC = () => {\n return (\n \n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n \n \n Фото профиля\n \n \n \n \n );\n};\n","import { Box, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, PropsWithChildren } from 'react';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpMediaOverlayProps extends PropsWithChildren {\n opacity?: number;\n gradient?: string;\n sx?: SxProps;\n}\n\nexport const VpMediaGradientOverlay: FC = ({ children, sx, opacity, gradient }) => {\n opacity ??= 0.5;\n const defaultGradient = `linear-gradient(rgba(0, 0, 0, ${opacity}) 0%, rgba(0, 0, 0, 0) 48%, rgba(0, 0, 0, ${opacity}) 100%)`;\n\n return (\n ({\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n zIndex: theme.zIndex.mediaOverlayGradient,\n pointerEvents: 'none',\n background: gradient ?? defaultGradient,\n },\n ...resolveSx(sx, theme),\n })}\n >\n {children}\n \n );\n};\n","import { Box, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\n\ninterface AvatarManagerImageProps {\n src: string;\n hash: string;\n onCloseClick: () => void;\n}\n\nexport const AvatarManagerImage: FC = props => {\n const { customSizes } = useTheme();\n\n return (\n \n \n \n\n ({\n padding: 0.5,\n position: 'absolute',\n zIndex: 1,\n top: 16,\n right: 16,\n backgroundColor: theme.palette.primary.alpha24,\n color: theme.palette.background[300],\n })}\n Icon={Close}\n size={24}\n onClick={props.onCloseClick}\n />\n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC, Fragment } from 'react';\n\nimport { VpDialog } from '@vp/common/ui/component/VpDialog';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { AvatarImagePlaceholder } from '@vp/manager/avatar/ui/AvatarImagePlaceholder';\nimport { AvatarManagerHeader } from '@vp/manager/avatar/ui/AvatarManagerHeader';\nimport { AvatarManagerImage } from '@vp/manager/avatar/ui/AvatarManagerImage';\nimport { AvatarManagerViewModel } from '@vp/manager/avatar/ui/AvatarManagerViewModel';\n\nexport const AvatarManagerPage: FC = () => {\n const viewModel = useViewModel(AvatarManagerViewModel);\n const delayedRemoving = useFalsyStateDelay(viewModel.removing.value, 250);\n\n const showImage = !!viewModel.profile.value?.image.url;\n\n return (\n \n \n \n\n ({\n [theme.breakpoints.up('tablet')]: {\n width: 1,\n height: 1,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n })}\n >\n \n \n {showImage && (\n \n )}\n\n {!showImage && }\n \n \n \n \n\n \n \n );\n};\n","import { Box, ButtonBase, Theme, useTheme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC } from 'react';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport type VpToggleProps = {\n state: boolean;\n disabled?: boolean;\n onToggle: () => void;\n id?: string;\n sx?: SxProps;\n};\n\nexport const VpToggle: FC = ({ state, onToggle, id, disabled, sx }) => {\n const { palette } = useTheme();\n\n return (\n ({\n p: 0.375,\n width: 41,\n height: 24,\n display: 'flex',\n borderRadius: '100px',\n justifyContent: 'flex-start',\n transition: 'background-color 0.25s ease-in-out',\n ...resolveSx(sx, theme),\n })}\n onClick={onToggle}\n >\n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpToggle } from '@vp/common/ui/component/VpToggle';\n\ninterface BiographyManagerToggle {\n onToggle: () => void;\n state: boolean;\n label: string;\n field: string;\n disabled: boolean;\n}\n\nexport const BiographyManagerToggle: FC = ({ field, onToggle, label, state, disabled }) => {\n return (\n \n \n {label}\n \n \n \n \n \n );\n};\n","import { Divider, Stack } from '@mui/material';\nimport { FC, useCallback } from 'react';\n\nimport { BiographyManagerToggle } from '@vp/manager/biography/ui/BiographyManagerToggle';\nimport { AiOptionStatus } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\ninterface BiographyManagerAIControlsProps {\n changeAiOptionStatus: (status: AiOptionStatus) => void;\n disabled: boolean;\n aiOptionStatus: AiOptionStatus;\n}\n\nexport const BiographyManagerAIControls: FC = ({ changeAiOptionStatus, aiOptionStatus, disabled }) => {\n const toggleSpellingCheck = useCallback(() => {\n if (aiOptionStatus === AiOptionStatus.SpellingCheck) {\n changeAiOptionStatus(AiOptionStatus.None);\n } else {\n changeAiOptionStatus(AiOptionStatus.SpellingCheck);\n }\n }, [aiOptionStatus, changeAiOptionStatus]);\n\n const toggleSupplementedDescription = useCallback(() => {\n if (aiOptionStatus === AiOptionStatus.SupplementedDescription) {\n changeAiOptionStatus(AiOptionStatus.None);\n } else {\n changeAiOptionStatus(AiOptionStatus.SupplementedDescription);\n }\n }, [aiOptionStatus, changeAiOptionStatus]);\n\n return (\n }>\n \n \n \n );\n};\n","import { ChangeEventHandler, FC, useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport CalendarIcon from '@vp/assets/icons/Calendar.svg?react';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { BiographyFormValues } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\ninterface BiographyManagerFormDateProps {\n disabled: boolean;\n field: keyof BiographyFormValues;\n label: string;\n}\n\nconst currentYear = new Date().getFullYear();\n\nconst formatDateInput = (value: string): string => {\n const cleaned = value.replace(/\\D+/g, '');\n const day = cleaned.slice(0, 2);\n const month = cleaned.slice(2, 4);\n let year = cleaned.slice(4, 8);\n\n if (year && parseInt(year) > currentYear) {\n year = currentYear.toString();\n }\n\n return [day, month, year].filter(Boolean).join('.');\n};\n\nconst isValidDate = (value: string | null): boolean => {\n if (typeof value !== 'string') return false;\n const cleaned = value.replace(/\\D+/g, '');\n const day = parseInt(cleaned.slice(0, 2), 10);\n const month = parseInt(cleaned.slice(2, 4), 10);\n const year = parseInt(cleaned.slice(4, 8), 10);\n\n if (isNaN(day) || isNaN(month) || isNaN(year)) return false;\n\n const currentYear = new Date().getFullYear();\n const daysInMonth = new Date(year, month, 0).getDate();\n\n const isYearInvalid = year < 1000 || year > currentYear;\n const isMonthInvalid = month < 1 || month > 12;\n const isDayInvalid = day < 1 || day > daysInMonth;\n\n return !(isYearInvalid || isMonthInvalid || isDayInvalid);\n};\n\nexport const BiographyManagerFormDate: FC = ({ disabled, field, label }) => {\n const { setValue, register, formState } = useFormContext();\n\n const onValidateDate = useCallback((value: string) => isValidDate(value?.toString()) || 'Неправильная дата', []);\n const onChangeDate = useCallback>(\n event => setValue(field, formatDateInput(event.target.value.toString())),\n [field, setValue],\n );\n\n return (\n \n ),\n },\n }}\n />\n );\n};\n","import { FC } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { BiographyFormValues } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\ninterface BiographyManagerFormDescriptionProps {\n disabled: boolean;\n}\n\nexport const BiographyManagerFormDescription: FC = ({ disabled }) => {\n const { register, formState } = useFormContext();\n\n return (\n \n );\n};\n","import { FC } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { BiographyFormValues } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\ninterface BiographyManagerFormNameProps {\n disabled: boolean;\n}\n\nexport const BiographyManagerFormName: FC = ({ disabled }) => {\n const { register, formState } = useFormContext();\n\n return (\n \n );\n};\n","import { FC, useMemo } from 'react';\n\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { AiOptionStatus } from '@vp/manager/biography/ui/BiographyManagerViewModel';\n\ninterface BiographyManagerFormSubmitButtonProps {\n aiOptionStatus: AiOptionStatus;\n loading: boolean;\n disabled: boolean;\n onClick: () => void;\n}\n\nexport const BiographyManagerFormSubmitButton: FC = ({\n loading,\n disabled,\n aiOptionStatus,\n onClick,\n}) => {\n const text = useMemo(() => {\n if (aiOptionStatus === AiOptionStatus.SupplementedDescription) {\n return 'Сгенерировать';\n }\n\n if (aiOptionStatus === AiOptionStatus.SpellingCheck) {\n return 'Корректировать';\n }\n\n return 'Сохранить';\n }, [aiOptionStatus]);\n\n return (\n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nexport const BiographyManagerFormText: FC = () => {\n return (\n \n Что можно написать в описании\n \n В описании можно охватить несколько важных аспектов жизни человека, которые помогут сделать текст более полным и глубоким:\n \n \n \n 1. Ранние годы: Расскажите о детстве, месте рождения, семье и важных событиях, которые сформировали личность.\n \n \n 2. Образование: Укажите учебные заведения, курсы, увлечения в школьные или студенческие годы, а также полученные награды или\n дипломы.\n \n \n 3. Карьера: Описание профессионального пути, достижения на работе, влияние на коллег или отрасль, важные проекты и роли.\n \n \n 4. Личная жизнь: Поделитесь значимыми моментами личной жизни, такими как семья, дружба, интересы, хобби.\n \n \n 5. Социальная деятельность: Обратите внимание на общественную работу, участие в благотворительных проектах, волонтёрскую\n деятельность.\n \n \n 6. Наследие и память: Напишите, что человек оставил после себя: его вклад, достижения, память, которую о нём сохранили.\n \n \n 7. Личностные качества: Опишите черты характера, что его выделяло среди других, его ценности и принципы.\n \n \n \n После того, как вы напишете текст, вы можете воспользоваться ИИ для проверки орфографии и грамматики. ИИ также может помочь вам\n дополнить описание важными деталями.\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\nimport { FormProvider, UseFormReturn } from 'react-hook-form';\n\nimport { BiographyManagerAIControls } from '@vp/manager/biography/ui/BiographyManagerAIControls';\nimport { AiOptionStatus, BiographyFormValues } from '@vp/manager/biography/ui/BiographyManagerViewModel';\nimport { BiographyManagerFormDate } from '@vp/manager/biography/ui/form/BiographyManagerFormDate';\nimport { BiographyManagerFormDescription } from '@vp/manager/biography/ui/form/BiographyManagerFormDescription';\nimport { BiographyManagerFormName } from '@vp/manager/biography/ui/form/BiographyManagerFormName';\nimport { BiographyManagerFormSubmitButton } from '@vp/manager/biography/ui/form/BiographyManagerFormSubmitButton';\nimport { BiographyManagerFormText } from '@vp/manager/biography/ui/form/BiographyManagerFormText';\n\nexport interface BiographyManagerBodyProps {\n changeAiOptionStatus: (status: AiOptionStatus) => void;\n submit: () => void;\n methods: UseFormReturn;\n aiOptionStatus: AiOptionStatus;\n loading: boolean;\n}\n\nexport const BiographyManagerBody: FC = ({ methods, aiOptionStatus, loading, changeAiOptionStatus, submit }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeft from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport const BiographyManagerHeader: FC = () => {\n return (\n ({\n position: 'static',\n background: theme.palette.background[300],\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 0.5, tablet: 2 },\n })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n \n \n Биография\n \n \n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface BiographyManagerEditHeaderProps {\n onClose: () => void;\n}\n\nexport const BiographyManagerEditHeader: FC = ({ onClose }) => {\n return (\n \n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} onClick={onClose} />\n \n\n \n \n Редактировать биографию\n \n \n\n \n \n );\n};\n","import { Box, Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { BiographyManagerEditHeader } from '@vp/manager/biography/ui/edit/BiographyManagerEditHeader';\n\nexport interface EditModalFormValues {\n suggestedText: string;\n}\n\ninterface BiographyManagerEditContentProps {\n close: () => void;\n submit: (values: EditModalFormValues) => void;\n text: string;\n}\n\nexport const BiographyManagerEditContent: FC = ({ close, submit, text }) => {\n const methods = useForm({\n defaultValues: { suggestedText: text },\n mode: 'onTouched',\n });\n\n return (\n \n \n\n \n \n\n \n \n Сгенерировано при помощи Искусственного Интеллекта\n \n \n \n\n \n \n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { FC, useCallback, useState } from 'react';\n\nimport { BiographyManagerEditContent, EditModalFormValues } from '@vp/manager/biography/ui/edit/BiographyManagerEditContent';\n\ninterface BiographyManagerEditModalProps {\n open: boolean;\n onClose: () => void;\n onSubmit: (values: EditModalFormValues) => void;\n suggestedText: string | null;\n}\n\nexport const BiographyManagerEditModal: FC = ({ open, onClose, onSubmit, suggestedText }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n const [displayedText, setDisplayedText] = useState(null);\n\n const onEsc = useCallback>((_, reason) => reason === 'escapeKeyDown' && onClose?.(), [onClose]);\n\n const handleEntering = useCallback(() => {\n if (suggestedText) {\n setDisplayedText(suggestedText);\n }\n }, [suggestedText]);\n\n const handleExited = useCallback(() => {\n setDisplayedText(null);\n }, []);\n\n return (\n \n \n ({ overflowY: 'auto', outline: 'none', backgroundColor: palette.background.default })}\n >\n {displayedText && }\n \n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { BiographyManagerBody } from '@vp/manager/biography/ui/BiographyManagerBody';\nimport { BiographyManagerHeader } from '@vp/manager/biography/ui/BiographyManagerHeader';\nimport { BiographyFormValues, BiographyManagerViewModel } from '@vp/manager/biography/ui/BiographyManagerViewModel';\nimport { BiographyManagerEditModal } from '@vp/manager/biography/ui/edit/BiographyManagerEditModal';\n\nexport const BiographyManagerPage: FC = () => {\n const viewModel = useViewModel(BiographyManagerViewModel);\n\n const methods = useForm({\n defaultValues: viewModel.toFormValues(viewModel.profile.value),\n mode: 'onTouched',\n });\n\n viewModel.bindProps({ methods });\n\n return (\n \n \n \n \n\n \n \n \n\n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC, ReactNode } from 'react';\n\nimport { VpSpinner } from '@vp/common/ui/component/spinner/VpSpinner';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\n\ninterface VpLoadingWrapperProps {\n loading: boolean;\n children: ReactNode;\n}\n\nexport const VpLoadingWrapper: FC = ({ loading, children }) => {\n const duration = 0.25;\n const delay = duration * 1000;\n const delayedLoading = useFalsyStateDelay(loading, delay);\n\n return (\n \n \n {!delayedLoading && children}\n {delayedLoading && (\n \n \n \n )}\n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeftIcon from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface EventsManagerHeaderProps {\n disableCancel: boolean;\n onCancel: () => void;\n}\n\nexport const EventsManagerHeader: FC = ({ disableCancel, onCancel }) => {\n return (\n ({\n position: 'static',\n background: theme.palette.background[300],\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 0.5, tablet: 2 },\n })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n\n \n \n События\n \n \n\n \n \n \n \n );\n};\n","import { ChangeEventHandler, FC, useCallback } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport CalendarIcon from '@vp/assets/icons/Calendar.svg?react';\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { EventsFormValues } from '@vp/manager/events/ui/EventsManagerPage';\n\ninterface EventsManagerFormDateProps {\n index: number;\n disableControls: boolean;\n}\n\nconst currentYear = new Date().getFullYear();\n\nconst formatDateInput = (value: string): string => {\n const cleaned = value.replace(/\\D+/g, '');\n const day = cleaned.slice(0, 2);\n const month = cleaned.slice(2, 4);\n let year = cleaned.slice(4, 8);\n\n if (year && parseInt(year) > currentYear) {\n year = currentYear.toString();\n }\n\n return [day, month, year].filter(Boolean).join('.');\n};\n\nconst isValidDate = (value: string | null): boolean => {\n if (typeof value !== 'string') return false;\n const cleaned = value.replace(/\\D+/g, '');\n const day = parseInt(cleaned.slice(0, 2), 10);\n const month = parseInt(cleaned.slice(2, 4), 10);\n const year = parseInt(cleaned.slice(4, 8), 10);\n\n if (isNaN(day) || isNaN(month) || isNaN(year)) return false;\n\n const currentYear = new Date().getFullYear();\n const daysInMonth = new Date(year, month, 0).getDate();\n\n const isYearInvalid = year < 1000 || year > currentYear;\n const isMonthInvalid = month < 1 || month > 12;\n const isDayInvalid = day < 1 || day > daysInMonth;\n\n return !(isYearInvalid || isMonthInvalid || isDayInvalid);\n};\n\nexport const EventsManagerFormDate: FC = ({ index, disableControls }) => {\n const {\n setValue,\n register,\n formState: { errors },\n } = useFormContext();\n\n const onValidateDate = useCallback((value: string) => isValidDate(value?.toString()) || 'Неправильная дата', []);\n const onChangeDate = useCallback>(\n event => setValue(`events.${index}.date`, formatDateInput(event.target.value.toString())),\n [index, setValue],\n );\n\n return (\n ,\n },\n }}\n />\n );\n};\n","import { FC } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { EventsFormValues } from '@vp/manager/events/ui/EventsManagerPage';\n\ninterface EventsManagerFormDescriptionProps {\n index: number;\n disableControls: boolean;\n}\n\nexport const EventsManagerFormDescription: FC = ({ index, disableControls }) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n\n const descriptionError = errors?.events?.[index]?.description;\n\n return (\n \n );\n};\n","import * as React from \"react\";\nconst SvgTrashCan = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9 2H15V3.5H9V2ZM3 5V6.5H4.5V21.5C4.5 21.8978 4.65804 22.2794 4.93934 22.5607C5.22064 22.842 5.60218 23 6 23H18C18.3978 23 18.7794 22.842 19.0607 22.5607C19.342 22.2794 19.5 21.8978 19.5 21.5V6.5H21V5H3ZM6 21.5V6.5H18V21.5H6ZM9 9.5H10.5V18.5H9V9.5ZM13.5 9.5H15V18.5H13.5V9.5Z\", fill: \"currentColor\" }));\nexport default SvgTrashCan;\n","import { FC } from 'react';\n\nimport TrashCanIcon from '@vp/assets/icons/TrashCan.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface EventsManagerFormRemoveButtonProps {\n disabled: boolean;\n onRemove: () => void;\n}\n\nexport const EventsManagerFormRemoveButton: FC = ({ onRemove, disabled }) => {\n return (\n ({\n p: 1,\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-1),\n right: theme.spacing(-1),\n bottom: theme.spacing(-1),\n left: theme.spacing(-1),\n background: 'transparent',\n },\n '& path': { fill: theme.palette.danger[500] },\n })}\n />\n );\n};\n","import { Box, useTheme } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\ninterface EventsManagerFormImageContentProps {\n image: EventsManagerRecordModel['image'];\n id: string;\n}\n\nconst Gradient = 'linear-gradient(133.62deg, #E5E5E5 -18.03%, rgba(229, 229, 229, 0.5) 52.31%, rgba(229, 229, 229, 0) 91.87%)';\n\nexport const EventsManagerFormImageContent: FC = ({ id, image }) => {\n const { palette } = useTheme();\n const backgroundColor = palette.background.default;\n\n return (\n \n \n \n \n \n {image.url && (\n \n \n \n )}\n {!image.url && }\n \n \n \n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC } from 'react';\n\nimport AddIcon from '@vp/assets/icons/Add.svg?react';\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\n\ninterface EventsManagerImageControlButtonProps {\n id: string;\n image: EventsManagerRecordModel['image'];\n disabled: boolean;\n removeImage: () => void;\n uploadImage: (files: File[]) => void;\n}\n\nexport const EventsManagerImageControlButton: FC = ({\n id,\n image,\n disabled,\n removeImage,\n uploadImage,\n}) => {\n return (\n \n \n \n {image.url && }\n {!image.url && (\n \n )}\n \n \n \n );\n};\n","import { Box, styled } from '@mui/material';\nimport { ChangeEventHandler, FC, Fragment, useCallback, useState } from 'react';\nimport { useFormContext } from 'react-hook-form';\n\nimport { EventsFormValues } from '@vp/manager/events/ui/EventsManagerPage';\nimport { EventsManagerViewModel } from '@vp/manager/events/ui/EventsManagerViewModel';\nimport { EventsManagerFormImageContent } from '@vp/manager/events/ui/form/image/EventsManagerFormImageContent';\nimport { EventsManagerImageControlButton } from '@vp/manager/events/ui/form/image/EventsManagerImageControlButton';\n\ninterface EventsManagerFormImageProps {\n index: number;\n id: string;\n disableControls: boolean;\n}\n\nconst Gradient = 'linear-gradient(133.62deg, #E5E5E5 -18.03%, rgba(229, 229, 229, 0.5) 52.31%, rgba(229, 229, 229, 0) 91.87%)';\nconst HiddenFileControl = styled('input')({ display: 'none' });\n\nexport const EventsManagerFormImage: FC = ({ index, id, disableControls }) => {\n const [fileUrl, setFileUrl] = useState(null);\n const { watch, register, setValue } = useFormContext();\n const imageValue = watch(`events.${index}.image`);\n\n const handleImageRemove = useCallback(() => {\n setValue(`events.${index}.image`, EventsManagerViewModel.EmptyEvent.image, { shouldDirty: true });\n if (fileUrl) {\n URL.revokeObjectURL(fileUrl);\n }\n }, [fileUrl, index, setValue]);\n\n const handleImageUpload = useCallback(\n (files: File[]): void => {\n const file = files[0];\n const url = URL.createObjectURL(file);\n setFileUrl(url);\n setValue(`events.${index}.image`, { url, file, hash: '', id: '' }, { shouldDirty: true });\n },\n [index, setValue],\n );\n\n const onImageChange = useCallback>(\n event => handleImageUpload(Array.from(event.target.files ?? [])),\n [handleImageUpload],\n );\n\n return (\n \n \n \n \n \n \n\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, useCallback } from 'react';\n\nimport { EventsManagerFormDate } from '@vp/manager/events/ui/form/EventsManagerFormDate';\nimport { EventsManagerFormDescription } from '@vp/manager/events/ui/form/EventsManagerFormDescription';\nimport { EventsManagerFormRemoveButton } from '@vp/manager/events/ui/form/EventsManagerFormRemoveButton';\nimport { EventsManagerFormImage } from '@vp/manager/events/ui/form/image/EventsManagerFormImage';\n\ninterface EventsManagerFormItemProps {\n index: number;\n id: string;\n disableControls: boolean;\n removeEvent: (index: number) => void;\n}\n\nexport const EventsManagerFormItem: FC = ({ id, index, disableControls, removeEvent }) => {\n const onRemove = useCallback(() => removeEvent(index), [index, removeEvent]);\n\n return (\n \n \n \n\n \n \n \n \n \n\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { LayoutGroup, motion } from 'motion/react';\nimport { FC, useCallback } from 'react';\nimport { useFieldArray, useFormContext } from 'react-hook-form';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { EventsFormValues } from '@vp/manager/events/ui/EventsManagerPage';\nimport { EventsManagerViewModel } from '@vp/manager/events/ui/EventsManagerViewModel';\nimport { EventsManagerFormItem } from '@vp/manager/events/ui/form/EventsManagerFormItem';\n\ninterface EventsManagerFormListProps {\n disableControls: boolean;\n}\n\nexport const EventsManagerFormList: FC = ({ disableControls }) => {\n const { control } = useFormContext();\n const { fields, append, remove } = useFieldArray({ control, name: 'events' });\n\n const removeEvent = useCallback((index: number) => remove(index), [remove]);\n const addEvent = useCallback(() => append(EventsManagerViewModel.EmptyEvent), [append]);\n\n return (\n \n \n {fields.map((field, index) => (\n \n \n \n ))}\n\n \n \n \n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, useCallback, useEffect } from 'react';\nimport { FormProvider, useForm } from 'react-hook-form';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpLoadingWrapper } from '@vp/common/ui/component/VpLoadingWrapper';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { EventsManagerRecordModel } from '@vp/manager/events/core/model/EventsManagerRecordModel';\nimport { EventsManagerHeader } from '@vp/manager/events/ui/EventsManagerHeader';\nimport { EventsManagerViewModel } from '@vp/manager/events/ui/EventsManagerViewModel';\nimport { EventsManagerFormList } from '@vp/manager/events/ui/form/EventsManagerFormList';\n\nexport interface EventsFormValues {\n events: EventsManagerRecordModel[];\n}\n\nexport const EventsManagerPage: FC = () => {\n const viewModel = useViewModel(EventsManagerViewModel);\n const methods = useForm({ defaultValues: { events: viewModel.events.value }, mode: 'onTouched' });\n const { handleSubmit, formState, reset } = methods;\n\n const resetForm = useCallback(() => reset({ events: viewModel.events.value }), [reset, viewModel.events.value]);\n useEffect(() => reset({ events: viewModel.events.value }), [viewModel.events.value, reset]);\n\n return (\n \n \n \n\n \n \n \n \n \n \n \n\n \n \n \n \n \n );\n};\n","import { useIsPresent } from 'motion/react';\nimport { useEffect } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nexport function useSearchSectionCheck(name: string, defaultSection: string): void {\n const navigate = useNavigate();\n const location = useLocation();\n const isPresent = useIsPresent();\n\n useEffect(() => {\n if (!isPresent) return;\n\n const search = new URLSearchParams(location.search);\n\n if (!search.has(name)) {\n search.set(name, defaultSection);\n navigate(`${location.pathname}?${search.toString()}`, { replace: true });\n }\n }, [location.search, location.pathname, navigate, defaultSection, name, isPresent]);\n}\n","import { useIsPresent } from 'motion/react';\nimport { useMemo, useRef } from 'react';\nimport { useLocation } from 'react-router-dom';\n\nexport function useSearchSection(name: string, defaultSection: S = '' as S): S {\n const location = useLocation();\n const prevSection = useRef(defaultSection);\n const isPresent = useIsPresent();\n\n return useMemo(() => {\n if (!isPresent) return prevSection.current;\n\n const search = new URLSearchParams(location.search);\n const section = search.get(name) ?? defaultSection;\n prevSection.current = section as S;\n\n return section as S;\n }, [defaultSection, isPresent, location.search, name]);\n}\n","import { Stack } from '@mui/material';\nimport { FC, useMemo } from 'react';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { FileUploadProps } from '@vp/common/ui/component/VpHiddenFileInput';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\n\nexport interface GalleryManagerControlsProps {\n onFileUpload: (files: File[]) => void;\n}\n\nexport const GalleryManagerControls: FC = ({ onFileUpload }) => {\n const section = useSearchSection('s', 'photos');\n const isPhotosSection = section === 'photos';\n\n const text = isPhotosSection ? 'Загрузить фото' : 'Загрузить видео';\n\n const fileUpload = useMemo(() => {\n const accept = isPhotosSection ? 'image' : 'video';\n return { accept, multiple: true, onFileUpload };\n }, [onFileUpload, isPhotosSection]);\n\n return (\n \n {/**/}\n \n \n );\n};\n","import * as React from \"react\";\nconst SvgPlay = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.25 21.5001C5.05109 21.5001 4.86032 21.421 4.71967 21.2804C4.57902 21.1397 4.5 20.949 4.5 20.7501V4.25006C4.49999 4.11972 4.53395 3.99163 4.59852 3.87842C4.6631 3.7652 4.75606 3.67077 4.86825 3.60443C4.98044 3.53808 5.10798 3.50212 5.2383 3.50009C5.36862 3.49806 5.49722 3.53002 5.61143 3.59283L20.6114 11.8428C20.7291 11.9075 20.8273 12.0027 20.8956 12.1183C20.964 12.2339 21 12.3657 21 12.5C21 12.6343 20.964 12.7662 20.8956 12.8818C20.8273 12.9974 20.7291 13.0925 20.6114 13.1572L5.61143 21.4072C5.50069 21.4681 5.37637 21.5 5.25 21.5001ZM6 5.51823V19.4817L18.6936 12.5001L6 5.51823Z\", fill: \"#EDEDED\" }));\nexport default SvgPlay;\n","import { ImageList, ImageListItem, Theme, useMediaQuery, useTheme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { FC, forwardRef, JSX, useCallback } from 'react';\n\nimport PlayIcon from '@vp/assets/icons/Play.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface MediaGridItem {\n id: string;\n type: 'photo' | 'video';\n url: string;\n hash: string;\n}\n\nexport interface VpMediaGridProps {\n items: MediaGridItem[];\n itemDecorator?: (item: MediaGridItem) => JSX.Element;\n sx?: SxProps;\n onClick?: (item: MediaGridItem) => void;\n clickable?: boolean;\n}\n\nexport const VpMediaGrid = forwardRef(\n ({ items, itemDecorator, sx, onClick, clickable = false }, ref) => {\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.only('mobile'));\n const gap = isMobile ? 4 : 8;\n\n return (\n ({ m: 0, overflow: 'hidden', ...resolveSx(sx, theme) })}>\n \n {items.map(item => (\n \n \n \n ))}\n \n \n );\n },\n);\n\nVpMediaGrid.displayName = 'VpMediaGrid';\n\ninterface VpMediaGridItemProps {\n item: MediaGridItem;\n itemDecorator?: (item: MediaGridItem) => JSX.Element;\n onClick?: (item: MediaGridItem) => void;\n clickable: boolean;\n}\n\nconst VpMediaGridItem: FC = ({ item, itemDecorator, onClick, clickable }) => {\n const isVideo = item.type === 'video';\n const paddingTop = isVideo ? '131.13%' : '100%';\n const cursor = clickable ? 'pointer' : undefined;\n const onItemClick = useCallback(() => onClick?.(item), [item, onClick]);\n\n return (\n \n \n {isVideo && (\n ({ position: 'absolute', top: 8, left: 8, zIndex: theme.zIndex.mediaControls })} />\n )}\n {itemDecorator && itemDecorator(item)}\n \n );\n};\n","import * as React from \"react\";\nconst SvgImageGradient = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"image-gradient\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"0%\", gradientUnits: \"userSpaceOnUse\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: \"1.37%\", stopColor: \"rgba(229, 229, 229, 0.7)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"50.9%\", stopColor: \"rgba(229, 229, 229, 0.5)\" }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"105.12%\", stopColor: \"rgba(229, 229, 229, 0.1)\" }))), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M4.5 3.5H19.5C19.8978 3.5 20.2794 3.65804 20.5607 3.93934C20.842 4.22064 21 4.60218 21 5V20C21 20.3978 20.842 20.7794 20.5607 21.0607C20.2794 21.342 19.8978 21.5 19.5 21.5H4.5C4.10218 21.5 3.72064 21.342 3.43934 21.0607C3.15804 20.7794 3 20.3978 3 20V5C3 4.60218 3.15804 4.22064 3.43934 3.93934C3.72064 3.65804 4.10218 3.5 4.5 3.5ZM4.5 15.5V20H19.5V18.5L15.75 14.75L14.5575 15.9425C14.2765 16.2219 13.8963 16.3787 13.5 16.3787C13.1037 16.3787 12.7235 16.2219 12.4425 15.9425L8.25 11.75L4.5 15.5ZM16.8075 13.685L19.5 16.3775V5H4.5V13.3775L7.1925 10.685C7.47354 10.4056 7.85372 10.2488 8.25 10.2488C8.64628 10.2488 9.02646 10.4056 9.3075 10.685L13.5 14.8775L14.6925 13.685C14.9735 13.4056 15.3537 13.2488 15.75 13.2488C16.1463 13.2488 16.5265 13.4056 16.8075 13.685ZM15.5 10.6208C15.13 10.868 14.695 11 14.25 11C13.6533 11 13.081 10.7629 12.659 10.341C12.2371 9.91903 12 9.34674 12 8.75C12 8.30499 12.132 7.86998 12.3792 7.49997C12.6264 7.12996 12.9778 6.84157 13.389 6.67127C13.8001 6.50097 14.2525 6.45642 14.689 6.54323C15.1254 6.63005 15.5263 6.84434 15.841 7.15901C16.1557 7.47368 16.37 7.87459 16.4568 8.31105C16.5436 8.74751 16.499 9.19991 16.3287 9.61104C16.1584 10.0222 15.87 10.3736 15.5 10.6208ZM14.6667 8.1264C14.5433 8.04399 14.3983 8 14.25 8C14.0511 8 13.8603 8.07902 13.7197 8.21967C13.579 8.36032 13.5 8.55109 13.5 8.75C13.5 8.89834 13.544 9.04334 13.6264 9.16668C13.7088 9.29002 13.8259 9.38615 13.963 9.44291C14.1 9.49968 14.2508 9.51453 14.3963 9.48559C14.5418 9.45665 14.6754 9.38522 14.7803 9.28033C14.8852 9.17544 14.9567 9.04181 14.9856 8.89632C15.0145 8.75083 14.9997 8.60003 14.9429 8.46299C14.8861 8.32594 14.79 8.20881 14.6667 8.1264Z\", fill: \"url(#image-gradient)\" }));\nexport default SvgImageGradient;\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ImageGradient from '@vp/assets/icons/ImageGradient.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nconst Text =\n 'Поделитесь с близкими возможностью загрузить памятные фотографии и видео о вашем ушедшем близком, чтобы сохранить дорогие воспоминания.';\n\nexport const GalleryManagerNoMedia: FC = () => {\n return (\n \n \n\n \n Здесь пока ничего нет\n \n\n \n {Text}\n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC, useCallback } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { MediaGridItem, VpMediaGrid } from '@vp/common/ui/component/VpMediaGrid';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { GalleryManagerNoMedia } from '@vp/manager/gallery/ui/GalleryManagerNoMedia';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\n\nexport interface GalleryManagerMediaGridProps {\n photos: MediaGridItem[];\n videos: MediaGridItem[];\n onClick: (item: MediaGridItem, section: GalleryManagerSection) => void;\n}\n\nexport const GalleryManagerMediaGrid: FC = ({ photos, videos, onClick }) => {\n const section = useSearchSection('s', GalleryManagerSection.Photos);\n const onItemClick = useCallback((item: MediaGridItem) => onClick(item, section), [onClick, section]);\n\n const photosSection = section === GalleryManagerSection.Photos;\n const videosSection = section === GalleryManagerSection.Videos;\n\n const showPhotos = photosSection && !!photos.length;\n const showVideos = videosSection && !!videos.length;\n\n const noMedia = (photosSection && !photos.length) || (videosSection && !videos.length);\n\n return (\n \n \n \n {showPhotos && (\n ({ [theme.breakpoints.up('desktop')]: { cursor: 'pointer' } })}\n items={photos}\n onClick={onItemClick}\n />\n )}\n\n {showVideos && (\n ({ [theme.breakpoints.up('desktop')]: { cursor: 'pointer' } })}\n items={videos}\n onClick={onItemClick}\n />\n )}\n\n {noMedia && }\n \n \n \n );\n};\n","import { useTheme } from '@mui/material';\nimport { useMemo } from 'react';\n\ntype GradientStop = { percent: number; opacity: number };\n\nexport type UseLinearGradientProps = {\n angle: string;\n stops: GradientStop[];\n color?: string;\n};\n\nexport const useLinearGradient = ({ angle, stops, color }: UseLinearGradientProps): string => {\n const { palette } = useTheme();\n color ??= palette.primary[500];\n\n return useMemo(() => {\n const colorStops = stops\n .map(({ percent, opacity }) => `color-mix(in srgb, ${color} ${opacity * 100}%, transparent) ${percent}%`)\n .join(', ');\n\n return `linear-gradient(${angle}, ${colorStops})`;\n }, [angle, color, stops]);\n};\n","import { MutableRefObject, useCallback, useLayoutEffect } from 'react';\n\nexport const useRectOnResize = (ref: MutableRefObject, handleRectChange: (rect: DOMRect) => void): (() => void) => {\n const onResize = useCallback(() => {\n if (ref.current) {\n const rect = ref.current.getBoundingClientRect();\n handleRectChange(rect);\n }\n }, [handleRectChange, ref]);\n\n useLayoutEffect(() => {\n onResize();\n window.addEventListener('resize', onResize);\n\n return (): void => window.removeEventListener('resize', onResize);\n }, [handleRectChange, onResize, ref]);\n\n return onResize;\n};\n","import { Box, Link, Stack, Theme, Typography, useTheme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { CSSProperties, FC, useCallback, useMemo, useRef, useState } from 'react';\nimport { NavLink } from 'react-router-dom';\n\nimport { useLinearGradient } from '@vp/common/ui/hook/useLinearGradient';\nimport { useRectOnResize } from '@vp/common/ui/hook/useRectOnResize';\n\nexport interface VpTab {\n id: string;\n name: string;\n url: string;\n}\n\nexport interface VpTabsProps {\n tabs: VpTab[];\n activeTabId: string;\n sx?: SxProps;\n}\n\nexport const VpTabs: FC = ({ tabs, activeTabId, sx }) => {\n const containerRef = useRef(null);\n\n const [underlineWidth, setUnderlineWidth] = useState(0);\n const activeIndex = useMemo(() => tabs.findIndex(tab => tab.id === activeTabId) ?? 0, [activeTabId, tabs]);\n\n useRectOnResize(\n containerRef,\n useCallback(({ width }) => setUnderlineWidth(width / tabs.length), [tabs.length]),\n );\n\n return (\n \n \n {tabs.map(tab => (\n \n ))}\n\n \n \n \n );\n};\n\ninterface VpTabUnderlineProps {\n width: number;\n index: number;\n}\n\nconst VpTabUnderline: FC = ({ width, index }) => {\n const border = useBorder();\n const { palette } = useTheme();\n\n return (\n ({\n position: 'absolute',\n bottom: 0,\n height: 2,\n transition: 'transform 0.25s ease-in-out',\n ...theme.applyStyles('dark', {\n '&::before': { ...border, filter: 'blur(10px)', willChange: 'opacity' },\n }),\n '&::after': border,\n })}\n />\n );\n};\n\nexport interface VpTabProps {\n tab: VpTab;\n isActive: boolean;\n}\n\nexport const VpTab: FC = ({ tab, isActive }) => {\n const color = isActive ? 'primary.500' : 'text.disabled';\n\n return (\n \n \n {tab.name}\n \n \n );\n};\n\nconst useBorder = (): CSSProperties => {\n const gradient = useLinearGradient({\n angle: '90deg',\n color: 'var(--vp-primary-color)',\n stops: [\n { percent: 0, opacity: 1 },\n { percent: 64, opacity: 0.5 },\n { percent: 100, opacity: 0 },\n ],\n });\n\n return useMemo(\n () =>\n ({\n content: '\"\"',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n position: 'absolute',\n transition: '--vp-primary-color 0.25s ease-in-out',\n background: gradient,\n top: 0,\n left: 0,\n width: '100%',\n height: '2px',\n }) as CSSProperties,\n [gradient],\n );\n};\n","import { FC } from 'react';\n\nimport { VpTab, VpTabs } from '@vp/common/ui/component/VpTabs';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\n\nconst Tabs: VpTab[] = [\n { id: GalleryManagerSection.Photos, name: 'Фото', url: `.?s=${GalleryManagerSection.Photos}` },\n { id: GalleryManagerSection.Videos, name: 'Видео', url: `.?s=${GalleryManagerSection.Videos}` },\n];\n\nexport const GalleryManagerMediaTabs: FC = () => {\n const section = useSearchSection('s', 'photos');\n return ;\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeft from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport const GalleryManagerPageHeader: FC = () => {\n return (\n ({\n position: 'static',\n background: theme.palette.background[300],\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 0.5, tablet: 2 },\n })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n\n \n \n Галерея\n \n \n\n \n {/**/}\n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { FC, PropsWithChildren } from 'react';\n\nexport interface VpOverlayPageProps extends PropsWithChildren {\n open: boolean;\n width?: string | number;\n}\n\nexport const VpOverlayPage: FC = ({ open, width, children }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n return (\n \n \n \n {children}\n \n \n \n );\n};\n","import { debounce } from '@mui/material';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport interface ControlsVisibilityState {\n controlsVisible: boolean;\n heartbeat: () => void;\n setInteractionLock: (lock: boolean) => void;\n toggleControlsVisibility: () => void;\n}\n\nexport function useControlsVisible(): ControlsVisibilityState {\n const [controlsVisible, setControlsVisible] = useState(true);\n const [interactionLock, setInteractionLock] = useState(false);\n\n const heartbeat = useCallback(() => setControlsVisible(true), []);\n const toggleControlsVisibility = useCallback(() => setControlsVisible(state => !state), []);\n\n useEffect(() => {\n const hideControls = debounce(() => {\n if (!interactionLock) {\n setControlsVisible(false);\n }\n }, 2000);\n\n if (controlsVisible) {\n hideControls();\n }\n\n return (): void => {\n hideControls.clear();\n };\n }, [controlsVisible, interactionLock]);\n\n return { controlsVisible, setInteractionLock, heartbeat, toggleControlsVisibility };\n}\n","import { MutableRefObject, useCallback, useEffect, useRef } from 'react';\nimport ReactPlayer from 'react-player/file';\n\nexport interface UseProgressAnimationProps {\n playerRef: MutableRefObject;\n setProgress: (progress: number) => void;\n playing: boolean;\n duration: number;\n}\n\nexport function useProgressAnimation({ playerRef, setProgress, playing, duration }: UseProgressAnimationProps): void {\n const animationRef = useRef(null!);\n\n const animateProgress = useCallback(() => {\n if (playerRef.current) {\n const currentTime = playerRef.current.getCurrentTime() ?? 0;\n setProgress(currentTime);\n }\n animationRef.current = requestAnimationFrame(animateProgress);\n }, [playerRef, setProgress]);\n\n useEffect(() => {\n if (playing) {\n animateProgress();\n } else {\n cancelAnimationFrame(animationRef.current);\n }\n\n return (): void => cancelAnimationFrame(animationRef.current);\n }, [animateProgress, duration, playing]);\n}\n","import * as React from \"react\";\nconst SvgPauseFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M7.5 5H9C9.39782 5 9.77936 5.15804 10.0607 5.43934C10.342 5.72064 10.5 6.10218 10.5 6.5V18.5C10.5 18.8978 10.342 19.2794 10.0607 19.5607C9.77936 19.842 9.39782 20 9 20H7.5C7.10218 20 6.72064 19.842 6.43934 19.5607C6.15804 19.2794 6 18.8978 6 18.5V6.5C6 6.10218 6.15804 5.72064 6.43934 5.43934C6.72064 5.15804 7.10218 5 7.5 5ZM15 5H16.5C16.8978 5 17.2794 5.15804 17.5607 5.43934C17.842 5.72064 18 6.10218 18 6.5V18.5C18 18.8978 17.842 19.2794 17.5607 19.5607C17.2794 19.842 16.8978 20 16.5 20H15C14.6022 20 14.2206 19.842 13.9393 19.5607C13.658 19.2794 13.5 18.8978 13.5 18.5V6.5C13.5 6.10218 13.658 5.72064 13.9393 5.43934C14.2206 5.15804 14.6022 5 15 5Z\", fill: \"#EDEDED\" }));\nexport default SvgPauseFilled;\n","import * as React from \"react\";\nconst SvgPlayFilled = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.25 21.5001C5.05109 21.5001 4.86032 21.421 4.71967 21.2804C4.57902 21.1397 4.5 20.949 4.5 20.7501V4.25006C4.49999 4.11972 4.53395 3.99163 4.59852 3.87842C4.6631 3.7652 4.75606 3.67077 4.86825 3.60443C4.98044 3.53808 5.10798 3.50212 5.2383 3.50009C5.36862 3.49806 5.49722 3.53002 5.61143 3.59283L20.6114 11.8428C20.7291 11.9075 20.8273 12.0027 20.8956 12.1183C20.964 12.2339 21 12.3657 21 12.5C21 12.6343 20.964 12.7662 20.8956 12.8818C20.8273 12.9974 20.7291 13.0925 20.6114 13.1572L5.61143 21.4072C5.50069 21.4681 5.37637 21.5 5.25 21.5001Z\", fill: \"#EDEDED\" }));\nexport default SvgPlayFilled;\n","import { Box, IconButton, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, SyntheticEvent, useCallback } from 'react';\n\nimport PauseIcon from '@vp/assets/icons/PauseFilled.svg?react';\nimport PlayIcon from '@vp/assets/icons/PlayFilled.svg?react';\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpPlayerPausePlayControlProps {\n playing: boolean;\n sx?: SxProps;\n onPlayPauseClick?: () => void;\n}\n\nexport const VpPlayerPausePlayControl: FC = ({ playing, sx, onPlayPauseClick }) => {\n const onClick = useCallback(\n (event: SyntheticEvent) => {\n if (onPlayPauseClick) {\n event?.stopPropagation();\n onPlayPauseClick();\n }\n },\n [onPlayPauseClick],\n );\n\n return (\n ({ transform: 'translate(-50%, -50%)', pointerEvents: 'auto', ...resolveSx(sx, theme) })}\n onClick={onClick}\n >\n {playing ? : }\n \n );\n};\n","import { Slider, Stack, styled, Theme, Typography } from '@mui/material';\nimport { alpha } from '@mui/system';\nimport { FC, SyntheticEvent, useCallback, useState } from 'react';\n\nexport interface VpTimeSliderControlProps {\n duration: number;\n progress: number;\n onProgressChange: (progress: number) => void;\n onInteractionLock: (lock: boolean) => void;\n}\n\nexport const VpTimeSliderControl: FC = ({ duration, progress, onProgressChange, onInteractionLock }) => {\n const [controlledProgress, setControlledProgress] = useState(0);\n const [dragging, setDragging] = useState(false);\n const sliderProgress = dragging ? controlledProgress : progress;\n\n const onDragStart = useCallback(() => {\n setDragging(true);\n onInteractionLock(true);\n }, [onInteractionLock]);\n\n const onDragEnd = useCallback(() => {\n setDragging(false);\n onInteractionLock(false);\n onProgressChange(controlledProgress);\n }, [controlledProgress, onInteractionLock, onProgressChange]);\n\n const onClick = useCallback((event: SyntheticEvent) => event?.stopPropagation(), []);\n const onChange = useCallback((_: Event, value: number | number[]) => setControlledProgress(value as number), []);\n\n return (\n theme.spacing(3)} sx={{ pointerEvents: 'auto' }}>\n \n\n ({\n flexDirection: 'row',\n justifyContent: 'space-between',\n position: 'absolute',\n bottom: 0,\n left: theme.spacing(4.25),\n right: theme.spacing(4.25),\n })}\n >\n \n {formatDuration(progress)}\n \n\n \n {formatDuration(duration)}\n \n \n \n );\n};\n\nconst TimeSlider = styled(Slider)(({ theme }) => ({\n height: 5,\n width: '100%',\n borderRadius: 16,\n color: theme.palette.transparency.alpha8,\n padding: `${theme.spacing(2.5)} 0`,\n '@media (pointer: coarse)': { padding: `${theme.spacing(2.5)} 0` },\n '& .MuiSlider-track': {\n transition: 'none',\n height: 5,\n border: 0,\n background: getGradient(theme),\n },\n '& .MuiSlider-thumb': {\n transition: 'none',\n '&::before': { boxShadow: '0 2px 12px 0 rgba(0, 0, 0, 0.4)' },\n '&:hover, &.Mui-focusVisible': { boxShadow: '0px 0px 0px 8px rgb(255 255 255 / 16%)' },\n color: theme.palette.text.primary,\n width: 5,\n height: 5,\n '&.Mui-active': { width: 8, height: 8 },\n },\n}));\n\nfunction getGradient(theme: Theme): string {\n const whiteAlpha16 = theme.palette.transparency.alpha16;\n const primary = theme.palette.primary['500'] as string;\n const first = `linear-gradient(0deg, ${whiteAlpha16}, ${whiteAlpha16})`;\n const second = `linear-gradient(90deg, ${primary} 0%, ${alpha(primary, 0.5)} 64%, ${alpha(primary, 0)} 100%)`;\n return `${first}, ${second}`;\n}\n\nfunction formatDuration(duration: number): string {\n const minutes = Math.floor(duration / 60);\n const seconds = Math.ceil(duration % 60);\n return `${minutes}:${seconds.toString().padStart(2, '0')}`;\n}\n","import { Box, Fade } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpPlayerPausePlayControl } from '@vp/common/ui/player/VpPlayerPausePlayControl';\nimport { VpTimeSliderControl } from '@vp/common/ui/player/VpTimeSliderControl';\n\nexport interface VpPlayerControlsProps {\n playing: boolean;\n duration: number;\n progress: number;\n visible: boolean;\n onProgressChange: (progress: number) => void;\n onInteractionLock: (lock: boolean) => void;\n onPlayPauseClick: () => void;\n}\n\nexport const VpPlayerControls: FC = ({\n playing,\n duration,\n progress,\n visible,\n onProgressChange,\n onInteractionLock,\n onPlayPauseClick,\n}) => {\n return (\n \n theme.zIndex.mediaControls}\n sx={{ pointerEvents: 'none' }}\n >\n \n \n \n \n );\n};\n","import { Box, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, SyntheticEvent, useCallback, useRef, useState } from 'react';\nimport ReactPlayer from 'react-player/file';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { useControlsVisible } from '@vp/common/ui/hook/useControlsVisible';\nimport { useProgressAnimation } from '@vp/common/ui/player/hook/useProgressAnimation';\nimport { VpPlayerControls } from '@vp/common/ui/player/VpPlayerControls';\nimport { VpPlayerPausePlayControl } from '@vp/common/ui/player/VpPlayerPausePlayControl';\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport interface VpPlayerProps {\n url: string;\n thumbnail: string;\n thumbnailHash: string;\n sx?: SxProps;\n}\n\nexport const VpPlayer: FC = ({ url, thumbnail, thumbnailHash, sx }) => {\n const [initialized, setInitialize] = useState(false);\n const [playing, setPlaying] = useState(false);\n const [duration, setDuration] = useState(0);\n const [progress, setProgress] = useState(0);\n const playerRef = useRef(null!);\n\n useProgressAnimation({ playing, playerRef, setProgress, duration });\n const { controlsVisible, setInteractionLock, heartbeat, toggleControlsVisibility } = useControlsVisible();\n\n const initializePlaying = useCallback((event: SyntheticEvent) => {\n event.stopPropagation();\n setPlaying(true);\n setInitialize(true);\n }, []);\n\n const onProgressChange = useCallback((value: number) => {\n setProgress(value);\n playerRef.current?.seekTo(value);\n }, []);\n\n const togglePlaying = useCallback(() => {\n heartbeat();\n setPlaying(prev => !prev);\n }, [heartbeat]);\n\n return (\n ({ ...resolveSx(sx, theme), display: 'flex', flexDirection: 'column' })} onClick={toggleControlsVisibility}>\n ({ zIndex: theme.zIndex.mediaControls })} />}\n light={}\n onClickPreview={initializePlaying}\n onDuration={setDuration}\n />\n {initialized && (\n \n )}\n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { VpDialog } from '@vp/common/ui/component/VpDialog';\nimport { VpHeader } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { VpPlayer } from '@vp/common/ui/player/VpPlayer';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerPreviewViewModel } from '@vp/manager/gallery/ui/preview/GalleryManagerPreviewViewModel';\n\nexport interface PhotoPreview {\n id: string;\n url: string;\n hash: string;\n}\n\nexport interface VideoPreview {\n id: string;\n url: string;\n thumbnail: string;\n thumbnailHash: string;\n}\n\nexport interface GalleryManagerPreviewProps {\n item: PhotoPreview | VideoPreview;\n section: GalleryManagerSection;\n close: () => void;\n}\n\nexport const GalleryManagerPreview: FC = props => {\n const viewModel = useViewModel(GalleryManagerPreviewViewModel, props);\n const delayedRemoving = useFalsyStateDelay(viewModel.removing.value, 250);\n const sectionName = props.section === GalleryManagerSection.Photos ? 'фото' : 'видео';\n\n return (\n \n \n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })}\n Icon={Close}\n onClick={props.close}\n />\n \n\n \n {viewModel.isPhotoPreview(props.item) && }\n\n {!viewModel.isPhotoPreview(props.item) && (\n \n )}\n \n\n \n \n \n \n\n \n \n );\n};\n","import { useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpOverlayPage } from '@vp/common/ui/component/VpOverlayPage';\nimport { useFalsyStateDelay } from '@vp/common/ui/hook/useFalsyStateDelay';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerPreview, GalleryManagerPreviewProps } from '@vp/manager/gallery/ui/preview/GalleryManagerPreview';\n\nexport interface GalleryManagerPreviewModalProps {\n open: boolean;\n item: GalleryManagerPreviewProps['item'] | null;\n close: () => void;\n}\n\nexport const GalleryManagerPreviewModal: FC = ({ open, item, close }) => {\n const { transitions } = useTheme();\n const section = useSearchSection('s', GalleryManagerSection.Photos);\n\n const fadeDuration = transitions.duration.modalFadeDuration;\n const delayedItem = useFalsyStateDelay(item, fadeDuration);\n\n return (\n {delayedItem && }\n );\n};\n","import { Stack, Theme, Typography } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, useMemo } from 'react';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\n\nexport interface VpLimitInfoProps {\n text: string;\n profileId: string;\n sx?: SxProps;\n}\n\nexport const VpLimitInfo: FC = ({ text, profileId, sx }) => {\n const linkProps = useMemo(() => {\n if (!profileId) return null;\n return { href: `https://впамяти.рф/premium_features?pi=${profileId}`, target: '_blank' };\n }, [profileId]);\n\n return (\n \n \n {text}\n \n\n \n \n );\n};\n","import { FC, useCallback } from 'react';\n\nimport CloseFilled from '@vp/assets/icons/CloseFilled.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { MediaGridItem, VpMediaGrid, VpMediaGridProps } from '@vp/common/ui/component/VpMediaGrid';\n\nexport interface GalleryManagerUploadGridProps {\n uploading: boolean;\n items: MediaGridItem[];\n onRemove: (item: MediaGridItem) => void;\n}\n\nexport const GalleryManagerUploadGrid: FC = ({ uploading, items, onRemove }) => {\n const itemDecorator = useCallback>(\n item => {\n return (\n \n onRemove(item)}\n />\n \n );\n },\n [onRemove, uploading],\n );\n\n return (\n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\n\nexport interface GalleryManagerUploadHeaderProps {\n onClose: () => void;\n}\n\nexport const GalleryManagerUploadHeader: FC = ({ onClose }) => {\n const section = useSearchSection('s', GalleryManagerSection.Photos);\n const text = section === 'photos' ? 'Загрузить фото' : 'Загрузить видео';\n\n return (\n \n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} onClick={onClose} />\n \n\n \n \n {text}\n \n \n\n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { motion } from 'motion/react';\nimport { FC, useRef, useState } from 'react';\n\nimport { useRectOnResize } from '@vp/common/ui/hook/useRectOnResize';\n\nexport type VpProgressBarProps = {\n progress: number;\n};\n\nexport const VpProgressBar: FC = ({ progress }) => {\n const containerRef = useRef(null);\n const [containerWidth, setContainerWidth] = useState(0);\n const progressWidth = (containerWidth * Math.min(progress, 100)) / 100;\n\n useRectOnResize(containerRef, ({ width }) => setContainerWidth(width));\n\n return (\n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpProgressBar } from '@vp/common/ui/component/VpProgressBar';\n\nexport type GalleryManagerUploadProgressProps = {\n progress: number;\n onCancel: () => void;\n};\n\nexport const GalleryManagerUploadProgress: FC = ({ progress, onCancel }) => {\n return (\n \n \n {`${progress}%`}\n \n \n\n \n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { AnimatePresence, LayoutGroup, motion } from 'motion/react';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpLimitInfo } from '@vp/common/ui/component/VpLimitInfo';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerUploadGrid } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadGrid';\nimport { GalleryManagerUploadHeader } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadHeader';\nimport { GalleryManagerUploadProgress } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadProgress';\nimport { GalleryManagerUploadViewModel } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadViewModel';\n\nexport interface GalleryManagerUploadProps {\n files: File[];\n section: GalleryManagerSection;\n close: () => void;\n}\n\nconst PhotoLimitText = 'Максимальное количество фото — 50.';\nconst VideoLimitText = 'Максимальное количество видео — 5.\\nМаксимальный размер файла — 200 МБ.';\n\nconst ButtonGradient =\n 'linear-gradient(90.82deg, rgba(229, 229, 229, 0.35) -43.91%, rgba(229, 229, 229, 0.15) 48.8%, rgba(229, 229, 229, 0) 150.27%)';\n\nexport const GalleryManagerUpload: FC = props => {\n const viewModel = useViewModel(GalleryManagerUploadViewModel, props);\n const uploading = viewModel.uploadSnapshot.value?.state === 'uploading';\n const limitText = props.section === GalleryManagerSection.Photos ? PhotoLimitText : VideoLimitText;\n\n return (\n \n \n\n \n \n \n\n {viewModel.showLimits.value && (\n \n \n \n )}\n \n \n\n \n \n \n {!uploading && }\n\n {uploading && (\n \n )}\n \n \n \n \n );\n};\n","import { useMediaQuery, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpOverlayPage } from '@vp/common/ui/component/VpOverlayPage';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerUpload } from '@vp/manager/gallery/ui/upload/GalleryManagerUpload';\n\nexport interface GalleryManagerUploadModalProps {\n files: File[];\n open: boolean;\n close: () => void;\n}\n\nexport const GalleryManagerUploadModal: FC = ({ files, open, close }) => {\n const section = useSearchSection('s', GalleryManagerSection.Photos);\n\n const { breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n return (\n \n \n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useSearchSectionCheck } from '@vp/common/ui/hook/useSearchSectionCheck';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { GalleryManagerControls } from '@vp/manager/gallery/ui/GalleryManagerControls';\nimport { GalleryManagerMediaGrid } from '@vp/manager/gallery/ui/GalleryManagerMediaGrid';\nimport { GalleryManagerMediaTabs } from '@vp/manager/gallery/ui/GalleryManagerMediaTabs';\nimport { GalleryManagerPageHeader } from '@vp/manager/gallery/ui/GalleryManagerPageHeader';\nimport { GalleryManagerSection } from '@vp/manager/gallery/ui/GalleryManagerSection';\nimport { GalleryManagerViewModel } from '@vp/manager/gallery/ui/GalleryManagerViewModel';\nimport { GalleryManagerPreviewModal } from '@vp/manager/gallery/ui/preview/GalleryManagerPreviewModal';\nimport { GalleryManagerUploadModal } from '@vp/manager/gallery/ui/upload/GalleryManagerUploadModal';\n\nexport const GalleryManagerPage: FC = () => {\n const viewModel = useViewModel(GalleryManagerViewModel);\n useSearchSectionCheck('s', GalleryManagerSection.Photos);\n\n return (\n \n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\nexport type ProfileDesktopImage = {\n image: ProfilePhotoModel;\n};\n\nexport const ProfileDesktopImage: FC = ({ image }) => {\n return (\n \n \n \n \n );\n};\n","import { Box, Stack, useMediaQuery, useTheme } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC, Fragment } from 'react';\nimport { Outlet } from 'react-router-dom';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFallback } from '@vp/common/ui/component/VpFallback';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ManagerGatewayViewModel } from '@vp/manager/gateway/ManagerGatewayViewModel';\nimport { ProfileDesktopImage } from '@vp/profile/ui/ProfileDesktopImage';\n\nexport const ManagerGateway: FC = () => {\n const viewModel = useViewModel(ManagerGatewayViewModel);\n\n const { breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n if (!viewModel.initialized.value) return null;\n\n return (\n \n {viewModel.hasError.value && }\n\n {!viewModel.hasError.value && (\n \n \n \n \n\n {isDesktop && viewModel.profile.value && (\n \n \n \n \n \n \n \n )}\n \n )}\n \n );\n};\n","import { FC } from 'react';\n\nimport { VpTabs } from '@vp/common/ui/component/VpTabs';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { HonorManagerSection } from '@vp/manager/honor/ui/HonorManagerSection';\n\ninterface HonorManagerTabsProps {\n disableInteractions: boolean;\n}\n\nconst Tabs = [\n { id: HonorManagerSection.Approved, name: 'Одобренные', url: `.?s=${HonorManagerSection.Approved}` },\n { id: HonorManagerSection.Pending, name: 'Ожидание', url: `.?s=${HonorManagerSection.Pending}` },\n { id: HonorManagerSection.YourRecord, name: 'Ваша запись', url: `.?s=${HonorManagerSection.YourRecord}` },\n];\n\nexport const HonorManagerTabs: FC = () => {\n const activeTab = useSearchSection('s', HonorManagerSection.Approved);\n\n return ;\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeftIcon from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface HonorManagerTopBarProps {\n showSelectButton: boolean;\n disableInteractions: boolean;\n}\n\nexport const HonorManagerTopBar: FC = ({ showSelectButton, disableInteractions }) => {\n return (\n ({ position: 'static', background: theme.palette.background[300], pt: 0 })}>\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n\n \n \n Почести\n \n \n\n \n \n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { FC } from 'react';\n\nimport { HonorManagerTabs } from '@vp/manager/honor/ui/component/header/HonorManagerTabs';\nimport { HonorManagerTopBar } from '@vp/manager/honor/ui/component/header/HonorManagerTopBar';\n\ninterface HonorManagerHeaderProps {\n showSelectButton: boolean;\n disableInteractions: boolean;\n}\n\nexport const HonorManagerHeader: FC = ({ showSelectButton, disableInteractions }) => {\n return (\n ({\n position: 'sticky',\n top: 0,\n backgroundColor: palette.background.default,\n zIndex: 1,\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 2, tablet: 3 },\n })}\n >\n \n \n \n );\n};\n","import { Box, Stack, useTheme } from '@mui/material';\nimport { FC, useCallback, useRef } from 'react';\nimport { RegisterOptions, useForm } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\nexport interface SubmitRecordFormProps {\n handleFormSubmit: (record: FormData) => Promise;\n submittingRecord: boolean;\n submitButtonText: string;\n}\n\ninterface FormData {\n name: string;\n text: string;\n}\n\nconst TextValidationOptions: RegisterOptions = {\n required: { value: true, message: '' },\n minLength: {\n value: 8,\n message: 'Текст слишком короткий',\n },\n maxLength: {\n value: 1000,\n message: 'Текст слишком длинный',\n },\n};\n\nconst NameValidationOptions: RegisterOptions = {\n required: true,\n minLength: 4,\n maxLength: 50,\n};\n\nexport const SubmitRecordForm: FC = ({ handleFormSubmit, submittingRecord, submitButtonText }) => {\n const { register, handleSubmit, formState } = useForm({ defaultValues: { name: '', text: '' }, mode: 'onTouched' });\n const { spacing, palette } = useTheme();\n\n const textInputRef = useRef(null!);\n\n const handleFocus = useCallback(() => {\n if (textInputRef?.current) {\n textInputRef.current.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n }, [textInputRef]);\n\n return (\n \n \n\n \n\n \n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { SxProps, Theme } from '@mui/system';\nimport { FC } from 'react';\n\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { SubmitRecordForm } from '@vp/honor/ui/components/SubmitRecordForm';\nimport { HonorSubmitViewModel } from '@vp/honor/ui/HonorSubmitViewModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\nexport interface SubmitRecordBodyProps {\n submitButtonText: string;\n profileId: string;\n handleSubmissionResult: (status: ProfileHonorNotificationStatus, record: ProfileHonorRecordModel | null) => void;\n handleBeforeSubmission?: () => void;\n sx?: SxProps;\n}\n\nexport const SubmitRecordBody: FC = props => {\n const viewModel = useViewModel(HonorSubmitViewModel, props);\n\n return (\n \n \n Оставьте запись в память об ушедшем близком. Ваша запись будет отправлена на модерацию и появится в галерее почестей после одобрения\n владельца профиля.\n \n\n \n \n Инструкция:\n \n \n 1. Нажмите на кнопку "Оставить запись".\n \n \n 2. Укажите ваше имя.\n \n \n 3. Напишите текст вашей записи, например, воспоминания, слова благодарности или просто мысли об ушедшем.\n \n \n 4. Нажмите "Отправить на модерацию".\n \n \n\n \n После отправки материалы будут проверены владельцем профиля. Это необходимо для обеспечения уважительного отношения к памяти ваших\n близких.\n \n\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, useCallback, useMemo } from 'react';\nimport { useForm } from 'react-hook-form';\n\nimport { VpTextField } from '@vp/common/ui/component/form/VpTextField';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\ninterface HonorManagerEditFormProps {\n handleEdit: (id: string, newText: string) => Promise;\n record: ProfileHonorRecordModel;\n isRequestInProgress: boolean;\n lockInteractions: boolean;\n}\n\nexport const HonorManagerEditForm: FC = ({ handleEdit, record, isRequestInProgress, lockInteractions }) => {\n const { register, handleSubmit, watch, formState } = useForm<{ text: string }>({ defaultValues: { text: record.text }, mode: 'all' });\n\n const currentText = watch('text');\n const isSubmitDisabled = useMemo(\n () => !formState.isValid || currentText === record.text || isRequestInProgress || lockInteractions,\n [currentText, formState.isValid, isRequestInProgress, lockInteractions, record.text],\n );\n\n const onSubmit = useCallback(\n async (data: { text: string }) => {\n await handleEdit(record.id, data.text);\n },\n [handleEdit, record.id],\n );\n\n return (\n \n \n\n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\ninterface HonorManagerEditHeaderProps {\n close: () => void;\n}\n\nexport const HonorManagerEditHeader: FC = ({ close }) => {\n return (\n ({\n position: 'static',\n background: theme.palette.background[300],\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 0.5, tablet: 2 },\n })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} onClick={close} />\n \n\n \n \n Править\n \n \n\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\n\nimport { HonorManagerEditForm } from '@vp/manager/honor/ui/component/edit/HonorManagerEditForm';\nimport { HonorManagerEditHeader } from '@vp/manager/honor/ui/component/edit/HonorManagerEditHeader';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\ninterface HonorManagerEditContentProps {\n close: () => void;\n handleEdit: (id: string, newText: string) => Promise;\n record: ProfileHonorRecordModel;\n isRequestInProgress: boolean;\n}\n\nexport const HonorManagerEditContent: FC = ({ close, handleEdit, record, isRequestInProgress }) => {\n const [lockInteractions, setLockInteractions] = useState(false);\n\n const handleClose = useCallback(() => {\n if (!lockInteractions) {\n setLockInteractions(true);\n close();\n }\n }, [close, lockInteractions]);\n\n return (\n ({\n height: '100dvh',\n backgroundColor: palette.background.default,\n })}\n >\n \n\n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { FC, useCallback, useState } from 'react';\n\nimport { HonorManagerEditContent } from '@vp/manager/honor/ui/component/edit/HonorManagerEditContent';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport interface HonorManagerEditModalProps {\n close: () => void;\n handleEdit: (id: string, newText: string) => Promise;\n open: boolean;\n record: ProfileHonorRecordModel | null;\n isRequestInProgress: boolean;\n}\n\nexport const HonorManagerEditModal: FC = ({ open, close, handleEdit, record, isRequestInProgress }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n const [displayedRecord, setDisplayedRecord] = useState(null);\n\n const handleEntering = useCallback(() => {\n if (record) {\n setDisplayedRecord(record);\n }\n }, [record]);\n\n const handleExited = useCallback(() => {\n setDisplayedRecord(null);\n }, []);\n\n const onClose = useCallback>((_, reason) => reason === 'escapeKeyDown' && close?.(), [close]);\n\n return (\n \n \n ({ overflowY: 'auto', outline: 'none', backgroundColor: palette.background.default })}\n >\n {displayedRecord && (\n \n )}\n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\nexport interface ProfileHonorRecordProps {\n record: ProfileHonorRecordModel;\n}\n\nexport const ProfileHonorRecord: FC = ({ record }) => {\n return (\n \n \n \n {record.author}\n \n \n •\n \n \n {record.date}\n \n \n\n \n {record.text}\n \n \n );\n};\n","import { Box, Stack, useTheme } from '@mui/material';\nimport { FC, useCallback, useMemo } from 'react';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\nimport { RequestState } from '@vp/manager/honor/ui/HonorManagerViewModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorRecord } from '@vp/profile/ui/honor/ProfileHonorRecord';\n\ninterface HonorManagerListItemProps {\n record: ProfileHonorRecordModel;\n actionButtonText: string;\n disableInteractions: boolean;\n activeRequestState: RequestState;\n actionHandler: (record: ProfileHonorRecordModel) => void;\n removeHandler: (id: string) => void;\n}\n\nconst Gradient =\n 'linear-gradient(93.17deg, rgba(229, 229, 229, 0.7) 1.37%, rgba(229, 229, 229, 0.5) 50.9%, rgba(229, 229, 229, 0.1) 105.12%);';\n\nexport const HonorManagerListItem: FC = ({\n actionHandler,\n removeHandler,\n record,\n actionButtonText,\n disableInteractions,\n activeRequestState,\n}) => {\n const { spacing } = useTheme();\n\n const actionLoading = useMemo(\n () => activeRequestState.inProgress && activeRequestState.ids.some(id => id === record.id),\n [activeRequestState.ids, activeRequestState.inProgress, record.id],\n );\n\n const onRemove = useCallback(() => {\n removeHandler(record.id);\n }, [record.id, removeHandler]);\n\n const onAction = useCallback(() => {\n actionHandler(record);\n }, [actionHandler, record]);\n\n return (\n \n \n\n \n \n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgChat = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", { id: \"gradient1\", x1: \"0%\", y1: \"0%\", x2: \"100%\", y2: \"100%\" }, /* @__PURE__ */ React.createElement(\"stop\", { offset: \"0%\", style: {\n stopColor: \"#A7ADB3\",\n stopOpacity: 1\n} }), /* @__PURE__ */ React.createElement(\"stop\", { offset: \"100%\", style: {\n stopColor: \"#3C3E41\",\n stopOpacity: 1\n} }))), /* @__PURE__ */ React.createElement(\"path\", { fill: \"url(#gradient1)\", fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.305 23L12 22.25L15 17H19.5C19.8978 17 20.2794 16.842 20.5607 16.5607C20.842 16.2794 21 15.8978 21 15.5V6.5C21 6.10218 20.842 5.72064 20.5607 5.43934C20.2794 5.15804 19.8978 5 19.5 5H4.5C4.10218 5 3.72064 5.15804 3.43934 5.43934C3.15804 5.72064 3 6.10218 3 6.5V15.5C3 15.8978 3.15804 16.2794 3.43934 16.5607C3.72064 16.842 4.10218 17 4.5 17H11.25V18.5H4.5C3.70435 18.5 2.94129 18.1839 2.37868 17.6213C1.81607 17.0587 1.5 16.2956 1.5 15.5V6.5C1.5 5.70435 1.81607 4.94129 2.37868 4.37868C2.94129 3.81607 3.70435 3.5 4.5 3.5H19.5C20.2956 3.5 21.0587 3.81607 21.6213 4.37868C22.1839 4.94129 22.5 5.70435 22.5 6.5V15.5C22.5 16.2956 22.1839 17.0587 21.6213 17.6213C21.0587 18.1839 20.2956 18.5 19.5 18.5H15.87L13.305 23ZM18 8H6V9.5H18V8ZM6 12.5H13.5V14H6V12.5Z\" }));\nexport default SvgChat;\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChatIcon from '@vp/assets/icons/Chat.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nexport const NoRecordsMessage: FC = () => {\n return (\n \n \n\n \n Здесь пока ничего нет\n \n\n \n Поделитесь с близкими возможностью оставить запись о вашем ушедшем близком, чтобы сохранить дорогие воспоминания.\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { FC } from 'react';\n\nimport { VpLimitInfo } from '@vp/common/ui/component/VpLimitInfo';\nimport { HonorManagerListItem } from '@vp/manager/honor/ui/component/list/HonorManagerListItem';\nimport { NoRecordsMessage } from '@vp/manager/honor/ui/component/NoRecordsMessage';\nimport { RequestState } from '@vp/manager/honor/ui/HonorManagerViewModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\ninterface HonorManagerListProps {\n records: ProfileHonorRecordModel[];\n profile: ProfileModel;\n actionButtonText: string;\n activeRequestState: RequestState;\n actionHandler: (record: ProfileHonorRecordModel) => void | Promise;\n removeHandler: (id: string) => void;\n}\n\nexport const HonorManagerList: FC = ({\n records,\n actionHandler,\n removeHandler,\n profile,\n actionButtonText,\n activeRequestState,\n}) => {\n if (!records.length) {\n return ;\n }\n\n return (\n \n \n {records.map(record => (\n \n \n \n ))}\n\n {!profile.premium && (\n \n \n \n )}\n \n \n );\n};\n","import { useState, useCallback } from 'react';\n\nimport { Status } from '@vp/manager/honor/ui/HonorManagerViewModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\n\ninterface UseRecordEditProps {\n editRecord: (id: string, newText: string) => Promise;\n}\n\nexport interface RecordEditState {\n openRecordEditModal: (record: ProfileHonorRecordModel) => void;\n closeRecordEditModal: () => void;\n handleRecordEdit: (id: string, newText: string) => Promise;\n recordToEdit: ProfileHonorRecordModel | null;\n}\n\nexport const useRecordEdit = ({ editRecord }: UseRecordEditProps): RecordEditState => {\n const [recordToEdit, setRecordToEdit] = useState(null);\n\n const openRecordEditModal = useCallback((record: ProfileHonorRecordModel) => setRecordToEdit(record), []);\n const closeRecordEditModal = useCallback(() => setRecordToEdit(null), []);\n\n const handleRecordEdit = useCallback(\n async (id: string, newText: string) => {\n if (recordToEdit) {\n const status = await editRecord(id, newText);\n\n if (status === 'success') {\n setRecordToEdit(null);\n closeRecordEditModal();\n }\n }\n },\n [closeRecordEditModal, editRecord, recordToEdit],\n );\n\n return {\n recordToEdit,\n openRecordEditModal,\n closeRecordEditModal,\n handleRecordEdit,\n };\n};\n","import { useState, useCallback } from 'react';\n\nimport { Status } from '@vp/manager/honor/ui/HonorManagerViewModel';\n\ninterface UseRecordRemovalProps {\n removeRecords: (ids: string[]) => Promise;\n}\n\nexport interface RecordRemovalState {\n openRemoveRecordDialog: (id: string) => void;\n closeRemoveRecordDialog: () => void;\n handleRemoveRecord: () => Promise;\n recordToRemove: string | null;\n}\n\nexport const useRecordRemoval = ({ removeRecords }: UseRecordRemovalProps): RecordRemovalState => {\n const [recordToRemove, setRecordToRemove] = useState(null);\n\n const openRemoveRecordDialog = useCallback((id: string) => setRecordToRemove(id), []);\n const closeRemoveRecordDialog = useCallback(() => setRecordToRemove(null), []);\n\n const handleRemoveRecord = useCallback(async () => {\n if (recordToRemove) {\n await removeRecords([recordToRemove]);\n setRecordToRemove(null);\n closeRemoveRecordDialog();\n }\n }, [recordToRemove, removeRecords, closeRemoveRecordDialog]);\n\n return {\n openRemoveRecordDialog,\n closeRemoveRecordDialog,\n handleRemoveRecord,\n recordToRemove,\n };\n};\n","import { AnimatePresence } from 'motion/react';\nimport { FC, Fragment, useCallback } from 'react';\n\nimport { VpDialog } from '@vp/common/ui/component/VpDialog';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { SubmitRecordBody } from '@vp/honor/ui/components/SubmitRecordBody';\nimport { HonorManagerEditModal } from '@vp/manager/honor/ui/component/edit/HonorManagerEditModal';\nimport { HonorManagerList } from '@vp/manager/honor/ui/component/list/HonorManagerList';\nimport { HonorManagerSection } from '@vp/manager/honor/ui/HonorManagerSection';\nimport { RequestState, Status } from '@vp/manager/honor/ui/HonorManagerViewModel';\nimport { useRecordEdit } from '@vp/manager/honor/ui/hook/useRecordEdit';\nimport { useRecordRemoval } from '@vp/manager/honor/ui/hook/useRecordRemoval';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\ninterface HonorManagerBodyProps {\n removeRecords: (ids: string[]) => Promise;\n approveRecords: (ids: string[]) => Promise;\n editRecord: (id: string, newText: string) => Promise;\n handleSubmissionResult: (status: ProfileHonorNotificationStatus, record: ProfileHonorRecordModel | null) => void;\n handleBeforeSubmission: () => void;\n profile: ProfileModel;\n pendingRecords: ProfileHonorRecordModel[];\n approvedRecords: ProfileHonorRecordModel[];\n activeRequestState: RequestState;\n}\n\nexport const HonorManagerBody: FC = ({\n removeRecords,\n editRecord,\n approveRecords,\n handleSubmissionResult,\n handleBeforeSubmission,\n profile,\n pendingRecords,\n approvedRecords,\n activeRequestState,\n}) => {\n const activeSection = useSearchSection('s', HonorManagerSection.Approved);\n\n const handleRecordApprove = useCallback((record: ProfileHonorRecordModel) => void approveRecords([record.id]), [approveRecords]);\n const { openRemoveRecordDialog, closeRemoveRecordDialog, handleRemoveRecord, recordToRemove } = useRecordRemoval({\n removeRecords,\n });\n const { openRecordEditModal, closeRecordEditModal, handleRecordEdit, recordToEdit } = useRecordEdit({ editRecord });\n\n return (\n \n \n \n {activeSection === HonorManagerSection.Approved && (\n \n )}\n {activeSection === HonorManagerSection.Pending && (\n \n )}\n {activeSection === HonorManagerSection.YourRecord && (\n \n )}\n \n \n\n \n\n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpLoadingWrapper } from '@vp/common/ui/component/VpLoadingWrapper';\nimport { useSearchSectionCheck } from '@vp/common/ui/hook/useSearchSectionCheck';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { HonorManagerHeader } from '@vp/manager/honor/ui/component/header/HonorManagerHeader';\nimport { HonorManagerBody } from '@vp/manager/honor/ui/component/HonorManagerBody';\nimport { HonorManagerSection } from '@vp/manager/honor/ui/HonorManagerSection';\nimport { HonorManagerViewModel } from '@vp/manager/honor/ui/HonorManagerViewModel';\n\nexport const HonorManagerPage: FC = () => {\n const viewModel = useViewModel(HonorManagerViewModel);\n\n useSearchSectionCheck('s', HonorManagerSection.Approved);\n\n return (\n \n \n\n \n \n \n \n \n \n );\n};\n","import { Box, ButtonBase, Stack, SvgIcon, Typography } from '@mui/material';\nimport { FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport ChevronRight from '@vp/assets/icons/ChevronRight.svg?react';\nimport { MenuItem } from '@vp/manager/profile/ui/settings/menu/ProfileSettingsMenu';\n\nexport interface ProfileSettingsMenuItemProps {\n item: MenuItem;\n isFirst: boolean;\n isLast: boolean;\n}\n\nexport const ProfileSettingsMenuItem: FC = ({ item, isLast }) => {\n const Icon = item.Icon;\n\n return (\n ({\n backgroundColor: 'transparent',\n textTransform: 'none',\n pt: 0.5,\n pb: isLast ? 0.5 : 0,\n pl: 3,\n pr: 2,\n width: 1,\n borderRadius: 0,\n color: theme.palette.text.secondary,\n })}\n LinkComponent={Link}\n {...{ to: item.path }}\n >\n ({\n width: 1,\n px: 2,\n pt: 2.25,\n pb: `calc(${theme.spacing(2.25)} - 1px)`,\n borderBottom: '1px solid',\n alignItems: 'center',\n borderColor: !isLast ? theme.palette.transparency.alpha16 : 'transparent',\n })}\n >\n \n \n \n\n {item.text}\n\n \n\n \n ({ fontSize: 24, color: theme.palette.text.disabled, filter: 'blur(5px)' })}>\n \n \n\n ({ fontSize: 24, color: theme.palette.text.disabled, position: 'absolute', inset: 0 })}>\n \n \n \n \n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { ProfileSettingsMenuItem } from '@vp/manager/profile/ui/settings/menu/ProfileSettingsMenuItem';\n\nexport interface MenuItem {\n path: string;\n Icon: FC;\n text: string;\n}\n\nexport interface ProfileSettingsMenuProps {\n items: MenuItem[];\n}\n\nexport const ProfileSettingsMenu: FC = ({ items }) => {\n return (\n \n ({ width: 1, backgroundColor: theme.palette.background['200'], borderRadius: 1.5 })}>\n {items.map((item, index) => {\n const isFirst = index === 0;\n const isLast = index === items.length - 1;\n return ;\n })}\n \n \n );\n};\n","import * as React from \"react\";\nconst SvgQrCode = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.5 11H22.5V2H13.5V11ZM21 9.5H15V3.5H21V9.5ZM19.5 5H16.5V8H19.5V5ZM1.5 23H10.5V14H1.5V23ZM9 21.5H3V15.5H9V21.5ZM19.5 14V15.5H21V17H22.5V14H19.5ZM13.5 18.5V17H15V18.5H13.5ZM16.5 15.5V18.5H15V20H13.5V23H16.5V21.5H15V20H18V21.5H19.5V23H22.5V20H21V21.5H19.5V20H20.9999V17H19.4999V20H18V15.5H16.5ZM16.5 15.5V14H13.5V15.5H16.5ZM7.5 17H4.5V20H7.5V17ZM7.5 5H4.5V8H7.5V5ZM1.5 11H10.5V2H1.5V11ZM9 9.5H3V3.5H9V9.5Z\", fill: \"currentColor\" }));\nexport default SvgQrCode;\n","import { Box, Stack, SvgIcon, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport QrCode from '@vp/assets/icons/QrCode.svg?react';\nimport UserMultipleGradient from '@vp/assets/icons/UserMultipleGradient.svg?react';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\n\nconst Title = 'У вас пока нет управляемых профилей';\nconst Caption =\n 'Вы можете приобрести наш специальный блистер с QR-кодом, который будет хранить тёплые воспоминания и важные моменты о ваших близких.';\n\nconst ButtonText = 'Хочу запечатлеть Впамяти';\n\nconst ButtonGradient =\n 'linear-gradient(90.82deg, rgba(229, 229, 229, 0.35) -43.91%, rgba(229, 229, 229, 0.15) 48.8%, rgba(229, 229, 229, 0) 150.27%)';\n\nexport const NoProfiles: FC = () => {\n return (\n \n \n \n \n \n\n \n \n \n \n\n \n {Title}\n \n\n \n {Caption}\n \n\n \n \n );\n};\n","import { useMediaQuery, useTheme } from '@mui/material';\nimport { useMemo } from 'react';\n\nexport type ImageSizes = {\n fullImageHeight: number;\n smallImageHeight: number;\n};\n\nexport const useImageSizes = (): ImageSizes => {\n const { customSizes, breakpoints } = useTheme();\n const { fullImageHeight, smallImageHeight } = customSizes;\n const isMobile = useMediaQuery(breakpoints.only('mobile'));\n\n return useMemo(\n () =>\n isMobile\n ? { fullImageHeight: fullImageHeight.mobile, smallImageHeight: smallImageHeight.mobile }\n : { fullImageHeight: fullImageHeight.tablet, smallImageHeight: smallImageHeight.tablet },\n [fullImageHeight.mobile, fullImageHeight.tablet, isMobile, smallImageHeight.mobile, smallImageHeight.tablet],\n );\n};\n","import { Box } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { useImageSizes } from '@vp/profile/ui/hook/useImageSizes';\n\nexport interface ProfileSettingsImageProps {\n profile: ProfileModel;\n}\n\nconst Gradient = 'linear-gradient(rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.72) 56.8%, rgba(0, 0, 0, 0.9) 100%)';\n\nexport const ProfileSettingsImage: FC = ({ profile }) => {\n const { smallImageHeight } = useImageSizes();\n\n return (\n \n \n \n \n );\n};\n","import { Box, Stack, Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { FC, useCallback, useRef, useState } from 'react';\n\nimport { useRectOnResize } from '@vp/common/ui/hook/useRectOnResize';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\n\nexport interface ProfileSettingsNavigationProps {\n profile: ProfileModel;\n}\n\nexport const ProfileSettingsInfo: FC = ({ profile }) => {\n const containerRef = useRef(null!);\n const [marginTop, setMarginTop] = useState(0);\n const [top, setTop] = useState(0);\n\n const { customSizes, breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n const name = profile.name || 'Имя не указано';\n const dates = profile.birthDate && profile.deathDate ? `${profile.birthDate} - ${profile.deathDate}` : '';\n\n useRectOnResize(\n containerRef,\n useCallback(\n ({ height }) => {\n if (!isDesktop) {\n setMarginTop(-(height + customSizes.profileSettingsMenuOffset.mobile));\n setTop(customSizes.smallImageHeight.mobile - height - customSizes.profileSettingsMenuOffset.mobile);\n } else {\n setMarginTop(0);\n setTop(0);\n }\n },\n [customSizes.profileSettingsMenuOffset.mobile, customSizes.smallImageHeight.mobile, isDesktop],\n ),\n );\n\n return (\n \n \n \n {name}\n \n\n \n {dates}\n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M16.35 2.45L19.05 5.15C19.65 5.75 19.65 6.65 19.05 7.25L7.8 18.5H3V13.7L14.25 2.45C14.85 1.85 15.75 1.85 16.35 2.45ZM18 6.2L15.3 3.5L13.05 5.75L15.75 8.45L18 6.2ZM4.5 14.3V17H7.2L14.7 9.5L12 6.8L4.5 14.3ZM1.5 21.5V20H22.5V21.5H1.5Z\", fill: \"currentColor\" }));\nexport default SvgEdit;\n","import * as React from \"react\";\nconst SvgMenu = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3 5H21V6.5H3V5ZM3 18.5H21V20H3V18.5ZM21 9.5H3V11H21V9.5ZM3 14H21V15.5H3V14Z\", fill: \"currentColor\" }));\nexport default SvgMenu;\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport Edit from '@vp/assets/icons/Edit.svg?react';\nimport Menu from '@vp/assets/icons/Menu.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport interface ProfileSettingsPageHeaderProps {\n noProfiles: boolean;\n onMenuClick: () => void;\n}\n\nexport const ProfileSettingsPageHeader: FC = ({ noProfiles, onMenuClick }) => {\n return (\n \n \n ({ [theme.breakpoints.up('desktop')]: { p: 2 } })} onClick={onMenuClick} />\n \n\n \n {!noProfiles && (\n \n Настройки профиля\n \n )}\n \n\n \n {!noProfiles && ({ [theme.breakpoints.up('desktop')]: { p: 2 } })} to=\"avatar\" />}\n \n \n );\n};\n","import { Stack, useMediaQuery, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFallback } from '@vp/common/ui/component/VpFallback';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileSettingsMenu } from '@vp/manager/profile/ui/settings/menu/ProfileSettingsMenu';\nimport { NoProfiles } from '@vp/manager/profile/ui/settings/NoProfiles';\nimport { ProfileSettingsImage } from '@vp/manager/profile/ui/settings/ProfileSettingsImage';\nimport { ProfileSettingsInfo } from '@vp/manager/profile/ui/settings/ProfileSettingsInfo';\nimport { ProfileSettingsPageHeader } from '@vp/manager/profile/ui/settings/ProfileSettingsPageHeader';\nimport { ProfileSettingsViewModel } from '@vp/manager/profile/ui/settings/ProfileSettingsViewModel';\n\nexport const ProfileSettingsPage: FC = () => {\n const viewModel = useViewModel(ProfileSettingsViewModel);\n\n const { breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n return (\n \n \n\n {viewModel.isError.value && (\n \n )}\n\n {!viewModel.isError.value && viewModel.noProfiles.value && }\n\n {viewModel.profile.value && (\n ({ width: 1, [theme.breakpoints.up('desktop')]: { pt: 10.25 } })}>\n {!isDesktop && }\n \n\n \n \n \n \n \n )}\n \n );\n};\n","import { Stack, Theme } from '@mui/material';\nimport { SxProps } from '@mui/system';\nimport { FC, PropsWithChildren } from 'react';\n\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\n\nexport type VpPaperProps = PropsWithChildren & {\n sx?: SxProps;\n};\n\nexport const VpPaper: FC = ({ sx, children }) => {\n return (\n ({\n p: 2,\n width: 1,\n borderRadius: '12px',\n backgroundColor: 'background.200',\n ...resolveSx(sx, theme),\n })}\n >\n {children}\n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nconst Text =\n 'В этот день, 2 сентября 1934 года, на свет появилась Елена — женщина с большим сердцем и глубокой мудростью. Её жизнь с самого начала была наполнена теплотой и заботой о тех, кто её окружал, и именно эти качества стали краеугольным камнем её жизненного пути. С раннего детства она выделялась искренней добротой, чуткостью и стремлением поддержать близких, что стало для неё неизменным ориентиром на протяжении всей её жизни.';\n\nexport const ProfileExampleBio: FC = () => {\n return (\n \n {Text}\n \n );\n};\n","export default \"__VITE_ASSET__C2JH26DR__\"","import { Typography } from '@mui/material';\nimport { FC, memo } from 'react';\n\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\n\nexport type ProfileEventDescriptionProps = {\n event: ProfileEventModel;\n};\n\nexport const ProfileEventDescription: FC = memo(({ event }) => {\n return (\n \n {event.description}\n \n );\n});\n\nProfileEventDescription.displayName = ProfileEventDescription.name;\n","import { Box, Stack, Typography, useTheme } from '@mui/material';\nimport { SxProps, Theme } from '@mui/system';\nimport { CSSProperties, FC, memo } from 'react';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { useLinearGradient } from '@vp/common/ui/hook/useLinearGradient';\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\n\nexport type ProfileEventImageProps = { event: ProfileEventModel; sx?: SxProps };\n\nexport const ProfileEventImage: FC = memo(({ event, sx }) => {\n const { palette } = useTheme();\n\n const gradient = useLinearGradient({\n angle: '133.62deg',\n color: 'var(--vp-primary-color)',\n stops: [\n { percent: -18.03, opacity: 1 },\n { percent: 52.31, opacity: 0.5 },\n { percent: 91.87, opacity: 0 },\n ],\n });\n\n return (\n \n \n ({\n ...theme.applyStyles('dark', {\n transition: '--vp-primary-color 0.25s ease-in-out',\n background: gradient,\n filter: 'blur(8px)',\n }),\n })}\n />\n\n \n \n \n \n \n \n \n \n\n \n {event.date}\n \n \n );\n});\n\nProfileEventImage.displayName = ProfileEventImage.name;\n","import { Stack } from '@mui/material';\nimport { FC, memo } from 'react';\n\nimport DemoEventImage from '@vp/assets/demo/DemoEvent.jpg';\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\nimport { ProfileEventDescription } from '@vp/profile/ui/events/ProfileEventDescription';\nimport { ProfileEventImage } from '@vp/profile/ui/events/ProfileEventImage';\n\nconst Event: ProfileEventModel = {\n id: '1',\n date: '02.09.1934',\n image: DemoEventImage,\n hash: 'LPEV+:D%IUj[00t7oft7xuj[ofRj',\n description:\n 'В этот день родилась Елена, человек с большим сердцем и мудрой душой. С самого детства она отличалась добротой и заботой о близких, что стало основой её жизненного пути.',\n};\n\nexport const ProfileExampleEvents: FC = memo(() => {\n return (\n \n \n \n \n );\n});\n\nProfileExampleEvents.displayName = ProfileExampleEvents.name;\n","export default \"__VITE_ASSET__nvX8GvjG__\"","export default \"__VITE_ASSET__U0hJ1KYi__\"","export default \"__VITE_ASSET__BdVvVFQ2__\"","export default \"__VITE_ASSET__DveeHzra__\"","import { FC, memo } from 'react';\n\nimport DemoEvent from '@vp/assets/demo/DemoEvent.jpg';\nimport DemoPhoto1 from '@vp/assets/demo/DemoPhoto1.jpg';\nimport DemoPhoto2 from '@vp/assets/demo/DemoPhoto2.jpg';\nimport DemoPhoto3 from '@vp/assets/demo/DemoPhoto3.jpg';\nimport DemoPhoto4 from '@vp/assets/demo/DemoPhoto4.jpg';\nimport { MediaGridItem, VpMediaGrid } from '@vp/common/ui/component/VpMediaGrid';\n\nconst Items: MediaGridItem[] = [\n { id: '1', hash: 'LPEV+:D%IUj[00t7oft7xuj[ofRj', url: DemoEvent, type: 'photo' },\n { id: '2', hash: 'L7A,zkay00M{ayM{-;Rj4nRj~qt7', url: DemoPhoto1, type: 'photo' },\n { id: '3', hash: 'LHE{kND%00xuIURjt7RjD%xu%MRj', url: DemoPhoto2, type: 'photo' },\n { id: '4', hash: 'LMH_=B~qRjj[-;%MRjRjxuoft7t7', url: DemoPhoto3, type: 'photo' },\n { id: '5', hash: 'LGHLbv-;4n%M~q%MIUxu%Mt7D%ay', url: DemoPhoto4, type: 'photo' },\n];\n\nexport const ProfileExampleGallery: FC = memo(() => {\n return ;\n});\n\nProfileExampleGallery.displayName = ProfileExampleGallery.name;\n","import { Box, Stack, useTheme } from '@mui/material';\nimport { SxProps, Theme } from '@mui/system';\nimport { SystemStyleObject } from '@mui/system/styleFunctionSx/styleFunctionSx';\nimport { CSSProperties, FC } from 'react';\n\nimport { useLinearGradient } from '@vp/common/ui/hook/useLinearGradient';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorRecord } from '@vp/profile/ui/honor/ProfileHonorRecord';\n\nexport interface ProfileHonorRecordsProps {\n records: ProfileHonorRecordModel[];\n sx?: SxProps;\n}\n\nexport const ProfileHonorRecords: FC = ({ records, sx }) => {\n const theme = useTheme();\n const divider = useDivider();\n\n return (\n \n {records.map((record, index, records) => {\n const isLastRecord = index + 1 === records.length;\n\n return (\n \n \n {!isLastRecord && (\n \n )}\n \n );\n })}\n \n );\n};\n\nconst useDivider = (): SystemStyleObject => {\n const { spacing } = useTheme();\n\n const gradient = useLinearGradient({\n angle: '90deg',\n color: 'var(--vp-primary-color)',\n stops: [\n { percent: 0, opacity: 1 },\n { percent: 64, opacity: 0.5 },\n { percent: 100, opacity: 0 },\n ],\n });\n\n return {\n content: '\"\"',\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n transition: '--vp-primary-color 0.25s ease-in-out',\n background: gradient,\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '1px',\n marginTop: { mobile: spacing(1.5), tablet: spacing(2) },\n };\n};\n","import { useInjection } from 'inversify-react';\nimport { FC, memo, useMemo } from 'react';\n\nimport { TimeAgoFormatter } from '@vp/common/ui/TimeAgoFormatter';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorRecords } from '@vp/profile/ui/honor/ProfileHonorRecords';\n\nconst Records: ProfileHonorRecordModel[] = [\n {\n id: '1',\n author: 'Ольга и Сергей Ивановы',\n date: '11/02/2023',\n text: 'Елена была светлым человеком, всегда готовая прийти на помощь и поддержать. Её улыбка озаряла каждый день, и память о ней будет жить в наших сердцах.',\n approved: true,\n },\n {\n id: '2',\n author: 'Мария Петрова',\n date: '07/23/2024',\n text: 'Невозможно забыть ту теплоту и доброту, с которыми Елена относилась ко всем вокруг. Она оставила неизгладимый след в нашей жизни.',\n approved: true,\n },\n {\n id: '3',\n author: 'Александр Сидоров',\n date: '08/23/2024',\n text: 'Елена была настоящим другом, чьё присутствие приносило мир и покой. Её доброта и мудрость останутся с нами навсегда.',\n approved: true,\n },\n];\n\nexport const ProfileExampleHonor: FC = memo(() => {\n const timeAgoFormatter = useInjection(TimeAgoFormatter);\n\n const records = useMemo(\n () => Records.map(record => ({ ...record, date: timeAgoFormatter.getTimeAgo(new Date(record.date)) })),\n [timeAgoFormatter],\n );\n\n return ;\n});\n\nProfileExampleHonor.displayName = ProfileExampleHonor.name;\n","import { SxProps, Theme } from '@mui/system';\nimport { FC } from 'react';\n\nimport { VpTab, VpTabs } from '@vp/common/ui/component/VpTabs';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { resolveSx } from '@vp/common/ui/util/resolveSx';\nimport { ProfileSection } from '@vp/profile/ui/ProfileViewModel';\n\nconst Tabs: VpTab[] = [\n { id: 'bio', name: 'Биография', url: '.?s=bio' },\n { id: 'events', name: 'События', url: '.?s=events' },\n { id: 'gallery', name: 'Галерея', url: '.?s=gallery&m=images' },\n { id: 'honor', name: 'Почести', url: '.?s=honor' },\n];\n\nexport type ProfileNavigationProps = { sx?: SxProps; defaultSection?: ProfileSection };\n\nexport const ProfileNavigation: FC = ({ sx, defaultSection = ProfileSection.Bio }) => {\n const section = useSearchSection('s', defaultSection);\n return ({ px: { mobile: 3, tablet: 7 }, ...resolveSx(sx, theme) })} />;\n};\n","import { Box } from '@mui/material';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { FC, memo } from 'react';\n\nimport { VpPaper } from '@vp/common/ui/component/VpPaper';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { useSearchSectionCheck } from '@vp/common/ui/hook/useSearchSectionCheck';\nimport { ProfileExampleBio } from '@vp/manager/theming/ui/example/ProfileExampleBio';\nimport { ProfileExampleEvents } from '@vp/manager/theming/ui/example/ProfileExampleEvents';\nimport { ProfileExampleGallery } from '@vp/manager/theming/ui/example/ProfileExampleGallery';\nimport { ProfileExampleHonor } from '@vp/manager/theming/ui/example/ProfileExampleHonor';\nimport { ProfileNavigation } from '@vp/profile/ui/navigation/ProfileNavigation';\nimport { ProfileSection } from '@vp/profile/ui/ProfileViewModel';\n\nexport const ThemingManagerProfileExample: FC = memo(() => {\n useSearchSectionCheck('s', ProfileSection.Events);\n\n const section = useSearchSection('s', ProfileSection.Events);\n\n return (\n \n \n \n\n \n \n {section === ProfileSection.Bio && }\n {section === ProfileSection.Events && }\n {section === ProfileSection.Gallery && }\n {section === ProfileSection.Honor && }\n \n \n \n\n ({\n ...theme.applyStyles('light', {\n inset: 0,\n position: 'absolute',\n pointerEvents: 'none',\n backgroundImage: theme.lightNoise,\n }),\n })}\n />\n \n );\n});\n\nThemingManagerProfileExample.displayName = ThemingManagerProfileExample.name;\n","import { Stack } from '@mui/material';\nimport { FC, memo } from 'react';\n\nimport { VpButton } from '@vp/common/ui/component/VpButton';\n\nexport type ThemingManagerControlsProps = {\n loading: boolean;\n onSave: () => void;\n onCancel: () => void;\n};\n\nexport const ThemingManagerControls: FC = memo(({ loading, onSave, onCancel }) => {\n return (\n \n \n \n \n );\n});\n\nThemingManagerControls.displayName = ThemingManagerControls.name;\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChevronLeft from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport const ThemingManagerPageHeader: FC = () => {\n return (\n ({\n position: 'static',\n background: theme.palette.background[300],\n px: { tablet: 4 },\n pt: { tablet: 2 },\n pb: { mobile: 1, tablet: 2 },\n })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })} to=\"..\" />\n \n\n \n \n Выбор темы\n \n \n\n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC, memo } from 'react';\n\nimport ColorPalette from '@vp/assets/icons/ColorPalette.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { VpPaper } from '@vp/common/ui/component/VpPaper';\nimport { VpToggle } from '@vp/common/ui/component/VpToggle';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\n\nexport type ThemingManagerSettingsProps = { theme: ProfileThemeModel; switchTheme: () => void };\n\nexport const ThemingManagerSettings: FC = memo(({ theme, switchTheme }) => {\n return (\n \n \n \n Светлая тема\n \n \n \n );\n});\n\nThemingManagerSettings.displayName = ThemingManagerSettings.name;\n","import { PaletteOptions } from '@mui/material/styles/createPalette';\n\nexport const paletteDark: PaletteOptions = {\n mode: 'dark',\n primary: {\n 400: 'rgba(245, 245, 245, 1)',\n 500: 'rgba(237, 237, 237, 1)',\n 600: 'rgba(217, 217, 217, 1)',\n 700: 'rgba(181, 181, 181, 1)',\n alpha8: 'rgba(237, 237, 237, 0.08)',\n alpha16: 'rgba(237, 237, 237, 0.16)',\n alpha24: 'rgba(237, 237, 237, 0.24)',\n alpha32: 'rgba(237, 237, 237, 0.32)',\n },\n transparency: {\n alpha8: 'rgba(255, 255, 255, 0.08)',\n alpha16: 'rgba(255, 255, 255, 0.16)',\n alpha24: 'rgba(255, 255, 255, 0.24)',\n alpha32: 'rgba(255, 255, 255, 0.32)',\n alpha48: 'rgba(255, 255, 255, 0.48)',\n },\n background: {\n 100: 'rgba(46, 46, 46, 1)',\n 200: 'rgba(30, 30, 30, 1)',\n 300: 'rgba(18, 18, 18, 1)',\n default: 'rgba(18, 18, 18, 1)',\n },\n text: {\n primary: 'rgba(255, 255, 255, 1)',\n secondary: 'rgba(229, 229, 229, 1)',\n disabled: 'rgba(159, 159, 159, 1)',\n secondaryDisabled: 'rgba(124, 124, 124, 1)',\n 5: 'rgba(78, 78, 78, 1)',\n 6: 'rgba(18, 18, 18, 1)',\n },\n};\n\nexport const paletteLight: PaletteOptions = {\n mode: 'light',\n primary: {\n 400: 'rgba(30, 30, 30, 1)',\n 500: 'rgba(18, 18, 18, 1)',\n 600: 'rgba(19, 19, 19, 1)',\n 700: 'rgba(0, 0, 0, 1)',\n alpha8: 'rgba(18, 18, 18, 0.08)',\n alpha16: 'rgba(18, 18, 18, 0.16)',\n alpha24: 'rgba(18, 18, 18, 0.24)',\n alpha32: 'rgba(18, 18, 18, 0.32)',\n },\n background: {\n 100: 'rgba(249, 246, 242, 1)',\n 200: 'rgba(243, 240, 235, 1)',\n 300: 'rgba(236, 231, 226, 1)',\n default: 'rgba(236, 231, 226, 1)',\n },\n text: {\n primary: 'rgba(18, 18, 18, 1)',\n secondary: 'rgba(78, 78, 78, 1)',\n disabled: 'rgba(78, 78, 78, 1)',\n secondaryDisabled: 'rgba(159, 159, 159, 1)',\n 5: 'rgba(229, 229, 299, 1)',\n 6: 'rgba(255, 255, 255, 1)',\n },\n transparency: {\n alpha8: 'rgba(18, 18, 18, 0.08)',\n alpha16: 'rgba(18, 18, 18, 0.16)',\n alpha24: 'rgba(18, 18, 18, 0.24)',\n alpha32: 'rgba(18, 18, 18, 0.32)',\n alpha48: 'rgba(18, 18, 18, 0.48)',\n },\n};\n\nexport const systemPalette: PaletteOptions = {\n secondary: {\n main: 'rgba(158, 141, 184, 1)',\n 400: 'rgba(191, 175, 212, 1)',\n 500: 'rgba(158, 141, 184, 1)',\n 600: 'rgba(122, 103, 158, 1)',\n 700: 'rgba(90, 71, 132, 1)',\n alpha8: 'rgba(158, 141, 184, 0.08)',\n alpha16: 'rgba(158, 141, 184, 0.16)',\n alpha24: 'rgba(158, 141, 184, 0.24)',\n alpha32: 'rgba(158, 141, 184, 0.32)',\n },\n info: {\n 400: 'rgba(152, 199, 255, 1)',\n 500: 'rgba(126, 180, 255, 1)',\n 600: 'rgba(84, 149, 255, 1)',\n 700: 'rgba(61, 115, 219, 1)',\n alpha8: 'rgba(126, 180, 255, 0.08)',\n alpha16: 'rgba(126, 180, 255, 0.16)',\n alpha24: 'rgba(126, 180, 255, 0.24)',\n alpha32: 'rgba(126, 180, 255, 0.32)',\n },\n success: {\n 400: 'rgba(188, 228, 121, 1)',\n 500: 'rgba(156, 211, 79, 1)',\n 600: 'rgba(124, 181, 57, 1)',\n 700: 'rgba(95, 151, 39, 1)',\n alpha8: 'rgba(156, 211, 79, 0.08)',\n alpha16: 'rgba(156, 211, 79, 0.16)',\n alpha24: 'rgba(156, 211, 79, 0.24)',\n alpha32: 'rgba(156, 211, 79, 0.32)',\n },\n warning: {\n 400: 'rgba(234, 212, 128, 1)',\n 500: 'rgba(221, 190, 88, 1)',\n 600: 'rgba(190, 157, 64, 1)',\n 700: 'rgba(159, 126, 44, 1)',\n alpha8: 'rgba(221, 190, 88, 0.08)',\n alpha16: 'rgba(221, 190, 88, 0.16)',\n alpha24: 'rgba(221, 190, 88, 0.24)',\n alpha32: 'rgba(221, 190, 88, 0.32)',\n },\n danger: {\n 400: 'rgba(239, 138, 140, 1)',\n 500: 'rgba(223, 106, 119, 1)',\n 600: 'rgba(202, 61, 90, 1)',\n 700: 'rgba(173, 44, 83, 1)',\n alpha8: 'rgba(223, 106, 119, 0.08)',\n alpha16: 'rgba(223, 106, 119, 0.16)',\n alpha24: 'rgba(223, 106, 119, 0.24)',\n alpha32: 'rgba(223, 106, 119, 0.32)',\n },\n basic: {\n alpha8: 'rgba(18, 18, 18, 0.08)',\n alpha16: 'rgba(18, 18, 18, 0.16)',\n alpha24: 'rgba(18, 18, 18, 0.24)',\n alpha32: 'rgba(18, 18, 18, 0.32)',\n alpha48: 'rgba(18, 18, 18, 0.48)',\n },\n ...paletteDark,\n};\n\nexport const primaryColorCssProperty = `\n @property --vp-primary-color {\n syntax: '';\n inherits: true;\n initial-value: transparent;\n }\n`;\n","import type { BreakpointsOptions } from '@mui/system/createBreakpoints/createBreakpoints';\n\nexport const breakpoints: BreakpointsOptions = {\n values: {\n mobile: 0,\n tablet: 640,\n desktop: 1440,\n },\n};\n","export const customSizes = {\n smallImageHeight: {\n mobile: 286,\n tablet: 400,\n },\n fullImageHeight: {\n mobile: 436,\n tablet: 866,\n },\n profileSettingsMenuOffset: {\n mobile: 38,\n },\n};\n","export const lightNoise =\n \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMHSURBVHgB7Z1LbsUgDEXZQ/fQ6dObROr+N1ZFVdQ0zQeD/75n1jYi5mIMOEBbG2BZlo+e33GUu+f1en22SWbK4KhjGKJXVsx+asEehbzrwaW83AMRBRe3ufcFVuJxjEWc72HXAV6pwFPr7ivEXbmtPC1PBoKsjUhxJmrZjRGSHZiN8NOtaZUxII2TWVWk5GIRoekZaAR8c+ehZ39DAjE4+wYsMVmgGvx+v7+aMhbpHpayJL3hWDbChyHexKfYs4Y8OA/gw10cnihz9nM2etYDIwJRp9luGqHHEK5nNIB3TyI1iwvVMF6+PUgTyl7NQTxtGKn0vcEiMwAYWB2O6nTHUHb8OYQTl569PC1sMoqD6WqTG9jLDvLSaA+s2aOAazQFR49lxFosNFZVsK9LkCq5qbJE8eJKqSQVLMQRfaf1h6PRkMdlk9QRBxCZq1bv8Qavg3i4c41XBmeYJaWY6WE34TnQYQKI17AQHGbks6QnMlwFAk6gHgoaeQZMMHpVlMU5k5RQhDRPiYBf3Oo1s4oHilRrkNHpPZYFmam0bgkPxhBlrmIfYmlBovY+RA1nuGsQ67AEDzXEk/g9G7r//Z56hURzACVLcGbz+hxHXbgbv0xP5kyfSzklwuoJoa/EoJ6DmK2AxoEe6ePbKiFf21Mihoy9M7Hvz+L6+9WzWg3sLeT8safqgNLjreraULpQ1u/F7vJpowLOCh81sejC4XBg5Z7QU+Y9Wuc3PDJd95kCMvUWrKoPSArCUTYa7ISUonhNZQMmIl06yZWi7yX93oKSIUs6O+qxzNKMdONUjeDhgsber3uctoW8ldRqUZhlsEP4NEJE+DuvREv/Iq6Fd7HhDAxkE9HlmIb/ucQHu46Z7pHa6rLZfGa72/p4mLtb7FbRflc3Wjs2jmVoxPAtJJsKP1vRu26eFWyOHnwOdFDl4gHuPc4l8CASqw04SasELgiYZ/SaJzVDkC8TAAPTD5w63PYU6ouWyevx9liOR64czeIklIb42vWiLpBNnGA0SbdvMEvv1Xz3N03z5H9NOtw2AAAAAElFTkSuQmCC')\";\n","import { Shadows } from '@mui/material';\n\nexport const shadows = ((): Shadows => {\n const shadows: string[] = new Array(33).fill('none');\n\n shadows[2] = '0px 2px 2px 0px rgba(34, 32, 31, 0.16)';\n shadows[4] = '0px 4px 8px 0px rgba(34, 32, 31, 0.16)';\n shadows[8] = '0px 8px 12px 0px rgba(34, 32, 31, 0.12)';\n shadows[16] = '0px 16px 32px 0px rgba(34, 32, 31, 0.16)';\n shadows[24] = '0px 24px 48px 0px rgba(34, 32, 31, 0.16)';\n shadows[32] = '0px 32px 96px 10px rgba(34, 32, 31, 0.32)';\n\n return shadows as Shadows;\n})();\n","import { Transitions } from '@mui/material';\n\nexport const transitions = {\n duration: { modalFadeDuration: 500 },\n} as Transitions;\n","export default \"__VITE_ASSET__BnrLwX7t__\"","export default \"__VITE_ASSET__CdAY_P$R__\"","export default \"__VITE_ASSET__BMTNwzWM__\"","import { TypographyOptions } from '@mui/material/styles/createTypography';\n\nimport BluuNextOft from '@vp/assets/fonts/BluuNextCyrillic.otf';\nimport BluuNextWoff from '@vp/assets/fonts/BluuNextCyrillic.woff2';\nimport GolosText from '@vp/assets/fonts/GolosText.ttf';\n\nexport const fontFaces = `\n @font-face {\n font-family: 'Bluu Next';\n src: url(${BluuNextWoff}) format('woff2'), url(${BluuNextOft}) format('opentype');\n font-weight: 700;\n font-style: normal;\n }\n\n @font-face {\n font-family: 'Golos Text';\n src: url(${GolosText}) format('truetype');\n font-weight: 400 600;\n font-style: normal;\n }\n`;\n\nexport const typography: TypographyOptions = {\n display: {\n fontFamily: 'Bluu Next',\n fontSize: '66px',\n fontWeight: 700,\n lineHeight: '46px',\n },\n h1: {\n fontFamily: 'Bluu Next',\n fontSize: '42px',\n fontWeight: 700,\n lineHeight: '46px',\n },\n h2: {\n fontFamily: 'Bluu Next',\n fontSize: '34px',\n fontWeight: 700,\n lineHeight: '40px',\n },\n h3: {\n fontFamily: 'Bluu Next',\n fontSize: '30px',\n fontWeight: 700,\n lineHeight: '36px',\n },\n h4: {\n fontFamily: 'Bluu Next',\n fontSize: '24px',\n fontWeight: 700,\n lineHeight: '28px',\n },\n h5: {\n fontFamily: 'Bluu Next',\n fontSize: '20px',\n fontWeight: 700,\n lineHeight: '26px',\n },\n h6: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '24px',\n },\n body1Regular: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '22px',\n letterSpacing: '-0.15px',\n },\n body1Medium: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '22px',\n letterSpacing: '-0.15px',\n },\n body1Bold: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '22px',\n letterSpacing: '-0.15px',\n },\n body2Regular: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n body2Medium: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n body2Bold: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n paragraph1Regular: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '28px',\n letterSpacing: '-0.15px',\n },\n paragraph1Medium: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '28px',\n letterSpacing: '-0.15px',\n },\n paragraph1Bold: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '28px',\n letterSpacing: '-0.15px',\n },\n paragraph2Regular: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '24px',\n letterSpacing: '-0.15px',\n },\n paragraph2Medium: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '24px',\n letterSpacing: '-0.15px',\n },\n paragraph2Bold: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '24px',\n letterSpacing: '-0.15px',\n },\n caption1Regular: {\n fontFamily: 'Golos Text',\n fontSize: '13px',\n fontWeight: 400,\n lineHeight: '18px',\n },\n caption1Medium: {\n fontFamily: 'Golos Text',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '18px',\n },\n caption1Bold: {\n fontFamily: 'Golos Text',\n fontSize: '13px',\n fontWeight: 600,\n lineHeight: '18px',\n },\n caption2Regular: {\n fontFamily: 'Golos Text',\n fontSize: '12px',\n fontWeight: 400,\n lineHeight: '16px',\n },\n caption2Medium: {\n fontFamily: 'Golos Text',\n fontSize: '12px',\n fontWeight: 500,\n lineHeight: '16px',\n },\n caption2Bold: {\n fontFamily: 'Golos Text',\n fontSize: '12px',\n fontWeight: 600,\n lineHeight: '16px',\n },\n overlineRegular: {\n fontFamily: 'Golos Text',\n fontSize: '11px',\n fontWeight: 400,\n lineHeight: '16px',\n letterSpacing: '0.3px',\n textTransform: 'uppercase',\n },\n overlineMedium: {\n fontFamily: 'Golos Text',\n fontSize: '11px',\n fontWeight: 500,\n lineHeight: '16px',\n letterSpacing: '0.3px',\n textTransform: 'uppercase',\n },\n overlineBold: {\n fontFamily: 'Golos Text',\n fontSize: '11px',\n fontWeight: 600,\n lineHeight: '16px',\n letterSpacing: '0.3px',\n textTransform: 'uppercase',\n },\n buttonSmall: {\n fontFamily: 'Golos Text',\n fontSize: '12px',\n fontWeight: 500,\n lineHeight: '18px',\n },\n buttonMedium: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n },\n buttonLarge: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '22px',\n },\n buttonGiant: {\n fontFamily: 'Golos Text',\n fontSize: '18px',\n fontWeight: 500,\n lineHeight: '24px',\n },\n formCompletedMedium: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '24px',\n letterSpacing: '-0.15px',\n },\n formCompletedSmall: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n formCompletedXSmall: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n formPlaceholderMedium: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n letterSpacing: '-0.15px',\n },\n formPlaceholderSmall: {\n fontFamily: 'Golos Text',\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n formPlaceholderXSmall: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '20px',\n letterSpacing: '-0.15px',\n },\n formLabelMedium: {\n fontFamily: 'Golos Text',\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '20px',\n },\n formLabelSmall: {\n fontFamily: 'Golos Text',\n fontSize: '13px',\n fontWeight: 500,\n lineHeight: '18px',\n },\n};\n","import { ZIndex } from '@mui/material';\n\nexport const zIndex = {\n mediaOverlayGradient: 1,\n mediaControls: 2,\n galleryContentSwitcher: 5,\n galleryProfileImage: 4,\n galleryProfileInfo: 5,\n slideshowIntro: 3,\n header: 6,\n footer: 6,\n desktopPlaceholder: 1400,\n} as ZIndex;\n","import { createTheme } from '@mui/material';\n\nimport { breakpoints } from '@vp/theme/breakpoints';\nimport { customSizes } from '@vp/theme/customSizes';\nimport { lightNoise } from '@vp/theme/lightNoise';\nimport { primaryColorCssProperty, systemPalette } from '@vp/theme/palette';\nimport { shadows } from '@vp/theme/shadows';\nimport { transitions } from '@vp/theme/transitions';\nimport { fontFaces, typography } from '@vp/theme/typography';\nimport { zIndex } from '@vp/theme/zIndex';\n\nexport const theme = createTheme({\n customSizes,\n palette: systemPalette,\n breakpoints,\n shadows,\n typography,\n spacing: 8,\n transitions,\n zIndex,\n lightNoise,\n components: {\n MuiCssBaseline: {\n styleOverrides: `\n ${fontFaces}\n ${primaryColorCssProperty}\n\n body, html { width: 100%; height: 100%; margin: 0; padding: 0; box-sizing: border-box; }\n\n a, a:focus, a:active {\n text-decoration: none;\n color: inherit;\n outline: none;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n }\n `,\n },\n },\n});\n","import { createTheme, Theme, ThemeProvider } from '@mui/system';\nimport { useInjection } from 'inversify-react';\nimport { FC, PropsWithChildren, useMemo } from 'react';\n\nimport { ProfilePort } from '@vp/profile/core/interface/ProfilePort';\nimport { ProfileThemeModel } from '@vp/profile/core/model/ProfileThemeModel';\nimport { paletteDark, paletteLight } from '@vp/theme/palette';\nimport { theme as defaultTheme } from '@vp/theme/theme';\n\nexport type ProfileThemeProviderProps = PropsWithChildren & { theme?: ProfileThemeModel };\n\nexport const ProfileThemeProvider: FC = ({ children, theme }) => {\n const profilePort = useInjection(ProfilePort);\n\n const profileTheme = useMemo(() => {\n const profileTheme = theme ?? profilePort.profile.value.theme;\n return themeFactory(profileTheme);\n }, [profilePort.profile.value.theme, theme]);\n\n return {children};\n};\n\nfunction themeFactory(model: ProfileThemeModel): Theme {\n const options = model.mode === 'dark' ? paletteDark : paletteLight;\n const palette = { ...defaultTheme.palette, ...options, mode: model.mode };\n return createTheme(defaultTheme, { palette });\n}\n","import { Box, Fade, Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ThemingManagerProfileExample } from '@vp/manager/theming/ui/example/ThemingManagerProfileExample';\nimport { ThemeManagerViewModel } from '@vp/manager/theming/ui/ThemeManagerViewModel';\nimport { ThemingManagerControls } from '@vp/manager/theming/ui/ThemingManagerControls';\nimport { ThemingManagerPageHeader } from '@vp/manager/theming/ui/ThemingManagerPageHeader';\nimport { ThemingManagerSettings } from '@vp/manager/theming/ui/ThemingManagerSettings';\nimport { ProfileThemeProvider } from '@vp/profile/ui/ProfileThemeProvider';\n\nexport const ThemingManagerPage: FC = () => {\n const viewModel = useViewModel(ThemeManagerViewModel);\n\n return (\n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n );\n};\n\nThemingManagerPage.displayName = ThemingManagerPage.name;\n","import { RouteObject } from 'react-router';\n\nimport { AuthGuard } from '@vp/auth/ui/guard/AuthGuard';\nimport { AvatarManagerPage } from '@vp/manager/avatar/ui/AvatarManagerPage';\nimport { BiographyManagerPage } from '@vp/manager/biography/ui/BiographyManagerPage';\nimport { EventsManagerPage } from '@vp/manager/events/ui/EventsManagerPage';\nimport { GalleryManagerPage } from '@vp/manager/gallery/ui/GalleryManagerPage';\nimport { ManagerGateway } from '@vp/manager/gateway/ManagerGateway';\nimport { HonorManagerPage } from '@vp/manager/honor/ui/component/HonorManagerPage';\nimport { ProfileSettingsPage } from '@vp/manager/profile/ui/settings/ProfileSettingsPage';\nimport { ThemingManagerPage } from '@vp/manager/theming/ui/ThemingManagerPage';\n\nexport const ManagerRouter: RouteObject = {\n path: '/ps/:id?',\n element: (\n \n \n \n ),\n children: [\n {\n index: true,\n element: ,\n },\n {\n path: 'gallery',\n element: ,\n },\n {\n path: 'honor',\n element: ,\n },\n {\n path: 'avatar',\n element: ,\n },\n {\n path: 'events',\n element: ,\n },\n {\n path: 'bio',\n element: ,\n },\n {\n path: 'theming',\n element: ,\n },\n ],\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC, memo } from 'react';\n\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\n\nexport type ProfileActivationAuthProps = {\n loading: boolean;\n onLoginClick: () => void;\n onRegisterClick: () => void;\n};\n\nexport const ProfileActivationAuth: FC = memo(({ loading, onRegisterClick, onLoginClick }) => {\n return (\n \n \n\n \n \n Нет аккаунта?\n \n\n \n Зарегистрироваться\n \n \n \n );\n});\n\nProfileActivationAuth.displayName = 'ProfileActivationAuth';\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport Logo from '@vp/assets/icons/Logo.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nexport type ProfileActivationDescriptionProps = {\n instructionText: string;\n};\n\nexport const ProfileActivationDescription: FC = ({ instructionText }) => {\n return (\n \n \n\n \n Активация профиля\n \n\n \n {instructionText}\n \n \n );\n};\n","import { Box, Stack, Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileActivationAuth } from '@vp/profile/ui/activation/ProfileActivationAuth';\nimport { ProfileActivationDescription } from '@vp/profile/ui/activation/ProfileActivationDescription';\nimport { ProfileActivationViewModel } from '@vp/profile/ui/activation/ProfileActivationViewModel';\n\nexport const ProfileActivationPage: FC = () => {\n const viewModel = useViewModel(ProfileActivationViewModel);\n\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('tablet'));\n\n return (\n ({\n width: 1,\n height: '100dvh',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n [theme.breakpoints.only('mobile')]: { px: 3, pt: 7.5 },\n })}\n >\n \n {!isMobile && }\n\n \n \n\n {viewModel.canActivateProfile.value && (\n \n )}\n\n {!viewModel.canActivateProfile.value && (\n \n )}\n \n\n {viewModel.canActivateProfile.value && (\n \n {`Профиль будет привязан к вашему аккаунту ${viewModel.email.value}`}\n \n )}\n\n {!viewModel.canActivateProfile.value && }\n \n \n );\n};\n","import { Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { ProfileEventModel } from '@vp/profile/core/model/ProfileEventModel';\nimport { ProfileEventDescription } from '@vp/profile/ui/events/ProfileEventDescription';\nimport { ProfileEventImage } from '@vp/profile/ui/events/ProfileEventImage';\nimport { useImageSizes } from '@vp/profile/ui/hook/useImageSizes';\n\nexport interface ProfileEventProps {\n event: ProfileEventModel;\n top: number;\n}\n\nexport const ProfileEvent: FC = ({ event, top }) => {\n const { smallImageHeight } = useImageSizes();\n\n return (\n \n ({\n position: 'sticky',\n top: {\n mobile: `calc(${smallImageHeight}px + ${theme.spacing(1)})`,\n desktop: `calc(${top}px + ${theme.spacing(1)})`,\n },\n })}\n />\n \n \n );\n};\n","import { useTheme } from '@mui/material';\n\nexport function useSectionMinHeight(): string {\n const { customSizes } = useTheme();\n // TODO check\n return `calc(100vh - ${customSizes.smallImageHeight.mobile}px)`;\n}\n","import { Stack, useTheme } from '@mui/material';\nimport { SystemStyleObject } from '@mui/system/styleFunctionSx/styleFunctionSx';\nimport { FC, useMemo } from 'react';\n\nimport { useLinearGradient } from '@vp/common/ui/hook/useLinearGradient';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { ProfileEvent } from '@vp/profile/ui/events/ProfileEvent';\nimport { useSectionMinHeight } from '@vp/profile/ui/hook/useSectionMinHeight';\n\nexport interface ProfileEventsProps {\n profile: ProfileModel;\n top: number;\n}\n\nexport const ProfileEvents: FC = ({ profile, top }) => {\n const minHeight = useSectionMinHeight();\n const divider = useDivider();\n\n const hasEvents = profile.events.length > 0;\n\n return (\n \n {profile.events.map(event => (\n \n ))}\n \n );\n};\n\nconst useDivider = (): SystemStyleObject => {\n const { spacing } = useTheme();\n\n const gradient = useLinearGradient({\n angle: '139.82deg',\n stops: [\n { percent: 14.02, opacity: 1 },\n { percent: 33.4, opacity: 0.2 },\n { percent: 92.5, opacity: 0 },\n ],\n });\n\n return useMemo(\n () => ({\n content: '\"\"',\n position: 'absolute',\n height: `calc(100% - 32px)`,\n width: '1px',\n top: { mobile: spacing(2), tablet: spacing(3) },\n left: { mobile: spacing(16), tablet: spacing(20) },\n background: gradient,\n }),\n [gradient, spacing],\n );\n};\n","import * as React from \"react\";\nconst SvgVideo = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.75 20H3C2.60218 20 2.22064 19.842 1.93934 19.5607C1.65804 19.2794 1.5 18.8978 1.5 18.5V6.5C1.5 6.10218 1.65804 5.72064 1.93934 5.43934C2.22064 5.15804 2.60218 5 3 5H15.75C16.1478 5 16.5294 5.15804 16.8107 5.43934C17.092 5.72064 17.25 6.10218 17.25 6.5V9.545L21.315 6.6425C21.4269 6.5628 21.5586 6.51538 21.6957 6.50543C21.8327 6.49547 21.9699 6.52336 22.0922 6.58605C22.2144 6.64874 22.3171 6.74382 22.3891 6.8609C22.461 6.97799 22.4994 7.11259 22.5 7.25V17.75C22.4994 17.8874 22.461 18.022 22.3891 18.1391C22.3171 18.2562 22.2144 18.3513 22.0922 18.4139C21.9699 18.4766 21.8327 18.5045 21.6957 18.4946C21.5586 18.4846 21.4269 18.4372 21.315 18.3575L17.25 15.455V18.5C17.25 18.8978 17.092 19.2794 16.8107 19.5607C16.5294 19.842 16.1478 20 15.75 20ZM3 6.5V18.5H15.75V14C15.7506 13.8626 15.789 13.728 15.8609 13.6109C15.9329 13.4938 16.0356 13.3987 16.1578 13.3361C16.2801 13.2734 16.4173 13.2455 16.5543 13.2554C16.6914 13.2654 16.8231 13.3128 16.935 13.3925L21 16.295V8.705L16.935 11.6075C16.8231 11.6872 16.6914 11.7346 16.5543 11.7446C16.4173 11.7545 16.2801 11.7266 16.1578 11.664C16.0356 11.6013 15.9329 11.5062 15.8609 11.3891C15.789 11.272 15.7506 11.1374 15.75 11V6.5H3Z\", fill: \"currentColor\" }));\nexport default SvgVideo;\n","import { Box, IconButton, Stack, SvgIcon, useTheme } from '@mui/material';\nimport { Theme } from '@mui/system';\nimport { FC, useCallback, useMemo } from 'react';\nimport { NavLink, useLocation } from 'react-router-dom';\n\nimport ImageIcon from '@vp/assets/icons/Image.svg?react';\nimport VideoIcon from '@vp/assets/icons/Video.svg?react';\n\nconst Tabs = [\n { icon: ImageIcon, mode: 'images' },\n { icon: VideoIcon, mode: 'videos' },\n];\n\nexport interface GalleryTabsProps {\n mode: string;\n}\n\nexport const GalleryTabs: FC = ({ mode: activeMode }) => {\n const theme = useTheme();\n const location = useLocation();\n\n const activeIndex = useMemo(() => {\n const index = Tabs.findIndex(tab => tab.mode === activeMode);\n return index === -1 ? 0 : index;\n }, [activeMode]);\n\n const getHref = useCallback(\n (mode: string) => {\n const search = new URLSearchParams(location.search);\n search.set('m', mode);\n return `${location.pathname}?${search.toString()}`;\n },\n [location.search, location.pathname],\n );\n\n return (\n theme.zIndex.galleryContentSwitcher}\n sx={{\n transform: 'translateX(-50%)',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n borderRadius: 100,\n zIndex: -1,\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n backgroundColor: theme.palette.primary.alpha8,\n backdropFilter: 'blur(10px)',\n },\n }}\n >\n \n\n {Tabs.map(({ icon: TabIcon, mode }, index) => {\n const color = mode === activeMode ? theme.palette.text[6] : resolveInactiveColor(theme);\n const to = getHref(mode);\n\n return (\n \n \n \n \n \n );\n })}\n \n );\n};\n\nfunction resolveInactiveColor(theme: Theme): string {\n return theme.palette.mode === 'dark' ? theme.palette.text.secondary : theme.palette.text.primary;\n}\n","import { Theme } from '@mui/system';\n\nimport { theme } from '@vp/theme/theme';\n\nexport const useSystemTheme = (): Theme => theme;\n","import { ThemeProvider } from '@mui/system';\nimport { FC, PropsWithChildren } from 'react';\n\nimport { useSystemTheme } from '@vp/common/ui/hook/useSystemTheme';\n\nexport const VpSystemThemeProvider: FC = ({ children }) => {\n const systemTheme = useSystemTheme();\n return {children};\n};\n","import { Box, Stack } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport ChevronLeft from '@vp/assets/icons/ChevronLeft.svg?react';\nimport ChevronRight from '@vp/assets/icons/ChevronRight.svg?react';\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\nexport type ProfileImageCarouselProps = {\n selectedPhotoId: string;\n photos: ProfilePhotoModel[];\n close: () => void;\n};\n\nconst Gradient = 'linear-gradient(90deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.25) 100%)';\n\nexport const ProfileImageCarousel = memo(({ close, photos, selectedPhotoId }) => {\n const [index, setIndex] = useState(() => photos.findIndex(({ id }) => selectedPhotoId === id));\n const photo = photos[index];\n\n const getNext = useCallback((direction: number) => (index + direction + photos.length) % photos.length, [index, photos.length]);\n\n const onLeft = useCallback(() => setIndex(getNext(-1)), [getNext]);\n const onRight = useCallback(() => setIndex(getNext(1)), [getNext]);\n\n useEffect(() => {\n const onKeydown = (event: KeyboardEvent): void => {\n if (event.key === 'ArrowLeft') {\n onLeft();\n } else if (event.key === 'ArrowRight') {\n onRight();\n }\n };\n\n window.addEventListener('keydown', onKeydown);\n\n return (): void => window.removeEventListener('keydown', onKeydown);\n });\n\n return (\n ({\n position: 'relative',\n width: 1,\n height: 1,\n overflow: 'hidden',\n outline: 'none',\n backgroundColor: palette.background.default,\n })}\n >\n \n {photo && (\n \n \n \n \n \n )}\n \n\n \n\n ({\n p: 1,\n position: 'fixed',\n zIndex: theme.zIndex.mediaControls,\n top: { mobile: 0, tablet: theme.spacing(1) },\n left: { mobile: 0, tablet: theme.spacing(3) },\n })}\n onClick={close}\n />\n \n );\n});\n\nProfileImageCarousel.displayName = 'ProfileImageCarousel';\n\ntype CarouselControlsProps = {\n onLeft(): void;\n onRight(): void;\n};\n\nconst CarouselControls = memo(({ onLeft, onRight }) => {\n return (\n \n \n \n \n );\n});\n\nCarouselControls.displayName = 'CarouselControls';\n","import { Box, Stack } from '@mui/material';\nimport { forwardRef, useEffect, useRef } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\nexport type ProfileImageScrollerProps = {\n selectedPhotoId: string;\n photos: ProfilePhotoModel[];\n close: () => void;\n};\n\nexport const ProfileImageScroller = forwardRef(({ selectedPhotoId, photos, close }, ref) => {\n const images = useRef([]);\n\n useEffect(() => {\n const index = photos.findIndex(({ id }) => selectedPhotoId === id);\n if (index !== -1) images.current[index]?.scrollIntoView();\n }, [selectedPhotoId, photos]);\n\n return (\n ({ overflowY: 'auto', outline: 'none', backgroundColor: palette.background.default })}\n >\n \n {photos.map((photo, index) => (\n \n void (images.current[index] = el!)} />\n \n ))}\n \n\n ({\n p: 1,\n position: 'fixed',\n zIndex: theme.zIndex.mediaControls,\n top: { mobile: 0, tablet: theme.spacing(1) },\n left: { mobile: 0, tablet: theme.spacing(3) },\n })}\n onClick={close}\n />\n \n );\n});\n\nProfileImageScroller.displayName = 'ProfileImageScroller';\n","import { Box, Fade, Modal, useMediaQuery, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { FC, useCallback } from 'react';\n\nimport { VpSystemThemeProvider } from '@vp/common/ui/component/VpSystemThemeProvider';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { ProfileImageCarousel } from '@vp/profile/ui/gallery/image/ProfileImageCarousel';\nimport { ProfileImageScroller } from '@vp/profile/ui/gallery/image/ProfileImageScroller';\n\nexport interface ProfileImageViewer {\n open: boolean;\n selectedPhotoId: string;\n photos: ProfilePhotoModel[];\n close: () => void;\n}\n\nexport const ProfileImageViewer: FC = ({ selectedPhotoId, photos, open, close }) => {\n const { transitions, breakpoints } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n const onClose = useCallback>((_, reason) => reason === 'escapeKeyDown' && close?.(), [close]);\n\n return (\n \n \n \n \n {!isDesktop && }\n {isDesktop && }\n \n \n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { forwardRef } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { VpPlayer } from '@vp/common/ui/player/VpPlayer';\nimport { ProfileVideoModel } from '@vp/profile/core/model/ProfileVideoModel';\n\nexport interface VideoViewerContentProps {\n video: ProfileVideoModel;\n close: () => void;\n}\n\nexport const VideoViewerContent = forwardRef(({ video, close }, ref) => {\n return (\n ({ overflowY: 'hidden', outline: 'none', backgroundColor: palette.background.default })}\n >\n ({\n p: 1,\n position: 'fixed',\n top: { mobile: 0, tablet: theme.spacing(1) },\n left: { mobile: 0, tablet: theme.spacing(3) },\n zIndex: theme.zIndex.mediaControls,\n })}\n onClick={close}\n />\n\n \n \n \n \n );\n});\n\nVideoViewerContent.displayName = 'VideoViewerContent';\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { FC, useCallback } from 'react';\n\nimport { VpSystemThemeProvider } from '@vp/common/ui/component/VpSystemThemeProvider';\nimport { ProfileVideoModel } from '@vp/profile/core/model/ProfileVideoModel';\nimport { VideoViewerContent } from '@vp/profile/ui/gallery/video/VideoViewerContent';\n\nexport interface ProfileVideoViewerProps {\n open: boolean;\n video: ProfileVideoModel | null;\n close: () => void;\n}\n\nexport const ProfileVideoViewer: FC = ({ video, open, close }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n const onClose = useCallback>((_, reason) => reason === 'escapeKeyDown' && close?.(), [close]);\n\n return (\n \n \n \n {video && }\n \n \n \n );\n};\n","import { Box, Fade } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport { VpMediaGrid } from '@vp/common/ui/component/VpMediaGrid';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { useSearchSectionCheck } from '@vp/common/ui/hook/useSearchSectionCheck';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { GalleryTabs } from '@vp/profile/ui/gallery/GalleryTabs';\nimport { ProfileImageViewer } from '@vp/profile/ui/gallery/image/ProfileImageViewer';\nimport { ProfileGalleryMode, ProfileGalleryViewModel } from '@vp/profile/ui/gallery/ProfileGalleryViewModel';\nimport { ProfileVideoViewer } from '@vp/profile/ui/gallery/video/ProfileVideoViewer';\nimport { useSectionMinHeight } from '@vp/profile/ui/hook/useSectionMinHeight';\n\nexport interface ProfilePhotosProps {\n profile: ProfileModel;\n}\n\nexport const ProfileGallery: FC = ({ profile }) => {\n const viewModel = useViewModel(ProfileGalleryViewModel, { profile });\n const minHeight = useSectionMinHeight();\n const mode = useSearchSection('m', ProfileGalleryMode.Images);\n\n useSearchSectionCheck('m', ProfileGalleryMode.Images);\n\n return (\n \n \n \n {mode === ProfileGalleryMode.Images && (\n \n )}\n {mode === ProfileGalleryMode.Videos && (\n \n )}\n \n \n\n \n\n \n\n \n \n );\n};\n","import * as React from \"react\";\nconst SvgShare = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.25 15.4999C16.6886 15.5027 16.135 15.6316 15.6301 15.8769C15.1251 16.1222 14.6817 16.4778 14.3325 16.9174L8.85002 13.4899C9.04983 12.845 9.04983 12.1548 8.85002 11.5099L14.3325 8.08241C14.889 8.77145 15.6714 9.24129 16.5411 9.40871C17.4108 9.57614 18.3117 9.43033 19.0842 8.99713C19.8567 8.56392 20.4509 7.87128 20.7616 7.04189C21.0723 6.21251 21.0794 5.29992 20.7817 4.46578C20.484 3.63165 19.9007 2.9298 19.135 2.48458C18.3694 2.03936 17.4709 1.8795 16.5987 2.03331C15.7265 2.18713 14.9368 2.64469 14.3697 3.32495C13.8025 4.00521 13.4944 4.86425 13.5 5.74991C13.5036 6.08529 13.554 6.41853 13.65 6.73991L8.16752 10.1674C7.6835 9.55809 7.02192 9.11445 6.27448 8.89795C5.52704 8.68146 4.73076 8.70286 3.99602 8.95917C3.26129 9.21548 2.62448 9.69401 2.17388 10.3284C1.72328 10.9629 1.4812 11.7217 1.4812 12.4999C1.4812 13.2781 1.72328 14.037 2.17388 14.6714C2.62448 15.3058 3.26129 15.7843 3.99602 16.0406C4.73076 16.297 5.52704 16.3184 6.27448 16.1019C7.02192 15.8854 7.6835 15.4417 8.16752 14.8324L13.65 18.2599C13.554 18.5813 13.5036 18.9145 13.5 19.2499C13.5 19.9916 13.7199 20.7166 14.132 21.3333C14.5441 21.95 15.1297 22.4306 15.8149 22.7145C16.5002 22.9983 17.2542 23.0725 17.9816 22.9279C18.709 22.7832 19.3772 22.426 19.9017 21.9016C20.4261 21.3771 20.7833 20.7089 20.928 19.9815C21.0727 19.2541 20.9984 18.5001 20.7146 17.8148C20.4307 17.1296 19.9501 16.544 19.3334 16.1319C18.7167 15.7198 17.9917 15.4999 17.25 15.4999ZM17.25 3.49991C17.695 3.49991 18.13 3.63187 18.5 3.8791C18.8701 4.12634 19.1584 4.47774 19.3287 4.88887C19.499 5.3 19.5436 5.7524 19.4568 6.18886C19.37 6.62532 19.1557 7.02623 18.841 7.3409C18.5263 7.65557 18.1254 7.86986 17.689 7.95668C17.2525 8.04349 16.8001 7.99893 16.389 7.82864C15.9778 7.65834 15.6264 7.36995 15.3792 6.99994C15.132 6.62993 15 6.19492 15 5.74991C15 5.15317 15.2371 4.58088 15.659 4.15892C16.081 3.73696 16.6533 3.49991 17.25 3.49991ZM5.25002 14.7499C4.80501 14.7499 4.36999 14.6179 3.99998 14.3707C3.62997 14.1235 3.34158 13.7721 3.17129 13.3609C3.00099 12.9498 2.95643 12.4974 3.04325 12.061C3.13007 11.6245 3.34436 11.2236 3.65903 10.9089C3.97369 10.5942 4.37461 10.38 4.81106 10.2931C5.24752 10.2063 5.69992 10.2509 6.11105 10.4212C6.52219 10.5915 6.87359 10.8799 7.12082 11.2499C7.36805 11.6199 7.50001 12.0549 7.50001 12.4999C7.50001 13.0966 7.26296 13.6689 6.84101 14.0909C6.41905 14.5129 5.84675 14.7499 5.25002 14.7499ZM17.25 21.4999C16.805 21.4999 16.37 21.3679 16 21.1207C15.63 20.8735 15.3416 20.5221 15.1713 20.1109C15.001 19.6998 14.9564 19.2474 15.0432 18.811C15.1301 18.3745 15.3444 17.9736 15.659 17.6589C15.9737 17.3442 16.3746 17.13 16.8111 17.0431C17.2475 16.9563 17.6999 17.0009 18.111 17.1712C18.5222 17.3415 18.8736 17.6299 19.1208 17.9999C19.3681 18.3699 19.5 18.8049 19.5 19.2499C19.5 19.8466 19.263 20.4189 18.841 20.8409C18.419 21.2629 17.8468 21.4999 17.25 21.4999Z\", fill: \"currentColor\" }));\nexport default SvgShare;\n","import * as React from \"react\";\nconst SvgQrCodeLarge = (props) => /* @__PURE__ */ React.createElement(\"svg\", { viewBox: \"0 0 114 114\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 0.26001H22.36V3.11001H25.21V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 0.26001H25.13V3.11001H27.98V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 0.26001H30.65V3.11001H33.5V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 0.26001H38.94V3.11001H41.79V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 0.26001H41.71V3.11001H44.56V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 0.26001H44.47V3.11001H47.32V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 0.26001H50V3.11001H52.85V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 0.26001H52.76V3.11001H55.61V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 0.26001H55.53V3.11001H58.38V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 0.26001H58.29V3.11001H61.14V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 0.26001H74.87V3.11001H77.72V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 0.26001H80.4V3.11001H83.25V0.26001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 3.02002H30.65V5.87002H33.5V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 3.02002H41.71V5.87002H44.56V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 3.02002H44.47V5.87002H47.32V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 3.02002H50V5.87002H52.85V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 3.02002H52.76V5.87002H55.61V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 3.02002H58.29V5.87002H61.14V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 3.02002H61.05V5.87002H63.9V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 3.02002H66.58V5.87002H69.43V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 3.02002H77.63V5.87002H80.48V3.02002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 5.79001H25.13V8.64001H27.98V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 5.79001H27.89V8.64001H30.74V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 5.79001H33.42V8.64001H36.27V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 5.79001H36.1801V8.64001H39.0301V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 5.79001H47.23V8.64001H50.08V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 5.79001H50V8.64001H52.85V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 5.79001H63.82V8.64001H66.67V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 5.79001H66.58V8.64001H69.43V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 5.79001H72.11V8.64001H74.96V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 8.55002H36.1801V11.4H39.0301V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 8.55002H44.47V11.4H47.32V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 8.55002H47.23V11.4H50.08V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 8.55002H52.76V11.4H55.61V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 8.55002H55.53V11.4H58.38V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 8.55002H63.82V11.4H66.67V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 8.55002H74.87V11.4H77.72V8.55002Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 11.31H22.36V14.16H25.21V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 11.31H25.13V14.16H27.98V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 11.31H33.42V14.16H36.27V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 11.31H36.1801V14.16H39.0301V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 11.31H38.94V14.16H41.79V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 11.31H44.47V14.16H47.32V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 11.31H50V14.16H52.85V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 11.31H55.53V14.16H58.38V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 11.31H58.29V14.16H61.14V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 11.31H69.34V14.16H72.19V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 11.31H72.11V14.16H74.96V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 11.31H74.87V14.16H77.72V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 11.31H83.16V14.16H86.01V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 11.31H85.92V14.16H88.77V11.31Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 14.08H22.36V16.93H25.21V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 14.08H36.1801V16.93H39.0301V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 14.08H41.71V16.93H44.56V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 14.08H55.53V16.93H58.38V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 14.08H58.29V16.93H61.14V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 14.08H69.34V16.93H72.19V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 14.08H72.11V16.93H74.96V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 14.08H74.87V16.93H77.72V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 14.08H80.4V16.93H83.25V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 14.08H88.69V16.93H91.54V14.08Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 16.84H22.36V19.69H25.21V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 16.84H27.89V19.69H30.74V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 16.84H33.42V19.69H36.27V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 16.84H38.94V19.69H41.79V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 16.84H44.47V19.69H47.32V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 16.84H50V19.69H52.85V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 16.84H55.53V19.69H58.38V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 16.84H61.05V19.69H63.9V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 16.84H66.58V19.69H69.43V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 16.84H72.11V19.69H74.96V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 16.84H77.63V19.69H80.48V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 16.84H83.16V19.69H86.01V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 16.84H88.69V19.69H91.54V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 19.6H27.89V22.45H30.74V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 19.6H33.42V22.45H36.27V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 19.6H36.1801V22.45H39.0301V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 19.6H38.94V22.45H41.79V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 19.6H44.47V22.45H47.32V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 19.6H47.23V22.45H50.08V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 19.6H52.76V22.45H55.61V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 19.6H55.53V22.45H58.38V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 19.6H58.29V22.45H61.14V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 19.6H61.05V22.45H63.9V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 19.6H72.11V22.45H74.96V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 19.6H74.87V22.45H77.72V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 19.6H85.92V22.45H88.77V19.6Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 22.37H3.02002V25.22H5.87002V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 22.37H5.78003V25.22H8.63003V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 22.37H8.55005V25.22H11.4001V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 22.37H11.3101V25.22H14.1601V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 22.37H14.0701V25.22H16.9201V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 22.37H16.84V25.22H19.69V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 22.37H19.6V25.22H22.45V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 22.37H30.65V25.22H33.5V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 22.37H38.94V25.22H41.79V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 22.37H41.71V25.22H44.56V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 22.37H58.29V25.22H61.14V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 22.37H61.05V25.22H63.9V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 22.37H63.82V25.22H66.67V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 22.37H69.34V25.22H72.19V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 22.37H72.11V25.22H74.96V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 22.37H74.87V25.22H77.72V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 22.37H80.4V25.22H83.25V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 22.37H88.69V25.22H91.54V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 22.37H96.98V25.22H99.83V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 22.37H99.74V25.22H102.59V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 22.37H110.8V25.22H113.65V22.37Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 25.13H3.02002V27.98H5.87002V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 25.13H14.0701V27.98H16.9201V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 25.13H25.13V27.98H27.98V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 25.13H27.89V27.98H30.74V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 25.13H36.1801V27.98H39.0301V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 25.13H38.94V27.98H41.79V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 25.13H41.71V27.98H44.56V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 25.13H55.53V27.98H58.38V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 25.13H58.29V27.98H61.14V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 25.13H69.34V27.98H72.19V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 25.13H77.63V27.98H80.48V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 25.13H80.4V27.98H83.25V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 25.13H85.92V27.98H88.77V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 25.13H88.69V27.98H91.54V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 25.13H91.45V27.98H94.3V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 25.13H96.98V27.98H99.83V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 25.13H105.27V27.98H108.12V25.13Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 27.89H0.26001V30.74H3.11001V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 27.89H3.02002V30.74H5.87002V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 27.89H5.78003V30.74H8.63003V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 27.89H14.0701V30.74H16.9201V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 27.89H16.84V30.74H19.69V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 27.89H25.13V30.74H27.98V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 27.89H30.65V30.74H33.5V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 27.89H38.94V30.74H41.79V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 27.89H47.23V30.74H50.08V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 27.89H50V30.74H52.85V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 27.89H52.76V30.74H55.61V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 27.89H55.53V30.74H58.38V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 27.89H61.05V30.74H63.9V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 27.89H63.82V30.74H66.67V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 27.89H66.58V30.74H69.43V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 27.89H72.11V30.74H74.96V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 27.89H74.87V30.74H77.72V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 27.89H77.63V30.74H80.48V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 27.89H80.4V30.74H83.25V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 27.89H88.69V30.74H91.54V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 27.89H94.22V30.74H97.07V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 27.89H96.98V30.74H99.83V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 27.89H99.74V30.74H102.59V27.89Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 30.66H0.26001V33.51H3.11001V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 30.66H5.78003V33.51H8.63003V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 30.66H8.55005V33.51H11.4001V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 30.66H14.0701V33.51H16.9201V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 30.66H19.6V33.51H22.45V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 30.66H22.36V33.51H25.21V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 30.66H25.13V33.51H27.98V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 30.66H30.65V33.51H33.5V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 30.66H33.42V33.51H36.27V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 30.66H44.47V33.51H47.32V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 30.66H47.23V33.51H50.08V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 30.66H52.76V33.51H55.61V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 30.66H58.29V33.51H61.14V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 30.66H61.05V33.51H63.9V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 30.66H63.82V33.51H66.67V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 30.66H66.58V33.51H69.43V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 30.66H72.11V33.51H74.96V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 30.66H77.63V33.51H80.48V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 30.66H85.92V33.51H88.77V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 30.66H88.69V33.51H91.54V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 30.66H91.45V33.51H94.3V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 30.66H94.22V33.51H97.07V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 30.66H102.51V33.51H105.36V30.66Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 33.42H0.26001V36.27H3.11001V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 33.42H14.0701V36.27H16.9201V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 33.42H16.84V36.27H19.69V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 33.42H19.6V36.27H22.45V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 33.42H25.13V36.27H27.98V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 33.42H27.89V36.27H30.74V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 33.42H33.42V36.27H36.27V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 33.42H36.1801V36.27H39.0301V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 33.42H52.76V36.27H55.61V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 33.42H55.53V36.27H58.38V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 33.42H58.29V36.27H61.14V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 33.42H72.11V36.27H74.96V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 33.42H74.87V36.27H77.72V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 33.42H85.92V36.27H88.77V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 33.42H88.69V36.27H91.54V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 33.42H102.51V36.27H105.36V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 33.42H105.27V36.27H108.12V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 33.42H108.03V36.27H110.88V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 33.42H110.8V36.27H113.65V33.42Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 36.19H0.26001V39.04H3.11001V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 36.19H3.02002V39.04H5.87002V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 36.19H5.78003V39.04H8.63003V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 36.19H8.55005V39.04H11.4001V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 36.19H11.3101V39.04H14.1601V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 36.19H19.6V39.04H22.45V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 36.19H27.89V39.04H30.74V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 36.19H30.65V39.04H33.5V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 36.19H36.1801V39.04H39.0301V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 36.19H47.23V39.04H50.08V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 36.19H50V39.04H52.85V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 36.19H52.76V39.04H55.61V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 36.19H55.53V39.04H58.38V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 36.19H58.29V39.04H61.14V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 36.19H74.87V39.04H77.72V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 36.19H77.63V39.04H80.48V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 36.19H80.4V39.04H83.25V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 36.19H83.16V39.04H86.01V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 36.19H91.45V39.04H94.3V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 36.19H96.98V39.04H99.83V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 36.19H99.74V39.04H102.59V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 36.19H108.03V39.04H110.88V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 36.19H110.8V39.04H113.65V36.19Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 38.95H3.02002V41.8H5.87002V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 38.95H5.78003V41.8H8.63003V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 38.95H8.55005V41.8H11.4001V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 38.95H14.0701V41.8H16.9201V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 38.95H16.84V41.8H19.69V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 38.95H19.6V41.8H22.45V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 38.95H22.36V41.8H25.21V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 38.95H27.89V41.8H30.74V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 38.95H30.65V41.8H33.5V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 38.95H36.1801V41.8H39.0301V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 38.95H38.94V41.8H41.79V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 38.95H41.71V41.8H44.56V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 38.95H52.76V41.8H55.61V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 38.95H58.29V41.8H61.14V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 38.95H69.34V41.8H72.19V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 38.95H80.4V41.8H83.25V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 38.95H88.69V41.8H91.54V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 38.95H91.45V41.8H94.3V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 38.95H96.98V41.8H99.83V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 38.95H102.51V41.8H105.36V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 38.95H105.27V41.8H108.12V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 38.95H108.03V41.8H110.88V38.95Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 41.71H0.26001V44.56H3.11001V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 41.71H3.02002V44.56H5.87002V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 41.71H5.78003V44.56H8.63003V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 41.71H8.55005V44.56H11.4001V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 41.71H11.3101V44.56H14.1601V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 41.71H14.0701V44.56H16.9201V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 41.71H22.36V44.56H25.21V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 41.71H27.89V44.56H30.74V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 41.71H36.1801V44.56H39.0301V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 41.71H38.94V44.56H41.79V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 41.71H41.71V44.56H44.56V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 41.71H47.23V44.56H50.08V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 41.71H55.53V44.56H58.38V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 41.71H61.05V44.56H63.9V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 41.71H66.58V44.56H69.43V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 41.71H72.11V44.56H74.96V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 41.71H77.63V44.56H80.48V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 41.71H83.16V44.56H86.01V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 41.71H88.69V44.56H91.54V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 41.71H94.22V44.56H97.07V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 41.71H96.98V44.56H99.83V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 41.71H102.51V44.56H105.36V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 41.71H110.8V44.56H113.65V41.71Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 44.48H0.26001V47.33H3.11001V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 44.48H16.84V47.33H19.69V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 44.48H25.13V47.33H27.98V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 44.48H27.89V47.33H30.74V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 44.48H30.65V47.33H33.5V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 44.48H33.42V47.33H36.27V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 44.48H36.1801V47.33H39.0301V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 44.48H38.94V47.33H41.79V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 44.48H52.76V47.33H55.61V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 44.48H55.53V47.33H58.38V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 44.48H66.58V47.33H69.43V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 44.48H80.4V47.33H83.25V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 44.48H83.16V47.33H86.01V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 44.48H85.92V47.33H88.77V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 44.48H88.69V47.33H91.54V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 44.48H91.45V47.33H94.3V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 44.48H96.98V47.33H99.83V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 44.48H105.27V47.33H108.12V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 44.48H108.03V47.33H110.88V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 44.48H110.8V47.33H113.65V44.48Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 47.24H3.02002V50.09H5.87002V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 47.24H5.78003V50.09H8.63003V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 47.24H8.55005V50.09H11.4001V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 47.24H11.3101V50.09H14.1601V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 47.24H19.6V50.09H22.45V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 47.24H22.36V50.09H25.21V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 47.24H25.13V50.09H27.98V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 47.24H38.94V50.09H41.79V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 47.24H41.71V50.09H44.56V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 47.24H44.47V50.09H47.32V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 47.24H50V50.09H52.85V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 47.24H61.05V50.09H63.9V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 47.24H66.58V50.09H69.43V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 47.24H69.34V50.09H72.19V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 47.24H74.87V50.09H77.72V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 47.24H94.22V50.09H97.07V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 47.24H96.98V50.09H99.83V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 47.24H99.74V50.09H102.59V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 47.24H108.03V50.09H110.88V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 47.24H110.8V50.09H113.65V47.24Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 50H8.55005V52.85H11.4001V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 50H14.0701V52.85H16.9201V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 50H16.84V52.85H19.69V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 50H19.6V52.85H22.45V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 50H25.13V52.85H27.98V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 50H30.65V52.85H33.5V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 50H33.42V52.85H36.27V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 50H38.94V52.85H41.79V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 50H50V52.85H52.85V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 50H58.29V52.85H61.14V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 50H61.05V52.85H63.9V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 50H63.82V52.85H66.67V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 50H66.58V52.85H69.43V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 50H69.34V52.85H72.19V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 50H72.11V52.85H74.96V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 50H74.87V52.85H77.72V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 50H83.16V52.85H86.01V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 50H94.22V52.85H97.07V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 50H99.74V52.85H102.59V50Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 52.77H5.78003V55.62H8.63003V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 52.77H14.0701V55.62H16.9201V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 52.77H22.36V55.62H25.21V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 52.77H27.89V55.62H30.74V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 52.77H38.94V55.62H41.79V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 52.77H41.71V55.62H44.56V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 52.77H47.23V55.62H50.08V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 52.77H50V55.62H52.85V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 52.77H52.76V55.62H55.61V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 52.77H55.53V55.62H58.38V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 52.77H58.29V55.62H61.14V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 52.77H63.82V55.62H66.67V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 52.77H69.34V55.62H72.19V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 52.77H74.87V55.62H77.72V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 52.77H83.16V55.62H86.01V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 52.77H85.92V55.62H88.77V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 52.77H99.74V55.62H102.59V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 52.77H108.03V55.62H110.88V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 52.77H110.8V55.62H113.65V52.77Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 55.53H3.02002V58.38H5.87002V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 55.53H11.3101V58.38H14.1601V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 55.53H14.0701V58.38H16.9201V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 55.53H16.84V58.38H19.69V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 55.53H19.6V58.38H22.45V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 55.53H22.36V58.38H25.21V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 55.53H27.89V58.38H30.74V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 55.53H33.42V58.38H36.27V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 55.53H41.71V58.38H44.56V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 55.53H47.23V58.38H50.08V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 55.53H55.53V58.38H58.38V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 55.53H61.05V58.38H63.9V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 55.53H63.82V58.38H66.67V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 55.53H72.11V58.38H74.96V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 55.53H74.87V58.38H77.72V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 55.53H83.16V58.38H86.01V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 55.53H85.92V58.38H88.77V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 55.53H88.69V58.38H91.54V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 55.53H96.98V58.38H99.83V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 55.53H99.74V58.38H102.59V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 55.53H102.51V58.38H105.36V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 55.53H110.8V58.38H113.65V55.53Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 58.29H3.02002V61.14H5.87002V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 58.29H5.78003V61.14H8.63003V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 58.29H8.55005V61.14H11.4001V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 58.29H11.3101V61.14H14.1601V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 58.29H14.0701V61.14H16.9201V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 58.29H19.6V61.14H22.45V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 58.29H25.13V61.14H27.98V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 58.29H30.65V61.14H33.5V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 58.29H33.42V61.14H36.27V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 58.29H38.94V61.14H41.79V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 58.29H41.71V61.14H44.56V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 58.29H52.76V61.14H55.61V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 58.29H55.53V61.14H58.38V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 58.29H58.29V61.14H61.14V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 58.29H61.05V61.14H63.9V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 58.29H63.82V61.14H66.67V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 58.29H69.34V61.14H72.19V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 58.29H83.16V61.14H86.01V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 58.29H85.92V61.14H88.77V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 58.29H88.69V61.14H91.54V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 58.29H91.45V61.14H94.3V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 58.29H94.22V61.14H97.07V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 58.29H105.27V61.14H108.12V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 58.29H108.03V61.14H110.88V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 58.29H110.8V61.14H113.65V58.29Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 61.06H5.78003V63.91H8.63003V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 61.06H8.55005V63.91H11.4001V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 61.06H16.84V63.91H19.69V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 61.06H25.13V63.91H27.98V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 61.06H41.71V63.91H44.56V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 61.06H44.47V63.91H47.32V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 61.06H47.23V63.91H50.08V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 61.06H50V63.91H52.85V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 61.06H55.53V63.91H58.38V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 61.06H63.82V63.91H66.67V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 61.06H69.34V63.91H72.19V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 61.06H72.11V63.91H74.96V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 61.06H74.87V63.91H77.72V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 61.06H80.4V63.91H83.25V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 61.06H91.45V63.91H94.3V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 61.06H99.74V63.91H102.59V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 61.06H102.51V63.91H105.36V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 61.06H105.27V63.91H108.12V61.06Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 63.82H5.78003V66.67H8.63003V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 63.82H11.3101V66.67H14.1601V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 63.82H19.6V66.67H22.45V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 63.82H22.36V66.67H25.21V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 63.82H36.1801V66.67H39.0301V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 63.82H38.94V66.67H41.79V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 63.82H55.53V66.67H58.38V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 63.82H61.05V66.67H63.9V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 63.82H66.58V66.67H69.43V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 63.82H72.11V66.67H74.96V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 63.82H74.87V66.67H77.72V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 63.82H77.63V66.67H80.48V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 63.82H96.98V66.67H99.83V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 63.82H105.27V66.67H108.12V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 63.82H110.8V66.67H113.65V63.82Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 66.58H0.26001V69.43H3.11001V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 66.58H11.3101V69.43H14.1601V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 66.58H16.84V69.43H19.69V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 66.58H19.6V69.43H22.45V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 66.58H25.13V69.43H27.98V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 66.58H27.89V69.43H30.74V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 66.58H33.42V69.43H36.27V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 66.58H36.1801V69.43H39.0301V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 66.58H38.94V69.43H41.79V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 66.58H47.23V69.43H50.08V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 66.58H50V69.43H52.85V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 66.58H58.29V69.43H61.14V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 66.58H61.05V69.43H63.9V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 66.58H66.58V69.43H69.43V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 66.58H69.34V69.43H72.19V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 66.58H72.11V69.43H74.96V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 66.58H74.87V69.43H77.72V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 66.58H80.4V69.43H83.25V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 66.58H91.45V69.43H94.3V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 66.58H99.74V69.43H102.59V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 66.58H102.51V69.43H105.36V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 66.58H110.8V69.43H113.65V66.58Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 69.35H5.78003V72.2H8.63003V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 69.35H8.55005V72.2H11.4001V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 69.35H14.0701V72.2H16.9201V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 69.35H25.13V72.2H27.98V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 69.35H27.89V72.2H30.74V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 69.35H30.65V72.2H33.5V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 69.35H33.42V72.2H36.27V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 69.35H36.1801V72.2H39.0301V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 69.35H38.94V72.2H41.79V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 69.35H41.71V72.2H44.56V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 69.35H44.47V72.2H47.32V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 69.35H47.23V72.2H50.08V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 69.35H50V72.2H52.85V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 69.35H52.76V72.2H55.61V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 69.35H55.53V72.2H58.38V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 69.35H63.82V72.2H66.67V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 69.35H77.63V72.2H80.48V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 69.35H85.92V72.2H88.77V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 69.35H91.45V72.2H94.3V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 69.35H102.51V72.2H105.36V69.35Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 72.11H0.26001V74.96H3.11001V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 72.11H16.84V74.96H19.69V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 72.11H22.36V74.96H25.21V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 72.11H30.65V74.96H33.5V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 72.11H33.42V74.96H36.27V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 72.11H36.1801V74.96H39.0301V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 72.11H38.94V74.96H41.79V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 72.11H44.47V74.96H47.32V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 72.11H52.76V74.96H55.61V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 72.11H55.53V74.96H58.38V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 72.11H61.05V74.96H63.9V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 72.11H66.58V74.96H69.43V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 72.11H69.34V74.96H72.19V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 72.11H74.87V74.96H77.72V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 72.11H83.16V74.96H86.01V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 72.11H88.69V74.96H91.54V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 72.11H94.22V74.96H97.07V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 72.11H96.98V74.96H99.83V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 72.11H99.74V74.96H102.59V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 72.11H110.8V74.96H113.65V72.11Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 74.87H3.02002V77.72H5.87002V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 74.87H14.0701V77.72H16.9201V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 74.87H19.6V77.72H22.45V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 74.87H22.36V77.72H25.21V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 74.87H25.13V77.72H27.98V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 74.87H27.89V77.72H30.74V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 74.87H33.42V77.72H36.27V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 74.87H41.71V77.72H44.56V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 74.87H58.29V77.72H61.14V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 74.87H61.05V77.72H63.9V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 74.87H77.63V77.72H80.48V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 74.87H83.16V77.72H86.01V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 74.87H85.92V77.72H88.77V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 74.87H88.69V77.72H91.54V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 74.87H94.22V77.72H97.07V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 74.87H99.74V77.72H102.59V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 74.87H102.51V77.72H105.36V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 74.87H110.8V77.72H113.65V74.87Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 77.64H3.02002V80.49H5.87002V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 77.64H14.0701V80.49H16.9201V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 77.64H16.84V80.49H19.69V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 77.64H27.89V80.49H30.74V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 77.64H47.23V80.49H50.08V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 77.64H55.53V80.49H58.38V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 77.64H63.82V80.49H66.67V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 77.64H66.58V80.49H69.43V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 77.64H77.63V80.49H80.48V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 77.64H80.4V80.49H83.25V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 77.64H83.16V80.49H86.01V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 77.64H85.92V80.49H88.77V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 77.64H88.69V80.49H91.54V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 77.64H102.51V80.49H105.36V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 77.64H105.27V80.49H108.12V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 77.64H110.8V80.49H113.65V77.64Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 80.4H0.26001V83.25H3.11001V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.87002 80.4H3.02002V83.25H5.87002V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 80.4H5.78003V83.25H8.63003V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 80.4H8.55005V83.25H11.4001V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.9201 80.4H14.0701V83.25H16.9201V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 80.4H25.13V83.25H27.98V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 80.4H27.89V83.25H30.74V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 80.4H30.65V83.25H33.5V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 80.4H33.42V83.25H36.27V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 80.4H44.47V83.25H47.32V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 80.4H50V83.25H52.85V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 80.4H52.76V83.25H55.61V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 80.4H61.05V83.25H63.9V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 80.4H69.34V83.25H72.19V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 80.4H74.87V83.25H77.72V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 80.4H99.74V83.25H102.59V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 80.4H102.51V83.25H105.36V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 80.4H105.27V83.25H108.12V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 80.4H108.03V83.25H110.88V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 80.4H110.8V83.25H113.65V80.4Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 83.16H0.26001V86.01H3.11001V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 83.16H5.78003V86.01H8.63003V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 83.16H8.55005V86.01H11.4001V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 83.16H16.84V86.01H19.69V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 83.16H30.65V86.01H33.5V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 83.16H33.42V86.01H36.27V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 83.16H44.47V86.01H47.32V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 83.16H52.76V86.01H55.61V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 83.16H55.53V86.01H58.38V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 83.16H58.29V86.01H61.14V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 83.16H63.82V86.01H66.67V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 83.16H66.58V86.01H69.43V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 83.16H72.11V86.01H74.96V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 83.16H74.87V86.01H77.72V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 83.16H77.63V86.01H80.48V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 83.16H80.4V86.01H83.25V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 83.16H83.16V86.01H86.01V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 83.16H88.69V86.01H91.54V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 83.16H91.45V86.01H94.3V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 83.16H94.22V86.01H97.07V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 83.16H96.98V86.01H99.83V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 83.16H99.74V86.01H102.59V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 83.16H102.51V86.01H105.36V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 83.16H105.27V86.01H108.12V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 83.16H108.03V86.01H110.88V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 83.16H110.8V86.01H113.65V83.16Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 85.93H0.26001V88.78H3.11001V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M8.63003 85.93H5.78003V88.78H8.63003V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.4001 85.93H8.55005V88.78H11.4001V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 85.93H19.6V88.78H22.45V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 85.93H25.13V88.78H27.98V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 85.93H27.89V88.78H30.74V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 85.93H38.94V88.78H41.79V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 85.93H44.47V88.78H47.32V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 85.93H58.29V88.78H61.14V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 85.93H61.05V88.78H63.9V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 85.93H63.82V88.78H66.67V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 85.93H74.87V88.78H77.72V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 85.93H80.4V88.78H83.25V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 85.93H88.69V88.78H91.54V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 85.93H91.45V88.78H94.3V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 85.93H94.22V88.78H97.07V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 85.93H96.98V88.78H99.83V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 85.93H102.51V88.78H105.36V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 85.93H108.03V88.78H110.88V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 85.93H110.8V88.78H113.65V85.93Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.11001 88.69H0.26001V91.54H3.11001V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1601 88.69H11.3101V91.54H14.1601V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.69 88.69H16.84V91.54H19.69V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M22.45 88.69H19.6V91.54H22.45V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 88.69H22.36V91.54H25.21V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 88.69H25.13V91.54H27.98V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 88.69H33.42V91.54H36.27V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 88.69H38.94V91.54H41.79V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 88.69H44.47V91.54H47.32V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 88.69H63.82V91.54H66.67V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 88.69H72.11V91.54H74.96V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 88.69H74.87V91.54H77.72V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 88.69H77.63V91.54H80.48V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 88.69H80.4V91.54H83.25V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 88.69H85.92V91.54H88.77V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 88.69H88.69V91.54H91.54V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 88.69H91.45V91.54H94.3V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 88.69H94.22V91.54H97.07V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 88.69H96.98V91.54H99.83V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 88.69H99.74V91.54H102.59V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 88.69H105.27V91.54H108.12V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 88.69H108.03V91.54H110.88V88.69Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 91.46H22.36V94.31H25.21V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 91.46H25.13V94.31H27.98V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 91.46H27.89V94.31H30.74V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 91.46H33.42V94.31H36.27V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 91.46H44.47V94.31H47.32V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 91.46H50V94.31H52.85V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 91.46H58.29V94.31H61.14V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 91.46H66.58V94.31H69.43V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 91.46H74.87V94.31H77.72V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 91.46H80.4V94.31H83.25V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 91.46H83.16V94.31H86.01V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 91.46H88.69V94.31H91.54V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 91.46H99.74V94.31H102.59V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 91.46H105.27V94.31H108.12V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 91.46H108.03V94.31H110.88V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M113.65 91.46H110.8V94.31H113.65V91.46Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 94.22H22.36V97.07H25.21V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 94.22H30.65V97.07H33.5V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 94.22H33.42V97.07H36.27V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 94.22H36.1801V97.07H39.0301V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 94.22H41.71V97.07H44.56V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 94.22H44.47V97.07H47.32V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 94.22H47.23V97.07H50.08V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 94.22H50V97.07H52.85V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 94.22H52.76V97.07H55.61V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 94.22H61.05V97.07H63.9V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 94.22H80.4V97.07H83.25V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 94.22H85.92V97.07H88.77V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 94.22H88.69V97.07H91.54V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 94.22H94.22V97.07H97.07V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 94.22H99.74V97.07H102.59V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 94.22H102.51V97.07H105.36V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 94.22H108.03V97.07H110.88V94.22Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 96.98H22.36V99.83H25.21V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 96.98H27.89V99.83H30.74V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 96.98H33.42V99.83H36.27V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 96.98H38.94V99.83H41.79V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 96.98H44.47V99.83H47.32V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M52.85 96.98H50V99.83H52.85V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 96.98H52.76V99.83H55.61V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 96.98H55.53V99.83H58.38V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 96.98H58.29V99.83H61.14V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 96.98H61.05V99.83H63.9V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 96.98H72.11V99.83H74.96V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 96.98H74.87V99.83H77.72V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 96.98H77.63V99.83H80.48V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 96.98H80.4V99.83H83.25V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 96.98H83.16V99.83H86.01V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 96.98H85.92V99.83H88.77V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 96.98H88.69V99.83H91.54V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 96.98H99.74V99.83H102.59V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 96.98H102.51V99.83H105.36V96.98Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 99.75H22.36V102.6H25.21V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 99.75H27.89V102.6H30.74V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 99.75H30.65V102.6H33.5V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 99.75H36.1801V102.6H39.0301V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 99.75H38.94V102.6H41.79V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 99.75H44.47V102.6H47.32V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 99.75H47.23V102.6H50.08V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 99.75H52.76V102.6H55.61V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 99.75H63.82V102.6H66.67V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 99.75H74.87V102.6H77.72V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 99.75H77.63V102.6H80.48V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 99.75H88.69V102.6H91.54V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 99.75H91.45V102.6H94.3V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 99.75H94.22V102.6H97.07V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 99.75H96.98V102.6H99.83V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 99.75H99.74V102.6H102.59V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 99.75H105.27V102.6H108.12V99.75Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 102.51H22.36V105.36H25.21V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 102.51H25.13V105.36H27.98V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 102.51H27.89V105.36H30.74V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 102.51H33.42V105.36H36.27V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 102.51H36.1801V105.36H39.0301V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 102.51H47.23V105.36H50.08V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 102.51H63.82V105.36H66.67V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 102.51H66.58V105.36H69.43V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 102.51H72.11V105.36H74.96V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 102.51H83.16V105.36H86.01V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 102.51H91.45V105.36H94.3V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 102.51H96.98V105.36H99.83V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 102.51H102.51V105.36H105.36V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.12 102.51H105.27V105.36H108.12V102.51Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 105.27H22.36V108.12H25.21V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 105.27H27.89V108.12H30.74V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M36.27 105.27H33.42V108.12H36.27V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M39.0301 105.27H36.1801V108.12H39.0301V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M58.38 105.27H55.53V108.12H58.38V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 105.27H61.05V108.12H63.9V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 105.27H63.82V108.12H66.67V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 105.27H69.34V108.12H72.19V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 105.27H72.11V108.12H74.96V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 105.27H74.87V108.12H77.72V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 105.27H77.63V108.12H80.48V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 105.27H80.4V108.12H83.25V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 105.27H91.45V108.12H94.3V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M97.07 105.27H94.22V108.12H97.07V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 105.27H96.98V108.12H99.83V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 105.27H99.74V108.12H102.59V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 105.27H102.51V108.12H105.36V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 105.27H108.03V108.12H110.88V105.27Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M25.21 108.04H22.36V110.89H25.21V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M27.98 108.04H25.13V110.89H27.98V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M33.5 108.04H30.65V110.89H33.5V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M44.56 108.04H41.71V110.89H44.56V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 108.04H44.47V110.89H47.32V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M55.61 108.04H52.76V110.89H55.61V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 108.04H61.05V110.89H63.9V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M66.67 108.04H63.82V110.89H66.67V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 108.04H66.58V110.89H69.43V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 108.04H72.11V110.89H74.96V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 108.04H74.87V110.89H77.72V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M80.48 108.04H77.63V110.89H80.48V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 108.04H85.92V110.89H88.77V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M91.54 108.04H88.69V110.89H91.54V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.3 108.04H91.45V110.89H94.3V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 108.04H99.74V110.89H102.59V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M110.88 108.04H108.03V110.89H110.88V108.04Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M30.74 110.8H27.89V113.65H30.74V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M41.79 110.8H38.94V113.65H41.79V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M47.32 110.8H44.47V113.65H47.32V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M50.08 110.8H47.23V113.65H50.08V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M61.14 110.8H58.29V113.65H61.14V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M63.9 110.8H61.05V113.65H63.9V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M69.43 110.8H66.58V113.65H69.43V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M72.19 110.8H69.34V113.65H72.19V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M74.96 110.8H72.11V113.65H74.96V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M77.72 110.8H74.87V113.65H77.72V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M83.25 110.8H80.4V113.65H83.25V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M86.01 110.8H83.16V113.65H86.01V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M88.77 110.8H85.92V113.65H88.77V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M99.83 110.8H96.98V113.65H99.83V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M102.59 110.8H99.74V113.65H102.59V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M105.36 110.8H102.51V113.65H105.36V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.26001 0.26001V19.6H19.6V0.26001H0.26001ZM16.84 16.84H3.02001V3.02001H16.84V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M94.22 0.26001V19.6H113.56V0.26001H94.22ZM110.8 16.84H96.98V3.02001H110.8V16.84Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.26001 94.22V113.56H19.6V94.22H0.26001ZM16.84 110.8H3.02001V96.98H16.84V110.8Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.08 5.79001H5.79004V14.08H14.08V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M108.04 5.79001H99.75V14.08H108.04V5.79001Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.08 99.75H5.79004V108.04H14.08V99.75Z\", fill: \"currentColor\" }));\nexport default SvgQrCodeLarge;\n","import { Box, Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport Close from '@vp/assets/icons/Close.svg?react';\nimport Logo from '@vp/assets/icons/Logo.svg?react';\nimport QrCodeLarge from '@vp/assets/icons/QrCodeLarge.svg?react';\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { VpModal } from '@vp/common/ui/component/VpModal';\n\nexport type ProfileAdModalProps = {\n open: boolean;\n close: () => void;\n};\n\nconst Text = 'Установите мемориальный\\nблистер с QR-кодом в память\\nо ваших близких.';\n\nconst ButtonGradient =\n 'linear-gradient(90.82deg, rgba(229, 229, 229, 0.35) -43.91%, rgba(229, 229, 229, 0.15) 48.8%, rgba(229, 229, 229, 0) 150.27%)';\n\nexport const ProfileAdModal: FC = ({ open, close }) => {\n return (\n \n \n \n\n \n Сохраните память навсегда!\n \n\n \n {Text}\n \n\n \n \n\n \n\n \n \n\n \n \n \n );\n};\n","import { useMediaQuery, useTheme } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport Menu from '@vp/assets/icons/Menu.svg?react';\nimport QrCode from '@vp/assets/icons/QrCode.svg?react';\nimport Share from '@vp/assets/icons/Share.svg?react';\nimport { VpHeader } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileAdModal } from '@vp/profile/ui/header/ProfileAdModal';\nimport { ProfilePageHeaderViewModel } from '@vp/profile/ui/header/ProfilePageHeaderViewModel';\nimport { ProfileThemeProvider } from '@vp/profile/ui/ProfileThemeProvider';\n\nexport const ProfilePageHeader: FC = () => {\n const viewModel = useViewModel(ProfilePageHeaderViewModel);\n\n const { breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n return (\n \n \n {isDesktop && (\n \n \n \n )}\n\n {!isDesktop && }\n\n \n \n \n\n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport ChatIcon from '@vp/assets/icons/Chat.svg?react';\nimport { VpIcon } from '@vp/common/ui/component/VpIcon';\n\nexport const NoRecordsMessage: FC = () => {\n return (\n \n \n\n \n Оставьте запись в память об ушедшем близком. Ваша запись будет отправлена на модерацию и появится в галерее почестей после одобрения\n владельцем профиля.\n \n \n );\n};\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport interface SubmitRecordHeaderProps {\n close: () => void;\n disableCloseIcon: boolean;\n}\n\nexport const SubmitRecordHeader: FC = ({ close, disableCloseIcon }) => {\n return (\n ({ position: 'static', background: theme.palette.background[300], mb: 1, px: { tablet: 3 }, mt: { desktop: 0.25 } })}\n >\n \n ({ [theme.breakpoints.up('desktop')]: { p: 1 } })}\n />\n \n\n \n \n Оставить запись\n \n \n\n \n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { SubmitRecordBody } from '@vp/honor/ui/components/SubmitRecordBody';\nimport { SubmitRecordHeader } from '@vp/honor/ui/components/SubmitRecordHeader';\nimport { HonorSubmitViewModel } from '@vp/honor/ui/HonorSubmitViewModel';\nimport { ProfileHonorRecordModel } from '@vp/profile/core/model/ProfileHonorRecordModel';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\nimport { scrollbarStyles } from '@vp/theme/scrollbarStyles';\n\ninterface SubmitRecordContentProps {\n submitButtonText: string;\n profileId: string;\n close: () => void;\n handleSubmissionResult: (status: ProfileHonorNotificationStatus, record: ProfileHonorRecordModel | null) => void;\n handleBeforeSubmission?: () => void;\n}\n\nexport const SubmitRecordContent: FC = ({\n handleSubmissionResult,\n handleBeforeSubmission,\n close,\n submitButtonText,\n profileId,\n}) => {\n const viewModel = useViewModel(HonorSubmitViewModel);\n\n return (\n \n \n\n ({\n overflow: 'auto',\n px: { mobile: 3, tablet: 7 },\n [theme.breakpoints.up('desktop')]: {\n ...scrollbarStyles(theme),\n },\n })}\n >\n \n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { ModalOwnProps } from '@mui/material/Modal/Modal';\nimport { FC, useCallback } from 'react';\n\nimport { SubmitRecordContent } from '@vp/honor/ui/components/SubmitRecordContent';\nimport { ProfileHonorNotificationStatus } from '@vp/profile/ui/honor/ProfileHonor';\n\nexport interface SubmitRecordModalProps {\n open: boolean;\n profileId: string;\n close: (status?: ProfileHonorNotificationStatus) => void;\n handleSubmissionResult: (status: ProfileHonorNotificationStatus) => void;\n}\n\nexport const SubmitRecordModal: FC = ({ profileId, open, close, handleSubmissionResult }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n const onClose = useCallback>((_, reason) => reason === 'escapeKeyDown' && close(), [close]);\n\n return (\n \n \n ({ overflowY: 'auto', outline: 'none', backgroundColor: palette.background.default })}\n >\n \n \n \n \n );\n};\n","import { Box, Stack } from '@mui/material';\nimport { FC, Fragment } from 'react';\n\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { NoRecordsMessage } from '@vp/profile/ui/honor/NoRecordsMessage';\nimport { ProfileHonorRecords } from '@vp/profile/ui/honor/ProfileHonorRecords';\nimport { ProfileHonorViewModel } from '@vp/profile/ui/honor/ProfileHonorViewModel';\nimport { SubmitRecordModal } from '@vp/profile/ui/honor/SubmitRecordModal';\nimport { useSectionMinHeight } from '@vp/profile/ui/hook/useSectionMinHeight';\n\ninterface ProfileHonorProps {\n profile: ProfileModel;\n}\n\nexport type ProfileHonorNotificationStatus = 'success' | 'error' | 'info';\n\nexport const ProfileHonor: FC = ({ profile }) => {\n const viewModel = useViewModel(ProfileHonorViewModel);\n const minHeight = useSectionMinHeight();\n\n return (\n \n \n {profile.honorRecords.length > 0 ? : }\n \n \n \n \n\n \n \n );\n};\n","import { Stack, Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { FC, forwardRef, Fragment, memo, useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { VpSystemThemeProvider } from '@vp/common/ui/component/VpSystemThemeProvider';\nimport { useRectOnResize } from '@vp/common/ui/hook/useRectOnResize';\nimport { useImageSizes } from '@vp/profile/ui/hook/useImageSizes';\nimport { ProfileNavigation } from '@vp/profile/ui/navigation/ProfileNavigation';\n\nexport interface ProfileInfoProps {\n name: string;\n birthDate: string;\n deathDate: string;\n}\n\nexport const ProfileInfo = memo(\n forwardRef(({ name, deathDate, birthDate }, ref) => {\n const navigationRef = useRef(null!);\n const [navigationTop, setNavigationTop] = useState(0);\n const [navigationHeight, setNavigationHeight] = useState(0);\n const [scrollProgress, setScrollProgress] = useState(0);\n const { palette, breakpoints } = useTheme();\n const { fullImageHeight, smallImageHeight } = useImageSizes();\n\n const heightDiff = fullImageHeight - smallImageHeight;\n const dates = birthDate && deathDate ? `${birthDate} - ${deathDate}` : '';\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n useImperativeHandle(ref, () => navigationRef.current);\n\n useRectOnResize(\n navigationRef,\n useCallback(\n ({ height }) => {\n if (isDesktop) return setNavigationTop(0);\n setNavigationHeight(height);\n setNavigationTop(smallImageHeight - height);\n },\n [isDesktop, smallImageHeight],\n ),\n );\n\n useEffect(() => {\n if (isDesktop) return setScrollProgress(0);\n\n const root = document.getElementById('root')!;\n\n const onScroll = (): void => {\n const distance = Math.max(root.scrollTop - heightDiff, 0);\n const progress = Math.min(distance / navigationHeight, 1) * 100;\n setScrollProgress(progress);\n };\n\n onScroll();\n root.addEventListener('scroll', onScroll);\n\n return (): void => root.removeEventListener('scroll', onScroll);\n }, [heightDiff, isDesktop, navigationHeight]);\n\n return (\n ({\n width: 1,\n position: 'sticky',\n zIndex: theme.zIndex.galleryProfileInfo,\n [theme.breakpoints.up('desktop')]: { backgroundColor: 'background.300' },\n })}\n style={{ top: `${navigationTop}px` }}\n >\n {(palette.mode === 'dark' || isDesktop) && }\n\n {palette.mode === 'light' && !isDesktop && (\n \n \n \n \n\n \n \n \n \n )}\n \n );\n }),\n);\n\nProfileInfo.displayName = ProfileInfo.name;\n\nconst ProfileInfoContent: FC<{ name: string; dates: string }> = memo(({ name, dates }) => {\n return (\n \n \n ({\n color: 'text.secondary',\n ...theme.applyStyles('light', {\n color: 'text.primary',\n }),\n })}\n >\n {name || 'Имя не указано'}\n \n\n \n {dates}\n \n \n\n \n \n );\n});\n\nProfileInfoContent.displayName = ProfileInfoContent.name;\n","import { Typography } from '@mui/material';\nimport { FC } from 'react';\n\nimport { ProfileModel } from '@vp/profile/core/model/ProfileModel';\nimport { useSectionMinHeight } from '@vp/profile/ui/hook/useSectionMinHeight';\n\nexport interface ProfileBioProps {\n profile: ProfileModel;\n}\n\nexport const ProfileBio: FC = ({ profile }) => {\n const minHeight = useSectionMinHeight();\n\n return (\n \n {profile.bio}\n \n );\n};\n","import { Box } from '@mui/material';\nimport { useMotionValue, useSpring } from 'motion/react';\nimport { FC, useEffect, useState } from 'react';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { useImageSizes } from '@vp/profile/ui/hook/useImageSizes';\n\nexport interface ProfileImageProps {\n image: ProfilePhotoModel;\n}\n\nexport const ProfileImage: FC = ({ image }) => {\n const [position, setPosition] = useState(0);\n const [multiplier, setMultiplier] = useState(0);\n const { fullImageHeight, smallImageHeight } = useImageSizes();\n\n const rawPosition = useMotionValue(0);\n const smoothPosition = useSpring(rawPosition, { damping: 50, stiffness: 300 });\n\n const gradient = `linear-gradient(180deg, rgba(0, 0, 0, ${multiplier * 0.18}) 0%, rgba(0, 0, 0, ${multiplier * 0.72}) 56.8%, rgba(0, 0, 0, ${multiplier * 0.9}) 100%)`;\n const heightDiff = fullImageHeight - smallImageHeight;\n\n useEffect(() => smoothPosition.on('change', setPosition), [smoothPosition]);\n\n useEffect(() => {\n const root = document.getElementById('root')!;\n\n const onScroll = (): void => {\n const top = root.scrollTop;\n rawPosition.set(Math.min(top / 2, heightDiff / 2));\n setMultiplier(Math.min(top / heightDiff, 1));\n };\n\n onScroll();\n\n root.addEventListener('scroll', onScroll);\n return (): void => root.removeEventListener('scroll', onScroll);\n }, [heightDiff, rawPosition]);\n\n return (\n ({\n zIndex: theme.zIndex.galleryProfileImage,\n width: '100%',\n display: 'flex',\n alignItems: 'flex-end',\n height: `${fullImageHeight}px`,\n position: 'sticky',\n top: `-${heightDiff}px`,\n })}\n >\n \n \n \n );\n};\n","import { Box } from '@mui/material';\nimport { FC } from 'react';\n\nexport const ProfilePageNoise: FC = () => {\n return (\n ({\n ...theme.applyStyles('light', {\n inset: 0,\n position: 'fixed',\n pointerEvents: 'none',\n backgroundImage: theme.lightNoise,\n zIndex: theme.zIndex.galleryProfileInfo + 1,\n }),\n })}\n />\n );\n};\n","import { IconButton, SvgIcon } from '@mui/material';\nimport { FC } from 'react';\n\nimport CloseIcon from '@vp/assets/icons/Close.svg?react';\n\ninterface CloseButtonProps {\n close: () => void;\n}\n\nexport const CloseButton: FC = ({ close }) => {\n return (\n ({\n color: theme.palette.primary[500],\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-2),\n right: theme.spacing(-1),\n bottom: theme.spacing(-2),\n left: theme.spacing(-2),\n background: 'transparent',\n },\n })}\n >\n \n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgExport = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.5 16.5V19.5H5.5V16.5H4V19.5L4.0057 19.4963C4.00499 19.6932 4.04309 19.8883 4.11782 20.0704C4.19255 20.2526 4.30244 20.4182 4.44122 20.5579C4.57999 20.6975 4.74493 20.8084 4.92661 20.8843C5.10828 20.9602 5.30312 20.9995 5.5 21H18.5C18.8978 21 19.2794 20.842 19.5607 20.5607C19.842 20.2794 20 19.8978 20 19.5V16.5H18.5Z\", fill: \"#EDEDED\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.92281 9.40088L6.98106 10.4546L11.1288 6.86875V16.5H12.6288V6.86875L17.0189 10.4546L18.0757 9.40088L11.8788 4L5.92281 9.40088Z\", fill: \"#EDEDED\" }));\nexport default SvgExport;\n","import { IconButton, SvgIcon } from '@mui/material';\nimport { FC, SyntheticEvent, useCallback } from 'react';\n\nimport ExportIcon from '@vp/assets/icons/Export.svg?react';\n\nexport const ShareButton: FC = () => {\n const handleClick = useCallback((event: SyntheticEvent) => {\n event.stopPropagation();\n }, []);\n\n return (\n ({\n position: 'relative',\n // todo: implement share link\n display: 'none',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-2),\n right: theme.spacing(-1),\n bottom: theme.spacing(-2),\n left: theme.spacing(-2),\n background: 'transparent',\n },\n })}\n >\n \n \n \n \n );\n};\n","import * as React from \"react\";\nconst SvgGrid = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3 8H6C6.39782 8 6.77936 7.84196 7.06066 7.56066C7.34196 7.27936 7.5 6.89782 7.5 6.5V3.5C7.5 3.10218 7.34196 2.72064 7.06066 2.43934C6.77936 2.15804 6.39782 2 6 2H3C2.60218 2 2.22064 2.15804 1.93934 2.43934C1.65804 2.72064 1.5 3.10218 1.5 3.5V6.5C1.5 6.89782 1.65804 7.27936 1.93934 7.56066C2.22064 7.84196 2.60218 8 3 8Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M6 15.5H3C2.60218 15.5 2.22064 15.342 1.93934 15.0607C1.65804 14.7794 1.5 14.3978 1.5 14V11C1.5 10.6022 1.65804 10.2206 1.93934 9.93934C2.22064 9.65804 2.60218 9.5 3 9.5H6C6.39782 9.5 6.77936 9.65804 7.06066 9.93934C7.34196 10.2206 7.5 10.6022 7.5 11V14C7.5 14.3978 7.34196 14.7794 7.06066 15.0607C6.77936 15.342 6.39782 15.5 6 15.5Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M6 23H3C2.60218 23 2.22064 22.842 1.93934 22.5607C1.65804 22.2794 1.5 21.8978 1.5 21.5V18.5C1.5 18.1022 1.65804 17.7206 1.93934 17.4393C2.22064 17.158 2.60218 17 3 17H6C6.39782 17 6.77936 17.158 7.06066 17.4393C7.34196 17.7206 7.5 18.1022 7.5 18.5V21.5C7.5 21.8978 7.34196 22.2794 7.06066 22.5607C6.77936 22.842 6.39782 23 6 23Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.5 23H10.5C10.1022 23 9.72064 22.842 9.43934 22.5607C9.15804 22.2794 9 21.8978 9 21.5V18.5C9 18.1022 9.15804 17.7206 9.43934 17.4393C9.72064 17.158 10.1022 17 10.5 17H13.5C13.8978 17 14.2794 17.158 14.5607 17.4393C14.842 17.7206 15 18.1022 15 18.5V21.5C15 21.8978 14.842 22.2794 14.5607 22.5607C14.2794 22.842 13.8978 23 13.5 23Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18 23H21C21.3978 23 21.7794 22.842 22.0607 22.5607C22.342 22.2794 22.5 21.8978 22.5 21.5V18.5C22.5 18.1022 22.342 17.7206 22.0607 17.4393C21.7794 17.158 21.3978 17 21 17H18C17.6022 17 17.2206 17.158 16.9393 17.4393C16.658 17.7206 16.5 18.1022 16.5 18.5V21.5C16.5 21.8978 16.658 22.2794 16.9393 22.5607C17.2206 22.842 17.6022 23 18 23Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.5 15.5H13.5C13.8978 15.5 14.2794 15.342 14.5607 15.0607C14.842 14.7794 15 14.3978 15 14V11C15 10.6022 14.842 10.2206 14.5607 9.93934C14.2794 9.65804 13.8978 9.5 13.5 9.5H10.5C10.1022 9.5 9.72064 9.65804 9.43934 9.93934C9.15804 10.2206 9 10.6022 9 11V14C9 14.3978 9.15804 14.7794 9.43934 15.0607C9.72064 15.342 10.1022 15.5 10.5 15.5Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M21 15.5H18C17.6022 15.5 17.2206 15.342 16.9393 15.0607C16.658 14.7794 16.5 14.3978 16.5 14V11C16.5 10.6022 16.658 10.2206 16.9393 9.93934C17.2206 9.65804 17.6022 9.5 18 9.5H21C21.3978 9.5 21.7794 9.65804 22.0607 9.93934C22.342 10.2206 22.5 10.6022 22.5 11V14C22.5 14.3978 22.342 14.7794 22.0607 15.0607C21.7794 15.342 21.3978 15.5 21 15.5Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.5 8H10.5C10.1022 8 9.72064 7.84196 9.43934 7.56066C9.15804 7.27936 9 6.89782 9 6.5V3.5C9 3.10218 9.15804 2.72064 9.43934 2.43934C9.72064 2.15804 10.1022 2 10.5 2H13.5C13.8978 2 14.2794 2.15804 14.5607 2.43934C14.842 2.72064 15 3.10218 15 3.5V6.5C15 6.89782 14.842 7.27936 14.5607 7.56066C14.2794 7.84196 13.8978 8 13.5 8Z\", fill: \"#E5E5E5\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M18 8H21C21.3978 8 21.7794 7.84196 22.0607 7.56066C22.342 7.27936 22.5 6.89782 22.5 6.5V3.5C22.5 3.10218 22.342 2.72064 22.0607 2.43934C21.7794 2.15804 21.3978 2 21 2H18C17.6022 2 17.2206 2.15804 16.9393 2.43934C16.658 2.72064 16.5 3.10218 16.5 3.5V6.5C16.5 6.89782 16.658 7.27936 16.9393 7.56066C17.2206 7.84196 17.6022 8 18 8Z\", fill: \"#E5E5E5\" }));\nexport default SvgGrid;\n","import { Box, IconButton, SvgIcon } from '@mui/material';\nimport { FC, SyntheticEvent, useCallback } from 'react';\n\nimport GridIcon from '@vp/assets/icons/Grid.svg?react';\n\ninterface SlideshowGalleryButtonProps {\n openGallery: () => void;\n}\n\nexport const SlideshowGalleryButton: FC = ({ openGallery }) => {\n const handleClick = useCallback(\n (event: SyntheticEvent) => {\n openGallery();\n event.stopPropagation();\n },\n [openGallery],\n );\n\n return (\n ({\n width: 64,\n height: 64,\n position: 'relative',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.palette.transparency.alpha8,\n backdropFilter: 'blur(10px)',\n borderRadius: '50%',\n })}\n onClick={handleClick}\n >\n ({\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-3),\n right: theme.spacing(-3),\n bottom: theme.spacing(-3),\n left: theme.spacing(-3),\n background: 'transparent',\n },\n })}\n >\n \n \n \n \n\n \n \n \n \n \n \n );\n};\n","import { Box, CircularProgress, IconButton, SvgIcon } from '@mui/material';\nimport { FC, SyntheticEvent, useCallback, useMemo } from 'react';\n\nimport PauseIcon from '@vp/assets/icons/PauseFilled.svg?react';\nimport PlayIcon from '@vp/assets/icons/PlayFilled.svg?react';\n\ninterface SlideshowPlaybackButtonProps {\n progress: number;\n isPaused: boolean;\n togglePause: () => void;\n}\n\nexport const SlideshowPlaybackButton: FC = ({ progress, isPaused, togglePause }) => {\n const Icon = useMemo(() => (isPaused ? : ), [isPaused]);\n const handleClick = useCallback(\n (event: SyntheticEvent) => {\n togglePause();\n event.stopPropagation();\n },\n [togglePause],\n );\n\n return (\n ({\n width: 64,\n height: 64,\n position: 'relative',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: theme.palette.transparency.alpha8,\n backdropFilter: 'blur(10px)',\n borderRadius: '50%',\n })}\n onClick={handleClick}\n >\n \n ({\n position: 'absolute',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-3),\n right: theme.spacing(-3),\n bottom: theme.spacing(-3),\n left: theme.spacing(-3),\n background: 'transparent',\n },\n })}\n >\n {Icon}\n \n\n \n {Icon}\n \n \n );\n};\n","import * as React from \"react\";\nconst SvgVolume = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M14.7112 22.9406C14.8026 22.9792 14.9008 22.9993 15 22.9997C15.1989 22.9997 15.3897 22.9207 15.5303 22.78C15.671 22.6394 15.75 22.4486 15.75 22.2497V2.74969C15.7472 2.55186 15.6663 2.36316 15.525 2.22469C15.3845 2.085 15.1944 2.00659 14.9963 2.00659C14.7981 2.00659 14.608 2.085 14.4675 2.22469L8.7525 7.99969H3.75C3.55109 7.99969 3.36032 8.0787 3.21967 8.21936C3.07902 8.36001 3 8.55077 3 8.74969V16.2497C3 16.4486 3.07902 16.6394 3.21967 16.78C3.36032 16.9207 3.55109 16.9997 3.75 16.9997H8.7525L14.4675 22.7747C14.537 22.8456 14.6198 22.9019 14.7112 22.9406ZM9 15.4997H4.5V9.49969H9C9.21863 9.50112 9.42993 9.42088 9.5925 9.27469L14.25 4.57219V20.4272L9.5925 15.7247C9.42993 15.5785 9.21863 15.4983 9 15.4997ZM17.685 9.50012L18.825 8.49512V8.53262C19.7695 9.64991 20.2733 11.0738 20.2415 12.5365C20.2098 13.9992 19.6447 15.3999 18.6525 16.4751L17.55 15.4551C18.2944 14.6495 18.7189 13.5997 18.7438 12.5031C18.7686 11.4066 18.3921 10.3386 17.685 9.50012Z\", fill: \"#EDEDED\" }));\nexport default SvgVolume;\n","import * as React from \"react\";\nconst SvgVolumeMute = (props) => /* @__PURE__ */ React.createElement(\"svg\", { width: 24, height: 25, viewBox: \"0 0 24 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M13.2112 22.9406C13.3026 22.9792 13.4008 22.9993 13.5 22.9997C13.6989 22.9997 13.8897 22.9207 14.0303 22.78C14.171 22.6394 14.25 22.4486 14.25 22.2497V2.74969C14.2472 2.55186 14.1663 2.36316 14.025 2.22469C13.8845 2.085 13.6944 2.00659 13.4963 2.00659C13.2981 2.00659 13.108 2.085 12.9675 2.22469L7.2525 7.99969H2.25C2.05109 7.99969 1.86032 8.0787 1.71967 8.21936C1.57902 8.36001 1.5 8.55077 1.5 8.74969V16.2497C1.5 16.4486 1.57902 16.6394 1.71967 16.78C1.86032 16.9207 2.05109 16.9997 2.25 16.9997H7.2525L12.9675 22.7747C13.037 22.8456 13.1198 22.9019 13.2112 22.9406ZM7.5 15.4997H3V9.49969H7.5C7.71863 9.50112 7.92993 9.42088 8.0925 9.27469L12.75 4.57219V20.4272L8.0925 15.7247C7.92993 15.5785 7.71863 15.4983 7.5 15.4997ZM22.1925 8.75L23.25 9.8075L20.5575 12.5L23.25 15.1925L22.1925 16.25L19.5 13.5575L16.8075 16.25L15.75 15.1925L18.4425 12.5L15.75 9.8075L16.8075 8.75L19.5 11.4425L22.1925 8.75Z\", fill: \"#EDEDED\" }));\nexport default SvgVolumeMute;\n","import { IconButton, SvgIcon } from '@mui/material';\nimport { FC, SyntheticEvent, useCallback } from 'react';\n\nimport VolumeIcon from '@vp/assets/icons/Volume.svg?react';\nimport VolumeMutedIcon from '@vp/assets/icons/VolumeMute.svg?react';\n\ninterface VolumeButtonProps {\n muted: boolean;\n toggleAudioMuted: () => void;\n}\n\nexport const VolumeButton: FC = ({ muted, toggleAudioMuted }) => {\n const handleClick = useCallback(\n (event: SyntheticEvent) => {\n event.stopPropagation();\n toggleAudioMuted();\n },\n [toggleAudioMuted],\n );\n\n return (\n ({\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: theme.spacing(-2),\n right: theme.spacing(-2),\n bottom: theme.spacing(-2),\n left: theme.spacing(-0.5),\n background: 'transparent',\n },\n })}\n >\n {muted ? : }\n \n );\n};\n","import { Box, Fade, Stack } from '@mui/material';\nimport { FC } from 'react';\n\nimport { CloseButton } from '@vp/slideshow/ui/component/control/CloseButton';\nimport { ShareButton } from '@vp/slideshow/ui/component/control/ShareButton';\nimport { SlideshowGalleryButton } from '@vp/slideshow/ui/component/control/SlideshowGalleryButton';\nimport { SlideshowPlaybackButton } from '@vp/slideshow/ui/component/control/SlideshowPlaybackButton';\nimport { VolumeButton } from '@vp/slideshow/ui/component/control/VolumeButton';\n\ninterface SlideshowControlsProps {\n progress: number;\n controlsVisible: boolean;\n isPaused: boolean;\n togglePause: () => void;\n openGallery: () => void;\n toggleAudioMuted: () => void;\n isAudioMuted: boolean;\n close: () => void;\n}\n\nexport const SlideshowControls: FC = ({\n close,\n progress,\n isPaused,\n togglePause,\n controlsVisible,\n openGallery,\n toggleAudioMuted,\n isAudioMuted,\n}) => {\n return (\n \n ({\n position: 'fixed',\n inset: 0,\n justifyContent: 'space-between',\n willChange: 'opacity',\n zIndex: theme.zIndex.mediaControls,\n })}\n >\n \n \n \n \n \n\n \n \n\n ({\n width: 1,\n mb: { mobile: 3, tablet: 7 },\n px: { mobile: 3, tablet: 7 },\n justifyContent: 'space-between',\n zIndex: theme.zIndex.mediaControls,\n })}\n >\n \n \n \n \n \n \n );\n};\n","import { Typography, useTheme } from '@mui/material';\nimport { memo } from 'react';\n\nimport ChevronLeftIcon from '@vp/assets/icons/ChevronLeft.svg?react';\nimport { VpHeader, VpHeaderColumn } from '@vp/common/ui/component/VpHeader';\nimport { VpIconButton } from '@vp/common/ui/component/VpIconButton';\n\nexport type SlideshowGalleryHeaderProps = {\n profileName: string;\n onClose: () => void;\n};\n\nexport const SlideshowGalleryHeader = memo(({ profileName, onClose }) => {\n const { spacing } = useTheme();\n\n return (\n ({\n position: 'sticky',\n background: theme.palette.background[300],\n px: { mobile: 2, tablet: 4 },\n py: 2,\n })}\n >\n \n ({\n padding: 1,\n color: theme.palette.primary.main,\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: spacing(-2),\n right: spacing(-3),\n bottom: spacing(-2),\n left: spacing(-2),\n background: 'transparent',\n },\n })}\n />\n \n\n \n \n {profileName}\n \n \n\n \n \n );\n});\n\nSlideshowGalleryHeader.displayName = 'SlideshowGalleryHeader';\n","import { Box, ImageList, ImageListItem } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\n\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowGalleryHeader } from '@vp/slideshow/ui/component/gallery/SlideshowGalleryHeader';\n\ninterface SlideshowGalleryContentProps {\n close: (goToImageId?: string) => void;\n images: ProfilePhotoModel[];\n profileName: string;\n}\n\nexport const SlideshowGalleryContent: FC = ({ close, images, profileName }) => {\n const [lockInteractions, setLockInteractions] = useState(false);\n\n const handleClose = useCallback(\n (goToImageId?: string) => {\n if (!lockInteractions) {\n setLockInteractions(true);\n close(goToImageId);\n }\n },\n [close, lockInteractions],\n );\n\n const onClose = useCallback(() => handleClose(), [handleClose]);\n\n return (\n \n \n\n ({ width: 1, maxWidth: 650, [theme.breakpoints.only('mobile')]: { px: 3 }, m: 0, mx: 'auto' })}\n >\n {images.map(image => (\n handleClose(image.id)} sx={{ position: 'relative', pt: '133.65%' }} key={image.id}>\n ({\n position: 'absolute',\n inset: 0,\n backgroundImage: `url(${image.url})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n [theme.breakpoints.up('desktop')]: {\n cursor: 'pointer',\n },\n })}\n />\n \n ))}\n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\nimport { SlideshowGalleryContent } from '@vp/slideshow/ui/component/gallery/SlideshowGalleryContent';\n\nexport interface SlideshowGalleryModalProps {\n open: boolean;\n close: (goToImageId?: string) => void;\n images: ProfilePhotoModel[];\n profileName: string;\n}\n\nexport const SlideshowGalleryModal: FC = ({ open, close, images, profileName }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n return (\n \n \n ({\n display: 'flex',\n justifyContent: 'center',\n overflowY: 'auto',\n outline: 'none',\n backgroundColor: palette.background.default,\n })}\n >\n \n \n \n \n );\n};\n","import { useMediaQuery, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\ninterface SlideshowImageProps {\n image: ProfilePhotoModel;\n}\n\nexport const SlideshowImage: FC = ({ image }) => {\n const { breakpoints } = useTheme();\n const isMobile = useMediaQuery(breakpoints.only('mobile'));\n\n const mode = isMobile ? 'cover' : 'contain';\n\n return (\n \n );\n};\n","import { Box, Button, Stack, Typography, useMediaQuery, useTheme } from '@mui/material';\nimport { FC, useCallback, useState } from 'react';\n\nimport { VpFancyButton } from '@vp/common/ui/component/VpFancyButton';\nimport { VpImage } from '@vp/common/ui/component/VpImage';\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { ProfilePhotoModel } from '@vp/profile/core/model/ProfilePhotoModel';\n\ninterface SlideshowIntroContentProps {\n name: string;\n image: ProfilePhotoModel;\n imageScale: number;\n buttonText: string;\n birthDeathDates: string;\n startSlideshow: () => void;\n skipSlideshow: () => void;\n}\n\nconst ButtonGradient =\n 'linear-gradient(90.82deg, rgba(229, 229, 229, 0.35) -43.91%, rgba(229, 229, 229, 0.15) 48.8%, rgba(229, 229, 229, 0) 150.27%)';\n\nconst ImageOverlayGradient = 'linear-gradient(180deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.36) 54.57%, rgba(0, 0, 0, 0.18) 100%)';\n\nexport const SlideshowIntro: FC = ({\n startSlideshow,\n skipSlideshow,\n image,\n imageScale,\n buttonText,\n birthDeathDates,\n name,\n}) => {\n const [lockInteractions, setLockInteractions] = useState(false);\n\n const { breakpoints } = useTheme();\n const isMobile = useMediaQuery(breakpoints.only('mobile'));\n const imageMode = isMobile ? 'cover' : 'contain';\n\n const handleButtonClick = useCallback(\n (callback: () => void) => {\n if (!lockInteractions) {\n setLockInteractions(true);\n callback();\n }\n },\n [lockInteractions],\n );\n\n const onStartSlideshow = useCallback(() => handleButtonClick(startSlideshow), [handleButtonClick, startSlideshow]);\n const onSkipSlideshow = useCallback(() => handleButtonClick(skipSlideshow), [handleButtonClick, skipSlideshow]);\n\n return (\n ({ width: 1, height: 1, zIndex: theme.zIndex.slideshowIntro })}>\n \n \n \n\n ({\n inset: 0,\n position: 'absolute',\n justifyContent: 'space-between',\n zIndex: theme.zIndex.galleryProfileInfo,\n pt: { mobile: 9, tablet: 13, desktop: 21.25 },\n px: { mobile: 5, tablet: 13, desktop: 21.25 },\n })}\n >\n \n \n {name}\n \n \n {birthDeathDates}\n \n \n\n \n \n \n Перейти к профилю\n \n \n\n \n \n \n \n );\n};\n","import { useCallback, useEffect } from 'react';\n\nexport const useVisibilityPause = (pause: () => void): void => {\n const handleVisibilityChange = useCallback(() => document.hidden && pause(), [pause]);\n\n useEffect(() => {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return (): void => document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, [handleVisibilityChange]);\n};\n","import { Box, Fade, useTheme } from '@mui/material';\nimport { FC, Fragment, useCallback, useEffect } from 'react';\n\nimport { VpMediaGradientOverlay } from '@vp/common/ui/component/VpMediaGradientOverlay';\nimport { useControlsVisible } from '@vp/common/ui/hook/useControlsVisible';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { SlideshowControls } from '@vp/slideshow/ui/component/control/SlideshowControls';\nimport { SlideshowGalleryModal } from '@vp/slideshow/ui/component/gallery/SlideshowGalleryModal';\nimport { SlideshowImage } from '@vp/slideshow/ui/component/SlideshowImage';\nimport { SlideshowIntro } from '@vp/slideshow/ui/component/SlideshowIntro';\nimport { useVisibilityPause } from '@vp/slideshow/ui/hook/useVisibilityPause';\nimport { SlideshowViewModel } from '@vp/slideshow/ui/SlideshowViewModel';\n\nexport const SlideshowContent: FC = () => {\n const viewModel = useViewModel(SlideshowViewModel);\n const { transitions } = useTheme();\n\n const closeSlideshow = useCallback(() => viewModel.closeSlideshow('closed'), [viewModel]);\n const skipSlideshow = useCallback(() => viewModel.closeSlideshow('skipped'), [viewModel]);\n\n const { controlsVisible, toggleControlsVisibility, setInteractionLock, heartbeat } = useControlsVisible();\n\n useVisibilityPause(viewModel.pause);\n\n useEffect(() => {\n heartbeat();\n setInteractionLock(viewModel.isPaused.value);\n }, [viewModel.isPaused.value, setInteractionLock, heartbeat]);\n\n return (\n \n \n \n \n \n\n \n \n\n \n\n \n ({ position: 'absolute', inset: 0, zIndex: theme.zIndex.slideshowIntro })}>\n \n \n \n \n );\n};\n","import { Box, Fade, Modal, useTheme } from '@mui/material';\nimport { FC } from 'react';\n\nimport { SlideshowStatus } from '@vp/slideshow/core/interface/SlideshowState';\nimport { SlideshowContent } from '@vp/slideshow/ui/component/SlideshowContent';\n\nexport interface SlideshowModalProps {\n slideshowStatus: SlideshowStatus;\n}\n\nexport const SlideshowModal: FC = ({ slideshowStatus }) => {\n const { transitions } = useTheme();\n const fadeDuration = transitions.duration.modalFadeDuration;\n\n return (\n \n \n ({ overflow: 'hidden', outline: 'none', backgroundColor: palette.background.default })}\n >\n \n \n \n \n );\n};\n","import { Box, Stack, useMediaQuery, useTheme } from '@mui/material';\nimport { AnimatePresence } from 'motion/react';\nimport { FC, Fragment, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { VpFade } from '@vp/common/ui/component/VpFade';\nimport { useRectOnResize } from '@vp/common/ui/hook/useRectOnResize';\nimport { useSearchSection } from '@vp/common/ui/hook/useSearchSection';\nimport { useSearchSectionCheck } from '@vp/common/ui/hook/useSearchSectionCheck';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileEvents } from '@vp/profile/ui/events/ProfileEvents';\nimport { ProfileGallery } from '@vp/profile/ui/gallery/ProfileGallery';\nimport { ProfilePageHeader } from '@vp/profile/ui/header/ProfilePageHeader';\nimport { ProfileHonor } from '@vp/profile/ui/honor/ProfileHonor';\nimport { ProfileInfo } from '@vp/profile/ui/navigation/ProfileInfo';\nimport { ProfileBio } from '@vp/profile/ui/ProfileBio';\nimport { ProfileDesktopImage } from '@vp/profile/ui/ProfileDesktopImage';\nimport { ProfileImage } from '@vp/profile/ui/ProfileImage';\nimport { ProfilePageNoise } from '@vp/profile/ui/ProfilePageNoise';\nimport { ProfileThemeProvider } from '@vp/profile/ui/ProfileThemeProvider';\nimport { ProfileSection, ProfileViewModel } from '@vp/profile/ui/ProfileViewModel';\nimport { SlideshowModal } from '@vp/profile/ui/SlideshowModal';\nimport { scrollbarStyles } from '@vp/theme/scrollbarStyles';\n\nexport const ProfilePage: FC = () => {\n useSearchSectionCheck('s', ProfileSection.Bio);\n\n const viewModel = useViewModel(ProfileViewModel);\n const section = useSearchSection('s', ProfileSection.Bio);\n\n const { breakpoints } = useTheme();\n const isDesktop = useMediaQuery(breakpoints.up('desktop'));\n\n const profileInfoRef = useRef(null);\n const [profileSectionTop, setProfileSectionTop] = useState(0);\n\n const onResizeTrigger = useRectOnResize(\n profileInfoRef,\n useCallback(({ height }) => setProfileSectionTop(height), []),\n );\n\n useEffect(() => void (isDesktop && onResizeTrigger()), [isDesktop, onResizeTrigger]);\n\n return (\n \n \n \n\n \n \n {!isDesktop && }\n\n ({\n position: 'relative',\n [breakpoints.up('desktop')]: { width: '53%', height: '100dvh', overflowY: 'scroll', ...scrollbarStyles(theme) },\n })}\n >\n \n\n \n \n {section === ProfileSection.Bio && }\n {section === ProfileSection.Events && }\n {section === ProfileSection.Gallery && }\n {section === ProfileSection.Honor && }\n \n \n\n \n \n\n {isDesktop && (\n \n \n \n )}\n \n \n \n\n \n \n );\n};\n","import { FC, Fragment } from 'react';\n\nimport { VpFallback } from '@vp/common/ui/component/VpFallback';\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { ProfileActivationPage } from '@vp/profile/ui/activation/ProfileActivationPage';\nimport { ProfileGatewayViewModel } from '@vp/profile/ui/gateway/ProfileGatewayViewModel';\nimport { ProfilePage } from '@vp/profile/ui/ProfilePage';\n\nexport const ProfileGateway: FC = () => {\n const viewModel = useViewModel(ProfileGatewayViewModel);\n const success = viewModel.state.value === 'success';\n const error = viewModel.state.value === 'error';\n\n if (viewModel.state.value === 'loading') {\n return null;\n }\n\n return (\n \n {error && }\n {success && viewModel.profile.value.active && }\n {success && !viewModel.profile.value.active && }\n \n );\n};\n","import { RouteObject } from 'react-router';\n\nimport { ProfileGateway } from '@vp/profile/ui/gateway/ProfileGateway';\n\nexport const ProfileRouter: RouteObject = {\n path: 'p/:id',\n element: ,\n};\n","import * as Sentry from '@sentry/react';\nimport { useInjection } from 'inversify-react';\nimport { FC, useEffect } from 'react';\nimport { RouteObject } from 'react-router';\nimport { createBrowserRouter, useLocation, useRoutes } from 'react-router-dom';\n\nimport { RouterService } from '@vp/routing/RouterService';\n\nconst routerFactory = Sentry.wrapCreateBrowserRouter(createBrowserRouter);\n\nexport function createRouter(routes: RouteObject[]): ReturnType {\n const RouterConfig: FC = () => {\n const element = useRoutes(routes);\n const location = useLocation();\n const routerService = useInjection(RouterService);\n\n useEffect(() => {\n routerService.notifySubscribers();\n }, [routerService, location.pathname, location.hash, location.search]);\n\n return element;\n };\n\n return routerFactory([{ path: '*', element: }]);\n}\n","import { FC } from 'react';\nimport { RouterProvider } from 'react-router-dom';\n\nimport { AuthRouter } from '@vp/auth/AuthRouter';\nimport { VpFallback } from '@vp/common/ui/component/VpFallback';\nimport { LandingRouter } from '@vp/landing/LandingRouter';\nimport { ManagerRouter } from '@vp/manager/ManagerRouter';\nimport { ProfileRouter } from '@vp/profile/ProfileRouter';\nimport { createRouter } from '@vp/routing/createRouter';\n\nexport const Router = createRouter([\n LandingRouter,\n ProfileRouter,\n AuthRouter,\n ManagerRouter,\n { path: '*', element: },\n]);\n\nexport const AppRouter: FC = () => ;\n","import { signal, Signal } from '@preact/signals-react';\nimport { injectable } from 'inversify';\n\nimport { AuthPort } from '@vp/auth/core/interface/AuthPort';\nimport { SplashService } from '@vp/common/ui/SplashService';\nimport { ViewModel, ViewModelInit } from '@vp/common/ui/ViewModel';\nimport { ProfileManagerPort } from '@vp/manager/profile/core/interface/ProfileManagerPort';\nimport { RouterService } from '@vp/routing/RouterService';\n\n@injectable()\nexport class AppViewModel extends ViewModel implements ViewModelInit {\n readonly initialized: Signal = signal(false);\n private isInitializeCalled: boolean = false;\n\n constructor(\n private readonly splashService: SplashService,\n private readonly router: RouterService,\n private readonly authPort: AuthPort,\n private readonly profileManagerPort: ProfileManagerPort,\n ) {\n super();\n }\n\n init(): void {\n if (!this.isInitializeCalled) {\n void this.initializeApp();\n this.isInitializeCalled = true;\n }\n }\n\n private async initializeApp(): Promise {\n await this.authPort.validate();\n await this.profileManagerPort.loadProfilesIfNeeded();\n this.initialized.value = true;\n this.hideSplashIfNeeded();\n }\n\n private hideSplashIfNeeded(): void {\n const isProfilePage = this.router.match('/p/');\n if (!isProfilePage) void this.splashService.hide();\n }\n}\n","import { CssBaseline, GlobalStyles, Theme, ThemeProvider } from '@mui/material';\nimport type { GlobalStylesProps as StyledGlobalStylesProps } from '@mui/system/GlobalStyles/GlobalStyles';\nimport { Fragment, JSX } from 'react';\n\nimport { useViewModel } from '@vp/common/ui/hook/useViewModel';\nimport { AppMenu } from '@vp/menu/ui/AppMenu';\nimport { AppNotificationOutlet } from '@vp/notification/AppNotificationOutlet';\nimport { scrollbarStyles } from '@vp/theme/scrollbarStyles';\n\nimport { AppRouter } from './AppRouter';\nimport { AppViewModel } from './AppViewModel';\nimport { theme } from './theme/theme';\n\nexport const App = (): JSX.Element => {\n const viewModel = useViewModel(AppViewModel);\n\n return (\n \n \n ['styles']} />\n {viewModel.initialized.value && (\n \n \n \n \n \n )}\n \n );\n};\n","import { Container, interfaces } from 'inversify';\n\nimport { BaseModule } from '@vp/common/BaseModule';\n\nimport { Router } from './AppRouter';\nimport { AppViewModel } from './AppViewModel';\n\nexport class AppContainer {\n readonly container: Container = new Container();\n private readonly modules: BaseModule[] = [];\n\n registerModules(Modules: interfaces.Newable[]): void {\n for (const Module of Modules) {\n const module = new Module();\n this.modules.push(module);\n this.container.load(module.module);\n }\n }\n\n initialize(): void {\n this.container.bind('RouterInstance').toConstantValue(Router);\n\n for (const module of this.modules) {\n module.initialize(this.container);\n }\n\n this.container.bind(AppViewModel).toSelf().inTransientScope();\n }\n}\n","import 'reflect-metadata';\nimport { Provider as ContainerProvider } from 'inversify-react';\nimport { StrictMode } from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport './config/SentryConfig';\nimport { AuthModule } from '@vp/auth/AuthModule';\nimport { CommonModule } from '@vp/common/CommonModule';\nimport { HonorModule } from '@vp/honor/HonorModule';\nimport { ManagerModule } from '@vp/manager/ManagerModule';\nimport { AppMenuModule } from '@vp/menu/AppMenuModule';\nimport { AppNotificationModule } from '@vp/notification/AppNotificationModule';\nimport { ProfileModule } from '@vp/profile/ProfileModule';\nimport { RoutingModule } from '@vp/routing/RoutingModule';\nimport { SlideshowModule } from '@vp/slideshow/SlideshowModule';\n\nimport { App } from './App';\nimport { AppContainer } from './AppContainer';\n\nconst container = (): AppContainer['container'] => {\n const appContainer = new AppContainer();\n\n appContainer.registerModules([\n CommonModule,\n RoutingModule,\n ProfileModule,\n HonorModule,\n AuthModule,\n SlideshowModule,\n ManagerModule,\n AppMenuModule,\n AppNotificationModule,\n ]);\n\n appContainer.initialize();\n return appContainer.container;\n};\n\ncreateRoot(document.getElementById('root')!).render(\n \n \n \n \n ,\n);\n"],"names":["AppConfig","env","import","version","sentryDsn","apiUrl","Sentry","dsn","integrations","useEffect","useLocation","useNavigationType","createRoutesFromChildren","matchRoutes","replayIntegration","environment","release","tracesSampleRate","tracePropagationTargets","window","location","host","replaysSessionSampleRate","replaysOnErrorSampleRate","AuthRepository","AuthState","constructor","authenticated","email","TokensStorage","Analytics","LoadOwnerUsecase","_dec","injectable","_dec2","Reflect","metadata","Function","_dec3","Object","_class","authState","authRepository","analytics","execute","controller","owner","getOwner","setOwnerEmail","setUser","ProfileManagerRepository","ProfileManagerState","active","profiles","status","LoadProfilesUsecase","profileManagerRepository","profileManagerState","loading","getProfiles","completed","LoginUsecase","tokensStorage","loadOwnerUsecase","loadProfilesUsecase","password","tokens","login","store","LogoutUsecase","reset","clear","clearUser","RefreshUsecase","refresh","RegisterUsecase","register","ValidateAuthUsecase","validateToken","loadOwnerIfNeeded","retrieve","isExpired","JwtParser","parse","token","base64","split","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","ValidateRecoveryTokenUsecase","jwtParser","payload","expiration","Date","exp","now","getTime","AuthFacade","loginUsecase","registerUsecase","refreshUsecase","validateAuthUsecase","logoutUsecase","validateRecoveryTokenUsecase","repository","getTokens","validate","logout","sendResetPasswordLink","restorePassword","recoveryToken","validateRecoveryToken","AuthPort","TokensModel","access","expiresIn","AuthDataMapper","toOwner","dto","createdAt","created_at","toTokens","access_token","refresh_token","toForgotPasswordDto","data","FormData","append","toRestorePasswordDto","Success","value","from","empty","undefined","Failure","message","ErrorExtractor","extract","error","isAxiosError","extractAxiosError","Error","response","AuthEndpoint","RestAuthRepository","Axios","http","authDataMapper","errorExtractor","post","Register","signal","Login","options","skipAuth","headers","Authorization","put","Refresh","get","GetOwner","Passwords","RouterSubscribers","subscribers","Map","generator","idGenerator","add","subscriber","state","id","next","set","delete","notify","forEach","number","RouterService","RouterServiceImpl","Router","router","getParams","pattern","match","matchPath","pathname","params","path","includes","isOn","subscribe","getCurrentState","notifySubscribers","navigate","args","search","hash","AuthInterceptorManager","instance","authPort","routerService","attach","attachTokenInterceptor","attachRetryInterceptor","interceptors","request","use","config","attachTokenToRequest","shouldRefreshAndRetry","navigateToLoginIfNeeded","Promise","reject","tryToRefresh","createRetryConfig","retried","isUnauthorized","HttpStatusCode","Unauthorized","isRetried","isRefreshRequest","url","isLoginRequest","toBearerTokenAuthorization","isGetOwnerRequest","LocalTokensStorage","accessTokenKey","refreshTokenKey","expiresInKey","localStorage","setItem","getItem","parseInt","removeItem","SignalsAuthState","ViewModel","props","lastProps","bindProps","compareProps","a","b","keysA","ownKeys","keysB","length","every","key","has","AppNotificationService","enqueue","notification","enqueueSnackbar","variant","secondaryMessage","Icon","anchorOrigin","autoHideDuration","ForgotPasswordViewModel","notificationService","sendPasswordResetLink","AbortController","result","showSuccessNotification","showErrorNotification","dispose","_a","abort","SplashService","splashId","finishedClass","hiddenClass","animationTime","show","splash","getSplash","classList","remove","hide","sleep","document","getElementById","time","resolve","setTimeout","GuardViewModel","splashService","init","ProfilePort","profile","loadingState","canActivateProfile","profileForActivation","LoginViewModel","profilePort","handleLoginSuccess","RegisterViewModel","registering","handleRegisterSuccess","RestorePasswordViewModel","validated","navigateToProfilesManager","extractRecoveryToken","URLSearchParams","showTokenErrorNotification","BaseModule","module","imports","initialize","container","initializeImports","Modules","registry","Module","push","AuthModule","ContainerModule","bind","toSelf","inSingletonScope","toDynamicValue","context","inTransientScope","HttpClientFactory","axios","create","baseURL","timeout","Proxy","target","prop","receiver","originalProperty","apply","isCancel","SentryAnalytics","user","trackError","DateFormatter","toLocaleDate","date","toLocaleDateString","day","month","year","TimeAgoFormatter","getTimeAgo","timestamp","secondsPast","Math","floor","minutes","getRussianNumeralForm","hours","days","months","years","singleForm","fewForm","pluralForm","lastTwoDigits","abs","lastDigit","CommonModule","HonorSubmitRepository","SubmitHonorRecordUsecase","honorSubmitRepository","record","profileId","submitHonorRecord","HonorSubmitFacade","submitHonorRecordUsecase","HonorSubmitPort","ProfileDataMapper","themeModes","Set","toProfile","name","bio","birthDate","date_of_birth","deathDate","date_of_death","image","toImage","photos","toPhotos","videos","toVideos","events","toEvents","honorRecords","toHonorRecords","theme","toTheme","slideshowAudio","settings","slideshow_melody","premium","toHonorRecord","tribute","author","text","approved","toPhoto","blurhash","toVideo","video","thumbnail","thumbnailHash","images","timelines","timeline","description","tributes","filter","avatar","color","mode","background_mode","RestHonorSubmitRepository","profileDataMapper","body","HonorSubmitViewModel","honorPort","submitting","handleFormSubmit","handleBeforeSubmission","newRecord","submit","_b","handleSubmissionResult","HonorModule","AvatarManagerRepository","RemoveAvatarUsecase","avatarManagerRepository","avatarId","update","UploadAvatarUsecase","avatarFile","upload","AvatarManagerFacade","removeAvatarUsecase","uploadAvatarUsecase","AvatarManagerPort","AvatarManagerDataMapper","toUploadFormData","file","formData","toRemoveFormData","RestAvatarManagerRepository","avatarManagerMapper","ProfileManagerPort","AvatarOperation","AvatarManagerViewModel","profileManagerPort","avatarManagerPort","dialogShown","removing","uploading","onFileUpload","files","handleUpload","onRemoveButtonClick","removeImage","handleRemove","batch","closeDialog","Remove","Upload","operation","AvatarManagerModule","BiographyManagerRepository","UpdateBiographyUsecase","biographyManagerRepository","BiographyManagerFacade","updateBiographyUsecase","refine","BiographyManagerPort","BiographyManagerDataMapper","toRefineFormData","biography","grammarOnly","toUpdateFormData","dateOfBirth","dateOfDeath","toGeneratedInfo","generated_text","RestBiographyManagerRepository","biographyManagerDataMapper","RefineBiographyDto","assign","UpdateBiographyDto","AiOptionStatus","BiographyManagerViewModel","dateFormatter","biographyManagerPort","computed","toViewProfile","generatedBiography","editModalShown","aiOptionStatus","None","disposeEffect","openEditModel","closeEditModal","changeAiOptionStatus","toFormValues","datebirth","datedeath","values","refineBiography","updateBiography","onSaveSuggestedBiography","methods","setValue","suggestedText","shouldDirty","toUpdateDto","resetFormOnProfileChange","toRefineDto","SpellingCheck","effect","formValues","BiographyManagerModule","EventsManagerState","EventsManagerRepository","LoadEventsUsecase","eventsManarRepository","eventsManagerState","loadEvents","SubmitEventsUsecase","submitEvents","toDelete","EventsManagerFacade","eventsState","loadEventsUsecase","submitEventsUsecase","resetState","EventsManagerPort","EventsManagerDataMapper","toCreateFormData","event","index","toEvent","convertDateFormat","imageUrl","imageHash","imageId","SubmitEventsResultDto","createdEvents","updatedEvents","RestEventsManagerRepository","dataMapper","profile_id","updatePromises","toUpdate","updateEvent","createPromise","toCreate","createEvents","deletePromise","deleteEvents","_","all","imageIdToRemove","ids","timeline_ids","SignalsEventsManagerState","eventsMap","setEvents","deletedEvents","updateEvents","emitUpdate","EventsDiff","created","deleted","updated","addCreated","addUpdated","addDeleted","EventsManagerDiffer","getDiff","current","previous","diff","previousMap","toEventsMap","processCurrent","collectDeletedEvents","isCreated","updateIfNeeded","markUpdated","hasEventChanged","getImageIdToRemove","hasImageBeenRemoved","stringify","SumbitEventsDto","EventsManagerViewModel","_EventsManagerViewModel","eventsManagerPort","eventsManagerDiffer","recordsStatus","submitForm","toDto","setSubmitting","cleanupImages","idsToDelete","isSubmitting","URL","revokeObjectURL","EmptyEvent","EventsManagerModule","GalleryManagerRepository","RemoveMediaUsecase","galleryManagerRepository","UploadMediaUsecase","managerState","handle","updateProfileOnCompleted","snapshot","updateProfileIfNeeded","shouldBeUpdated","uploadedPhotos","item","uploadedVideos","GalleryManagerFacade","uploadMediaUsecase","removeMediaUsecase","GalleryManagerPort","UploadMediaType","UploadContext","type","chunkSize","progress","currentFileIndex","fileRegistry","setError","nextFile","addImage","addVideo","getCurrentFileUpload","updateProgress","setRegistry","isLastFile","AttachmentType","GalleryManagerDataMapper","profileMapper","toUploadStateMachineContext","toUploadHandleSnapshot","machine","toUploadHandleState","fileProgressTracker","toFileProgressTracker","toMultipartUploadFormData","fileUpload","uploadKey","uploadId","mediaFile","toParts","attachment","toAttachmentType","Photos","Images","Videos","completedState","failedState","currentState","tracker","parts","chunks","chunk","part_number","order","etag","eTag","UploadState","stateMachine","onEnter","handleError","updateTotalProgress","registrySize","size","round","min","BasicUploadingState","process","uploadFile","determineTransition","changeState","mapper","onUploadProgress","progressEvent","updateFileProgress","addToContextIfNeeded","percent","loaded","total","basicUploadingState","ChunkingState","requiresChunking","splitOnChunks","addChunk","uploadingState","chunkIndex","start","end","blob","CompletedState","FailedState","FinalizingState","finalizeUpload","initializationState","InitializationState","initializeUpload","chunkingState","toSearchParams","setUploadMeta","upload_id","FileChunk","setEtag","FileUpload","UploadingState","uploadChunks","finalizingState","uploadUrl","getUploadUrl","uploadChunk","presigned_url","extractEtag","chunkPercent","basePercent","UploadStateMachine","initialState","InitialState","stop","RestGalleryManagerRepository","galleryManagerMapper","ChunkSize","GalleryManagerSection","GalleryManagerMapper","toPreviewItem","section","photo","find","MediaItemsMapper","toPhotoItems","toVideoItems","GalleryManagerViewModel","mediaItemsMapper","toViewPhotos","toViewVideos","filesToUpload","uploadShown","previewShown","previewItem","handleFiles","closeUpload","showPreview","closePreview","RemoveMediaDto","GalleryManagerPreviewViewModel","galleryManagerPort","showDialog","isPhotoPreview","toRemoveDto","close","showSuccessMessage","showErrorMessage","UploadMediaDto","GalleryManagerUploadViewModel","items","uploadSnapshot","showLimits","uploadHandle","revokeItemUrl","cancelUpload","initializeFiles","toGridItems","revokeItemsUrl","getType","toGridItem","createObjectURL","random","GalleryManagerModule","HonorManagerState","approvedRecords","pendingRecords","HonorManagerRepository","ApproveHonorRecordUsecase","honorManagerRepository","honorManagerState","approveHonorRecords","updateRecords","EditHonorRecordUsecase","newText","updatedRecord","editHonorRecord","setRecord","HandleSubmissionResultUsecase","LoadHonorRecordsUsecase","records","getHonorRecords","setRecords","RemoveHonorRecordUsecase","removeHonorRecords","deleteRecords","HonorManagerFacade","loadHonorRecordsUsecase","removeHonorRecordUsecase","approveHonorRecordUsecase","handleSubmissionResultUsecase","editHonorRecordUsecase","loadHonorRecords","editRecord","HonorManagerPort","RestHonorManagerRepository","tribute_ids","patch","createFormData","SignalsHonorManagerState","pending","splitRecords","HonorManagerSection","HonorManagerNavigator","activeSection","Approved","unsubscribe","setActiveSection","detach","toApprovedSection","EditNotificationText","success","primary","secondary","info","ApproveNotificationText","RemoveNotificationText","SubmitNotificationText","NotificationText","edit","approve","HonorManagerNotificationService","showNotification","action","HonorManagerViewModel","timeAgoFormatter","honorManagerPort","honorManagerNavigator","honorManagerNotificationService","toViewHonorRecords","isActiveTabHasRecords","hasRecords","activeRequestState","inProgress","handleRequest","removeRecords","approveRecords","setActiveRequestState","asyncOperation","requestState","hasApproved","hasPending","Pending","toTimeAgo","HonorManagerModule","ManagerGatewayViewModel","managerPort","hasError","initialized","handleRouteChange","makeProfileActive","makeFirstProfileActive","getById","setActiveProfile","first","ProfileManagerFacade","loadProfilesIfNeeded","setActive","RestProfileManagerRepository","SignalsProfileManagerState","updatedProfile","SvgCalendar","React.createElement","SvgColorPalette","SvgImage","SvgPenFountain","SvgTextAnnotationToggle","SvgView","AppMenuService","ProfileSettingsViewModel","appMenuService","noProfiles","hasNoProfiles","isError","mainItems","toMainItems","additionalItems","toAdditionalItems","toggleMenu","toggle","hasProfiles","TextAnnotationToggle","Calendar","Image","PenFountain","ColorPalette","View","ProfileManagerModule","ThemingManagerPort","ThemingManagerRepository","UpdateProfileThemeUsecase","ThemingManagerFacade","updateThemeUsecase","resolveTheme","updateTheme","UpdateThemeDto","config_attributes","RestThemingManagerRepository","ThemeManagerViewModel","themingManagerPort","dirty","checkDirty","modeSwitcher","dark","light","cancel","save","switchTheme","persisted","ThemingManagerModule","ManagerModule","AppMenuState","open","AppMenuFacade","appMenuState","setOpen","SignalsAppMenuState","SvgHeadset","SvgLogin","AppMenuItemId","AuthHandler","isAuthenticated","handleLogout","toLogin","toLoginPageIfNeeded","SupportHandler","supportHref","HandlerRegistry","authHandler","supportHandler","handlerRegistry","Support","Auth","AppMenuViewModel","getMenuItems","onItemClick","handler","authItem","getAuthItem","Headset","AppMenuProfilesViewModel","selectProfile","AppMenuModule","AppNotificationModule","ProfileRepository","ProfileState","ActivateProfileUsecase","profileRepository","ensureUserAuthenticated","activateProfile","LoadProfileUsecase","profileState","setLoadingState","loadProfile","setProfile","SlideshowMediaLoader","SlideshowState","slideshowStatus","audio","ScheduleSlideshowUsecase","slideshowMediaLoader","slideshowState","MinSlideshowSlides","MaxSlideshowSlides","MaxSlidesToLoadInCache","setSlideshowStatus","successfulImages","loadImages","prepareProfileImagesToLoad","loadAudio","setAudio","setImages","createSlideshowImages","excludeAvatar","randomPhotos","sort","ProfileFacade","loadProfileUsecase","activateProfileUsecase","scheduleSlideshowUsecase","storeProfileForActivation","resetProfileForActivation","RestProfileRepository","SignalsProfileState","ProfileActivationViewModel","instructionText","toInstructionText","activate","loginToActivate","registerToActivate","toProfileSettings","ProfileGalleryMode","ProfileGalleryViewModel","imageViewerShown","videoViewerShown","selectedPhoto","selectedVideo","photoItems","videoItems","closeImageViewer","closeVideoViewer","handlePhotoClick","handleVideoClick","toVideoModel","ProfileGatewayViewModel","SvgInformationFilled","ProfilePageHeaderViewModel","adShown","showAd","closeAd","shareProfile","href","navigator","clipboard","writeText","InformationFilled","vertical","horizontal","ProfileHonorViewModel","showSubmitRecordModal","closeSubmitRecordModal","openSubmitRecordModal","ProfileSection","ProfileViewModel","toViewEvents","toProfileHonorRecords","ProfileModule","RoutingModule","EngineState","engine","FinishedState","play","playingState","exit","currentSlide","currentSlideProgress","startTime","enter","totalTime","slidesCount","slideTime","PausedState","pauseStartTime","goTo","slide","updatedPlayedTime","pausedTime","PlayingState","timePercent","pause","pausedState","tick","defineSlide","updateSlideProgress","finishIfNeeded","timePlayed","slideTimePlayed","finishedState","SlideshowEngine","isIn","State","_d","_c","SlideshowEngineFactory","SlideshowEngineFactoryPort","SignalsSlideshowState","Blob","SlideshowMediaCacheLoader","img","src","onload","onerror","audioUrl","responseType","SlideshowAudioController","muted","source","gainNode","volume","smoothedVolume","defaultVolume","reducedVolume","animationDurationInSeconds","currentAnimation","subscriptions","initializeAudio","initializeVolume","initializeAnimation","muteSmoothly","cleanup","initializeAudioContextIfNeeded","reduceVolume","toggleMuted","Audio","loop","motionValue","on","animate","duration","ease","onComplete","setVolume","AudioContext","createMediaElementSource","createGain","connect","destination","resume","gain","setValueAtTime","currentTime","SlideshowEngineController","engineFactory","isPaused","isFinished","frameId","cancelAnimationFrame","requestAnimationFrame","updateState","_e","SlideshowViewModel","engineController","audioController","birthDeathDates","toBirthDeathDates","profileName","toProfileNameView","galleryShown","introShown","introImage","introImageScale","introButtonText","closeSlideshow","togglePause","openGallery","closeGallery","goToSlideIfNeeded","startSlideshow","onSlideshowFinished","findIndex","SlideshowModule","useViewModel","identifier","viewModel","useInjection","initializeIfNeeded","disposeIfNeeded","initializable","disposable","SvgClose","SvgLogo","VpHiddenFileInputRoot","styled","clipPath","height","overflow","position","bottom","left","whiteSpace","width","AcceptPropToType","VpHiddenFileInput","multiple","accept","onChange","useCallback","Array","jsx","VpIcon","sx","glowing","jsxs","Box","Fragment","SvgIcon","fontSize","willChange","inset","resolveSx","VpIconButton","IconButton","px","py","pointerEvents","palette","transition","to","RouterLink","LinkComponent","component","SvgChevronRight","AppMenuListItem","onClick","Button","backgroundColor","textTransform","pt","pb","spacing","pl","pr","justifyContent","borderRadius","alignItems","borderBottom","borderColor","transparency","alpha16","mr","Typography","transform","disabled","ChevronRight","SvgUserMultiple","SvgSettingsAdjust","VpImage","forwardRef","alt","animateAppearance","imageProps","ref","setLoaded","useState","onLoad","modeStyles","useMemo","resolveMode","imageStyles","resolveStyle","style","opacity","Number","Blurhash","objectPosition","top","displayName","maxWidth","maxHeight","objectFit","Boolean","AppMenuProfileItem","onProfileClick","flexShrink","alpha48","ml","SettingsAdjust","SvgUserMultipleGradient","Title","Caption","NoProfiles","Stack","UserMultipleGradient","ProfilesItem","Profiles","UserMultiple","AppMenuProfiles","_effect","_useSignals","1","Collapse","f","AppMenuList","tablet","SvgEmail","AppMenuUser","memo","Email","AppMenu","Drawer","mobile","desktop","background","backdrop","Close","mt","breakpoints","up","p","mb","Logo","SvgCheckmarkFilled","SvgCloseFilled","SvgStar","SvgWarningAltFilled","Icons","CheckmarkFilled","warning","WarningAltFilled","CloseFilled","Star","AppNotificationRoot","padding","display","getBackground","variants","alpha24","danger","alpha8","AppNotification","closeSnackbar","useSnackbar","SnackbarContent","right","content","AppNotificationOutlet","SnackbarProvider","scrollbarStyles","alpha32","pageVariants","initial","in","out","VpFade","children","motion","div","AuthPageContainer","only","AuthPageDescription","title","textAlign","textShadow","EmailValidationOptions","required","maxLength","VpMultilineTextInputRoot","minWidth","outline","resize","border","WebkitTapHighlightColor","WebkitBoxShadow","WebkitTextFillColor","backgroundClip","minHeight","typography","formPlaceholderXSmall","formPlaceholderSmall","formPlaceholderMedium","VpMultilineTextInput","placeholder","registerReturn","rest","textareaRef","useRef","setRef","element","useLayoutEffect","textarea","onInput","scrollHeight","addEventListener","removeEventListener","VpTextInputRoot","gap","VpTextInputRaw","slot","VpTextInput","endAdornment","inputRef","focus","configureInputType","autoComplete","autoCorrect","autoCapitalize","spellCheck","VpTextFieldRoot","flexDirection","fullWidth","VpTextFieldLabel","formLabelSmall","formLabelMedium","VpTextFieldCaption","caption1Regular","body2Regular","captionPosition","VpTextField","resolveStatus","resolveDisabled","resolveVariant","label","caption","slotProps","multiline","inputProps","input","multilineInputProps","multilineInput","multilineInputRef","useImperativeHandle","inputDisabled","inputVariant","SpinnerBorderCalculator","ranges","getBorder","diameter","range","max","SpinnerResolver","borderCalculator","resolveWith","maskRadius","maskImage","getVariantsRange","spinAnimation","Infinity","resolver","VpSpinnerRoot","animation","VpSpinner","useFalsyStateDelay","delay","delayedState","setDelayedState","clearTimeout","VpFancyButtonRoot","VpFancyButtonBase","ButtonBase","margin","getGlow","VpFancyButtonText","buttonMedium","buttonLarge","buttonGiant","SizeToNumber","small","medium","large","VpFancyButton","useTheme","delayedLoading","fadeKey","glow","AnimatePresence","boxSizing","borderImageSlice","borderImageSource","alpha","gradient","zIndex","ForgotPasswordForm","handleSubmit","formState","useForm","defaultValues","errors","isValid","ForgotPasswordPage","SvgViewOff","ViewPasswordIcon","showPassword","handleMouseDownPassword","preventDefault","ViewOff","PasswordValidationOptions","LoginForm","setShowPassword","passwordInputType","handleClickShowPassword","Link","alignSelf","LoginPage","RegisterLoginNavigation","minLength","SvgCheckmark","CheckedIcon","m","Checkmark","UncheckedIcon","VpCheckbox","Checkbox","RegisterForm","watch","passwordConfirmation","termsAndCondition","rights","FormControl","textDecoration","textDecorationSkipInk","RegisterPage","RestorePasswordForm","RestorePasswordPage","AuthRouter","Navigate","SvgWarningAltGradient","VpFallback","showRefresh","onRefresh","reload","WarningAltGradient","Text","LandingDescription","useMediaQuery","down","VpLink","LandingNavigation","LandingSlogan","LandingPage","LandingRouter","AuthGuard","VpButtonRoot","buttonSmall","getGradient","VpButton","other","VpModal","transitions","fadeDuration","modalFadeDuration","onClose","reason","Modal","backdropFilter","Fade","VpDialog","cancelDisabled","actionLoading","actionText","cancelText","onAction","onCancel","flex","SvgAdd","AvatarImagePlaceholder","customSizes","fullImageHeight","Add","SvgChevronLeft","AlignToJustifyContent","center","VpHeaderColumn","align","VpHeader","header","AvatarManagerHeader","ChevronLeft","VpMediaGradientOverlay","defaultGradient","mediaOverlayGradient","AvatarManagerImage","onCloseClick","AvatarManagerPage","delayedRemoving","showImage","VpToggle","onToggle","BiographyManagerToggle","field","BiographyManagerAIControls","toggleSpellingCheck","toggleSupplementedDescription","SupplementedDescription","Divider","currentYear","getFullYear","formatDateInput","cleaned","isValidDate","isNaN","daysInMonth","getDate","isYearInvalid","isMonthInvalid","isDayInvalid","BiographyManagerFormDate","useFormContext","onValidateDate","onChangeDate","CalendarIcon","BiographyManagerFormDescription","BiographyManagerFormName","BiographyManagerFormSubmitButton","BiographyManagerFormText","BiographyManagerBody","FormProvider","isDirty","BiographyManagerHeader","BiographyManagerEditHeader","CloseIcon","BiographyManagerEditContent","BiographyManagerEditModal","onSubmit","displayedText","setDisplayedText","onEsc","handleEntering","handleExited","overflowY","default","BiographyManagerPage","VpLoadingWrapper","EventsManagerHeader","disableCancel","ChevronLeftIcon","EventsManagerFormDate","disableControls","EventsManagerFormDescription","descriptionError","SvgTrashCan","EventsManagerFormRemoveButton","onRemove","TrashCanIcon","fill","Gradient","EventsManagerFormImageContent","EventsManagerImageControlButton","uploadImage","AddIcon","HiddenFileControl","EventsManagerFormImage","fileUrl","setFileUrl","imageValue","handleImageRemove","handleImageUpload","onImageChange","EventsManagerFormItem","removeEvent","EventsManagerFormList","control","fields","useFieldArray","addEvent","LayoutGroup","EventsManagerPage","resetForm","useSearchSectionCheck","defaultSection","useNavigate","isPresent","useIsPresent","useSearchSection","prevSection","GalleryManagerControls","isPhotosSection","SvgPlay","VpMediaGrid","itemDecorator","clickable","ImageList","VpMediaGridItem","isVideo","paddingTop","cursor","ImageListItem","PlayIcon","mediaControls","SvgImageGradient","GalleryManagerNoMedia","ImageGradient","GalleryManagerMediaGrid","photosSection","videosSection","showPhotos","showVideos","noMedia","useLinearGradient","angle","stops","colorStops","useRectOnResize","handleRectChange","onResize","rect","getBoundingClientRect","VpTabs","tabs","activeTabId","containerRef","underlineWidth","setUnderlineWidth","activeIndex","tab","VpTab","VpTabUnderline","useBorder","applyStyles","isActive","NavLink","backgroundSize","backgroundRepeat","Tabs","GalleryManagerMediaTabs","GalleryManagerPageHeader","VpOverlayPage","useControlsVisible","controlsVisible","setControlsVisible","interactionLock","setInteractionLock","heartbeat","toggleControlsVisibility","hideControls","debounce","useProgressAnimation","playerRef","setProgress","playing","animationRef","animateProgress","getCurrentTime","SvgPauseFilled","SvgPlayFilled","VpPlayerPausePlayControl","onPlayPauseClick","stopPropagation","PauseIcon","VpTimeSliderControl","onProgressChange","onInteractionLock","controlledProgress","setControlledProgress","dragging","setDragging","sliderProgress","onDragStart","onDragEnd","TimeSlider","formatDuration","Slider","boxShadow","whiteAlpha16","second","seconds","ceil","padStart","VpPlayerControls","visible","VpPlayer","setInitialize","setPlaying","setDuration","initializePlaying","seekTo","togglePlaying","prev","ReactPlayer","flexGrow","GalleryManagerPreview","sectionName","GalleryManagerPreviewModal","delayedItem","VpLimitInfo","linkProps","GalleryManagerUploadGrid","GalleryManagerUploadHeader","VpProgressBar","containerWidth","setContainerWidth","progressWidth","GalleryManagerUploadProgress","PhotoLimitText","VideoLimitText","ButtonGradient","GalleryManagerUpload","limitText","GalleryManagerUploadModal","isDesktop","GalleryManagerPage","ProfileDesktopImage","ManagerGateway","Outlet","YourRecord","HonorManagerTabs","activeTab","HonorManagerTopBar","showSelectButton","disableInteractions","visibility","HonorManagerHeader","TextValidationOptions","NameValidationOptions","SubmitRecordForm","submittingRecord","submitButtonText","textInputRef","handleFocus","scrollIntoView","behavior","block","onFocus","SubmitRecordBody","HonorManagerEditForm","handleEdit","isRequestInProgress","lockInteractions","currentText","isSubmitDisabled","HonorManagerEditHeader","HonorManagerEditContent","setLockInteractions","handleClose","HonorManagerEditModal","displayedRecord","setDisplayedRecord","ProfileHonorRecord","wordBreak","HonorManagerListItem","actionHandler","removeHandler","actionButtonText","some","marginTop","SvgChat","NoRecordsMessage","ChatIcon","HonorManagerList","useRecordEdit","recordToEdit","setRecordToEdit","openRecordEditModal","closeRecordEditModal","handleRecordEdit","useRecordRemoval","recordToRemove","setRecordToRemove","openRemoveRecordDialog","closeRemoveRecordDialog","handleRemoveRecord","HonorManagerBody","handleRecordApprove","HonorManagerPage","ProfileSettingsMenuItem","isLast","ProfileSettingsMenu","isFirst","SvgQrCode","ButtonText","QrCode","useImageSizes","smallImageHeight","isMobile","ProfileSettingsImage","ProfileSettingsInfo","setMarginTop","setTop","dates","profileSettingsMenuOffset","SvgEdit","SvgMenu","ProfileSettingsPageHeader","onMenuClick","Menu","Edit","ProfileSettingsPage","VpPaper","ProfileExampleBio","DemoEvent","ProfileEventDescription","ProfileEventImage","Event","DemoEventImage","ProfileExampleEvents","DemoPhoto1","DemoPhoto2","DemoPhoto3","DemoPhoto4","Items","ProfileExampleGallery","ProfileHonorRecords","divider","useDivider","isLastRecord","Records","ProfileExampleHonor","ProfileNavigation","Bio","ThemingManagerProfileExample","Events","Gallery","Honor","backgroundImage","lightNoise","ThemingManagerControls","onSave","ThemingManagerPageHeader","ThemingManagerSettings","paletteDark","secondaryDisabled","paletteLight","systemPalette","main","basic","primaryColorCssProperty","shadows","BluuNextOft","BluuNextWoff","GolosText","fontFaces","fontFamily","fontWeight","lineHeight","h1","h2","h3","h4","h5","h6","body1Regular","letterSpacing","body1Medium","body1Bold","body2Medium","body2Bold","paragraph1Regular","paragraph1Medium","paragraph1Bold","paragraph2Regular","paragraph2Medium","paragraph2Bold","caption1Medium","caption1Bold","caption2Regular","caption2Medium","caption2Bold","overlineRegular","overlineMedium","overlineBold","formCompletedMedium","formCompletedSmall","formCompletedXSmall","galleryContentSwitcher","galleryProfileImage","galleryProfileInfo","slideshowIntro","footer","desktopPlaceholder","createTheme","components","MuiCssBaseline","styleOverrides","ProfileThemeProvider","profileTheme","themeFactory","ThemeProvider","model","defaultTheme","ThemingManagerPage","ManagerRouter","ProfileActivationAuth","onRegisterClick","onLoginClick","ProfileActivationDescription","ProfileActivationPage","ProfileEvent","useSectionMinHeight","ProfileEvents","hasEvents","SvgVideo","icon","ImageIcon","VideoIcon","GalleryTabs","activeMode","getHref","TabIcon","resolveInactiveColor","useSystemTheme","VpSystemThemeProvider","systemTheme","ProfileImageCarousel","selectedPhotoId","setIndex","getNext","direction","onLeft","onRight","onKeydown","CarouselControls","ProfileImageScroller","el","ProfileImageViewer","VideoViewerContent","ProfileVideoViewer","ProfileGallery","SvgShare","SvgQrCodeLarge","ProfileAdModal","QrCodeLarge","ProfilePageHeader","Share","SubmitRecordHeader","disableCloseIcon","SubmitRecordContent","SubmitRecordModal","ProfileHonor","ProfileInfo","navigationRef","navigationTop","setNavigationTop","navigationHeight","setNavigationHeight","scrollProgress","setScrollProgress","heightDiff","root","onScroll","distance","scrollTop","ProfileInfoContent","ProfileBio","ProfileImage","setPosition","multiplier","setMultiplier","rawPosition","useMotionValue","smoothPosition","useSpring","damping","stiffness","ProfilePageNoise","CloseButton","SvgExport","ShareButton","handleClick","ExportIcon","SvgGrid","SlideshowGalleryButton","GridIcon","SlideshowPlaybackButton","CircularProgress","SvgVolume","SvgVolumeMute","VolumeButton","toggleAudioMuted","VolumeMutedIcon","VolumeIcon","SlideshowControls","isAudioMuted","SlideshowGalleryHeader","SlideshowGalleryContent","goToImageId","mx","backgroundPosition","SlideshowGalleryModal","SlideshowImage","ImageOverlayGradient","SlideshowIntro","skipSlideshow","imageScale","buttonText","imageMode","handleButtonClick","callback","onStartSlideshow","onSkipSlideshow","useVisibilityPause","handleVisibilityChange","hidden","SlideshowContent","SlideshowModal","ProfilePage","profileInfoRef","profileSectionTop","setProfileSectionTop","onResizeTrigger","ProfileGateway","ProfileRouter","routerFactory","createBrowserRouter","createRouter","routes","RouterConfig","useRoutes","AppRouter","RouterProvider","AppViewModel","isInitializeCalled","initializeApp","hideSplashIfNeeded","App","CssBaseline","GlobalStyles","AppContainer","Container","modules","registerModules","load","toConstantValue","appContainer","createRoot","render","ContainerProvider","StrictMode"],"mappings":"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"}